ELK への警告のエクスポート
概要
Elasticsearch を使用すると、ユーザーは、Sophos Linux Sensor (SLS) から送信されたデータを JSON 形式でキャプチャできます。また Kibana を使用してユーザーは、SLS からのデータを視覚化する方法を選択できるため、ユーザーはニーズに基づいてインタラクティブなダッシュボードを構築できます。この ELK チュートリアルでは、コンテナ化されていない Linux 運用サーバーに導入された、SLS の簡単な導入シナリオを使用します。
この文章では、FileBeat (ログデータの転送と集中管理を行う軽量の配布ツール) を使用して、SLS から ELK Stack に警告を取り込む方法についても説明します。さらに、Web フックを使用して、SLS から ELK に警告データを送信することについても説明します。
要件
- Filebeat v7.0 (minimum version)
- ELK Stack (Elasticsearch, Logstash & Kibana)
- Sophos Linux Sensor
注
ここで説明する手順を実行する前に、使用中の環境でユーザーが SLS を実行することが非常に重要です。 詳細は、Sophos Linux Sensor のインストールを参照してください。
警告をログに記録するように SLS を設定する方法
ここでは、警告データが /var/log/sophos-alerts.json
というファイルにログされるように SLS を設定します。また、ユーザーが wget
プログラムを実行するたびに警告を生成する、簡単なプログラムブラックリストも設定します。
-
任意のテキストエディタを使用して、
/etc/sophos/runtimedetections-rules.yaml
を編集します。次の行を追加します。alert_output: outputs: - type: file enabled: true name: /var/log/sophos-alerts.json Wget Program Blacklist: policy: program enabled: true alertMessage: Unauthorized Program Execution priority: High rules: - match programName == "*/wget" - default ignore comments: Alert on usage of the wget command
-
SLS を再起動します。センサーの設定を変更した場合は、再起動することを推奨します。
sudo systemctl restart sophoslinuxsensor
Filebeat への SLS 警告のエクスポート
SLS が警告をログに記録する設定が完了したので、ユーザーは、警告を FileBeat にエクスポートすることができます。Elastic の FileBeat を使用して、ユーザーは、SLS から ELK Stack に警告を取り込むことができます。
-
次の行を
/etc/filebeat/filebeat.yml
に追加します。filebeat.inputs: - type: log paths: - /var/log/sophos-alerts.json json.keys_under_root: true json.add_error_key: true
これは警告を取り込むだけでなく、JSON データも解析するため、個々のトップレベル警告フィールドに簡単にインデックスを付けることができます。
-
FileBeat を再起動します。これで、サーバーで生成された警告はすべて、Elastic に表示されます。
-
テスト警告を作成します。
ソフォスのサンプルポリシーで警告を生成するには、サーバーで
wget
コマンドを実行します。Unauthorized Program Execution
に関する警告がユーザーに表示されるはずです。
SLS 警告の Elasticsearch への直接エクスポート
Elasticsearch API を使用してユーザーはデータを自動的に検索および取得できます。Elasticsearch を使用すると、ユーザーは SLS からのデータをほぼリアルタイムで保存、検索、解析できます。この文章では、ユーザーが既に Elasticsearch を実行していることを想定しています。
-
任意のテキストエディタを使用して、
/etc/sophos/runtimedetections-rules.yaml
を編集します。次の内容を追加します。alert_output: outputs: - type: webhook enabled: true url: http://elasticservice.customer.com:9200/sophos-alerts/documents headers: "Content-Type": "application/json" Wget Program Blacklist: policy: program enabled: true alertMessage: Unauthorized Program Execution priority: High rules: - match programName == "*/wget" - default ignore comments: Alert on usage of the wget command
これは警告を取り込むだけでなく、JSON データも解析するため、個々のトップレベル警告フィールドに簡単にインデックスを付けることができます。これで、サーバーで生成された警告はすべて、Elastic に表示されます。
-
テスト警告を作成します。
ソフォスのサンプルポリシーで警告を生成するには、センサーのサーバーで
wget
コマンドを実行します。Unauthorized Program Execution
に関する警告がユーザーに表示されるはずです。
Kibana での SLS 警告の視覚化
Kibana を使用すると、ユーザーは SLS からのログを視覚化できます。Kibana は、ユーザーが動作を検出・監視し、ダッシュボードを構築できる視覚的なインターフェースを提供します。これによって、SLS からの警告を理解し、解析するための可視性が提供されます。
この文章で説明した前の手順から、FileBeat や Elastisearch のいずれかからの警告データを使用または取り込むように Kibana が設定されていると想定すると、ユーザーはサーバー上で wget
が実行された際に、ソフォスのサンプルポリシーを使用して生成されたテスト警告を確認できます。
インデックスを作成していない場合は、次の手順を実行します。
- Kibana ダッシュボードで、「Settings > Elasticsearch > Index Management」に移動します。
sophos-alerts
というインデックスを作成します。- 次のページで、「Timestamp」を選択します (これは、設定によって異なります)。
sophos-alerts
インデックスが作成されたら、データを操作し、使用可能なフィールドのうち、組織で表示する内容を決定できます。またフィールドに、説明、系列、UUID、policy_type などを追加することも推奨します。