j91321.auditbeat

ansible-role-auditbeat

GitHubライセンス GitHub最終コミット ビルド Twitter

Auditbeatでauditdを置き換えるためのAnsibleロールです。 bfuzzy1/auditd-attack から修正されたルールのバージョンが含まれています。

MITRE ATT&CKフレームワークのマッピング

製品環境で使用する前に、ルールを適切にテストしてください。 Some rules may impact performance depending on your setup. Auditbeatに関する詳細は公式のドキュメントをご覧ください。

サポートされているプラットフォーム:

  • 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はOracle Enterprise Linuxでも動作しますが、RHCKのみ対応です。

* Windows上のAuditbeatは異なる機能セットをサポートしています。似た機能を実現したい場合は、Sysmon + Winlogbeatを使用してください。

** GentooでAuditbeatを実行するには、独自のebuildを作成する必要があります。 systemメトリックセットを使用したい場合は、Elasticライセンスのx-packフォルダを持つAuditbeatをビルドする必要があります。ソケットを使用したい場合は、カーネルのメニュー設定でKprobeを有効にする必要があります。

DockerコンテナからAuditbeatを実行したい場合は、Elasticが提供する公式のDocker イメージを使用してください。

要件

なし

ロール変数

defaults/main.ymlのAnsible変数

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

auditbeat_service.install_rulesは、含まれているルールを使用したくない場合、falseに変更できます。

変数auditbeat_service.downloadは、Windowsインストールのみに影響します。 Windowsのzipパッケージをウェブからダウンロードさせたくない場合は、falseに設定し、files/フォルダにWindows zipを配置してください。 zipファイルの名前はfiles/auditbeat-7.6.2-windows-x86.zipのように保持してください。

セキュリティが無効なElasticsearchへの出力構成を指定します。

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"

セキュリティが有効なElasticsearchへの出力構成を指定します。サーバーには証明書の信頼性を示すものが必要です。

変数auditbeat_output.typeは、 logstashelasticsearch、またはredisのいずれかの3つの値を取ります。これは、ansibleのhash_behaviourmergeに設定されていると、ロールがログストリーム出力タイプを使用する際に誤ってelasticsearchとlogstashの出力を両方インストールするためです。

Redis出力の例:

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

プロセッサを使用して高ボリュームのログをフィルタリングする例

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"

vars/main.ymlのAnsible変数

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

これらの変数はAuditbeatのデフォルトであり、一般的な使用ケースに適しています。

依存関係

なし

例のプレイブック

- name: 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フォルダには、Sigma auditdルールに基づくいくつかの準備されたKibanaの保存された検索が含まれています。 これらの保存された検索は、デフォルトのインデックスパターンであるauditbeat-*で動作します。異なるインデックスパターンを使用する場合、適切なインデックスパターンとフィールド名で保存されたオブジェクトを修正する必要があります。

インストール手順:

  1. Kibana->管理->インデックスパターンに移動します。
  2. インデックスパターンの作成をクリックします。
  3. インデックスパターンフィールドauditbeat- と書き、次のステップをクリックします。
  4. タイムフィルターフィールド名として @timestamp を選択します。
  5. 詳細オプションを表示をクリックします。
  6. カスタムインデックスパターンIDを auditbeat- に設定します。
  7. インデックスパターンを作成をクリックします。

次に、このリポジトリから保存された検索をインポートします:

  1. Kibana->管理->保存されたオブジェクトに移動します。
  2. インポートをクリックします。
  3. インポートしたい保存された検索のjsonファイルを選択します。
  4. インポートをクリックします。
  5. すべての保存された検索について繰り返します。

ライセンス

MIT

著者情報

j91321

ルール提供者: bfuzzy

注意

テストにはさらなる改善が必要です。より良いテストのため、beatsの問題#8280の解決を待っています。

プロジェクトについて

Install Auditbeat for security monitoring, supplied ruleset.

インストール
ansible-galaxy install j91321.auditbeat
ライセンス
mit
ダウンロード
299