Методика выявления уязвимостей и НДВ в ПО — Уровень доверия 4
Документ: ФСТЭК России, 12 мая 2026 г.
Целевой уровень: 4-й уровень доверия (уровень контроля 4)
Область применения: сертификационные испытания СЗИ и СОИБ
Кто проводит: специалисты испытательной лаборатории совместно с разработчиком ОО
Примечание: если организация-разработчик имеет сертификат соответствия процессов безопасной разработки ПО СЗИ требованиям ГОСТ Р 56939-2024, в качестве специалистов испытательной лаборатории рассматриваются специалисты этой организации, ответственные за обеспечение разработки безопасного ПО.
Структура разделов и применимость к уровню контроля 4
| Шифр | Наименование | Базовое | Усиления (УК 4) | Файл |
|---|---|---|---|---|
| ПОД.1 | Анализ документации и иных исходных данных | ✓ | 1, 2, 3, 4, 5 | ПОД.1_анализ_документации.md |
| ПОД.2 | Подготовка исследовательского стенда | ✓ | 1, 2 | ПОД.2_исследовательский_стенд.md |
| КАО.1 | Анализ архитектуры ОО статическими методами | ✓ | 1, 2, 3 | КАО.1_архитектура_статика.md |
| КАО.2 | Анализ архитектуры ОО динамическими методами | ✓ | 1 | КАО.2_архитектура_динамика.md |
| САО | Статический анализ исходных кодов ОО | ✓ | 1, 2, 3 | САО_статический_анализ.md |
| ДАО.1 | Тестирование модулей ОО | ✓ | 1, 2, 3, 4, 5 | ДАО.1_тестирование_модулей.md |
| ДАО.2 | Фаззинг-тестирование ОО | ✓ | 1, 2, 3, 4, 5 | ДАО.2_фаззинг.md |
| ЭКО | Экспертиза кода ОО (ручной анализ) | ✓ | — | ЭКО_экспертиза_кода.md |
| — | Оформление результатов (протокол) | ✓ | — | ПРОТОКОЛ_оформление_результатов.md |
| — | Перечень задач СИ для Redmine | — | — | Перечень_задач_СИ_М3.md |
Перечень задач СИ (Redmine)
Рабочий инструмент для планирования и ведения проекта: Перечень_задач_СИ_М3.md
Документ содержит задачи в формате Redmine для всех этапов исследований — от организации до отправки материалов:
| Этап | Коды задач | Раздел методики |
|---|---|---|
| Организация и запуск | СИ-ОРГ.01—04 | — |
| Анализ документации | СИ-ПОД1.01—12 | ПОД.1 |
| Исследовательский стенд | СИ-ПОД2.01—09 | ПОД.2 |
| Статический анализ архитектуры | СИ-КАО1.01—12 | КАО.1 |
| Динамический анализ архитектуры | СИ-КАО2.01—05 | КАО.2 |
| Статический анализ исходного кода | СИ-САО.01—08 | САО |
| Тестирование модулей | СИ-ДАО1.01—07 | ДАО.1 |
| Фаззинг-тестирование | СИ-ДАО2.01—11 | ДАО.2 |
| Ручная экспертиза кода | СИ-ЭКО.01—08 | ЭКО |
| Устранение недостатков | СИ-НЕД.01—06 | п. 2.7 |
| Протокол и отправка | СИ-ПРОТ.01—13 | Протокол |
| Сопровождение после отправки | СИ-СОПР.01—02 | — |
Порядок проведения исследований
- ПОД.1 — первый шаг: формирование представления об ОО, определение поверхности атаки, разработка методики исследований.
- ПОД.2 — сразу после ПОД.1: подготовка стенда, контролируемая сборка, подготовка отладочных сборок.
- КАО.1, КАО.2, САО, ДАО.1, ДАО.2, ЭКО — параллельно или последовательно в соответствии с разработанной методикой.
- Протокол — оформление результатов по разделу 5 Методики.
Важно: выявленные в ходе исследований недостатки безопасности допускается устранять прямо во время исследования. После устранения повторное исследование обязательно проводится в отношении всех прямо или косвенно затронутых интерфейсов, компонентов, модулей и исходного кода — в полном объёме требований Методики.
Требования к инструментальным средствам (п. 2.5)
Все инструментальные средства анализа и выявления ошибок, уязвимостей и НДВ должны:
- обеспечивать функциональные возможности, достаточные для реализации требований Методики
- не иметь каких-либо ограничений по применению и адаптации (доработке) на территории Российской Федерации
Использование инструментов с ограничениями применения на территории РФ недопустимо.
Путь через Центр исследований
Если разработчик ОО выполнил исследование модулей ОО в рамках деятельности Центра исследований безопасности системного программного обеспечения (portal.linuxtesting.ru) в полном объёме программы исследований безопасности:
- требования соответствующего раздела Методики (САО, ДАО.1, ДАО.2) в отношении этих модулей считаются выполненными
- испытательная лаборатория проводит только проверку (выборочную или полную) представленных результатов
Проверка артефактов результата
Общий агентный контроль: по каждому разделу должен существовать проверяемый комплект материалов, а итоговый протокол должен ссылаться на эти материалы.
| Комплект | Обязательные признаки готовности |
|---|---|
| ПОД.1 | Исходные данные по п. 2.3 получены; поверхность атаки описана в графической нотации; SBOM и перечень образов контейнеров проверены по CycloneDX 1.6/1.7; методика или порядок исследований оформлены |
| ПОД.2 | Среды выбраны по семействам; контролируемая сборка выполнена; стенд защищен; антивирусный контроль и контрольные суммы по ГОСТ 34.11-2012 зафиксированы; отладочные сборки и датчики готовы |
| КАО.1 | Полномочия, открытые источники, результаты разработчика, исходный код, веб-интерфейсы, контейнеры, браузерный код и опции безопасной сборки проверены |
| КАО.2 | Выполнены минимум 3 сценария; сетевые и веб-интерфейсы проверены динамически; специфические угрозы проанализированы |
| САО | Охват модулей, конфигурации анализаторов, машиночитаемые результаты, разметка, выборка ИЛ, патчи и неподдерживаемые языки зафиксированы |
| ДАО.1 | Тесты выполняются на отладочных сборках; выборка, журналы и структурное покрытие каждого модуля приложены; порог 25% проверен |
| ДАО.2 | Цели, входные данные, журналы, метрики эффективности, длительность фаззинга и передача результатов разработчику зафиксированы |
| ЭКО | Область ручного анализа, критерии ошибок а)-т), результаты анализа исходного/восстановленного кода и таблица находок оформлены |
| Протокол | Все комплекты включены как технические результаты; недостатки сведены в таблицу 6; цифровые материалы приложены на электронных носителях |
Числовые пороги: минимальные требования (должно быть не меньше)
Невыполнение означает нарушение требования — недостаток, который должен быть устранён или влечёт прекращение исследований.
| Параметр | Минимум | Нарушение (меньше минимума) |
|---|---|---|
| Средств антивирусной защиты (разных разработчиков) | ≥ 2 | Результаты ПОД.2 недействительны |
| Сред функционирования на каждое семейство | ≥ 1 | Покрытие сред неполное |
| Сценариев функционирования в КАО.2 | ≥ 3 различных | Требование КАО.2 не выполнено |
| Выборка КАО.1: предупреждений на анализатор разработчика | ≥ 10 | Выборочная проверка не засчитывается |
| Выборка САО: критических предупреждений на язык | ≥ 20 | Выборка неполная, анализ неприемлем |
| Выборка САО: количество охватываемых модулей | ≥ 5 | Выборка неполная |
| Выборка САО: предупреждений на анализатор | ≥ 10 | Выборка неполная |
| Самостоятельный анализ ИЛ в САО: число модулей | ≥ 5 | Самостоятельный анализ не засчитывается |
| Самостоятельный анализ ИЛ в САО: предупреждений на язык | ≥ 10 | Самостоятельный анализ не засчитывается |
| Выборка ДАО.1: тестов с нарушениями | ≥ 50 | Выборочная проверка не засчитывается |
| Выборка ДАО.1: охватываемых модулей | ≥ 5 | Выборка неполная |
| Покрытие ДАО.1 (усиление 4): на модуль | ≥ 25% | Тестовое покрытие недостаточно |
| ДАО.2: новых фаззинг-целей ИЛ | ≥ 2 новых ИЛИ ≥ 3 доработанных | Вклад ИЛ не засчитывается |
| ДАО.2 усиление 2: прирост путей/покрытия | ≥ 2× от стартовых образцов | Эффективность фаззинга недостаточна |
| ДАО.2 усиление 2: порог высокого покрытия, после которого прирост можно не учитывать | ≥ 90% по строкам ИЛИ ≥ 80% по базовым блокам | Нельзя ссылаться на высокий порог как основание завершения |
| ДАО.2 усиление 5: время без прироста до завершения | ≥ 2 часа | Фаззинг завершён преждевременно |
Числовые пороги: условия прекращения исследований
Превышение порога означает невозможность продолжения исследований.
| Условие | Порог | Что происходит при превышении |
|---|---|---|
| Объём байт-кода/машинного кода от нестандартных модификаций | > 10 000 инструкций | Исследования прекращаются (ПОД.1 усил. 1) |
| Объём кода механизмов защиты от динамического анализа | > 10 000 строк | Исследования прекращаются (ДАО.1/ДАО.2) |
| Доля неверно размеченных предупреждений в выборке (САО) | > 10% | ИЛ выполняет анализ самостоятельно или прекращает |
| Доля неверно размеченных результатов тестов (ДАО.1) | > 10% | Исследования прекращаются |
| Доля неверно размеченных результатов фаззинга (ДАО.2) | > 10% | Исследования прекращаются |
| Число модулей без выполненных требований ДАО.1 | > 5 модулей | Исследования прекращаются |
| Число фаззинг-целей без выполненных требований ДАО.2 | > 3 целей | Исследования прекращаются |
| Объём кода, не анализированного разработчиком (нет САО) | > 10 000 строк | ИЛ делает САО самостоятельно или прекращает |
Условия безусловного прекращения исследований
Следующие факты прекращают исследования немедленно, без альтернатив:
| Условие | Раздел |
|---|---|
| Взаимодействие сборочной среды с артефактами вне репозитория разработчика | ПОД.2 |
| Использование в сборочном процессе кода, не прошедшего анализ | ПОД.2 |
| Дистрибутив содержит исполняемые файлы, не собранные из исходных кодов | ПОД.2 |
| Динамическая загрузка кода в контекст браузера не из состава ОО | КАО.1 усил. 2 |
| Разработчик отказался снять механизмы защиты от исследований и предлагаемые решения не позволяют провести исследования | ЭКО |
Что расценивается как недостаток безопасности ОО
| Факт | Раздел |
|---|---|
| Избыточные полномочия ОО или его составных частей | КАО.1, КАО.2 |
| Избыточные разрешающие правила доступа к компонентам ОО | КАО.1 |
| Чувствительная информация («секреты») открыто в исходном коде | КАО.1 |
| Взаимодействие браузерного кода с камерой, микрофоном, геопозицией, буфером обмена, методами оплаты и т.п. | КАО.1 усил. 2 |
| Отсутствие опций безопасной компиляции и компоновки | КАО.1 усил. 3 |
| Утечки чувствительных данных в сетевой активности ОО | КАО.2 |
| Ошибки кода по типам а)–т) из ЭКО | ЭКО |
Ключевые пороги для «серых зон» (когда ИЛ сама решает продолжать или нет)
| Ситуация | Условие продолжения | Условие прекращения |
|---|---|---|
| Доля неверной разметки САО (выборка) | ≤ 10% → устранить и продолжить | > 10% → ИЛ делает САО сама или прекращает |
| Число модулей без САО разработчика | ≤ 10 000 строк → ЭКО вместо САО | > 10 000 строк → прекратить или САО самостоятельно |
| Число модулей без ДАО.1 разработчика | ≤ 5 → ИЛ тестирует сама или прекращает | > 5 → прекратить |
| Число целей без ДАО.2 разработчика | ≤ 3 → ИЛ фаззит сама или прекращает | > 3 → прекратить |
Проверка полноты расшифровки
Сверено с исходным ODT от 12 мая 2026 г.:
- основные разделы 1-5, применимость исследований и усилений для уровня контроля 4
- все пороги, влияющие на минимальный объем работ, продолжение или прекращение исследований
- обязательные материалы протокола по п. 5.2-5.5
- приложения 1 и 2 в части обязательной проверки машиночитаемых перечней CycloneDX:
bomFormat,specVersion,metadata,components,externalReferences,properties,GOST:attack_surface,GOST:security_function,STREEBOG-256/STREEBOG-512
Подробные табличные схемы приложений 1 и 2 не переписаны дословно в отдельные справочники; их ключевые обязательные поля вынесены в проверку артефактов ПОД.1 и протокола.
Ссылки на нормативные документы
| Документ | Где применяется |
|---|---|
| ГОСТ Р 56939-2024 «Разработка безопасного ПО. Общие требования» | Везде (оценка результатов разработчика) |
| ГОСТ Р 71207-2024 «Статический анализ ПО. Общие требования» | САО (разметка предупреждений), САО усил. 2 |
| ГОСТ Р 71206-2024 «Безопасный компилятор C/C++» | КАО.1 усил. 3 |
| ГОСТ 34.11-2012 «Функции хэширования» («Стрибог») | ПОД.2 (контрольные суммы) |
| Требования доверия (приказ ФСТЭК от 02.06.2020 № 76) | ПОД.1 (состав документации) |
| Положение о системе сертификации СЗИ (приказ ФСТЭК от 03.04.2018 № 55) | ПОД.1 (методика), ПРОТОКОЛ |
| Портал Центра исследований: portal.linuxtesting.ru | ПОД.1, САО, ДАО.1, ДАО.2 |
| Банк данных угроз ФСТЭК: bdu.fstec.ru | КАО.1 (источники уязвимостей), КАО.2 (веб) |
| CVE, CWE, CAPEC | КАО.1 (источники уязвимостей) |
| CycloneDX 1.6/1.7 (JSON, RFC 8259) | ПОД.1 (формат SBOM) |
| CIS, Kubernetes Security Best Practices | КАО.1 (контейнерное исполнение) |
| SEI CERT C/C++ Coding Standard | ЭКО (классификация ошибок) |
| Common Weakness Enumeration (CWE) | ЭКО (классификация ошибок) |
| Fortify Taxonomy: Software Security Errors | ЭКО (классификация ошибок) |