5. Инструментальное сканирование
Суть этапа
Получаем воспроизводимые сигналы от инструментов до подключения агента. Сканеры работают с файлами как с данными и не запускают клиентский сайт.
Как работает
- Создаём задачу с
snapshotIdи версиями образа, инструментов и правил. - Исполнитель получает подготовленную копию и запускает разрешённые проверки.
- Собирает находки, свидетельства, покрытие и ошибки каждого инструмента.
- Передаёт результаты на сохранение; после этого ресурсы можно освободить.
В 0.1.0 задачу из PostgreSQL забирает исполнитель на отдельном сервере и запускает ограниченный контейнер. Проверка структуры, распаковка и сканирование — шаги одной задачи. Сохраняем номер попытки, срок владения и идемпотентный результат; просроченная попытка не перезаписывает новую.
Kubernetes Jobs — кандидат для масштабирования в 0.2.0, а не условие первого релиза.
Набор проверок
| Проверка | Что ищем |
|---|---|
| Инвентаризация | CMS, компоненты и доступные версии |
| Статические правила | Подозрительные конструкции PHP и конфигурации |
| Антивирусные проверки файлов | Признаки malware в поддерживаемых форматах |
| Секреты | Наличие утечек без раскрытия значений в отчёте |
| Структура сайта | Исполняемые файлы в загрузках, несоответствия типов и расположения |
Для 0.1.0 берём существующие проверки Securify и ClamAV 1.4 LTS (clamscan на задачу, базы обновляются вне контейнера; решение G04). Semgrep с выбранными PHP-правилами — возможное расширение. Покрытие и лицензии выбранных инструментов проверяем до включения. Semgrep.
Изоляция
Без FTP-секретов, Docker socket и административного доступа к серверу. Сканеры работают без сети, под непривилегированным пользователем, с лимитами CPU, памяти, диска, процессов и времени. Получение входа и выгрузку результатов организуем отдельно с узкими правами. Контейнер сам по себе не гарантирует полную защиту от недоверенных файлов. Принятый профиль (gVisor, без сети, read-only, лимиты и квота диска) — в решении G04 спецификации 0.1.0.
Результат этапа
Структурированный результат каждого сканера с версиями и ограничениями. Находка — сигнал для исследования, а отсутствие находок не доказывает, что все файлы и все виды угроз были проверены.