OWASP API Security Top 10とは?

Open Web Application Security Project(OWASP)では、アプリケーションプログラミングインターフェース(API)における最大のセキュリティリスクをまとめています。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • OWASP API セキュリティトップ10を要約する
  • このリストとOWASPトップ10を比較する

記事のリンクをコピーする

OWASP API Security Top 10とは?

Open Web Application Security Project(OWASP)は、 Webアプリケーションのセキュリティを推進することを目的とした非営利団体です。OWASPは、セキュアなウェブアプリケーションの構築を望むすべての人に、多くの無料リソースを提供しています。

最も広く参照されているリソースの1つに、Webアプリケーションの10大セキュリティ懸念事項をリストアップしているOWASPトップ10があります。

また、OWASPはほとんどのWebアプリケーションにとって重要な構成要素であるアプリケーションプログラミングインタフェース (API)についても同様のリストを別途管理しています。このリストは「OWASP API Securityトップ10」です。

2019年現在*、OWASP API Securityトップ10には以下のように記述されています。

  1. オブジェクトレベルでの許可の不備:これは、リクエスト内のオブジェクト識別子を操作して、機密データへの不正アクセスを行うことを指します。攻撃者は、識別子を変更するだけで、本来アクセスできないはずのオブジェクト(データ)にアクセスします。
  2. 認証の不備:認証が正しく実装されていない場合、攻撃者はAPIユーザーになりすまし、機密データにアクセスできるようになる可能性があります。
  3. データの過度な露出:多くのAPIはデータを公開する側に不備を抱えていますが、API利用者側で適切にデータをフィルタリングしてくれることを当てにしています。これにより、権限のない人がデータを見ることができる可能性があります。
  4. リソースの制限、頻度の制限の不足:デフォルトでは、多くのAPIは、既定の時間内に受け取ることができるリクエストの数やサイズを制限していません。これは、サービス拒否(DoS)攻撃に対して無防備な状態のままとなります。
  5. 機能レベルの認可の不備:このリスクは承認に関係するものです。APIユーザに過剰な権限が与えられている可能性があり、データ漏えいにつながる可能性があります。
  6. 一括での割り当て:API は、ユーザーの入力を自動的に複数のプロパティに適用します。攻撃者はこの脆弱性を利用して、例えば、ユーザープロファイルの他の無害なプロパティを更新している間に、自分自身を管理者に変えることができます。
  7. 不適切なセキュリティ設定:これはAPIを設定する際の様々な不備を包括します。これには HTTPヘッダの設定間違い、不要なHTTPメソッド、OWASPが「機密情報を含む冗長なエラーメッセージ」と呼ぶものなどが含まれます。
  8. インジェクション:インジェクション攻撃では、攻撃者がAPIに特殊なコマンドを送信して、データを漏えいさせたり、予期せぬ動作を実行させたりします。SQLインジェクションについて、詳しくはこちらをご覧ください
  9. 不適切なアセット管理: これは、現在production状態のAPIとdeprecated(非推奨)のAPIの両方を追跡していない場合に発生し、 シャドーAPIにつながります。API は、非常に多くのエンドポイントを利用可能にする傾向があるため、このリスクに対して脆弱です。
  10. 不充分なロギングとモニタリング:OWASPは、調査によると侵害を検出するのに通常200日以上かかると指摘しています。詳細なイベントログと綿密なモニタリングによって、API開発者は侵害をはるかに早期に発見し、阻止することができます。

*2021年12月現在、このリストは2019年以降更新されていません。

これら10のセキュリティリスクについて、詳しくはOWASPの公式ページをご覧ください。

OWASPトップ10リスト(完全なリストはこちら)とOWASP APIセキュリティトップ10リストの間には、いくつかのクロスオーバーが存在します。例えば、インジェクション、認証の不備、不充分なロギングとモニタリングは両方に登場します。しかし、APIはWebアプリケーションとは若干リスクが異なります。開発者は、両方のリストを考慮しておく必要があります。

Cloudflare API Shieldは、これら10のセキュリティリスクに対してどのように対処するのか?

Cloudflare API Shieldは、階層化されたAPI防御機能を使用してAPIに起因するさまざまな攻撃から保護します。含まれる機能には、データ損失防止(リスク1と3に対応)、mutual TLS(リスク2)、レート制限(リスク4)があります。すべての機能のリストについては、Cloudflare API Gatewayのページをご覧ください。

APIセキュリティについて、詳しくはAPIセキュリティとは何か?をご覧ください。