過去数年間、多くの組織がデジタル変革を進めてきましたが、そのプロセスはCOVID-19パンデミックによって加速しました。
そして、API はその変革において重要な役割を果たしています。 デジタル変革の一環として、これらの組織の多くは現在、自らを「API ファースト」組織であると宣言しています。 「API ファースト」組織とは、まず API を設計してアプリケーションの設計を開始する組織です。 次に、API を基盤として使用して、アプリケーションの残りの部分の設計を開始します。 その目的は、アプリケーションが基礎 API を活用して他のアプリケーションと通信し、情報を取得することです。
これらの組織は通常、API を開発し、それを使用することで外部組織とのパートナーシップをサポートし、開発時間とコストを削減し、内部システム、ツール、チーム間の相互運用性を強化します。
F5 Labs の 2021 年アプリケーション戦略レポートに記載されているように、API はアプリケーションの近代化の基盤でもあり、古いクラシック アプリケーションを適応および更新して、より新しい、よりモジュール化されたアプリケーション言語、ツール、プラットフォームをサポートするために活用されています。 また、API(良いものも悪いものも)が、現在ではウェブトラフィック全体の大部分を占めています。
これが API の「両刃の剣」の第一の刃です。
ガートナーによると、API に関する「両刃の剣」の 2 つ目の側面は、API の悪用が 2022 年までに最も頻繁な攻撃ベクトルになるということです。 攻撃者は、API がアプリケーションと他のアプリケーション間で共有されるデータと情報のオープンなフローに依存しているため、API が脆弱になる可能性があり、一部の組織では保護されていないままになっていることに気づいています。 あるいは、単なる見落としであっても、攻撃者がアプリケーションを侵害するための迅速かつ簡単な侵入ポイントを許してしまうこともあります。 この状況では、業界で使用されているすべての API プロトコルとテクノロジーのネイティブ サポートなどの特別な処理が必要です。
過去数年間で急速に成長し、引き続き注目を集めている比較的新しい API テクノロジーの 1 つが GraphQL です。 2012 年に Facebook によって社内開発され、現在は Linux Foundation の一部となっている GraphQL は、REST API に存在する重大な課題を克服しています。 組織は、REST や SOAP ではなく、GraphQL を使用して API を開発するようになっています。
このような課題には、データの取得不足と取得過剰、新しい API エンドポイントを必要としないフロントエンド開発の高速化 (GraphQL は 1 つのエンドポイントを使用)、GraphQL クエリを使用した優れたバックエンド分析、構造化されたスキーマと型システムなどがあります。
昨年、GraphQLはすでに業界で22%以上の採用を達成しました。1イノベーター、アーリーアダプター、イノベーション採用ライフサイクルのアーリーマジョリティにリーチします。
GraphQL は、今後数年間で API の主要な標準の 1 つになると予想されています。
しかし、GraphQL の急速な成長と普及は、サイバー攻撃者の注目も急速に集めており、その一部はすでに GraphQL エコシステムの脆弱性を悪用し、攻撃ツールの開発を開始しています。
GraphQL を使用する API に対する攻撃手法には、古くからある SQL インジェクションのほか、GraphQL 仕様を利用して API に関するデータを漏洩し、それを攻撃者に有利に利用するという新しい攻撃手法も含まれます。
さらに、GraphQL で構築された API を活用してサーバーのリソースを急速に消耗させる、サービス拒否 (DoS) 攻撃の新しい方法が導入されました。
Advanced WAF v16.1 以降、F5 は GraphQL API のセキュリティをネイティブにサポートするようになりました。
まず第一に、F5 は GraphQL トラフィックのネイティブ解析を開発し、高度な WAF 攻撃シグネチャを適用できるようにしました。
このアプローチでは、ペイロードの適切な場所で攻撃を検出します (値に対して署名を実行します)。また、GraphQL リクエストの間違った部分で攻撃署名が実行されることによる誤検知を防止します。
次に、F5 はアプリケーション セキュリティ ポリシーの一部として GraphQL ポリシー テンプレートとコンテンツ プロファイルを作成します。
この新しいコンテンツ プロファイルでは、ユーザーはパラメータの合計長と値の長さを設定し、ポリシーに従って制限することができます。
さらに、ユーザーは、DoS 攻撃につながる可能性のある再帰的な GraphQL クエリを排除する最大構造深度と、1 つの HTTP リクエスト内の異なる GraphQL クエリの数を制限する最大バッチ クエリを構成することができます。
イントロスペクション クエリを強制することもできます。これにより、攻撃者が API 構造を理解しやすくなり、アプリへの侵入が成功しやすくなります。
これに対抗するために、F5 は宣言型ポリシー構成、Behavioral DoS 機能を使用したボリューム型 DoS の保護、F5 Advanced WAF の DataGuard 機能を使用した応答のフィルタリングのサポートも追加しました。
要約すると、GraphQL は、API を作成および管理し、既存のクラシック アプリケーションの最新化を強化し、デジタル変革をサポートする新しい方法を提供します。 しかし、いつものように、新しいテクノロジーの隙間を突く脅威は増え続けており、不意を突かれる可能性があります。
今すぐF5 Advanced WAF を使用して GraphQL API の保護を開始しましょう。
詳細については、 DevCentral の投稿とYouTube の Lightboard Lessonをご覧ください。
1 2020 API の現状レポート、Postman