シグナルシリーズ第2回 : システムシグナルの詳細
シグナルシリーズの前回のブログ記事では、シグナルの概念と、高い評価を受けている Fastly の次世代 WAF におけるシグナルの重要な役割についてご紹介しました。特に、カスタムシグナルによって、より的確なブロックの判断を行い、複雑なフィルタリングとパラメーターを使用して、特定のアクションを実行する方法について詳しくご説明しました。undefined
今回は、システムシグナルの機能について詳しくご紹介しながら、幅広いシグナルを提供すること で、Fastly が包括的ですぐに使えるアプリケーション保護ソリューションをどのように実現しているかについてご説明します。undefined
システムシグナルのご紹介
前回の復習になりますが、Fastly では、リクエストの検査時に次世代 WAF によってリクエストに追加される説明的なタグとしてシグナルを定義しています。シグナルは、チャートで視覚化し、ログでクエリし、ルールに組み込むことができます。Fastly の WAF シグナルは、カスタムシグナルとシステムシグナルの2つのカテゴリーに分けられます。
カスタムシグナルはお客様のトラフィックに合わせてカスタマイズ可能な細かい機能を提供します。一方、私たちは、素早く攻撃を特定してアプリケーションを保護する必要があるセキュリティチームや DevOps チームを支援したいと考えています。ここで真価を発揮するのがシステムシグナルです。
システムシグナルは、クライアントからのリクエストの検査結果に基づいてタグを割り当てる「すぐに使える」シグナルです。30を超えるシステムシグナルを備えた Fastly 次世代 WAF は、セキュリティチームにとって深刻な攻撃や異常に対する包括的な保護を提供します。Fastly 次世代 WAF で検出・ブロックできる攻撃や異常については、こちらのリストをご覧ください。
システムシグナルのサンプルリスト
サンプルリストが示すように、Fastly 次世代 WAF は、XSS などの標準的な攻撃ベクトルに対応しており、悪質な可能性のある IP トラフィックに関するインサイトを提供します。また Fastly チームは、テクノロジースタックの進化や、攻撃対象領域の拡大に伴い、Log4Shell などの新しい脆弱性や GraphQL などの新しいテクノロジーに対する脅威を特定し、最新の攻撃からお客様を保護できるよう努めています。
注目のシグナル : GraphQL
GraphQL はオープンソースの標準クエリ言語です。急増する最先端の API の維持に必要な柔軟性を備えた GraphQL は、REST に代わる手法として開発者の間で急速に普及しています。
Fastly 次世代 WAF は、OWASP が警告するインジェクション攻撃やサービス妨害攻撃 (DoS)、その他の GraphQL API を狙った攻撃などを検出・検査してブロックします。新たに追加された GraphQL インスペクション機能により、コンソールで GraphQL 固有のシグナルを選択し、ユーザー設定に基づく保護対策のカスタマイズが可能になりました。選択したシグナルに対してルールを定義し、設定したしきい値に達した場合や特定のイベントが発生した場合にリクエストをルーティングできます。これらのシグナルの例については以下をご覧ください。
GraphQL Max Depth : GraphQL API のクエリを処理するサーバーで許可された最大深さに達した、または超過したリクエスト。
GraphQL Introspection : GraphQL API のスキーマを取得しようと試みるリクエスト。スキーマを使用して、どのリソースが利用可能であるかを特定し、後続の攻 撃に知らせます。
GraphQL Undefined Variables : 関数の想定よりも多くの変数が含まれる GraphQL API へのリクエスト。
GraphQL Duplicate Variables : 重複した変数が含まれるリクエスト。
GraphQL Missing Operation Name : 複数の GraphQL オペレーションを含みながら、どのオペレーションを実行すべきか定義されていないリクエスト。
GraphQL IDE : GraphQL 統合開発環境 (IDE) が送信元のリクエスト。
GraphQL を悪用する攻撃特有のシグナルを使用して、Corp (コーポレーション) または Site (サイト) に適用するリクエストやレート制限、例外のルールを作成できます。undefined
トラフィックをブロックして悪用や潜在的な DoS 攻撃を回避するため、GraphQL Max Depth シグナルを使用するリクエストルールを作成する例を見てみましょう。
上記のルールでは、「GraphQL Max Depth」シグナルが含まれるリクエストを照合し、HTTP ステータスコード「406 Not Acceptable」を使用してブロックします。
RegEx に代わる SmartParse
SmartParse 検出メソッド
SmartParse は、Web リクエストをトークン化し、より正確な検出を実現します。undefined
システムシグナルは、アプリケーションを介して受信するペイロードのタイプをすばやく特定できるため、お客様にとって強力なツールとなります。また、チームはこれらのシグナルをダッシュボードに表示したりレポートを生成したりすることで、アプリケーションのトラフィックトレンドを包括的に把握できます。
ただし、これらのシステムシグナルの機能は、リクエストを正確に検査してペイロードに SQI または XSS 攻撃が含まれていることを特定できる Fastly の能力があってこそ役に立ちます。この能力がないと、攻撃の侵入を許したり正規のお客様をブロックしたり しながら、最終的にアプリケーションを脆弱なままにしてしまいます。
Fastly 次世代 WAF は、従来型の WAF の攻撃検出能力を凌駕しています。理由は、検出メソッドに正規表現 (RegEx) を使用する代わりに、SmartParse と呼ばれる、より強力で精度の高い独自の検出メソッドを採用しているためです。
従来型の WAF は検査と判断のプロセスに RegEx を使用してきました。しかし、例えばeコマースの顧客がイギリスの国旗を購入したい場合に、「ユニオンジャック」という検索用語が SQLi 攻撃としてフラグされ、正当な顧客がブロックされる可能性があります。そのような場合、誤検出に対するチューニングに多大な時間を浪費することになり、結果的に WAF に対する信頼が損なわれます。
Fastly は文字列のみを確認する代わりに、独自に開発した SmartParse を使用して受信するリクエストをトークン化し、ハッシュをチェックしてリクエストのコンテキストを理解できるようにしました。SmartParse は、特定の用語が一般的な攻撃や異常と一致するかどうかとは関係なく、リクエストが実際に攻撃を実行するようフォーマットされているかどうかを確認します。
システムシグナルがお客様に提供する情報を決定する SmartParse は、Fastly の中核を成すテクノロジーです。SmartParse は、Fastly の迅速かつ精度の高い保護ソリューションに対するお客様の信頼の基盤となっています。