Безопасное доказательство и автоматическая блокировка внедрения команд операционной системы
Сервис передаёт имя файла или сетевой адрес в командную оболочку сервера, и злоумышленник через точку с запятой запускает собственную программу. Фильтр на проводе отсекает разрушительные вызовы до отправки, подтверждает ошибку безопасным маркером и выпускает правило фильтрации метасимволов оболочки.
Внедрение команд операционной системы (далее — ОС) возникает, когда прикладная служба вызывает системный интерпретатор для запуска сетевых утилит, архиваторов или конвертеров документов с непроверенной строкой аргументов. При вызове внешних инструментов программными помощниками один неэкранированный разделитель команд позволяет выполнить произвольный исполняемый файл от имени серверной службы.
1. Наглядная схема работы фильтра и компилятора для INJ-CMD
Схема прохождения проверки по классу INJ-CMD: от формирования проверочной пары и перехвата разрушительных команд правилом SEC-ZD-CMD-01 до фиксации свидетеля e22a45273df881ef и выпуска правила IMMUNE-CMD-E22A4527.
2. Перехват опасных мутаций и парный контроль обманкой (INJ-CMD)
До отправки любого проверочного пакета в сокет программный фильтр разбирает строку запроса на наличие опасных системных вызовов. Попытки рекурсивного удаления каталогов, форматирования разделов, остановки служб или изменения прав доступа блокируются правилом SEC-ZD-CMD-01 внутри процесса испытателя.
Доказательство уязвимости строится путём сверки детерминированного отклика на контрольный токен с поведением защищённой ручки, передающей массив аргументов напрямую без вызова оболочки. На четырёх сценариях размеченного стенда зафиксировано два истинно положительных и два истинно отрицательных результата при нулевом числе ложных срабатываний.
Код класса: INJ-CMD (command_injection)
Режим проверки: Активное безопасное зондирование (AUTO_SCAN)
Проверочный зонд: POST /api/v1/vuln/cmdi/ping {"host": "127.0.0.1; id"}
Перехваченная мутация: rm -rf /; mkfs.ext4 /dev/sda; shutdown -h now
Матрица на стенде: TP = 2, FP = 0, TN = 2, FN = 0 (FPR = 0,0%)
Правило фильтра: SEC-ZD-CMD-01
Хэш свидетеля: e22a45273df881ef
Скомпилированный фильтр: IMMUNE-CMD-E22A4527 (время синтеза 20 µs)
3. Автоматический выпуск защитного правила IMMUNE-CMD-E22A4527
На основании подтверждённого свидетеля e22a45273df881ef компилятор за 20 микросекунд формирует правило IMMUNE-CMD-E22A4527. Перехватчик mcp-sentinel блокирует разделители команд, подстановки подоболочек и конвейерные операторы, пропуская штатные доменные имена и идентификаторы.
4. Соседние классы проверки на стенде INDRA
INJ-SQL: Внедрение кода в запросы реляционного хранилищаDIR-TRV: Обход каталога файловой системыAUTH-BOLA: Неправомерный доступ к клиентским записямSSRF-INT: Подделка серверных запросов и обход через перенаправленияSEC-LEAK: Утечка аутентификационных токенов и секретовHDR-SEC: Отсутствие защитных заголовков ответаDOS-RSRC: Истощение вычислительных ресурсов (лабораторный режим)