Esta resposta explica o que precisa ser feito, mas as especificidades de como dependem de sua distribuição, sua configuração e propósito e quais ferramentas você escolhe para analisar os dados :
O que você está procurando é o daemon Auditd no Linux. A partir do manpage auditd (8) :
auditd is the userspace component to the Linux Auditing System. It's responsible for writing audit records to the disk. Viewing the logs is done with the ausearch or aureport utilities. Configuring the audit rules is done with the auditctl utility. During startup, the rules in
/etc/audit/audit.rules
are read by auditctl and loaded into the kernel. Alterately, there is also an augenrules program that reads rules located in/etc/audit/rules.d/
and compiles them into anaudit.rules
file. The audit daemon itself has some configuration options that the admin may wish to customize. They are found in theauditd.conf
file.
A auditoria usa funções embutidas no kernel para criar logs sempre que certas chamadas do sistema são feitas, de acordo com suas especificações. Uma vez configurado, você encontrará os registros em /var/log/audit
ou em algum lugar semelhante por sua distribuição.
Para auditar o acesso a um arquivo, você usaria algo semelhante a:
auditctl -w /path/to/interesting/files/ -p rwxa -k myfileaudits
Em que -w
especifica o caminho para os arquivos -p
especifica que o sistema irá auditar r eads w ritos, e x ecutions, e um ttribute ou permissão muda. Finalmente, a opção -k
permite que você especifique uma chave arbitrária para usar ao procurar por esta regra com ausearch .
Note que, embora auditd funcione em chamadas do sistema, -p r
não rastreia a função read , mas abre para que o os registros não são inundados com cada leitura, mas uma entrada é feita toda vez que um arquivo é aberto para leitura.
Uma vez que a auditoria esteja ativada e os logs tenham sido instalados, ausearch poderá ser usado para analisar esses registros para todo o acesso aos arquivos especificados, e ferramentas padrão de texto ou estatísticas poderão ser usadas para gerar os registros. Eles podem variar de grep
e wc -l
para contar as entradas de log ou alguma combinação de scripts e GNU-R GNU-R a> ou gnuplot para gerar gráficos e relatórios.
Outra alternativa é usar o SELinux . Enquanto o SELinux é uma ferramenta para controle de acesso que normalmente registra apenas negações de acesso, ele pode ser configurado para registrar o acesso TODOS e fornecer informações semelhantes para auditoria.
Editar: Se um registro de acesso for necessário desde o início : por exemplo, durante a instalação do SO, durante a inicialização antes do início do auditd ou antes da instalação do auditd , então medidas mais extremas são necessárias. Pode ser necessário criar um instalador personalizado ou um arquivo de inicialização initrd.img
personalizado para carregar o depurador necessário ou as ferramentas de rastreamento no nível do kernel. Essas ferramentas de rastreamento podem incluir dtrace , perf , SystemTap , ktap ou ferramentas semelhantes no nível do depurador para obter acesso durante a inicialização. Uma boa referência é link e um exemplo desse tipo de análise para desempenho do sistema, em vez de auditoria é bootchart .
Configurar isso está além do escopo da minha experiência, no entanto - espero que as referências sejam úteis.