コンテンツにスキップ

Webhook

Wallarmを使用すると、HTTPSプロトコルを介して受信Webhookを受け入れる任意のシステムに即時通知を送信するよう設定できます。

通知フォーマット

通知は、統合設定時に選択した形式に応じてJSON ArrayまたはNew Line Delimited JSON (NDJSON)形式で送信されます。通知が送信されるイベントに応じて、JSONオブジェクトのセットが異なります。例:

  • ヒット検出

    [
    {
        "summary": "[Wallarm] New hit detected",
        "details": {
          "client_name": "Test Company",
          "cloud": "EU",
          "notification_type": "new_hits",
          "hit": {
            "domain": "example.com",
            "heur_distance": 20.714285714285715,
            "method": "GET",
            "path": "/",
            "payloads": [
              "1' select version();"
            ],
            "point": [
              "get",
              "id"
            ],
            "probability": 20.714285714285715,
            "remote_country": null,
            "remote_port": 41253,
            "remote_addr4": "8.8.8.8",
            "remote_addr6": null,
            "datacenter": "unknown",
            "tor": "none",
            "request_time": 1703519823,
            "create_time": 1703519826,
            "response_len": 345,
            "response_status": 404,
            "response_time": 359,
            "stamps": [
              7965
            ],
            "regex": [],
            "stamps_hash": 271168947,
            "regex_hash": -2147483648,
            "type": "sqli",
            "block_status": "monitored",
            "brute_counter": "b:1111:xxxxxxxxxxxxxxxx",
            "final_wallarm_mode": "monitoring",
            "libproton_version": "4.8.0",
            "lom_id": 932,
            "protocol": "rest",
            "proxy_type": null,
            "request_id": "xxxxxxxxxxxxxxxx",
            "wallarm_mode": null,
            "id": [
              "hits_production_1111_202312_v_1",
              "xxxxxxxxxxxxxxxx"
            ],
            "object_type": "hit",
            "anomaly": 1.0357142857142858,
            "parameter": "GET_id_value",
            "applications": [
              "default"
            ]
          }
       }
    },
    {
        "summary": "[Wallarm] New hit detected",
        "details": {
          "client_name": "Test Company",
          "cloud": "EU",
          "notification_type": "new_hits",
          "hit": {
            "domain": "example.com",
            "heur_distance": 2.5,
            "method": "GET",
            "path": "/etc/passwd",
            "payloads": [
              "/etc/passwd"
            ],
            "point": [
              "uri"
            ],
            "probability": 2.5,
            "remote_country": null,
            "remote_port": 41254,
            "remote_addr4": "8.8.8.8",
            "remote_addr6": null,
            "datacenter": "unknown",
            "tor": "none",
            "request_time": 1703519826,
            "create_time": 1703519829,
            "response_len": 345,
            "response_status": 404,
            "response_time": 339,
            "stamps": [
              2907
            ],
            "regex": [],
            "stamps_hash": -1063984326,
            "regex_hash": -2147483648,
            "type": "ptrav",
            "block_status": "monitored",
            "brute_counter": "b:1111:xxxxxxxxxxxxxxxx",
            "final_wallarm_mode": "monitoring",
            "libproton_version": "4.8.0",
            "lom_id": 932,
            "protocol": "none",
            "proxy_type": null,
            "request_id": "xxxxxxxxxxxxxxxx",
            "wallarm_mode": null,
            "id": [
              "hits_production_1111_202312_v_1",
              "xxxxxxxxxxxxxxxx"
            ],
            "object_type": "hit",
            "anomaly": 0.22727272727272727,
            "parameter": "URI_value",
            "applications": [
              "default"
            ]
          }
       }
    }
    ]
    
    {"summary":"[Wallarm] New hit detected","details":{"client_name":"Test Company","cloud":"EU","notification_type":"new_hits","hit":{"domain":"example.com","heur_distance":20.714285714285715,"method":"GET","path":"/","payloads":["1' select version();"],"point":["get","id"],"probability":20.714285714285715,"remote_country":null,"remote_port":41253,"remote_addr4":"8.8.8.8","remote_addr6":null,"datacenter":"unknown","tor":"none","request_time":1703519823,"create_time":1703519826,"response_len":345,"response_status":404,"response_time":359,"stamps":[7965],"regex":[],"stamps_hash":271168947,"regex_hash":-2147483648,"type":"sqli","block_status":"monitored","brute_counter":"b:1111:xxxxxxxxxxxxxxxx","final_wallarm_mode":"monitoring","libproton_version":"4.8.0","lom_id":932,"protocol":"rest","proxy_type":null,"request_id":"xxxxxxxxxxxxxxxx","wallarm_mode":null,"id":["hits_production_1111_202312_v_1","xxxxxxxxxxxxxxxx"],"object_type":"hit","anomaly":1.0357142857142858,"parameter":"GET_id_value","applications":["default"]}}
    {"summary":"[Wallarm] New hit detected","details":{"client_name":"Test Company","cloud":"EU","notification_type":"new_hits","hit":{"domain":"example.com","heur_distance":2.5,"method":"GET","path":"/etc/passwd","payloads":["/etc/passwd"],"point":["uri"],"probability":2.5,"remote_country":null,"remote_port":41254,"remote_addr4":"8.8.8.8","remote_addr6":null,"datacenter":"unknown","tor":"none","request_time":1703519826,"create_time":1703519829,"response_len":345,"response_status":404,"response_time":339,"stamps":[2907],"regex":[],"stamps_hash":-1063984326,"regex_hash":-2147483648,"type":"ptrav","block_status":"monitored","brute_counter":"b:1111:xxxxxxxxxxxxxxxx","final_wallarm_mode":"monitoring","libproton_version":"4.8.0","lom_id":932,"protocol":"none","proxy_type":null,"request_id":"xxxxxxxxxxxxxxxx","wallarm_mode":null,"id":["hits_production_1111_202312_v_1","xxxxxxxxxxxxxxxx"],"object_type":"hit","anomaly":0.22727272727272727,"parameter":"URI_value","applications":["default"]}}
    
  • 脆弱性検出

    [
        {
            summary:"[Wallarm] 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"
                }
            }
        }
    ]
    
    {"summary":"[Wallarm] New vulnerability detected","description":"Notification type: vuln\nNew vulnerability was detected in your system.\nID: \nTitle: Test\nDomain: example.com\nPath: \nMethod: \nDiscovered by: \nParameter: \nType: Info\nThreat: Medium\nMore details: https://us1.my.wallarm.com/object/555\nClient: TestCompany\nCloud: 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"}}}
    

統合の設定

  1. Wallarm UI → Integrations を開きます。

  2. Webhookブロックをクリックするか、Add integrationボタンをクリックしてWebhookを選択します。

  3. 統合名を入力します。

  4. 対象Webhook URLを入力します。

  5. 必要な場合、詳細設定を構成します:

    • 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).

    Advanced settings example

  6. 通知をトリガーするイベントタイプを選択します。

    Webhook integration

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

  7. Test integrationをクリックして、設定の正確性、Wallarm Cloudの可用性、および通知フォーマットを確認します。テスト通知は、New Line Delimited JSON (NDJSON)が選択されている場合でも常にJSON Array形式で送信されます。

  8. 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
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78

追加アラートの設定

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

例:IPアドレスが拒否リストに追加された場合のWebhook URLへの通知

IPアドレスが拒否リストに追加された場合、このイベントに関するWebhookがWebhook URLに送信されます。

Example of trigger for denylisted IP

トリガーをテストするには:

  1. Wallarm Console → IP listsDenylist を開き、IPアドレスを拒否リストに追加します。例えば:

    Adding IP to the denylist

  2. 次のWebhookがWebhook URLに送信されたことを確認します:

    [
        {
            "summary": "[Wallarm] Trigger: New IP address was denylisted",
            "description": "Notification type: ip_blocked\n\nIP address 1.1.1.1 was denylisted until 2021-06-10 02:27:15 +0300 for the reason Produces many attacks. You can review blocked IP addresses in the \"Denylist\" section of Wallarm Console.\nThis notification was triggered by the \"Notification about denylisted IP\" trigger. The IP is blocked for the application Application #8.\n\nClient: TestCompany\nCloud: EU\n",
            "details": {
            "client_name": "TestCompany",
            "cloud": "EU",
            "notification_type": "ip_blocked",
            "trigger_name": "Notification about denylisted IP",
            "application": "Application #8",
            "reason": "Produces many attacks",
            "expire_at": "2021-06-10 02:27:15 +0300",
            "ip": "1.1.1.1"
            }
        }
    ]
    
    • 「Notification about denylisted IP」はトリガー名です
    • 「TestCompany」はWallarm Console上の会社アカウント名です
    • 「EU」は会社アカウントが登録されているWallarm Cloudです

統合の無効化および削除

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.

システムの利用不可および統合パラメータの誤り

Notifications to the system are sent via requests. If the system is unavailable or integration parameters are configured incorrectly, the error code is returned in the response to the request.

If the system responds to Wallarm request with any code other than 2xx, Wallarm resends the request with the interval until the 2xx code is received:

  • The first cycle intervals: 1, 3, 5, 10, 10 seconds

  • The second cycle intervals: 0, 1, 3, 5, 30 seconds

  • The third cycle intervals: 1, 1, 3, 5, 10, 30 minutes

If the percentage of unsuccessful requests reaches 60% in 12 hours, the integration is automatically disabled. If you receive system notifications, you will get a message about automatically disabled integration.