OWASP API Security Top 10の概要とベストプラクティス
APIは最新のアプリケーションアーキテクチャにおいて重要な役割を果たしており、このOWASPプロジェクトでは、一般的なAPIセキュリティ上の弱点に対する認識向上に重点を置いています。
APIの開発と保守に携わる方々への啓発と、一般的なAPIセキュリティ上の弱点に対する認識の向上が、OWASP(Open Worldwide Application Security Project)が策定したAPIセキュリティリスクのトップ10の目的です。APIは攻撃者の標的となるケースが増えており、OWASPのAPIセキュリティプロジェクトでは、API固有の脆弱性とセキュリティリスクを把握し、軽減するための戦略とソリューションに重点を置いています。
APIとは
API(アプリケーションプログラミングインターフェース)は、アプリケーションが他のアプリケーション、サービス、プラットフォームと通信し、データを交換できるようにするため、最新のアプリケーション開発に不可欠です。APIはアプリケーションモダナイゼーション戦略の重要な要素であり、モバイルアプリの基盤でもあります。企業はAPIを活用することで、外部プラットフォームやサードパーティサービスと容易に連携し、さまざまなコンポーネントを接続して包括的なソリューションを構築できます。これにより、既存のサービスや機能の活用、コードの再利用、開発サイクルの短縮、生産性の向上を可能にする、モジュール型のアプリケーション開発が促進されます。
APIはリスク領域も拡大させます。特に、マルチクラウドアーキテクチャ全体にわたる相互依存関係の性質上、予期せぬリスクが生じます。Webアプリと同様に、APIも脆弱性の悪用、自動化された脅威による不正利用、サービス拒否、設定ミス、認証および認可の制御を回避する攻撃の影響を受ける可能性があります。
APIはその性質上、ユーザーデータ、認証情報、金融取引など、重要なビジネスロジックや機密情報を外部に公開するため、攻撃者の標的となるケースが増えています。特に、ログイン、アカウント作成、カートへの追加、送金の各機能が狙われます。APIは、脆弱性や弱点を悪用したり、基盤となるインフラストラクチャやリソースを露出させたりしようとする攻撃者の侵入口となる可能性があります。
APIセキュリティのベストプラクティスとは?
堅牢なAPIセキュリティ対策が必要です。これは、不正なアクセス、改ざん、漏えいからデータを保護してプライバシーを確保し、ユーザーやステークホルダーからの信頼を維持するとともに、APIの機密性、完全性、可用性を確保するためです。APIセキュリティのベストプラクティスには、以下が含まれます。
- 強力な認証と認可を実装する認証済みのクライアントが、特定のリソースへのアクセスや所定の操作の実行に必要な権限を持っていることを確認するため、適切な認可チェックを適用します。きめ細かなアクセス制御を使用して、機密性の高いAPIエンドポイントやデータ、および関連するオブジェクトや機能へのアクセスを制限します。
- 入力を検証し、出力をエンコードする。 APIクライアントから受信するすべての入力を検証およびサニタイズしてインジェクション攻撃を防止し、出力を適切にエンコードして悪意のあるスクリプトの実行を防止します。
- セキュアな通信を使用する。APIクライアントとサーバー間のデータ送信にはセキュアなプロトコルを使用し、転送中および保存時の機密情報を暗号化して、データの機密性と完全性を確保します。
- レート制限とスロットリングを実装する。APIクライアントが指定された時間内に送信できるリクエスト数を制限し、過剰な利用や、次のような不正アクセスの試みを防止します。分散型サービス拒否(DDoS)攻撃およびブルートフォース攻撃。
- セキュリティテストと監査を定期的に実施する。 APIの潜在的な脆弱性を特定して対処するため、セキュリティ評価、ペネトレーションテスト、コードレビューを定期的に実施します。また、弱点を検出し、業界標準や規制要件への準拠を確保するため、セキュリティ監査も実施します。APIと、その基盤となるフレームワークやライブラリは相互に依存しているため、これは特に重要です。
- スキーマとプロトコルへの準拠を徹底する。 OpenAPI仕様に基づいてポジティブセキュリティモデルを自動的に作成し、適用することは、一貫したセキュリティポリシーを確保するうえで有効です。
- APIを動的に検出し、継続的に評価する。 APIの急増により、把握されていないAPIや保守されていないAPIが生じています。これには、シャドーAPIも含まれます。サードパーティとの相互依存関係に伴う予期せぬリスクを軽減するには、ゼロトラストと最小権限アクセスの考え方に基づき、セキュリティ制御によってAPIを継続的にインベントリ化し、保護する必要があります。
- 包括的な脅威検知。APIは、エクスプロイト、設定ミス、ボット、不正行為、悪用など、さまざまな脅威にさらされるため、保護する必要があります。
OWASP API Security Top 10 — 2023
一般的なAPIセキュリティの弱点に対する認識を高め、APIの開発と保守に携わる開発者、デザイナー、アーキテクト、マネージャーなどがAPIセキュリティに積極的に取り組めるよう支援するために、OWASP API Security Top 10 – 2023が策定されました。
2023年版OWASP API Security Top 10のリスクは次のとおりです。
- オブジェクトレベルの認可の不備。 このセキュリティ脆弱性は、アプリケーションがオブジェクトまたはデータのレベルでアクセス制御を適切に適用できず、攻撃者が認可チェックを操作または回避して、アプリケーション内の特定のオブジェクトやデータに不正にアクセスできる場合に発生します。原因としては、認可チェックの不適切な実装、適切な検証の欠如、アクセス制御の回避などが挙げられます。オブジェクトのIDを受け取り、そのオブジェクトに対して何らかの操作を実行するすべてのAPIエンドポイントでは、ログイン中のユーザーが対象のオブジェクトに対して要求された操作を実行する権限を持っていることを検証するため、オブジェクトレベルの認可チェックを実装する必要があります。
- 認証の不備APIの認証メカニズムは不適切に実装されることが多く、攻撃者がユーザーアカウントや機密データに不正アクセスしたり、不正な操作を実行したりする可能性があります。一般に、認証プロセスの不適切な実装や設定、脆弱なパスワードポリシー、セッション管理の不備、または認証ワークフローにおけるその他の脆弱性が原因で発生します。
- オブジェクトプロパティレベルの認可不備。この脅威は、APIがオブジェクトプロパティレベルでアクセス制御と認可チェックを適切に実施できない場合に発生します。APIエンドポイントが、機密と見なされ、ユーザーによる読み取りが許可されるべきでないオブジェクトのプロパティを公開している場合、この攻撃に対して脆弱です。この悪用は、過剰なデータ公開と呼ばれることがあります。また、APIエンドポイントで、ユーザーが機密オブジェクトのプロパティ値を変更、追加、または削除できる場合も、この攻撃に対して脆弱です。この悪用は、一括割り当てと呼ばれることがあります。
- 無制限のリソース消費。リソース枯渇とも呼ばれるこの攻撃は、API実装の脆弱性を悪用し、CPU、メモリ、帯域幅などのシステムリソースを意図的に過剰消費させるものです。このサービス拒否(DoS)により、APIまたは基盤システムのパフォーマンスや可用性が低下し、ダウンタイムにつながる可能性があります。
- 機能レベルの認可不備。 この脅威は、APIが機能または操作レベルで認可チェックを適切に実施できず、攻撃者が認可されていない機能にアクセスできる場合に発生します。最新のアプリケーションでは、さまざまな種類の機能ロールやグループを定義できるうえ、攻撃者に悪用される可能性のある複雑なユーザー階層が存在するため、適切な認可チェックの実装は複雑になりがちです。
- 機密性の高いビジネスフローへの無制限のアクセス。この攻撃は、APIに適切なアクセス制御や認可チェックがなく、攻撃者がAPIを基盤とする機密性の高いビジネスフローへのアクセスを自動化できる場合に発生します。こうしたビジネスフローでは、チケットやスニーカーなど、価値が高く在庫の少ない商品を大量に購入し、流通市場で価格を上乗せして転売できる場合があります。攻撃者は高度な自動化ツールキットを使用して攻撃手法を組み替えることが多く、標的のWebアプリが自動化対策によって十分に保護されている場合は、APIの背後にあるビジネスロジックを標的に切り替える可能性があります。
- サーバーサイドリクエストフォージェリ(SSRF)。この脆弱性は、ユーザーが指定したURLを受け入れる、または外部リソースへのサーバー側リクエストを実行する脆弱なAPIエンドポイントを攻撃者が特定した場合に生じます。攻撃者は、標的とする内部リソースやシステムのURLを指定した悪意のあるリクエストを作成します。サーバーはその悪意に気付かず、指定されたURLへのサーバー側リクエストを実行するため、機密情報やサービスが漏えいする可能性があります。
- セキュリティの設定ミス。攻撃者は、APIへの不正アクセスを目的として、未修正の脆弱性、一般的なエンドポイント、安全でないデフォルト設定で稼働しているサービス、保護されていないファイルやディレクトリを探します。この脆弱性は、ネットワークからアプリケーションレベルまで、APIスタックのいずれかのレベルで適切なセキュリティ強化が行われていない場合や、クラウドサービスの権限が不適切に設定されている場合に生じる可能性があります。設定ミスはWebアプリとAPIに影響を及ぼします。また、アーキテクチャの分散化が進み、マルチクラウド環境全体に広がるにつれて、そのリスクは高まっています。
- 不適切なインベントリ管理。APIは時間の経過とともに変更や更新が行われますが、古いバージョンや安全性に問題のあるバージョンが本番環境に残ったり、古いエンドポイントがパッチ未適用のまま、または脆弱なセキュリティ要件で稼働し続けたりすることで、セキュリティ侵害のリスクが高まる可能性があります。適切なインベントリ管理が行われていないと、使用中のバージョン、古いバージョンや非推奨のバージョン、対処済みの脆弱性を追跡することが困難になります。 シャドーAPIとゾンビAPIは重大なリスクをもたらします。このことは、継続的な検出と自動化された保護の重要性を浮き彫りにしています。
- APIの安全でない利用。開発者は、サードパーティAPI、特に著名な企業が提供するAPIから受信したデータを信頼しがちであり、そのデータに対する入力検証やサニタイズ、通信のセキュリティに関する要件を緩める傾向があります。また、安全でないプロトコル経由でAPIにアクセスした場合や、適切な暗号化メカニズムを使用していない場合にも、APIの安全でない利用が発生する可能性があります。その結果、盗聴、データの傍受、機密情報への不正アクセスにつながるおそれがあります。
統合型セキュリティ制御が必要な理由
F5によるOWASPセキュリティリスクへの対応
F5は、ソフトウェアセキュリティの向上と、さまざまなレベルにおけるWebアプリケーションのセキュリティリスクおよび脆弱性への認識向上に取り組むOWASP Foundationを支援しています。実際、アプリとAPIの両方に共通するセキュリティリスクがあります。セキュリティソリューションを導入する際には、こうしたリスクを考慮する必要があります。たとえば、次のようなものです。
- 脆弱な認証/認可制御
- 設定ミス
- ビジネスロジックの悪用(クレデンシャルスタッフィング、アカウント乗っ取り)
- サーバーサイドリクエストフォージェリ(SSRF)。
F5は、拡大する攻撃対象領域と新たな脅威から保護するソリューションにより、OWASP API Security Top 10で特定されたリスクに対処します。アプリの進化とAPI導入の増加に伴い、 F5 Web Application and API Protection(WAAP)ソリューションは、WAF、API Security、L3~L7のDDoS緩和、自動化された脅威や不正行為に対するボット対策など、包括的な保護機能によって、最新アプリの攻撃対象領域全体を防御します。分散型プラットフォームにより、一貫したポリシーを容易に導入し、アプリとAPIの環境全体にわたって、ホストされている場所を問わずセキュリティを拡張できます。また、保護機能をAPIライフサイクルや、より広範なセキュリティエコシステムに統合できます。
F5は、ハイブリッドセキュリティアーキテクチャを提供し、コアからクラウド、エッジに至るまで、アプリとAPIを一貫して継続的に保護します。F5のソリューションは、脅威インテリジェンス、MLベースのセキュリティ、ゼロトラストの原則を活用して、APIの背後にある重要なビジネスロジックを動的に検出し、自動的に保護します。これにより、API主導のデジタル経済で競争するために必要なレジリエンスと俊敏性を実現します。
F5 Web Application Firewallソリューションは、OWASP Top 10で特定されている広範なリスクもブロックし、軽減します。OWASP Top 10は、最も重大なWebアプリケーションセキュリティリスクをまとめた、広く認知されているリストです。APIもWebアプリと同様に、設定ミスや自動化された脅威の影響を受けやすく、脆弱性を悪用する攻撃、SSRF、認証および認可制御の回避を試みる攻撃の標的となる可能性があります。F5 WAFソリューションは、F5 Labsの脅威インテリジェンスやMLベースのセキュリティを含む、シグネチャベースおよび振る舞いベースの保護を組み合わせることで、新たな脅威に対応します。また、専用のボット対策制御と統合することもできます。
これらのソリューションは、クラウド、オンプレミス、エッジの各環境にわたってアプリケーションのセキュリティを一貫して確保する際の負担と複雑さを軽減するとともに、一元化されたSaaSインフラストラクチャによって管理を簡素化します。また、F5 WAFは、主要なセキュリティ機能と一元的なオーケストレーションを備えた保護機能を開発フレームワークやCI/CDパイプラインに統合し、分散アプリケーション全体のアプリケーションパフォーマンスとセキュリティイベントを360度可視化する単一のダッシュボードから監視できるようにすることで、アプリケーションセキュリティを効率化します。
F5は、OWASPの「Webアプリケーションに対する自動化された脅威プロジェクト」で示されているリスクに対処するソリューションも提供しています。F5 Distributed Cloud Bot Defenseは、既存のボット管理ソリューションを回避する不正行為や悪用を防止します。また、ユーザーに負担をかけたり、顧客体験を損なったりすることなく、自動化された攻撃から組織を保護するため、リアルタイムの監視とインテリジェンスに加え、機械学習に基づく事後分析を提供します。Distributed Cloud Bot Defenseは、攻撃者が手法を変更しても、攻撃対象がWebアプリからAPIに移行しても、テレメトリの偽装や人間によるCAPTCHA解読サービスの利用によって自動化対策を回避しようとしても、その有効性を維持します。
F5は、高度なオンラインセキュリティを実現する多層型DDoS防御も提供しています。これは、大規模なネットワーク攻撃、プロトコル攻撃、アプリケーションを標的とする攻撃をリアルタイムで検知・緩和する、クラウド提供型のマネージド緩和サービスです。同等の防御機能は、オンプレミスのハードウェア、ソフトウェア、ハイブリッドソリューションとしても利用できます。F5 Distributed Cloud DDoS Mitigationは、ボリューム型攻撃、アプリケーション固有のレイヤー3~4攻撃、高度なレイヤー7攻撃がネットワークインフラストラクチャやアプリケーションに到達する前に防御します。
F5 ADSPのプラットフォームコンポーネントがOWASPのセキュリティリスクからどのように保護するかについて詳しくは、以下のリソースをご覧ください。

