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