j91321.auditbeat
ansible-role-auditbeat
Auditbeatでauditdを置き換えるためのAnsibleロールです。 bfuzzy1/auditd-attack から修正されたルールのバージョンが含まれています。
製品環境で使用する前に、ルールを適切にテストしてください。 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
は、 logstash
、elasticsearch
、またはredis
のいずれかの3つの値を取ります。これは、ansibleのhash_behaviour
がmerge
に設定されていると、ロールがログストリーム出力タイプを使用する際に誤って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-*で動作します。異なるインデックスパターンを使用する場合、適切なインデックスパターンとフィールド名で保存されたオブジェクトを修正する必要があります。
インストール手順:
- Kibana->管理->インデックスパターンに移動します。
- インデックスパターンの作成をクリックします。
- インデックスパターンフィールドに auditbeat- と書き、次のステップをクリックします。
- タイムフィルターフィールド名として @timestamp を選択します。
- 詳細オプションを表示をクリックします。
- カスタムインデックスパターンIDを auditbeat- に設定します。
- インデックスパターンを作成をクリックします。
次に、このリポジトリから保存された検索をインポートします:
- Kibana->管理->保存されたオブジェクトに移動します。
- インポートをクリックします。
- インポートしたい保存された検索のjsonファイルを選択します。
- インポートをクリックします。
- すべての保存された検索について繰り返します。
ライセンス
MIT
著者情報
j91321
ルール提供者: bfuzzy
注意
テストにはさらなる改善が必要です。より良いテストのため、beatsの問題#8280の解決を待っています。