目次

  1. 1.はじめに
  2. 2.カスタマイズが必要となるケース
  3. 3.カスタマイズを依頼する際に必要なもの
  4. 4.カスタマイズ例
  5. 5.おわりに
  6. 1. はじめに

    WafCharm ではビジネスプラン以上(*)のお客様にWAF ルールのカスタマイズサービスを提供しております。これまで実施してきたカスタマイズの事例を通して、どのようなカスタマイズサービスを提供しているのか、解説します。

    (*) エントリープランの場合はWAFルールカスタマイズに際して別途お見積もりが必要となります。

    2.カスタマイズが必要となるケース

    カスタマイズのパターンは大きく分けて二つとなります。

    ・意図してない遮断(誤検知)を回避するためのカスタマイズ
    ・追加ルール作成のカスタマイズ

    追加ルール作成のカスタマイズは以下のものに対応します。
    ・レートベースルールの作成 ※ AWS WAF Classic 非対応
    ・Geoマッチ(国別制限)ルールの作成 ※ AWS WAF Classic 非対応
    ・ミドルウェアの脆弱性に対応するルールの作成 (※基本的に脆弱性の見つかっていない新しいバージョンのご利用を推奨します)
    ・その他ご希望のカスタマイズ

    3.カスタマイズを依頼する際に必要なもの

    ・意図しない遮断(誤検知)を回避するためのカスタマイズ

    WafCharm 並びに WafCharm サポートではお客様の検知に対して、それが誤検知か否かを判断することはできません。お客様からの申告にてカスタマイズ対応いたしますので該当するルールや対象のログをご用意ください。bodyでの検知の場合はbody内容も併せてご用意ください。お客様との相談の上、セキュリティエンジニアが適切なカスタマイズをご提供します。

    ・追加ルール作成のカスタマイズ

    作成条件を提供していただければ、対応可否を判断し、ルールの作成及び適用をします。

    作成条件例
    ・日本以外からのアクセスを遮断したい
    ・CVE-XXXX-XXXXX に対応するルールを作成してほしい
    ・特定のIPかつ特定のパスへのアクセスは無条件に許可したい

    カスタマイズに関しての留意事項

    AWS WAF Classic の場合
    ・正規表現の数には制限があるため、ルールの削除を検討する必要があるかもしれません
    ・ルール数に制限があるため、ルールの入れ替えを検討する必要があるかもしれません

    AWS WAF の場合
    ・正規表現の数には制限があるため、ルールの削除を検討する必要があるかもしれません
    ・WCU(*)による制限があるため、ルールの入れ替えを検討する必要があるかもしれません

    (*)WCU( Web ACL Capacity Unit)は Web ACL の実行に必要な運用リソースを計算するものです。ルールに対して処理コストがかかる形となります。
    https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/how-aws-waf-works.html

    リソースの制約がある中でのカスタマイズになりますので、ご希望の内容によってはルールカスタマイズしないことをお勧めさせていただくこともございます。

    4.カスタマイズ例

    事例1:特定のパスの除外

    一番多いカスタマイズのパターンとなります。
    サイトによって問い合わせ機能やファイルのアップロード機能など、比較的内容を自由に入力できるフォームなどでは、リクエスト body の内容によっては攻撃ではないにも関わらず弊社ルールが検知・遮断してしまうことがあります。

    管理者の作業等で特定のIPアドレスで絞ることができる場合はホワイトリストに登録することで回避可能です。IPアドレスが絞り込めないケースの場合、対象のルールから特定のパス(URI)を除外することで検知範囲を絞り込むことが可能です。
    ※セキュリティリスクは存在しますのでご認識の上でご依頼ください。

    基本的には対象のルールに条件を付与する形でカスタマイズを実施します。
    例えば URI が「~/upload で終わる」ものを既存の SQL インジェクションから除外する場合は以下のようにルールを作成します。

    SQL インジェクションルール AND URI が「~/upload で終わる」以外

    〜以外と言う表現ではない形で URI が「/users で始まる」と言う条件を付与することでルールが適用される範囲を絞り込み、結果的にその他の URI を除外することも可能です。

    SQL インジェクションルール AND URI が「/users で始まる」

    対象ルール以外でも全てのルールで特定のパスを除外することもできますが、可能な限り許可する範囲を狭くすることがセキュリティ上は望ましいため推奨していません。

    事例2:IP毎に閾値の異なるレートベースルールの適用

    レートベースルールは大量のリクエストを送ってくる送信元を単位時間あたりのリクエスト数を利用した判定によりブロックするためのルールとなります。詳細については以下のブログを参照ください。

    レートベースルールの使い方

    レートベースルール単体での利用ではなく、特定のIP(ユーザー管理IP)以外については閾値を厳しめに、特定のIP(ユーザー管理IP)については緩めにといった内容をお客様からご希望されたこともございました。

    その際には、二つのレートベースルールを作成しました。

    閾値:100 access /5min AND 特定のIP(ユーザー管理IP)以外
    閾値:3000 access /5min AND 特定のIP(ユーザー管理IP)

    IPリストについてはお客様に用意していただきました。
    また、特定のIP(ユーザー管理IP)の方は特定のパスについても除外したいということで最終的には以下の二つのルールを適用することになりました。

    閾値:100 access /5min AND 特定のIP(ユーザー管理IP)以外
    閾値:3000 access /5min AND 特定のIP(ユーザー管理IP)AND 特定のパス以外

    今回のケースでは特定のIPアドレスという形ですが、国別の制限に変えて日本と日本以外といった形でも実現可能です。

    事例3:CVE-XXXX-XXXXX に対応するルール

    脆弱性に対するカスタマイズをご依頼をいただいた後、セキュリティエンジニアにてルールの作成が可能かを確認します。内容によってはルール化できない場合や、ルールかする必要がないこともあります。

    ルール化できないケース
    ・ネットワーク経由での攻撃ではない場合や、想定される通信経路に WAF を配置できないため WAF で検知することができない場合。
    ・IDやパスワードなど、すでに漏洩した情報を利用したアクセスで、リクエストとしては正常なため WAF で検知できない場合。
    ・正常なアクセスとの差が少ないことなどで、誤検知をかなりの確率で発生させる恐れがある場合。

    ルール化する必要がないケース
    ・一般的な攻撃手法に基づいた脆弱性を利用して攻撃を埋め込む場合、埋め込まれる攻撃に対してそもそも検知ルールが存在する場合。

    以上のような場合、お客様と相談しながらカスタマイズの要不要の時点から、ご提案させていただきます。

    5.おわりに

    具体例を交えて WafCharm でのカスタマイズを説明させていただきました。
    検討レベルでも問題ないのでお気軽にサポート窓口までご連絡ください。
    ※カスタマイズ実施にかかる時間はベストエフォートとなります