При аудите обычно смотрят TCP- и UDP-порты, но многие сервисы вообще не используют сеть. Вместо этого они обмениваются данными через UNIX-сокеты.
Именно поэтому их тоже стоит периодически проверять.
▪️Посмотреть все UNIX-сокеты
Самый удобный способ:
ss -xl
Ключ -x показывает UNIX-сокеты, а -l - только те, которые находятся в режиме ожидания соединений.▪️Получить больше информации
Если нужны процессы-владельцы:
ss -xlp
Например:u_str LISTEN 0 128 /run/docker.sock
users:(("dockerd",pid=812,fd=7))
Сразу видно, какой процесс создал сокет.▪️На что обратить внимание
Особый интерес представляют сокеты в нестандартных местах:
/tmp/
/dev/shm/
/home/user/
Большинство системных сервисов используют /run или /var/run. Если сокет появился в /tmp, стоит проверить, кто его создал и зачем.▪️Найти сокеты через файловую систему
find / -type s 2>/dev/null
Это покажет все файлы типа socket, даже если они сейчас не используются.▪️Когда это полезно
UNIX-сокеты используют Docker, Podman, PostgreSQL, Redis, Nginx, PHP-FPM, systemd и десятки других сервисов.
Неожиданный сокет может указывать на недавно установленное ПО, самописный сервис или процесс, который не должен работать на сервере.
▪️Почему это важно
Во многих инцидентах внимание уделяют только открытым сетевым портам. Но локальный IPC тоже может стать точкой входа или способом взаимодействия между процессами. Проверка UNIX-сокетов помогает увидеть часть инфраструктуры, которая остаётся незаметной при обычном аудите сети.
BashTex 📱 #bash #linux