Назад | Перейти на главную страницу

Может ли Samhain отслеживать файлы, которых не существует, но которые могут появиться в будущем?

Я бы хотел, чтобы Samhain отслеживал файл, например, /root/somefile. Этот файл в настоящее время не существует, но я хотел бы получить уведомление, если он будет создан в любой момент.

Я добавляю это к samhainrc:

[ReadOnly]
file = /root/somefile

Это заставляет Samhain выдавать следующие записи журнала:

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>

И если я создам этот файл с echo test > /root/somefileтогда я делаю не регистрировать любые нарушения политики - добавление этого файла осталось незамеченным.

Как я могу настроить Samhain, чтобы он уведомлял меня, если создается ранее несуществующий интересующий файл?


В IgnoreMissing На первый взгляд, опция конфигурации может показаться полезной, но это не так. С участием IgnoreMissing = /root/somefile в samhainrc, нет никаких изменений в поведении. Похоже, что этот параметр предназначен для файлов, которые, как ожидается, исчезнут позже - он подавляет предупреждение, если раньше файл существовал, но теперь его нет, например, если автоматизированный процесс удаляет устаревшие файлы.


Хотя /root/somefile очевидно, в данном случае создается случай, когда несуществующий файл внезапно начинает существовать, если файл /home/someuser/.ssh/authorized_keys ранее не существовало, но внезапно все же существует - это мог быть злоумышленник, который использовал что-то, чтобы открыть бэкдор, позволяющий ему войти в систему как пользователь оболочки. Это то, о чем я хотел бы знать.

Можно использовать dir = /home/someuser/.ssh контролировать все изменения в пользователе .ssh папку, но это бесполезно: если для пользователя нормально использовать SSH в своей учетной записи, их .ssh/known_hosts файл может измениться, они могут изменить свои ssh_configи т. д., и я не хочу, чтобы они меня тревожили. Поэтому я не хочу контролировать весь каталог, кроме какого-то файла из белого списка; Я хочу, чтобы каталог не контролировался, за исключением определенных критических файлов.

Если я правильно понимаю, вам нужно отслеживать все файлы в каталоге, кроме некоторых файлов или подкаталогов:

Вы можете попробовать следующее:

[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
    #

Больше информации https://www.la-samhna.de/samhain/manual/all-except.html