Samhain peut-il surveiller un fichier qui n'existe pas, mais qui pourrait l'être à l'avenir?

8

J'aimerais que Samhain surveille un fichier, par exemple /root/somefile,. Ce fichier n'existe pas actuellement, mais j'aimerais être informé s'il est créé à tout moment.

J'ajoute ceci à samhainrc:

[ReadOnly]
file = /root/somefile

Cela provoque Samhain à émettre ces entrées de journal:

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>

Et si je crée ce fichier avec echo test > /root/somefile, alors je ne pas obtenir toute violation de la politique Connectée - l'ajout de ce fichier a été inaperçu.

Comment puis-je configurer Samhain pour m'avertir si un fichier d'intérêt auparavant inexistant est créé?


L' IgnoreMissingoption de configuration semble à première vue utile, mais elle ne l'est pas. Avec IgnoreMissing = /root/somefilein samhainrc, il n'y a pas de changement de comportement. Il semble que cette option soit destinée aux fichiers qui devraient disparaître plus tard - elle supprime une alerte si un fichier existait auparavant, mais ne le fait plus, par exemple si un processus automatisé supprime les fichiers obsolètes.


Bien que cela /root/somefilesoit évidemment constitué dans ce cas, un exemple de cas où un fichier inexistant commence soudainement à exister est si le fichier /home/someuser/.ssh/authorized_keysn'existait pas auparavant mais existe soudainement - cela pourrait être un utilisateur malveillant qui a exploité quelque chose pour supprimer une porte dérobée permettant pour qu'ils se connectent en tant qu'utilisateur shell. C'est quelque chose dont je voudrais être alerté.

Il est possible d'utiliser dir = /home/someuser/.sshpour surveiller toutes les modifications dans le .sshdossier de l'utilisateur , mais cela ne sert à rien: s'il est normal que l'utilisateur utilise SSH dans son compte, son .ssh/known_hostsfichier peut changer, il peut changer son ssh_config, etc., et je ne veux pas d'être alerté par ceux-là. Par conséquent, je ne veux pas surveiller l'intégralité du répertoire à l'exception d'un fichier sur liste blanche; Je souhaite laisser le répertoire sans surveillance, à l'exception des fichiers critiques spécifiques.

Richard Downer
la source
Vous pouvez contourner ce problème en créant un fichier vide. Dans ce cas, authorized_keyscela fonctionnerait bien.
Michael Hampton
@MichaelHampton en effet, et c'est la solution de contournement que j'utilise. Cela signifie que je dois garder mon script de configuration créant des fichiers vides synchronisés avec la configuration Samhain - moins qu'idéal mais cela fonctionne.
Richard Downer

Réponses:

0

Si je comprends bien, vous devez surveiller tous les fichiers dans dir, à l'exception de certains fichiers ou sous-répertoires:

Vous pouvez essayer ensuite:

[ReadOnly] 
    #
    dir=/home/someuser/.ssh 
    # 
    [Attributes] 
    # 
    # less restrictive policy for the directory file itself 
    # 
    file=/home/someuser/.ssh 
    # 
    [IgnoreAll] 
    # 
    # exclude these file and directories 
    #
    file=/home/someuser/.ssh/known_hosts
    #dir=-1/etc/calendar
    #

Plus d'information https://www.la-samhna.de/samhain/manual/all-except.html

Ivan Gurzhiy
la source
"Si je comprends bien, vous devez surveiller tous les fichiers dans dir, sauf certains fichiers ou sous-répertoires" - ce n'est pas correct. Je ne veux pas surveiller tous les fichiers. Je veux surveiller un fichier spécifique (ou un petit nombre de fichiers) avec des noms connus et spécifiques et ignorer tous les autres. par exemple, dans le répertoire personnel d'un utilisateur, je souhaite surveiller .bashrc. Je ne veux pas avoir à ajouter à la liste blanche tous les fichiers possibles qu'un utilisateur pourrait créer dans son répertoire personnel. Le problème est que s'il .bashrcn'existe pas à l'avance, Samhain ne le surveillera pas du tout et ne m'avertira pas s'il est créé plus tard avec un contenu hostile.
Richard Downer