Получить консультацию по Solar appScreener

Больше 80% приложений содержат как минимум одну критическую уязвимость. Слабые места в коде приложений позволяют хакерам совершать кражи персональных, платежных данных и других конфиденциальных сведений. Чтобы минимизировать подобные риски, важно на каждом этапе разработки контролировать безопасность разрабатываемого ПО и как можно раньше выявлять уязвимости и ошибки, чтобы устранить их до запуска ПО. Таким образом удастся сэкономить время и ресурсы и получить на выходе качественный безопасный продукт. 

Среди других методов проверки кода часто используют DAST — динамический анализ кода. Это сканирование, подразумевающее моделирование реальных атак на приложение с целью поиска уязвимостей, которые могут быть проэксплуатированы злоумышленниками. Это эффективный метод тестирования, способный выявить слабые места в готовом работающем приложении. Обсудим подробнее, как он работает и как его внедрить в цикл SSDLC.

что такое динамическое тестирование

Что такое динамическое тестирование DAST

Dynamic Application Security Testing — проверка ПО на наличие уязвимостей путем моделирования реальных атак с попыткой использования уязвимостей ПО. Анализ происходит с помощью специальных инструментов, позволяющих автоматизировать процесс. Например, сканеры могут имитировать случайные или пользовательские действия.

Динамический анализ программного кода относится к тестированиям методом «черного ящика», поскольку не предполагает детального погружения в структуру программного обеспечения и доступа к исходному коду приложения. Несмотря на это, такая проверка позволяет обнаружить уязвимости и ошибки, которые могут возникнуть при эксплуатации приложения в реальной рабочей среде. Также в ходе динамического анализа выявляются недостатки кода ПО, эксплуатируемые злоумышленниками для проведения различных инъекций кода (например, command injection и SQL-инъекций).

Цели DAST

С помощью динамического анализа программного кода можно выявить проблемы, которые сложно обнаружить другими видами сканирований, и подтвердить уязвимости, найденные другими инструментами анализа. В частности, речь о недочетах и ошибках, проявляемых только после запуска программного обеспечения в рабочей среде. 

Во-вторых, тестирование помогает повысить уровень защищенности ПО от атак киберпреступников. Одним видом проверки не обойтись, однако DAST играет важную роль в цикле безопасной разработки программных продуктов.

В-третьих, динамическое тестирование позволяет сократить временные и материальные затраты на разработку. С его помощью создателям ПО удается вовремя обнаружить и исправить проблемы, в результате релиз продукта происходит с минимальными задержками при высоком уровне безопасности ПО. 

как работает динамический анализ кода программы

Как работает динамический анализ кода программы

Проверка выполняется в процессе работы проверяемого ПО. Это происходит по следующей схеме:

  • Инструмент определяет API сервиса, отправляет проверочные запросы с подставными неверными данными.
  • Запускается алгоритм, анализирующий ответы на смоделированные запросы и сравнивающий их с ответами на обычные пользовательские действия.
  • На основании сравнения ответов сканеры обрабатывают обнаруженные уязвимости и выдают отчеты по результатам проверки. 

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

Преимущества и недостатки динамического анализа кода

Первая и главная сильная сторона анализа — тестирование программного обеспечения без исходного кода. Второй плюс — возможность понять, как готовый продукт будет «раскрываться» в рабочей среде. И третье преимущество — минимальное количество ложных срабатываний, которые часто возникают в ходе статического анализа. Здесь подобных проблем не будет, поскольку ПО проверяется на уязвимости в процессе эксплуатации.

Теперь о минусах:

  • Необходимость максимальной имитации рабочей среды. Полностью воспроизвести ее не получится, чтобы не скомпрометировать настоящие клиентские данные, а тестовая установка может иметь нюансы, которые влияют на точность проверки.
  • Невозможность стопроцентного покрытия кода, поскольку некоторые его компоненты могут быть недоступны при эксплуатации программы с «подставным» набором данных. Важно учитывать, что часть уязвимостей все же может быть упущена – полное покрытие требует использования комплексного подхода. 

Чтобы эффективнее проводить динамический анализ кода, невзирая на минусы этого метода, необходимо правильно выбрать анализатор. Инструмент должен поддерживать ручные настройки, своевременно обновляться с учетом передовых технологий в программировании, легко интегрироваться в цикл безопасной разработки. Решение Solar appScreener на 100% отвечает этим требованиям.

Динамический анализ кода в составе комплексной проверки программного обеспечения на уязвимости

Для полноценного контроля безопасности приложений рекомендуем встраивать в цикл разработки ПО несколько видов анализа кода, помимо динамического. В частности, SAST — статический анализ, SCA — проверку состава программного обеспечения и SCS — анализ безопасности цепочки поставок ПО. Все эти виды анализа можно выполнять с помощью одного инструмента — Solar appScreener.

Динамический анализ в Solar appScreener также поддерживает корреляцию результатов двух модулей – SAST и DAST. Это позволяет верифицировать уязвимости, которые нашел статический анализ, с помощью DAST, и приступить к их устранению в первую очередь.

ДРУГИЕ СТАТЬИ ПРОДУКТА

Еще больше о наших возможностях

Статический анализ кода: как работает и для чего применяется

Статический анализ кода: как работает и для чего применяется

Узнать больше