
Шаблоны Elastic Common Schema для Corelight или Zeek
Этот репозиторий содержит всё необходимое для преобразования логов Corelight или Zeek в стандарт именования Elastic Common Schema (ECS) и их хранения в развертывании Elastic Stack. Впервые выпущенный в 2019 году, в тот же год, что и Elastic Common Schema, этот репозиторий по-прежнему активно поддерживается и обновляется.
Он поддерживает более 200 различных логов и метрик и разработан таким образом, чтобы поддерживать все среды, позволяя одновременно настраивать необходимые и желаемые параметры под каждую уникальную среду.
Были приложены значительные усилия для обеспечения поддержки во всех средах, а также предоставления возможности настройки необходимых и желаемых параметров для каждого уникального и конкретного развертывания.
Репозиторий в основном состоит из двух частей:
Файлы и скрипт автоматизации являются открытыми и распространяются под лицензией BSD. Подробности см. в COPYING.
Пожалуйста, прочитайте все разделы перед запуском скрипта.
corelight_ecs.py из этого репозитория. Ручная установка шаблонов и конвейеров не поддерживается, поскольку в файлах содержатся сотни переменных, которые заменяются скриптом.Настройка параметров индексов (Index Settings), маппингов (Mappings), алиасов (Aliases) и политик ILM приветствуется. Поэтому скрипт разработан с поддержкой многих типов настроек (подробнее ниже).
Многие настройки не понадобятся, но лучше иметь такую возможность, чем не иметь. Всегда рекомендуется использовать собственное количество шардов/реплик и собственную политику ILM, но помимо этого вам вряд ли потребуется настраивать что-то ещё. Однако если вы обычно настраиваете множество элементов в шаблонах индексов, конвейерах ingest и конвейерах logstash во всех своих развертываниях, у вас по-прежнему будет такая возможность.
Подробнее см. в соответствующих разделах ниже.
Скрипт спросит вас, хотите ли вы выбрать пользовательские имена/паттерны индексов для ваших потоков данных. Это позволяет выбрать собственное соглашение об именовании индексов. Например, вы можете выбрать:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Затем он также обновит все необходимые шаблоны индексов, если вы выбрали конвейеры ingest или конвейеры logstash.
Менять значения по умолчанию не рекомендуется, поскольку логи Corelight теперь настроены на работу со всеми другими типами данных ECS и могут использоваться в представлении данных Kibana, таком как logs-*
Для мультитенантных сред, таких как MSSP/CSSP или разные сети, вы можете не только выбрать часть организации в потоке данных при ответах на запросы скрипта (это часть default в 3 примерах выше), но и, если вы зададите data_stream.namespace в filebeat или каким-либо другим способом, или подключите конвейеры, то конвейеры настроены так, чтобы не переопределять эту переменную, если она уже задана. Просто убедитесь, что ваш namespace имеет значение, которое Elasticsearch допускает для имени индекса (распространённая ошибка, которую иногда не так просто заметить).
Используемые паттерны индексов и значения по умолчанию для каждого лога можно увидеть в Google Sheet. Там также перечислены дополнительные сведения, такие как event.category, event.kind и т. д. для каждого лога.
Каждый шаблон индекса настроен на вызов компонентного шаблона, который вы можете использовать для переопределения параметров индекса. Поэтому для использования собственных параметров индекса вам не нужно изменять шаблоны индексов из репозитория.
Создайте следующие компонентные шаблоны или измените их после установки. Имена компонентных шаблонов, которые можно изменять:
для покрытия всех логов (разделены на 5 категорий):
corelight-ecs-component-metric_log-base-settings@customcorelight-ecs-component-parse_failures-base-settings@customcorelight-ecs-component-protocol_log-base-settings@customcorelight-ecs-component-system_log-base-settings@customcorelight-ecs-component-unknown_log-base-settings@customдля покрытия отдельных логов, помимо перечисленных выше, которым обычно требуются свои собственные, ещё более специфичные настройки:
corelight-ecs-component-protocol_log-conn-base-settings@customcorelight-ecs-component-protocol_log-dns-base-settings@customcorelight-ecs-component-protocol_log-files-base-settings@customcorelight-ecs-component-protocol_log-http-base-settings@customcorelight-ecs-component-protocol_log-smb-base-settings@customcorelight-ecs-component-protocol_log-smtp-base-settings@customcorelight-ecs-component-protocol_log-ssl-base-settings@customcorelight-ecs-component-protocol_log-suricata_corelight-base-settings@customcorelight-ecs-component-protocol_log-syslog-base-settings@customcorelight-ecs-component-protocol_log-various-base-settings@customcorelight-ecs-component-protocol_log-weird-base-settings@customcorelight-ecs-component-protocol_log-x509-base-settings@customКаждый шаблон индекса настроен на вызов компонентного шаблона, который вы можете использовать для переопределения маппингов индекса, например типов или имён полей. Поэтому для использования собственных маппингов индекса вам не нужно изменять шаблоны индексов из репозитория.