В предыдущей статье мы рассказали о разновидностях ловушек и приманок. Итак, когда приманки готовы, осталась самая малость - разложить их по нужным хостам. Тут в дело вступает другой критерий выбора Deception-решения, а именно, каким способом доставляются приманки на хосты.
В настоящий момент решения делятся на две основные категории:
Решения с агентом: на конечный хост ставится специализированное ПО, через которое можно доставлять и обновлять приманки;
Безагентские решения: в этом случае используются средства удаленного управления, групповые политики или сторонние агенты.
У каждого из этих видов есть свои плюсы и минусы:
Агентское решение более гибкое, позволяет мониторить актуальное состояние приманок на хосте, а также имеет быстрый доступ ко всей форензике, но, к сожалению, может быть обнаружено злоумышленником.
Безагентские решения обеспечивают большую скрытность, поскольку на конечных устройствах отсутствует ПО, которое может быть обнаружено злоумышленником. Однако, для выполнения многих действий могут понадобиться права локального/доменного администратора.
Кроме того, используя безагентскую платформу, приманки можно распространить при помощи уже развернутых и привычных IT-решений вроде SCCM или антивирусов, позволяющих удалённо запускать ПО по расписанию. В частности, можно использовать агенты антивируса для регулярного запуска некоторых скриптов, распространяющих или обновляющих приманки.
Active Directory
Использование Active Directory - самый популярный способ повышения привилегий и горизонтального перемещения среди злоумышленников. Практически каждый производитель решения поддерживает возможность работы с ним. В AD могут размещаться как ловушки, так и учетные записи-приманки.
Из популярных методов, позволяющих ввести злоумышленников в заблуждение, можно выделить следующие:
Создание ложных привилегированных/типовых учетных записей;
Использование имеющихся учетных записей в качестве приманки (в приманке на хосте используется фейковый пароль);
Создание фиктивных SPN записей и различных видов Constraint/Unconstrained delegation для Kerberos атак;
Создание ложных DNS записей;
Хранение в профиле пользователя фейковых паролей. Например, создаётся тестовый пользователь с описанием «Временный пользователь для теста, пароль 225468vvTEST»;
Ложные LAPS-like уязвимости: когда пароль хранится в «защищенном» атрибуте, но он случайно доступен гораздо более широкой группе пользователей.
Здесь очень важна реалистичность создаваемых приманок. Например, существует популярный скрипт HoneypotBuster для определения Deception-решений в Active Directory. Следует также помнить, что запросы в AD может выполнять абсолютно любой пользователь, и, если вашего ложного пользователя нет в AD, злоумышленник это быстро обнаружит.
Многие решения имеют в своем составе возможности для определения популярных скриптов вроде PowerView, чья особенность состоит в том, что они выполняют массовый запрос атрибутов у объекта в AD, чего практически никогда не происходит при обычной работе – зачастую это является маркером использования именно этих утилит.
Реалистичность
Кроме повышения интерактивности ловушек и правдоподобности приманок и ложных учетных записей в AD, решения некоторых вендоров, могут создавать и динамически адаптировать под злоумышленника эмулированную сеть ловушек и приманок прямо во время его продвижения по ней. Особенно это касается вендоров, работающих с гибридными и облачными решениями.
Для этого используются следующие техники:
Все неавторизованные запросы в AD обрабатываются специальной Deception-копией AD;
Ловушки создаются сразу с приманками внутри, что позволяет «вести» злоумышленника по цепочке таких ловушек и отвлекать от реальной инфраструктуры;
При сканировании портов, некоторые порты «отвечают» на скан, хотя на самом деле являются портами-прокси и ведут злоумышленника в уже развернутую для него низко-интерактивную ловушку;
Если злоумышленник продолжает исследование сервиса, ловушка заменяется на более высоко-интерактивную;
По мере продвижения «кроличья нора» становится всё глубже и глубже.
Широко используются техники машинного обучения для создания и расширения реалистичной инфраструктуры.
К сожалению, в on-premise решениях такой гибкости в динамической адаптации зачастую нет, поэтому производители стараются максимально замаскировать ловушки и приманки в реальной инфраструктуре. Поэтому, чтобы облегчить пользователю внедрение и ускорить процесс, в арсенале некоторых решений есть следующий функционал:
Первоначальный анализ трафика для определения популярных сервисов и генерация ловушек для них;
Интеграция с CMDB системами для автоматического заполнения параметров ловушек вроде версии ПО, используемых ядер и т.д.;
Регулярное обновление/пересоздание ловушек под обновлённые версии систем;
Хосты-ловушки и учетные записи-приманки в AD именуются в соответствии с политиками именования в организации (в русскоязычных организациях не должно быть шаблонных учетных записей вроде John Smith, Sarah Connor и так далее :)
Ловушки могут обмениваться ложным трафиком, чтобы создавать видимость жизни на них. Но отметим, что - этот пункт вызывает много споров, т.к. создаёт дополнительную нагрузку на инфраструктуру;
Автоматическая генерация и обновление приманок на хостах, соответствующих созданным в системе ловушкам.
Особенно хотелось бы подчеркнуть необходимость группировки ловушек в реалистичные хосты. Хост со стороны должен выглядеть именно как хост с Windows/MacOS/Linux, а не быть просто «Порт 445-SMB ловушка». Здесь у производителей разный подход к решению задач, но некоторые решения создают практически неотличимые от реальных хостов эмуляции.
Средства управления и мониторинга
Злоумышленника мало заманить в ловушку, нужно вовремя об этом узнать и оповестить необходимых лиц. Если же перед вами стоит задача не только предотвратить взлом, но еще и исследовать TTP злоумышленников, то у Deception должна быть возможность дальнейшего сбора форензики и отслеживания перемещения злоумышленников.
В этой части Deception-решения предлагают очень гибкий функционал, в число которого обычно входят:
Встроенные средства управления и мониторинга. Этот функционал обычно отличает набор HoneyPot от законченного решения, собирая всю приходящую информацию в единую систему, обеспечивая тем самым визуализацию действий злоумышленника на карте сети, историю атак, самые часто используемые типы приманок/атакуемые ловушки и многое другое. В обязательном порядке присутствует возможность создания гибкой отчетности.
Простая масштабируемость и восстановление. Решения обычно легко масштабируются добавлением новых модулей управления ловушками. Некоторые решения позволяют горизонтально масштабировать и центры управления системой.
Удобная настройка и развертывание. Этот пункт также является ключевым отличием от набора ловушек из Open Source-решений. Вендоры умеют автоматически просканировать сеть и создать необходимый набор ловушек и приманок непосредственно под инфраструктуру заказчика. В обязательном порядке есть интеграция с различными средствами распространения внутри домена, что позволяет реализовывать весь функционал из единого интерфейса буквально «в один клик».
Открытое API для интеграции. Многие решения имеют открытое API для взаимодействия, позволяющее еще теснее интегрировать решения в собственную сесть и управлять им программно.
Встроенная корреляция и расширенные отчеты. Ряд решений умеют производить автоматический маппинг действий злоумышленника (обычно на матрицу MITRE ATT&CK). Это позволяет лучше понять действия злоумышленника путем поиска дополнительной информации в базе MITRE. Однако, следует учесть, что обычно покрывается очень небольшой перечень техник и сабтехник матрицы.
Интеграция с SIEM и другими средствами. Как уже было сказано, задача Deception-решений быстро обнаружить злоумышленника, поэтому решения в обязательном порядке имеют возможность передачи информации в SIEM-системы для создания инцидента.
Базовые средства защиты (IPS) на основе срабатывания ловушек и приманок. Ряд решений позволяет интегрироваться с NAC и IDS системами, помещая подозрительные хосты в карантин или изолируя определённые порты для дальнейшего продвижения.
Ролевые модели доступа. Как и во многих энтерпрайз-решениях поддерживается возможность разграничения доступа на уровне ролей, полноценное протоколирование действий пользователей в системе и другой необходимый функционал.
Средства предотвращения
Наверняка вы задавались вопросом возможно ли исключить действия злоумышленника на машине? Полностью исключить практически невозможно, а вот усложнить или затруднить дальнейшее передвижение да! Для этого некоторые производители встраивают в свои продукты функционал обнаружения возможных ресурсов для дальнейшего горизонтального перемещения. Чаще всего это автоматизированное удаление закешированных учетных данных и замена их ложными приманками. Кроме того, существует функционал обнаружения одинаковых паролей локальных администраторов на множестве машин, поиск так называемых «теневых администраторов» в домене и многое другое.
Над необходимостью такого функционала в технологиях Deception ведутся большие споры. Кроме очевидной его пользы есть еще вероятность нарушить нормальную работу инфраструктуры, поэтому многие предпочитают оставлять его в режиме «только информирование». Следует так же помнить, что обычно функционал того же локального чтения паролей очень похож на зловредную активность, поэтому может вызывать ложные срабатывания различных средств хостовой защиты.
Выводы
Современные технологии Deception уже давно шагнули за границу «просто несколько ханипотов» и предлагают гораздо более обширный функционал, который постоянно развивается в ответ на запросы рынка: на сегодняшний день существует ряд успешных коммерческих Deception-платформ от российских разработчиков.
P.S. Кстати, наша команда активно растет, и если вам интересно развивать Deception или другие продукты экосистемы R-Vision, присылайте ваше резюме на почту hr@rvision.ru! В разработке мы используем NodeJS / TypeScript / ExtJS / React / Rust / Python / PostgreSQL / Clickhouse / ElasticSearch / Docker.
Автор: Евгений Грязнов, ведущий консультант по ИБ в компании R-Vision