ГОСТ Р 56939—2016
П р и м е ч а н и е — Экспертизу исходногокодалрограммывылолняютразработчикПОилисторонниеорга-
низации, обладающие компетенцией аобласти выявления уязвимостей программы, для актуальной версии исход
ного кода программы. Выполнение экспертизы исходного кода программы непосредственно создателями
исходного кода программы (программистами) нежелательно. Поскольку экспертиза исходного кода программы
являетсядостаточно трудоемкой процедурой, ее целесообразно проводить в отношении подмножества исходного
кода программы. Выбор анализируемогоподмножества можноосуществлять на основе установления степени важ
ности (критичности) того или иного набора исходных кодов программы с точки зрения создания безопасного ПО.
В случае отсутствия исходного кода программы для компонентов, заимствованных у сторонних разработчи
ков ПО. разработчикуследует (если это возможно)выполнитьдекомпиляцию указанных компонентов сцелью полу
чения исходного кода программы и проведения экспертизы исходного кода программы. При
невозможности выполнения декомпиляции разработчику ПО следует проводить более тщательное тестирование
на проникнове ние. динамический анализ кода программы и фаззинг-тестирование в отношении
заимствованных у сторонних разработчиков ПО компонентов.
5.4 Моры по разработке безопасного программного обеспечения, реализуемые при
выполнении квалификационного тестирования программного обеспечения
5.4.1 Меры по разработке безопасного программного обеспечения, подлежащие реали
зации
При выполнении квалификационного тестирования ПО разработчик ПО должен реализовать сле
дующие меры:
- функциональное тестирование программы,
- тестирование на проникновение;
- динамический анализ кода программы;
- фаззинг-тестирование программы.
5.4.2 Цели и результаты реализации мер по разработке безопасного программного обеспе
чения
Реализация мер способствуетдостижению следующих целей;
- подтверждение того, что программа обеспечивает выполнение идентифицированных требова
ний побезопасности, установленных в процессеанализа требований к ПО;
- устранение уязвимостей программы.
В результатеуспешнойреализации мердолжны быть:
- проведены и документально оформлены результаты тестирования ПО и список выявленных
несоответствий требованиям безопасностии/или уязвимостей программы (при наличии);
- проведена доработка программы, направленная на устранение выявленных несоответствий
требованиям безопасности и/или уязвимостей программы.
5.4.3 Требования к реализации мер по разработке безопасного программного обеспечения
5.4.3.1 Разработчик ПО должен проводить функциональное тестирование программы для того,
чтобы определить, выполняютсяли требованиябезопасности, идентифицированныев процессеанали
за требований к ПО. По результатам функционального тестирования программы можно проводить
доработку программы.
Дляорганизации работ, выполняемых в процессах жизненного цикла ПО. документация разработ
чика ПО должна содержать список выявленных несоответствий требованиям безопасности (при выяв
лении).
Для подтверждения соответствия требованиям настоящего стандартадокументация разработчи
ка ПО должна содержать:
- план тестирования, описание выполняемых тестов и инструментальных средств, используемых
для функционального тестирования программы;
- фактические результаты тестирования;
- отчеты, содержащие список выявленных несоответствий требованиям безопасности, описание
действий, направленных на ихустранение, либо обоснованиеневозможности или отсутствия необходи
мости в устранении несоответствия требованиям.
П р и м е ч а н и е — Выполняемые тесты должны учитывать состав требований к разрабатываемому ПО и
обеспечивать наиболее полную проверку этих требований. Описание плана тестирования и выполняемых тестов
можно выполнять непосредственно после формулирования требований к ПО. не дожидаясь окончания разработки.
Для эффективного тестирования рекомендуется разделять между специалистами обязанности по созданию
программы и ее функциональному тестированию. При наличии в программе функциональных возможностей,
обеспечивающих реализацию мер защиты информации, документацию разработчика ПО следует разрабатывать в
соответствии с требованиями семейств ATE_COV «Покрытие*. ATE_DPT «Глубина». ATE_FUN «Функциональное
тестирование» по ГОСТ Р ИСО/МЭК 15408-3.
10