Ключевая технология обзор
Тестирование приложений методом «черного ящика»
Во время анализа безопасности методом «черного ящика» доступен только код на стороне клиента. Анализ серверной части возможен только при взаимодействии с точками входа интерфейса.
Тестирование уязвимостей методом «черного ящика» обычно включает три этапа:
Перечисление поверхности атаки: поиск доступных точек входа на стороне сервера (точек входа API);
Отправка запросов с векторами атаки к обнаруженным точкам входа;
Анализ результатов.
Продвинутый краулинг с учетом безопасности
Наша технология продвинутого краулинга специально разработана для автоматического обнаружения всех доступных точек входа на стороне сервера, тем самым решая первый этап.
Существует несколько способов обнаружения точек входа HTTP сервера в среде черного ящика:
Вывод их, определяя, какие запросы могут быть отправлены со стороны клиента;
Снятие отпечатков программного обеспечения, работающего на сервере, и использование предварительно известных точек входа, специфичных для него (например, известные точки входа WordPress);
Фаззинг сервера запросами, созданными с использованием словаря, и анализ ответов — техника, известная как дирбастинг.
Статический анализ JavaScript для перечисления API
Наша технология продвинутого краулинга использует статический анализ кода на стороне клиента в сочетании с более традиционным динамическим краулингом с браузером без графического интерфейса и статическим краулингом с учетом безопасности.
Наша технология статического анализа извлекает серверные точки входа из JS-кода на стороне клиента с нетривиальным анализом значений и путей кода для целей сканирования безопасности веб-приложений.
Продвинутый краулинг
С нашей технологией продвинутого краулинга мы можем:
Обнаруживать серверные точки входа из мертвого, недоступного или закомментированного кода на стороне клиента;
Обнаруживать серверные точки входа из кода на стороне клиента, активного только для авторизованной клиентской области или области администратора;
Использовать спецификации OpenAPI/Swagger API и другие источники информации о точках входа в качестве стартовых точек для анализа и сканирования.
Это дает нам лучшее перечисление поверхности атаки на рынке.
Подводные камни традиционного динамического краулинга
Наиболее важной метрикой качества поиска точек входа является полнота.
Дирбастинг и снятие отпечатков, как правило, не могут выявить все точки входа, особенно для нестандартного, специально написанного программного обеспечения.
Способность выводить точки входа сервера со стороны клиента имеет решающее значение для того, чтобы сканер методом черного ящика мог достичь адекватного покрытия точек входа.
Динамический краулинг
Динамический краулинг - это автоматическое взаимодействие с элементами интерфейса веб-страницы, использующее браузер без графического интерфейса, имитирует действия пользователя и наблюдает за запросами, отправленными на сервер.
Хотя динамический краулинг обычно работает хорошо, есть случаи, когда он не может обнаружить некоторые точки входа. Иногда пользовательский интерфейс слишком сложен, чтобы полностью обойти его. Выполнение всех возможных действий пользователя может занять слишком много времени. В таких случаях краулер останавливается до завершения и потенциально пропускает некоторые точки входа.
Кроме того, иногда JS-код, обращающийся к точке входа, вообще не может быть вызван из пользовательского интерфейса - по сути, это мертвый код. Такой код все еще представляет интерес для сканера и может обращаться к работающим частям сервера. Мы называем такие точки входа скрытыми точками входа.