Eu gostaria que o Samhain monitore 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 com que o Samhain emita estas 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 esse arquivo echo test > /root/somefile
, não receberei nenhuma 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 IgnoreMissing
opção de configuração parece à primeira vista útil, mas não é. Com IgnoreMissing = /root/somefile
in samhainrc
, não há mudança de comportamento. Parece que esta opção é destinada a arquivos que devem desaparecer posteriormente - suprime um alerta se um arquivo existia, mas agora não existe, por exemplo, se um processo automatizado excluir arquivos desatualizados.
Embora /root/somefile
seja obviamente constituído nesse caso, um exemplo de onde um arquivo inexistente começa a existir repentinamente é se o arquivo /home/someuser/.ssh/authorized_keys
não existia anteriormente, mas existe repentinamente - esse poderia ser um usuário mal-intencionado que explorou algo para derrubar uma backdoor, permitindo para fazer logon como um usuário de shell. Gostaria de ser alertado sobre isso.
É possível usar dir = /home/someuser/.ssh
para monitorar todas as alterações na .ssh
pasta do usuário , mas isso é inútil: se for normal o usuário usar SSH em sua conta, o .ssh/known_hosts
arquivo pode mudar, ele pode mudar ssh_config
, etc., e eu não quero para ser alertado por aqueles. Portanto, não quero monitorar o diretório inteiro, exceto um arquivo na lista de permissões; Quero deixar o diretório não monitorado, além de arquivos críticos e específicos.
authorized_keys
disso, funcionaria bem.