auditbeat

ansible-role-auditbeat

Лицензия GitHub Последний коммит GitHub Сборка Twitter

Роль Ansible, которая заменяет auditd на Auditbeat. Включает модифицированную версию правил из bfuzzy1/auditd-attack.

Сопоставление с фреймворком MITRE ATT&CK

Пожалуйста, протестируйте правила должным образом перед использованием в производственной среде. Некоторые правила могут негативно влиять на производительность в зависимости от вашей конфигурации. Для получения дополнительной информации об 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-*. Если вы используете другой шаблон индекса, вам нужно будет изменить сохраненные объекты в соответствии с нужным шаблоном индекса и именами полей.

Шаги установки:

  1. Перейдите в Kibana->Управление->Шаблоны индексов
  2. Нажмите Создать шаблон индекса
  3. В поле Шаблон индекса введите auditbeat-* и нажмите Следующий шаг
  4. Выберите @timestamp как Имя поля фильтра времени
  5. Нажмите Показать расширенные параметры
  6. Установите Идентификатор пользовательского шаблона индекса на auditbeat-*
  7. Нажмите Создать шаблон индекса

Затем импортируйте сохраненные поисковые запросы из этого репозитория:

  1. Перейдите в Kibana->Управление->Сохраненные объекты
  2. Нажмите Импорт
  3. Выберите файл json сохраненного запроса, который вы хотите импортировать
  4. Нажмите Импорт
  5. Повторите для всех сохраненных поисковых запросов

Лицензия

MIT

Информация об авторе

j91321

Правила от: bfuzzy

Примечания

Тесты требуют дальнейших улучшений. Ожидаем, что проблема beats #8280 будет решена для улучшения тестов.

О проекте

Install Auditbeat for security monitoring, supplied ruleset.

Установить
ansible-galaxy install j91321/ansible-role-auditbeat
Лицензия
mit
Загрузки
281
Владелец