Supply Chain Security
Узнать большеДля обеспечения безопасности готового ПО его проверяют методами White box и Black box test. Первый применяется, если доступен исходный код и другая информация о приложении. Black box — анализ кода, при котором нет доступа к исходным данным. У тестировщиков нет никакой информации о ПО — приложение, по сути, представляет собой черный ящик с неизвестным содержимым, поэтому методика получила такое название. Несмотря на разницу в подходах, оба вида анализа помогают выявить недекларированные возможности и уязвимости в коде программного обеспечения, то есть у них одинаковые цели — своевременно обнаруживать проблемы и обеспечивать безопасность ПО. В этой статье расскажем о тестировании по стратегии черного ящика, его эффективности, преимуществах, недостатках и методах выполнения.
Что такое анализ методом черного ящика
Ключевой вид анализа безопасности программного обеспечения Black box test — динамическое тестирование или Dynamic Application Security Testing (далее используется сокращение — DAST). Оно подразумевает инсценировку реальных атак на мобильные и веб-приложения, попытки искусственно проэксплуатировать существующие уязвимости ПО. Такая проверка реализуется с помощью специализированных инструментов, автоматически предпринимающих все необходимые действия.
Общая схема тестирования Black box с помощью автоматизированных сканеров выглядит примерно так:
- В сканер загружается URL мобильного, десктоп или веб-приложения.
- Сканер начинает отправлять запросы с заведомо ложными данными.
- Алгоритмы, реализованные в инструменте, анализируют отклики на подставные запросы и сравнивают их с ответами, которые приложение выдает реальным пользователям.
- Сканер обрабатывает результаты теста и генерирует подробную отчетность по обнаруженным уязвимостям.
Black Box Testing следует запускать в каждом цикле разработки ПО, чтобы отследить все уязвимости, возникающие при интеграции новой функциональности. Также желательно перед началом эксплуатации проверять готовые программные продукты, особенно если они долгое время не обновлялись или загружались из непроверенных источников.
Задачи и цели тестирования методом черного ящика
Динамическое тестирование методом черного ящика для контроля безопасности программных продуктов и предотвращения потенциальных атак применяется в следующих случаях:
- Выявление уязвимостей, не обнаруженных в ходе других проверок ПО.
- Обнаружение недочетов приложений, которые можно отследить только после запуска программного обеспечения.
- Подтверждение уязвимостей, ранее обнаруженных в ходе использования других инструментов анализа.
- Повышение общего уровня защищенности программного обеспечения.
- Предотвращение задержки выпуска готового продукта на рынок, поскольку динамический анализ методом Black box позволяет обнаруживать и устранять проблемы ПО в процессе разработки.
DAST-тестирование должно присутствовать в цикле безопасной разработки ПО наряду с другими видами анализа: статическим анализом Static Application Security Testing (сокращенно — SAST), анализом состава кода Software Composition Analysis (сокращенно — SCA). Комплексный подход к исследованию программного обеспечения в процессе его создания позволяет оперативно обнаруживать слабые стороны и устранять возможные риски ИБ.
Когда применяется тестирование программ методом черного ящика
Этот метод обычно применяется для проверки готовых к выпуску приложений, то есть на финальных этапах цикла разработки, либо для исследования уже эксплуатируемого ПО. Он будет полезен в следующих случаях:
- Нет доступа к исходному коду программного обеспечения, поскольку ПО наследованное и отсутствуют контакты разработчиков, либо разработчиков уже нет на рынке. В этих случаях для поиска проблем в готовых продуктах можно применить метод Black box testing.
- Возникла необходимость проверки функциональности ПО. Метод черного ящика помогает отследить поведение приложений в процессе эксплуатации, поэтому подойдет для этой цели.
- Нужно дополнить результаты других тестирований. Лучшая практика — комплексный подход к анализу программного обеспечения, включающий несколько видов проверок.
Преимущества Black Box Testing
Ключевой аргумент за проведение такого тестирования — возможность анализировать приложения без доступа к исходному коду. Еще несколько преимуществ:
- Возможность проверить, как приложение будет вести себя в рабочей среде во время эксплуатации, в процессе взаимодействия с пользователями. Ни один другой вид анализа не выполняет аналогичных функций.
- Меньшее количество ложных срабатываний в сравнении со статическим анализом SAST. Ложноположительных сигналов будет не так много, поскольку анализ затрагивает не исходный код, а приложение в целом.
- Возможность по результатам тестирования корректировать настройки безопасности программных продуктов, если это необходимо.
Также к сильным сторонам тестирования методом черного ящика можно отнести простоту реализации подхода и отсутствие необходимости глубоко погружаться в нюансы программирования. Благодаря этим преимуществам такая методика тестирования считается одной из самых распространенных.
Недостатки тестирования ПО методом черного ящика
Несмотря на широкое распространение этого вида анализа ПО, у него есть слабые стороны, например:
- Так как динамический анализ ПО проводится на функционирующем приложении, есть риск помешать или даже остановить его работу.
- Необходимость разворачивать программное обеспечение для тестирования. Чтобы не нарушить работу приложения, желательно использовать для анализа копию ПО. Развертывание по такой схеме потребует дополнительных ресурсов, что может стать проблемой для некоторых компаний.
- Невысокая скорость выполнения Black Box Testing. Нужно немало времени, чтобы реализовать различные сценарии проверки, воссоздать потенциально опасные ситуации и оценить реакцию приложения на них.
- Снижение эффективности тестирования при усложнении версии программного обеспечения. Чем сложнее приложение, тем больше нюансов в процессе анализа и меньше вероятность обнаружить все уязвимости.
Чтобы нивелировать основные недостатки и сложности тестирования методом черного ящика, необходимо выбрать эффективный анализатор, например, наше решение Solar appScreener. Это продукт с удобным графическим интерфейсом, в первую очередь рассчитанным на офицеров службы ИБ. Для использования реализованных в анализаторе инструментов не нужны глубокие технические знания в области программирования и навыки, позволяющие проводить тестирование методом черного ящика. Для проверки достаточно загрузить в анализатор URL приложения.
Важный момент — для реализации динамического тестирования потребуется согласие правообладателя программного обеспечения. Если согласия нет, проверку методом черного ящика проводить нельзя. В таком случае придется ограничиться другими видами анализа, которые тоже выполняются инструментами Solar appScreener.
Тестирование методом черного ящика с помощью Solar appScreener
В нашем продукте реализовано несколько видов динамического анализа ПО: традиционный, автоматический и пассивный сканеры, AJAX-сканер, Fuzzer.
Разберем узкие направления анализа с применением AJAX-сканера и Fuzzer:
- Сканер AJAX позволяет проверить, как работают AJAX-запросы, с помощью которых можно обращаться к серверу без перезагрузки открытой страницы. Эта опция в основном используется для форм регистрации и кнопок для осуществления пользовательских действий в приложении (например, это кнопки «купить», «добавить в корзину»). Благодаря сканеру для тестирования методом черного ящика можно обнаружить недочеты, связанные с использованием AJAX-запросов.
- Инструменты фаззинга позволяют проводить Black Box Testing путем проверки приложений на неожиданный вход. Цель — посмотреть, будет ли ПО выдавать неожиданные действия. Такой анализ работает на элементах страниц с известными входными данными. Обычно разработчики для мелочей продумывают бизнес-логику приложений, но абсолютно все уязвимости предусмотреть невозможно.
Тестирование методом черного ящика с помощью Solar appScreener можно выполнять в одном из трех режимов.
- Стандартный режим - не предусматривает ограничений.
- Агрессивный режим - предполагает сканирование всех новых узлов, обнаруженных в зоне видимости.
- Режим активной атаки - разрешающий проведение атаки в процессе активного сканирования ПО.
Модуль DAST Solar appScreener авторизуется в исследуемых приложениях следующими способами:
- Через известные анализатору пользовательские логины и пароли, которые вводятся в стандартную форму авторизации.
- С помощью bearer-токена аутентификации, который вставляется в заголовки отправляемых запросов.
- С помощью заголовков запросов, куда анализатор вставляет известные ему данные.
- Через форму авторизации, в поля которой Solar appScreener вводит указанную пользователем информацию.
Если помимо динамического анализа приложения проводилось тестирование SAST, анализатор может провести корреляцию результатов и представить их в удобном наглядном формате. Это позволит получить более полное представление обо всех обнаруженных уязвимостях и приоритизировать порядок их устранения.