auditbeat
ansible-role-auditbeat
Роль Ansible, которая заменяет auditd на Auditbeat. Включает модифицированную версию правил из bfuzzy1/auditd-attack.
Пожалуйста, протестируйте правила должным образом перед использованием в производственной среде. Некоторые правила могут негативно влиять на производительность в зависимости от вашей конфигурации. Для получения дополнительной информации об Auditbeat посетите официальную документацию
Поддерживаемые платформы:
- Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- CentOS 8
- CentOS 7
- CentOS 6
- Debian 10
- Debian 9
- Debian 8
- Gentoo **
- Windows 10*
- Windows Server 2019*
- Windows Server 2016*
Auditbeat также должен работать на Oracle Enterprise Linux, но только с RHCK.
* Auditbeat на Windows поддерживает другой набор функций. Если вы хотите достичь аналогичной функциональности, используйте Sysmon + Winlogbeat.
** Если вы хотите запустить Auditbeat на Gentoo, вам нужно будет создать свой собственный ebuild. Если вы хотите использовать system
metrics, вам нужно будет собрать Auditbeat с папкой x-pack с лицензией Elastic. Если вы хотите использовать Sockets, вам нужно будет включить Kprobe в конфигурации вашего ядра.
Если вы хотите запустить Auditbeat из контейнера Docker, используйте официальный docker образ, который предоставляет Elastic.
Требования
Нет
Переменные роли
Переменные Ansible из defaults/main.yml
auditbeat_service:
install_path_windows64: "C:\\Program Files\\Elastic\\auditbeat"
install_path_windows32: "C:\\Program Files\\Elastic\\auditbeat"
version: "7.13.1"
download: true
config_path: /etc/auditbeat
install_rules: true
rule_file: auditd-attack.conf
auditbeat_output:
type: "elasticsearch"
elasticsearch:
hosts:
- "localhost:9200"
security:
enabled: false
auditbeat_processors: |
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_docker_metadata: ~
auditbeat_portage:
package: =auditbeat-{{ auditbeat_service.version }}
getbinpkg: no
Переменную auditbeat_service.install_rules
можно установить в false, если вы не хотите использовать включенные правила.
Переменная auditbeat_service.download
влияет только на установки Windows. Если вы не хотите, чтобы клиенты загружали zip-пакет Windows с веба, вы можете установить ее в false
и поместить zip-файл Windows в папку files/
. Пожалуйста, сохраните имя zip-файла, например, files/auditbeat-7.6.2-windows-x86.zip
.
Указывает конфигурацию вывода в Elasticsearch без включенной безопасности.
auditbeat_output:
type: elasticsearch
elasticsearch:
hosts:
- "localhost:9200"
security:
enabled: true
username: auditbeat_writer
password: pa$$word
protocol: https
ssl_verification_mode: certificate
ssl_certificate_authorities:
- "/etc/ca/my_ca.crt"
Указывает конфигурацию вывода в Elasticsearch с включенной безопасностью; сертификат удостоверяющего центра должен быть присутствовать на сервере.
Переменная auditbeat_output.type
может принимать три значения: logstash
, elasticsearch
или redis
. Это связано с тем, что если вы установили hash_behaviour
Ansible в значение merge
, роль установит и вывода для elasticsearch, и logstash, если используется тип вывода logstash, что неправильно.
Пример вывода Redis:
auditbeat_output:
type: redis
redis:
hosts:
- 192.168.100.4
password: "redis_password"
key: "auditbeat"
Пример отфильтровки логов с высокой нагрузкой с помощью процессоров:
auditbeat_processors: |
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_docker_metadata: ~
- drop_event.when.and:
- equals.event.action: "network_flow"
- equals.server.port: 10050
- equals.process.name: "zabbix_agentd"
Переменные Ansible из vars/main.yml
:
auditbeat_module:
auditd:
enabled: true
file_integrity:
enabled: true
paths:
- /bin
- /usr/bin
- /sbin
- /usr/sbin
- /etc
system:
enabled: true
datasets:
- host
- login
- package
- process
- socket
- user
auditbeat_module_windows:
file_integrity:
enabled: true
paths:
- C:\windows
- C:\windows\system32
- C:\Program Files
- C:\Program Files (x86)
system:
enabled: true
datasets:
- host
- process
Эти переменные являются значениями по умолчанию для Auditbeat и подходят для большинства распространенных случаев.
Зависимости
Нет
Пример Playbook
- name: Установить auditbeat
hosts:
- linux
- windows
become: yes
vars:
auditbeat_service:
install_path_windows32: "C:\\Program Files\\monitoring\\auditbeat"
install_path_windows64: "C:\\Program Files\\monitoring\\auditbeat"
version: "7.13.1"
download: true
install_rules: true
rule_file: auditd-attack.conf
auditbeat_template:
enabled: false
auditbeat_general:
tags:
- "auditbeat"
auditbeat_output:
type: "elasticsearch"
elasticsearch:
hosts:
- "172.16.0.11:9200"
- "172.16.0.12:9200"
- "172.16.0.13:9200"
security:
enabled: true
username: auditbeat
password: auditbeatpassword
protocol: http
roles:
- ansible-role-auditbeat
Дополнения
В папке extras вы можете найти несколько подготовленных поисковых запросов для Kibana на основе правил Sigma auditd. Эти сохраненные поисковые запросы будут работать с шаблоном индекса по умолчанию auditbeat-*. Если вы используете другой шаблон индекса, вам нужно будет изменить сохраненные объекты в соответствии с нужным шаблоном индекса и именами полей.
Шаги установки:
- Перейдите в Kibana->Управление->Шаблоны индексов
- Нажмите Создать шаблон индекса
- В поле Шаблон индекса введите auditbeat-* и нажмите Следующий шаг
- Выберите @timestamp как Имя поля фильтра времени
- Нажмите Показать расширенные параметры
- Установите Идентификатор пользовательского шаблона индекса на auditbeat-*
- Нажмите Создать шаблон индекса
Затем импортируйте сохраненные поисковые запросы из этого репозитория:
- Перейдите в Kibana->Управление->Сохраненные объекты
- Нажмите Импорт
- Выберите файл json сохраненного запроса, который вы хотите импортировать
- Нажмите Импорт
- Повторите для всех сохраненных поисковых запросов
Лицензия
MIT
Информация об авторе
j91321
Правила от: bfuzzy
Примечания
Тесты требуют дальнейших улучшений. Ожидаем, что проблема beats #8280 будет решена для улучшения тестов.
Install Auditbeat for security monitoring, supplied ruleset.
ansible-galaxy install j91321/ansible-role-auditbeat