j91321.auditbeat

ansible-role-auditbeat

Licencia de GitHub Último commit en GitHub Build Twitter

Un rol de Ansible que reemplaza auditd con Auditbeat. Incluye una versión modificada de las reglas de bfuzzy1/auditd-attack.

Mapa del marco MITRE ATT&CK

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:

  1. Ve a Kibana->Gestión->Patrones de Índice
  2. Haz clic en Crear patrón de índice
  3. En el campo Patrón de índice, escribe auditbeat- y haz clic en Siguiente paso
  4. Selecciona @timestamp como Nombre del campo de filtro de tiempo
  5. Haz clic en Mostrar opciones avanzadas
  6. Configura el ID del patrón de índice personalizado a auditbeat-
  7. Haz clic en Crear patrón de índice

Luego importa las búsquedas guardadas de este repositorio:

  1. Ve a Kibana->Gestión->Objetos guardados
  2. Haz clic en Importar
  3. Selecciona el archivo json de búsqueda guardada que deseas importar
  4. Haz clic en Importar
  5. 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.

Acerca del proyecto

Install Auditbeat for security monitoring, supplied ruleset.

Instalar
ansible-galaxy install j91321.auditbeat
Licencia
mit
Descargas
299
Propietario