Detection is easy
1.03K subscribers
71 photos
2 videos
8 files
176 links
chat: https://t.me/+BF4T6DOGv_UwYTBi
contact: @siemmanager
email: manager@detectioneasy.ru
Download Telegram
🔤🔤

Пока мы говорим про организационные требования к DE и упоминаем правила обнаружения, давайте вспомним как они работают. На самом деле правила обнаружения - это правила корреляции ⚠️

С правилами корреляции работает SIEM – это класс решений, предназначенный для сбора сырых событий информационной безопасности (далее – СИБ) от их источников (приложений, операционных систем, сетевого оборудования и т.п.), нормализации событий, агрегации, обогащения и их корреляции. Простыми словами - СИБ попадают в SIEM и обрабатываются, затем по заданным правилам формируются алерты. Алерт может стать инцидентом, если аналитик его подтвердит.

Как правило жизненный цикл СИБ в SIEM выглядит так:

🔤 Нормализация – приведение сырого события (raw) к виду принятом в SIEM (таксономия – набор полей, которые используются в SIEM).

Например, сырое событие имеет вид:

<10> 2024-10-22T10:22 host1 auditd: user1 create new process /bin/bash

Нормализованное событие:

{
date: 2024-10-22T10:22;
host: host1;
service: auditd;
username: user;
processname: /bin/bash
}


Теперь каждое значение расположено в соответствующем поле и мы можем осуществлять поиск и работу с полями.

🔤 Агрегация – обобщение однотипных нормализованных событий с указанием общего количества.

Например:
Нормализованное событие Event 1:
{
date: 2024-10-22T10:22;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}

Нормализованное событие Event 2:
{
date: 2024-10-22T10:23;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}


Нормализованное событие Event 3:
{
date: 2024-10-22T10:24;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}

Для агрегации может понадобиться определить поля, которые должны быть одинаковые.

Определим поля: src.host, dst.host, app_protocol.

Установим время агрегации 5 секунд.

Агрегированное событие будет выглядеть следующим образом:
{
date: 2024-10-22T10:24;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
count: 3
}

🔤 Обогащение – процесс добавления недостающей (отсутствующей) информации в событии.
Например, в нашем агрегированном событие есть поля src.host и dst.host в которых хранится имя хоста отправителя и получателя. Этого не достаточно для полного понимания картины сетевого взаимодействия. Как ты считаешь какой информации не хватает 😱? Все верно - ip-адреса.

Обогащение позволяет дополнить событие любой информацией. Наше событие приобрело новый вид:

{
date: 2024-10-22T10:24;
src.host: host1;
src.ip: 10.10.1.1
dst.host: host2;
dst.ip: 10.10.20.200
app_protocol: tcp;
count: 3
}

Теперь аналитику может стать проще проводить последующий анализ или расследование инцидента.

🔤 Корреляция – финальный этап в жизненном цикле события. Корреляция формирует новое событие или алерт, основываясь на правилах, которые написали аналитики.

Давайте рассмотрим пример:

Подсеть 10.10.1.0/24 – подсеть сетевого оборудования, а ip_net_DC – это сеть контроллеров домена Active Directory. Мы знаем, что в нашей инфраструктуре из подсети 10.10.1.0/24 не должны открываться соединения к контроллерам домена. Для обнаружения такого поведения мы можем написать правило на псевдоалгоритмическом языке:


Имя алерта: подключение к контроллеру домена с сетевого оборудования

Критичность: высокая

Если
src.ip входит в [10.10.1.0/24]
И
dst.ip входит в [ip_net_DC]
то регистрируй АЛЕРТ


#detection@detectioneasy
#note@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2😁2
AI Агенты все больше проникают в повседневную деятельность пентестеров и soc
Forwarded from PWN AI (Artyom Semenov)
Мои коллеги недавно выпустили PentAGI.

Что это ? Это мультиагентная система, которая проводит пентест(сейчас это веб-приложения).

Там есть несколько агентов. Агенты задаются различными инструкциями и есть агент который управляет всей системой. Промпты можем посмотреть тут:

https://github.com/vxcontrol/pentagi/tree/master/backend/pkg/templates/prompts - тут можем посмотреть.

Система использует инструменты из докерного образа kali. И в целом это крутое решение, собранный образ без проблем может быть запущен где-либо.

А инструментов тут достаточно много, больше 20.

Есть приятный графический интерфейс а также вы можете мониторить действия, которые совершают агенты через интеграцию Grafana/Prometheus.

В качестве управляющей модели можно использовать GPT, CLAUDE, DeepSeek. А по итогу работы инструмента вы конечно же получаете отчёт, содержащий уязвимости.

Сам проект доступен на гитхабе. И авторы активно призывают к развитию проекта. Вы можете потестировать его и оставить свои предложения в issue на гитхабе. А вот и демка с демонстрацией того как инструмент работает.

https://pentagi.com/
👍41😁1
В прошлом году, после дропа lnk-файлов, было актульно на одном из этапов использовать AutoIt 🤖

В статье и тут описываются TTP одной из APT 🥷, которые в своем арсенале используют AutoIt.

Страшно ли это для нас?) Скорее нет 🤡, чем да, при правильно настроенном сборе событий, мы можем обнаружить такую активность:


ProviderName="Microsoft-Windows-Sysmon» and EventId = 1 and OriginalFileName = "autoIt*.exe"

ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and Image = ".*\\autoIt*.exe"

ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and (Description = "autoIt*.exe" or Product "autoIt*.exe")

ProviderName="Microsoft-Windows-Sysmon» and EventId = 11 and (TargetFilename endswith ".au3" or endswith TargetFilename ".a3x")


#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1😁1
https://unprotect.it/ база данных с техниками и примерами кода для MalDev

#ttp@detectioneasy
#framework@detectioneasy
👍51🔥1
Всем привет! 👋

Мы описали пример, как определить источники требований к мониторингу. Давайте попробуем кратко описать этот процесс для выдуманной компании World of detection.

1. Описание источника требования:
🔤 Департамент информационной безопасности (ИБ) компании World of detection.
Контактное лицо: Иван Иванов (Telegram: @ivan_ib, email: ivan.ib@detectionworld.com), Петр Иванов (Telegram: @petr_ib, email: petr.ib@detectionworld.com)

2. Что должно быть обнаружено:
🔤 Активность: Попытки подбора учетных данных (bruteforce) к корпоративным VPN-серверам.

🔤 Техническое описание:
Адреса VPN серверов: 1.1.1.1:1337, 1.1.1.2:3334, 1.1.1.3:31337

Множественные попытки аутентификации с одного IP-адреса в течение короткого промежутка времени (более 30 попыток за 5 минут).

Подключение клиента более чем с одного IP-адреса.

3. Причина для проработки нового обнаружения:
🔤 Источник требования: Результаты последнего тестирования Red Team показали, что текущие правила не обнаруживают атаки методом bruteforce на VPN-серверы.
🔤 Риск: Злоумышленники могут получить доступ к корпоративной сети, что может привести к утечке данных или компрометации критически важных систем.

4. Исключения из правила:
🔤 Белый список: IP-адреса офисов компании

5. Дополнительные данные:
🔤 Логи: Пример логов с попытками bruteforce, если есть.
🔤 PCAP-файлы: Пример сетевого трафика, если доступен.

Если у вас есть вопросы или хотите узнать больше, пишите в комментариях! 🛡️

#notes@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥2🍌2
Интересно, что у нас по дроперам 🦔?)

Скажем спасибо швиндовсу 🏠 за прекрасный формат *.msc, который описывает в xml оснастки. Мотивированные ребята придумали способ, как исполнять процессы, используя их, и назвали его - GrimResource.

На GitHub есть билдер, который позволяет создавать такие нагрузки.

Что это значит для нас? Ничего страшного, мониторинг - это просто))

Какие варианты обнаружения 🔭?

🔤 Появление новых файлов с расширением .msc в директориях пользователя (например, C:\Users\<Username>\Downloads)


ProviderName="Microsoft-Windows-Sysmon» and EventId = 11 and (TargetFilename endswith «.msc» and TargetFilename «?:\\Users\.*\.msc»)


🔤 Запуск mmc.exe с оснасткой не из системной директории


ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and Image = ".*\mmc.exe" and CommandLine not in ["?:\\Windows\\System32\\*.msc",
"?:\\Windows\\SysWOW64\\*.msc",
"?:\\Program files\\*.msc",
"?:\\Program Files (x86)\\*.msc»]


🔤 Родительский процесс - это mmc.exe и оснастка не из системной директории


ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and ParentImage = ".*\mmc.exe" and ParentCommandLine not in ["?:\\Windows\\System32\\*.msc",
"?:\\Windows\\SysWOW64\\*.msc",
"?:\\Program files\\*.msc",
"?:\\Program Files (x86)\\*.msc»]


Как не стать жертвой такой техники? 😿
Реализовать тестирование самим, нужно подготовить несколько сценариев, например:
🔤 письмо с вложенным msc
🔤 письмо с упакованным msc в несколько контейнеров
🔤 письмо с линком на msc
🔤 письмо с линком на упакованный msc в несколько контейнеров

Если у тебя по результатам 4х тестов будет 4+ детекта значит использование этой процедуры мы обнаружим своевременно)

🔤 к выше описанным детектам можно добавить вердикт твоего AV-решения, как хостового, так и почтового

Дополнительно можем похантить:
🔤 в директориях пользователей ищем *.msc
🔤 в Prefetch ищем MMC*.pf (кроме серверных версий Windows)
🔤 в MFT ищем создание *.msc
🔤 можем поискать ярой

Если у вас есть вопросы или хотите узнать больше, пишите в комментариях! 🛡️

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍43
Недавно было опубликовано описание работы подсистемы BITS (Background Intelligent Transfer Service). Я тоже не остался в стороне и на Хакере рассмотрел разные способы обнаружения эксплуатации BITS для скрытной передачи файлов и запуска процессов 🥷
👍6🍌3🍓3
MalDev Academy представили POC для скрытия и извлечения исполняемого файла из PNG-картинки. Для запуска используется LNK-файл, который запускает powershell.exe с аргументами:

🔤 для запукска dll


$data=[IO.File]::ReadAllBytes('{opng_fname}');$key=$data[{xor_key_offset}];$file=$env:TEMP+'\\{otpt_pe_file_name}';$i=[Text.Encoding]::ASCII.GetString($data).LastIndexOf('IDAT')+4;$xdata = ($data[$i..$data.Length] | ForEach-Object {{ $_ -bxor $key }}); [IO.File]::WriteAllBytes($file, $xdata); rundll32.exe $file {runtime_exprtdfnc_args}


🔤 для запукска exe


$data=[IO.File]::ReadAllBytes('{opng_fname}');$key=$data[{xor_key_offset}];$file=$env:TEMP+'\\{otpt_pe_file_name}';$i=[Text.Encoding]::ASCII.GetString($data).LastIndexOf('IDAT')+4;$xdata = ($data[$i..$data.Length] | ForEach-Object {{ $_ -bxor $key }}); [IO.File]::WriteAllBytes($file, $xdata); cmd /c $file


Для скрытия обнаружения при анализе файла, перед аргументами вставляется 512 символов пробела.

Можем ли мы обнаружить такое поведение?)) 🔭

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🍌2
Построить обнаружение мы можем, опираясь на события журналов Sysmon. События журнала Windows Powershell рассматривать не будем - логика схожа с событиями создания процесса.

Подозрительная активность может начинаться с дропа LNK-файла в дирректорию пользователя или в %TEMP%.

Если мы рассматриваем такую сборку как первый стейдж, скорее всего доставка будет в архиве, т.к. вряд ли у кого-то на почтовом шлюзе еще не заблокирована доставка LNK 🙃. Аналогичная ситуация при загрузке с линка, пользователю необходимо загружать два файла (+ браузер может заблокировать загрузку), что неудобно, поэтому атакующим нужно выдавать нагрузку в архиве.

При запуске LNK из архива реализация команды в POC работать не будет 😉. Атакующим нужно убедить жертву распаковать архив.

Порассуждали, можем обнаружить 🔭

🔤 Обнаружим создание LNK в дирректории пользователя


ProviderName="Microsoft-Windows-Sysmon" and EventId = 11 and TargetFilename = "?:\Users\.*\.lnk"


🔤 Проверим аргументы с которыми запускается powershell


ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and CommandLine = ".*-bxor.*" and CommandLine = "0x.*" and CommandLine = ".*WriteAllBytes" and Image=".*powershell.exe"


🔤 Не забудем проверить -bxor 0x в base64


ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and CommandLine = ".*IAAtAGIAeABvAHIAIAAwAHgA.*" and Image=".*powershell.exe"


🔤 И добавим детект на основе ADS NTFS


ProviderName="Microsoft-Windows-Sysmon" and EventId = 15 and TargetFilename = "?:\Users\.*\.lnk:Zone.Identifier" and Contents=".*ZoneId=3.*"


#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🍌2
🔤🔤 Этап 1 — Формирование требований

Привет всем 😏! Сегодня продолжаем тему Detection Engineering. Мы уже разобрали источники требований на разработку контента обнаружения в компании World of Detection, и рассмотрели пример организации этого процесса.

Для формирования требований на разработку правил обнаружения можно использовать платформы для управления проектами или Help Desk. Важно ❗️организовать процесс подачи запросов на создание правил, а также проверку, что такое правило ещё не существует.

Это особенно критично ☝️, если внедрением SIEM/EDR/XDR/NTA/NDR/IDS (и других решений, где используются правила) занимается сторонняя организация. Вы должны чётко понимать, какие правила уже применяются, и каково покрытие актуальных для вас уязвимостей и TTP, они обеспечивают. Это поможет избежать пробелов в обнаружении угроз.

Формирование требований и создание задач на разработку правил может быть организовано в разных системах или проектах. Такое разделение можно обосновать необходимостью ограничения доступа к контенту, который используется для обнаружения.

Отдельная проблема — поддержка контроля версий контента. Не все SIEM позволяют писать контент в виде кода 🤨. Некоторые предлагают только конструктор правил, что усложняет управление версиями и отслеживание изменений.

Итак, у организации World of Detection должна быть возможность:

🔤 Формировать запросы на разработку правил в какой-либо платформе
🔤 Понимать, какие правила уже используются
🔤 Обеспечивать контроль версий

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🍌2
Использование Python 🐍 для компрометации систем всем известная техника. Для ее реализации необходимо приносить интерпретатор (если его еще нет😁) или компилировать скрипт в исполняемый на целевой машине формат.

Небольшой обзор применения Python-скриптов

Сможем обнаружить вовремя?) 🔭

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🍌2
А вы знаете в чем отличие между python.exe и pythonw.exe ⁉️
pythonw.exe - позволяет запускать скрипты без открытия окна консоли, что не привлечет внимания пользователя.

Что с обнаружением?) Ничего сверхъестественного 🪄 мы не увидим, но нужно профилировать, особенно, если у вас ведется разработка ПО на python.

🔤 обнаруживаем создание файлов py? или python

ProviderName="Microsoft-Windows-Sysmon" and EventId = 11 and (TargetFilename = "?:\Users\.*\.py.?" or TargetFilename = "?:\Users\.*\\python.?\.exe")


🔤 обнаруживаем в аргументах командой строки python

ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and CommandLine = «.*\\python.?\.exe"


🔤 обнаруживаем запуск переименованного интерпретатора python

ProviderName="Microsoft-Windows-Sysmon" and OriginalFileName = "python.?" and Image != ".*\\python.?\.exe"


🔤 обнаруживаем запуск интерпретатора python

ProviderName="Microsoft-Windows-Sysmon" and Image = ".*\python.?\.exe" and OriginalFileName = "python.?"


Правила общие, при использовании скриптов для автоматизации можно похантить отличия запускаемых файлов, и проверять хеши скриптов, чтобы предотвратить внедрение в них вредоносного кода

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🍌3
Как называется метод, когда хакеры приносят свой интерпретатор на хост?🗑
Anonymous Quiz
20%
BYOS
20%
BYOD
8%
BYOE
52%
BYOI
😁51👍1
🔤🔤 Этап 2 — Сортировка требований на разработку

Всем привет 👋!
Продолжаем формировать процесс Detection Engineering в компании World of Detection. К этому моменту у нас уже внедрен трекер задач для учета и ведется активная разработка и доработка правил обнаружения. Однако аналитики не успевают справляться с поступающими задачами.

Рассмотрим ситуацию)
У компании World of Detection используется Exchange, а OWA (Outlook Web Access) доступна из интернета. В трекер задач поступил запрос на разработку правила для обнаружения эксплуатации уязвимости 🤬 (unauth RCE via OWA), эксплойт для которой доступен на GitHub. Администраторы сообщили, что обновление системы в данный момент невозможно, и придется ждать выходных. Тем временем аналитики продолжают разбирать поступающие запросы, и неизвестно, когда они доберутся до задачи, связанной с Exchange.

Хакеры 😈, естественно, воспользовались уязвимостью, взломали почтовый сервер, проникли во внутреннюю сеть и зашифровали часть инфраструктуры.

Когда начали разбираться, почему уязвимость не была обнаружена своевременно, выяснилось, что запрос на разработку правила уже был в трекере. Аналитики еще раз пояснили, что обрабатывают задачи по мере их поступления, без какой-либо фильтрации или приоритизации.

Что мы упустили?
Один из ключевых этапов — triage (сортировка и приоритизация задач). В созданной нами ранее карточки не предусмотрено поле для критичности (срочности).

Далее я рассмотрю один из способов расчета критичности для задачи на разработку правил обнаружения. Этот способ не является панацеей, и у каждой компании может быть свой подход к определению критичности и срочности разработки правил.

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
Неплохой вариант для фишинга 🧐?)

Что же нам делать?)

🔤 По старинке, смотрим создавались ли у нас файлы с расширением theme


ProviderName="Microsoft-Windows-Sysmon" and EventId = 11 and TargetFilename = "?:\Users\.*\.theme"


🔤 Обращение explorer.exe и rundll32.exe на 445 порт за пределы сети

ProviderName="Microsoft-Windows-Sysmon" and EventId = 3 and DestinationIp not in [10.0.0.0/8
, 172.16.0.0/12, 169.254.0.0/16] and DestinationPort = 445 and (Image endswith "explorer.exe" or Image endswith "rundll32.exe")


🔤 Загрузка DLL с удаленного ресурса

ProviderName="Microsoft-Windows-Sysmon" and EventId = 10 and Image endswith "rundll32.exe" and ImageLoaded startswith = '\\\\'


Хочется верить, что уже у всех закрыт доступ по WebDAV и SMB за пределы корпоративной сети)

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3👏2🍌1
Наткнулся на удобную утилиту для извлечения и расшифровки 😎😈 данных браузера (macOS, Windows, Linux).

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
😱5👍1😁1