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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание - Тестирование на проникновение предполагает выявление уязвимостей программы путем моделирования (имитации) действий потенциального нарушителя. Тестирование на проникновение выполняют разработчик ПО или сторонние организации, обладающие компетенцией в области проведения такого рода испытаний, для актуальной версии программы. Выполнение тестирования на проникновение непосредственно разработчиками ипи специалистами по функциональному тестированию программы нежелательно [из 5.4.3.2 ГОСТ Р 56939-2016]

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

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

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

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

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

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

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

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

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

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

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

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

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

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