Синтаксических конструкций и регулярных выражений SIEM
SIEM (Security Information and Event Management) используется для мониторинга, анализа и реагирования на события в области информационной безопасности. Создание правил для SIEM часто включает в себя использование различных синтаксических конструкций для фильтрации и сопоставления событий.
Регулярные выражения — это инструмент для поиска, анализа и манипулирования текстом на основе шаблонов. Они представляют собой последовательности символов, которые определяют шаблон поиска. Регулярные выражения широко используются в различных областях, включая программирование, обработку текста, поиск и фильтрацию данных.
Давайте рассмотрим некоторые основные переменные и синтаксис, используемые при создании правил SIEM:
Сравнение значений:
==: Используется для сравнения на равенство. Например, source_ip == «192.168.1.1».
!=: Используется для проверки на неравенство. Пример: user_name != «admin».
><: Этот символ, возможно, является ошибкой. Если вы имели в виду > (больше) или < (меньше), то они могут использоваться для сравнения числовых значений, например, bytes_sent > 1000.
Логические операторы:
AND: Логическое И, используется для комбинирования нескольких условий. Например, source_ip == «192.168.1.1» AND user_name != «admin».
OR: Логическое ИЛИ, применяется для выбора событий, которые соответствуют хотя бы одному из условий. Пример: severity == «High» OR source_ip == «10.0.0.1».
Регулярные выражения:
Регулярные выражения могут использоваться для более сложных сопоставлений. Например, user_name : /(admin|root)/ соответствует любому пользователю с именем «admin» или «root».
Временные переменные:
SIEM-системы могут предоставлять переменные для работы со временем, например, timestamp > now() — 1d (событие произошло менее 1 дня назад).
Комбинированные условия:
Возможность комбинировать различные типы условий, например, source_ip == «192.168.1.1» AND (user_name != «admin» OR severity == «High»).
Проверка событий наличия поля:
Используется для проверки наличия определенного поля в событии, например, exists(source_ip).
Условия для IP-адресов:
Для проверки IP-адресов могут использоваться различные операторы, например, source_ip IN [«192.168.1.1», «10.0.0.1»].
Группировка условий:
Можно группировать условия с использованием скобок для более сложных логических выражений. Например, (source_ip == «192.168.1.1» OR source_ip == «10.0.0.1») AND severity == «High».
Использование агрегатных функций:
Некоторые SIEM-системы позволяют использовать агрегатные функции для анализа данных, например, count(user_name) > 10.
Операторы для работы с текстом:
Для сравнения текстовых значений можно использовать операторы, такие как contains, startsWith, endsWith. Пример: user_name contains «admin».
Использование масок для файлов и путей:
Если анализируются логи файловых операций, могут использоваться маски для файлов и путей, например, file_path matches «*.exe».
Фильтрация по сетевым портам:
Для анализа сетевого трафика можно использовать условия на порты, например, destination_port == 80.
Условия для работы с архивами событий:
Некоторые SIEM-системы предоставляют возможность анализа архивных событий, например, archive_date > «2023-01-01».
Условия для аутентификации:
При анализе аутентификационных событий можно использовать условия, такие как authentication_success == true или authentication_failure > 3.
Следящие условия:
Для отслеживания определенных событий можно использовать условия счетчиков или счетчиков времени, например, count(event_type) > 10 in last 1 hour.
Условия для детекции аномалий:
Некоторые SIEM-системы поддерживают условия для детекции аномального поведения, например, anomaly_detection(user_activity) > 2.
Условия для работы с угрозами:
При анализе угроз безопасности можно использовать условия, связанные с характеристиками угроз, например, threat_category == «Malware».
Условия для анализа уровня доступа:
Для отслеживания изменений в уровне доступа можно использовать условия, такие как user_role_changed == true.
Сопоставление по идентификаторам устройств:
При интеграции с другими системами безопасности можно использовать условия, связанные с идентификаторами устройств, например, device_id == «123456».
Условия для работы с пользовательскими атрибутами:
Некоторые SIEM-системы позволяют использовать пользовательские атрибуты в условиях, например, user_attribute(«department») == «Finance».
Условия для анализа событий безопасности в облаке:
При анализе событий в облачных средах можно использовать условия, связанные с характеристиками облачных служб, например, cloud_service == «AWS».
Условия для обработки событий на основе геолокации:
Для анализа географического расположения событий можно использовать условия, такие как geo_location(«country») == «US».
Условия для детекции атак на сеть:
При анализе сетевого трафика можно использовать условия, связанные с характеристиками атак, например, network_attack_signature == «SQL Injection».
Условия для анализа данных аутентификации:
Для дополнительного анализа данных аутентификации можно использовать условия, такие как authentication_method == «Multi-Factor Authentication».
Условия для анализа событий мобильных устройств:
При анализе событий с мобильных устройств можно использовать условия, связанные с характеристиками мобильных платформ, например, mobile_device_type == «iOS».
В данном обзоре были представлены основные переменные и синтаксис, используемые при создании правил для систем SIEM. Отметим, что точный синтаксис может различаться в зависимости от конкретной SIEM-системы. При разработке правил важно ознакомиться с документацией конкретного продукта и учитывать его особенности.