Fastly WAF ルールセットの更新とメンテナンス

      Last updated August 30, 2018

    Fastly はサイトを攻撃から防御するための Fastly WAF ルールセットの更新を提供します。

    OWASP および Trustwave のルールセットの更新は以下の手順で行われます:

    1. Fastly は定期的に OWASP コアルールセットと Trustwave ルールセットに更新がないかを確認します。
    2. Fastly はルールをキャッシュノード上で実行するため Varnish Configuration Language (VCL) に翻訳します。
    3. Fastly はルールが適切に動作するか Fastly プラットフォーム上でテストします。ルールは偽陽性を減らす一方で、効率性とパフォーマンスが最大になるよう調整されます。
    4. 問題が発見された場合は修正が行われます。
    5. ルールセットの更新を Fastly のグローバルネットワークに展開します。
    6. Fastly は顧客にルールセットの更新と、ルールセットの更新手順を通知します。

    ルールセットのメンテナンス

    以下のテーブルは、各ルールセットの更新と変更内容について説明します:

    ID バージョン/日付 変更の種別 影響のあるルールセット
    3vnl3cwPda9Q3WYCDRuGW v10
    2018-09-05
    • 新規 OWASP ルール 932190 の追加。低いパラノイアレベルにおいて RCE (OS ファイルへのアクセスを試みる) 攻撃の軽減
    • 新規 OWASP ルール 941110 の追加。スクリプトタグを用いた XSS 攻撃の軽減
    • 新規 OWASP ルール 944100 の追加。Java deserialization 脆弱性 (CVE-2017-9805, CVE-2017-10271) を用いた RCE 攻撃の軽減
    • 新規 OWASP ルール 944110 の追加。Java process spawn 脆弱性 (CVE-2017-9805) を用いた RCE 攻撃の軽減
    • 新規 OWASP ルール 944120 の追加。Java serialization (CVE-2015-5842) を用いた RCE 攻撃の軽減
    • 新規 OWASP ルール 944240 の追加。Java serialization (CVE-2015-5842) を用いた RCE 攻撃の軽減
    • 新規 OWASP ルール 944130 の追加。疑わしい Java クラスの検知
    • 新規 OWASP ルール 944250 の追加。Java method を用いた RCE 攻撃の検知
    • 新規 OWASP ルール 944200 の追加。Java serializationのきっかけに用いられるマジックバイトの検知
    • 新規 OWASP ルール 944210 の追加。Java serializationのきっかけとなるBase64 エンコードされたマジックバイトの検知
    • 新規 OWASP ルール 944220 の追加。脆弱性のある Java クラスの利用を検知
    • 新規 OWASP ルール 944300 の追加。疑わしいキーワードにマッチした Base64 エンコードされた文字列の検知
    • 新規 Fastly 内部ルール 4134010 の追加。CVE-2018-11776 Apache Struts v2 脆弱性の軽減
    • 新規 Fastly 内部ルール 4113010 の追加。疑わしい X-Rewrite-URL ヘッダーの検知
    • 新規 Fastly 内部ルール 4113020 の追加。疑わしい X-Original-URL ヘッダーの検知
    • 新規 Fastly 内部ルール 4113030 の追加。リクエストにある ESI ディレクティブの検知
    • 新規 Fastly 内部ルール 4113050 の追加。ボティーにある ESI ディレクティブの検知
    • Trustwave ルール 2200000 の削除。IP ブラックリスト
    • Trustwave ルール 2200002 の削除。TOR Exit Nodes ブラックリスト
    • OWASP
    • Fastly ルール
    • Trustwave
    67LUkBwzFzESzumlU2L0T8 v9
    2018-08-01
    • 新規 Fastly 内部ルール 4134010 の追加。XXE 攻撃 への対応
    • 新規 Fastly 内部ルール 4112019 の追加。CtrlFunc Botnet 攻撃への対応
    • 新規 Fastly 内部ルール 4113001 の追加。疑わしい X-Forwarded-Host ヘッダーへの対応
    • 新規 Fastly 内部ルール 4113002 の追加。X-Forwarded-Host と Host ヘッダーの不一致への対応
    • 新規 Fastly 内部ルール 4120010 の追加。クライアントの X-Forwarded-Host ヘッダーに含まれる不正文字検知
    • 新規 Fastly 内部ルール 4120011 の追加。クライアントの X-Forwarded-For ヘッダーに含まれる不正文字検知
    • OWASP ルール 930130 の更新。 制限ファイルの追加
    • OWASP
    • Fastly ルール
    552NEtnDyzucKd3vTjLgFC v8
    2018-05-11
    • OWASP ルール 920230, 920260, 920270, 920271, 920272, 920273, 920274, 920360 にログデータフィールドを追加
    • 新規 Fastly 内部ルール 4170001 の追加。Drupal sa-core-2018-004 攻撃への対応
    • しきい値ルール 1010090 メッセージの調整
    • OWASP
    • Fastly ルール
    6LG4xleIDKWLblCJczGpi9 v7
    2018-03-28
    • Drupal sa-core-2018-002 アタックを緩和する新規 Fastly 内部ルール 4170000 の追加
    • Fastly internal 4112060 Wordpress PingBack ルールの更新
    • DDos Bot からの攻撃を防御する Fastly 内部ルール(ルールID 4112013 および 4112016)の更新
    • Fastly ルール
    1D0OPmXjm6ZMOe9rMGAeQj v6
    2018-01-25
    • Trustwave ルールを最新のバージョンに更新
    • DDos Bot からの攻撃を防御する Fastly 内部ルール(ルールID 4112010-4112018、4112030、4112031、および 4112060)の追加
    • チャンク形式での2 KB を超える HTTP POST ボディをブロックするための、(既存ルール 10040 を補完する)Fastly 内部ルール 10041 の追加。
    • Trustwave
    • Fastly ルール
    2YXlqZJQxMkWyAjM4kggR3 v5
    2017-11-13
    • OWASP 3.0.2 CRS ルールセットへのアップデート
    • 最新の Trustwave ルールの適用
    • 2 kibibyte を超えるサイズの HTTP POST をブロックするための Fastly 内部ルール 10040 の追加。
    • OWASP
    • Trustwave
    • Fastly ルール
    2vyJNHO7fngQYJXU8UGUY6 v4
    2017-10-06
    • ルール 932140 の更新。Windows における SAML 偽陽性 への対応
    • いくつかの OWASP における変換不足の再設定
    • CVE-2017-9805 を防ぐための Fastly 内部ルールの追加
    • OWASP
    • Fastly ルール
    4Z09wgjp7do8NrOIzlckFS v3
    2017-08-14
    • しきい値変数の再設定: http_violation_score_threshold, lfi_score_threshold, php_injection_score_threshold, rce_score_threshold, rfi_score_threshold, session_fixation_score_threshold, sql_injection_score_threshold, xss_score_threshold
    • 不要なしきい値変数の削除: brute_force_counter_threshold, dos_counter_threshold, outbound_anomaly_score_threshold, trojan_score_threshold
    • OWASP ルールセットへの追加バグ修正
    • OWASP
    • Trustwave
    39EE4tZnEM9Q8hxFJMHYU5 v2
    2017-04-26
    • OWASP
    • Trustwave
    • Fastly ルール

    ルールセットの更新手順

    最新のルールセットを利用するには、以下の手順を実施して下さい:

    現在のルールセットの確認

    WAF のルールセットを更新する前に、現在有効となっているルールセットの値を記録することを推奨します。記録した情報は、WAF を前のバージョンに戻すために利用することが出来ます。

    現在有効なルールセットを確認するためには以下の cURL コマンドをターミナルアプリケーションなどから実行して下さい:

    1
    2
    
    curl -s -H Fastly-Key:<your Fastly API token> -H Accept:application/vnd.api+json \
          https://api.fastly.com/service/<your Fastly service ID>/version/<your service version number>/wafs/<your WAF ID>
    

    cURL の実行結果は以下のようになります。relationships オブジェクトに<Your active rules ID>(現在アクティブなルールセット ID) が含まれまるので、この ID を記録して下さい。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    {
        "data": {
            "attributes": {
                "last_push": null,
                "prefetch_condition": null,
                "response": null,
                "version": "1"
            },
            "id": "<your WAF ID>",
            "relationships": {
                "configuration_set": {
                    "data": {
                        "id": "<Your active rules ID>",
                        "type": "configuration_set"
                    }
                }
            },
            "type": "waf"
        }
    }
    

    ルールセットのバージョンを変更する

    WAF のルールセットのバージョンを変更するには、以下の手順を実施して下さい:

    1. 適用したい新しいルールセットの ID をルールセットのメンテナンスから確認して下さい。
    2. 利用中の端末上で、新しいファイル updated_relationship.json を作成して下さい。
    3. 以下の JSON を作成したファイルにコピーして <your rules ID> の箇所を、新たに適用したいルールセットの ID と置き換えて下さい。:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      {
          "data": {
              "id": "<your WAF ID>",
              "relationships": {
                  "configuration_set": {
                      "data": {
                          "id": "<your rules ID>",
                          "type": "configuration_set"
                      }
                  }
              },
              "type": "waf"
          }
      }
      
    4. updated_relationship.json ファイルに変更を保存して下さい。
    5. WAF のルールセットのバージョンを変更するために、ファイルを保存したディレクトリで、ターミナルから以下の cURL コマンドを実行して下さい。:

      1
      2
      3
      
      curl -s -X PATCH -H Fastly-Key:<your Fastly API token> -H Accept:application/vnd.api+json \
        -H Content-Type:application/vnd.api+json -d @updated_relationship.json \
        https://api.fastly.com/service/<your Fastly service ID>/version/<your service version number>/wafs/<your WAF ID>
      
    6. WAF のルールセットバージョンの変更には少し時間がかかります。以下の cURL コマンドで、変更の進捗状況を確認して下さい。:

      1
      2
      
      curl -s -H Fastly-Key:<your Fastly API token> -H Accept:application/vnd.api+json \
            https://api.fastly.com/service/<your Fastly service ID>/version/<your service version number>/wafs/<your WAF ID>
      

       新しいルールセットの ID が出力されれば、処理は完了しています。

    更新したルールの適用

    WAF へのルールセットの更新が確認出来たら、以下の手順で更新された WAF ルールセットを設定に適用して下さい:

    1. ルールセットの更新のために、ターミナルから以下の cURL コマンドを実行して下さい。

      1
      2
      3
      
      curl -s -X PATCH -H Fastly-Key:<your Fastly API token> -H Accept:application/vnd.api+json \
        -H Content-Type:application/vnd.api+json -d '{"data":{"id":"<your WAF ID>","type":"ruleset"}}' \
        https://api.fastly.com/service/<your Fastly service ID>/wafs/<your WAF ID>/ruleset
      

      以下のようなレスポンスが返却されます:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
      {
          "data": {
              "id": "WAF_ID",
              "type": "ruleset"
          },
          "links": {
              "related": {
                  "href": "https://api.fastly.com/service/<your Fastly service ID>/wafs/<your WAF ID>/update_statuses/<update status ID>"
              }
          }
      }
      
    2. 最新のルールを WAF に適用するには少し時間がかかります。処理の進捗状況を確認するためには、前ステップで表示された URL を cURL コマンドから実行して下さい。:    

      1
      2
      
      curl -s -H Fastly-Key: FASTLY_API_TOKEN -H Accept:application/vnd.api+json \
      https://api.fastly.com/service/<your Fastly service ID>/wafs/<your WAF ID>/update_statuses/<update status ID>
      

      処理が完了すると、レスポンスの waf_update_statusstatuscomplete となります。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
      {
          "data": {
              "attributes": {
                  "completed_at": "2017-04-05 18:47:28 UTC",
                  "created_at": "2017-04-05 18:47:27 UTC",
                  "message": null,
                  "status": "complete",
                  "updated_at": "2017-04-05 18:47:28 UTC"
              },
              "id": "<updated rules ID>",
              "type": "waf_update_status"
          }
      }
      

    前バージョンのルールセットへの復帰

    WAF ルールセットの更新に問題があった場合、前バージョンのルールセットへの復帰が可能です。 現在のルールセットの確認 で記録したルールセットの ID を利用して、ルールセットのバージョンを変更する更新したルールの適用に記載された手順を実施して下さい。

    Back to Top

    Additional resources: