Написание правил обнаружения и корреляция
Создавайте запросы Splunk SPL или Kibana KQL для обнаружения перебора, бокового перемещения и вывода данных.
«Написание правил обнаружения и корреляция» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Основы разработки средств обнаружения
Правила обнаружения переводят действия злоумышленников в логику запросов, которая срабатывает при появлении соответствующего шаблона в журналах. Хорошая разработка средств обнаружения достаточно специфична, чтобы избегать ложных срабатываний, но достаточно широка, чтобы выявлять варианты атаки.
SPL в Splunk: язык обработки поиска
Запросы SPL используют синтаксис с конвейером: поиск → преобразование → отображение. Начните с индекса и типа источника, отфильтруйте нужные события, а затем сгруппируйте результаты или сформируйте по ним оповещение.
# Basic SPL structure
index=security sourcetype=WinEventLog EventCode=4625
| stats count by src_ip, user
| where count > 10
| sort -count
# Explanation:
# Search Security index for logon failures
# Count failures per source IP + user
# Alert if more than 10 failures
# Sort descending by countОбнаружение перебора паролей в Splunk
Обнаружение перебора паролей: подсчитайте неудачные входы для каждого источника и сформируйте оповещение, когда порог превышен в заданном временном окне. Сопоставляйте успешный вход с предыдущими неудачами, чтобы выявлять подстановку учётных данных.
# Failed logins by source IP
index=security EventCode=4625
| bucket _time span=5m
| stats count as failures by _time, src_ip
| where failures > 20
| table _time, src_ip, failures
# Success after failures (account takeover)
index=security EventCode=4625 OR EventCode=4624
| stats values(EventCode) as events by src_ip
| where mvfind(events,"4625") >= 0 AND mvfind(events,"4624") >= 0KQL Kibana для обнаружения
Язык запросов Kibana (KQL) фильтрует события для расследования. Для аналитиков он удобнее для чтения, чем Lucene; используйте его в сохранённых запросах и правилах оповещений в Kibana.
# KQL examples:
# Failed SSH logins
event.action: "ssh_login_failed" and source.ip: *
# Nmap scan detection
not destination.port: (80 or 443 or 22) and event.type: "connection"
# Privilege escalation
process.name: "sudo" and process.args: "-s"Правила обнаружения Elasticsearch
Приложение безопасности Kibana включает механизм правил обнаружения. Правила могут быть пороговыми (количество событий), основанными на запросах (определённый шаблон события), выявляющими аномалии машинного обучения или последовательности событий EQL (язык запросов событий).
# EQL sequence rule example (Kibana Security):
sequence by host.name
[process where process.name == "cmd.exe"]
[network where destination.port == 4444]
# Detects: cmd.exe followed by connection to port 4444
# (common reverse shell pattern)Обнаружение бокового перемещения
Выявляйте боковое перемещение по следующим признакам: создание службы PsExec (событие 7045), удалённое выполнение через WMI, необычный доступ к административным общим папкам (событие 5140) и новые запланированные задачи, созданные удалённо.
# Splunk: detect PsExec-style lateral movement
index=security EventCode=7045
| where Service_Name="PSEXESVC" OR Service_File_Name="\\*\\*.exe"
| table _time, ComputerName, Service_Name, Service_File_Name
# WMI remote execution
index=sysmon EventCode=1 ParentImage="*WmiPrvSE.exe"
| table _time, host, CommandLine, UserОбнаружение вывода данных
Выявляйте вывод данных по следующим признакам: большие исходящие передачи на необычные адресаты, DNS-запросы с аномально длинными поддоменами (туннелирование) и регулярные сигналы по HTTPS.
# DNS tunneling detection in Splunk
index=dns
| eval subdomain_len=len(subdomain)
| where subdomain_len > 50
| stats count by query, src_ip
| sort -count
# Large outbound (NetFlow/firewall logs)
index=firewall action=allow direction=outbound
| stats sum(bytes) as total_bytes by dest_ip, src_ip
| where total_bytes > 100000000 # 100MB thresholdОхота на угрозы с помощью сохранённых запросов
Сохраняйте часто используемые запросы обнаружения как запланированные поиски, которые отправляют электронные письма или создают инциденты. Задавайте подходящие временные окна и пороги, чтобы сбалансировать скорость обнаружения и долю ложных срабатываний.
Обнаружение с привязкой к MITRE ATT&CK
Связывайте правила обнаружения с техниками ATT&CK. Это показывает пробелы в покрытии и помогает расставлять приоритеты для новых правил. Такие инструменты, как ATT&CK Navigator, визуализируют обнаруживаемые техники и техники, которые остаются незаметными.
Настройка для сокращения ложных срабатываний
Новые правила часто срабатывают слишком широко. Настраивайте их, добавляя исключения для известных безопасных источников, повышая пороги, добавляя контекстные поля (рабочие часы, известные IP-адреса сканеров) и проверяя правила по историческим данным до активации.
Усталость от оповещений
Слишком большое количество низкокачественных оповещений заставляет аналитиков игнорировать их, сводя на нет саму цель системы. Ставьте качество выше количества: 10 оповещений с высокой точностью в день лучше 500 зашумлённых. Подавляйте, настраивайте и выводите из эксплуатации неэффективные правила.
Быстрая проверка
Какое событие обнаруживает правило последовательности EQL, недоступное простому правилу на основе запроса?
Итог: правила обнаружения
Разработка средств обнаружения преобразует TTP злоумышленников в логику запросов. Используйте SPL для Splunk, KQL и EQL для Kibana Security. Связывайте правила с MITRE ATT&CK, чтобы отслеживать покрытие. Отдавайте приоритет точным целевым правилам, а не широким зашумлённым. Постоянно настраивайте логику обнаружения: ландшафт угроз меняется, и она тоже должна меняться.
Изучай Cyber Security Academy с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 76
- Уроки
- 303
Часто задаваемые вопросы
Урок «Написание правил обнаружения и корреляция» бесплатный?
Да — полный текст урока «Написание правил обнаружения и корреляция» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Написание правил обнаружения и корреляция»?
Создавайте запросы Splunk SPL или Kibana KQL для обнаружения перебора, бокового перемещения и вывода данных. Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Написание правил обнаружения и корреляция»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Источники журналов: ОС, сеть и приложения
- Архитектура SIEM и сбор журналов
- Написание правил обнаружения и корреляция
- Сортировка оповещений и рабочий процесс SOC