OWASP API セキュリティ トップ 10 の概要とベスト プラクティス

API は現代のアプリケーション アーキテクチャにおいて重要な役割を果たしており、この OWASP プロジェクトは一般的な API セキュリティの弱点の認識に重点を置いています。

OWASP (Open Worldwide Application Security Project) のAPI セキュリティ リスク トップ 10 リストの目的は、API の開発と保守に携わる人々を教育し、一般的な API セキュリティの弱点に対する認識を高めることです。 API はますます攻撃者の標的になってきており、OWASP の API セキュリティ プロジェクトは、API に関連する固有の脆弱性とセキュリティ リスクを理解し、軽減するための戦略とソリューションに重点を置いています。

API とは何ですか?

API (アプリケーション プログラミング インターフェイス) は、アプリケーションが他のアプリケーション、サービス、またはプラットフォームと通信してデータを交換する機能を容易にするため、最新のアプリケーションの開発に不可欠です。 API はアプリの最新化戦略の重要な部分であり、モバイル アプリの基盤となります。 企業は外部プラットフォームやサードパーティのサービスと簡単に統合し、さまざまなコンポーネントを接続することで包括的なソリューションを構築できます。 これにより、アプリ開発に対するモジュール式のアプローチが促進され、開発者は既存のサービスと機能を活用し、コードの再利用を促進し、開発サイクルを加速し、生産性を向上させることができます。

また、API はリスクの対象範囲を拡大し、マルチクラウド アーキテクチャ全体にわたる相互依存性の性質により、予期しないリスクをもたらします。 Web アプリと同様に、API は脆弱性の悪用、自動化された脅威による悪用、サービス拒否、構成ミス、認証および承認制御をバイパスする攻撃の影響を受けやすくなります。

API は、その性質上、ユーザー データ、認証資格情報、金融取引などの重要なビジネス ロジックと機密情報を公開するため、特にログイン、アカウント作成、カートへの追加、送金機能が攻撃者の標的になりやすくなっています。 API は、脆弱性や弱点を悪用したり、基盤となるインフラストラクチャやリソースを公開しようとする攻撃者の侵入ポイントになる可能性があります。  

API セキュリティのベスト プラクティスとは?

プライバシーを確保し、ユーザーと関係者の信頼を維持し、API の機密性、整合性、可用性を確保するために、データを不正アクセス、操作、または公開から保護するには、強力な API セキュリティ対策が必要です。 API セキュリティのベスト プラクティスは次のとおりです。

  • 強力な認証と承認を実装します。 適切な承認チェックを実施して、認証されたクライアントが特定のリソースにアクセスしたり特定のアクションを実行したりするために必要な権限を持っていることを確認します。 きめ細かいアクセス制御を使用して、機密性の高い API エンドポイントやデータ、および関連するオブジェクトや関数へのアクセスを制限します。
  • 入力および出力のエンコーディングを検証します。 API クライアントから受信したすべての入力を検証およびサニタイズしてインジェクション攻撃を防ぎ、出力を適切にエンコードして悪意のあるスクリプトの実行を防止します。
  • 安全な通信を使用してください。 API クライアントとサーバー間のデータ転送には安全なプロトコルを採用し、転送中および保存中の機密情報を暗号化して、データの機密性と整合性を確保します。 
  • レート制限とスロットルを実装します。 分散型サービス拒否 (DDoS) 攻撃やブルート フォース攻撃などの過度の使用や不正アクセスの試みを防ぐために、指定された時間枠内で API クライアントが実行できるリクエストの数に制限を適用します。
  • 定期的なセキュリティ テストと監査を実施します。 定期的なセキュリティ評価、侵入テスト、コードレビューを実行して、API の潜在的な脆弱性を特定して対処し、セキュリティ監査を実施して弱点を検出し、業界の標準と規制に準拠していることを確認します。 これは、API と基盤となるフレームワークおよびライブラリの相互依存性のため、特に重要です。
  • スキーマとプロトコルの準拠を強制します。 OpenAPI 仕様を使用してポジティブ セキュリティ モデルを自動的に作成および適用することは、一貫したセキュリティ ポリシーを確保するための貴重なツールです。
  • API を動的に検出し、継続的に評価します。 API の急増により、シャドー API を含む、説明のつかない、またはメンテナンスされていない API が発生しています。 セキュリティ制御では、サードパーティの相互依存性の予期しないリスクを軽減するために、ゼロ トラストと最小権限アクセス パラダイムを使用して API を継続的にインベントリし、保護する必要があります。 
  • 包括的な脅威検出。 API は、エクスプロイト、誤った構成、ボット、詐欺、乱用など、さまざまな脅威にさらされており、それらから保護する必要があります。

OWASP API セキュリティ トップ 10 — 2023

OWASP API セキュリティ トップ 10 – 2023は、一般的な API セキュリティの弱点に対する認識を高め、開発者、設計者、アーキテクト、マネージャー、および API の開発と保守に携わるその他の人々が API セキュリティに対して積極的なアプローチを維持できるようにするために策定されました。

2023 年の OWASP API セキュリティのトップ 10 リスクは次のとおりです。  

  1. オブジェクト レベルの認証が壊れています。 このセキュリティ脆弱性は、アプリケーションがオブジェクトまたはデータ レベルでアクセス制御を適切に実施できない場合に発生し、攻撃者が承認チェックを操作またはバイパスして、アプリケーション内の特定のオブジェクトまたはデータへの不正アクセスを許可できるようになります。 これは、承認チェックの不適切な実装、適切な検証の欠如、またはアクセス制御のバイパスが原因で発生する可能性があります。 オブジェクトの ID を受け取り、オブジェクトに対してアクションを実行するすべての API エンドポイントは、オブジェクト レベルの承認チェックを実装して、ログインしたユーザーが要求されたオブジェクトに対して要求されたアクションを実行する権限を持っていることを検証する必要があります。
  2. 認証が壊れています。 API の認証メカニズムは不適切に実装されることが多く、攻撃者がユーザー アカウントや機密データに不正にアクセスしたり、不正なアクションを実行したりできるようになります。 これは通常、認証プロセスの不適切な実装または構成、弱いパスワード ポリシー、セッション管理の欠陥、または認証ワークフローのその他の弱点が原因で発生します。 
  3. 壊れたオブジェクト プロパティ レベルの承認。 この脅威は、API がオブジェクト プロパティ レベルでアクセス制御と承認チェックを適切に実施できない場合に発生します。 API エンドポイントは、機密性が高いとみなされ、ユーザーが読み取るべきではないオブジェクトのプロパティを公開する場合、これらの攻撃に対して脆弱になります。このエクスプロイトは、過剰なデータ公開と呼ばれることもあります。 API エンドポイントは、ユーザーが機密オブジェクトのプロパティの値を変更、追加、または削除できるようにする場合、これらの攻撃に対して脆弱であり、このエクスプロイトはmass assignmentと呼ばれることもあります。
  4. 無制限のリソース消費。 この攻撃はリソース枯渇とも呼ばれ、API 実装の弱点を悪用して、CPU、メモリ、帯域幅、その他のシステム リソースなどのリソースを意図的に過剰に消費します。 このサービス拒否 (DoS) により、API または基盤となるシステムのパフォーマンスや可用性が低下し、ダウンタイムが発生する可能性があります。  
  5. 機能レベルの認証が壊れています。 この脅威は、API が機能レベルまたは操作レベルで承認チェックを適切に実施できず、攻撃者が許可されていない機能にアクセスできる場合に発生します。 最近のアプリケーションでは、多くの種類の機能ロールとグループが定義され、攻撃者が操作できる複雑なユーザー階層が含まれるため、適切な承認チェックを実装するのは混乱を招く可能性があります。 
  6. 機密性の高いビジネス フローへの無制限のアクセス。 この攻撃は、API に適切なアクセス制御や承認チェックがない場合に発生し、攻撃者が API によって裏付けられた機密性の高いビジネス フローへのアクセスを自動化できるようになります。これらのビジネス フローは、チケットやスニーカーなど、価値が高く在庫の少ない製品の大量購入をサポートしている可能性があり、二次市場で値上げして再販される可能性があります。 攻撃者は、高度な自動化ツールキットを使用して攻撃を改良することが多く、ターゲットの Web アプリが自動化対策によって適切に保護されている場合は、API の背後にあるビジネス ロジックを標的にするようになる可能性があります。  
  7. サーバー側リクエストフォージェリ (SSRF)。 この脆弱性は、ユーザーが指定した URL を受け入れたり、外部リソースに対してサーバー側のリクエストを実行したりする脆弱な API エンドポイントを攻撃者が特定した場合に発生します。 攻撃者は、攻撃者が標的とする内部リソースまたはシステムの URL を指定する悪意のあるリクエストを作成します。 サーバーは悪意のある意図に気付かず、指定された URL に対してサーバー側のリクエストを実行し、機密情報やサービスが公開される可能性があります。 
  8. セキュリティの設定ミス。 攻撃者は、未修正の欠陥、共通のエンドポイント、安全でないデフォルト構成で実行されているサービス、または保護されていないファイルやディレクトリを見つけて、API への不正アクセスを試みます。この脆弱性は、ネットワークからアプリケーション レベルまで、API スタックのあらゆるレベルで適切なセキュリティ強化が行われていない場合、またはクラウド サービスに対する権限が不適切に構成されている場合に発生する可能性があります。 誤った構成は Web アプリや API に影響を及ぼし、アーキテクチャが分散化してマルチクラウド環境に分散されるようになるにつれて、リスクが増大します。
  9. 不適切な在庫管理。 API は時間の経過とともに変更および更新されますが、古いバージョンや安全でないバージョンの API が運用環境に残されたり、古いエンドポイントがパッチを適用せずに実行されたり、セキュリティ要件が弱いまま使用されたりして、セキュリティ侵害のリスクが高まったりする可能性があります。 適切な在庫管理が行われていないと、どのバージョンが使用中か、どのバージョンが古くなったり非推奨になったりしているか、どの脆弱性が解決されているかを追跡することが困難になります。 シャドー API とゾンビ API は重大なリスクをもたらすため、継続的な検出と自動保護の重要性が強調されます。  
  10. API の安全でない使用。 開発者は、サードパーティの API、特に有名企業が提供する API から受信したデータを信頼する傾向があり、入力の検証とサニタイズ、またはトランスポート セキュリティに関して、このデータに対してより弱いセキュリティ要件を採用します。 安全でないプロトコルを介して API にアクセスした場合や、適切な暗号化メカニズムが使用されていない場合にも、安全でない使用が発生し、盗聴、データ傍受、機密情報への不正アクセスにつながる可能性があります。 

統合セキュリティ制御のケース

F5 が OWASP セキュリティリスクに対応

F5 は、OWASP Foundation と、ソフトウェア セキュリティの向上、および複数のレベルでの Web アプリケーションのセキュリティ リスクと脆弱性に関する認識の向上に尽力する同財団をサポートしています。 実際、アプリと API の両方に共通するセキュリティ リスクがあり、セキュリティ ソリューションを実装する際には考慮する必要があります。 例えば: 

  • 認証/承認制御が弱い  
  • 誤った設定 
  • ビジネス ロジックの悪用 (クレデンシャル スタッフィング、アカウント乗っ取り)  
  • サーバー側リクエストフォージェリ (SSRF)。

F5 は、アプリケーションの進化や API 導入の増加に伴って拡大する攻撃対象領域と新たな脅威を保護するソリューションにより、OWASP API セキュリティ トップ 10 で特定されたリスクに対処します。 F5 Web アプリケーションおよび API 保護 (WAAP) ソリューションは、 WAF、 API セキュリティ、L3-L7 DDoS 軽減、自動化された脅威や詐欺に対するボット防御などの包括的な保護により、最新のアプリの攻撃対象領域全体を防御します。 分散プラットフォームにより、ホストされている場所に関係なく、一貫したポリシーを簡単に導入し、アプリと API の資産全体にわたってセキュリティを拡張し、API ライフサイクルとより広範なセキュリティ エコシステムに保護を統合できます。

F5 は、コアからクラウド、エッジに至るまで、アプリと API を一貫して継続的に保護するハイブリッド セキュリティ アーキテクチャを提供します。 F5 ソリューションは、脅威インテリジェンス、ML ベースのセキュリティ、ゼロ トラスト原則を使用して、API の背後にある重要なビジネス ロジックを動的に検出し、自動的に保護し、API 主導のデジタル経済で競争するために必要な回復力と俊敏性を提供します。

F5 Web アプリケーション ファイアウォール ソリューションは、最も重大な Web アプリケーション セキュリティ リスクのリストとして広く認知されているOWASP Top 10で特定された幅広いリスクもブロックし、軽減します。 API は、Web アプリと同様に、誤った構成や自動化された脅威の影響を受けやすく、脆弱性の悪用、SSRF、認証および承認制御を回避しようとする攻撃の標的になる可能性があります。 F5 WAF ソリューションは、F5 Labs の脅威インテリジェンスや ML ベースのセキュリティなどのシグネチャと動作に基づく保護を組み合わせて、新たな脅威に対応します。また、特殊なボット防御制御と統合することもできます。

これらのソリューションは、クラウド、オンプレミス、エッジ環境全体でアプリケーションを一貫して保護する際の負担と複雑さを軽減し、集中化された SaaS インフラストラクチャによる管理を簡素化します。 F5 WAF は、コア セキュリティ機能、集中型オーケストレーション、分散アプリケーション全体のアプリ パフォーマンスとセキュリティ イベントを 360 度表示する単一のダッシュボードによる監視を備えた保護を開発フレームワークと CI/CD パイプラインに統合することで、アプリのセキュリティを合理化します。

F5 は、OWASP の Web アプリケーションに対する自動化された脅威プロジェクトで概説されているリスクに対処するソリューションも提供しています。 F5 Distributed Cloud Bot Defense は、既存のボット管理ソリューションを回避する可能性のある不正行為や悪用を防止し、リアルタイムの監視とインテリジェンス、および ML ベースの遡及分析を提供して、ユーザーに負担をかけたり、顧客エクスペリエンスを妨げたりすることなく、組織を自動化された攻撃から保護します。 分散型クラウド ボット防御は、攻撃者がどのようなツールを変更しても、攻撃が Web アプリから API に移行するか、テレメトリを偽装したり人間の CAPTCHA ソルバーを使用したりして自動化対策を回避しようとするかに関係なく、有効性を維持します。

F5 は、大規模なネットワーク、プロトコル、アプリケーションを標的とした攻撃をリアルタイムで検出して軽減する、管理されたクラウド配信型の軽減サービスとして、高度なオンライン セキュリティを実現する多層 DDoS 保護も提供しています。オンプレミスのハードウェア、ソフトウェア、ハイブリッド ソリューションでも同じ保護が利用できます。 F5 分散クラウド DDoS 緩和機能は、ボリューム型およびアプリケーション固有のレイヤー 3-4 攻撃と高度なレイヤー 7 攻撃がネットワーク インフラストラクチャやアプリケーションに到達する前に防御します。