Куда я попал?
Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении (Выписка)
Страна: Россия
Методическая документация ФСТЭК
4. Проведение исследований по выявлению уязвимостей и недекларированных возможностей
Для проведения оценки соответствия по документу войдите в систему.
Список требований
-
При выполнении всех видов анализа архитектуры ОО анализируются полномочия (права, привилегии, разрешения, политики и другие)<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).
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для вас с целью персонализации сервисов и предложений. Вы может прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом, вы даёте согласие на использование ваших cookie-файлов и соглашаетесь с Политикой обработки персональных данных.