ДАО.1 — Тестирование модулей объекта оценки
Раздел методики: 4.3.2
Применимость для уровня доверия 4 (уровень контроля 4): базовое исследование + усиления 1, 2, 3, 4, 5
Кто проводит: испытательная лаборатория
Важно: для уровня контроля 4 — выполняется на специальных отладочных сборках ОО со встроенными датчиками ошибок (подготовленных на этапе ПОД.2, усиление 1)
Задача исследования
Выявление недостатков безопасности ОО, в том числе ошибок реализации функций безопасности ОО — самостоятельно и в результате анализа результатов выполнения процессов разработки ОО по ГОСТ Р 56939-2024 — методом и инструментами автоматического динамического тестирования модулей ОО со сбором покрытия.
Исходные данные
От разработчика ОО (п. 2.3 Методики) — в первую очередь подпункт «ж»:
- ж) ⭐ Тесты (приоритет): системные (интеграционные), функциональные, регрессионные, модульные, фаззинг-тесты, в т.ч. синтетические; тестовая документация, демонстрирующая прослеживаемость ФБ ОО и функциональных тестов — с описанием целей тестирования, тестовых процедур, ожидаемых и фактических результатов (журналы, скриншоты); конфигурации инструментальных средств анализа
- б) Исходный код ОО
- г) Дистрибутив ОО
- д) Результаты выполнения процессов разработки ОО по ГОСТ Р 56939-2024: результаты интеграционного, функционального, модульного тестирования, в т.ч. демонстрирующего выполнение ФБ ОО
- з) При внесении изменений в сертифицированный ОО: план поддержки безопасности заимствованных компонентов
- м) Методики тестирования open-source компонентов с портала portal.linuxtesting.ru
Из предыдущих этапов:
- Сведения из ПОД.1: методика проведения исследований, поверхность атаки, перечень анализируемых модулей
- Испытательный стенд по результатам ПОД.2, включая специальные отладочные сборки со встроенными датчиками срабатывания ошибок
Требования к проведению исследования
Оценка результатов разработчика
При тестировании модулей оцениваются исходные данные по п. 3.1 Методики и реализация разработчиком следующих требований:
а) Выполняется автоматическое тестирование всех модулей, реализующих ФБ ОО.
Тесты могут быть реализованы на различных уровнях: системном, интеграционном, модульном.
б) Выполняется тестирование модулей для каждой процессорной архитектуры, поддержка которой обеспечивается исследовательским стендом.
в) Выполняется сбор тестового покрытия по функциям исходного или исполняемого кода для каждого тестируемого модуля ОО.
г) Выполняется анализ журналов тестирования для каждого тестируемого модуля на предмет:
- сбоев и нарушений требований, проверяемых тестами
- событий, порождаемых датчиками срабатывания ошибок
Не учитываются тесты, в ходе выполнения которых не вызываются функции подлежащих тестированию модулей ОО.
Если разработчик участвует в программах Центра исследований
Если разработчик ОО выполнил тестирование подлежащих тестированию модулей в объёме программы исследований безопасности Центра исследований — требования п. 4.3.2 в отношении этих модулей считаются выполненными.
Если результаты разработчика не соответствуют требованиям
Испытательная лаборатория оценивает число модулей, в отношении которых не выполнены требования.
- Если число таких модулей не превышает 5 → испытательная лаборатория выполняет тестирование самостоятельно либо принимает решение о невозможности дальнейших исследований.
- Если число таких модулей превышает 5 → принимается решение о невозможности проведения дальнейших исследований.
Если результаты разработчика соответствуют требованиям
Испытательная лаборатория проводит выборочную проверку результатов тестирования. Контрольная выборка тестов формируется по принципу:
- не менее 50 тестов, выявивших сбои и нарушения требований
- тесты, относящиеся не менее чем к 5 различным модулям
- все тесты, выявившие сбои и нарушения требований, явно связанные с регрессиями безопасности (тесты, подтверждающие наличие известных недостатков из предыдущих версий, не исправленных в текущей версии модуля)
Критерии:
- Доля неверно размеченных результатов тестов ≤ 10% → исследования продолжаются после устранения недостатков.
- Доля неверно размеченных результатов тестов > 10% → принимается решение о невозможности дальнейших исследований.
Дополнительные требования (усиления) для уровня контроля 4
Усиление 1 — Тестирование модулей из непосредственной поверхности атаки
Испытательная лаборатория проверяет, что состав тестируемых модулей дополнен модулями, составляющими непосредственную поверхность атаки ОО.
Усиление 2 — Тестирование open-source модулей по методикам Центра исследований
Испытательная лаборатория проверяет, что для тестируемых модулей с открытым исходным кодом, для которых определены методики тестирования (п. 2.3, подпункт «м» Методики, portal.linuxtesting.ru), тестирование выполнено в соответствии с требованиями этих методик.
Усиление 3 — Покрытие по строкам или базовым блокам
Испытательная лаборатория проверяет, что сбор тестового покрытия осуществляется:
- по строкам исходного кода, или
- по базовым блокам исполняемого кода
— для каждого тестируемого модуля ОО.
Усиление 4 — Минимальный процент покрытия
Испытательная лаборатория проверяет, что совокупный достигнутый процент тестового покрытия для каждого тестируемого модуля составляет не менее 25%.
Усиление 5 — Модули, реализующие ФБ ОО
Испытательная лаборатория проверяет, что состав тестируемых модулей дополнен модулями, обеспечивающими реализацию ФБ ОО.
Требования к результатам исследования
Если результаты разработчика соответствуют требованиям п. 3.1 и п. 2.3 Методики — испытательная лаборатория допускается повторно использовать их при оформлении материалов исследований.
Результаты исследований фиксируются в материалах исследований (п. 5.2 Методики).
Дополнительно фиксируется в электронных приложениях:
- структурное покрытие для каждого тестируемого модуля
Проверка артефактов результата
Формат для агента: артефакт считается принятым только при выполнении всех критериев; неприменимые пункты фиксируются с причиной.
| Артефакт | Что проверить | Критерий приемки |
|---|---|---|
| Матрица тестируемых модулей | Перечень модулей ФБ, непосредственной поверхности атаки и open-source модулей сопоставлен с тестами | Все требуемые модули включены; если требований не выполнено более чем для 5 модулей, зафиксирована невозможность продолжения |
| Отладочные сборки | Для каждого тестируемого модуля указана сборка, среда, процессорная архитектура и датчики ошибок | Сборки соответствуют ПОД.2; датчики зафиксированы в протоколе |
| Комплект тестов | Есть системные, интеграционные, функциональные, регрессионные или модульные тесты с целями и процедурами | Тесты вызывают функции подлежащих тестированию модулей; нерелевантные тесты исключены из учета |
| Журналы тестирования | Для каждого модуля есть логи запусков, сбои, нарушения требований, срабатывания датчиков | Все сбои и нарушения размечены; безопасность-регрессии выделены отдельно |
| Контрольная выборка ИЛ | Есть не менее 50 тестов с нарушениями, не менее 5 модулей, все неисправленные безопасность-регрессии | Доля неверной разметки не превышает 10%; при превышении оформлена невозможность дальнейших исследований |
| Структурное покрытие | Приложено покрытие для каждого тестируемого модуля; указан вид покрытия | Для УК 4 покрытие собирается по строкам исходного кода или базовым блокам исполняемого кода; совокупное покрытие каждого модуля не менее 25% |
| Методики Центра исследований | Для open-source модулей проверено наличие методик тестирования на portal.linuxtesting.ru | При наличии методик тестирование выполнено по ним; при отсутствии зафиксировано неприменимо |
Чек-лист проверки результатов перед отправкой
Формат: каждый пункт проверяется как выполнено / не выполнено / неприменимо.
Блок 1: Отладочные сборки (предварительное условие)
- Все тестируемые модули используют специальные отладочные сборки со встроенными датчиками ошибок (из ПОД.2, усиление 1).
- Используемые датчики зафиксированы в протоколе исследований.
Блок 2: Покрытие тестирования разработчиком
- Автоматическое тестирование выполнено для всех модулей, реализующих ФБ ОО.
- Тестирование выполнено для каждой поддерживаемой процессорной архитектуры.
- Сбор тестового покрытия по функциям исходного или исполняемого кода выполнен для каждого тестируемого модуля.
- Журналы тестирования проанализированы на предмет сбоев и срабатываний датчиков ошибок.
Блок 3: Выборочная проверка испытательной лабораторией
- Сформирована контрольная выборка (не менее 50 тестов с нарушениями, от не менее 5 модулей, все регрессионные тесты по безопасности).
- Доля неверно размеченных результатов в выборке не превышает 10%.
- Если доля > 10%: принято обоснованное решение (невозможность исследований).
Блок 4: Модули из поверхности атаки (усиление 1)
- Перечень тестируемых модулей дополнен всеми модулями из непосредственной поверхности атаки.
- Тестирование выполнено для этих модулей.
Блок 5: Open-source модули по методикам Центра исследований (усиление 2)
- Определён перечень open-source тестируемых модулей, для которых на portal.linuxtesting.ru опубликованы методики тестирования.
- Тестирование выполнено в соответствии с требованиями указанных методик.
- Результаты задокументированы.
Блок 6: Вид покрытия (усиление 3)
- Сбор покрытия выполнен по строкам исходного кода или по базовым блокам исполняемого кода (не только по функциям).
- Вид покрытия зафиксирован для каждого модуля.
Блок 7: Процент покрытия (усиление 4)
- Для каждого тестируемого модуля совокупное покрытие составляет не менее 25%.
- При недостижении 25% по отдельным модулям: зафиксировано обоснование и выводы.
Блок 8: Модули ФБ ОО (усиление 5)
- Перечень тестируемых модулей дополнен всеми модулями, обеспечивающими реализацию ФБ ОО.
- Для модулей ФБ ОО тестирование выполнено в полном объёме.
Блок 9: Оформление результатов
- Результаты зафиксированы в материалах исследований (п. 5.2 Методики).
- Приложено структурное покрытие для каждого тестируемого модуля.
- Все выявленные недостатки безопасности задокументированы по форме таблицы 6 Методики.
Задачи СИ по данному разделу
Рабочий перечень задач для Redmine: Перечень_задач_СИ_М3.md
| Код задачи | Наименование |
|---|---|
| СИ-ДАО1.01 | Сформировать матрицу тестируемых модулей (усил. 1, 5) |
| СИ-ДАО1.02 | Проверить комплект тестов разработчика |
| СИ-ДАО1.03 | Выполнить тестирование на отладочных сборках |
| СИ-ДАО1.04 | Собрать структурное покрытие модулей (порог ≥25%, усил. 3, 4) |
| СИ-ДАО1.05 | Проанализировать журналы тестирования |
| СИ-ДАО1.06 | Выполнить выборочную проверку результатов (≥50 тестов / ≥5 модулей) |
| СИ-ДАО1.07 | Проверить open-source модули по методикам Центра исследований (усил. 2) |