«Поймай меня, если сможешь», или как мы расставляем ловушки для хакеров
Всем привет! Меня зовут Юлия Айдарова, я старший аналитик информационной безопасности группы внутреннего мониторинга Innostage. В этой статье хочу вас погрузить в мир Xello Deception: расскажу, что это, с чем его едят, нюансы при настраивании и с радостью поделюсь своим опытом по внедрению и работе с данной системой.
«Мир глазами Xello Deception: где обман — это щит, а не меч»
Никого не удивлю, но все же скажу: в современном цифровом мире вопрос кибербезопасности и разработки новых подходов к защите от киберугроз крайне актуален, так как злоумышленники становятся более изощренными, а кибератаки — все более частыми.
Представьте себе лабиринт зеркал, где каждый поворот ведет к еще большей путанице. Именно такой мир Xello Deception создает для хакеров. Вместо критичных данных и ценных активов, злоумышленники наталкиваются на обманчивые приманки и ловушки — ложные базы данных, фальшивые документы, имитирующие реальную инфраструктуру.
Что такое Xello Deception
Xello Deception — это платформа, предназначенная для раннего обнаружения кибератак на корпоративную сеть.
Принцип работы — распространение ложной информации в корпоративной сети компании и своевременное реагирование на события безопасности, которые связаны с использованием распространенных приманок и ловушек злоумышленниками.
Преимущества Xello Deception:
Обнаружение атаки на начальном этапе (это отвлекает от реальной цели и минимизирует ущерб компании).
Уровень False Positive минимальный.
Дополнительная информация о тактике и технике для анализа поведения злоумышленника и в дальнейшем улучшения кибербезопасности в инфраструктуре.
Внедрение Xello Deception и интеграция с другими системами
Внедрение Xello Deception — процесс несложный, но требующий системного подхода.
Ключевые этапы:
Проектирование. Здесь нужно проанализировать инфраструктуру, определить, какие угрозы и риски вы хотите обнаруживать, и включить это в план работ.
После анализа разработать более реалистичные сценарии атак и определить, какие обманки будут эффективны в вашем случае. Для начала рекомендую охватить малую часть, создав примерно 1/10 копий инфраструктуры, на основе анализа, куда в первую очередь могут пойти злоумышленники или, иными словами, что является лакомым кусочком и с чего они начнут ;)
Установка и настройка системы. Систему относительно легко установить и настроить, если соблюдать все пункты, указанные в Руководстве администратора.
В веб-интерфейсе все понятно на интуитивном уровне, главное — быть внимательными и не делать глупых ошибок в формате «неправильно прописан домен» или «забыли включить сателлит», с помощью которого идет распространение приманок.
Пройдемся по каждому пункту поподробнее…
После того, как вы установили Xello Deception, вам будет доступен веб-интерфейс, в котором необходимо произвести ряд настроек.
Инфраструктура
В разделе Инфраструктура, во вкладке Домены, мы указываем информацию про наш домен: LDAP-серверы и Источники событий. Зеленый индикатор показывает, что подключение произведено успешно и все требуемые в документации порты были открыты, красный индикатор — возникли проблемы при установке соединения (Рисунок 1).
Рисунок 1. Инфраструктура: Домены
LDAP-серверы и Источники событий можно прописать как вручную, так и автоматически, нажав на …рядом с указываемым доменом (Рисунок 2). Заполняются следующие колонки:
Пользователь — сервисная учетная запись, с помощью которой происходит взаимодействие с доменом.
Протокол и Тип указанного сервера. В случае автоматического обнаружения данные поля заполняются автоматом.
Сателлит — сервер, через который идет взаимодействие компонентов Xello с инфраструктурой. Отобразится в том случае, если уже настроена интеграция (как на Рисунке 2), иначе колонка будет пустая.
Рисунок 2. Инфраструктура: Обнаружение
Во вкладке DNS-зоны указываются наши DNS-серверы, которые также могут быть заполнены через автоматическое обнаружение либо вручную. Не забываем про то, что в свежих версиях (начиная с 5.4 и выше) необходимо указывать еще и сателлит (Рисунок 3).
Рисунок 3. Инфраструктура: DNS-зоны
Пользователи
В разделе Пользователи вносим сервисные учетные записи (Рисунок 4):
AD Пользователь — пользователь с правами чтения журналов AD для наполнения контекстом событий безопасности. С помощью данной УЗ идет распространение приманок на хосты с различными OC.
LDAP Пользователь — пользователь с правами чтения LDAP-каталога для генерирования приманок, создания ложных учетных записей, отображения каталога LDAP для добавления защищаемых хостов и т.д.
DNS Пользователь — пользователь с правами чтения DNS-зон для генерации приманок и DNS-записей о созданных приманках в инфраструктуре.
Рисунок 4. Настройки: Пользователи
Интеграция
Xello Deception легко интегрируется с другими системами безопасности, такими как SIEM и SOAR, что позволяет автоматизировать процессы обнаружения и реагирования на угрозы.
Для интеграции со сторонними системами, а также с сателлитами и ловушками инфраструктуры Xello необходимо перейти в раздел Интеграции. Существуют следующие форматы интеграции:
API-Токены: в первую очередь, на данной вкладке не забываем указывать сателлиты и ловушки, которые мы используем, а потом уже указываем остальные системы (Рисунок 5, 6).
Syslog-серверы: все стандартно -порт, протокол и формат syslog-сообщения (Рисунок 7).
Email-уведомления.
Рисунок 5. Интеграции: API-Токены
Рисунок 6. Интеграции: API-Токены (создание)
Рисунок 7. Интеграции: Syslog-серверы
Сателлиты
В разделе Сателлиты мы увидим наш подключенный сателлит (Рисунок 8). Обращаем внимание на зеленый индикатор: он появится, если на веб-странице сателлита вы корректно создали API-токен и указали его в разделе интеграций (Рисунок 5).
Рисунок 8. Настройки: Сателлиты
Исключение
В разделе Исключения мы можем внести исключения по сработкам, которые являются для нашей инфраструктуры легитимными, чтобы события по ним не отправлялись на интегрированные системы (Рисунок 9).
Рисунок 9. Настройки: Исключения
Роли
В разделе Роли мы можем добавить пользователей, для которых хотим предоставить доступ к Xello. В случае уже настроенной интеграции с DC аутентификация пользователей будет происходить через единое окно (SSO). Как и во многих системах, здесь есть роли, которые можно назначить для пользователей: Администратор, Аналитик, Наблюдатель (Рисунок 10).
Рисунок 10. Настройки: Роли
Распространение
Ух, здесь мы можем разгуляться. В данном разделе мы указываем механизм распространения и количество параллельных распространений. Например, на скрине ниже мы видим, что в качестве механизма распространения у нас выбран psexec. В данном случае файл psexec.exe необходимо загрузить на сам сателлит (Рисунок 11).
Рисунок 11. Распространение: Основные
Помимо PsExec в Xello имеются и другие механизмы распространения, такие как:
PaExec;
WinRm;
SCCM;
Сторонний механизм. Это может быть как антивирусное ПО (например, KSC), так и GPO.
При знакомстве с данной системой рекомендую сначала протестировать распространение на своей тестовой машине, скачав соответствующий скрипт и запустив его с правами администратора.
Для упрощения можно настроить распространение по расписанию, указав все необходимые параметры, которые нас интересуют (Рисунок 12).
Рисунок 12. Распространение: По расписание
Общие
В данном разделе собраны общие настройки, где мы можем оставить стандартные настройки либо настроить их в зависимости от наших предпочтений и инфраструктуры (Рисунок 13, 14, 15, 16).
Рисунок 13. Общие: Обработка инцидентов
Рисунок 14. Общие: Журналирование
Рисунок 15. Общие: Сброс
Рисунок 16. Общие: Другое
Ловись, рыбка, большая и маленькая: как расставить приманки и ловушки чтобы улов был хорошим?
Рекомендую начать с малого: не пытайтесь сразу же защитить всю инфраструктуру. На начальном этапе достаточно небольшого количества обманок в самых критичных зонах с постепенным их расширением.
В Xello Deception ловушки делятся на три типа:
1. RealOS Traps — ловушки с различными сервисами, службами и сетевыми протоколами на реальной операционной системе (Рисунок 17).
Рисунок 17. Ловушки: RealOS
При установке RealOS-ловушки необходимо убедиться в том, что все индикаторы горят зеленым цветом. Если вы видите красный индикатор (Рисунок 18), рекомендую перепроверить настройки в соответствие с документацией системы (Инструкция по поиску и устранению неисправностей).
Рисунок 18. Ловушки: RealOS (Индикаторы)
Каждую ловушку мы можем настроить как душе угодно, начиная с используемых протоколов и заканчивания закладыванием ложных веб-сервисов (Рисунок 19, 20, 21, 22).
Рисунок 19. RealOS (Протоколы)
Рисунок 20. RealOS (папки общего доступа)
Рисунок 21. RealOS (Автоматизация протоколов)
Рисунок 22. RealOS (Веб-сервис)
2. Decoy Traps — гибридные ловушки с сервисами, эмулирующими различные службы и сетевые протоколы, или по-простому — эмулируемые ловушки.
После установки эмулируемой ловушки и произведенных интеграций, ловушка отобразится во вкладке Гипервизоры (Рисунок 23).
В зависимости от состояния доступности ее цветовой индикатор может иметь следующие значения:
зеленый — сервер ловушек доступен;
желтый — сервер ловушек не отправил запрос на проверку состояния;
красный — сервер ловушек недоступен.
Рисунок 23. Decoys: Гипервизоры
Нажав на i, мы увидим информацию по гипервизору, нажав на … выполнить операции, приведенные на рисунке ниже (Рисунок 24):
Рисунок 24. Decoys: Гипервизоры (info)
На вкладке Устройства мы можем создать одиночное устройство, нажав на соответствующую активную кнопку (Рисунок 25).
Рисунок 25. Decoys: Устройства
После создания устройства не забываем перевести ее в статус Active (Рисунок 26).
Рисунок 26. Decoys: Устройства (Active)
Сервер управления Xello Deception поддерживает интеграцию с несколькими серверами эмулируемых ловушек (Decoy Traps). Максимальное количество таких серверов, которые могут быть интегрированы в рамках одной инсталляции, — 200.
MITM-агенты — ловушки, позволяющие выявлять атаки типа «человек посередине» (Man-in-the-Middle). Есть возможность конфигурировать следующие типы (Рисунок 27):
a. LLMNR — ловушка LLMNR (Link-Local Multicast Name Resolution), используемая для обнаружения и анализа атак на протокол LLMNR в сетях;
b. NBT-NS — ловушка NBT-NS (NetBIOS Name Service), используемая для обнаружения и анализа атак на протокол NBT-NS, который используется для разрешения NetBIOS имен в IP-адреса;
c. mDNS — ловушка mDNS (Multicast DNS), используемая для обнаружения и анализа атак на протокол mDNS, который используется для разрешения имен устройств в IP-адреса в локальных сетях.
Рисунок 27. MITM-агенты
Для каждой ловушки можно выбрать на каком сетевом интерфейсе запускать MITM-агенты (Рисунок 28).
Рисунок 28. MITM-агенты (Интерфейс)
Приманки
После интеграции с AD Xello Deception сам генерирует начальный набор приманок, но их рекомендую сделать более реалистичными: внести свои, придерживаясь стандарта наименования УЗ в вашей инфраструктуре, а также сгенерировать для них более сложные пароли (Рисунок 29).
Рисунок 29. Приманки: Аккаунты
Собственные приманки можно загрузить в разделе Приманки → Аккаунты → Настройки (Рисунок 30):
Рисунок 30. Аккаунты: Настройки
Dexem — особый вид приманок, который создается на основе реальных объектов AD. В качестве основы для генерации используется группа привилегированных пользователей AD (например, группа Domain Admins). В основном целью злоумышленников является получение именно этих учетных данных.
Скрипт для создания Dexem-приманок генерируется автоматически под вашу инфраструктуру, но его можно скорректировать (Рисунок 31).
С Dexem-приманками рекомендую быть очень осторожными и следить за их активностью не только в Xello Deception, но и дополнительно в других системах.
Рисунок 31. Аккаунты: Скрипты
Политики
Политики позволяют объединять наборы защищаемых хостов в группы и настраивать для них правила защиты. По умолчанию создается политика с названием DEFAULT.
В политику добавляются:
1. Учетные данные приманок. Во вкладке добавляются сгенерированные приманки через кнопку Добавить учетные данные. После добавления можно производить поиск по частичному совпадению имени пользователя среди добавленных УЗ (Рисунок 32).
Рисунок 32. Политики: Учетные данные
Цели. Здесь отображаются созданные DNS-цели серверов ловушек. Для добавления необходимо перейти в раздел Приманки → Цели и нажать на Генерировать либо добавить DNS-цель вручную. Подробно про конфигурацию целей описано в документации (Руководство администратора). После добавления можно производить поиск по частичному совпадению имени целей среди добавленных записей (Рисунок 33).
Рисунок 33. Политики: Цели
Защищаемые группы хостов. Для добавления хостов необходимо нажать на Добавить защищаемые хосты (Рисунок 34).
Рисунок 34. Политики: Защищаемые хосты
В появившемся справа окне отобразятся режимы загрузки хостов:
Загрузка. Указать домен и загрузить файл. Формат записей: перечисление одного из видов атрибутов через запятую или с новой строки: IP/NetBIOS/FQDN (Рисунок 35).
Рисунок 35. Режим: Загрузка
Ручной. В этом режиме можно добавить как доменные, так и недоменные хосты под управлением различных ОС. Чтобы добавить хост, введите имя хоста или IP-адрес в поле Хост, выберете тип ОС и нажмите Добавить (Рисунок 36).
Рисунок 36. Режим: Ручной
Дерево. При успешной интеграции и наличии LDAP/LDAPS отобразится дерево каталога. Выбрав DC, вы сможете добавить интересующий хост или группу в политику (Рисунок 37).
Рисунок 37. Режим: Дерево
Подсеть. В этом режиме можно просканировать нужную подсеть, после чего найденные хосты добавятся в защищаемые. При обнаружении новых хостов в подсети они будут автоматически добавлены в защищаемые хосты (Рисунок 38).
Рисунок 38. Режим: Подсеть
После добавления хосты отобразятся в разделе Политики → Защищаемые хосты и на странице Защищаемые хосты.
Настройка политик
После создания политики её можно изменить, перейдя в раздел Настройки и нажав на рядом с наименованием политики. Во вкладке:
Пользователи — указываются сервисные УЗ, с помощью которых распространяются приманки на защищаемых хостах (Рисунок 39).
Рисунок 39. Настройки: Пользователи
Конфигурация. В данной вкладке мы можем задать следующие параметры (Рисунок 40):
a. Тип защищаемых хостов: ENDPOINT, TERMINAL, VDI.
b. Интенсивность распространения: Small, Medium или Large.
c. Количество защищаемых профилей на хосте.
d. Сканирование портов — на доступность хостов по протоколам: SMB, WINRM (HTTP/HTTPS).
e. Тип сканирования сети: NMAP, ICMP или SOCKET. Если у нас тип сканирования NMAP, то необходимо, чтобы на сервере сателлит был установлен Nmap.
f. Сателлит — сервер, через который по данной политике будет происходить распространение приманок.
Рисунок 40. Настройки: Конфигурация
Типы приманок. На данной вкладке выбираем типы приманок (в зависимости от нашей инфраструктуры) для их распространения в выбранной политике. При раскрытии появится возможность более тонко настроить тип (Рисунок 41).
Рисунок 41. Настройки: Типы приманок
На вкладке Настройки ротации приманок можно задать (рисунок 42):
a. Время жизни приманки на хосте. По истечении срока она устаревает и помечается на удаление.
b. Время устаревания профиля с приманками. По истечении этого времени профиль и все приманки, относящиеся к нему, помечаются на удаление.
c. Время жизни профиля с приманками. По истечении этого времени профиль и все приманки, относящиеся к нему, удалятся с сервера управления и с хоста при следующем распространении.
Рисунок 42. Настройки: Настройки ротации приманок
Защищаемы хосты
Добавленные в политики хосты доступны на вкладке Защищаемые хосты (Рисунок 43). В верхней части вкладки Защищаемые хосты отображается панель фильтров. Возможна фильтрация по:
наименованию хоста;
временному промежутку распространения приманок;
статусу распространения;
доступности хоста по определенным протоколам;
домену;
политике;
операционной системе;
количеству распространенных профилей;
количеству распространенных приманок.
Рисунок 43. Защищаемые хосты
С защищаемыми хостами доступны следующие действия:
очистить все хосты от приманок;
распространить приманки на все хосты;
запустить анализ учетных записей (функционал Credential Defender) на всех хостах;
обновить статусы доступности всех хостов.
Для просмотра детальной информации о приманках и перечня протоколов на хосте нужно выбрать хост и нажать на < (Рисунок 44). При необходимости возможна выгрузка информации по всем приманкам просматриваемого хоста в формате JSON.
Рисунок 44. Защищаемые хосты: Детальная информация
Дашборд
На данной вкладке мы видим всеми нами любимые графики (Рисунок 45)
Рисунок 45. Дашборд
Инциденты
Во разделе Инциденты отображается информация об инцидентах в течение всего времени эксплуатации системы (Рисунок 46). Также доступен функционал фильтрации инцидентов по:
временному промежутку;
IP или имени исходного хоста;
триггеру — протоколу, с которым было взаимодействие;
статусу;
источнику события;
имени пользователя;
комментарию.
Закрытые инциденты не отображаются по умолчанию (Рисунок 47).
Рисунок 46. Инциденты
Рисунок 47. Инциденты (статус)
При проваливании в инцидент появляется:
подробная информация, которую можно скачать, нажав на соответствующую кнопку;
возможность удаления;
возможность добавления комментариев к инциденту, а также смены статуса и пометки инцидента.
В блоке Стадии атаки отображаются тактики и техники по матрице MITRE ATT&CK, которые в рамках данного инцидента были использованы злоумышленниками (Рисунок 48).
Рисунок 48. Инциденты: Детальная информация
При нажатии на стрелку рядом с УЗ откроется окно Информация о событии и пользователе (Рисунок 49).
Рисунок 49. Инциденты: Детальная информация (Информация о событии и пользователе)
Как мы ловили злоумышленников?
Xello Deception мы поднимали в инфраструктуре Цифрового двойника, выставленного в рамках PHD. Это позволило нам оперативнее обнаруживать хакеров в связке с SIEM-системой.
При интеграции с SIEM-системой необходимо нормализовать события и написать правила корреляции. Примеры:
псевдокод правила для выявления инцидентов, связанных с использованием хакерами приманок на хостах:
{Correlation Event}:
{AND}
-> deviceVendor = xello
-> deviceProduct = deception
-> name = incident
-> user != null
-> user in [deception_users]
{Aggregation}:
{AND}
-> Count = 1
-> Time = 1 min
-> Identity = Device Host Name
где deception_users — УЗ, созданные в качестве приманки.
псевдокод правила для выявления инцидентов, связанных с Dexem-приманками, которые имеют SPN-запись:
{Correlation Event}
{AND}
-> Device = Windows
- {OR}
- {AND}
-> Event ID = 4769
-> Status = 0x0
-> ServiceName in [SPN_users]
- {AND}
-> Event ID = 4768
-> Status = 0x0
-> PreAuthType = 2
-> ServiceName in [SPN_users]
{Aggregation}
{AND}
-> Count = 1
-> Time = 1 min
-> Unique = IpAddress
где SPN_users — сервисные УЗ, созданные в качестве ловушки для выявления нелегитимных запросов билета Kerberos Service — TGS/TGT.
После настройки серверов-ловушек, расставления приманок и создания правил корреляции в SIEM нам оставалось только наблюдать, когда жертва «попадет в сети».
Атакующие пытались зайти как на серверы-ловушек, так и использовать приманки, обнаруженные на хостах VDI (Рисунок 50):
Рисунок 50. Xello Deception: использование приманок атакующими
Также фиксировались сканы на RealOS-ловушках c хостов атакующих (Рисунок 51).
Рисунок 51. Xello Deception: сканы на RealOS Traps
Заключение
В заключение хочу сказать: трудозатраты на внедрение Xello Deception небольшие, но при этом значительно ускоряется процесс обнаружения злоумышленников в инфраструктуре. Решение позволяет поймать их на начальных стадиях атаки и получать информацию о тактиках и техниках для дальнейшего улучшения кибербезопасности в инфраструктуре. Для нас это очень актуально, ведь Innostage сейчас проводит программу открытых кибериспытаний. Мы находимся под постоянным прессингом со стороны белых хакеров. Так что наш опыт с Xello стал в разы интереснее.