シグナルシリーズ第3回 : エッジでシグナルを活用
本シリーズの第1回では、Fastly Next-Gen WAF のカスタムシグナルの活用方法について、悪質または望ましくない動作が疑われるトラフィックのブロックに関する例を挙げてご紹介しました。また、第2回では、システムシグナルを利用することで、セキュリティチームや DevOps チームがカスタム設定無しに Web アプリケーションや API を保護できることを説明しました。
シグナルシリーズの第3回では、新しい2つのユースケース (既知の攻撃者の特定とレスポンスの追跡) をご紹介し、こうしたケースによってお客様のセキュリティ体制の強化にシグナルがどのように役立つかを検討します。また、セキュリティ上の決定の一部を Fastly のエッジで実行することで、カスタムレスポンスコードを使用してダウンストリームシステムの保護を強化する方法もご説明します。
既知の攻撃者の特定
Web の脅威への対策の重要性が叫ばれていますが、それには正当な理由があります。Web でのサービス提供は、コードインジェクション攻撃や顧客データの流出、API の悪用などの脅威に常にさらされています。
一方、脅威モデリングで見落とされがちな別の側面があります。それは、過度に負担がかかっているセキュリティチームのために、ノイズやアラートを減少させる必要性です。実際の脅威ではなく誤検知への対応を強いられていると、チームは能力を十分に発揮することができません。
ESG のレポートによると、セキュリティ責任者の23%が、セキュリティアラートの数に対応できることが組織にとって最も重要な課題であると考えています。サイバーセキュリティのアラート疲れを防ぐための対策として、WAF を使用して既知の攻撃者を自動で特定する方法があります。トラフィックやリクエストにメタデータをタグ付けし、それらを「問題なし」としてマークすることで、チームは精神的余裕を得て、脅威への対策の効率性を最大限に高めることが可能になります。Fastly の Next-Gen WAF では、このようなカテゴリーのトラフィックに特定のシグナルを追加できます。これには、HTTP リクエスト内の IP アドレスやその他の識別子が使用されます。
ここでは、IP アドレスのリストに基づいて、人気の高いスキャナを特定するためにカスタムシグナルを追加するサイトルールの設定方法をご説明します。リストが作成されたら、サイトルール自体は非常にシンプルです。コントロールパネルでの基本的なステップを見てみましょう。まずはルール自体で使用するリストを作成します。以下は、特定する IP アドレスのリストを把握している場合の例です。undefined

上記のスクリーンショットでは、既知の脆弱性スキャナを表す3つの架空の IP アドレスが追加されています。リストの作成後、このカテゴリのトラフィックにシグナルをアタッチすることができます。これは、以下のように新しいリクエストルールを作成して行えます。

このルールでは、ここで特定されたリスト内にある IP アドレスからのトラフィックを許可し、今後の参照目的でそのリクエストに known-scanner というシグナルをタグ付けします。このルールがないと、Fastly Next-Gen WAF はこのトラフィックに対して攻撃検知を行い、スキャナが機能するのを妨げ、セキュリティチームにとって不要なアラートを生み出してしまいます。リクエストに known-scanner のシグナルがアタッチされていると、そのスキャナの動作の確認や可視化も可能になります。
次は、受信したペイロードだけでなく、リクエストがダウンストリームのアプリケーションに与えた (あるいは与えなかった) 影響を確認して攻撃を追跡する、より複雑な方法についてご紹介します。
レスポンスの追跡
Web セキュリティの脅威モデリングに対する基本的なアプローチは、攻撃者に関してあまりに単純なストーリーを前提としているように見える場合が数多くあります。彼らは黒いパーカーを着て、アプリケーションの適切な部分 (URL) に送信されるとデータ流出やサービス妨害攻撃などを引き起こし、システムに大きな障害をもたらす、周到に設計されたペイロードを用意している、といったイメージです。
さらに、「(悪意のある HTTP リクエストとして表現される) このような攻撃を検出してブロックし、被害を未然に防ぐことができる完璧な方法があれば、Web セキュリティの問題から解放されるのに」と多くの人が考えています。undefined
Web アプリケーションのセキュリティについて検討するとき、防御に関してこうした発想が最初に浮かぶのが一般的です。この考え方の延長戦上に、既存の脅威やシグネチャに基づいたモデルがあります。従来の WAF で数百 (あるいは数千) のルールが存在するような状況に企業が陥ってしまうのも、無理のない話です。では、こうした状況をどうすれば改善できるでしょうか?
カスタムシグナルを使用することで、このロジックを基に外挿することができます。Fastly Next-Gen WAF では、リクエストとレスポンスの両方をチェックして、リクエスト/レスポンスのペアに攻撃または異常シグナルを追加すべきかどうかが判断されます。例えば、Fastly のシステムシグナルの一部 (例 : forcefulbrowsing) は、リクエストにシグナルをタグ付けする前に、リクエストとレスポンスの情報を確認します。undefinedundefinedundefined
これにより、「ファイアアンドフォーゲット」と呼ばれるタイプの攻撃に対する保護を拡張し、より高度な攻撃に対する可視性とインサイトの獲得を実現します。例えば、攻撃者が認証エンドポイントの弱点を見つける方法を把握できれば保護の強化に繋がります。特に、認証 API は (デフォルトで) 適切に動作するために広範に公開される必要があることから、攻撃対象になりやすいです。認証失敗 (この場合は HTTP 302 エラー) を追跡するカスタムシグナルは、クレデンシャルスタッフィング攻撃の試行を示す可能性のある過度なログイン失敗を知らせることができます。以下の基本テンプレートで、この実行に必要なサイトルールを作成してみましょう。

上記の例では、認証失敗に対して AuthFailure というシグナルでタグ付けしています。実際に何かしらの被害が発生しているかどうかは定かではありませんが、理由のない認証失敗が繰り返し起こっているということは、攻撃が進行中である可能性を示唆しています。この種の先行指標は、アプリケーションの認証処理を行う他の部分のセキュリティコントロールを強化する必要があることを警告する役割を果たします。こうした指標が、組織的攻撃の可能性を示唆する場合もあります。このシグナルは、カスタムダッシュボードで以下のようにグラフ表示できます。

上記のグラフは、過去1時間におけるこのシグナルの発生を追跡するダッシュボードのモックアップです。10:30から10:45にかけてシグナルが集中しているのが分かります。この情報は (特に既知のベースラインがより低い場合は) 攻撃が試行されたことを示している可能性があります。
エッジへの保護の拡張
レスポンスの追跡は非常に有用ですが、ブロックやレート制限などの防御アクションに関してはどうでしょうか?これらのアクションをアップストリームで実行したい場合があるかと思います。この時点で、エージェントがすでに処理を完了しており、レスポンスがクライアントに返される過程にあるため、実行は難しいように見えます。
しかし、セキュリティの境界線をエッジまで拡張することで、そうしたアクションの実行を実現できます。レスポンスにタグ付けされたシグナルを、カスタムレスポンスコードを使用してエッジに返し、これにより Next-Gen WAF で生成されたインテリジェンスを活用して Fastly の配信 (Varnish) または Compute@Edge 環境で追加の防御アクションを実行できます。Varnish を利用しているお客様は、beresp.status 変数に関するロジックを追加するだけでこれを実行できます。Compute@Edge を利用しているお客様は、レスポンスに関する変数 (言語により異なります) に基づいて、同様のことを実行できます。
beresp.status には、オリジンから受信したレスポンスの HTTP ステータスコードが含まれます。例えば、サイトルールによって401ではなく550が返される場合、この段階におけるエッジでのセキュリティ対策の選択肢として、ブロックやエッジレート制限、あるいはクライアントへのタールピットの適用などがあります。これらはすべて攻撃をスローダウンさせ、攻撃中のトラフィックと負荷からオリジンを保護する効果をもたらします。ルールをブロックに変更し、レスポンスコードを次のように変更することで、攻撃に対する保護を強化することができます。

Next-Gen WAF でルールを変更すると、Varnish に新しいセキュリティロジックが追加され、beresp.status の値が493の場合にアクションが実行されるように設定することができます。エッジでセキュリティを保護するアクションを実施するメリットは、アプリケーションに対する脅威が高度になり、規模も大きくなるほどに高まります。
環境内の複数の場所にセキュリティに関する決定を反映させることが可能な Fastly の Next-Gen WAF は、エッジ、アプリケーション内部 (コアデプロイ)、またはスタンドアロンのリバースプロキシ (クラウド WAF) など、従来よりも多くの場所に保護やセキュリティ判断を提供できます。
今後について
本記事では、カスタムシグナルに関するユースケースをいくつかご紹介しました。これらの例を、お客様の組織のセキュリティ強化にお役立ていただけると嬉しいです。今回ご紹介できなかったその他のアイデアや例に興味がおありでしたら、Fastly のテクニカルアカウントマネジャーに詳細をお問い合わせください。また、ブログをフォローして次回の記事もご覧ください。
Fastly Next-Gen WAF をお試しになりたい方は、ぜひお問い合わせください。