Eu gostaria que o Samhain monitorasse um arquivo, por exemplo, /root/somefile
. Este arquivo não existe atualmente, mas eu gostaria de ser notificado se ele for criado a qualquer momento.
Eu adiciono isso a samhainrc
:
[ReadOnly]
file = /root/somefile
Isso faz o Samhain emitir essas entradas de log:
Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT : [2018-10-18T22:54:04+0000] interface=<lstat>, msg=<No such file or directory>, userid=<0>, path=</root/somefile>
Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT : [2018-10-18T22:54:04+0000] msg=<POLICY MISSING>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: INFO : [2018-10-18T22:54:19+0000] msg=<Checking [ReadOnly]>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: NOTICE : [2018-10-18T22:54:19+0000] msg=<Check failed>, path=</root/somefile>
E se eu criar este arquivo com echo test > /root/somefile
, então não receberei qualquer violação de política registrada - a adição desse arquivo passou despercebida.
Como posso configurar o Samhain para me notificar se um arquivo de interesse anteriormente inexistente for criado?
A opção de configuração IgnoreMissing
parece, à primeira vista, ser útil, mas não é. Com IgnoreMissing = /root/somefile
em samhainrc
, não há mudança no comportamento. Parece que essa opção é destinada a arquivos que devem desaparecer mais tarde - ela suprime um alerta se um arquivo existia, mas agora não, por exemplo, se um processo automatizado excluir arquivos que estão desatualizados.
Embora /root/somefile
seja obviamente criado neste caso, um exemplo de onde um arquivo inexistente de repente começa a existir é se o arquivo /home/someuser/.ssh/authorized_keys
não existia anteriormente mas, de repente, existe - isso pode ser um malware usuário que explorou algo para soltar um backdoor permitindo que eles fizessem logon como um usuário do shell. Isso é algo que eu gostaria de ser alertado.
É possível usar dir = /home/someuser/.ssh
para monitorar todas as alterações na pasta .ssh
do usuário, mas isso é inútil: se é normal para o usuário usar o SSH em sua conta, sua% O arquivo.ssh/known_hosts
pode mudar, eles podem alterar seus ssh_config
, etc., e eu não quero ser alertado por eles. Portanto, não quero monitorar todo o diretório além de algum arquivo na lista de permissões; Eu quero deixar o diretório não monitorado além de arquivos críticos específicos.