16.4. Trabalhando com Trilhas de Auditoria
Anterior | Capítulo 16. Auditoria de Evento de Segurança | Próxima

## 16.4. Trabalhando com Trilhas de Auditoria

Como as trilhas de auditoria são armazenadas no formato binário BSM, várias ferramentas internas estão disponíveis para modificar ou converter essas trilhas em texto. Para converter arquivos de trilha em um formato de texto simples, use o `praudit`. Para reduzir o arquivo de trilha de auditoria para fins de análise, arquivamento ou impressão, use o `auditreduce`. Esse utilitário suporta vários parâmetros de seleção, incluindo tipo de evento, classe de evento, usuário, data ou hora do evento e o caminho ou objeto do arquivo em questão.

Por exemplo, para baixar todo o conteúdo de um log de auditoria especificado em texto simples:

    # praudit /var/audit/AUDITFILE

Onde `AUDITFILE` é o log de auditoria a ser descarregado.

As trilhas de auditoria consistem em uma série de registros de auditoria compostos por tokens, em que o `praudit` imprime sequencialmente, um por linha. Cada token é de um tipo específico, como `header` (um cabeçalho de registro de auditoria) ou `path` (um caminho de arquivo de uma pesquisa de nome). O seguinte é um exemplo de um evento `execve`:

    header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
    exec arg,finger,doug
    path,/usr/bin/finger
    attribute,555,root,wheel,90,24918,104944
    subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
    return,success,0
    trailer,133

Esta auditoria representa uma chamada `execve` bem-sucedida, na qual o comando `finger doug` foi executado. O token `exec arg` contém a linha de comando processada apresentada pelo shell ao kernel. O token `path` contém o caminho para o executável conforme procurado pelo kernel. O token `attribute` descreve o binário e inclui o modo de arquivo. O token `subject` armazena o ID do usuário de auditoria, ID do usuário e ID do grupo, ID do usuário real e ID do grupo, ID do processo, ID da sessão, ID da porta e endereço de login. Observe que o ID do usuário de auditoria e o ID do usuário real são diferentes quando o usuário `robert` mudou para a conta `root` antes de executar este comando, mas é auditado usando o usuário original autenticado. O token `return` indica a execução bem-sucedida e o `trailer` conclui o registro.

O formato de saída XML também é suportado e pode ser selecionado incluindo `-x`.

Como os logs de auditoria podem ser muito grandes, um subconjunto de registros pode ser selecionado usando `auditreduce`. Este exemplo seleciona todos os registros de auditoria produzidos para o usuário `trhodes` armazenados em `AUDITFILE`:

    # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

Os membros do grupo `audit` têm permissão para ler trilhas de auditoria em `/var/audit`. Por padrão, esse grupo está vazio, portanto, apenas o usuário `root` pode ler trilhas de auditoria. Os usuários podem ser adicionados ao grupo `auditoria` para delegar direitos de revisão de auditoria. Como a capacidade de rastrear o conteúdo do log de auditoria fornece informações significativas sobre o comportamento dos usuários e processos, recomenda-se que a delegação dos direitos de revisão de auditoria seja executada com cautela.

### 16.4.1. Monitoramento em Tempo Real Usando Pipes de Auditoria

Pipes de auditoria são pseudo-dispositivos clones que permitem que os aplicativos acessem o fluxo de registro de auditoria em tempo real. Isto é principalmente de interesse para os autores de aplicações de detecção de intrusão e monitoramento de sistemas. No entanto, o dispositivo de canal de auditoria é uma maneira conveniente para o administrador permitir o monitoramento ao vivo sem incorrer em problemas com a propriedade do arquivo de trilha de auditoria ou a rotação de log interrompendo o fluxo de eventos. Para acompanhar o fluxo de eventos de auditoria em tempo real:

    # praudit /dev/auditpipe

Por padrão, os nós de dispositivo dos pipes de auditoria são acessíveis apenas para o usuário `root`. Para torná-los acessíveis aos membros do grupo `audit`, adicione uma regra `devfs` para `/etc/devfs.rules`:

    add path 'auditpipe*' mode 0440 group audit

Veja devfs.rules(5) para mais informações sobre como configurar o sistema de arquivos devfs.

### Atenção:

É fácil produzir ciclos de feedback de evento de auditoria, nos quais a visualização de cada evento de auditoria resulta na geração de mais eventos de auditoria. Por exemplo, se toda a rede I/O for auditada e `praudit` for executada a partir de uma sessão SSH, um fluxo contínuo de eventos de auditoria será gerada em uma taxa alta, pois cada evento sendo impresso gerará outro evento. Por esse motivo, é aconselhável executar `praudit` em um dispositivo de pipe de auditoria a partir de sessões sem auditoria de I/O de baixa granularidade.

### 16.4.2. Rotação e Compactação de Arquivos de Trilha de Auditoria

As trilhas de auditoria são gravadas pelo kernel e gerenciadas pelo daemon de auditoria, auditd(8). Os administradores não devem tentar usar o newsyslog.conf(5) ou outras ferramentas para rotacionar diretamente os logs de auditoria. Em vez disso, o `audit` deve ser usado para encerrar a auditoria, reconfigurar o sistema de auditoria e executar a rotação de log. O comando a seguir faz com que o daemon de auditoria crie um novo log de auditoria e sinalize ao kernel para alternar para o novo log. O log antigo será finalizado e renomeado, podendo então ser manipulado pelo administrador:

    # audit -n

Se auditd(8) não estiver em execução no momento, este comando falhará e uma mensagem de erro será apresentada.

Adicionar a seguinte linha ao `/etc/crontab` agendará essa rotação a cada doze horas:

    0     */12       *       *       *       root    /usr/sbin/audit -n

A alteração terá efeito quando o `/etc/crontab` for salvo.

A rotação automática do arquivo de trilha de auditoria com base no tamanho do arquivo é possível usando `filesz` em `audit_control`, conforme descrito em Seção 16.3.2.1, “O arquivo `audit_control`”.

Como os arquivos de trilha de auditoria podem se tornar muito grandes, geralmente é desejável compactar ou arquivar rastros depois que eles forem fechados pelo daemon de auditoria. O script `audit_warn` pode ser usado para executar operações personalizadas para uma variedade de eventos relacionados à auditoria, incluindo a terminação limpa de trilhas de auditoria quando elas são rotacionadas. Por exemplo, o seguinte pode ser adicionado ao `/etc/security/audit_warn` para compactar as trilhas de auditoria ao serem fechados:

    #
    # Compress audit trail files on close.
    #
    if [ "$1" = closefile ]; then
            gzip -9 $2
    fi

Outras atividades de arquivamento podem incluir a cópia de arquivos de trilha para um servidor centralizado, a exclusão de arquivos de trilha antigos ou a redução da trilha de auditoria para remover registros desnecessários. Este script será executado somente quando os arquivos da trilha de auditoria forem finalizados de forma limpa, portanto, não serão executados em trilhas deixadas sem serem eliminadas após um desligamento incorreto.

Anterior | Acima | Próxima
16.3. Configuração de Auditoria | Principal | Capítulo 17. Armazenamento

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.