Aprenda o Linux System Auditing com a Auditd Tool no CentOS/RHEL

Aprenda o Linux System Auditing com a Auditd Tool no CentOS/RHEL

A auditoria do sistema refere-se simplesmente à análise aprofundada de um sistema direcionado específico: uma auditoria é composta por um exame das várias partes que compreendem esse sistema, com avaliação crítica (e teste, se necessário) em diferentes áreas de interesse.

Leia também: Lynis - Ferramenta de Auditoria de Segurança e Digitalização para Sistemas Linux

Um dos subsistemas críticos em RHEL/CENTOS o sistema de auditoria Linux comumente conhecido como Auditd. Ele implementa um meio de rastrear informações relevantes para a segurança em um sistema: ele usa regras pré-configuradas para coletar vastas quantidades de informações sobre eventos que estão acontecendo no sistema e os registra em um arquivo de log, criando um teste de auditoria.

Ele pode registrar informações como data e hora, tipo e resultado de um evento; Usuários que causaram o evento, quaisquer modificações feitas em arquivos/bancos de dados; Usos de mecanismos de autenticação do sistema, como PAM, LDAP, SSH e outros.

Auditd Registre também quaisquer alterações feitas nos arquivos de configuração de auditoria ou qualquer tentativa de acessar arquivos de log de auditoria e quaisquer esforços para importar ou exportar informações para ou do sistema, além de muitas outras informações relacionadas à segurança.

Por que o sistema de auditoria Linux é importante?

  1. Não requer programas ou processos externos para executar em um sistema, tornando-o autossuficiente.
  2. É altamente configurável, portanto, permite visualizar qualquer operação do sistema que você deseja.
  3. Ajuda a detectar ou analisar possíveis compromissos de um sistema.
  4. É capaz de trabalhar como um sistema de detecção independente.
  5. Pode funcionar com sistemas de detecção de intrusões para permitir a detecção de intrusões.
  6. É uma ferramenta vital para auditar investigações forenses.

Os componentes do sistema de auditoria Linux

O sistema de auditoria possui dois componentes principais, a saber:

  • Aplicativos e utilitários/ferramentas do espaço do usuário, e
  • Processamento de chamadas do sistema do lado do kernel-Isso aceita chamadas de sistema de aplicativos de espaço do usuário e os passa por três tipos de filtros, a saber: do utilizador, tarefa, saída, ou excluir.

A parte mais importante é o espaço do usuário Daemon de auditoria (Auditd) que reúne informações com base em regras pré-configuradas, do kernel e gera entradas em um arquivo de log: o log padrão é /var/log/auditoria/auditoria.registro.

Além disso, o Audispd (Daemon Dispatcher de auditoria) é um multiplexor de eventos que interage com Auditd e envia eventos para outros programas que desejam realizar processamento de eventos em tempo real.

Existem vários espaço do usuário Ferramentas para gerenciar e recuperar informações do sistema de auditoria:

  • Auditctl - Uma utilidade para controlar o sistema de auditoria do kernel.
  • AuMearch - Um utilitário para pesquisar arquivos de log de auditoria para eventos específicos.
  • aureport - Uma utilidade para criar relatórios de eventos gravados.

Como instalar e configurar a ferramenta de auditoria em RHEL/CENTOS/FEDORA

Primeiro, verifique se a ferramenta de auditoria está instalada no seu sistema usando o comando rpm e o utilitário grep da seguinte forma:

# rpm -qa | Auditoria Grep 
Verifique a ferramenta Auditd

Se você não tiver os pacotes acima instalados, execute este comando como usuário root para instalá -los.

# yum instalar auditoria 

Em seguida, verifique se Auditd está ativado e em execução, emita os comandos do SystemCTL abaixo no terminal.

--------------- No CentOS/Rhel 7 --------------- # SystemCTL IS-IS-Auditd # SystemCtl Status Auditd # SystemCtl START AUDITD [START] # SystemCtl Ativar Auditd [Enable] --------------- No CentOS/Rhel 6 --------------- # Serviço Auditd Status # Service Auditd Iniciar [Iniciar] # chkconfig Auditd em [Enable] 
Verifique o status da ferramenta Auditd

Agora veremos como configurar Auditd Usando o arquivo de configuração principal /etc/auditor/auditd.conf. Os parâmetros aqui permitem controlar como o serviço é executado, como definir a localização do arquivo de log, número máximo de arquivos de log, formato de log, como lidar com discos completos, rotação de log e muitas outras opções.

# vi/etc/auditor/auditd.conf 

Da saída da amostra abaixo, os parâmetros são auto-explicativos.

Arquivo de configuração Auditd

Entendendo as regras de auditoria

Como mencionamos anteriormente em, Auditd usa regras para coletar informações específicas do kernel. Essas regras são basicamente Auditctl Opções (veja a página do homem) que você pode pré-consagrar regras no /etc/auditoria/regras.D/Auditoria.regras arquivo (no CentOS 6, use o /etc/auditoria/auditoria.regras arquivo), para que eles sejam carregados na startup.

Existem três tipos de regras de auditoria que você pode definir:

  • Regras de controle - Eles permitem a modificação do comportamento do sistema de auditoria e algumas de suas configurações.
  • Regras do sistema de arquivos (também referido como relógios de arquivo) - Ative a auditoria de acesso a um determinado arquivo ou um diretório.
  • Regras de chamada do sistema - Permite o registro das chamadas do sistema feitas por qualquer programa.

Agora abra o arquivo de configuração principal para edição:

# vi/etc/auditoria/regras.D/Auditoria.regras 

Observe que a primeira seção deste arquivo deve conter Regras de controle. Em seguida, adicione suas regras de auditoria (relógios de arquivo e regras de chamada do sistema) na seção intermediária e, finalmente, a última seção contém configurações de imutabilidade, que também são regras de controle.

Exemplos de regras de controle de auditoria

-D #Remove todas as regras anteriores -B 3074 #Define Buffer Tamanho -f 4 #panic na falha -R 120 #Create no máximo 120 mensagens de auditoria por segundo 

Exemplos de regras do sistema de arquivos Auditd

Você pode definir relógios de arquivo usando esta sintaxe:

-w/caminho/para/arquivo/ou/diretório -p permissões -k key_name 

Onde a opção:

  • c - é usado para especificar um arquivo ou diretório para vigiar.
  • p - permissões para serem registradas, r - Para acesso de leitura, c - para acesso a gravar, x - para executar acesso e a - Para mudança de atributo de arquivo ou diretor.
  • -k - Permite definir uma sequência opcional para identificar qual regra (ou um conjunto de regras) criou uma entrada de log específica.

Essas regras permitem que a auditoria assista a eventos fazendo alterações nesses arquivos críticos do sistema.

-W /etc /passwd -p wa -k passwd_changes -w /etc /group -p wa -k group_changes -w /etc /shadow -p wa -k Shadow_changes -w /etc /sudoers -p wa -k sudoers_changes 

Exemplos de regras de chamada do sistema Auditd

Você pode definir uma regra de chamada do sistema usando o formulário abaixo:

-uma ação, filtro -s System_Call -f Campo = Value -k key_name 

onde:

  • Ação - tem dois valores possíveis: sempre ou nunca.
  • filtro - Especifica o filtro de correspondência de regras do kernel (tarefa, saída, usuário e exclusão) é aplicada ao evento.
  • Chamada do sistema - Nome da chamada do sistema.
  • campo - Especifica opções adicionais, como arquitetura, PID, GID etc para modificar a regra.

Aqui estão algumas regras que você pode definir.

-A sempre, saída -f arch = b64 -s adjtimex -s setTimeofday -k time_change -a sempre, saída -s sethostname -s setdomainname -k system_locale 

Por fim, adicione as configurações de imutabilidade no final do arquivo, por exemplo:

-E 1 #Auditorianable -e 2 #Make A configuração imutável -a reinicialização é necessária para alterar as regras de auditoria 
Exemplo de arquivo de configuração de regras Auditd
Arquivo de configuração de regras Auditd

Como definir regras Auditd usando o utilitário AuditCTL

Como alternativa, envie as opções para Auditd Enquanto estiver em funcionamento, usando o Auditctl Como nos exemplos a seguir. Esses comandos podem substituir as regras no arquivo de configuração.

Para listar todas as regras de auditoria atualmente carregadas, passe o -eu bandeira:

# auditctl -l 

Em seguida, tente adicionar algumas regras:

# auditctl -w /etc /passwd -p wa -k passwd_changes # auditctl -w /etc /group -p wa -k group_changes # auditctl -w /etc /sudoers -p wa -k sudoers_changes # auditctl -l 
Adicionar regras Auditd usando Auditctl

Entendendo os arquivos de log do Auditd

Todas as mensagens de auditoria são gravadas em /var/log/auditoria/auditoria.registro arquivo por padrão. Para entender o formato de entrada de log, carregaremos uma regra e verificaremos a entrada do log gerada após um evento que corresponde à regra.

Supondo que tenhamos um diretório secreto de backups, esta regra de auditoria registrará qualquer tentativa de acessar ou modificar este diretório:

# auditctl -w/backups/secret_files/-p rwa -k secret_backup 

Agora, usando outra conta do sistema, tente entrar no diretório acima e executar o comando LS:

$ cd/backups/secret_files/$ ls 

A entrada de log ficará assim.

Verifique os logs de auditoria para alterações

O evento acima é composto por três tipos de registros de auditoria. O primeiro é tipo = syscall:

tipo = syscall msg = auditoria (1505784331.849: 444): arch = c000003e syscall = 257 sucesso = sim saída = 3 a0 = ffffffffffffff9c a1 = 8ad5c0 a2 = 90800 a3 = 0 itens = 1 ppid = 2191 PID = 260 AUID = 1000 uid = 1000 GID = 1000 EU suid = 1000 fsuid = 1000 egid = 1000 sgid = 1000 fsgid = 1000 tty = pts1 ses = 3 comm = "ls" exe = "/usr/bin/ls" subj = não confinado_u: não confinado_r: não confinado_t: s0-s0: c0.c1023 key = "secret_backup" 

O segundo é TIPO = CWD.

TIPO = CWD MSG = AUDIT (1505784331.849: 444): cwd = "/backups/secret_files" 

E o último é tipo = caminho:

TIPO = PATH MSG = AUDIT (1505784331.849: 444): item = 0 nome = "."inode = 261635 dev = 08: 01 modo = 040755 ouid = 0 ogid = 0 rdev = 00: 00 obj = uncfined_u: object_r: default_t: s0 objType = normal 

Você pode encontrar uma lista completa de todos os campos de eventos (como MSG, Arch, SES etc ...) e seus significados na referência do sistema de auditoria.

É tudo por agora. No próximo artigo, veremos como usar o AuMearch para consultar arquivos de log de auditoria: explicaremos como pesquisar informações específicas dos logs de auditoria. Se você tiver alguma dúvida, entre em contato conosco através da seção de comentários abaixo.