LittleBeat UEBA Addon

Оно свершилось. Альфа версия UEBA Addon появилась в LittleBeat. Если кто не знает, что это за фигня, с таким неприличным названием, UEBA — User and Entity Behavior Analyzer (Analytics), анализатор поведения пользователей и сущностей.  Главное назначение — искать аномальные события связанные с этими самыми пользователями и сущностями. На самом деле, штука очень простая. Надо определить, какие нас интересуют сущности, какие события, связанные с этими сущностями, мы будем считать достойными внимания, придумать простые метрики для этих событий, чтобы отличать обычное от необычного. Вот и всё.

Нет, вам ничего этого придумывать не надо. Это всё входит в модуль UEBA. Разумеется, нельзя объять необъятное. В модуль для LittleBeat включен только маленький кусочек. Маленький, но очень полезный. Всего три сущности: user, target host, source ip, всего четыре типа, связывающих эти сущности событий: успешный и неудачный интерактивный логон, успешный и неудачный сетевой логон, всего шесть метрики: новое событие (такого никогда раньше не было), такого давно не было (больше недели), такого очень давно не было (больше месяца), превышен порог за час, день, неделю. В результате 34 алерта. Все перечислять не буду. Приведу примеры, кроме тех, что на картинке: «НОВАЯ ПАРА ЮЗЕР:IP при сетевом логоне на целевой хост.», «ПРЕВЫШЕН ПОРОГ. Количество НЕВЕРНЫХ сетевых логонов НЕИЗВЕСТНЫХ юзеров c одного источника превысило порог за период.» , «ПРЕВЫШЕН ПОРОГ. Количество РАЗЛИЧНЫХ ЦЕЛЕВЫХ ХОСТОВ, к которым валидный юзер выполнил СЕТЕВОЙ ЛОГОН, превысило порог за период.» Я думаю, вы уже догадались в чем ценность этой информации. А если к этому добавить, что собирается она не с контроллера домена, а со всех хостов сети, то картина очень приятная для аналитика ИБ.

Некоторые вещи надо пояснить.

Кто такие «валидный» и «неизвестный» юзеры? UEBA считает «валидным» только такого юзера, который хоть раз в жизни выполнил успешный логон в системе, хоть на одном хосте. При этом учитывается домен пользователя, в том числе локальный хост и специальные домены, например, NT Authority. UEBA не пользуется предопределенной информацией о пользователях, например, данными из Active Directory, ему не важно, что написано на заборе, главное, что там на самом деле лежит. Юзер, которому ни разу не удалось выполнить валидный логон считается «неизвестным». Таким образом, если у вас завалялись учетные записи пользователей с забытыми паролями, которыми сто лет никто не пользовался, и вдруг кто-то пытается воспользоваться — это будет попытка входа неизвестного юзера.

Здесь тоже надо пояснить. Никогда — это значит за последние два месяца. Это крайний срок жизни сущностей в UEBA. Все сущности, которые не проявляли себя в течении этого времени, удаляются.

Что такое «пороги», и как они устанавливаются? Это максимальные значения количества событий, при превышении которых, надо начинать беспокоиться. Например, некий валидный юзер в течении часа выполнил сетевой логон более чем к пяти различным хостам. Это нормально? Или он цепляется к сетевым шарам хостов, на которых ему нечего делать в обычном режиме? Или это троян, запустившийся на компьютере этого юзера, пытается просмотреть, какие ресурсы в сети ему доступны? Мы не знаем заранее ответа на этот вопрос, но событие ненормальное. Или нормальное? Ясно, что для разных сущностей, пороги могут быть разными. А какими? Здесь UEBA опять никому не верит на слово, а руководствуется только практикой. Первоначально, пороговые значения для различных типов событий заданы в его словарях событий, но в процессе работы он их пересчитывает по довольно простому алгоритму, по сути похожему на вычисление интеграла Лебега и определение максимального вероятного значения. Далее используется новый индивидуальный порог для сущности или комбинации сущностей. Пороги пересчитываются каждый час. Кстати, во избежание завала консоли алертами, сообщения о превышении порога одной и той же сущностью (комбинацией сущностей) не дублируются в течении следующих 10 минут.

Следует отметить, что пороги пересчитываются только для комбинаций сущностей, связанных с валидным юзером. Пороги для неизвестных юзеров не пересчитываются. Иначе говоря, если у вас где-то забыт процесс, который, к примеру, пытается подключиться к сетевому ресурсу, указывая неверные данные аутентификации, UEBA будет пытать вас алертами, пока вы не решите проблему. Не надейтесь на то, что он «привыкнет» и успокоится.

Несколько слов о технической стороне дела. UEBA использует Redis, в основном, упорядоченные множества. В качестве score в этих множествах используется UNIX Timestamp. Весь код доступен на github. Потихоньку буду дописывать wiki.

LittleBeat принял логически завершенный вид. Это совсем не игрушка, а очень хорошее средство мониторинга в средах Windows, и не только. По своим возможностям, простоте использования и эффективности, он превосходит коммерческие SIEM системы. Это не наглое заявление. Я знаю, что говорю. Для небольшой компании LittleBeat гораздо эффективнее, чем какой-нибудь коммерческий SIEM, со всеми его тысячами никому не нужных правил корреляции. Название LittleBeat тоже обрело новый смысл за последние полгода. Работая в компании Angara Assistanse в качестве системного архитектора ACRC, я стал участником успешного проекта создания очень эффективного SOC. Технологическое ядро ACRC — штука гораздо более сложная, чем LittleBeat, однако, последний можно представлять себе, как «маленький кусочек» ACRC, достаточный для небольших компаний и совершенно бесплатный.

И огромное спасибо всей нашей команде ACRC за то, что у меня появилось время доделать LittleBeat 🙂

 

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s