Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Каждый безопасник рано или поздно задумывается об автоматизации своей работы. С такими же задачами столкнулись Владимир Иванов и Анатолий «c0rv4x» Иванов. Они начали с небольших шагов по автоматизации рутинных пентестерских задач и их мониторинга, а затем превратили свои наработки в сервис ScanFactory. Редакция «Хакера» пообщалась с Владимиром Ивановым и самостоятельно опробовала сервис.
Неважно, занимаешься ли ты аудитом, работаешь безопасником или участвуешь в программах багбаунти — на первом этапе пентеста часто ты будешь проводить одни и те же подготовительные действия: собирать поддомены, сканировать айпишники, перебирать директории и так далее. Автоматизировать все это крайне соблазнительно. Задал параметры, нажал кнопку «сканировать» — и можно продолжать заниматься своими делами, пока не придут отчеты.
Создатели ScanFactory, как и другие пентестеры со стажем, тоже столкнулись с этой задачей и сначала стали решать ее для себя, а затем это выросло в нечто большее.
www
Project Black — опенсорсный проект, созданный Анатолием Ивановым во время работы в Positive Technologies.
«ScanFactory создавался в первую очередь как продукт, который призван экономить время и деньги компании. Он будет полезен как blue team, так и red team — людям, которые выполняют одинаковые задачи в области тестирования инфраструктуры на проникновение», — говорит Владимир Иванов. «Мы очень горды нашим творением, — продолжает он. — И даже немножко страшно от возможностей, которые мы получили, потому что мы покрываем большинство сценариев базового пентестерского аудита».
Сейчас ScanFactory находится в стадии стабильной беты и уже используется в качестве пилотов в компаниях. Как в любом B2B-продукте, все вопросы решаются индивидуально с клиентом, проект выстраивается под его нужды и, по словам разработчиков, запускается в течение дня. Также они готовы разрабатывать и интегрировать фичи, которые могут понадобиться крупному клиенту.
Если задаться вопросом, что вообще делает пентестер, то в общих чертах можно ответить так: он, опираясь на опыт, ищет вариант взаимодействия с приложением, не предусмотренный логикой, и пробует раскрутить его до полноценной уязвимости. Поэтому первая задача — в том, чтобы собрать как можно больше точек входа в исследуемую инфраструктуру.
На этом этапе обнаруживается одна из слабостей человека — он не может построить в голове граф из всех существующих вариантов того, где потенциально могли бы быть уязвимости на внешнем периметре. Человеческие возможности ограниченны!
Поэтому случается так, что некоторые уязвимости проходят мимо глаз исследователей и долгое время остаются ненайденными. В аудите очень важны личные качества человека (насколько он усерден, к примеру) и его опыт: с какими вариантами необычного поведения приложений он сталкивался и какие способы их эксплуатации уже применял.
Для автоматизации, конечно же, существует самый разный софт, причем выбор инструментария есть почти в каждой из областей. В нашем распоряжении — веб‑сканеры (Burp, Acunetix, Netsparker), инфраструктурные сканеры (Nessus), а также всевозможные сетевые сканеры, дирбастеры, сканеры CMS и прочее. Почти каждый день появляется что‑то новое. Если автоматизировать все, что существует, это позволит сильно расширить покрытие того самого графа уязвимостей.
На человека при этом ложится задача связать между собой все эти средства. Грубо говоря, выходные данные одной программы должны поступать на вход другой, а ее результаты работы — следующей. Но у этих программ нет какого‑то единого высокоуровневого интерфейса, и они обычно не задуманы как часть какого‑то набора. Следовательно, автоматизация становится нетривиальной задачей. «Мы программно соединили проги, которые никто раньше не мог соединить», — с гордостью сообщает Владимир Иванов.
Идея решить эту задачу лежит в основе ScanFactory. Если обобщить, то ScanFactory — это SaaS для автоматизированной оценки защищенности внешней инфраструктуры. Он сканирует периметр, обнаруживает проблемы безопасности и оповещает о них, а также выполняет мониторинг для отслеживания новых проблем в будущем.
Давай для начала представим себе сферический пентест в вакууме. Заказчик говорит, что в скоупе все поддомены основного сайта компании, например *.company.corp
.
Наши действия будут следующими.
При использовании ScanFactory все эти действия выполняются в несколько кликов. Создаем новый проект и указываем скоуп со звездочкой: *.company.corp
.
Создание нового проекта в ScanFactory
Здесь же можно указать черный список IP-адресов и доменов, находящихся вне скоупа.
Затем на странице проекта достаточно просто нажать на кнопку запуска.
Страница проекта в ScanFactory
Теперь можно заваривать кофе и заниматься другими делами в ожидании результатов. Пример отсканированного проекта с найденными уязвимостями ты можешь увидеть на странице с Live Demo.
Страница ScanFactory с найденными уязвимостями
Вот как Владимир Иванов описывает сценарий, в котором ScanFactory позволяет найти, проверить и раскрутить цепочку из нескольких уязвимостей, которая при ручном сканировании, скорее всего, осталась бы незамеченной:
Еще один сценарий уязвимости, которую может обнаружить ScanFactory
Во время одного из первых тестов парни столкнулись с проблемой сканирования сайтов с большим количеством похожих страниц. Например, в блогах и новостных сайтах они могут исчисляться тысячами. Поэтому схожие страницы нужно игнорировать, а атаковать достаточно одну. Чтобы сравнивать страницы между собой, в ScanFactory используют технологию Fuzzy Hashing на основе алгоритма SimHash, который применяется в Google.
info
SimHash на основе элементов HTML-дерева считает хеш‑функцию так, что у двух похожих страниц будут похожие хеши. Если страницы отличаются меньше, чем на пороговое значение, то соответствующие запросы можно не сканировать дважды. Но как определить пороговое значение — тема для отдельной статьи.
Также для каждого клиента система автоматически генерирует специальные словари. Во время обхода сайтов краулер вытаскивает из страниц часто встречающиеся ключевые слова. Получается список слов, специфичных для компании и сферы деятельности. Эти словари используются во время брутфорса паролей, а также для поиска скрытых поддоменов.
Источник: xakep.ru