Куда я попал?
Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении (Выписка)
Страна: Россия
Методическая документация ФСТЭК
Методика ориентирована на проведение исследований, выполняемых испытательными лабораториями и разработчиками в рамках сертификационных испытаний программных, программно-аппаратных средств защиты информации и защищенных программных, программно-технических средств, а также в рамках внесения изменений в ранее сертифицированные средства. Разработчикам программного обеспечения средств защиты информации рекомендуется использовать положения настоящей Методики для организации внутренних процессов жизненного цикла программного обеспечения в соответствии с ГОСТ Р 56939-2024 "Защита информации. Разработка безопасного программного обеспечения. Общие требования".
Для проведения оценки соответствия по документу войдите в систему.
Для оценки соответствия
- авторизуйтесь
- авторизуйтесь
Планируемый уровень
Текущий уровень
Список требований
-
1.3. Методика ориентирована на проведение исследований, проводимых испытательными лабораториями и разработчиками в рамках сертификационных испытаний программных, программно-аппаратных средств защиты информации и защищенных программных, программно-технических средств, а также при внесении изменений в ранее сертифицированные средства. Разработчикам ОО рекомендуется использовать положения Методики для организации внутренних процессов жизненного цикла программного обеспечения в соответствии с ГОСТ Р 56939-2024 «Защита информации. Разработка безопасного программного обеспечения. Общие требования» (далее – ГОСТ Р 56939-2024).
-
2.3. При проведении исследований ОО используются:а) документация на ОО, предусмотренная Требованиями доверия;б) исходный код ОО;в) сборочная среда и система сборки ОО, включая их документацию;г) дистрибутив ОО;д) результаты выполнения процессов разработки ОО в соответствии с ГОСТ Р 56939-2024, включающие результаты анализа безопасности архитектуры и определения поверхности атаки, композиционного анализа, анализа безопасности конфигураций, статического анализа исходного кода, фаззинг-тестирования, тестирования на проникновение, результаты реализации программ по поиску уязвимостей ОО (Bug Bounty), если таковые проводились, результаты интеграционного, функционального, модульного тестирования, в том числе демонстрирующего выполнение заявленных функции безопасности (далее – ФБ);е) перечень программных компонентов и образов контейнеров ОО (объем и форма представления перечней приведены в Приложении 1 к настоящей Методике);ж) системные (интеграционные), функциональные, регрессионные, модульные тесты, фаззинг-тесты, включая специально сформированные синтетические, тесты, демонстрирующие выполнение заявленных ФБ ОО, а также описание конфигураций инструментальных средств анализа и контроля и иную тестовую документацию (предоставленная тестовая документация должна демонстрировать прослеживаемость заявленных ФБ и функциональных тестов и содержать описание целей тестирования, тестовых процедур и ожидаемых результатов, а также фактические результаты тестирования (например, журналы регистрации событий или скриншоты);з) план поддержки безопасности заимствованных компонентов сертифицированного ОО (в случае внесения изменения в сертифицированный ОО);и) заданные и описанные в эксплуатационной документации разработчиком ОО в контейнерном исполнении списки действий (правила), разрешенные при взаимодействии компонентов ОО (контейнеров, микросервисов, иных ресурсов, характерных для выбранного типа оркестратора) между собой, с компонентами среды функционирования с внешними по отношению к ОО компонентами;к) методики анализа поверхности атаки заимствованных компонентов с открытым исходным кодом, опубликованные на сайте Центра исследований безопасности системного программного обеспечения (далее – Центр исследований) в разделе «Методики анализа поверхности атаки» (portal.linuxtesting.ru);л) методики статического анализа заимствованных компонентов с открытым исходным кодом, опубликованные на сайте Центра исследований в разделе «Методики проведения статического анализа» (portal.linuxtesting.ru);м) методики тестирования заимствованных компонентов с открытым исходным кодом, опубликованные на сайте Центра исследований в разделе «Методики проведения тестирования» (portal.linuxtesting.ru);н) методики фаззинг-тестирования заимствованных компонентов с открытым исходным кодом, опубликованные на сайте Центра исследований в разделе «Методики проведения фаззинг-тестирования» (portal.linuxtesting.ru).
-
2.6. Исследования ОО по выявлению уязвимостей и НДВ в соответствии с положениями настоящей Методики проводятся специалистами испытательной лаборатории (далее – испытательная лаборатория)<1>, а также специалистами организации-разработчика, ответственными за обеспечение разработки безопасного программного обеспечения, с привлечением специалистов, непосредственно участвующих в разработке ОО (далее – разработчик ОО).
<1> В случае если организация-разработчик имеет сертификат соответствия процессов безопасной разработки программного обеспечения средств защиты информации требованиям национального стандарта ГОСТ Р 56939-2024, в качестве специалистов испытательной лаборатории рассматриваются специалисты указанной организации-разработчика, ответственные за обеспечение разработки безопасного программного обеспечения. -
В ходе подготовки к проведению исследований по выявлению уязвимостей и НДВ объекта оценки должны выполняться:а) анализ документации и иных исходных данных (ПОД.1);б) подготовка исследовательского стенда (ПОД.2).Перечень исследований при подготовке к проведению исследований по выявлению уязвимостей и НДВ объекта оценки представлен в таблице 1.
-
Задачами исследования являются:а) формирование представления о:
- функциональных возможностях и ФБ ОО;
- условиях безопасной эксплуатации, режимах и параметрах функционирования ОО;
- структуре ОО на уровне интерфейсов, компонентов, модулей, файлов, структурных элементов кода;
- сторонних программных компонентах ОО;
- параметрах и особенностях функционирования сборочной среды и системы сборки ОО;
б) оценка состава и полноты полученных для испытуемого ОО результатов выполнения процессов разработки в соответствии с ГОСТ Р 56939-2024, иными национальными стандартами в области информационной безопасности;в) разработка методики проведения исследований.Исходные данные для проведения исследования предоставляются в соответствии с требованиями пункта 2.3 настоящей Методики. -
При проведении исследований оцениваются представленные разработчиком ОО результаты анализа ОО, проводимого в соответствии с ГОСТ Р 56939-2024, иными национальными стандартами в области защиты информации, с целью использования в качестве материалов исследований на предмет:а) правильности выбора и настройки разработчиком средств выявления уязвимостей и НДВ;б) соответствия полноты проводимых исследований требованиям уровня контроля, включая полноту набора анализируемых функциональных возможностей, интерфейсов, модулей и подпрограмм (функций);в) правильности интерпретации результатов, полученных от средств выявления уязвимостей и НДВ, полноты и однозначности разметки предупреждений.
-
Испытательной лабораторией оценивается полнота поверхности атаки<2> ОО, представленной разработчиком в исходных данных. Для этого выполняется анализ поверхности атаки ОО с учетом методик анализа поверхности атаки заимствованных компонентов с открытым исходным кодом, указанных в пункте 2.3 настоящей Методики, и проводится сопоставление полученных результатов.
<2> Поверхность атаки (программного обеспечения) ‒ множество подпрограмм (функций) программного обеспечения, обрабатывающих данные из интерфейсов, непосредственно или косвенно подверженных потенциальному риску атаки. -
Входными данными для анализа поверхности атаки являются декларируемые перечни аппаратных, программных и пользовательских интерфейсов, доступных для атаки потенциальным нарушителям.Анализ поверхности атаки представляет собой следующие действия:
- для пользовательских и аппаратных интерфейсов в ОО определяются соответствующие программные интерфейсы ОО, которые объединяются с входным перечнем программных интерфейсов;
- для каждого программного интерфейса из объединенного перечня определяются модули ОО, в которых реализуется обработка контролируемых потенциальным нарушителем входных данных.
В качестве минимальных требований к полноте поверхности атаки ОО выступают включенные в ее состав подпрограммы (функции):а) непосредственно доступные для вызова потенциальным нарушителям<3>;б) входные данные, которые потенциальный нарушитель способен гарантированно сформировать определенным образом через доступные ему интерфейсы.
<3> В качестве потенциальных нарушителей рассматриваются в том числе все штатные пользователи ОО, обладающие произвольными ролями, за исключением оговоренных в пункте 3.1 настоящей Методики частных случаев. -
По результатам анализа документации и иных исходных данных оценивается состав и полнота полученных для испытуемого ОО результатов выполнения процессов разработки в соответствии с ГОСТ Р 56939-2024 в целях учета этих результатов при составлении методики проведения исследований.При проведении дальнейших исследований ОО испытательная лаборатория контролирует перечень анализируемых интерфейсов и модулей ОО с целью выявления недекларированных интерфейсов, модулей и реализуемого ими функционала, в том числе неиспользуемого кода и неиспользуемых функциональных возможностей ОО.
-
Если результатом модификации исходного кода является код на языке программирования высокого уровня, то в отношении модулей, затронутых данной модификацией, необходимо провести статический анализ как исходного кода, так и модифицированного кода в соответствии с требованиями пункта 4.2 настоящей Методики.
-
Если результатом модификации кода модуля ОО является интерпретируемый код (байт-код) или машинный код, то все затронутые модули ОО должны быть подвергнуты экспертизе в соответствии с требованиями пункта 4.4 настоящей Методики. Если суммарный объем байт-кода или машинного кода, полученного в результате модификации, превосходит 10 000 инструкций (команд), испытательная лаборатория принимает решение о невозможности проведения дальнейших исследований ОО.
-
В методике проведения исследований (или протоколе исследований) приводится описание поверхности атаки в графической нотации в объеме сущностей не меньшем, чем:
- интерфейсы непосредственной поверхности атаки;
- модули, реализующие интерфейсы поверхности атаки;
- подсистемы, включающие в себя модули, реализующие поверхность атаки (например, микросервисы, логически объединенные группы функций или компонентов, привлекаемые инфраструктурные компоненты).
Также указываются как минимум следующие характеристики модулей:- используемые языки программирования;
- выполнение модулем функции веб-сервиса;
- выполнение модулем функции среды выполнения для интерпретируемых языков программирования или языков программирования, компилируемых в промежуточное представление.
Пример графической нотации представлен в Приложении 3 к настоящей Методике. -
Задачами исследования являются:а) подготовка исследовательского стенда, обеспечивающего проведение исследований в соответствии с представлением об ОО и разработанной методикой проведения исследований (ПОД.1);б) подготовка специальных отладочных сборок ОО.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики;
- сведения, полученные по результатам анализа документации и иных исходных данных (ПОД.1).
-
1. В ходе исследований проверяется, что разработчиком ОО подготовлены специальные сборки ОО со встраиванием инструментальных датчиков срабатывания ошибок при компиляции модулей, подвергаемых динамическому анализу, для каждой среды функционирования, включенной в исследования в соответствии с пунктом 3.2 настоящей Методики.Испытательной лабораторией совместно с разработчиком ОО определяется перечень требуемых датчиков ошибок (ошибки работы с памятью, неопределенное поведение, нарушения потока управления и т.п.), исходя из технических возможностей, обусловленных используемыми в ОО языками программирования и средой функционирования.Если система (системы) сборки для выбранной среды (сред) функционирования не позволяет штатным образом встраивать такие датчики, допускается не подготавливать специальную отладочную сборку ОО, а использовать в динамическом анализе любые другие средства встраивания датчиков срабатывания ошибок, такие как динамическое двоичное инструментирование и динамическая компоновка либо запуск интерпретатора с дополнительными опциями.Если для языка исходных кодов ОО и среды его функционирования ряд типов датчиков срабатывания ошибок не применимы или отсутствуют, их использование не требуется.
-
При выполнении всех видов анализа архитектуры ОО анализируются полномочия (права, привилегии, разрешения, политики и другие)<10> ОО и его составных частей (файлов, модулей, процессов и других, в том числе в отношении интерпретаторов, веб-серверов и серверов приложений), назначенные в соответствии с руководством по безопасной установке и настройке ОО и его составных частей, а также руководствами администратора и пользователя из состава эксплуатационной документации ОО.В ходе анализа архитектуры контролируется назначение ОО и его составным частям полномочий, минимально необходимых для функционирования ОО. Выявленные избыточные полномочия ОО и его составных частей рассматриваются в качестве недостатков безопасности ОО.Перечень исследований при анализе архитектуры ОО представлен в таблице 2.
<10> Примерами повышенных полномочий являются: использование флагов доступа SUID/SGID; функционирование от имени суперпользователя или администратора, имеющего наивысший уровень полномочий в операционной системе, функционирование в пространстве ядра операционной системы, функционирование на повышенном уровне мандатной конфиденциальности или целостности, или с нетривиальным набором неиерархических мандатных категорий, иные виды полномочий, определяемые средой функционирования или непосредственно объектом оценки. -
Задачей исследования является выявление недостатков безопасности и известных уязвимостей ОО.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики;
- сведения, полученные по результатам выполнения ПОД.1;
- испытательный стенд и тестовые сборки ОО, полученные по результатам выполнения ПОД.2.
-
Испытательной лабораторией самостоятельно собираются и анализируются материалы из общедоступных источников (публикации разработчика, пользователей и исследователей об ОО и его заимствованных компонентах, базы данных уязвимостей, сведения о типовых уязвимостях и ошибках, тематические информационные ресурсы) о недостатках (слабостях) и уязвимостях как самого ОО, так и аналогичного по архитектуре программного обеспечения в дополнение к исходным данным, предоставленным разработчиком ОО. В качестве источников информации о типовых недостатках (слабостях) и уязвимостях следует использовать в том числе:а) банк данных угроз безопасности информации ФСТЭК России, а также иные отечественные базы уязвимостей;б) зарубежные базы данных уязвимостей и недостатков (слабостей) (Common Vulnerabilities and Exposures, Common Weakness Enumeration и иные), а также общий перечень шаблонов атак (Common Attack Pattern Enumeration and Classification);в) публикации и форумы, содержащие отзывы пользователей;г) результаты исследований, полученные сторонними исследователями, как в отношении ОО, так и в отношении программных продуктов, аналогичных по архитектуре исследуемому ОО.
-
В ходе исследований оцениваются исходные данные согласно пункту 3.1 и пункту 2.3 настоящей Методики на соответствие требованиям проводимого исследования в целях использования в исследованиях ОО результатов, полученных разработчиком:а) перечни программных компонентов и иные результаты композиционного анализа в части поиска известных уязвимостей заимствованных компонентов в составе ОО (в том числе в составе образов контейнеров) в публично доступных базах уязвимостей;б) результаты автоматизированного анализа конфигурации ОО и составляющих ОО отдельных модулей, направленного на выявление уязвимостей конфигурации ОО, применение для контроля настроек ОО инструментальных средства анализа конфигураций при наличии таковых средств;в) учет в архитектуре ОО требований безопасности, результатов композиционного анализа и анализа конфигураций.
-
Проводится оценка соответствия конфигураций запуска отдельных контейнеров и групп (сетей) контейнеров, составляющих ОО в контейнерном исполнении, публично доступным рекомендациям по безопасности и минимизации полномочий (например, рекомендации ФСТЭК России, CIS, Kubernetes Security Best Practices и другие рекомендации), в том числе:а) для ОО в контейнерном исполнении обеспечивается запуск контейнеров с полномочиями, минимально необходимыми для функционирования ОО, на уровне процессов хостовой операционной системы;б) для ОО в контейнерном исполнении, находящегося под управлением оркестратора контейнеров, обеспечивается в соответствии с заданными разработчиком средства правилами управление доступом между компонентами ОО (контейнерами, микросервисами, иными ресурсами, характерными для выбранного типа оркестратора), компонентами среды функционирования, внешними по отношению к ОО компонентами в соответствии с пунктом 2.3 настоящей Методики.Избыточные полномочия компонентов ОО и избыточные разрешающие правила доступа к компонентам ОО рассматриваются в качестве недостатков безопасности ОО.
-
Если предоставленные разработчиком результаты анализа архитектуры ОО статическими методами, проводимого при разработке безопасного программного обеспечения, соответствуют требованиям пункта 3.1 и пункта 2.3 настоящей Методики, испытательной лаборатории допускается повторно использовать результаты анализа при оформлении материалов исследований.Результаты исследований фиксируются в материалах исследований в объеме, соответствующем требованиям пункта 5.2 настоящей Методики.
-
Задачей исследования является выявление недостатков безопасности и известных уязвимостей ОО, самостоятельно и в результате анализа результатов выполнения процессов разработки ОО в соответствии с ГОСТ Р 56939-2024, методами и инструментами, требующими выполнения ОО.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики;
- сведения, полученные по результатам выполнения ПОД.1;
- испытательный стенд и тестовые сборки ОО, полученные по результатам выполнения ПОД.2;
- сведения об архитектуре ОО, полученные по результатам выполнения КАО.1.
-
Задачей исследования является выявление недостатков безопасности ОО самостоятельно и в результате анализа результатов выполнения процессов разработки ОО в соответствии с ГОСТ Р 56939-2024 методами и инструментами статического анализа исходного кода.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики, в первую очередь подпункта «б» пункта 2.3 настоящей Методики;
- сведения, полученные по результатам выполнения ПОД.1;
- испытательный стенд, полученный по результатам выполнения ПОД.2;
- план по разметке предупреждений статического анализатора по результатам предыдущих исследований ОО (если применимо).
-
При проведении статического анализа оцениваются исходные данные согласно пункту 3.1 настоящей Методики, а также проводится оценка реализации следующих требований:а) статический анализ выполняется разработчиком ОО в отношении исходного кода всех модулей, составляющих поверхность атаки ОО;
б) статический анализ выполняется разработчиком для всех высокоуровневых языков программирования, которые встречаются в исходном коде модулей<13>;в) используется статический анализатор, реализующий метод автоматизированного анализа исходного кода на уровне синтаксического дерева;г) используются конфигурации статического анализатора, учитывающие специфику используемых в ОО языков программирования и заимствуемых модулей ОО;д) выполняется статический анализ исходного кода, который штатным образом строится (генерируется) непосредственно в процессе функционирования ОО, транслируется (компилируется) и выполняется как часть ОО. Выбранные для проведения статического анализа конфигурации генератора исходного кода и средств трансляции (компиляции) обосновываются разработчиком ОО и должны соответствовать типовому сценарию функционирования ОО<14>;е) разработчиком ОО выполнена ручная разметка всех выданных анализатором предупреждений о критических ошибках в соответствии с классификацией национального стандарта Российской Федерации ГОСТ Р 71207-2024 «Защита информации. Разработка безопасного программного обеспечения. Статический анализ программного обеспечения. Общие требования»;ж) разработчиком ОО выполнена ручная разметка всех выданных анализатором предупреждений, предусмотренных планом поддержки безопасности заимствованных компонентов (в случае внесения изменения в сертифицированный ОО);з) разработчиком ОО выполнена ручная разметка всех выданных анализатором предупреждений, предусмотренных программой исследований безопасности модулей с открытым исходным кодом Центра исследований, если разработчик ОО выполняет исследование модулей ОО в рамках деятельности Центра исследований.
<13> Не требуется проведение статического анализа исходного кода, написанного на языках разметки (например, html, css3, xaml и т.п.), не требуется проведение статического анализа исходного кода, написанного на языке ассемблера.
<14> Для трансляции (компиляции) используются средства как среды функционирования ОО, так и средства, включенные в состав ОО. -
Если разработчик ОО выполняет исследование модулей ОО в рамках деятельности Центра исследований и в ходе исследования ОО выполнил статический анализ подлежащих статическому анализу модулей ОО в объеме программы исследований безопасности, то требования пункта 4.2 настоящей Методики в отношении данных модулей считаются выполненными.
В противном случае испытательная лаборатория может выполнить статический анализ кода самостоятельно в соответствии с требованиями настоящей Методики либо принять решение о невозможности проведения дальнейших исследований ОО. Если суммарный объем такого кода не превосходит 10 000 строк, допускается вместо статического анализа выполнить экспертизу участков исходного кода ОО (ЭКО). -
Испытательной лабораторией самостоятельно выполняется статический анализ исходного кода не менее чем 5 различных модулей, составляющих поверхность атаки ОО, в объеме не менее чем по 10 предупреждений для каждого высокоуровневого языка программирования в составе исходных кодов модулей. Испытательная лаборатория может использовать любой инструмент статического анализа, соответствующий требованиям Методики<15>.
<15> Инструмент статического анализа предоставляется испытательной лабораторией, встраивание инструмента в исследовательский стенд осуществляется на этапе подготовки исследовательского стенда (ПОД.2). -
3. В ходе исследований испытательной лабораторией проверяется, что для подлежащих статическому анализу модулей с открытым исходным кодом, для которых определены методики статического анализа, указанные в подпункте «л» пункта 2.3 настоящей Методики, статический анализ выполнен в соответствии с требованиями этих методик.
-
Если предоставленные разработчиком ОО результаты статического анализа исходного кода ОО, проводимого при разработке безопасного ПО, соответствуют требованиям пунктов 3.1 и 2.3 настоящей Методики, испытательной лаборатории допускается повторно использовать результаты анализа при оформлении материалов исследований.
-
Результаты исследований фиксируются в материалах исследований в объеме, соответствующем требованиям пункта 5.2 настоящей Методики. Дополнительно требуется зафиксировать в материалах исследований в формате электронных приложений:
- конфигурации инструментов статического анализа, в том числе состав выборки проверяемых предупреждений;
- машиночитаемые результаты статического анализа (база данных и иные формы представления) и результаты разметки;
- исправления (патчи) истинных предупреждений либо иные свидетельства применения исправлений (патчей);
- список модулей ОО, содержащих участки исходного кода, написанные с использованием подлежащих статическому анализу языков программирования, не поддерживаемых используемыми статическими анализаторами, либо содержащих ассемблерные вставки или целиком написанных на языке ассемблера, а также наименование неподдерживаемого языка программирования (языка ассемблера), и объем кода в строках на неподдерживаемом языке (языке ассемблера).
-
Для 4-5 уровней контроля тестирование модулей ОО (ДАО.1) и фаззинг-тестирование ОО (ДАО.2) должны выполняться в отношении специальных сборок ОО со встроенными датчиками срабатывания ошибок. Специальные отладочные сборки ОО подготавливаются на этапе ПОД.2 в рамках выполнения требований усиления 1 (с учетом уровня контроля).
-
Испытательной лабораторией фиксируются факты выявления механизмов, встроенных в исходный или исполняемый код ОО и препятствующих проведению динамического анализа. В случае выявления в ходе исследований таковых механизмов, эти механизмы и защищенные ими программные модули (участки кода) должны быть проанализированы при проведении экспертизы кода (ЭКО). Если суммарный объем исходных кодов данных механизмов и защищенных модулей (участков кода) превосходит 10 000 строк, делается вывод о невозможности проведения дальнейших исследований.
-
Задачей исследования является выявление недостатков безопасности ОО, в том числе ошибок реализации функций безопасности ОО, самостоятельно и в результате анализа результатов выполнения процессов разработки ОО в соответствии с ГОСТ Р 56939-2024, методом и инструментами автоматического динамического тестирования модулей ОО со сбором покрытия.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики, в первую очередь подпункта «ж» пункта 2.3 настоящей Методики;
- сведения, полученные по результатам выполнения ПОД.1;
- испытательный стенд, полученный по результатам выполнения ПОД.2.
-
При тестировании модулей оцениваются исходные данные согласно пункту 3.1 настоящей Методики, а также проводится оценка реализации разработчиком ОО следующих требований:а) выполняется автоматическое тестирование<16> всех модулей, реализующих ФБ ОО;б) выполняется тестирование модулей для каждой процессорной архитектуры, поддержка которой обеспечивается исследовательским стендом;в) выполняется сбор тестового покрытия по функциям исходного или исполняемого кода для каждого тестируемого модуля ОО;г) выполняется анализ журналов тестирования для каждого тестируемого модуля на предмет наличия сбоев и нарушений требований, проверяемых тестами, в том числе порождаемых датчиками срабатывания ошибок.
<16> Тесты могут быть реализованы на различных уровнях – системном, интеграционном, модульном. -
При проведении исследований оценивается число модулей из состава подлежащих тестированию модулей ОО, в отношении которого не выполнены требования пункта 4.3.2 настоящей Методики. В исследовании ДАО.1 не учитываются тесты, в ходе выполнения которых не вызываются функции подлежащих тестированию модулей ОО.
-
Если разработчиком ОО выполняется исследование модулей ОО в рамках деятельности Центра исследований безопасности системного ПО и в ходе исследования ОО выполнено тестирование подлежащих тестированию модулей ОО в объеме программы исследований безопасности, то требования пункта 4.3.2 настоящей Методики в отношении данных модулей считаются выполненными.В противном случае:
- если число таких модулей не превосходит 5, испытательной лабораторией проводится тестирование модулей самостоятельно в соответствии с требованиями настоящей Методики либо принимается решение о невозможности проведения дальнейших исследований ОО;
- если число таких модулей превосходит 5, испытательной лабораторией принимается решение о невозможности проведения дальнейших исследований ОО.
-
Если предоставленные разработчиком ОО исходные данные отвечают требованиям пункта 4.3.2 настоящей Методики, испытательной лабораторией проводится выборочная проверка результатов анализа тестов, выявивших сбои и нарушение требований. Выборочная проверка выполняется в отношении контрольной выборки тестов, составленной по следующему принципу:
- в состав выборки включается не менее 50 тестов, выявивших сбои и нарушение требований;
- в состав выборки включаются тесты, относящиеся не менее чем к 5 различным модулям;
- в состав выборки включаются все тесты, выявившие сбои и нарушение требований, явно связанные с безопасностью регрессий<17>, не исправленных в текущей версии модуля ОО.
Если доля неверно размеченных разработчиком результатов тестов в составе контрольной выборки не превосходит 10 %, исследования ОО продолжаются после устранения разработчиком выявленных недостатков безопасности ОО.Если доля неверно размеченных разработчиком ОО результатов тестов в составе контрольной выборки превосходит 10 %, испытательная лаборатория принимает решение о невозможности проведения дальнейших исследований ОО.
<17> Под регрессиями понимаются тесты, подтверждающих наличие известных недостатков безопасности, выявленных в предыдущих версиях модуля. -
Задачей исследования является выявление недостатков безопасности ОО самостоятельно и в результате анализа результатов выполнения процессов разработки ОО в соответствии с ГОСТ Р 56939-2024 методом и инструментами фаззинг-тестирования и сбора покрытия ОО.Исходными данными при проведении исследования являются:
- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики;
- сведения, полученные по результатам выполнения ПОД.1;
- испытательный стенд, полученный по результатам выполнения ПОД.2;
- сведения о покрытии модулей, достигаемом по результатам выполнения ДАО.1.
-
Испытательной лабораторией оценивается число целей из состава подлежащих фаззинг-тестированию, в отношении которых не выполнены требования пункта 4.3.3 настоящей Методики.
Если разработчик ОО выполняет исследование модулей ОО в рамках деятельности Центра исследований безопасности системного ПО и в ходе исследования ОО выполнил фаззинг-тестирование подлежащих фаззинг-тестированию модулей ОО в объеме программы исследований безопасности, требования пункта 4.3.3 настоящей Методики в отношении данных модулей считаются выполненными.Если число таких целей не превосходит 3, испытательной лабораторией выполняется фаззинг-тестирование самостоятельно в соответствии с требованиями настоящей Методики либо принимается решение о невозможности проведения дальнейших исследований ОО.Если число таких целей превосходит 3, испытательной лабораторией принимается решение о невозможности проведения дальнейших исследований ОО. -
3. В ходе проведения исследований испытательной лабораторией проверяется, что для тестируемых модулей с открытым исходным кодом, для которых определены методики фаззинг-тестирования, указанные в подпункте «н» пункта 2.3 настоящей Методики, фаззинг-тестирование выполнено в соответствии с требованиями этих методик.
-
4. Испытательной лабораторией проверяется, что фаззинг-тестирование выполнялось в отношении специально подготовленных синтетических целей, сформированных с целью эффективного тестирования участков кода, выделенных в ходе выполнения требований усиления 4 ПОД.1.При фаззинг-тестировании интерфейсов ОО допускается ограничиваться фаззинг-тестированием в отношении специально подготовленных синтетических целей. Достаточность состава выделенных целей определяется испытательной лабораторией непосредственно в ходе проведения исследований ДАО.2 и фиксируется с обоснованием в протоколах исследований.Функции-обертки обеспечивают вызов тестируемых участков кода целей, конвертируя мутируемые фаззером данные во входные параметры тестируемых функций в соответствии со спецификациями интерфейсов (протоколов), типов данных и контекста выполнения тестируемых функций в составе ОО.
-
Результаты исследований фиксируются в материалах исследований в объеме, соответствующем требованиям пункта 5.2 настоящей Методики. Дополнительно требуется зафиксировать в материалах исследований в формате электронных приложений структурное покрытие для каждого тестируемого модуля.
Дополнительно требуется зафиксировать в материалах исследований:- параметры сборки каждой фаззинг-цели;
- принципы формирования коллекции, правил, словарей;
- достигнутое структурное покрытие для каждой фаззинг-цели.
-
Задачей исследования является самостоятельное выявление методами ручного направленного анализа в модулях ОО:
- недостатков архитектуры;
- уязвимостей конфигурации;
- уязвимостей кода;
- недекларированных возможностей.
Исходными данными при проведении исследования являются:- исходные данные в соответствии с требованиями пункта 2.3 настоящей Методики;
- сведения, полученные по результатам анализа документации и иных исходных данных, в том числе сведения об инструментах и шагах инструментирования или иных модификациях бинарного, интерпретируемого или байт-кода, способных исказить результаты применения средств статического анализа исходных кодов (ПОД.1);
- исходные коды ОО;
- исполняемый код ОО;
- список модулей ОО, содержащих участки исходного кода, написанные с использованием подлежащих статическому анализу языков программирования, не поддерживаемых используемым статическим анализатором, либо содержащих ассемблерные вставки или целиком написанных на языке ассемблера (САО);
- сведения о механизмах, препятствующих проведению динамического анализа (ДАО.1, ДАО.2).
-
5.1. Результаты проведения исследований по выявлению уязвимостей и НДВ ОО оформляются отдельным протоколом исследований, разрабатываемым в соответствии с Положением о системе сертификации средств защиты информации, утвержденным приказом ФСТЭК России от 3 апреля 2018 г. № 55. В протоколе должны быть отражены условия и результаты подготовительных действий и исследований, проведенных в соответствии с требованиями разделов 3 и 4 настоящей Методики.Результаты, представленные в цифровой форме, должны прилагаться к протоколам на одном или нескольких электронных носителях.
-
5.3. Для подтверждения результатов всех видов инструментальных исследований ОО в протоколы исследований должны быть включены технические результаты, необходимые для подтверждения выполненных действий и пояснения достигнутых результатов, а именно: файлы конфигураций и журналы (логи) запуска инструментов анализа, журналы (логи) работы с результатами анализа, разметка результатов анализа, скриншоты, а также результаты в соответствии с требованиями соответствующих пунктов разделов 3 и 4 настоящей Методики.Каждое размеченное предупреждение должно быть снабжено комментарием, поясняющим принятое решение. Комментарий должен быть достаточен, чтобы другой участник процессов сертификационных испытаний мог понять основания для принятого решения без проведения тщательного анализа исходного кода или конфигурации ОО. Формулировка пояснений общего вида, таких как «Не эксплуатируемо», «Не несет угроз безопасности информации», «Не применимо» и иные формулировки, а также применение единообразной групповой разметки общего вида в отношении не полностью идентичных причин срабатывания анализатора не допускается и расценивается как некачественно выполненная разметка.
-
Перечень программных компонентов в машиночитаемом формате представляется в соответствии со спецификацией CycloneDX<18> в нотации JSON<19> в соответствии с RFC 8259 в виде объекта, содержащего поля, описанные в таблице П.1. Допускается наличие дополнительных полей, соответствующих спецификации CycloneDX версии 1.6, версия которой указана в поле specVersion корневого объекта перечня программных компонентов.
<18> Спецификация CycloneDX https://ecma-international.org/publications-and-standards/standards/
ecma-424.
<19> ISO/IEC 21778:2017 Информационная технология. Синтаксис обмена данными JSON. -
Имя поля
- components
Тип- Массив объектов
Описание- Список компонентов. Если в программном обеспечении используется несколько версий одного и того же компонента, то для каждой версии компонента должна быть отдельная запись (в том числе для компонентов, заимствованных из других сертифицированных средств защиты информации). Не допускается объединять в одну запись компоненты, исходный код которых хранится в нескольких различных репозиториях систем управления версиями.
Требования к заполнению полей объектов описаны в таблице П.5.
Требования к наличию- Обязательно при наличии в составе программного обеспечения компонентов
-
Имя поля
- externalReferences
Тип- Массив объектов
Описание- Массив объектов, описывающих источник получения компонента, его исходных кодов, документации и других данных. Требования к заполнению полей объектов описаны в таблице П.6.
- Среди элементов массива обязательно должен присутствовать хотя бы один объект с типом vcs (ссылка на репозиторий в системе контроля версий) или source-distribution (ссылка на архив) за исключение следующих случаев:
- исходный код программного компонента полностью определяется исходным кодом его подкомпонентов, которые описаны в поле components данного объекта;
- программный компонент заимствован из сертифицированного средства защиты информации, входящего в состав среды функционирования ОО, и в поле properties указано свойство GOST:provided_by, содержащее название данного сертифицированного СЗИ;
- программный компонент не является компонентом с открытым исходным кодом и в поле licenses содержится запись с полем name, равным «Proprietary».
- В последнем случае, заимствованные подкомпоненты такого компонента должны быть описаны в поле components данного объекта.
Требования к наличию- Обязательно
-
Имя поля
- properties
Тип- Массив объектов
Описание- Массив объектов, описывающих дополнительные свойства компонента. Требования к заполнению полей объектов описаны в таблице П.8.
Среди элементов массива обязательно должны присутствовать объекты со свойствами GOST:attack_surface и GOST:security_function.
Требования к наличию- Обязательно
-
Имя поля
- hashes
Тип- Массив объектов
Описание- Содержит список хэш-кодов содержимого внешнего ресурса, полученных при помощи различных алгоритмов. Требования к заполнению полей объекта описаны в таблице П.7.
Если поле type имеет значение source-distribution, то данное поле является обязательным и среди его элементов обязательно должен присутствовать объект с идентификатором алгоритма Streebog-256, Streebog-512, STREEBOG-256 или STREEBOG-512.
Требования к наличию- Опционально
-
Перечень образов контейнеров в машиночитаемом формате представляется в соответствии со спецификацией CycloneDX в нотации JSON в соответствии с RFC 8259 в виде объекта, содержащего поля описанные в таблице П.9. Допускается наличие дополнительных полей, соответствующих спецификации CycloneDX, версия которой указана в поле specVersion корневого объекта перечня программных компонентов.
-
Имя поля
- properties
Тип- Массив объектов
Описание- Массив объектов, описывающих свойства компонента. Требования к заполнению полей объектов описаны в таблице П.14.
Среди элементов массива обязательно должны присутствовать объекты со свойствами GOST:attack_surface и GOST:security_function.
Требования к наличию- Обязательно
-
Имя поля
- properties
Тип- Массив объектов
Описание- Массив объектов, описывающих свойства компонента. Требования к заполнению полей объектов описаны в таблице П.14.
Среди элементов массива обязательно должны присутствовать объекты со свойствами GOST:attack_surface и GOST:security_function.
Требования к наличию- Обязательно
-
Имя поля
- components
Тип- Массив объектов
Описание- Список подкомпонентов данного компонента. Допускается перечислять подкомпоненты как в массиве components родительского компонента, так и в массиве components корневого объекта перечня. Требования к заполнению полей объектов описаны в таблице П.15.
Требования к наличию- Опционально
-
ОО является средством защиты информации «Ромашка», представляет собой программный комплекс, предназначенный для автоматизированного выявления уязвимостей в сторонних приложениях и системах. ОО осуществляет комплексное сканирование свободного ПО, используя современные методы анализа, включая сигнатурный поиск по известным шаблонам уязвимостей (рисунок П.1).
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для вас с целью персонализации сервисов и предложений. Вы может прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом, вы даёте согласие на использование ваших cookie-файлов и соглашаетесь с Политикой обработки персональных данных.