Чтобы позволить Sigma представлять более сложные булевы операции, встречающиеся в языках запросов к журналам (такие как NOT, AND и OR), правила Sigma оснащены полем condition – как часть раздела detection. Это позволяет логически организовывать обнаружения Sigma в различные разделы, а также выполнять такие функции, как фильтрация известных ложных срабатываний.
Базовые условия
not
Выражение not позволяет выполнить инверсный поиск.
В примере ниже мы ищем все события, где IP-адрес id.orig_h (Подключающийся IP) не принадлежит внутренней сети.
1 2 3 4 5 6 7 8 | detection: selection: id.orig_h|cidr: - "10.0.0.0/8" - "172.16.0.0/12" - "192.168.0.0/24" condition: not selection // [!code ++] # НЕ (id.orig_h == "10.*" ИЛИ ... ИЛИ id.orig_h == "192.168.*") |
and
Выражение and объединяет две выборки (selections) с помощью оператора AND.
1 2 3 4 5 6 | detection: selection_1: EventID: 4663 selection_2: ObjectName: '\Device\CdRom0\setup.exe' condition: selection_1 and selection_2 // [!code ++] |
Фильтры (Filters)
Вы можете эффективно использовать условия and и not для фильтрации нежелательных или известных ложных срабатываний в вашем правиле Sigma.
1 2 3 4 5 6 7 8 | detection: selection: Image|endswith: "/bin/bash" filter: DestinationIp: - "127.0.0.1" - "0.0.0.0" condition: selection and not filter // [!code ++] |
or
Выражение or объединяет две выборки по принципу «или то, или другое» с помощью оператора OR.
1 2 3 4 5 6 7 8 | detection: selection1: eventSource: sts.amazonaws.com eventName: AssumeRoleWithSAML selection2: eventSource: iam.amazonaws.com eventName: UpdateSAMLProvider condition: selection1 or selection2 // [!code ++] |
скобки (brackets)
Когда необходимы более сложные операции, оператор brackets позволяет группировать разные операции и будет преобразован в использование скобок в вашей среде обнаружения.
Скобки также помогают устранить неоднозначность в порядке выполнения операций между условиями and, or и not.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | detection: selection: Image: "werfault.exe" filter1: ParentImage: "svchost.exe" filter2: DestinationIp|cidr: - "10.0.0.0/8" - "172.16.0.0/12" - "192.168.0.0/24" filter3: DestinationHostname|contains: - "*.windowsupdate.com" - "*.microsoft.com" condition: selection and not ( filter1 or filter2 or filter3 ) // [!code ++] |
Продвинутые условия
1 of (search pattern) (1 из шаблона поиска)
Оператор 1 of (search pattern) объединяет все перечисленные условия в оператор OR. (search pattern) может быть заменено на регулярное выражение, описывающее имя группы выборки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | title: Доступ к веб-шеллу DEWMODE description: Обнаруживает доступ к веб-шеллу DEWMODE, как описано в отчете FIREEYE logsource: category: webserver detection: selection1: c-uri|contains|all: - "?dwn=" - "&fn=" - ".html?" selection2: c-uri|contains|all: - "&dwn=" - "?fn=" - ".html?" condition: 1 of selection* # 1 из selection* |
all of (search pattern) (все из шаблона поиска)
Оператор all of (search pattern) объединяет все перечисленные условия в оператор AND. (search pattern) может быть заменено на регулярное выражение, описывающее имя группы выборки.
1 2 3 4 5 6 7 8 9 | detection: selection_base: eventService: admin.googleapis.com eventName: - ENFORCE_STRONG_AUTHENTICATION - ALLOW_STRONG_AUTHENTICATION selection_eventValue: new_value: "false" condition: all of selection* # все из selection* // [!code ++] |
1 of them (1 из них)
Оператор 1 of them объединяет все вышеперечисленные условия в оператор OR.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | detection: selection_file_creation: EventID: 11 TargetFilename|contains: - ".dmp" # дамп памяти процесса - 'Desktop\how' # Программа-вымогатель - 'Desktop\decrypt' # Программа-вымогатель selection_registry_modifications: EventID: - 12 - 13 TargetObject|contains: - "UserInitMprLogonScript" # персистентность selection_registry_run: EventID: - 12 - 13 TargetObject|contains: - '\Microsoft\Windows\CurrentVersion\Run\' # персистентность condition: 1 of them # 1 из них // [!code ++] # что означает: selection_file_creation ИЛИ # selection_registry_modifications ИЛИ # selection_registry_run |
all of them (все из них)
Оператор all of them объединяет все вышеперечисленные условия в оператор AND.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | detection: selection_file_creation: EventID: 11 TargetFilename|contains: - ".dmp" # дамп памяти процесса - 'Desktop\how' # Программа-вымогатель - 'Desktop\decrypt' # Программа-вымогатель selection_registry_modifications: EventID: - 12 - 13 TargetObject|contains: - "UserInitMprLogonScript" # персистентность selection_registry_run: EventID: - 12 - 13 TargetObject|contains: - '\Microsoft\Windows\CurrentVersion\Run\' # персистентность condition: all of them # все из них // [!code ++] # что означает: selection_file_creation И # selection_registry_modifications И # selection_registry_run |