Внедрение SAST в процесс разработки
Узнать большеВ сфере информационной безопасности существует такое понятие, как Zero Day, 0-day или уязвимость нулевого дня. Если злоумышленники обнаружат ее раньше разработчиков или пользователей ПО, сильно возрастают риски атаки на приложение. В статье подробно рассказываем о подобных типах уязвимостей, способах их обнаружения и устранения.
Что такое Zero Day
Уязвимость нулевого дня — термин, обозначающий все слабые места ПО (ошибки в программном коде, недоработанные функции, недекларированные возможности и т.д.) и вредоносные программы, против которых пока нет защитных механизмов.
Найти уязвимость нулевого дня могут пользователи, столкнувшиеся с проблемой в ходе эксплуатации продукта, сами разработчики при выпуске обновлений, хакеры. В любом случае имеющаяся уязвимость ставит под угрозу устройства, на которые установлена программа. Например, она часто становится причиной утечки конфиденциальных данных пользователей.
Как обнаружить уязвимость Zero Day
Часто уязвимость обнаруживается при регистрации попыток атак на приложение. Например, подозрительную активность могут зафиксировать межсетевые экраны или антивирусы. В ходе расследования инцидента выясняется, что была проэксплуатирована Zero Day.
Какими методами пользуются злоумышленники, чтобы обнаружить и применить для атаки уязвимость нулевого дня:
- Дизассемблирование программного кода с целью поиска ошибок в нем.
- Стресс-тест для ПО, позволяющий обнаружить некорректное поведение приложения в ответ на некоторые действия.
- Применение методов реверс-инжиниринга.
С момента обнаружения злоумышленниками уязвимости нулевого дня до начала атаки может пройти несколько недель, поскольку хакерам необходимо подготовиться к нападению. Если за это время разработчики успеют обнаружить и устранить проблему, инцидент удастся предотвратить.
Чтобы выявлять именно Zero Day, некоторые крупные корпорации формируют собственную команду хакеров. Задачи команды: обнаружение и исследование уязвимости, разработка патчей, информирование поставщика проблемного ПО.
Чем опасны атаки с эксплуатацией уязвимости нулевого дня
Основная опасность заключается в том, что невозможно предотвратить подобные атаки заранее. Разработчики и пользователи ПО не знают об уязвимости до тех пор, пока её не обнаружит анализатор, или пока она не будет исправлена (например, если используется библиотека с открытым исходным кодом), или же пока злоумышленники не начнут атаку на приложение.
Стандартные меры безопасности могут оказаться неэффективными, поскольку хакеры разрабатывают свои стратегии с учётом стандартных стратегий обеспечения информационной безопасности.
Способы защиты от Zero Day
Устранение уязвимостей в программах входит в задачи разработчиков, но пользователи, особенно компании, должны предпринимать меры защиты своих устройств и информационного периметра.
Пока уязвимость Zero Day не устранена, системы, использующие проблемное ПО, будут под угрозой. Какие средства для их защиты целесообразно внедрить:
- Антивирусные решения, анализирующие входящий трафик на предмет наличия вредоносных компонентов различных типов.
- Межсетевой экран, фильтрующий входящий и исходящий трафик, защищающий от ряда сетевых атак.
- Sandbox или «песочницу» — виртуальную среду, предназначенную для анализа подозрительных программ.
Чтобы минимизировать риски Zero Day, не стоит устанавливать лишние программы и приложения, которые не нужны для работы. С каждым новым установленным ПО возрастает вероятность атак нулевого дня.
Также обязательно своевременно обновлять используемое программное обеспечение. Установка новых версий часто помогает устранить проблемы и ошибки в функциональности ПО.
Анализ программного кода ПО с целью обнаружения Zero Day
Существует разные методы анализа кода, в частности, статическое и динамическое тестирования, исследование состава программного обеспечения. Коротко опишем особенности каждого вида проверки:
- Static Application Security Testing (далее — SAST) — статический анализ по технологии «белого ящика», учитывает структуру программного обеспечения. Его можно проводить вручную или с помощью специальных анализаторов на любом этапе создания ПО. Такой анализ позволяет практически полностью покрыть код и снизить риски Zero Day уязвимостей. Для проверки не нужно разворачивать имитированную рабочую среду и запускать приложение. Но у такого тестирования, проводимого с помощью специального анализатора, есть существенный минус — большая вероятность ложноположительных срабатываний.
- Dynamic Application Security Testing (далее — DAST) — динамическое тестирование, основанное на имитации пользовательских действий в отношении программы с целью проверить поведение, время отклика, корректность работы функций. Для такого анализа не важна структура приложения, поэтому DAST называют методом «черного ящика». Чтобы выявить Zero Day уязвимости и другие проблемы ПО, необходимо запустить программу в имитированной рабочей среде. Из-за этой особенности тестирования его целесообразно проводить только тогда, когда приложение будет частично или полностью готово к эксплуатации.
- Software Composition Analysis (далее — SCA) — анализ программ, в составе которых присутствует открытый исходный код, заимствованный из общедоступных библиотек. Тестирование позволяет обнаружить уязвимости в open source-компонентах, для которых уже выпущены патчи. SCA выполняется с помощью специальных анализаторов и может применяться уже на первых этапах разработки.
Чтобы с большой долей вероятности обнаружить Zero Day, целесообразно использовать все перечисленные виды тестирований. С помощью одного анализа сложно обнаружить все проблемы программного обеспечения, особенно если приложение сложное и имеет много функций.
Внедрение анализатора Solar appScreener с целью обнаружения уязвимостей нулевого дня и других проблем ПО
Платформа Solar appScreener предоставляет все необходимые инструменты для проведения SAST, DAST и SCA. Также она позволяет формировать коррелированные отчеты с экспертными рекомендациями по результатам всех тестирований.
С помощью модуля SAST можно тестировать приложения на наличие уязвимостей даже без доступа к исходному программному коду. В этом случае будет исследоваться бинарный код. Чтобы запустить сканирование, необходимо загрузить в анализатор ссылку на готовое ПО. Еще одно преимущество модуля SAST в Solar appScreener — минимальное количество ложных срабатываний благодаря уникальной технологии Fuzzy Logic Engine.
DAST-анализ веб-приложений проводится различными методами, например, активного и пассивного сканирования, фаззинга и др.
Анализ SCA выполняется инструментами модуля OSA, в который помимо исследования состава ПО включена проверка цепочки поставок (SCS).