Пока все ждут от ФСБ документов по ГосСОПКЕ и, в частности, по правилам и форматам передачи данных об инцидентах, я бы хотел поговорить об одном из недавно появившихся стандартов описания индикаторов компрометации. Но сначала вопрос. Какие языки для описания индикаторов компрометации / сигнатур / шаблонов для файловых атак вы знаете? Первое, что приходит на ум, - это YARA. А для сетевых атак? Правильно, Snort. А что для системных событий? И вот тут мы пасуем. Наши SIEM просто берут данные в форматах syslog или Event Log и анализируют по сути сырые данные. Существует ли язык, который мог бы помогать SIEM анализировать события?
Оказывается да. Это SIGMA, язык появившийся год назад, который позволяет легко описывать события для анализа в SIEM и делиться ими между различными организациями в рамках информационного обмена. По мере получения популярности SIGMA для логов должен стать тем же, что YARA для файлов и Snort для сетевого трафика.
Вот так, например, будет выглядеть очистка одного из логов Windows:
title: Очистка EventLog
description: один из логов Windows очищается
author: Florian Roth
logsource:
product: windows
detection:
selection:
EventLog: System
EventID: 104
condition: selection
falsepositives:
- Unknown
level: medium
А вот так выглядит описание сценария, когда офисный документ запускает интерпретатор командной строки cmd.exe:
title: Макрос в офисном документе запускает cmd.exe
status: экспериментальный
description: правило для Windows
references: - https://www.hybrid-analysis.com
author: Florian Roth
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 1
ParentImage:
- '*\WINDOWRD.EXE'
- '*\EXCEL.EXE'
Image: '*\cmd.exe'
condition: selection
fields:
- CommandLine
- ParentCommandLine
А вот так будет выглядеть описание сценария с несколькими неудачными попытками входа под разными учетными записями с одной рабочей станции:
Наконец, вот так описывается один из тригеров DragonFly:
action: global
title: CrackMapExecWin
description: Обнаружение активности CrackMapExecWin как описывает NCSC
status: экспериментальный
references: - https://www.ncsc.gov.uk/alerts/hostile-state-actors-compromising-uk-organisations-focus-engineering-and-industrial-control
author: Markus Neis
detection:
condition: 1 of them
falsepositives: - None
level: critical
--- # Сначала анализируем Windows Audit Log
logsource:
product: windows
service: security
description: 'Requirements: Audit Policy : Detailed Tracking > Audit Process creation, Group Policy : Administrative Templates\System\Audit Process Creation'
detection:
selection1:
# Does not require group policy 'Audit Process Creation' > Include command line in process creation events
EventID: 4688
NewProcessName: - '*\crackmapexec.exe'
---
# Затем анализируем Sysmon
logsource:
product: windows
service: sysmon
detection:
selection1:
# Does not require group policy 'Audit Process Creation' > Include command line in process creation events
EventID: 1
Image:
- '*\crackmapexec.exe'
Достаточно несложно и эффективно. Однако есть один нюанс - нужны средства автоматизации для работы со сценариями SIGMA. Пока это делает только MISP (для обмена индикаторами компрометации) и Splunk через соответствующий App - TA-Sigma-Searches. Также SIGMA поддерживает Elastic и kibana. У автора SIGMA были планы по интеграции своего языка в различные SIEM (например, ArcSight и QRadar), но пока они не реализованы. Может отечественные производители будут первыми?
ЗЫ. Кстати. Вы слышали что-нибудь про JA3, метод описания цифровых отпечатков для SSL/TLS-клиентов, который может использоваться в рамках Threat Intelligence? Вот так выглядит отпечаток JA3 для Dridex - 74927e242d6c3febf8cb9cab10a7f889.
Оказывается да. Это SIGMA, язык появившийся год назад, который позволяет легко описывать события для анализа в SIEM и делиться ими между различными организациями в рамках информационного обмена. По мере получения популярности SIGMA для логов должен стать тем же, что YARA для файлов и Snort для сетевого трафика.
Вот так, например, будет выглядеть очистка одного из логов Windows:
title: Очистка EventLog
description: один из логов Windows очищается
author: Florian Roth
logsource:
product: windows
detection:
selection:
EventLog: System
EventID: 104
condition: selection
falsepositives:
- Unknown
level: medium
А вот так выглядит описание сценария, когда офисный документ запускает интерпретатор командной строки cmd.exe:
title: Макрос в офисном документе запускает cmd.exe
status: экспериментальный
description: правило для Windows
references: - https://www.hybrid-analysis.com
author: Florian Roth
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 1
ParentImage:
- '*\WINDOWRD.EXE'
- '*\EXCEL.EXE'
Image: '*\cmd.exe'
condition: selection
fields:
- CommandLine
- ParentCommandLine
А вот так будет выглядеть описание сценария с несколькими неудачными попытками входа под разными учетными записями с одной рабочей станции:
Наконец, вот так описывается один из тригеров DragonFly:
action: global
title: CrackMapExecWin
description: Обнаружение активности CrackMapExecWin как описывает NCSC
status: экспериментальный
references: - https://www.ncsc.gov.uk/alerts/hostile-state-actors-compromising-uk-organisations-focus-engineering-and-industrial-control
author: Markus Neis
detection:
condition: 1 of them
falsepositives: - None
level: critical
--- # Сначала анализируем Windows Audit Log
logsource:
product: windows
service: security
description: 'Requirements: Audit Policy : Detailed Tracking > Audit Process creation, Group Policy : Administrative Templates\System\Audit Process Creation'
detection:
selection1:
# Does not require group policy 'Audit Process Creation' > Include command line in process creation events
EventID: 4688
NewProcessName: - '*\crackmapexec.exe'
---
# Затем анализируем Sysmon
logsource:
product: windows
service: sysmon
detection:
selection1:
# Does not require group policy 'Audit Process Creation' > Include command line in process creation events
EventID: 1
Image:
- '*\crackmapexec.exe'
Достаточно несложно и эффективно. Однако есть один нюанс - нужны средства автоматизации для работы со сценариями SIGMA. Пока это делает только MISP (для обмена индикаторами компрометации) и Splunk через соответствующий App - TA-Sigma-Searches. Также SIGMA поддерживает Elastic и kibana. У автора SIGMA были планы по интеграции своего языка в различные SIEM (например, ArcSight и QRadar), но пока они не реализованы. Может отечественные производители будут первыми?
ЗЫ. Кстати. Вы слышали что-нибудь про JA3, метод описания цифровых отпечатков для SSL/TLS-клиентов, который может использоваться в рамках Threat Intelligence? Вот так выглядит отпечаток JA3 для Dridex - 74927e242d6c3febf8cb9cab10a7f889.
Sigma нужная вещь, единственное вызывает сомнение, это когда контрибьюторы засылают в github правила жесткой привязки к определенным именам вирусов (типа wannacry.exe), на мой взгляд смысла этого нет, так как поиск по таким жестким сигнатурам это прерогатива антивирусов.
ОтветитьУдалитьА вот правила описывающие общие подходы к атакам, будут полезны.