我在 AWS 上有一个服务器,GuardDuty 开始向我发送通知:
*** "type":"Backdoor:EC2/C&CActivity.B!DNS",
*** {"domain":"libcurl.so","protocol":"UDP","blocked":false}
*** is querying a domain name associated with a known Command & Control server. ***
我用所有可能的安全工具检查了服务器,但什么也没发现。tcpdump -A
我发现我的服务器发送了有关此域的此类请求。我已打开 auditd。但没有发现任何异常。
我的问题是,如何确定究竟哪个进程发送了这个请求?
答案1
我担心通过正常的数据包捕获无法从数据包中识别出 PID,因为您所能看到的只是数据包从哪个端口发送的。
您可以使用 netstat 来识别谁在使用该端口,但 DNS 需要几毫秒的时间,所以您必须非常幸运。
Systemtap 可用于查找哪个进程使用示例 systemtap 脚本向 dns 发送了 udp 数据包:https://sourceware.org/systemtap/examples/network/who_sent_it.stp
AWS 提供的最后解决方案:如果您无法识别并阻止 EC2 实例上的未经授权的活动,我们建议您终止受损的 EC2 实例并根据需要将其替换为新实例。
答案2
AWS官方解答:
The GuardDuty team has confirmed this to be a false positive. The domain "libcurl.so" has been removed from the source threat intelligence list.
仅供参考:密码并不弱,并且已实现其他最佳实践。OSSEC、Tripwire 和其他内容都在服务器上。