j91321.auditbeat

ansible-role-auditbeat

Licence GitHub Dernier commit GitHub Build Twitter

Un rôle Ansible qui remplace auditd par Auditbeat. Version modifiée des règles provenant de bfuzzy1/auditd-attack.

Mapping du cadre MITRE ATT&CK

Veuillez tester les règles correctement avant de les utiliser en production. Certaines règles peuvent affecter les performances selon votre configuration. Pour plus d'informations sur Auditbeat, veuillez consulter la documentation officielle.

Plateformes prises en charge :

  • 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 devrait également fonctionner sur Oracle Enterprise Linux mais uniquement avec RHCK.

* Auditbeat sur Windows prend en charge un ensemble de fonctionnalités différent. Si vous souhaitez obtenir une fonctionnalité similaire, utilisez Sysmon + Winlogbeat.

** Si vous souhaitez exécuter Auditbeat sur Gentoo, vous devrez créer votre propre ebuild. Si vous voulez utiliser le métrique system, vous devrez construire Auditbeat avec le dossier x-pack avec la licence Elastic. Si vous voulez utiliser les Sockets, le Kprobe doit être activé dans le menu de configuration de votre noyau.

Si vous souhaitez exécuter Auditbeat à partir d'un conteneur Docker, utilisez l'image officielle fournie par Elastic.

Exigences

Aucune

Variables de rôle

Variables Ansible dans 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 peut être modifiée à false si vous ne souhaitez pas utiliser les règles incluses.

La variable auditbeat_service.download affecte uniquement les installations Windows. Si vous ne souhaitez pas que les clients téléchargent le package zip Windows depuis Internet, vous pouvez la définir sur false et placer le zip Windows dans le dossier files/. Veuillez conserver le nom du fichier zip, par exemple files/auditbeat-7.6.2-windows-x86.zip.

Spécifie la configuration de sortie vers Elasticsearch sans sécurité activée.

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"

Spécifie la configuration de sortie vers Elasticsearch avec sécurité activée, l'autorité de certification doit être présente sur le serveur.

La variable auditbeat_output.type prend trois valeurs : logstash, elasticsearch ou redis. Cela est dû au fait que si vous avez le hash_behaviour d'ansible réglé sur merge, le rôle installerait à la fois les sorties elasticsearch et logstash lors de l'utilisation du type de sortie logstash, ce qui est incorrect.

Exemple de sortie Redis :

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

Exemple de filtrage des journaux à volume élevé en utilisant des processeurs.

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 Ansible dans 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

Ces variables sont les valeurs par défaut d'auditbeat et conviennent à la plupart des cas d'utilisation courants.

Dépendances

Aucune

Exemple de Playbook

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

Dans le dossier extras, vous pouvez trouver plusieurs recherches enregistrées Kibana préparées basées sur les règles Sigma auditd. Ces recherches enregistrées fonctionneront avec le modèle d'index par défaut auditbeat-*. Si vous utilisez un modèle d'index différent, vous devez modifier les objets sauvegardés avec le modèle d'index approprié et les noms de champs.

Étapes d'installation :

  1. Allez à Kibana->Gestion->Modèles d'index
  2. Cliquez sur Créer un modèle d'index
  3. Dans le champ Modèle d'index, écrivez auditbeat- et cliquez sur Étape suivante
  4. Sélectionnez @timestamp comme Nom du champ de filtre de temps
  5. Cliquez sur Afficher les options avancées
  6. Définissez l'ID Modèle d'index personnalisé sur auditbeat-
  7. Cliquez sur Créer un modèle d'index

Ensuite, importez les recherches enregistrées de ce dépôt :

  1. Allez à Kibana->Gestion->Objets enregistrés
  2. Cliquez sur Importer
  3. Sélectionnez le fichier json de recherche enregistrée que vous souhaitez importer
  4. Cliquez sur Importer
  5. Répétez pour toutes les recherches enregistrées

Licence

MIT

Informations sur l'auteur

j91321

Règles par : bfuzzy

Remarques

Les tests nécessitent encore quelques améliorations. En attente de la résolution du problème des beats #8280 pour de meilleurs tests.

À propos du projet

Install Auditbeat for security monitoring, supplied ruleset.

Installer
ansible-galaxy install j91321.auditbeat
Licence
mit
Téléchargements
299
Propriétaire