San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
OWASP, API Security, WAF

A5: アクセス制御の脆弱性 2017 OWASP

はじめに

A5:Broken Access Control

攻撃者/攻撃手段セキュリティの弱点影響
BAC(アクセス制御の欠陥)を検出し悪用する技術は、攻撃者にとって重要なスキルです。アクセス制御の不備を検出するツールはいくつかありますが、制御自体の機能を証明することはできません。アクセス制御の問題は自動化では発見しにくく、非常に一般的です。また、開発者はアプリ内のアクセス制御を十分にテストしていない傾向があります。こうした問題を発見する最善の方法は、手作業で確認することです。技術的な影響としては、一般ユーザーが管理者としての操作を行えるようになることが挙げられます。場合によっては、完全に未認証のユーザーが管理者として振る舞うことも可能です。一方、ビジネス面での影響は、不正アクセスや情報漏洩により生じる損害に依存します。
A5: アクセス制御の脆弱性 2017 OWASP

アクセス制御とは?

アクセス制御とは、その名の通り、アプリ内で特定のユーザーに対し、権限を付与または制限する仕組みです。正しく実装されていれば、一般ユーザーが管理者専用のドキュメントをリクエストして閲覧することはありません。攻撃者がこれを可能にする方法を見つければ、アクセス制御を回避したことになります。ただし、アクセス制御はユーザーだけでなく、プロセスやデバイスにも適用されます。

主要なアクセス制御の 3 種類

  • 管理者向けアクセス制御

これは、全体のセキュリティポリシーを実現するために設けられたアクセス制御について述べています。主に、職員と業務プロセスに焦点があたります。具体例としては、ポリシー、採用手続き、身元調査などが含まれます。

  • 技術的アクセス制御

技術的、または論理的アクセス制御は、ハードウェアやソフトウェアを用いて、アクセス制御システムやリソースを不正利用から守るための追加防御層を提供します。一般的な実装方法としては、パスワード、ユビキー、スマートカード、プロトコル、またはファイアウォールなどが挙げられ、これによりAPI セキュリティが大幅に向上します。

  • 物理的アクセス制御

これは、非技術的な側面に着目したアクセス制御です。例えば監視カメラ、警備員、特定エリアへのアクセスを制限するロックなどがあります。

3 main types of access control

アクセス制御はどのように実施されるか

通常、ファイルには読み取り専用、読み書き可能、実行可能など、3 種類のアクセス権が設定されますが、ファイルの種類により異なる場合もあります。アクセス制御はシステムや標準作業手順に沿って実施され、複数の段階を経る必要があります。

  • まず、アクセス要求者を示す subject ID が必要です。
  • 次に、リクエストを行う人物の本人確認が、何らかの認証手段によって行われます。
  • 認証が成功した後、リクエストはアクセス制御リストと照合され、要求されたリソースへの権限があるかどうか、またそのアクセスレベルが決定されます。
  • 最後に、システムの欠陥や弱点を検出するため、監査が常に実施されるべきです。

アクセス制御の脆弱性を理解する

この脆弱性を正しく理解するには、まずアクセス制御が何であるかを知る必要があります。仕組みを理解していなければ、突破することも不可能です。サーバがリソースへの権限を付与または拒否する方法には、セッション・クッキーやJWTトークンなど様々な手段があります。ユーザーがリソースへアクセスを要求すると、サーバはまずそのリソースに対しアクセス権があるかを確認してから処理を実行します。これはGETリクエストの場合が多いですが、POST/PUT/DELETEといった他のHTTPメソッドでも同様です。問題は、開発者が全てのエンドポイントに対して、全てのHTTPメソッドで保護を実施しなければならない点にあります。つまり、アクセス制御が適切に実装されなければ、脆弱性が発生するのです。また、内部ネットワーク上のユーザーにのみコンテンツを提供するなど、他のアクセス制御手段が存在することも重要です。

broken access control example

アクセス制御の脆弱性発生のタイミング

通常、許可されていないリソースへのアクセスが成功した場合に脆弱性が発生します。多くの場合、認可の実装が不十分なことが原因です。例えば、あるサイトのエンドポイントが403エラーを返すにもかかわらず、X-Forwarded-For: “127.0.0.1” ヘッダーを追加することで回避されるケースがあります。また、開発段階のまま削除や適切な保護がされていない古いディレクトリも問題です。さらに、ユーザーがパスワードを平文で保存していると、コンピューターが侵害された際に、攻撃者が他のシステムやポータルへアクセスできる恐れがあります。加えて、簡単すぎるパスワードは推測されやすく、これも脆弱性の一因となります。以上より、以下の状況でアクセス制御の脆弱性が生じると考えられます - OWASPトップ10脆弱性:

  • 全てのHTTPメソッドに対して、不正なメソッドを禁止または保護する必要がある。
  • オブジェクトIDまたはユーザーID単位での制御。
  • サーバと直接やりとりする場合、またはインポート機能などを通してサーバが処理する場合も含む。
  • 内部ネットワーク専用のアイテムを、x-forwarded-for ヘッダーのみでチェックしている場合。
  • IDの代わりにUUIDを使用していて、UUIDを列挙するエンドポイントを公開している場合。

アクセス制御の脆弱性を検出する方法

脆弱性を検出するには、まずアクセス制御ポリシーをレビューする必要があります。これらが存在しない場合、貴社は脆弱な可能性が高いです。ポリシーは、ガイドラインやベストプラクティスを文書化しながら、アクセス制御の実施を厳格化するものです。コードレビューやペネトレーションテストも、攻撃者に先んじて問題を発見するための有効な手段です。また、現行のポリシーと制御が十分に機能しているかを確認するための監査も実施する必要があります。

アクセス制御の脆弱性例

  • CVE-2019-15511

ソフトウェア「GOG Galaxy」(バージョン1.2.60未満)には、ローカルでの特権昇格を可能にする脆弱性があります。このソフトはSYSTEM権限で動作し、ローカルTCP接続で送信されるコマンドの制御が不十分です。しかし、これだけではコマンドが実行されるわけではありません。アプリには実行可能な特権コマンドがあらかじめ定義されており、攻撃者が任意のファイルを乗っ取ることが可能となります。

https://nvd.nist.gov/vuln/detail/CVE-2019-15511

  • CVE-2019-14273

アクセスが制限されたファイルがリンクや画像として埋め込まれている場合、本来アクセスできないユーザーもその内容を閲覧でき、機密情報が流出する恐れがあります。

https://nvd.nist.gov/vuln/detail/CVE-2019-14273

アクセス制御の脆弱性を防ぐ方法

最も基本的な対策は、権限を確認し、適切に設定されているか確かめることです。しかし、これはすべてのファイルについて徹底的に実施する必要があります。編集権限は必要な職員のみに付与し、最小特権の原則に基づいて実装することが望ましいです。制限されたページでは、クライアント側のキャッシュを無効にすることで、再アクセスを防ぐ必要があります。また、いわゆる見た目だけのアクセス制御に依存するのは、実害のある攻撃者に対しては不十分です。よって、こうした重要なページは必ず認証によって保護されるべきです。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック