コンテンツにスキップ

ELK への警告のエクスポート

概要

Elasticsearch を使用すると、ユーザーは、Sophos Linux Sensor (SLS) から送信されたデータを JSON 形式でキャプチャできます。また Kibana を使用してユーザーは、SLS からのデータを視覚化する方法を選択できるため、ユーザーはニーズに基づいてインタラクティブなダッシュボードを構築できます。この ELK チュートリアルでは、コンテナ化されていない Linux 運用サーバーに導入された、SLS の簡単な導入シナリオを使用します。

この文章では、FileBeat (ログデータの転送と集中管理を行う軽量の配布ツール) を使用して、SLS から ELK Stack に警告を取り込む方法についても説明します。さらに、Web フックを使用して、SLS から ELK に警告データを送信することについても説明します。

要件

ここで説明する手順を実行する前に、使用中の環境でユーザーが SLS を実行することが非常に重要です。  詳細は、Sophos Linux Sensor のインストールを参照してください。

警告をログに記録するように SLS を設定する方法

ここでは、警告データが /var/log/sophos-alerts.json というファイルにログされるように SLS を設定します。また、ユーザーが wget プログラムを実行するたびに警告を生成する、簡単なプログラムブラックリストも設定します。

  1. 任意のテキストエディタを使用して、/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
    
  2. SLS を再起動します。センサーの設定を変更した場合は、再起動することを推奨します。

    sudo systemctl restart sophoslinuxsensor
    

Filebeat への SLS 警告のエクスポート

SLS が警告をログに記録する設定が完了したので、ユーザーは、警告を FileBeat にエクスポートすることができます。Elastic の FileBeat を使用して、ユーザーは、SLS から ELK Stack に警告を取り込むことができます。

  1. 次の行を /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 データも解析するため、個々のトップレベル警告フィールドに簡単にインデックスを付けることができます。

  2. FileBeat を再起動します。これで、サーバーで生成された警告はすべて、Elastic に表示されます。

  3. テスト警告を作成します。

    ソフォスのサンプルポリシーで警告を生成するには、サーバーで wget コマンドを実行します。Unauthorized Program Execution に関する警告がユーザーに表示されるはずです。

SLS 警告の Elasticsearch への直接エクスポート

Elasticsearch API を使用してユーザーはデータを自動的に検索および取得できます。Elasticsearch を使用すると、ユーザーは SLS からのデータをほぼリアルタイムで保存、検索、解析できます。この文章では、ユーザーが既に Elasticsearch を実行していることを想定しています。

  1. 任意のテキストエディタを使用して、/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 に表示されます。

  2. テスト警告を作成します。

    ソフォスのサンプルポリシーで警告を生成するには、センサーのサーバーで wget コマンドを実行します。Unauthorized Program Execution に関する警告がユーザーに表示されるはずです。

Kibana での SLS 警告の視覚化

Kibana を使用すると、ユーザーは SLS からのログを視覚化できます。Kibana は、ユーザーが動作を検出・監視し、ダッシュボードを構築できる視覚的なインターフェースを提供します。これによって、SLS からの警告を理解し、解析するための可視性が提供されます。

この文章で説明した前の手順から、FileBeat や Elastisearch のいずれかからの警告データを使用または取り込むように Kibana が設定されていると想定すると、ユーザーはサーバー上で wget が実行された際に、ソフォスのサンプルポリシーを使用して生成されたテスト警告を確認できます。

インデックスを作成していない場合は、次の手順を実行します。

  1. Kibana ダッシュボードで、「Settings > Elasticsearch > Index Management」に移動します。
  2. sophos-alerts というインデックスを作成します。
  3. 次のページで、「Timestamp」を選択します (これは、設定によって異なります)。

sophos-alerts インデックスが作成されたら、データを操作し、使用可能なフィールドのうち、組織で表示する内容を決定できます。またフィールドに、説明、系列、UUID、policy_type などを追加することも推奨します。