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.
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.
É 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.
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.
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>.