Собирает и анализирует журналы аутентификации AD и Azure AD для обнаружения атак бокового перемещения с использованием графовой аномалийной детекции, визуализируя подозрительные паттерны с помощью интерактивных временных шкал и GIF.
Инструмент анализа бокового перемещения (LATMA) собирает журналы аутентификации из доменной среды и Azure AD, выявляя потенциальные атаки бокового перемещения и подозрительную активность. Боковое перемещение может происходить как в среде AD, так и между облаком и локальной инфраструктурой. Инструмент визуализирует результаты с помощью диаграмм, отображающих шаблоны бокового перемещения. В состав инструмента входят два модуля: один для сбора журналов, другой для их анализа. Каждый модуль можно запускать отдельно; сборщик событий должен выполняться на машине Windows в среде домена Active Directory с Python 3.8 или выше. Анализатор может работать как на Linux, так и на Windows.
Сборщик журналов событий выполняет две функции: сканирование контроллеров домена на предмет успешных журналов аутентификации NTLM и конечных точек на предмет успешных журналов аутентификации Kerberos, а также сбор журналов входа из Azure AD. Для сбора данных из среды AD требуется доступ по портам LDAP/S 389 и 636, а также по порту RPC 135 к контроллеру домена и клиентам. Кроме того, требуются привилегии администратора домена или пользователя из группы «Читатели журналов событий» (Event Log Reader) с эквивалентными разрешениями. Это необходимо для извлечения журналов событий со всех конечных точек и контроллеров домена.
Для сбора журналов входа необходимо приложение в среде Azure-AD, а также соответствующие данные в конфигурационном файле. Убедитесь, что у пользователя, используемого для сбора журналов входа, не настроена двухфакторная аутентификация (2FA).
Сборщик получает журналы NTLM из события 8004 на контроллерах домена и журналы Kerberos из события 4648 на клиентах. На выходе создаётся CSV-файл с разделителями-запятыми, содержащий весь доступный трафик аутентификации. Выходные данные включают поля: исходный хост, назначение, имя пользователя, тип аутентификации, SPN и временные метки в формате %Y/%m/%d %H:%M. Сборщику требуются учётные данные действительного пользователя с правами просмотра журналов событий во всей среде; он запрашивает определённые журналы для каждого протокола.
Убедитесь, что протоколы Kerberos и NTLM аудируются в среде через групповые политики:
Сборщик собирает успешные входы только с гибридных устройств или устройств, присоединённых к Azure AD. Эти входы представляют успешные перемещения между ресурсами в среде Azure AD и локальной средой или наоборот.
Для сбора данных требуется следующая информация:
Можно использовать предопределённое приложение или создать новое.
Анализатор получает на вход электронную таблицу с данными аутентификации, отформатированную в соответствии со структурой вывода Сборщика. Он ищет подозрительную активность с помощью алгоритма анализа бокового перемещения, а также выявляет дополнительные IoC бокового перемещения. Источник и назначение аутентификации должны быть указаны в формате NetBIOS-имени, а не IP-адресов.
LATMA получает пакет запросов аутентификации и отправляет оповещение при обнаружении подозрительных атак бокового перемещения. Определим следующее:
Граф аутентификации (Authentication Graph): ориентированный граф, содержащий информацию о трафике аутентификации в среде. Узлы графа — компьютеры, рёбра — аутентификации между компьютерами. Рёбра графа имеют атрибуты: тип протокола, дата аутентификации и учётная запись, отправившая запрос. Узлы графа содержат информацию о представляемом компьютере (подробно ниже).
Граф бокового перемещения (Lateral movement graph): подграф графа аутентификации, представляющий перемещение злоумышленника. Граф бокового перемещения не всегда является путём в подграфе; в некоторых атаках злоумышленник движется во многих разных направлениях.
Оповещение (Alert): подграф, который алгоритм подозревает как часть графа бокового перемещения.
LATMA выполняет несколько действий во время своей работы:
Сбор информации (Information gathering): LATMA отслеживает нормальное поведение пользователей и машин и характеризует их. Обучение используется впоследствии для определения того, какие запросы аутентификации отклоняются от нормального поведения и могут быть частью атаки бокового перемещения. В течение периода обучения (три недели) LATMA не выдает никаких оповещений, а только изучает среду. Обучение продолжается и после этих трёх недель.
Построение графа аутентификации (Authentication graph building): после периода обучения каждая релевантная аутентификация добавляется в граф аутентификации. Критически важно фильтровать только релевантные аутентификации, иначе количество рёбер в графе может стать слишком большим. Фильтрация проводится по следующим типам протоколов: NTLM и Kerberos с сервисами «rpc», «rpcss» и «termsrv».
Добавление аутентификации в граф может запустить процесс оповещения. В общем случае новое ребро может создать новое оповещение, присоединиться к существующему оповещению или объединить два оповещения.
Каждый запрос аутентификации, отслеживаемый LATMA, используется для обучения и хранится в специальной структуре данных. Сначала идентифицируются приёмники (sinks) и концентраторы (hubs). Приёмники — это машины, к которым обращаются многие (не менее 50) разные учётные записи, например, корпоративный портал или Exchange-сервер. Концентраторы — это машины, с которых аутентифицируются многие (не менее 20) разные учётные записи, например, прокси и VPN. Аутентификации к приёмникам или от концентраторов считаются легитимными и поэтому удаляются из графа аутентификации.
Помимо базовой классификации, LATMA сопоставляет учётные записи и машины, с которых они часто аутентифицируются. Если учётная запись аутентифицируется с одной машины хотя бы в три разных дня за трёхнедельный период, это означает, что данная учётная запись соответствует этой машине, и любая аутентификация этой учётной записи с этой машины считается легитимной и удаляется из графа аутентификации.
IoC бокового перемещения:
White cane (белая трость) — учётные записи пользователей, аутентифицирующиеся с одной машины на несколько других за относительно короткое время.
Bridge (мост) — учётная запись пользователя X аутентифицируется с машины A на машину B, а затем с машины B на машину C. Этот IoC потенциально указывает на то, что злоумышленник выполняет фактическое продвижение от своей начальной точки (A) к целевой машине, которая лучше соответствует целям атаки.
Switched Bridge (переключённый мост) — учётная запись пользователя X аутентифицируется с машины A на машину B, затем учётная запись пользователя Y аутентифицируется с машины B на машину C. Этот IoC потенциально указывает на то, что злоумышленник обнаружил и скомпрометировал дополнительную учётную запись на своём пути и использует новую учётную запись для продвижения вперёд (распространённый пример: учётная запись X — стандартный пользователь домена, а учётная запись Y — администратор).