Перенос правил обнаружения QRadar в Microsoft Sentinel
Эта статья содержит сведения об определении, сравнении и переносе правил обнаружения QRadar во встроенные правила Microsoft Sentinel.
Определение и перенос правил
В Microsoft Sentinel используется аналитика на основе машинного обучения. Она применяется для создания высокоточных инцидентов с действиями, а некоторые имеющиеся средства обнаружения могут быть избыточными в Microsoft Sentinel. Поэтому не следует бездумно переносить все правила обнаружения и аналитики. При определении существующих правил обнаружения необходимо учитывать следующие рекомендации.
- Обязательно выберите варианты использования, которые позволят согласовать перенос правил, учитывая приоритетность и эффективность для бизнеса.
- Убедитесь, что вы понимаете типы правил Microsoft Sentinel.
- Убедитесь, что вы понимаете терминологию правил.
- Проверьте все правила, которые не активировали оповещения за последние 6–12 месяцев, и определите, по-прежнему ли они актуальны.
- Устраните низкоуровневые угрозы или оповещения, которые обычно игнорируются.
- Используйте существующие функции и проверьте, можно ли применить встроенные правила аналитики Microsoft Sentinel в рамках текущих вариантов использования. Так как в Microsoft Sentinel используется аналитика на основе машинного обучения для создания высокоточных инцидентов с действиями, высока вероятность того, что некоторые имеющиеся средства обнаружения могут стать избыточными.
- Убедитесь, что источники данных подключены, и проверьте методы подключения к данным. Повторно рассмотрите сбор данных, чтобы обеспечить глубину и обширность данных в различных вариантах использования, которые планируется обнаруживать.
- Ознакомьтесь с такими ресурсами сообщества, как SOC Prime Threat Detection Marketplace, чтобы проверить, доступны ли ваши правила.
- Подумайте, можно ли использовать для работы с вашими правилами такой преобразователь запросов в сети, как Uncoder.io.
- Если правила недоступны или не могут быть преобразованы, их необходимо создать вручную с помощью запроса KQL. Проверьте сопоставление правил, чтобы создать новые запросы.
Ознакомьтесь с дополнительными сведениями о рекомендациях по миграции правил обнаружения.
Чтобы перенести правила аналитики в Microsoft Sentinel, выполните следующие действия:
Убедитесь в наличии системы тестирования для каждого правила, которое необходимо перенести.
Подготовьте процесс проверки перенесенных правил, включая скрипты и сценарии полного тестирования.
Убедитесь, что у вашей команды есть полезные ресурсы для тестирования перенесенных правил.
Убедитесь, что все необходимые источники данных подключены, и проверьте методы подключения к данным.
Проверьте, доступны ли ваши средства обнаружения в качестве встроенных шаблонов в Microsoft Sentinel:
Если встроенных правил достаточно, используйте встроенные шаблоны правил, чтобы создать правила для собственной рабочей области.
Чтобы создать и изменить соответствующие правила аналитики, в Microsoft Sentinel выберите Configuration (Конфигурация) > Analytics (Аналитика) > Rule templates (Шаблоны правил).
Дополнительные сведения см. в разделе "Создание правил запланированной аналитики" из шаблонов.
При наличии средств обнаружения, не охватываемых встроенными правилами Microsoft Sentinel, попробуйте использовать преобразователь запросов в Интернете, например Uncoder.io, чтобы преобразовать свои запросы в KQL.
Определите условие триггера и действие правила, а затем создайте и просмотрите запрос KQL.
Если ни встроенных правил, ни преобразователя правил в Интернете не достаточно, необходимо создать правило вручную. В таких случаях выполните приведенные ниже действия, чтобы приступить к созданию правила.
Определите источники данных, которые будут использоваться в правиле. Чтобы определить таблицы, к которым необходимо выполнить запрос, потребуется создать таблицу сопоставления источников данных и таблиц данных в Microsoft Sentinel.
Определите все атрибуты, поля или сущности в данных, которые будут использоваться в правилах.
Определите критерии и логику правила. На этом этапе вы можете использовать шаблоны правил в качестве примеров для создания запросов KQL.
Рассмотрите фильтры, правила корреляции, активные списки, эталонные наборы, списки видео к просмотру, аномалии обнаружения, агрегаты и т. д. Вы можете использовать справочные материалы, предоставляемые устаревшим решением SIEM, чтобы понять, как лучше сопоставить синтаксис запросов.
Определите условие триггера и действие правила, а затем создайте и просмотрите запрос KQL. При просмотре запроса учтите рекомендации по оптимизации KQL.
Протестируйте правило для каждого соответствующего ему варианта использования. Если оно не выдало ожидаемых результатов, возможно, потребуется отредактировать запрос KQL и снова проверить его.
Когда результаты будут удовлетворительными, можно будет считать, что правило перенесено. При необходимости создайте сборник схем для действия правила. Дополнительные сведения см. в разделе Автоматизация реагирования на угрозы с помощью сборников схем в Microsoft Sentinel.
См. правила аналитики:
- Правила запланированной аналитики в Microsoft Sentinel. Используйте группирование оповещений, чтобы уменьшить усталость от оповещений за счет группирования оповещений, происходящих в течение заданного периода времени.
- Сопоставьте поля данных с сущностями в Microsoft Sentinel, чтобы позволить инженерам SOC определять сущности как часть свидетельств, которые подлежат отслеживанию во время исследования. Сопоставление сущностей также позволяет аналитикам SOC использовать преимущества интуитивно понятного графа исследований (investigate-cases.md#use-the-investigation-graph-to-deep-dive), который поможет сократить затрачиваемые время и усилия.
- Изучите инциденты с помощью данных UEBA в качестве примера использования свидетельств для отображения событий, оповещений и всех закладок, связанных с конкретным инцидентом, в области просмотра инцидентов.
- Язык запросов Kusto (KQL) можно использовать для отправки запросов только для чтения к базе данных Log Analytics для обработки данных и возвращения результатов. KQL также используется в других службах Майкрософт, например в Microsoft Defender для конечной точки и Application Insights.
Сравнение терминологии правил
С помощью этой таблицы вы сможете прояснить для себя концепцию правила в Microsoft Sentinel по сравнению с QRadar.
QRadar | Microsoft Sentinel | |
---|---|---|
Тип правила | • События • Поток • Распространенные • Правонарушение • Правила обнаружения аномалий |
• Запланированный запрос • Слияние • Безопасность Microsoft • Аналитика поведения для машинного обучения (ML) |
Критерии | Определение в условии теста | Определение в KQL |
Условие активации | Определение в правиле | Порог: количество результатов запроса |
Действие | • Создание правонарушения • Отправка нового события • Добавление в эталонный набор или данные • И прочее |
• Создание оповещения или инцидента • Интеграция с Logic Apps |
Сопоставление и сравнение примеров правил
Используйте эти примеры для сравнения и сопоставления правил из QRadar с Microsoft Sentinel в различных сценариях.
Синтаксис тестов общих свойств
Ниже приведен синтаксис QRadar для правила тестов общих свойств.
Тесты общих свойств: пример регулярного выражения (QRadar)
Ниже приведен синтаксис для примера правила тестов общих свойств QRadar, использующего регулярное выражение:
when any of <these properties> match <this regular expression>
Ниже приведен пример правила в QRadar.
Тесты общих свойств: пример регулярного выражения (KQL)
Ниже приведено правило тестов общих свойств с регулярным выражением в KQL.
CommonSecurityLog
| where tostring(SourcePort) matches regex @"\d{1,5}" or tostring(DestinationPort) matches regex @"\d{1,5}"
Тесты общих свойств: пример запроса фильтра AQL (QRadar)
Ниже приведен синтаксис для примера правила тестов общих свойств QRadar, использующего запрос фильтра AQL.
when the event matches <this> AQL filter query
Ниже приведен пример правила в QRadar.
Тесты общих свойств: пример запроса фильтра AQL (KQL)
Ниже приведено правило тестов общих свойств с запросом фильтра AQL в KQL.
CommonSecurityLog
| where SourceIP == '10.1.1.10'
Тесты общих свойств: пример equals/not equals (QRadar)
Ниже приведен синтаксис для примера правила тестов общих свойств QRadar, использующего оператор equals
или not equals
.
and when <this property> <equals/not equals> <this property>
Ниже приведен пример правила в QRadar.
Тесты общих свойств: пример equals/not equals (KQL)
Ниже приведено правило тестов общих свойств с оператором equals
или not equals
в KQL.
CommonSecurityLog
| where SourceIP == DestinationIP
Синтаксис тестов даты и времени
Ниже приведен синтаксис QRadar для правила тестов даты и времени.
Тесты даты и времени: пример выбранного дня месяца (QRadar)
Ниже приведен синтаксис для примера правила тестов даты и времени QRadar, использующего выбранный день месяца.
and when the event(s) occur <on/after/before> the <selected> day of the month
Ниже приведен пример правила в QRadar.
Тесты даты и времени: пример выбранного дня месяца (KQL)
Ниже приведено правило тестов даты и времени с выбранным днем месяца в KQL.
SecurityEvent
| where dayofmonth(TimeGenerated) < 4
Тесты даты и времени: пример выбранного дня недели (QRadar)
Ниже приведен синтаксис для примера правила тестов даты и времени QRadar, использующего выбранный день недели.
and when the event(s) occur on any of <these days of the week{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}>
Ниже приведен пример правила в QRadar.
Тесты даты и времени: пример выбранного дня недели (KQL)
Ниже приведено правило тестов даты и времени с выбранным днем недели в KQL.
SecurityEvent
| where dayofweek(TimeGenerated) between (3d .. 5d)
Тесты даты и времени: пример after/before/at (QRadar)
Ниже приведен синтаксис для примера правила тестов даты и времени QRadar, использующего оператор after
, before
или at
.
and when the event(s) occur <after/before/at> <this time{12.00AM, 12.05AM, ...11.50PM, 11.55PM}>
Ниже приведен пример правила в QRadar.
Тесты даты и времени: пример after/before/at (KQL)
Ниже приведено правило тестов даты и времени, которое использует оператор after
, before
или at
в KQL.
SecurityEvent
| where format_datetime(TimeGenerated,'HH:mm')=="23:55"
TimeGenerated
находится в формате UTC/GMT.
Синтаксис тестов свойств событий
Ниже приведен синтаксис QRadar для правила тестов свойств событий.
Тесты свойств событий: пример протокола IP (QRadar)
Ниже приведен синтаксис для примера правила тестов свойств событий QRadar, использующего протокол IP.
and when the IP protocol is one of the following <protocols>
Ниже приведен пример правила в QRadar.
Тесты свойств событий: пример протокола IP (KQL)
CommonSecurityLog
| where Protocol in ("UDP","ICMP")
Тесты свойств событий: пример строки полезных данных события (QRadar)
Ниже приведен синтаксис для примера правила тестов свойств событий QRadar, использующего строковое значение Event Payload
.
and when the Event Payload contains <this string>
Ниже приведен пример правила в QRadar.
Тесты свойств событий: пример строки полезных данных события (KQL)
CommonSecurityLog
| where DeviceVendor has "Palo Alto"
search "Palo Alto"
Для оптимизации производительности не используйте команду search
, если имя таблицы уже известно.
Функции: синтаксис счетчиков
Ниже приведен синтаксис QRadar для правила функций, использующего счетчики.
Счетчики: пример свойства события и времени (QRadar)
Ниже приведен синтаксис для примера правила функций QRadar, которое использует определенное количество свойств события за определенное число минут.
and when at least <this many> events are seen with the same <event properties> in <this many> <minutes>
Ниже приведен пример правила в QRadar.
Счетчики: пример свойства события и времени (KQL)
CommonSecurityLog
| summarize Count = count() by SourceIP, DestinationIP
| where Count >= 5
Функции: синтаксис отрицательных условий
Ниже приведен синтаксис QRadar для правила функций, использующего отрицательные условия.
Пример отрицательных условий (QRadar)
Ниже приведен синтаксис для примера правила функций QRadar, использующего отрицательные условия.
and when none of <these rules> match in <this many> <minutes> after <these rules> match with the same <event properties>
Ниже приведены два определенных правила в QRadar. Отрицательные условия будут основываться на этих правилах.
Ниже приведен пример правила отрицательных условий на основе приведенных выше правил.
Пример отрицательных условий (KQL)
let spanoftime = 10m;
let Test2 = (
CommonSecurityLog
| where Protocol !in ("UDP","ICMP")
| where TimeGenerated > ago(spanoftime)
);
let Test6 = (
CommonSecurityLog
| where SourceIP == DestinationIP
);
Test2
| join kind=rightanti Test6 on $left. SourceIP == $right. SourceIP and $left. Protocol ==$right. Protocol
Функции: синтаксис простых условий
Ниже приведен синтаксис QRadar для правила функций, использующего простые условия.
Пример простых условий (QRadar)
Ниже приведен синтаксис для примера правила функций QRadar, использующего простые условия.
and when an event matches <any|all> of the following <rules>
Ниже приведен пример правила в QRadar.
Пример простых условий (KQL)
CommonSecurityLog
| where Protocol !in ("UDP","ICMP") or SourceIP == DestinationIP
Синтаксис тестов IP-адресов и портов
Ниже приведен синтаксис QRadar для правила тестов IP-адресов и портов.
Тесты IP-адресов и портов: пример порта источника (QRadar)
Ниже приведен синтаксис примера правила QRadar, указывающего порт источника.
and when the source port is one of the following <ports>
Ниже приведен пример правила в QRadar.
Тесты IP-адресов и портов: пример порта источника (KQL)
CommonSecurityLog
| where SourcePort == 20
Тесты IP-адресов и портов: пример IP-адреса источника (QRadar)
Ниже приведен синтаксис примера правила QRadar, указывающего IP-адрес источника.
and when the source IP is one of the following <IP addresses>
Ниже приведен пример правила в QRadar.
Тесты IP-адресов и портов: пример IP-адреса источника (KQL)
CommonSecurityLog
| where SourceIP in (“10.1.1.1”,”10.2.2.2”)
Синтаксис тестов источника журнала
Ниже приведен синтаксис QRadar для правила тестов источника журнала.
Пример источника журнала (QRadar)
Ниже приведен синтаксис примера правила QRadar, указывающего источники журналов.
and when the event(s) were detected by one or more of these <log source types>
Ниже приведен пример правила в QRadar.
Пример источника журнала (KQL)
OfficeActivity
| where OfficeWorkload == "Exchange"
Следующие шаги
Из этой статьи вы узнали, как сопоставить правила переноса из QRadar с Microsoft Sentinel.