コンテンツにスキップ

Logstash

LogstashはElasticにより開発されたオープンソースのデータ処理およびログ管理ツールです。WallarmをLogstashに検出イベントの通知を送信するように設定できます。

通知形式

WallarmはwebhooksによるJSON形式でLogstashに通知を送信します。JSONオブジェクトのセットは、Wallarmが通知するイベントによって異なります。

新しいhitが検出された場合の通知例:

[
    {
        "summary": "[Wallarm] New hit detected",
        "details": {
        "client_name": "TestCompany",
        "cloud": "EU",
        "notification_type": "new_hits",
        "hit": {
            "domain": "www.example.com",
            "heur_distance": 0.01111,
            "method": "POST",
            "parameter": "SOME_value",
            "path": "/news/some_path",
            "payloads": [
                "say ni"
            ],
            "point": [
                "post"
            ],
            "probability": 0.01,
            "remote_country": "PL",
            "remote_port": 0,
            "remote_addr4": "8.8.8.8",
            "remote_addr6": "",
            "tor": "none",
            "request_time": 1603834606,
            "create_time": 1603834608,
            "response_len": 14,
            "response_status": 200,
            "response_time": 5,
            "stamps": [
                1111
            ],
            "regex": [],
            "stamps_hash": -22222,
            "regex_hash": -33333,
            "type": "sqli",
            "block_status": "monitored",
            "id": [
                "hits_production_999_202010_v_1",
                "c2dd33831a13be0d_AC9"
            ],
            "object_type": "hit",
            "anomaly": 0
            }
        }
    }
]

要件

Logstashの構成は次の要件を満たす必要があります:

  • POSTまたはPUTリクエストを受け付けること

  • HTTPSリクエストを受け付けること

  • パブリックURLを持っていること

Logstashの構成例:

input {
  http { # HTTPおよびHTTPSトラフィック用のinputプラグイン
    port => 5044 # 受信リクエスト用のポート
    ssl => true # HTTPSトラフィックの処理
    ssl_certificate => "/etc/server.crt" # LogstashのTLS証明書
    ssl_key => "/etc/server.key" # TLS証明書用の秘密鍵
  }
}
output {
  stdout {} # コマンドラインにLogstashのログを出力するためのoutputプラグイン
  ...
}

詳細はLogstashの公式ドキュメントをご参照ください。

インテグレーションの設定

  1. Wallarm Console → Integrations → LogstashでLogstashインテグレーションの設定に進みます。

  2. インテグレーション名を入力します。

  3. 対象のLogstash URL(Webhook URL)を指定します。

  4. 必要に応じて詳細設定を構成します:

    • Request method: POST or PUT. By default, POST requests are sent.
    • Request header and its value if the server requires a non-standard header to execute the request. The number of headers is not limited.
    • CA certificate: certificate of CA that signed a server certificate. If CA is publicly trusted, this field is optional. If a server certificate is self-signed, this field is required and must contain a certificate of your own CA that signed a server certificate.
    • Verify TLS certificate: this setting allows to disable verification of the specified server certificate. By default, Wallarm verifies whether a server certificate is signed by a publicly trusted CA. We do not recommend disabling the verification of production server certificates. If your server uses a self-signed TLS certificate, you can add a self-signed CA certificate to allow sending requests to this server.
    • Request timeout, in seconds: if the server does not respond to the request within the specified time, the request fails. By default: 15 seconds.
    • Connection timeout, in seconds: if the connection to the server cannot be established during the specified time, the request fails. By default: 20 seconds.
    • Wallarm data format: either a JSON Array (default) or a New Line Delimited JSON (NDJSON).
  5. 通知をトリガーするイベントタイプを選択します。

    Logstashインテグレーション

    利用可能なイベントの詳細:

    • Hits detected except for:

    • System related:

    • Vulnerabilities detected, all by default or only for the selected risk level(s) - high, medium or low.
    • Rules and triggers changed (creating, updating, or deleting the rule or trigger)
    • (Requires AASM Enterprise) Security issues detected, all or only for the selected risk level(s):
      • Critical risk
      • High risk
      • Medium risk
      • Low risk
      • Info risk
    • On an hourly basis, you can get a notification with the number of requests processed during the previous hour
  6. Test integrationをクリックして、設定の正しさ、Wallarm Cloudの可用性、および通知形式を確認します。

    テスト用Logstashログ:

    [
        {
            summary:"[Test message] [Test partner(US)] New vulnerability detected",
            description:"Notification type: vuln
    
                        New vulnerability was detected in your system.
    
                        ID: 
                        Title: Test
                        Domain: example.com
                        Path: 
                        Method: 
                        Discovered by: 
                        Parameter: 
                        Type: Info
                        Threat: Medium
    
                        More details: https://us1.my.wallarm.com/object/555
    
    
                        Client: TestCompany
                        Cloud: US
                        ",
            details:{
                client_name:"TestCompany",
                cloud:"US",
                notification_type:"vuln",
                vuln_link:"https://us1.my.wallarm.com/object/555",
                vuln:{
                    domain:"example.com",
                    id:null,
                    method:null,
                    parameter:null,
                    path:null,
                    title:"Test",
                    discovered_by:null,
                    threat:"Medium",
                    type:"Info"
                }
            }
        }
    ]
    
  7. Add integrationをクリックします。

Wallarm Cloud IP addresses

To provide Wallarm Cloud access to your system, you may need a list of its public IP addresses:

35.235.66.155
34.102.90.100
34.94.156.115
35.235.115.105
34.94.85.217
34.94.51.234
34.102.59.122
34.94.238.72
35.235.100.79
34.102.45.38
34.94.241.21
34.102.90.100
34.94.203.193
34.94.238.221
34.94.9.23
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78
34.90.24.155

追加のアラートの設定

Besides the notifications you have already set up through the integration card, Wallarm triggers allow you to select additional events for notifications:

For condition detailing, you can add one or more filters. As soon, as condition and filters are set, select the integration through which the selected alert should be sent. You can select several integrations simultaneously.

Choosing an integration

中間データコレクターとしてLogstashを使用する

The most common logging scheme in complex systems consists of the following components:

  • Data collector: accepts logs from several sources and forwards logs to the SIEM system

  • SIEM system or log management systems: used to analyze logs and monitor the system status

例:

Webhookフロー

この方式でWallarmのイベントを記録するには:

  1. データコレクターが受信したwebhooksを読み取り、ログを次のシステムに転送するように構成します。Wallarmはwebhooks経由でイベントをデータコレクターに送信します。

  2. SIEMシステムがデータコレクターからログを取得して読み取れるように構成します。

  3. Wallarmがログをデータコレクターに送信するように構成します。

    Wallarmはwebhooksを介して任意のデータコレクターにログを送信できます。

    WallarmをFluentdまたはLogstashと統合するには、Wallarm Console UIの対応するintegration cardsを使用できます。

    その他のデータコレクターとWallarmを統合するには、Wallarm Console UIのwebhook integration cardを使用できます。

以下に、SIEMシステムへログを転送する一般的なデータコレクターとのインテグレーション設定例をいくつか示します:

インテグレーションの無効化と削除

You can delete or temporarily disable the integration. While deleting stops sending notificatioins and completely deletes all configuration, disabling just stops sending notifications which you can at any moment re-enable with the same settings.

If for the integration the System related events are selected to trigger notifications, Wallarm will notify about both of these actions.