Руководство по внедрению PowerDMARC Elastic SIEM
Введение
Благодаря интеграции PowerDMARC с Elastic SIEM вы можете легко импортировать и отслеживать данные аутентификации электронной почты и аудита безопасности домена непосредственно в среде Elastic Stack. Используя API PowerDMARC и встроенный вход httpjson Elastic Agent, организации могут создать оптимизированную интеграцию SIEM без внешних скриптов или сложных настроек — просто настройте через веб-интерфейс Kibana, разверните и получите централизованный обзор состояния безопасности электронной почты во всех доменах.
В этом руководстве описана полная настройка: от установки Elastic Agent до настройки интеграции API, создания конвейеров поглощения для сопоставления полей и обогащения данных, а также создания панели мониторинга — все это выполняется через веб-интерфейс Kibana и консоль Dev Tools.
Документация API: https://app.powerdmarc.com/swagger-ui/index.html
Альтернативная документация: https://api.powerdmarc.com/
Обзор архитектуры
В этом примере мы используем конечную точку журнала аудита для тестирования и иллюстрации.
REST API PowerDMARC
↓
Elastic Agent (вход httpjson) — устанавливается на ваш хост
↓
Конвейер поглощения Elasticsearch (сопоставление ECS, GeoIP, дедупликация)
↓
Поток данных Elasticsearch (logs-powerdmarc.audit-*)
↓
Kibana (Discover, панели мониторинга, оповещения, правила обнаружения)
Elastic Agent работает на вашем хост-компьютере (Windows, Linux или macOS) и опрашивает API PowerDMARC с настраиваемым интервалом. Каждый ответ разделяется на отдельные события журнала аудита, обрабатывается через конвейер поглощения для нормализации и обогащения полей и хранится в потоке данных Elasticsearch. Kibana обеспечивает визуализацию и оповещения.
Предпосылки
Перед началом работы убедитесь, что у вас есть:
Развертывание Elastic Stack 8.x (Elastic Cloud или самостоятельное управление) с доступом к Kibana
Флот включен в вашем развертывании Elastic
Разрешение на создание конвейеров поступления данных, политик агентов и политик пакетов
Хост-машина (Windows, Linux или macOS) для установки Elastic Agent
Токен PowerDMARC API Bearer с разрешением на доступ к журналам аудита
Сетевое подключение от хоста к API PowerDMARC и вашему кластеру Elasticsearch
Шаги по настройке
Вся настройка выполняется через консоль Kibana Dev Tools. Она предоставляет единый интерфейс для создания конвейеров, управления политиками Fleet и проверки поступления данных.
Шаг 1: Откройте консоль Dev Tools
Откройте URL-адрес Kibana в браузере.
Нажмите на меню гамбургер (☰) в левом верхнем углу.
Прокрутите вниз до раздела «Управление» и нажмите «Инструменты разработчика».
Редактор консоли открывается с левой панелью (ввод) и правой панелью (ответ).
Удалите любой пример кода по умолчанию в левой панели.
Шаг 2. Создание конвейера поступления данных
Конвейер ввода данных нормализует необработанные поля API PowerDMARC в формат Elastic Common Schema (ECS), обогащает IP-адреса данными GeoIP и генерирует идентификатор документа на основе отпечатка пальца для дедупликации.
Вставьте и запустите следующее в Dev Tools:
PUT _ingest/pipeline/powerdmarc-audit-pipeline
{
«описание»: «Обработка журналов аудита PowerDMARC в полях ECS»,
«процессоры»: [
{
"json": {
«поле»: «сообщение»,
«target_field»: «powerdmarc»
}
},
{
"date": {
«поле»: «powerdmarc.created_at»,
«форматы»: [«yyyy-MM-dd HH:mm:ss»],
«target_field»: «@timestamp»
}
},
{
"rename": {
«поле»: «powerdmarc.user_name»,
«target_field»: «user.name»,
«ignore_missing»: true
}
},
{
"rename": {
«поле»: «powerdmarc.action»,
«target_field»: «event.action»,
«ignore_missing»: true
}
},
{
"rename": {
«поле»: «powerdmarc.ip_address»,
«target_field»: «source.ip»,
«ignore_missing»: true
}
},
{
"rename": {
«поле»: «powerdmarc.a_username»,
«target_field»: «user.target.name»,
«ignore_missing»: true
}
},
{
"rename": {
«поле»: «powerdmarc.other»,
«target_field»: «event.reason»,
«ignore_missing»: true
}
},
{ "set": { "field": "event.kind", "value": "event" } },
{ "set": { "field": "event.category", "value": "configuration" } },
{ "set": { "field": "observer.vendor", "value": "PowerDMARC" } },
{ "set": { "field": "observer.product", "value": "PowerDMARC" } },
{
"geoip": {
«поле»: «источник.ip»,
«target_field»: «source.geo»,
«ignore_missing»: true
}
},
{
"fingerprint": {
«поля»: [«user.name», «event.action»,
«source.ip», «@timestamp»],
«target_field»: «_id»,
«ignore_missing»: true
}
},
{
"remove": {
«поле»: [«powerdmarc», «message»],
«ignore_missing»: true
}
}
]
}
Ожидаемый ответ:
{ "acknowledged": true }
Шаг 3: Найдите идентификационный номер полиса вашего агента
Вам понадобится идентификатор политики агента, к которой будет привязана интеграция. Выполните:
GET kbn:/api/fleet/agent_policies
В ответе найдите нужную политику и скопируйте ее идентификатор. Если у вас есть несколько политик, используйте ту, которая назначена хосту, на котором работает Elastic Agent — как правило, это не политика Fleet Server.
Шаг 4: Создание интеграции httpjson
Это создает интеграцию httpjson, управляемую Fleet, которая опрашивает API PowerDMARC, обрабатывает аутентификацию, пагинацию и разделение ответов — все это настраивается с помощью одного вызова API.
Перед запуском замените два заполнителя:
YOUR_AGENT_POLICY_ID - идентификатор из шага 3
YOUR_POWERDMARC_API_KEY - ваш токен PowerDMARC API Bearer
POST kbn:/api/fleet/package_policies
{
«policy_ids»: [«YOUR_AGENT_POLICY_ID»],
"package": { "name": "httpjson", "version": "1.24.0" },
«name»: «powerdmarc-audit-logs»,
«описание»: «Интеграция REST API журналов аудита PowerDMARC»,
«пространство имен»: «по умолчанию»,
"inputs": {
"generic-httpjson": {
«enabled»: true,
"streams": {
"httpjson.generic": {
«enabled»: true,
"vars": {
«data_stream.dataset»: «powerdmarc.audit»,
«pipeline»: «powerdmarc-audit-pipeline»,
«request_url»: «https://app.powerdmarc.com/api/v1/audit-logs»,
«request_interval»: «60m»,
«request_method»: «GET»,
«request_transforms»: [
{
"set": {
«target»: «url.params.api_key»,
«значение»: «ВАШ_КЛЮЧ_API_ЗДЕСЬ»
}
}
],
«response_split»: «target: body.data»,
«response_pagination»: [
{
"set": {
«target»: «url.params.page»,
«значение»: «[[.last_response.body.current_page]]»,
«fail_on_template_error»: true
}
}
],
«request_redirect_headers_ban_list»: [],
«oauth_scopes»: [],
«теги»: [«переслано», «powerdmarc-audit»]
}
}
}
}
}
}
Ожидаемый ответ:
{
"item": {
"id": "<integration-id>",
«name»: «powerdmarc-audit-logs»,
...
}
}
Шаг 5. Установите Elastic Agent
Агент Elastic должен быть установлен на хост-машине, которая имеет сетевой доступ как к API PowerDMARC, так и к вашему кластеру Elasticsearch. Агент работает как служба и управляется удаленно через Fleet.
Вы можете скачать агент непосредственно с веб-сайта Elastics здесь
Шаг 6: Проверка ввода данных
После того как агент получит политику (обычно в течение 1–2 минут), первый запрос API должен произойти автоматически. Проверьте, что данные передаются:
6a. Проверить количество документов
В Dev Tools:
GET logs-powerdmarc.audit-*/_count
Значение больше 0 подтверждает, что данные поступают.
6b. Проверьте образец документа
GET logs-powerdmarc.audit-*/_search?size=1
Убедитесь, что документ содержит правильно проанализированные поля ECS:
user.name — имя пользователя, выполнившего действие
event.action — описание предпринятых действий
источник.ip — исходный IP-адрес
source.geo.* — GeoIP-обогащение (страна, город, координаты)
@timestamp — проанализированная метка времени события
6c. Проверить в Discover
Перейдите в раздел «Аналитика» → «Обзор».
Щелкните раскрывающийся список представлений данных и выберите или создайте представление данных для logs-powerdmarc.audit-*.
Установите временной диапазон «Последние 30 дней».
События журнала аудита должны отображаться со всеми сопоставленными полями.
Шаг 7: Создание представления данных Kibana
Создайте специальный вид данных, чтобы данные аудита PowerDMARC отображались в Discover и могли использоваться в визуализациях панели инструментов.
Запустить в Dev Tools:
POST kbn:/api/data_views/data_view
{
"data_view": {
«title»: «logs-powerdmarc.audit-*»,
«name»: «Журналы аудита PowerDMARC»,
«timeFieldName»: «@timestamp»
}
}
Запомните возвращенное значение id — оно понадобится, если вы захотите создать панели информационной панели программным способом.
Шаг 8: Создание панели инструментов
Вы можете скачать файл dashboard.txt, прикрепленный в конце этого руководства, и запустить его с помощью Dev Tools, чтобы автоматически создать панель инструментов.
Следующие шаги
На этом этапе журналы аудита PowerDMARC успешно импортированы в Elastic. Теперь вы можете:
Создайте правила обнаружения подозрительной активности (например, входы в систему с неожиданных IP-адресов или из стран, неудачные попытки входа в систему, массовые изменения конфигурации).
Настройте оповещения с помощью встроенной системы оповещений Elastic или коннекторов для электронной почты, Slack и т. д.
Сопоставьте данные аудита PowerDMARC с другими журналами безопасности в вашей системе SIEM для комплексного обнаружения угроз.
Расширьте интеграцию на дополнительные конечные точки API PowerDMARC (агрегированные отчеты DMARC, криминалистические отчеты)
Создавайте отчеты о соответствии с помощью функций отчетности Kibana.