5.4 Меры по разработке безопасного программного обеспечения, реализуемые при выполнении квалификационного тестирования программного обеспечения ГОСТ Р 56939-2016

5.4.2 Цели и результаты реализации мер по разработке безопасного программного обеспечения ГОСТ Р 56939-2016

Реализация мер способствует достижению следующих целей:

В результате успешной реализации мер должны быть:

[из 5.4.2 Цели и результаты реализации мер по разработке безопасного программного обеспечения ГОСТ Р 56939–2016]

5.4.3 Требования к реализации мер по разработке безопасного программного обеспечения ГОСТ Р 56939-2016

5.4.3.1 Разработчик ПО должен проводить функциональное тестирование программы для того, чтобы определить, выполняются ли требования безопасности, идентифицированные в процессе анализа требований к ПО. По результатам функционального тестирования программы можно проводить доработку программы.

Для организации работ, выполняемых в процессах жизненного цикла ПО, документация разработчика ПО должна содержать список выявленных несоответствий требованиям безопасности (при выявлении).

Для подтверждения соответствия требованиям настоящего стандарта документация разработчика ПО должна содержать:

Примечание — Выполняемые тесты должны учитывать состав требований к разрабатываемому ПО и обеспечивать наиболее полную проверку этих требований. Описание плана тестирования и выполняемых тестов можно выполнять непосредственно после формулирования требований к ПО, не дожидаясь окончания разработки. Для эффективного тестирования рекомендуется разделять между специалистами обязанности по созданию программы и ее функциональному тестированию. При наличии в программе функциональных возможностей, обеспечивающих реализацию мер защиты информации, документацию разработчика ПО следует разрабатывать в соответствии с требованиями семейств ATE_COV «Покрытие». ATE_DPT «Глубина».ATE_FUN «Функциональное тестирование» по ГОСТ Р ИСО/МЭК 15408–3.

[из 5.4.3.1 ГОСТ Р 56939–2016]

5.4.3.2 Разработчик ПО должен обеспечить проведение тестирования на проникновение в отношении программы с целью выявления ее уязвимостей. Тесты, выполняемые в рамках тестирования на проникновение, должны быть разработаны с учетом:

По результатам тестирования на проникновение могут проводить доработку программы.

Для организации работ, выполняемых в процессах жизненного цикла ПО, документация разработчика ПО должна содержать список выявленных в ходе проведения тестирования на проникновение уязвимостей ПО (при выявлении).

Для подтверждения соответствия требованиям настоящего стандарта документация разработчика ПО должна содержать:

  • план тестирования, описание выполняемых тестов и инструментальных средств, используемых для тестирования на проникновение;
  • фактические результаты тестирования на проникновение;
  • отчеты, содержащие список выявленных уязвимостей программы (при выявлении), описание действий, направленных на их устранение, или обоснование невозможности или отсутствия необходимости в устранении уязвимостей программы.

Разработчику ПО следует обеспечить конфиденциальность информации, связанной с выявленными в ходе тестирования на проникновение уязвимостями программы.

Примечание — Тестирование на проникновение предполагает выявление уязвимостей программы путем моделирования (имитации) действий потенциального нарушителя. Тестирование на проникновение выполняют разработчик ПО или сторонние организации, обладающие компетенцией в области проведения такого рода испытаний, для актуальной версии программы. Выполнение тестирования на проникновение непосредственно разработчиками или специалистами по функциональному тестированию программы нежелательно.

[из 5.4.3.2 ГОСТ Р 56939–2016]

5.4.3.3 Разработчик ПО должен обеспечить проведение динамического анализа кода программы с целью выявления уязвимостей программы. Тесты, выполняемые в рамках динамического анализа кода программы, должны быть разработаны с учетом:

По результатам динамического анализа кода программы можно проводить доработку программы.

Для организации работ, выполняемых в процессах жизненного цикла ПО, документация разработчика ПО должна содержать список выявленных в ходе проведения динамического анализа кода программы уязвимостей программы (при выявлении).

Для подтверждения соответствия требованиям настоящего стандарта документация разработчика ПО должна содержать:

  • сведения о периодичности проведения динамического анализа кода программы;
  • план тестирования, описание выполняемых тестов и инструментальных средств, используемых для динамического анализа кода программы;
  • отчеты, содержащие список выявленных уязвимостей программы (при выявлении), описание действий, направленных на их устранение, либо обоснование невозможности или отсутствия необходимости в устранении выявленной уязвимости программы.

Разработчику ПО следует обеспечить конфиденциальность информации, связанной с выявленными в ходе динамического анализа кода программы уязвимостями программы [из 5.4.3.3 ГОСТ Р 56939-2016]

5.4.3.4 Разработчик ПО должен обеспечить проведение фаззинг–тестирования программы с целью выявления уязвимостей программы. Тесты, выполняемые в рамках фаззинг–тестирования программы, должны быть разработаны с учетом:

По результатам фаззинг–тестирования программы могут проводить доработку программы.

Дпя организации работ, выполняемых в процессах жизненного цикла ПО, документация разработчика ПО должна содержать список выявленных в ходе проведения фаззинг–тестирования программы уязвимостей программы (при выявлении).

Для подтверждения соответствия требованиям настоящего стандарта документация разработчика ПО должна содержать:

  • сведения о периодичности проведения фаззинг–тестирования программы;
  • план тестирования, описание выполняемых тестов и инструментальных средств, используемых для фаззинг–тестирования программы;
  • отчеты, содержащие список выявленных уязвимостей программы (при выявлении), описание действий, направленных на их устранение, либо обоснование невозможности или отсутствия необходимости в устранении выявленной уязвимости программы.

Разработчику ПО следует обеспечить конфиденциальность информации, связанной с выявленными в ходе фаззинг–тестирования программы уязвимостями программы [из 5.4.3.4 ГОСТ Р 56939–2016]