Zero Day уязвимость: что такое уязвимость нулевого дня
Узнать большеApplication Security Testing (далее – AST) – это процесс (или комплекс мер) поиска уязвимых мест в исходном коде. Цель, преследуемая в рамках данного процесса - устойчивость ПО к различным угрозам. Реализация механизмов app security testing осуществляется на разных этапах жизненного цикла приложения: разработки, интеграции, ввода в эксплуатацию и приемки, использования программного обеспечения – с помощью определенного набора технологий, а также средств тестирования безопасности приложений, в том числе универсальных, применяющихся практически на всех этапах.
Технологии и инструменты AST, их особенности и применение
Технологии и инструменты тестирования безопасности по этапам жизненного цикла ПО можно представить в виде таблицы:
Этап / инструмент |
Разработка |
Стадия сборки |
Стадия |
Предвыпускная |
Выпуск в |
SAST |
+ |
+ |
+ |
+ |
+ |
DAST |
|
+ |
+ |
+ |
+ |
SCA |
+ |
+ |
|
|
|
IAST |
|
+ |
+ |
+ |
+ |
RASP |
|
|
|
|
+ |
SAST
Из таблицы видно, что универсальная технология, которая может применяться на всех этапах жизненного цикла программного обеспечения, – это SAST. Static Application Security Testing, или статическое тестирование безопасности, принято еще называть методом белого ящика. Оно сводится к анализу исходного кода без запуска ПО. Именно это обуславливает универсальность такого подхода. Благодаря тому что для анализа не требуется исполнение кода, реализовать тестирование можно в любой момент:
-
В процессе разработки ПО – путем встраивания таких решений в IDE.
-
На этапе сборки кода, когда происходит подключение сторонних библиотек и ПО, с помощью которых анализируются подключаемые модули, библиотеки, файлы фреймворков, приложения, с которыми разрабатываемое ПО будет взаимодействовать. Это обеспечивается за счет возможности анализа SAST-инструментами некомпилированного и скомпилированного кода (при использовании анализаторов байтового, а также двоичного кода).
-
На стадии верификации кода и на предвыпускном этапе с помощью SAST анализируется как уже готовый скомпилированный код, так и фрагменты, над которыми еще ведется работа.
-
На стадии выпуска в производство SAST-анализаторы могут использоваться разработчиками, а также теми, кто эксплуатирует ПО. Главное преимущество этих инструментов для конечных пользователей – простота. Для работы с ними и анализа результатов не требуется опыт в разработке. Анализировать приложения сможет специалист по информационной безопасности компании или другой ответственный эксперт, на которого возложены такие функции.
При проведении app security test методом белого ящика выявляются различные виды угроз. SAST-анализаторы обнаруживают синтаксические и математические ошибки, проблемы с проверкой кода, небезопасные ссылки на сторонние приложения, библиотеки, модули и так далее.
При разработке Solar appScreener мы выбрали именно SAST-подход, чтобы решение могли использовать на всех этапах жизненного цикла не только разработчики, но и эксплуатирующие ПО компании.
DAST
Dynamic Application Security Testing, или динамическое тестирование, называют методом черного ящика. Данная технология позволяет обнаружить уязвимости в работающем приложении, выявляет его слабые места. Такие инструменты проверяют выполняемый код и выявляют широкий спектр проблем, связанных с запросами/ответами приложения, использованием памяти, уязвимостями при использовании cookies, сеансами пользователя, исполнением кодов внешних компонентов и модулей, аутентификацией пользователей, внедрением данных (инъекциями).
Таким образом, при выполнении application security test с помощью DAST-инструментов приложение (включая отдельные его компоненты, которые требуется проанализировать) должно быть запущено (код должен исполняться). Поэтому внедрить такой инструмент в процесс разработки можно не всегда (только в зависимости от используемой разработчиком модели). Кроме того, Dynamic Application Security Testing требует немалых временных затрат, в отличие от SAST, отчего на проверку может уйти значительно больше времени.
Инструменты DAST редко применяют пользователи ПО. Для работы с ними требуется персонал с опытом по проведению тестирования на проникновение. Специалист по информационной безопасности без соответствующей подготовки работать с ними не сможет.
IAST
Интерактивное тестирование безопасности, или Interactive Application Security Testing, сочетает черты двух предыдущих технологий, благодаря чему компенсируются недостатки, присущие каждой из них. Такие инструменты могут использоваться практически на всех этапах (при разработке – с оговорками, в зависимости от модели). IAST-анализаторы выполняют статический анализ, а также тестируют исполняемый код. Это реализовано за счет выполнения анализа потоков данных, конфигурации приложений, подключаемых компонентов, библиотек, фреймворков, запросов, внешних/внутренних подключений. IAST – довольно мощная, эффективная технология. Но все-таки конечные пользователи ПО могут испытывать трудности с ее внедрением – для работы с результатами динамического тестирования требуются специалисты с опытом проведения тестирования на проникновение. Таким образом, ее использование рекомендовано уже на более поздних этапах зрелости компании, задействованной в проверках кода.
SCA
Под SCA (Software Composition Analysis) понимают анализ сторонних компонентов ПО. Его цель – проверка уязвимостей в сторонних компонентах, используемых в составе ПО. Данная технология может применяться как на этапе разработки, так и при сборке приложений в завершенный экземпляр ПО. Для реализации SCA используются утилиты, а также иные решения, которые собирают информацию о зависимостях и находят возможные уязвимости, связанные с ними. В зависимости от инструмента, поиск уязвимостей происходит при непосредственном анализе сторонних компонентов (в том числе при использовании SAST-технологии) либо путем сбора информации из различных баз.
RASP
Run-time Application Security Protection – это обеспечение безопасности программы во время ее запуска (при выполнении кода). Эту технологию еще называют самозащитой приложений. Инструменты RASP внедряют в ПО при разработке, а используют уже на этапе эксплуатации. Они анализируют код, трафик, поведение пользователей, запросы, а также другие данные, обнаруживают и предотвращают киберугрозы. Тем самым обеспечивается выполнение application security testing в режиме реального времени при использовании ПО. Благодаря RASP реализуется эффективная защита приложений. Но есть минус – такие инструменты могут существенно влиять на быстродействие ПО, из-за чего их повсеместное внедрение вызывает проблемы.
Как мы видим, процесс RAST оказывается многоуровневым. Таким образом, можно сделать вывод, что в вопросах обеспечения безопасности приложений не стоит надеяться только на разработчиков. Пользователям есть смысл подумать и о внедрении инструментов для самостоятельного анализа, таких, например, как SAST.