1

我想知道是否有人知道如何识别 Ansible 在远程主机中运行的命令。

为了给你更多的背景,我将深入描述我的工作流程:

  • 我在凌晨 1 点到 6 点之间安排了一个作业,它运行合规性 Ansible 剧本,以确保生产服务器配置是最新的并且配置良好,但是,这个剧本更改了文件/etc夹内的一些文件。

  • 除此之外,我还有一个 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:在我看来python3,将用户列入白名单root不是解决方案。

4

1 回答 1

0

Ansible 是 python 工具,所以访问文件的进程是python3. Ansible 执行的命令基于 playbook 中的步骤。

falco您可以通过修改规则来解决您的问题。您可以评估proc.pcmdlinein falcon 规则和链,proc.aname以识别命令是由 ansible 进程执行的(例如,进程是python3,父进程是sh祖父进程sudo,等等)

于 2021-03-14T04:05:56.277 回答