• Nenhum resultado encontrado

POSSIBILITANDO A ARQUITETURA DE MEDIÇÃO DE INTEGRIDADE E MÓDULO DE VERIFICAÇÃO AMPLIADO

No documento Red Hat Enterprise Linux 8 (páginas 125-128)

Usando xfsslower para expor operações de sistema de arquivo inesperadamente lentas

CAPÍTULO 11. AUMENTAR A SEGURANÇA COM O SUBSISTEMA DE INTEGRIDADE DO KERNEL

4. Para carregar a chave confiável do blob de espaço do usuário, use o sub-comando add com o blob como argumento:

11.5. POSSIBILITANDO A ARQUITETURA DE MEDIÇÃO DE INTEGRIDADE E MÓDULO DE VERIFICAÇÃO AMPLIADO

A arquitetura de medição de integridade (IMA) e o módulo de verificação estendida (EVM) pertencem ao subsistema de integridade do núcleo e aumentam a segurança do sistema de várias maneiras. A seção seguinte descreve como habilitar e configurar a IMA e EVM para melhorar a segurança do sistema operacional.

Pré-requisitos

Verifique se o sistema de arquivos securityfs está montado no diretório /sys/kernel/security/ CAPÍTULO 11. AUMENTAR A SEGURANÇA COM O SUBSISTEMA DE INTEGRIDADE DO KERNEL

Verifique se o sistema de arquivos securityfs está montado no diretório /sys/kernel/security/ e se o diretório /sys/kernel/security/integrity/ima/ existe.

# mount …​

securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) …​

Verifique se o gerente de serviços systemd já está remendado para apoiar a IMA e a EVM no momento da inicialização:

# dmesg | grep -i -e EVM -e IMA

[ 0.000000] Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-167.el8.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap

rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet

[ 0.000000] kvm-clock: cpu 0, msr 23601001, primary cpu clock

[ 0.000000] Using crashkernel=auto, the size chosen is a best effort estimation. [ 0.000000] Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-

167.el8.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel- swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet

[ 0.911527] ima: No TPM chip found, activating TPM-bypass! [ 0.911538] ima: Allocated hash algorithm: sha1

[ 0.911580] evm: Initialising EVM extended attributes: [ 0.911581] evm: security.selinux

[ 0.911581] evm: security.ima [ 0.911582] evm: security.capability [ 0.911582] evm: HMAC attrs: 0x1

[ 1.715151] systemd[1]: systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT

+GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=legacy)

[ 3.824198] fbcon: qxldrmfb (fb0) is primary device [ 4.673457] PM: Image not found (code -22)

[ 6.549966] systemd[1]: systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT

+GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=legacy)

Procedimento

1. Adicione os seguintes parâmetros de linha de comando do kernel:

# grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_policy=appraise_tcb ima_appraise=fix evm=fix"

O comando permite a IMA e EVM no modo fix para a entrada de inicialização atual e permite aos usuários reunir e atualizar as medidas da IMA.

O parâmetro de linha de comando do kernel ima_policy=appraise_tcb garante que o kernel utilize a política de medição padrão da Trusted Computing Base (TCB) e a etapa de avaliação. A parte de avaliação proíbe o acesso a arquivos, cujas medidas anteriores e atuais não

correspondem.

3. Opcionalmente, verificar se os parâmetros foram adicionados à linha de comando do kernel: # cat /proc/cmdline

BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-167.el8.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet ima_policy=appraise_tcb ima_appraise=fix evm=fix

4. Criar uma chave mestra do núcleo para proteger a chave EVM:

# keyctl add user kmk dd if=/dev/urandom bs=1 count=32 2> /dev/null @u 748544121

A chave-mestra do kernel (kmk) é mantida inteiramente na memória de espaço do kernel. O valor de 32 bytes da chave-mestra do kernel kmk é gerado a partir de bytes aleatórios do arquivo /dev/urandom e colocado no chaveiro do usuário ( @u). O número de série da chave está na segunda linha da saída anterior.

5. Criar uma chave EVM criptografada com base na chave kmk: # keyctl add encrypted evm-key "new user:kmk 64" @u 641780271

O comando usa kmk para gerar e criptografar uma chave de usuário de 64 bytes (chamada evm-key) e a coloca no chaveiro do usuário ( @u). O número de série da chave está na segunda linha da saída anterior.

IMPORTANTE

É necessário nomear a chave do usuário como evm-key porque esse é o nome que o subsistema EVM está esperando e com o qual está trabalhando.

6. Criar um diretório para chaves exportadas: # mkdir -p /etc/keys/

7. Procure a chave kmk e exporte seu valor para um arquivo: # keyctl pipe keyctl search @u user kmk > /etc/keys/kmk *

O comando coloca o valor não criptografado da chave-mestra do kernel (kmk) em um arquivo de localização previamente definida (/etc/keys/).

8. Procure a chave do usuário evm-key e exporte seu valor para um arquivo: # keyctl pipe keyctl search @u encrypted evm-key > /etc/keys/evm-key

O comando coloca o valor codificado do usuário evm-key em um arquivo de localização arbitrária. O evm-key foi criptografado pela chave-mestra do kernel anteriormente. 9. Opcionalmente, veja as chaves recém-criadas:

# keyctl show Session Keyring

974575405 --alswrv 0 0 keyring: ses 299489774 --alswrv 0 65534 \ keyring: uid.0 748544121 --alswrv 0 0 \ user: kmk

641780271 --alswrv 0 0 \_ encrypted: evm-key Você deve ser capaz de ver um resultado semelhante.

10. Ativar o EVM:

# echo 1 > /sys/kernel/security/evm

11. Opcionalmente, verificar se a EVM foi inicializada: # dmesg | tail -1

[…​] evm: key initialized Recursos adicionais

Para mais informações sobre o subsistema de integridade do kernel, veja Seção 11.1, “O subsistema de integridade do kernel”.

Para mais informações sobre a Arquitetura de Medição de Integridade, veja Seção 11.2, “Arquitetura de medição de integridade”.

Para mais informações sobre o Módulo de Verificação Estendida, veja Seção 11.3, “Módulo de verificação ampliado”.

Para mais informações sobre a criação de chaves criptografadas, veja Seção 11.4, “Chaves confiáveis e criptografadas”.

11.6. COLETA DE HASHES DE ARQUIVO COM ARQUITETURA DE

No documento Red Hat Enterprise Linux 8 (páginas 125-128)