SOT

Security Orchestration Tools

SIEM
Security Information and Event Management

Мониторинг событий ИБ

EDR
Endpoint Detection and Response

Защита конечных точек

SOAR
Security Orchestration, Automation and Response

Автоматизация реагирования на инциденты ИБ

NG SOAR
Next Generation SOAR

Автоматизация реагирования на инциденты ИБ со встроенной базовой корреляцией, сбором сырых событий непосредственно с СЗИ, динамическими плейбуками, выстраиванием цепочки атаки и объектно-ориентированным подходом

AM
Asset Management

Инвентаризация и управление ИТ-активами

VM
Vulnerability Management

Устранение уязвимостей с автопатчингом

VS
Vulnerability Scanner

Поиск технических уязвимостей на активах

SPC
Security Profile Compliance

Управление конфигурациями безопасности активов

ГосСОПКА
Государственная Система Обнаружения Предупреждения и Ликвидации Последствий Компьютерных Атак

Двустороннее взаимодействие с НКЦКИ

FinCERT
Financial Computer Emergency Response Team

Двустороннее взаимодействие с ЦБ

Напишите нам на sales@securityvision.ru или закажите демонстрацию

Методы тестирования ИБ: Black Box, White Box, Gray Box, DAST, SAST

Методы тестирования ИБ: Black Box, White Box, Gray Box, DAST, SAST

  |  Слушать на Google Podcasts  |   Слушать на Mave  |   Слушать на Яндекс Музыке  |  


Руслан Рахметов, Security Vision


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


Оглавление:


1. Что такое тестирование методами «белого», «серого» и «черного» ящика?

2. Метод «белого ящика» (White Box): тестирование с полным доступом

3. Инструменты для White Box: SAST, SCA, OSA решения

4. Метод «серого ящика» (Gray Box): имитация атак с частичными знаниями

5. Метод «черного ящика» (Black Box): взгляд на систему глазами хакера

6. Инструменты для Black Box: DAST, IAST, BAST решения

7. SAST vs DAST: ключевые различия и совместное использование

8. FAQ: Часто задаваемые вопросы


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


1. Что такое тестирование методами «белого», «серого» и «черного» ящика?


Начнем с терминологии:

• Метод «белого ящика» (White box, метод «открытого ящика») подразумевает тестирование системы (ПО) при наличии предварительного знания о ней - архитектуры, документации, исходного кода, описания её поведения;
• Метод «серого ящика» (Gray box) подразумевает тестирование системы (ПО) при наличии частичного предварительного знания о ней - могут быть известны общее описание всей системы или более точные описания лишь отдельных её частей;
• Метод «черного ящика» (Black box, метод «закрытого ящика») подразумевает тестирование системы (ПО) без наличия предварительного знания о ней - без понимания её архитектуры, без наличия документации и исходного кода, без исходного понимания её поведения.


2. Метод «белого ящика» (White Box): тестирование с полным доступом


Методом «белого ящика» пользуются разработчики, тестировщики, ИБ-аудиторы и специалисты по AppSec, которым важно отслеживать безопасность ПО на каждом этапе жизненного цикла. Метод «открытого ящика» используется также для того, чтобы устранить все баги и ошибки, которые напрямую не влияют на безопасность, но могут негативно сказаться на пользовательском опыте и эффективности работы информационной системы. Проверки методом «White box» занимают, как правило, длительное время по причине достаточно большой глубины тестирования и многостороннего характера проверок (безопасность, функционал, UI/UX, совместимость и т.д.). Для повышения эффективности White box-проверок систему (ПО) можно декомпозировать на несколько составных частей или логических модулей, проводя последовательное тестирование каждого из них, а затем проверяя их связность и взаимодействие как единого целого. Кроме того, именно метод «открытого ящика» позволяет проанализировать сценарии атак со стороны внутреннего нарушителя - инсайдера, который может иметь легитимный привилегированный доступ к системе и хорошо знать её особенности и даже архитектуру. Отметим, что злоумышленники могут также использовать метод тестирования White box, но только для тех продуктов, к исходному коду которых они имеют доступ - например, к решениям на базе Open Source, применяемым целевой компанией-жертвой, или если они получили доступ к исходному коду продукта, который уже используется различными заказчиками.


3. Инструменты для White Box: SAST, SCA, OSA решения


Для автоматизации тестирования методом «белого ящика» можно использовать методы статического анализа кода, в частности, использовать статические анализаторы и решения для статического тестирования безопасности приложений (SAST, Static Application Security Testing). Статические анализаторы - это решения для автоматизации крайне трудоёмкого ручного процесса code review (код-ревью), который подразумевает вычитку исходного кода и формирование рекомендаций по его улучшению. Самые простые статические анализаторы встроены в большинство компиляторов - они предупреждают разработчиков о тривиальных ошибках и опечатках. SAST-решения сфокусированы на выявлении уязвимостей в коде на самых ранних этапах, когда цена устранения ошибки гораздо ниже. Инструменты статического анализа кода не гарантируют стопроцентный результат, дают высокий уровень ложноположительных срабатываний, не могут обнаружить ошибки конфигурирования - в целом, их задача заключается в том, чтобы подсветить разработчикам, тестировщикам и ИБ-аудиторам возможные проблемные места и автоматически проверить код на самые распространенные типы ошибок. Для эффективной работы со статическими анализаторами и в целом с методом «белого ящика» от проверяющих потребуется высокая экспертиза и значительные трудозатраты. Кроме того, в рамках тестирования методом «белого ящика» могут быть использованы такие инструменты, как решения для анализа состава ПО (SCA, Software Composition Analysis) и решения для анализа компонентов с открытым исходным кодом (OSA, Open Source Analysis).


Если же обратиться к нормативно-правовой документации, то в стандарте ГОСТ Р 56939-2024 «Защита информации. Разработка безопасного программного обеспечения. Общие требования» статический анализ исходного кода программы определяется как вид работ по инструментальному исследованию программы, основанный на анализе исходного кода программы с использованием специализированных инструментальных средств (статических анализаторов) в режиме, не предусматривающем исполнения кода, и выполняемый для определения свойств программы; в частности, статический анализ применяется для выявления потенциальных ошибок в программе. Кроме того, для статического анализа утвержден стандарт ГОСТ Р 71207-2024 «Защита информации. Разработка безопасного программного обеспечения. Статический анализ программного обеспечения. Общие требования».


4. Метод «серого ящика» (Gray Box): имитация атак с частичными знаниями


Тестирование методом «серого ящика» позволяет компании компенсировать некоторые недостатки тестирования White box - такие как ресурсозатратность и длительность, а также частично воспроизвести действия злоумышленника, который обладает ограниченными привилегиями в системе. Gray box тестирование может моделировать сценарии атак со стороны APT-группы, которая уже длительное время собирает информацию о жертве и используемом ей ПО - в результате, такие продвинутые атакующие получают частичное знание о том, как работает система и какие техники можно использовать для её компрометации. В случае проверки системы методом пентеста специалисты предварительно получают общее представление об архитектуре системы и обладают ограниченными учетными записями в ней (например, не административные привилегии, а пользовательские). С одной стороны, такие ограничения сужают скоуп пентеста и не позволяют выявить все уязвимости, с другой - не дают пентестерам возможности случайно нарушить работу информационной системы. Тестирование методом «серого ящика» могут выбрать те компании, которые при моделировании угроз и нарушителя сделали вывод о том, что для них актуальны атаки со стороны высокомотивированных атакующих (APT-группы, киберпреступные синдикаты, киберармии, продвинутые хактивисты).


5. Метод «черного ящика» (Black Box): взгляд на систему глазами хакера


Метод «черного ящика» позволяет взглянуть на ПО или информационную систему в целом глазами внешних атакующих, которые, не обладая предварительными знаниями о ней, будут искать потенциально эксплуатируемые уязвимости методом перебора точек входа, веб-форм, передаваемых параметров и поиска потенциально опасных конструкций и элементов, используя дебаггеры и декомпиляторы. Кроме того, атакующие будут искать уязвимости не только в самой системе, но и в её конфигурации, и в примененных мерах защиты, включая СЗИ. Таким образом, метод «закрытого ящика» позволяет смоделировать действия реальных атакующих различной степени подготовленности и целеустремленности.


Тестирование методом Black box может быть разделено на пять фаз:

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


6. Инструменты для Black Box: DAST, IAST, BAST решения


При тестировании методом «черного ящика» могут быть использованы средства автоматизации, такие как решения для динамического анализа кода (DAST, Dynamic Application Security Testing) - они позволяют выявлять уязвимости и моделировать работу пользователей и атакующих с системой. В отличие от SAST, решения для динамического анализа кода не имеют доступа к исходному коду, однако позволяют обнаруживать ошибки и уязвимости уже во время работы скомпилированной программы. Если же обратиться к определению из стандарта ГОСТ Р 56939-2024, то динамический анализ кода программы определяется как вид работ по инструментальному исследованию программы, основанный на анализе кода программы в режиме непосредственного исполнения (функционирования) кода. В целом, DAST-решения работают с тестируемым ПО с точки зрения пользователя (или атакующего), задача которого - найти уязвимость в запущенном приложении. Для этого используется в том числе метод фаззинга (англ. fuzzing), при котором на вход приложения намеренно подаются некорректные, неправильно сформированные, неожиданные или случайные данные в целях проверки безопасности и устойчивости приложения к подобным ошибкам.


Таким образом, DAST-решения помогают выявить ошибки на более поздних этапах жизненного цикла разработки ПО, но могут позволить обнаружить уязвимости, которые появляются только после установки и запуска программы (например, уязвимости конфигурации). Кроме DAST, используются продукты для интерактивного анализа кода (IAST, Interactive Application Security Testing) и для поведенческого анализа кода (BAST, Behavioral Application Security Testing), которые также работают с уже запущенным приложением и позволяют выявить его недостатки на более поздних стадиях цикла разработки. IAST-решения проверяют безопасность потоков команд и данных запущенного приложения и проверяют его работу со средой исполнения и инфраструктурой (например, доступ к файлам, вызов системных функций, открытие сокетов и т.д.). BAST-решения проверяют безопасность и корректность работы критичного для бизнеса функционала приложения (например, доступ к чувствительными данным, использование шифрования, аутентификация пользователей и т.д.).


7. SAST vs DAST: ключевые различия и совместное использование


Подводя итог, можно выделить следующие характерные отличия SAST инструментов для тестирования методом «белого ящика» и DAST инструментов для тестирования методом «черного ящика»:

• SAST-решение анализирует исходный код системы, в то время как DAST-решение тестирует уже готовое и запущенное приложение;
• SAST подразумевает тестирование внутренних компонентов системы с точки зрения разработчика, а DAST тестирует внешнюю «оболочку» системы, моделируя действия атакующего;
• SAST не может обнаружить недостатки и уязвимости, связанные со средой исполнения или проявляющиеся только во время выполнения программы, а DAST может;
• SAST позволяет обнаружить недостатки и уязвимости в системе на более ранних стадиях жизненного цикла разработки, что помогает снизить стоимость их исправления, а DAST обнаруживает проблемы на более поздних этапах разработки, что повышает стоимость их устранения;
• Для более эффективного устранения ошибок и уязвимостей рекомендуется совместно использовать и SAST, и DAST инструменты на разных этапах разработки ПО, а также применять решения классов IAST, BAST, SCA, OSA.


8. FAQ: Часто задаваемые вопросы

Что такое метод «белого ящика» в тестировании?
Метод «белого ящика» (White box) подразумевает тестирование программного обеспечения при наличии полного предварительного знания о нем: доступа к архитектуре, документации, исходному коду и описанию его поведения.
Какие инструменты используются для White Box тестирования?
Для автоматизации тестирования методом «белого ящика» применяются статические анализаторы кода (SAST), решения для анализа состава ПО (SCA) и для анализа компонентов с открытым исходным кодом (OSA).
Чем метод «черного ящика» отличается от «белого»?
Основное отличие в уровне знаний о системе. Тестирование «черного ящика» проводится без каких-либо предварительных знаний о внутренней структуре ПО, имитируются действия хакера. Тестирование «белого ящика» проводится с полным доступом к исходному коду и документации.
Что такое DAST-сканирование?
DAST (Dynamic Application Security Testing) — это вид динамического анализа, который используется при тестировании методом «черного ящика». DAST-решения тестируют уже запущенное приложение, не имея доступа к его исходному коду, и помогают выявлять уязвимости во время его работы.
В чем ключевая разница между SAST и DAST?
SAST анализирует статический исходный код до компиляции (подход «белого ящика»), находя уязвимости на ранних этапах. DAST анализирует работающее приложение (подход «черного ящика»), выявляя уязвимости, которые проявляются во время исполнения, в том числе ошибки конфигурации.
Для чего нужен метод «серого ящика»?
Метод «серого ящика» (Gray box) используется для имитации атак со стороны злоумышленника, обладающего ограниченными знаниями о системе или частичными привилегиями, например, для моделирования действий APT-группы.
Какие этапы включает тестирование Black Box?
Тестирование методом «черного ящика» обычно включает пять фаз: разведка, сканирование, перечисление, получение доступа, а также повышение привилегий и закрепление в системе.
Может ли хакер использовать метод «белого ящика»?
Да, злоумышленники могут использовать метод White box, если у них есть доступ к исходному коду продукта, например, в случае с ПО на базе Open Source или при утечке исходных кодов.
Что такое статический анализ кода согласно ГОСТ?
Согласно ГОСТ Р 56939-2024, статический анализ кода - это вид инструментального исследования, основанный на анализе исходного кода программы без ее исполнения, с целью выявления потенциальных ошибок и определения свойств программы.
Что такое динамический анализ программы согласно ГОСТ?
Согласно ГОСТ Р 56939-2024, динамический анализ программы – это вид работ по инструментальному исследованию программы, основанный на анализе кода программы в режиме непосредственного исполнения (функционирования) кода.
Почему рекомендуется использовать и SAST, и DAST?
Совместное использование SAST и DAST на разных этапах разработки ПО позволяет более эффективно устранять ошибки и уязвимости. SAST находит проблемы в коде на ранних стадиях, а DAST — в работающем приложении на поздних, что обеспечивает комплексную проверку безопасности.

Аудит информационной безопасности Стандарты, ГОСТы и документы ИБ Управление уязвимостями (VM) Подкасты ИБ

Похожие статьи

От хаоса активов к гармонии сервисов
От хаоса активов к гармонии сервисов
Маскирование данных для защиты ПДН
Маскирование данных для защиты ПДН
Применение алгоритмов симметричного и асимметричного шифрования
Применение алгоритмов симметричного и асимметричного шифрования
Динамический поведенческий анализ и его инструменты
Динамический поведенческий анализ и его инструменты
CyBOK. Глава 3. Законы и регуляторные нормы. Часть 5
CyBOK. Глава 3. Законы и регуляторные нормы. Часть 5
10 популярных техник обхода EDR
10 популярных техник обхода EDR
Что такое SQL-инъекция
Что такое SQL-инъекция
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Эволюция CVSS и разбор примера оценки уязвимости
Эволюция CVSS и разбор примера оценки уязвимости
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает

Похожие статьи

От хаоса активов к гармонии сервисов
От хаоса активов к гармонии сервисов
Маскирование данных для защиты ПДН
Маскирование данных для защиты ПДН
Применение алгоритмов симметричного и асимметричного шифрования
Применение алгоритмов симметричного и асимметричного шифрования
Динамический поведенческий анализ и его инструменты
Динамический поведенческий анализ и его инструменты
CyBOK. Глава 3. Законы и регуляторные нормы. Часть 5
CyBOK. Глава 3. Законы и регуляторные нормы. Часть 5
10 популярных техник обхода EDR
10 популярных техник обхода EDR
Что такое SQL-инъекция
Что такое SQL-инъекция
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Эволюция CVSS и разбор примера оценки уязвимости
Эволюция CVSS и разбор примера оценки уязвимости
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает