j91321.auditbeat
ansible-role-auditbeat
Un rol de Ansible que reemplaza auditd con Auditbeat. Incluye una versión modificada de las reglas de bfuzzy1/auditd-attack.
Por favor, prueba las reglas adecuadamente antes de usarlas en producción. Algunas reglas pueden afectar el rendimiento dependiendo de tu configuración. Para más información sobre Auditbeat, visita la documentación oficial.
Plataformas soportadas:
- 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 también debería funcionar en Oracle Enterprise Linux, pero solo con RHCK.
* Auditbeat en Windows soporta un conjunto diferente de características. Si deseas lograr una funcionalidad similar, usa Sysmon + Winlogbeat.
** Si deseas ejecutar Auditbeat en Gentoo, necesitarás crear tu propio ebuild. Si quieres usar el metricset system
, debes construir Auditbeat con la carpeta x-pack con la licencia de elastic. Si quieres usar Sockets, necesitarás habilitar Kprobe en la configuración del menú de tu núcleo.
Si deseas ejecutar Auditbeat desde un contenedor de Docker, usa la imagen oficial proporcionada por Elastic.
Requisitos
Ninguno
Variables del Rol
Variables de Ansible de 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
La variable auditbeat_service.install_rules
puede cambiarse a false si no deseas usar las reglas incluidas.
La variable auditbeat_service.download
solo afecta a las instalaciones de Windows. Si no quieres que los clientes descarguen el paquete zip de Windows de la web, puedes establecerlo en false
y colocar el zip de Windows en la carpeta files/
. Por favor, conserva el nombre del archivo zip, por ejemplo, files/auditbeat-7.6.2-windows-x86.zip
.
Especifica la configuración de salida para Elasticsearch sin seguridad habilitada.
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"
Especifica la configuración de salida para Elasticsearch con la seguridad habilitada; la autoridad de certificación debe estar presente en el servidor.
La variable auditbeat_output.type
acepta tres valores: logstash
, elasticsearch
o redis
. Esto es porque si tienes hash_behaviour
de Ansible configurado como merge
, el rol instalaría tanto salidas de elasticsearch como de logstash al usar el tipo de salida de logstash, lo cual es incorrecto.
Ejemplo de salida de Redis:
auditbeat_output:
type: redis
redis:
hosts:
- 192.168.100.4
password: "redis_password"
key: "auditbeat"
Ejemplo de filtrado de registros de alto volumen usando procesadores
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"
Variables de Ansible de 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
Estas variables son los valores predeterminados de Auditbeat y se ajustan a la mayoría de los casos de uso comunes.
Dependencias
Ninguna
Ejemplo de Playbook
- name: Instalar 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
En la carpeta extras puedes encontrar varias búsquedas guardadas de Kibana basadas en las reglas de auditd de Sigma. Estas búsquedas guardadas funcionarán con el patrón de índice predeterminado auditbeat-*. Si usas un patrón de índice diferente, debes modificar los objetos guardados con el patrón y los nombres de campo apropiados.
Pasos de instalación:
- Ve a Kibana->Gestión->Patrones de Índice
- Haz clic en Crear patrón de índice
- En el campo Patrón de índice, escribe auditbeat- y haz clic en Siguiente paso
- Selecciona @timestamp como Nombre del campo de filtro de tiempo
- Haz clic en Mostrar opciones avanzadas
- Configura el ID del patrón de índice personalizado a auditbeat-
- Haz clic en Crear patrón de índice
Luego importa las búsquedas guardadas de este repositorio:
- Ve a Kibana->Gestión->Objetos guardados
- Haz clic en Importar
- Selecciona el archivo json de búsqueda guardada que deseas importar
- Haz clic en Importar
- Repite para todas las búsquedas guardadas
Licencia
MIT
Información del Autor
j91321
Reglas por: bfuzzy
Notas
Las pruebas requieren algunas mejoras adicionales. Se está a la espera de que se resuelva el problema de beats #8280 para obtener mejores pruebas.
Install Auditbeat for security monitoring, supplied ruleset.
ansible-galaxy install j91321.auditbeat