
Всем привет! Я Владимир Гринчуков, в Positive Technologies мы с командой PT BlackBox разрабатываем сканер безопасности. На вход он получает URL приложения, а после сканирования возвращает список уязвимостей. Как и любой анализ чёрным ящиком, он работает по простому принципу: сначала собирает поверхность атаки — список всех эндпойнтов приложения, их методов и параметров, — а потом ищет на них уязвимости. Сбор поверхности — это непростая задача, в решении которой мы набили много шишек.
Компонент, который обходит приложение и фиксирует все входные точки, называется краулер — это неотъемлемая часть DAST‑инструментов. Концептуально он работает очень просто: открыть страницу, найти все ссылки, перейти по ним и повторить, пока ссылки не закончатся. Чтобы быть пригодным для сканера уязвимостей, он, помимо основной функциональности, должен ещё отвечать требованиям воспроизводимости, автономности, конечности и скорости.
Такой краулер называют статическим, и на практике его часто не хватает.
В этой статье я расскажу о том, как мы разрабатывали динамический краулер, какие интересные проблемы решали и какие компромиссы приняли.
Читать далее