APIの現状
ここ数年、多くの組織がデジタルトランスフォーメーションを進めており、COVID-19のパンデミックによってその動きが加速しています。
そして、その変革においてAPIが重要な役割を果たしています。デジタルトランスフォーメーションの一環として、こうした組織の多くが現在、自らを「APIファースト」の組織と位置付けています。「APIファースト」の組織では、まずAPIを設計し、それを起点にアプリケーションの設計を開始します。次に、そのAPIを基盤として、アプリケーションの残りの部分を設計します。これは、アプリケーションが基盤となるAPIを活用して、他のアプリケーションと通信し、情報を取得できるようにすることを目的としています。
こうした組織では通常、外部組織との連携を支え、開発期間とコストを削減し、社内のシステム、ツール、チーム間の相互運用性を高めるために、APIを開発して利用しています。
F5 Labsの「State of Application Strategy Report 2021」で述べられているように、APIはアプリケーションのモダナイゼーションを支える基盤でもあります。従来型の古いアプリケーションを適応・更新し、より新しくモジュール化されたアプリケーション言語、ツール、プラットフォームに対応させるために活用されています。また、良質なものも悪質なものも含め、APIトラフィックは現在、Webトラフィック全体の大部分を占めています。
これが、APIという「諸刃の剣」の一方の側面です。
APIという「諸刃の剣」のもう一方の刃は、Gartnerによると、2022年までにAPIの悪用が最も頻度の高い攻撃ベクトルになるという点です。APIは、アプリケーション間でデータや情報を自由に共有することを前提としているため、脆弱性が生じる可能性があり、組織によっては保護されないまま放置されていることさえあると、攻撃者は認識しています。単なる見落としの場合もありますが、それでも攻撃者にとっては、アプリケーションを侵害するための迅速かつ容易な侵入口となります。この状況には、業界で使用されているすべてのAPIプロトコルとテクノロジーをネイティブにサポートするなど、特別な対策が必要です。
GraphQL API
ここ数年で急速に成長し、現在も普及が進んでいる比較的新しいAPI技術の1つがGraphQLです。GraphQLは2012年にFacebook社内で開発され、現在はLinux Foundationの一部となっており、REST APIに存在する大きな課題を克服しつつあります。組織はRESTやSOAPに代わるAPI開発手段として、GraphQLを採用するようになっています。
こうした課題には、データの取得不足や過剰取得、新しいAPIエンドポイントを必要としない迅速なフロントエンド開発(GraphQLでは単一のエンドポイントを使用)、GraphQLクエリを活用した優れたバックエンド分析、構造化されたスキーマと型システムなどがあります。
昨年、GraphQLの業界導入率はすでに22%を超え1、イノベーション普及ライフサイクルにおけるイノベーター、アーリーアダプター、アーリーマジョリティにまで広がりました。
GraphQLは今後数年で、APIの主要な標準の1つになると見込まれています。
GraphQLセキュリティ
しかし、GraphQLの急速な成長と普及は、サイバー攻撃者の注目も瞬く間に集めました。その一部はすでにGraphQLエコシステムの脆弱性を悪用し始めており、それらを攻撃するツールの開発にも着手しています。
GraphQLを使用するAPIへの攻撃手法には、従来からあるSQLインジェクションに加え、GraphQL仕様を悪用してAPIに関するデータを明らかにし、攻撃者に有利な形で利用する新たな攻撃もあります。
さらに、GraphQLで構築されたAPIを悪用し、サーバーリソースを急速に枯渇させる新たなサービス拒否(DoS)攻撃手法も登場しています。
Advanced WAF v16.1以降、F5はGraphQL APIのセキュリティをネイティブにサポートしています。
何よりもまず、F5はAdvanced WAF Attack Signaturesを適用できるよう、GraphQLトラフィックのネイティブ解析機能を開発しました。
このアプローチでは、ペイロード内の適切な箇所(値)にシグネチャを適用して攻撃を検知できます。また、GraphQLリクエスト内の不適切な箇所に攻撃シグネチャを適用することで生じる誤検知を防止できます。
次に、F5はApplication Security Policyの一部として、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
関連するブログ記事

F5 Application Study Tool:OpenTelemetryによるF5 BIG-IP環境の監視
F5の新しいオープンソースツールは、BIG-IP環境を詳細に可視化し、データを追跡するとともに、強力でカスタマイズ可能なインサイトを得るための基盤を提供します。
F5 BIG-IPでAI防御を実現
F5 BIG-IP Advanced WAF、BIG-IP APM、BIG-IP SSL Orchestratorが、生成AIアプリ向けに包括的なセキュリティソリューションを提供する仕組みをご覧ください。
F5 Advanced WAFによるGraphQL APIの保護
ここ数年、多くの組織がデジタルトランスフォーメーションを進めており、COVID-19のパンデミックによってその動きは加速しています。
アプリケーションサービスの現状 通信業界版:リーダーとしての台頭
通信ネットワークが進化し、さまざまな業界の幅広いユースケースに対応するなか、通信業界の回答者がテクノロジーリーダーとしての存在感を高めていることがわかります。
デジタルトランスフォーメーションは、単なるペーパーレス化ではない
デジタルトランスフォーメーションは、単なるペーパーレス化ではありません。真のモダナイゼーションにアプリケーションアーキテクチャとセキュリティの再構築が必要な理由を、F5ブログでご覧ください。
やめましょう。もう本当にやめましょう。HTTPSはHTTPより高速ではありません。
もうやめましょう。HTTPSはHTTPより高速ではありません。プロトコルのパフォーマンスに関する微妙な違いと、暗号化トラフィックを適切に最適化する方法については、F5ブログをご覧ください。