Динамический анализ
Динамический анализ ПО является одним из ключевых процессов по выявлению уязвимостей и ошибок в работе ПО, эксплуатация которых может привести к успешной реализации угроз безопасности информации.
Особенностью динамического анализа ПО является то, что его выполнение происходит в процессе функционирования (исполнения кода) ПО, то есть исследуется поведение ПО или его отдельных модулей в динамике, а не только исходный код.
Важнейшим преимуществом является возможность выявить ошибки функционирования ПО на этапе его разработки, а не на этапе эксплуатации пользователем. Кроме того, с применением методов динамического анализа возможно выявить сложные ошибки и уязвимости (включая архитектурные), которые могут проявляться только в процессе функционирования ПО (исполнения кода).
Среди множества технологий динамического анализа особое место занимает фаззинг-тестирование, которое заключается в исследовании поведения ПО при подаче на вход случайных или специально сформированных входных данных, отличных от данных, предусмотренных алгоритмами работы исследуемых программ из состава ПО. Например, когда на вход интерфейсов подаются заведомо некорректные данные с большим количеством их модификаций в течение длительного периода. При этом фиксируются все случаи нетипичного поведения тестируемой программы, анализ которых позволяет выявить критичные уязвимости.
С учётом указанных преимуществ динамический анализ ПО, включая фаззинг-тестирование, является обязательным видом исследования кода ПО наравне со статическим анализом.
Для наибольшей эффективности рекомендуется встроить процесс динамического анализа ПО для его систематического применения, что является общепризнанной практикой РБПО.
Обобщенная схема, описывающая этапы внедрения динамического анализа в процесс разработки ПО, представлена ниже.
Дорожная карта
Для более детального изучения подходов к внедрению статического анализа перейдите в закрытый раздел "Экспертам"
В раздел "Экспертам"