Руткиты / вредоносное ПО
Следы руткитов, бэкдоров и скрытых процессов — признаки уже случившейся компрометации с наивысшим приоритетом.
- Следы известных руткитов Наличие файлов, путей или сигнатур известных руткитов.
- Внедрение через ld.so.preload Библиотеки, принудительно загружаемые через /etc/ld.so.preload или LD_PRELOAD.
- Скрытые процессы Расхождение между выводом ps и /proc (скрытые PID).
- Подозрительные модули ядра Загруженные неподписанные или неизвестные модули ядра.
- Интерфейс в неразборчивом режиме Сетевые интерфейсы в неразборчивом (promiscuous) режиме.
- Результат сканера руткитов Предупреждения rkhunter / chkrootkit, если они установлены.
Обновления безопасности
Установленные обновления безопасности и статус окончания поддержки — подверженность известным уязвимостям.
- Неустановленные обновления безопасности Количество неустановленных обновлений безопасности (yum / apt).
- ОС снята с поддержки Достиг ли выпуск ОС конца жизненного цикла.
- Требуется перезагрузка ядра Работающее ядро отличается от последнего установленного (нужна перезагрузка).
Конфигурация SSH
Укрепление точки удалённого доступа — вход под root, парольная аутентификация, пустые пароли.
- Прямой вход под root Параметр sshd PermitRootLogin.
- Пустые пароли в SSH Параметр sshd PermitEmptyPasswords.
- Парольная аутентификация SSH Параметр sshd PasswordAuthentication (предпочтительна аутентификация по ключу).
- Слабые алгоритмы SSH Использование устаревшего протокола либо слабых KEX, шифров или MAC.
- Лимит попыток аутентификации SSH Значение MaxAuthTries в sshd.
Учётные записи / привилегии
Поверхность повышения привилегий — дубликаты UID0, учётные записи с пустым паролем, слишком широкий sudo.
- Дубликат UID 0 Учётные записи с UID 0, отличные от root.
- Учётные записи с пустым паролем Учётные записи с пустым паролем в /etc/shadow.
- sudo без пароля Слишком широкие правила sudo с NOPASSWD (например ALL).
- Срок действия паролей Задан ли максимальный срок действия пароля.
- Оболочки системных учётных записей Системные учётные записи с оболочкой для входа.
Сетевая доступность извне
Открытые наружу службы, устаревшие протоколы, публично доступные порты БД.
- Устаревшие службы с открытым текстом Активные telnet, rsh, rlogin, ftp без шифрования.
- Открытые порты БД MySQL / PostgreSQL / Redis / Mongo слушают на 0.0.0.0.
- Открытые слушающие сокеты Службы, слушающие на 0.0.0.0 / ::.
Права файловой системы
Файлы, доступные на запись всем, SUID и права на чувствительные файлы — пути локального повышения привилегий.
- Права на /etc/shadow Владелец и права файла shadow (640 / 000).
- Файлы, доступные на запись всем Файлы и каталоги, доступные на запись всем и без sticky-бита.
- Инвентаризация SUID/SGID Неожиданные программы с битом SUID/SGID.
- Права на /etc/passwd Права файла passwd (644, владелец root).
- Запрет выполнения в /tmp Смонтирован ли /tmp с noexec / nosuid.
Укрепление системы
Настройки ядра и модулей безопасности — ASLR, SELinux, SYN cookies и другие базовые вещи.
- SELinux / AppArmor Работает ли мандатный контроль доступа в режиме enforcing.
- ASLR Значение kernel.randomize_va_space (рекомендуется 2).
- TCP SYN cookies Включён ли net.ipv4.tcp_syncookies.
- Перенаправление IP net.ipv4.ip_forward (0, если это не маршрутизатор).
- Ограничение дампов памяти Ограничения дампов памяти для setuid-процессов и в целом по системе.
Службы / межсетевой экран
Активный межсетевой экран хоста и лишние службы — сокращение поверхности атаки.
- Межсетевой экран хоста Активен ли firewalld / ufw / nftables.
- Лишние службы Демоны, включённые без необходимости.
Аудит / журналирование
auditd и syslog — необходимое условие для расследования и криминалистики после взлома.
- Служба аудита (auditd) Запущена ли служба auditd.
- Системное журналирование Запущен ли rsyslog / journald.
Отслеживайте эти версии на своих серверах
InfraGuard собирает версии установленного ПО со всех серверов и отмечает версии с известными уязвимостями. Self-hosted — данные не покидают вашу сеть.