Перейти к содержимому

5. Инструментальное сканирование ​

Суть этапа ​

Получаем воспроизводимые сигналы от инструментов до подключения агента. Сканеры работают с файлами как с данными и не запускают клиентский сайт.

Как работает ​

  1. Создаём задачу с snapshotId и версиями образа, инструментов и правил.
  2. Исполнитель получает подготовленную копию и запускает разрешённые проверки.
  3. Собирает находки, свидетельства, покрытие и ошибки каждого инструмента.
  4. Передаёт результаты на сохранение; после этого ресурсы можно освободить.

В 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.

Результат этапа ​

Структурированный результат каждого сканера с версиями и ограничениями. Находка — сигнал для исследования, а отсутствие находок не доказывает, что все файлы и все виды угроз были проверены.

Securify · Документация проекта · Прототип → MVP