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

Как определить процесс, который делает DNS-запрос?

У меня есть сервер на 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 Я видел, что мой сервер отправляет такой запрос об этом домене. Я включил аудит. Но ничего странного не обнаружено.

У меня вопрос, как определить, какой именно процесс отправляет этот запрос?

Официальный ответ 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 и прочее.

Боюсь, что при обычном захвате пакетов невозможно определить PID из пакетов, потому что все, что вы можете видеть, - это порт, с которого был отправлен пакет.

Вы можете использовать netstat, чтобы определить, кто использует этот порт, но DNS занимает миллисекунды, так что вам должно быть очень повезло.

Systemtap можно использовать для определения того, какой процесс отправил udp-пакеты в dns, используя пример сценария systemtap:https://sourceware.org/systemtap/examples/network/who_sent_it.stp

Последнее решение, предоставленное AWS: если вы не можете идентифицировать и остановить несанкционированные действия на своем инстансе EC2, мы рекомендуем вам прекратить работу скомпрометированного инстанса EC2 и при необходимости заменить его новым.