Актуальность выбора
Долго искали решение построения реальных векторов атак и приоритизации закрытия уязвимостей. Отсмотрели не одно решение - пилотировали и внедряли, но чувство отрыва аналитики от реальности не покидало… И появлялось стойкое ощущение, что приоритизации на основе смоделированных и сымитированных векторов атак нельзя доверять в полной мере.
Если неверна концепция подхода, принятого на более низких уровнях абстракции, системы тоже становятся неверными. И мы продолжили поиск технологии.
Во время этих «скорбных» размышлений один из моих коллег рассказывает про чудесное решение (как впоследствии оказывается, не без умысла =), но об этом после), которое может автоматизировать работу пентестера*. Говорит: «источник доверенный, все работает» - я ему не верю.
*- слоган производителя PenTera, компании PCYSYS: «Сила тысячи пентестеров в одном нажатии кнопки».
Неужели работает?
Отношение скептическое, но источник доверенный. Связываемся с дистрибьютором -компанией CITUM - и принимаем решение тестировать решение на своей реальной ИТ-инфраструктуре с дополнительным предоставлением тестового сегмента сети с уязвимостями. Идея следующая: нельзя решение подобного класса проверять на Заказчике, не зная, что оно реально делает. Схема сети пилота приведена на рисунке №1. Благодаря текущей схеме мы смогли логировать сетевую активность PenTera, сравнивать с ее расширенным логированием «action log», а также использовать системы мониторинга нашей сети.
Результаты реальной сети:
- В реальной сети была подобрана локальная «учетка» реального сервера, еще не запущенного на продакшн, но уже введенного в домен.
- Был найден открытый ресурс, потенциально содержащий конфиденциальную информацию – наша внутренняя Wiki.
Результаты тестовой сети:
- локальные администраторы машин;
- эксплуатация MS17-010;
- sniffingхэшей с последующим взломом;
- успешный relay;
- попытка горизонтального продвижения в реальную сеть с полученными учетными данными;
- обход антивируса и успешное заражение машин техниками fileless и file-based.
Первые пилоты
В пилотах мое участие было в основном ограничено интерпретацией результатов и предложениями «заапрувить» дополнительные эксплуатации и техники работы. Поэтому даю слово нашему техническому специалисту по решению – Дмитрию Жандарову:
Первые проведенные нами пилоты ощущались как игра в русскую рулетку – было совершенно непонятно, как PenTera«выстрелит» в каждой новой инфраструктуре и «выстрелит» ли вообще. Но результаты оказались обнадёживающими и показали, что PenTera способна на многое. На первом же пилоте PenTera нашла словарный пароль учётной записи, модифицированный при помощи техники Leet (также известна как 1337), и это притом, что у Заказчика действует адекватная парольная политика.
Дальнейшие пилоты проходили совершенно по-разному – где-то PenTera показывала, что процесс анализа защищённости и закрытия уязвимостей построен очень хорошо, где-то подчёркивала имеющиеся недостатки. И теперь, когда накоплен опыт проведения пилотов, каждый новый пилот становится одновременно и вызовом, и испытанием для нас и PenTera. Каждая новая инфраструктура отличается от предыдущей, и заранее никогда не знаешь, что покажет PenTera при новом запуске. Тем интереснее наблюдать за её работой и достижениями =)
Из нашего опыта может показаться, что продукт выдает результат, основанный на удаче и совпадении многих факторов, однако при правильной схеме внедрения и типичном ландшафте ИТ‑инфраструктуры мы получаем проверку по заданным чек-листам и заявленный профит:
- анализ защищённости внутренней инфраструктуры при любом изменении, в произвольном масштабе, без разглашения информации третьей стороне;
- оптимизацию внедренных инструментов ИБ с моментальной проверкой;
- моделирование сценария развития атаки злоумышленником как в режиме «чёрного ящика», так и в режиме «серого ящика» (например, в случае компрометации пользователя);
- обнаружение уязвимостей, действительно опасных для конкретной сети;
- выявление всех достижимых векторов атак без ограничений человеческого фактора;
- анализ векторов атак, угрожающих наиболее ценным активам.
Технически PenTera представляет собой сервер, располагаемый в целевой сети. Подключение к сети и настройка задачи занимает немного времени – необходимо произвести сетевые настройки, задать параметры задачи (в том числе диапазон тестирования – PenTera работает только в тех диапазонах, которые Вы укажете ей явно) и запустить задачу. На практике это в среднем занимает 30 минут, в течение которых мы также подробно рассказываем о параметрах задач. Исключение составляют удалённые пилоты, для которых мы используем L2 VPN: в этом случае требуется предварительная настройка и отладка VPN.
Тестирование на проникновение производится при помощи различных задач – PenTera может тестировать сеть в нескольких режимах:
- «чёрный ящик» - системе известны только целевые адреса;
- «серый ящик» - помимо целевых адресов системе также могут быть известны учётные данные, ключевые слова в названиях и содержимом найденных файлов;
- «фокусное тестирование» - тестирование конкретных техник эксплуатации уязвимостей.
Для каждого достижения PenTeraстроит вектор атаки, показывающий, как может быть проэксплуатирована та или иная уязвимость. Очень полезной функцией вектора атаки является возможность моделирования вектора в случае, когда какая-то из уязвимостей в нём закрыта – в этом случае решение показывает, как изменится вектор атаки. Этот инструмент позволяет производить самостоятельную приоритизацию уязвимостей: не всегда возможно закрыть уязвимость, которая в принципе позволяет вектору реализоваться, но при этом можно закрыть уязвимости, которые приводят к конкретным достижениям.
Кроме того, PenTera даёт краткие пояснения к каждой найденной уязвимости – описание уязвимости, потенциальный результат её эксплуатации и краткие рекомендации по устранению. Для ряда наиболее часто встречающихся уязвимостей PenTeraпредоставляет подробную информацию во встроенной Wiki, которая кроме подробного описания уязвимости даёт подробные иллюстрированные инструкции по её устранению. Это позволяет сразу дать системным администраторам чёткие инструкции, что именно нужно сделать для закрытия уязвимости. Таким образом, PenTera не только показывает, какие проблемы есть в сети, но и предлагает пути их решения.
PenTera продает Specops и не только
Отдельно хочу отметить функционал PenTera, позволяющий проверять реализацию функций подсистем информационной безопасности. Проходя по своим сценариям, PenTera подсвечивает пробелы в инфраструктуре Заказчика, что позволяет нам, как интеграторам, предложить дополнительные решения или корректную донастройку подсистем безопасности. Расскажу о нескольких ярких сценариях:
- При переборе хэшей PenTera использует словари разной сложности с полиморфной модификацией на похожие символы для обогащения словаря перебора. Подбирая пароли, PenTeraкрасноречиво показывает Заказчику необходимости решения Specops. Specops позволяет запретить использовать словарные пароли, в том числе защищая от полиморфной модификации.
- На 4-х пилотах подряд у Заказчика использовался антивирус Касперского. На 3-х пилотах PenTera удалось обойти антивирус, запустив различные обфусцированные утилиты, позволяющие получить соединение с сервером «command & control», а в одном случае все попытки были безуспешны. Таким образом, стало понятно, что антивирус недонастроен, и как его необходимо настроить для защиты от опасных утилит.
Прошло полгода знакомства с PenTera, и человек, который рассказал мне про решение, раскрыл свои мотивы и пригласил нас с PenTera поучаствовать на «Бэкэнде» в мероприятии Standoffна стороне их команды. Это был капитан команды Codeby – Тимур Молдалиев (BadBlackHat). Мы с радостью согласились – было интересно, что получится, и как PenTera отреагирует на нетиповые ИТ‑ландшафты Standoff в условиях ограниченных возможностей проброса трафика.
То, что «участие» PenTera в Standoff не будет скучным, выяснилось уже на этапе настройки подключения – ведь вместо давно опробованной схемы подключения при помощи OpenVPN пришлось настраивать схему подключения с использованием L2TP/IPsec, которая нормально не запустилась. Это не стало для нас помехой. Мы смогли подключить решение к стенду и пробросить его в любую захваченную локацию, используя решение ZeroTier. Таким образом мы получили SDN сеть на уровне L2 с доставкой коннекта в любую необходимую точку, и все отлично заработало.
В течение тех нескольких дней, что PenTeraработала в сети Standoff, приходилось помещать её в условия, в которых мы прежде её не использовали. Так мы выяснили, что PenTeraнаиболее эффективна во внутреннем периметре, а в рамках удалённых подключений PenTera совместима не только с различными решениями L2 VPN, но и с реализациями SDN.
PenTera смогла автоматизировать часть задач, избегая человеческих ошибок и проверяя все возможные вектора. Сложности сетевой доступности были преодолены. Однако на эксперименты мы тратили время и зачастую, не имея готовых конфигов из-за скорости работы, мы сталкивались с быстрой реакцией защитников. Не все прошло гладко, не на все хватило времени. Но это был первый опыт, и в будущем мы сможем обойти преграды, с которыми столкнемся.
Подробнее о кибербитве The Standoff от лица победителей можно почитать
Комментарии CITUM и Codeby:
Валера Филин: «PenTera, как инструмент автоматизации пентеста, в первую очередь, создавалась для регулярной и целостной проверки корпоративных сетей. Ключевое преимущество решения – планомерное тестирование множества векторов атак в масштабе всей инфраструктуры. Задача получить один единственный «прорывной» вектор, но на скорость – это серьезный вызов, требующий хорошей «сыгранности» всей команды, включая оператора PenTera».
Тимур Молдалиев: «Главное – это не технические инструменты, а люди и команда. Когда мы собираемся и ломаем вместе, нас сложно остановить. Однако залог успеха — это не только экспертиза и слаженные действия, но планомерная подготовка к игре.»