j91321.auditbeat

ansible-role-auditbeat

Licencja GitHub Ostatnie zmiany na GitHubie Build Twitter

Rola Ansible, która zastępuje auditd Auditbeat. Zawiera zmodyfikowaną wersję zasad z bfuzzy1/auditd-attack.

Mapowanie na ramy MITRE ATT&CK

Proszę dokładnie przetestować zasady przed użyciem ich w środowisku produkcyjnym. Niektóre zasady mogą wpłynąć na wydajność w zależności od twojej konfiguracji. Więcej informacji na temat Auditbeat można znaleźć w oficjalnej dokumentacji.

Obsługiwane platformy:

  • 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 powinien również działać na Oracle Enterprise Linux, ale tylko z RHCK.

* Auditbeat na Windows obsługuje inny zestaw funkcji. Jeśli chcesz uzyskać podobną funkcjonalność, użyj Sysmon + Winlogbeat.

** Jeśli chcesz uruchomić Auditbeat na Gentoo, musisz stworzyć swoje własne ebuild, a jeśli chcesz użyć metricset system, musisz zbudować Auditbeat z folderem x-pack z licencją Elastic. Jeśli chcesz używać Sockets, musisz włączyć Kprobe w menu konfiguracyjnym jądra.

Jeśli chcesz uruchomić Auditbeat z kontenera Docker, użyj oficjalnego obrazu Docker obraz udostępnionego przez Elastic.

Wymagania

Brak

Zmienne roli

Zmienne Ansible z 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

Zmienna auditbeat_service.install_rules może być ustawiona na false, jeśli nie chcesz używać wbudowanych zasad.

Zmienna auditbeat_service.download dotyczy tylko instalacji Windows. Jeśli nie chcesz, aby klienci pobierali paczkę zip Windows z internetu, możesz ustawić ją na false i umieścić paczkę zip Windows w folderze files/. Zrób to zachowując nazwę pliku zip, np. files/auditbeat-7.6.2-windows-x86.zip.

Specyfikuje konfigurację wyjściową do Elasticsearch bez włączonego bezpieczeństwa.

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"

Specyfikuje konfigurację wyjściową do Elasticsearch z włączonym bezpieczeństwem, autorytet certyfikacji musi być obecny na serwerze.

Zmienna auditbeat_output.type przyjmuje trzy wartości: logstash, elasticsearch lub redis. Dzieje się to dlatego, że jeśli masz ustawione hash_behaviour na merge, rola zainstaluje zarówno wyjścia elasticsearch, jak i logstash, co jest niepoprawne.

Przykład wyjścia Redis:

auditbeat_output:
  type: redis
  redis:
    hosts:
      - 192.168.100.4
    password: "redis_password"
    key: "auditbeat"

Przykład filtrowania logów o wysokim wolumenie przy użyciu przetworników

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"

Zmienne Ansible z 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

Te zmienne to domyślne ustawienia Auditbeat i pasują do najczęstszych zastosowań.

Zależności

Brak

Przykładowy playbook

- name: Zainstaluj 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

Dodatki

W folderze dodatków znajdują się różne przygotowane zapytania Kibana oparte na regułach Sigma auditd. Te zapisane zapytania będą działać z domyślnym wzorcem indeksu auditbeat-*. Jeśli używasz innego wzorca indeksu, musisz zmodyfikować zapisane obiekty, aby odpowiadały odpowiedniemu wzorcowi indeksu i nazwom pól.

Kroki instalacji:

  1. Przejdź do Kibana->Zarządzanie->Wzorce indeksów
  2. Kliknij Utwórz wzorzec indeksu
  3. W polu Wzór indeksu wpisz auditbeat- i kliknij Następny krok
  4. Wybierz @timestamp jako Nazwa pola filtru czasu
  5. Kliknij Pokaż opcje zaawansowane
  6. Ustaw ID niestandardowego wzorca indeksu na auditbeat-
  7. Kliknij Utwórz wzorzec indeksu

Następnie zaimportuj zapisane zapytania z tego repozytorium:

  1. Przejdź do Kibana->Zarządzanie->Zapisane obiekty
  2. Kliknij Importuj
  3. Wybierz plik json zapisane zapytanie, które chcesz zaimportować
  4. Kliknij Importuj
  5. Powtórz dla wszystkich zapisanych zapytań

Licencja

MIT

Informacje o autorze

j91321

Reguły według: bfuzzy

Uwagi

Testy wymagają pewnych dalszych ulepszeń. Czekamy na rozwiązanie problemu beats #8280 dla lepszych testów.

O projekcie

Install Auditbeat for security monitoring, supplied ruleset.

Zainstaluj
ansible-galaxy install j91321.auditbeat
Licencja
mit
Pobrania
299
Właściciel