Как определить команды, выполняемые Ansible на удаленном хосте в контексте Falco?
Я хотел бы знать, есть ли у кого-нибудь представление о том, как идентифицировать команды, выполняемые Ansible на удаленном хосте.
Чтобы дать вам больше контекста, я подробно опишу свой рабочий процесс:
У меня есть запланированное задание с 1:00 до 6:00, которое запускает сборник воспроизведения Ansible, чтобы убедиться, что конфигурация производственных серверов актуальна и хорошо настроена, однако эта книга воспроизведения изменяет некоторые файлы внутри
папка. Помимо этого, у меня есть стек Falco, который следит за тем, что происходит на производственных серверах, и выдает предупреждения, когда обнаруживается событие, которое я описываю как подозрительное (это может быть системный вызов / сетевое соединение / редактирование конфиденциального файла "/etc / passwd, pam.conf, ..."и т. д.
Итак, проблема, с которой я столкнулся, заключается в том, что моя книга запускает некоторые предупреждения, например:
Warning Sensitive file opened for reading by non-trusted program (user=XXXX user_loginuid=XXX program=python3 command=python3 file=/etc/shadow parent=sh gparent=sudo ggparent=sh gggparent=sshd container_id=host image=<NA>)
У меня вопрос, можем ли мы установить «флаг или префикс» для всех команд Ansible, что позволит мне занести этот флаг префикса в белый список и избежать срабатывания моих предупреждений ни за что.
PS: белый список
1 ответ
Ansible - это инструмент Python, поэтому процесс доступа к файлу будет. Команды, которые выполняет Ansible, основаны на шагах, указанных в playbook.
Вы можете решить свою проблему, изменив
falco
правила. Вы можете оценить
proc.pcmdline
в правлении сокола и цепи
proc.aname
чтобы определить, что команда была выполнена доступным процессом (например, процесс
python3
, родитель
sh
дедушка и бабушка
sudo
, так далее.)