j91321.auditbeat
ansible-role-auditbeat
Rola Ansible, która zastępuje auditd Auditbeat. Zawiera zmodyfikowaną wersję zasad z bfuzzy1/auditd-attack.
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:
- Przejdź do Kibana->Zarządzanie->Wzorce indeksów
- Kliknij Utwórz wzorzec indeksu
- W polu Wzór indeksu wpisz auditbeat- i kliknij Następny krok
- Wybierz @timestamp jako Nazwa pola filtru czasu
- Kliknij Pokaż opcje zaawansowane
- Ustaw ID niestandardowego wzorca indeksu na auditbeat-
- Kliknij Utwórz wzorzec indeksu
Następnie zaimportuj zapisane zapytania z tego repozytorium:
- Przejdź do Kibana->Zarządzanie->Zapisane obiekty
- Kliknij Importuj
- Wybierz plik json zapisane zapytanie, które chcesz zaimportować
- Kliknij Importuj
- 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.
Install Auditbeat for security monitoring, supplied ruleset.
ansible-galaxy install j91321.auditbeat