SOT

Security Orchestration Tools

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

«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ

«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ

  |  Слушать на 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) Подкасты ИБ

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

Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Сценарии реагирования на инциденты в кибербезопасности. Часть 1: ранбуки, плейбуки и СОП
Сценарии реагирования на инциденты в кибербезопасности. Часть 1: ранбуки, плейбуки и СОП
eBPF глазами хакера. Часть 1
eBPF глазами хакера. Часть 1
Комплексное управление уязвимостями
Комплексное управление уязвимостями
Виды спуфинга и типы спуферов, методы выявления и предотвращения spoofing-атак
Виды спуфинга и типы спуферов, методы выявления и предотвращения spoofing-атак
Как ИИ-инструменты работают в кибербезопасности
Как ИИ-инструменты работают в кибербезопасности
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает
Что такое киберинцидент — простыми словами о сложной угрозе
Что такое киберинцидент — простыми словами о сложной угрозе
Авторизация
Авторизация
Методы поиска уязвимостей и виды сканеров
Методы поиска уязвимостей и виды сканеров
Возможности обновленных продуктов Security Vision SOAR и NG SOAR
Возможности обновленных продуктов Security Vision SOAR и NG SOAR

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

Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Сценарии реагирования на инциденты в кибербезопасности. Часть 1: ранбуки, плейбуки и СОП
Сценарии реагирования на инциденты в кибербезопасности. Часть 1: ранбуки, плейбуки и СОП
eBPF глазами хакера. Часть 1
eBPF глазами хакера. Часть 1
Комплексное управление уязвимостями
Комплексное управление уязвимостями
Виды спуфинга и типы спуферов, методы выявления и предотвращения spoofing-атак
Виды спуфинга и типы спуферов, методы выявления и предотвращения spoofing-атак
Как ИИ-инструменты работают в кибербезопасности
Как ИИ-инструменты работают в кибербезопасности
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает
Что такое киберинцидент — простыми словами о сложной угрозе
Что такое киберинцидент — простыми словами о сложной угрозе
Авторизация
Авторизация
Методы поиска уязвимостей и виды сканеров
Методы поиска уязвимостей и виды сканеров
Возможности обновленных продуктов Security Vision SOAR и NG SOAR
Возможности обновленных продуктов Security Vision SOAR и NG SOAR