11.4. Segurança

Relógios executáveis de auditoria em links simbólicos não funcionam

O monitoramento de arquivos fornecido pela opção -w não pode rastrear diretamente um caminho. Ele tem que resolver o caminho para um dispositivo e um inode para fazer uma comparação com o programa executado. Um relógio monitorando um symlink executável monitora o dispositivo e um inode do próprio symlink ao invés do programa executado em memória, que é encontrado a partir da resolução do symlink. Mesmo que o relógio resolva o link simbólico para obter o programa executável resultante, a regra aciona em qualquer binário de chamadas múltiplas chamado de um link simbólico diferente. Isto resulta em registros de inundação com falsos positivos. Conseqüentemente, os relógios executáveis de auditoria em links simbólicos não funcionam.

Para contornar o problema, monte um relógio para o caminho resolvido do executável do programa e filtre as mensagens de registro resultantes usando o último componente listado nos campos comm= ou proctitle=.

(BZ#1846345)

SELINUX=desabilitado em /etc/selinux/config não funciona corretamente

Desabilitar o SELinux utilizando a opção SELINUX=disabled no /etc/selinux/config resulta em um processo no qual o kernel inicia com o SELinux habilitado e muda para o modo desabilitado mais tarde no processo de inicialização. Isto pode causar vazamentos de memória e condições de corrida e, conseqüentemente, também pânico no kernel.

Para contornar este problema, desative o SELinux adicionando o parâmetro selinux=0 à linha de comando do kernel, conforme descrito na seção Mudando os modos SELinux no momento da inicialização da seção Utilizando o título SELinux, se seu cenário realmente precisar desativar completamente o SELinux.

(JIRA:RHELPLAN-34199)

libselinux-python só está disponível através de seu módulo

O pacote libselinux-python contém apenas ligas Python 2 para o desenvolvimento de aplicações SELinux e é usado para compatibilidade retroativa. Por esta razão, libselinux-python não está mais disponível nos repositórios padrão RHEL 8 através do comando dnf install libselinux-python.

Para contornar este problema, habilite os módulos libselinux-python e python27, e instale o pacote libselinux-python e suas dependências com os seguintes comandos:

# dnf module enable libselinux-python
# dnf install libselinux-python

Alternativamente, instale libselinux-python usando seu perfil de instalação com um único comando:

# módulo dnf instalar libselinux-python:2.8/comum

Como resultado, você pode instalar libselinux-python usando o respectivo módulo.

(BZ#1666328)

udica processa recipientes UBI 8 somente quando iniciada com --env container=podman

Os recipientes Red Hat Universal Base Image 8 (UBI 8) definem a variável de ambiente do recipiente para o valor oci ao invés do valor podman. Isto impede que a ferramenta udica analise um arquivo JavaScript Object Notation (JSON) de um recipiente.

Para contornar este problema, inicie um container UBI 8 usando um comando podman com o parâmetro --env container=podman. Como resultado, a udica pode gerar uma política SELinux para um contêiner UBI 8 somente quando você utiliza o workaround descrito.

(BZ#1763210)

A remoção da embalagem rpm-plugin-selinux leva à remoção de todas as embalagens de selinux-policy do sistema

A remoção do pacote rpm-plugin-selinux desabilita a SELinux na máquina. Também remove todas as embalagens de selinux-policy do sistema. Instalação repetida do pacote rpm-plugin-selinux, então instala a política SELinux-policy-minimum SELinux, mesmo que a política selinux-policy-target estivesse previamente presente no sistema. Entretanto, a instalação repetida não atualiza o arquivo de configuração do SELinux para contabilizar a mudança na política. Como conseqüência, o SELinux é desativado mesmo após a reinstalação do pacote rpm-plugin-selinux.

Trabalhar em torno deste problema:

  1. Digite o comando umount /sys/fs/selinux/.
  2. Instalar manualmente o pacote de selinux que faltava.
  3. Edite o arquivo /etc/selinux/config para que a política seja igual a SELINUX=enforcing.
  4. Digite o comando load_policy -i.

Como resultado, a SELinux está habilitada e executando a mesma política que antes.

(BZ#1641631)

SELinux impede que o systemd-journal-gatewayd chame newfstat() em arquivos de memória compartilhada criados pela corosync

A política SELinux não contém uma regra que permita que o daemon do sistema-journal-gatewayd tenha acesso aos arquivos criados pelo serviço corosync. Como consequência, o SELinux nega a função systemd-journal-gatewayd para chamar a função newfstat() nos arquivos de memória compartilhada criados pela corosync.

Para contornar este problema, crie um módulo de política local com uma regra de permissão que possibilite o cenário descrito. Consulte a página de manual audit2allow(1 ) para mais informações sobre como gerar a política SELinux allow e dontaudit regras. Como resultado do trabalho anterior, o systemd-journal-gatewayd pode chamar a função em arquivos de memória compartilhada criados pela corosync com o SELinux em modo de aplicação.

(BZ#1746398)

SELinux impede que a auditoria interrompa ou desligue o sistema

A política SELinux não contém uma regra que permita que o daemon de Auditoria inicie uma unidade do sistema power_unit_file_t. Conseqüentemente, a Auditd não pode parar ou desligar o sistema mesmo quando configurada para fazê-lo em casos como o de não sobrar espaço em uma partição de disco de registro.

Para contornar este problema, crie um módulo de política SELinux personalizado. Como resultado, a auditoria pode parar ou desligar corretamente o sistema somente se você aplicar a solução.

(BZ#1826788)

os usuários podem executar comandos sudo como usuários bloqueados

Em sistemas onde as permissões dos sudoers são definidas com a palavra-chave ALL, os usuários sudo com permissões podem executar comandos sudo como usuários cujas contas estão bloqueadas. Consequentemente, as contas bloqueadas e expiradas ainda podem ser usadas para executar comandos.

Para contornar este problema, habilite a opção runas_check_shell recentemente implementada junto com as configurações apropriadas de shells válidas em /etc/shells. Isto impede que os atacantes executem comandos sob contas de sistema, como bin.

(BZ#1786990)

Efeitos negativos da configuração padrão de registro sobre o desempenho

A configuração padrão do ambiente de registro pode consumir 4 GB de memória ou até mais e os ajustes dos valores limite de taxa são complexos quando o sistema-journald está rodando com o rsyslog.

Veja os efeitos negativos da configuração de registro padrão da RHEL sobre o desempenho e suas mitigações Artigo da Base de Conhecimento para mais informações.

(JIRA:RHELPLAN-10431)

Parâmetro errosnão conhecidos na saída do rsyslog com config.enabled

Na saída do rsyslog, ocorre um erro inesperado no processamento da configuração usando a diretiva config.enabled. Como conseqüência, os erros não conhecidos são exibidos durante o uso da diretiva config.enabled, exceto para as instruções include().

Para contornar este problema, defina config.enabled=on ou use as declarações ().

(BZ#1659383)

Certas cordas prioritárias rsyslog não funcionam corretamente

O suporte para a cadeia de prioridade GnuTLS para imtcp que permite um controle fino sobre a criptografia não está completo. Conseqüentemente, as seguintes cadeias de prioridade não funcionam corretamente no rsyslog:

NENHUMA: VERS-ALL:-VERS-TLS1.3: MAC-ALL: DHE-RSA: AES-256-GCM: SIGN-RSA-SHA384: COMP-ALL: GROUP-ALL

Para contornar este problema, use apenas cordas de prioridade que funcionem corretamente:

NENHUMA: VERS-ALL:-VERS-TLS1.3: MAC-ALL: ECDHE-RSA: AES-128-CBC: SIGN-RSA-SHA1: COMP-ALL: GROUP-ALL

Como resultado, as configurações atuais devem ser limitadas às cordas que funcionam corretamente.

(BZ#1679512)

As conexões a servidores com assinaturas SHA-1 não funcionam com GnuTLS

As assinaturas SHA-1 nos certificados são rejeitadas pela biblioteca de comunicações seguras GnuTLS como inseguras. Consequentemente, as aplicações que usam GnuTLS como backend TLS não podem estabelecer uma conexão TLS com os colegas que oferecem tais certificados. Este comportamento é inconsistente com outras bibliotecas criptográficas do sistema. Para contornar este problema, atualize o servidor para usar certificados assinados com SHA-256 ou hash mais forte, ou mude para a política LEGACY.

(BZ#1628553)

TLS 1.3 não funciona em NSS no modo FIPS

O TLS 1.3 não é suportado em sistemas que funcionam no modo FIPS. Como resultado, as conexões que requerem o TLS 1.3 para interoperabilidade não funcionam em um sistema que trabalha em modo FIPS.

Para ativar as conexões, desabilite o modo FIPS do sistema ou habilite o suporte para TLS 1.2 no par.

(BZ#1724250)

OpenSSL manipula incorretamente as fichas PKCS #11 que não suportam assinaturas RSA ou RSA-PSS brutas

A biblioteca OpenSSL não detecta as capacidades relacionadas às chaves de fichas PKCS #11. Conseqüentemente, o estabelecimento de uma conexão TLS falha quando uma assinatura é criada com um token que não suporta assinaturas RSA ou RSA-PSS brutas.

Para contornar o problema, adicione as seguintes linhas após a linha .include no final da seção crypto_policy no arquivo /etc/pki/tls/openssl.cnf:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2

Como resultado, uma conexão TLS pode ser estabelecida no cenário descrito.

(BZ#1685470)

OpenSSL gera uma extensão de status_request malformado na mensagem CertificateRequest no TLS 1.3

Os servidores OpenSSL enviam uma extensão mal-formada status_request na mensagem CertificateRequest se o suporte para a extensão status_request e autenticação baseada no certificado do cliente estiverem habilitados. Nesse caso, o OpenSSL não interopera com implementações que estejam em conformidade com o protocolo RFC 8446. Como resultado, os clientes que verificam corretamente as extensões na mensagem CertificateRequest abortam as conexões com o servidor OpenSSL. Para contornar este problema, desabilite o suporte para o protocolo TLS 1.3 em ambos os lados da conexão ou desabilite o suporte para status_request no servidor OpenSSL. Isto evitará que o servidor envie mensagens mal-formadas.

(BZ#1749068)

o ssh-keyscan não pode recuperar chaves RSA de servidores em modo FIPS

O algoritmo SHA-1 é desativado para assinaturas RSA no modo FIPS, o que impede que o utilitário ssh-keyscan recupere chaves RSA de servidores que operam nesse modo.

Para contornar este problema, use chaves ECDSA, ou recupere as chaves localmente do arquivo /etc/ssh/ssh_host_rsa_chave.pub no servidor.

(BZ#1744108)

Libreswan não funciona corretamente com seccomp=enabled em todas as configurações

O conjunto de syscalls permitidos na implementação do suporte de Libreswan SECCOMP não está atualmente completo. Consequentemente, quando o SECCOMP é habilitado no arquivo ipsec.conf, a filtragem de chamadas do syscall rejeita até mesmo as chamadas necessárias para o bom funcionamento do daemon pluto; o daemon é morto e o serviço ipsec é reiniciado.

Para contornar este problema, coloque a opção seccomp= de volta ao estado de incapacidade. O suporte da SECCOMP deve permanecer desabilitado para executar o ipsec corretamente.

(BZ#1777474)

Certos conjuntos de regras interdependentes no SSG podem falhar

A remediação das regras do Guia de Segurança SCAP (SSG) em um padrão de referência pode falhar devido à ordenação indefinida das regras e suas dependências. Se duas ou mais regras precisam ser executadas em uma determinada ordem, por exemplo, quando uma regra instala um componente e outra regra configura o mesmo componente, elas podem ser executadas na ordem errada e a remediação informa um erro. Para contornar este problema, execute a correção duas vezes e a segunda execução corrige as regras dependentes.

(BZ#1750755)

SCAP Workbench não gera remediações baseadas em resultados a partir de perfis personalizados

O seguinte erro ocorre quando se tenta gerar funções de remediação baseadas em resultados a partir de um perfil personalizado usando a ferramenta SCAP Workbench:

Erro gerando papel de remediação .../remediação.sh: Código de saída da oscap foi 1: [saída truncada]

Para contornar este problema, use o comando oscap com a opção --tailoring-file.

(BZ#1640715)

Kickstart usa org_fedora_oscap em vez de com_redhat_oscap no RHEL 8

O Kickstart faz referência ao Protocolo de Automação de Conteúdo de Segurança Aberta (OSCAP) Anaconda add-on como org_fedora_oscap em vez de com_redhat_oscap, o que pode causar confusão. Isto é feito para preservar a retrocompatibilidade com o Red Hat Enterprise Linux 7.

(BZ#1665082)

OSCAP Anaconda Addon não instala todos os pacotes em modo texto

O plugin OSCAP Anaconda Addon não pode modificar a lista de pacotes selecionados para instalação pelo instalador do sistema se a instalação estiver rodando em modo texto. Conseqüentemente, quando um perfil de política de segurança é especificado usando Kickstart e a instalação está rodando em modo texto, quaisquer pacotes adicionais exigidos pela política de segurança não são instalados durante a instalação.

Para contornar este problema, execute a instalação em modo gráfico ou especifique todos os pacotes que são exigidos pelo perfil da política de segurança na seção %packages em seu arquivo Kickstart.

Como resultado, os pacotes que são exigidos pelo perfil de política de segurança não são instalados durante a instalação da RHEL sem uma das soluções descritas, e o sistema instalado não está de acordo com o perfil de política de segurança dado.

(BZ#1674001)

OSCAP Anaconda Addon não lida corretamente com perfis personalizados

O plug-in OSCAP Anaconda Addon não lida adequadamente com perfis de segurança com personalizações em arquivos separados. Conseqüentemente, o perfil personalizado não está disponível na instalação gráfica RHEL, mesmo quando você o especifica corretamente na seção Kickstart correspondente.

Para contornar este problema, siga as instruções na seção Criação de um único fluxo de dados SCAP a partir de um DS original e de um artigo de base de conhecimento de arquivo de personalização. Como resultado deste trabalho, você pode usar um perfil SCAP personalizado na instalação gráfica RHEL.

(BZ#1691305)

GnuTLS falha em retomar a sessão atual com o servidor NSS

Ao retomar uma sessão TLS (Transport Layer Security) 1,3, o cliente GnuTLS espera 60 milissegundos mais um tempo estimado de ida e volta para o servidor enviar os dados de retomada da sessão. Se o servidor não enviar os dados de retomada dentro deste tempo, o cliente cria uma nova sessão em vez de retomar a sessão atual. Isto não causa efeitos adversos sérios, exceto por um pequeno impacto de desempenho em uma negociação de sessão regular.

(BZ#1677754)

O utilitário oscap-ssh falha ao digitalizar um sistema remoto com --sudo

Ao realizar um scan do Protocolo de Automação de Conteúdo de Segurança (SCAP) de um sistema remoto usando a ferramenta oscap-ssh com a opção --sudo, a ferramenta oscap no sistema remoto salva os arquivos de resultados do scan e informa os arquivos em um diretório temporário como usuário root. Se as configurações umask na máquina remota tiverem sido alteradas, o oscap-ssh pode não ter acesso a estes arquivos. Para contornar este problema, modificar a ferramenta oscap-ssh, como descrito nesta solução. O "oscap-ssh --sudo" não consegue recuperar os arquivos de resultados com o "scp: Erro "Permissão negada". Como resultado, o oscap salva os arquivos como usuário alvo, e o oscap-ssh acessa os arquivos normalmente.

(BZ#1803116)

OpenSCAP produz falsos positivos causados pela remoção de linhas em branco das cordas multi-linhas da YAML

Quando o OpenSCAP gera remediações possíveis a partir de um fluxo de dados, ele remove linhas em branco das cordas multi-linhas da YAML. Como algumas remediações possíveis contêm conteúdo de arquivo de configuração literal, a remoção de linhas em branco afeta as remediações correspondentes. Isto faz com que o utilitário openscap falhe as correspondentes verificações de Vulnerabilidade Aberta e Linguagem de Avaliação (OVAL), mesmo que as linhas em branco não tenham qualquer efeito. Para contornar este problema, verifique as descrições das regras e pule os resultados da varredura que falharam por falta de linhas em branco. Alternativamente, use remediações Bash em vez de Remediações Ansíveis, porque as remediações Bash não produzem estes resultados falsos positivos.

(BZ#1795563)

Os perfis baseados em OSPP são incompatíveis com os grupos de pacotes GUI.

Os pacotesGNOME instalados pelo grupo de pacotes Server with GUI requerem o pacote nfs-utils que não esteja em conformidade com o Perfil de Proteção do Sistema Operacional (OSPP). Como conseqüência, a seleção do grupo de pacotes Server with GUI durante a instalação de um sistema com perfis baseados em OSPP ou OSPP, por exemplo, Guia de Implementação Técnica de Segurança (STIG), aborta a instalação. Se o perfil baseado em OSPP for aplicado após a instalação, o sistema não é inicializável. Para contornar este problema, não instale o grupo de pacotes Server with GUI ou qualquer outro grupo que instale a GUI ao usar o perfil baseado em OSPP e perfis baseados em OSPP. Ao utilizar os grupos de pacotes Server ou Minimal Install, o sistema se instala sem problemas e funciona corretamente.

(BZ#1787156)

O sistema RHEL8 com o grupo de pacotes Server with GUI não pode ser remediado usando o perfil do e8

O uso do OpenSCAP Anaconda Add-on para endurecer o sistema no grupo de pacotes Server With GUI com perfis que selecionam regras do grupo Verify Integrity with RPM requer uma quantidade extrema de RAM no sistema. Este problema é causado pelo scanner do OpenSCAP; para mais detalhes, veja Digitalizando grandes números de arquivos com o OpenSCAP faz com que os sistemas fiquem sem memória. Como conseqüência, o endurecimento do sistema usando o perfil RHEL8 Essential Eight (e8) não é bem sucedido. Para contornar este problema, escolha um grupo menor de pacotes, por exemplo, Servidor, e instale pacotes adicionais necessários após a instalação. Como resultado, o sistema terá um número menor de pacotes, a varredura exigirá menos memória e, portanto, o sistema pode ser endurecido automaticamente.

(BZ#1816199)

A digitalização de grandes números de arquivos com OpenSCAP faz com que os sistemas fiquem sem memória

O scanner OpenSCAP armazena todos os resultados coletados na memória até que a varredura termine. Como conseqüência, o sistema pode ficar sem memória em sistemas com pouca memória RAM ao digitalizar um grande número de arquivos, por exemplo, dos grandes grupos de pacotes Server with GUI e Workstation. Para contornar este problema, utilize grupos de pacotes menores, por exemplo, Server e Minimal Install em sistemas com pouca memória RAM. Se você precisar usar grandes grupos de pacotes, você pode testar se seu sistema tem memória suficiente em um ambiente virtual ou de encenação. Alternativamente, você pode adaptar o perfil de escaneamento para desmarcar as regras que envolvem recorrência sobre todo o sistema / de arquivos:

  • rpm_verify_hashes
  • rpm_verify_permissions
  • rpm_verify_ownership
  • file_permissions_unauthorized_world_writable
  • não_files_de_utilizador_de_propriedade_por_utilizador
  • dir_perms_world_writable_system_owned
  • file_permissions_unauthorized_suid
  • file_permissions_unauthorized_sgid
  • file_permissions_ungroupowned
  • dir_perms_world_writable_sticky_bits

Isto evitará que a varredura do OpenSCAP faça com que o sistema fique sem memória.

(BZ#1824152)