Как определить команды, выполняемые 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, так далее.)

Другие вопросы по тегам