Введение
О Deception уже написано немало статей. Это неудивительно – обманные технологии в последние годы активно завоевывают мир ИБ. В последнем отчете Gartner Deception была названа одной из наиболее эффективных технологий в области защиты информации: по мнению экспертов, она находится практически на пике и ее выход на плато ожидается в горизонте 5-10 лет. В России уже представлен ряд продуктов класса Deception, в том числе и наш собственный, при этом каждый из них обладает своими особенностями. Мы решили пофантазировать, что было бы, если на рынке существовало некое «идеальное решение», сочетающее в себе все функции современных технологий киберобмана.
В серии статей нами собран сводный список функциональных возможностей Deception, присутствующих в тех или иных решениях. И здесь мы не будем углубляться в технические детали, наша задача – помочь читателям шире взглянуть на технологии кибеоробмана и их возможности, особенно с точки зрения защитной стратегии, и выбрать для себя свой собственный «золотой стандарт».
Архитектура и варианты поставки
Начнем с основ: архитектуры и возможных вариантов поставки продукта. Архитектурно решения Deception традиционно делятся на несколько классов:
On-premise решения, полностью разворачиваемые на оборудовании заказчика;
Преимущественно on-premise решения, часть функционала которых реализована в виде облачных сервисов или служб вендора;
Гибридные решения: можно развернуть on-premise, но при наличии необходимости защиты облачных платформ, также развернуть часть решения в облаке;
Облачные решения, разворачиваемые полностью в своём облаке (аналог on-premise, но для облачных платформ);
Смешанные облачные решения. Например, модули ловушек и центр управления разворачиваются в своём облаке, а аналитика или ложная AD уже развёрнуты в облаке вендора, к которым нужно лишь подключиться.
Если говорить о вариантах поставки, то они могут зависеть от выбранной архитектуры решения, но обычно также являются достаточно типовыми:
Преднастроенный образ виртуальной машины (OVA);
Интегрированные ISO образы ОС (на базе Linux) с предустановленными пакетами и скриптами развёртывания;
Дистрибутивное ПО, позволяющее установить решение на имеющуюся инфраструктуру (часто встречается для ОС семейства Windows);
Программно-аппаратный комплекс, поставляемый вместе с преднастроенным оборудованием.
Выбор подходящего варианта обычно тесно связан не только с применяемыми в компании решениями, но и с требованиями законодательства или политикой безопасности организации. Следует отметить, что в качестве облачных платформ в основном поддерживаются AWS, Azure и GCP. Поддержки российских облаков у вендоров, представленных на нашем рынке, пока обнаружить не удалось. Среди российских компаний чаще всего востребована поддержка локальных дистрибутивов, например, Astra Linux или РЕД ОС.
Теперь самое время расставлять капканы и раскладывать приманки! Вендоры используют различные наименования для ловушек и приманок (Lures, Decoys, Honey Tokens и т.д). Чтобы не путаться, мы будем называть их терминами «ловушка» и «приманка».
Виды ловушек
Ловушки – это ложные узлы сети, позволяющие обнаружить злоумышленника, и, самое главное, отвлечь его от настоящих узлов, замедлив горизонтальное продвижение по сети. Это могут быть эмулированные рабочие станции, сетевое оборудование, серверы, различные сервисы. Исторически, еще со времен Honeypot, ловушки делятся на 4 основных типа:
Низко-интерактивные ловушки (Low interactive);
Средне-интерактивные ловушки (Medium interactive);
Высоко-интерактивные ловушки (High interactive);
Полноценные ОС (FullOS).
От степени интерактивности зависит уровень правдоподобности ловушки, однако, здесь есть прямая зависимость. Как гласит старый утиный тест – «Если нечто выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, и есть утка». В случае с ловушками, эмулирующими БД или иные тяжелые сервисы – еще и потребляет столько же или даже больше (за счет подробного протоколирования) ресурсов.
Рассмотрим это на примере SSH ловушки. Во всех случаях события с ловушек сразу отдаются на консоль управления:
На низком уровне интерактивности SSH ловушки система может предложить только возможность аутентификации, но войти в систему будет нельзя. Будут собираться необходимые клиентские фингерпринты, ключи, пары логин/пароль и т.д.
На среднем уровне интерактивности SSH ловушка может быть похожа на restricted shell. В этом случае злоумышленник может успешно войти в систему, но список команд будет очень ограничен.
На высоком уровне интерактивности в ловушке будут присутствовать различные процессы, домашние папки пользователей. Некоторые ловушки при этом ограничивают возможность установления дальнейшего SSH соединения, чтобы не стать промежуточным хостом для развития атаки.
В зависимости от уровня интерактивности, система может быть практически неотличима от настоящей, при этом интегрироваться с различными песочницами для отправки пейлоадов, загружаемых в систему при попытке злоумышленника повысить привилегии или обойти средства аутентификации.
Споры, насколько интерактивной должна быть ловушка, не утихают до сих пор. Здесь следует отталкиваться от конкретных целей. Если ваша задача просто быстро обнаружить злоумышленника, то может хватить и низко-интерактивной. Если же хочется более подробно поисследовать его поведение, а также замедлить горизонтальное перемещение по сети, лучшим решением будет добавление высоко-интерактивных ловушек.
Здесь, однако, стоит быть осторожным при использовании популярных систем эмуляции. Авторы одной из самых популярных систем по эмуляции SSH и Telnet Cowrie в 2020 году сделали вот такую правку «Rename built-in user richard to phil, it's used as detection mechanism». Очевидно, с тех пор механизм детектирования тоже был немного поправлен :)
Какие же виды ловушек могут предложить современные Deception-решения? Практически любые! Выбор ограничивается только фантазией заказчиков и желанием вендора её воплотить. Один из вендоров однажды сделал ловушку в виде управляемой по сети лампочки популярного производителя, поскольку в инфраструктуре заказчика использовались именно такие и была необходимость в их эмуляции.
В современных решениях могут присутствовать следующие типы ловушек:
Файловые ресурсы SMB разной степени интерактивности. Может быть, как низкоинтерактивная эмуляция, где злоумышленник может увидеть только список доступных расшаренных папок, без возможности зайти на них (такие ловушки хороши против сканирующей малвари или внутреннего пользователя с Kali). Более интерактивные ловушки уже поддерживают SMB 2.0/3.0, могут динамически изменять своё содержимое и интегрироваться с песочницами для проверки загружаемого в них контента.
FTP/TFTP/SFTP сервера. Как и файловые ловушки SMB, могут быть разной степени интерактивности, обычно они реализуются на основе готовых FTP или SSH решений.
Базы данных (MySQL, PostgresSQL, MSSQL, Oracle). Эмуляция баз данных самая интересная задача – каждый вендор ищет для себя свою грань. И если Open Source можно просто форкнуть и упаковать в ловушку, то с Oracle так уже не получится… Поэтому каждый вендор выбирает свою степень интерактивности: начиная от простого повторения формата протокола для аутентификации и заканчивая пустым ответом на все запросы вроде «Запрос вернул 0 строк».
Ловушки для Active Directory. Это специализированные ловушки, позволяющие определять такие вещи как LLMNR атаки, атаки на Kerberos, Pass The Hash атаки.
Сервисы удалённого доступа VPN (OpenVPN, IPSec, l2tp). Из-за пандемии и массового перехода на удалённый формат работы, такой тип ловушек стал особенно востребованным, и многие производители начали активно добавлять его к себе в портфель.
Роутеры и другое сетевое оборудование. Эти ловушки делятся на 2 категории – веб интерфейс оборудования, в котором даже могут быть повторены все детали интерфейса и можно производить настройки и смотреть статистику, а также SSH интерфейс, в той или иной мере эмулирующий интерфейс реального сетевого оборудования.
Web-сервисы. Эмуляция настоящих внутренних ресурсов, начиная, например, от формы логина в Outlook Web Access и заканчивая возможностью клонирования формы входа любой внутренней самописной системы и нескольких типовых страниц.
RDP/VNC системы. Ловушки, эмулирующие различные системы удаленного управления рабочими столами. Обычно бывают низко-интерактивными, однако, эти же сервисы хорошо работают в FullOS ловушках, где обеспечивается их полноценная реализация, поэтому, при наличии полноценной ОС, многие вендоры рекомендуют включать в ней эти сервисы.
Принтеры и МФУ. Эмуляция различных протоколов печати. Более продвинутые версии идут в комплекте сразу с web-интерфейсом принтера, позволяя создать полноценную эмуляцию.
Эмуляция SCADA и IoT устройств - сложная задача: протоколов много, и они очень разные. Есть ряд Deception-систем, специализирующихся на эмуляции IoT и SCADA. У многих вендоров в списке обязательно есть такой функционал.
IP-телефоны. Отдельный класс ловушек, эмулирующий конечные устройства IP-телефонии. Звонить по ним нельзя, а вот получить web, ssh или SIP интерфейс можно.
CI/CD системы. Имитация популярных систем вроде Jenkins или GitLab.
iLO/iDRAC/Server Managemement. Специализированные ловушки для эмуляции систем управления серверным оборудованием.
Почтовые ловушки. Имитация популярных протоколов SMTP, IMAP. POP3.
Эмуляция Private Cloud. Тут целый спектр эмуляции OpenShift/Docker/к8s
Генерация ловушек под популярные и актуальные CVE. Заранее создаются «уязвимые» сервисы, чтобы вызвать у злоумышленника как можно больший интерес именно к этим узлам.
На этом перечень возможных ловушек не заканчивается. Многие производители имеют в своем арсенале специальный набор ловушек для Active Directory, сетей на основе MacOS и Linux. В качестве интересного проекта-сборника популярных видов ловушек с акцентом на Open Source рекомендуем вот этот репозиторий.
FullOS ловушки
FullOS ловушки используются для развертывания систем, эмуляция которых по тем или иным причинам затруднительна. Как следует из их названия, это полноценные операционные системы, превращенные в ловушку для Deception-платформы, и ничем не отличающиеся от реальных систем, кроме наличия подробного протоколирования. Чаще всего это RDP сервера, специализированные банковские АРМ, вроде АРМ КБР или средства управления АСУ ТП.
Для FullOS жизненно важна идентичность с используемыми в организации машинами, поэтому чаще всего они изготавливаются из Golden Image. Это позволяет решить в том числе и вопрос лицензирования такой ОС. При развёртывании в неё добавляются сервисы-кейлоггеры, мониторы журналов событий, производится более детальная настройка средств протоколирования.
Некоторые производители позволяют устанавливать низкоуровневый драйвер-руткит, максимально скрывающий присутствие стороннего софта на машине и интегрирующийся, например, со средствами виртуализации. Это позволяет реализовывать такой дополнительный функционал как:
Кейлоггеры, снимающие всю активность злоумышленника;
Автоматическое создание снепшотов или дампов памяти для последующего анализа;
Возвращение (откат к контрольной точке) после атаки или посещения злоумышленником;
Сбор полноценной форензики с узла.
Уровень сокрытия каждый производитель выбирает сам. Во время одного из круглых столов, один из производителей сокрушался, что они столько средств вложили в сокрытие своего ПО, но злоумышленники так и не добрались до этого уровня…
Виды приманок
С ловушками разобрались, самое время заманить в них злоумышленника. Для этого в Deception-решениях используются приманки. Приманки – это информация, разложенная в самых популярных для злоумышленников местах поиска возможностей для горизонтального перемещения, которая приведет их в ловушку
К популярным видам приманок относятся:
Различные учетные данные пользователей AD;
Файлы различных подключений к удаленному столу RDP/VNC;
Записи в HOSTS файле;
Сохраненные подключения к сетевым ресурсам и принтерам;
История команд в BASH и PowerShell;
История в браузерах и хранилище паролей в них;
Сохраненные данные в браузерах;
Сетевые подключения в SSH/FTP клиентах;
Настройки популярных программ, хранящихся в реестре;
Тестовые файлы с «забытыми» паролями;
Менеджеры паролей вроде KeePass;
Ну и, конечно же, хранилища паролей вроде MS Vault, оперативной памяти LSASS и кешей входа на рабочую станцию.
Тут важно помнить, что приманки должны полностью соответствовать инфраструктуре заказчика. О реалистичности мы поговорим в отдельном разделе, но, если на машине не стоит, скажем, Putty, в реестр обычно не стоит добавлять запись/приманку для неё, как и класть конфиги для других популярных программ.
В гибридных решениях могут использоваться гибридные приманки, например, ключи для AWS или Google, которые ведут в ловушки на облаке.
Некоторые вендоры используют документы со специальными пикселями внутри, позволяющими потом отследить, где был открыт такой документ и был ли он вынесен за периметр, хотя споры о работоспособности и полезности такого функционала ведутся до сих пор. Например, мало кто из опытных злоумышленников будет открывать документы вне песочницы, да еще и с выходом в интернет. Но это зато позволит отловить не очень опытных инсайдеров, такие функции у Deception-решений тоже есть.
В следующей части мы расскажем о том, как при помощи технологий Deception создать и разместить максимально реалистичные ловушки и приманки в инфраструктуре, а также какой функционал отличает их от привычных ханипотов. Если у вас появились вопросы, комментарии, дополнения, пишите в комментариях!