LOG IN SIGN UP
Documentation

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-05
  • 新規 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-15
  • 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-11
  • ルール 932140 の更新。Windows における SAML 偽陽性 への対応
  • いくつかの OWASP における変換不足の再設定
  • CVE-2017-9805 を防ぐための Fastly 内部ルールの追加
  • OWASP
  • Fastly ルール
4Z09wgjp7do8NrOIzlckFS v3
2017-08-15
  • しきい値変数の再設定: 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-27
  • 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 を利用して、ルールセットのバージョンを変更する更新したルールの適用に記載された手順を実施して下さい。


Additional resources:


Back to Top