サイバー攻撃

【解説】アクセス制御の不備が招くWebアプリの脆弱性と対策

Written by 夏野ゆきか

【解説】アクセス制御の不備が招くWebアプリの脆弱性と対策


失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする

アクセス制御の不備とは、本来アクセス権限を持つユーザーのみが利用できる機能や情報に対して、権限を持たないユーザーがアクセスできてしまう状態を指します。

アクセス制御の不備があると、不正アクセスや情報漏洩、システムの不正利用などの重大なセキュリティリスクを引き起こす可能性があります。
アクセス制御の不備によって発生する代表的な脆弱性には、以下のようなものがあります。

1. 不適切なアクセス制御 アクセス権限の検証が不十分なため、不正なリクエストが許可されてしまう脆弱性。
2. IDORの脆弱性 URLやリクエストパラメータに含まれるオブジェクトIDを操作することで、他人のデータにアクセスできてしまう脆弱性。
攻撃者が意図的にパラメータを変更し、不正にデータを取得できる可能性がある。
3.権限昇格 権限チェックの不備を突くことで、自身の権限外の処理等が実行可能となる脆弱性 。
低権限のアカウントから管理者権限のような強い権限を取得されると、システム全体が乗っ取られるリスクがある。
4.クライアントサイドでのアクセス制御 アクセス制御がサーバー側ではなく、クライアントサイド(JavaScriptやHTML)で実装されている脆弱性。
攻撃者がブラウザの開発ツールを使用して簡単に制御を無効化できるため、不正アクセスが発生しやすくなる。
5.過剰な権限付与 ユーザーに必要以上の権限が付与され、意図しないリスクが引き起こされる脆弱性。
例えば、一般ユーザーに管理者権限を与えることで、重要データの改ざんや削除などが可能となる。
6.退職者や異動者の権限管理の不備 アカウントの棚卸が不十分であることや管理者の失念により、退職者や異動者による不正アクセスが可能になる脆弱性。
7.APIやサードパーティサービスのアクセス制御不備 外部APIやサードパーティサービスとの連携において、アクセス制御が不十分なことから、データ漏洩や不正利用のリスクが生じる脆弱性。

アクセス制御の不備を解消するには、適切な設計と現状の把握が重要です。
「ユーザーのアクセス権限を適切に管理する」「認証および認可のチェックを徹底する」「Webサーバーのディレクトリリスティングを無効化する」などの対策が求められます。

この記事では、アクセス制御の不備とは何か、想定されるリスクや対策などについて解説します。

▼この記事を要約すると

  • アクセス制御の不備とは、本来権限を持たないユーザーが、特定の機能やデータにアクセスできてしまう状態を指す
  • アクセス制御の不備によって、ユーザーに不要な権限が付与されたり、本来アクセスできないデータが閲覧・改ざんされる 危険性がある
  • アクセス制御の不備を防ぐためには、「アクセス権限の厳密な管理」「適切な認可制御の実装」といった対策が重要

アクセス制御とは


アクセス制御とは、システムやデータに対するアクセス権を適切に設定し、許可されたユーザーのみが特定の情報や機能にアクセスできるようにする仕組みを指します。例えば、「顧客情報には正社員のみアクセス可能とし、アルバイトは閲覧できないようにする」といった制限がこれに該当します。

適切なアクセス制御を実施することで、不正アクセスの防止、情報漏洩の抑制、システムの改ざんや乗っ取りのリスク低減が可能となります。

アクセス制御は「1.認証」「2.認可」「3.監査」という3つの要素によって成り立っています。

1.認証 アクセスを試みるユーザーが、正規の利用者であるかを確認するプロセス。
「知識情報(ID・パスワードなど)」や「生体認証(指紋、顔など)」「所持情報(セキュリティトークン、ワンタイムパスワード)」などの情報を使って本人かどうか識別する。
2.認可 認証されたユーザーに対し、操作可能な範囲や権限を付与するプロセス。
あらかじめ設定されたアクセス制御リストなどに基づき、以下のようにアクセス権を設定する。
 
・「編集可」「閲覧のみ可」などの権限設定
・一般社員は自部門のデータのみアクセス可能、管理者は全データ閲覧可
3.監査 ユーザーのアクセス履歴や操作ログを記録・確認し、不正アクセスの検知や証跡管理を行うプロセス。
認証・認可の履歴をログとして保存することで、不正アクセスを行った攻撃者の特定やアクセス制御の正当性の確認などが行える。

適切なアクセス制御の実施により、組織の機密情報やシステムの安全性を確保できます。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする

アクセス制御の不備とは


アクセス制御の不備とは、本来権限を持たないユーザーが、特定の機能やデータに不正にアクセスできる状態を指します。適切な制御が施されていない場合、以下のようなセキュリティリスクが発生します。

  • 機密情報の漏洩:権限管理の不備により、顧客情報や社内の重要データが第三者に閲覧・流出する。
  • データや設定の改ざん:不正アクセスにより、業務システムのデータが書き換えられ、誤情報の拡散や業務の混乱を招く。
  • アカウントの乗っ取り:攻撃者が管理者権限を奪取し、不正な操作を実行することで、システム全体が制御不能になる。

こうしたセキュリティリスクを防ぐため、企業・組織は適切なアクセス制御の設計および、定期的な設定の見直しが必要です。

OWASP Top 10でアクセス制御の不備が1位に

OWASP(Open Web Application Security Project)は、Webアプリケーションのセキュリティ向上を目的とする非営利団体であり、同団体が公表するOWASP TOP10とは、Webセキュリティ上多発する脅威の中でも、特に深刻な脆弱性をランキング形式で示したものです。
2025年3月現在、最新版にあたる2021年版では、「アクセス制御の不備」が1位となり、多くのアプリケーションで深刻な問題として確認されています。

  1. アクセス制御の不備
  2. 暗号化の失敗
  3. インジェクション
  4. 安全が確認されない不安な設計
  5. セキュリティの設定ミス
  6. 脆弱で古くなったコンポーネント
  7. 識別と認証の失敗
  8. ソフトウェアとデータの整合性の不具合
  9. セキュリティログとモニタリングの失敗
  10. サーバーサイドリクエストフォージェリ(SSRF)

調査データによると、テスト対象のアプリケーションの3.81%が、1つ以上の「アクセス制御の不備」に関連する脆弱性(CWE)を持っていることが確認されました。また、このカテゴリに該当するCWE(共通脆弱性タイプ)の総数は318,000件以上にのぼります。

さらに「アクセス制御の不備」に該当するCWEは34種類あり、他のカテゴリと比較しても、アプリケーション内での発生件数が特に多いことが判明しています。これは、適切なアクセス制御が設定されていないアプリケーションが非常に多いことを示しており、企業や開発者にとって優先的に対策すべき重大な課題となっています。

MOTEX(エムオーテック)が提供する脆弱性診断サービスにおいても、検出数の多いWebアプリケーションの脆弱性を比較すると、「アクセス制御の不備」が最多となりました。


※MOTEX自社調べ

このように、アクセス制御の不備はWebアプリケーションの重大な脆弱性であり、企業や組織にとって喫緊の課題となっています。

アクセス制御の不備がもたらす脆弱性とリスク

ここからは、アクセス制御の不備に起因する主な脆弱性と、それに伴うリスクについて解説します。

1. 不適切なアクセス制御

不適切なアクセス制御(Broken Access Control)は、アクセス制御が適切に設計・実装されていないことで、本来認証を必要とするリソースへ攻撃者が容易にアクセスできてしまう脆弱性です。

例えば、以下のようなケースが該当します。

  • 直接URLを入力することで、本来閲覧できない管理画面や機密データへアクセスできる。
  • 権限のないユーザーが管理者機能を実行できる。

攻撃者は、これらの脆弱性を突いて、企業の内部情報を不正に取得したり、システムの設定を改ざんしたりすることが可能になります。特に、バックエンド側での適切なアクセス制御が行われていない場合、攻撃者がAPIエンドポイントを直接叩くことで、認証不要でデータを取得・操作できるリスクがあります。

サーバーサイドでの厳格な認証・許可を実装し、アクセス制御の境界を明確にすることが必要です。

2. IDORの脆弱性

IDOR(Insecure Direct Object References)は、オブジェクトの識別子(ID)が外部から変更可能な状態になっていることで、本来アクセスできないデータへ不正にアクセスできる脆弱性です。
例えば、以下のようなケースが該当します。

https://example.com/user/123 の「123」を「124」に変更することで、他人の個人情報が閲覧できる。

この脆弱性が悪用されると、個人情報の流出、企業の信用低下、不正取引の実行といったリスクが生じます。特に、金融・医療システムでは、適切なアクセス制御が行われていないと、患者情報や金融データが流出する可能性があり、規制違反や訴訟リスクにつながる可能性もあります。

対策としては、リクエストごとにユーザーの権限を厳密に検証し、アクセス制御リスト(ACL)やロールベースアクセス制御(RBAC)を適切に適用することが重要です。また、UUIDを用いた識別子の採用や、エンドポイントごとの認可強化を行うことで、攻撃を防ぐことができます。

※ロールベースアクセス制御(RBAC):ユーザーの役割(ロール)に基づいてアクセス権限を管理するアクセス制御の仕組み

3.権限昇格

権限昇格(Privilege Escalation)とは、本来アクセス権限を持たないユーザーが、不適切なアクセス制御を悪用し、管理者権限を取得する攻撃です。以下のような手口が一般的です。

  • 管理画面へのリンクがUI上で非表示になっているだけで、URLを直接入力すればアクセスが可能。
  • 権限チェックが不十分で、特定のパラメータ変更や脆弱性を利用し、管理者権限を取得できる。

権限昇格が成功すると、攻撃者はデータの改ざん・削除、マルウェアの埋め込み、サービス妨害(DoS攻撃)などを実行できます。内部ネットワークが侵害された場合、ランサムウェア攻撃やサプライチェーン攻撃の踏み台にもなり得ます。

これを防ぐためには、まずプログラムの改修を行い、不要な特権の付与や権限チェックの不備を修正することが重要です。 その上で多要素認証(MFA)を義務化し、特定の権限操作には追加認証を求めることで、不正アクセスのリスクを低減できます。

4.クライアントサイドでのアクセス制御

アクセス制御をJavaScriptやHTMLといったクライアントサイドのみで実装すると、攻撃者が簡単に制御を回避できるため、セキュリティリスクが高まります。
例えば、以下のようなケースが該当します。

  • 管理機能のボタンやメニューがクライアント側で非表示になっているだけで、URLを直接指定するとアクセスできてしまう。
  • ブラウザの開発者ツールを使用してJavaScriptのコードを改変することで、本来許可されていない操作を実行できる。

この問題を防ぐためには、アクセス制御は必ずサーバーサイドで実装し、リクエストごとに厳密な権限チェックを行うことが重要です。

5.過剰な権限付与

過剰な権限付与(Excessive Privileges)とは、ユーザーに必要以上の権限を与えてしまうことで、意図しないリスクを引き起こす状態です。

例えば、一般ユーザーが管理者と同じ権限を持っている場合、システムの設定を変更したり、他のユーザーの情報を操作したりすることが可能です。部門ごとに適切なアクセス制御が行われておらず、他部門のデータにアクセスできる状態になっているケースもあります。

このような状態では、内部不正やデータの改ざん、機密情報の漏洩などのリスクが高まります。
この問題を防ぐためには、「最小権限の原則(Least Privilege)」の徹底が重要です。各ユーザーには業務に必要な最小限の権限のみを付与し、定期的に権限の見直しを行い、不要な権限は速やかに削除しましょう。

6.退職者や異動者の権限管理の不備

退職や異動によって不要になったアクセス権限を放置していると、不正アクセスのリスクが発生します。

例えば、退職した従業員のアカウントが削除されず、引き続きシステムへアクセスできる場合や、異動後も以前の権限が有効なままで、本来関係のないデータにアクセスできる状態が続いているケースが挙げられます。
この問題を防ぐためには、定期的なアカウントの見直しを行い、不要な権限を削除することが必要です。また、IAM(Identity and Access Management)を活用し、アカウント管理を自動化することも有効な手段でしょう。

関連ページ

IAMとは?企業のセキュリティ対策や業務効率化で重要な理由

7.APIやサードパーティサービスのアクセス制御不備

APIやサードパーティサービスとの連携において、アクセス制御が不十分な場合、データの漏洩や不正利用のリスクが発生します。

例えば、外部APIが認証なしで利用できる状態になると、攻撃者が容易にデータを不正取得できてしまいます。サードパーティサービスに過剰な権限を付与することで、本来想定していないデータが外部へ漏洩する可能性も考えられるでしょう。
この問題を防ぐためには、OAuthやAPIキー、トークン認証を適切に設定し、認証なしでのアクセスを防ぐことが欠かせません。サードパーティに付与する権限は最小限にし、不要なデータアクセスを防ぎましょう。

アクセス制御の不備への対策

アクセス制御の不備は、適切な対策を講じることで、攻撃者による悪用を防ぎ、システムの安全性を確保することができます。
アクセス制御の不備を防ぐための、具体的な対策を解説します。

ユーザーのアクセス権を厳密に管理する

システムへのアクセスを適切に制御することは、アクセス制御の不備を防ぐ基本的な対策です。以下のポイントを徹底することで、セキュリティリスクを大幅に低減できます。

1. 未認証・未登録ユーザーのアクセスを拒否する

匿名アカウントや未登録のユーザーがシステムにアクセスできないよう、適切な認証・認可を設定します。デフォルトアカウントの無効化や、不要なゲストアカウントの削除を徹底することが重要です。

2. 管理者アカウントの権限を最小化する

管理者アカウントが攻撃者に乗っ取られた場合、システム全体が危険にさらされるため、以下のような対策を講じます。

  • 最小権限の原則(PoLP)を適用
    管理者アカウントであっても、必要な権限のみを付与し、過剰な特権を与えないようにします。
  • 特権アカウントの使用を監視
    管理者アカウントの利用状況を定期的に監査し、不審な操作がないかを確認します。特に、深夜や休日など通常とは異なる時間帯のログイン試行は警戒します。

3. 必要最小限のアクセス権を付与する

各ユーザーには業務遂行に必要な範囲内でのみアクセス権を与え、それ以外のデータやシステムリソースにはアクセスできないようにします。定期的な権限監査と、RBAC(Role-Based Access Control) や ABAC(Attribute-Based Access Control) などの、アクセス制御モデルを活用すると効果的です。

認可制御の処理を適切に実装する

アクセス制御の不備における対策では、認証だけでなく、適切な認可制御の実装が不可欠です。認可が不十分だと、認証済みのユーザーが本来許可されていないデータを閲覧・変更できるなどの脆弱性が発生し、不正アクセスのリスクが高まるためです。

特に、利用者ID等をURLやリクエストパラメータに含める設計では、攻撃者がこれらの値を改ざんし、他のユーザーのデータを不正に取得・変更する危険があります(IDORの脆弱性)。
また、適切な認可チェックが行われていない場合、権限のないユーザーが管理者レベルの操作を実行できる権限昇格のリスクも生じます。さらに、クライアントサイドで認可制御を行う設計では、攻撃者が開発ツールを用いて容易に制御を無効化し、不正アクセスを許してしまう可能性があります。

これらの脆弱性を防ぐには、ユーザーから送信されたセッション情報を用いて、正規のユーザーかどうかをサーバー側で厳格に検証することや、外部からのリクエストパラメータを信用しないことが重要です。
例えば、データベースを検索・変更する際には、リクエストされた識別情報がログイン中のユーザーに適切な権限があるかを必ず確認し、外部から送信されたパラメータを直接参照しない設計を徹底する必要があります。

また、フェイルセーフな設計を採用し、認可設定の漏れがあっても重大な問題が発生しない仕組みを整えることも不可欠です。特に、大規模なシステムでは、統一されたアクセス制御ポリシーを適用し、一貫したルールで管理することで、認可制御の抜け漏れを防ぐことができます。

Webサーバーのディレクトリリスティングを無効にする

ディレクトリリスティングとは、Webサーバーが特定のディレクトリに対するアクセスを許可し、そのディレクトリ内にあるファイルやフォルダの一覧を表示する機能を指します。
例えば、ブラウザで「http://example.com/testimages/」にアクセスした際、本来意図していない画像ファイルやHTML、CSSファイルの一覧が表示されることがあります。この機能が有効になっていると、本来非公開であるべきデータが外部に漏洩するリスクが生じます。

攻撃者がWebサーバーのディレクトリ構造を把握しやすくなるため、以下のようなリスクを招く可能性があります。

  • 機密情報の流出(設定ファイル、バックアップファイルなどが公開される可能性)
  • 既知の脆弱性を持つファイルの特定・悪用(古いスクリプトやライブラリを特定し、攻撃の足掛かりに)
  • 攻撃者によるWebサーバー構造の把握(サーバーファイルの構成を特定し、攻撃を計画)

対策として、Webサーバーの設定を変更し、ディレクトリリスティングを無効化することが推奨されます。ApacheやNginxなど主要なWebサーバーでは、設定ファイルを編集すれば簡単に無効化が可能です。
適切な設定を施し、不要な情報の露出を防ぐことで、Webサーバーのセキュリティ向上を図ります。

関連ページ

ディレクトリリスティングとは?リスクや無効化の方法を解説

また、アクセス制御を含む「Webサイトの脆弱性対策」については、以下の記事でも解説しています。

関連ページ

Webサイト作成時の注意点はここだ! 脆弱性診断でよく発見される指摘ポイントTOP5

アクセス制御の不備がもたらす脆弱性の対策なら
LANSCOPE プロフェッショナルサービス

アクセス制御の不備は、組織に不正アクセスや情報漏洩といったリスクをもたらします。適切なアクセス制御を実装するには、システムやアプリケーションに潜む脆弱性を特定し、早期に対策を講じることが不可欠です。

LANSCOPE プロフェッショナルサービスでは、アクセス制御に関連する脆弱性を特定し、安全性を強化するための専門的な「Webアプリケーション脆弱性診断」を提供しています。

国家資格である情報処理安全確保支援士の資格を所持したセキュリティ専門家が、攻撃者の視点からWebアプリケーションの脆弱性を診断。マニュアル診断、ツール診断、ソースコード診断の3つの手法を組み合わせることで、精度の高い分析を実施します。

また診断後は、詳細なレポートを提供し、アクセス制御の不備やその影響範囲を明確化。発見された脆弱性に対する、具体的な修正方法や改善策も提案します。

▼アクセス制御の強化策の例

  • 認証・認可の適正化(必要最小限の権限を付与など)
  • セッション管理の適切な管理や、多要素認証(MFA)の導入
  • XSSなど主要な脆弱性の修正と、継続的な監視

サービスの詳細は、以下の製品サイトよりご覧ください。

関連ページ

Webアプリケーション脆弱性診断の詳細│LANSCOPE プロフェッショナルサービス

まとめ

本記事では、「アクセス制御の不備」をテーマに、その概要や、それによって生じる脆弱性について解説しました。

本記事のまとめ

  • アクセス制御の不備とは、本来権限を持たないユーザーが、特定の機能やデータにアクセスできてしまう状態を指す
  • アクセス制御の不備によって、ユーザーに不要な権限が付与されたり、本来アクセスできないデータが閲覧・改ざんされる危険性がある
  • アクセス制御の不備を防ぐためには、「アクセス権限の厳密な管理」「適切な認可制御の実装」といった対策が重要

アクセス制御の不備を放置すると、不正アクセス、情報漏洩、システムの悪用など、重大なセキュリティインシデントを招く可能性があります。これらのリスクを回避するために、適切なアクセス制御を実施し、定期的な監査や棚卸を行うことが重要です。

外部の脆弱性診断サービスを利用し、専門家の視点でアクセス制御の不備を洗い出し、優先順位の高い対策について提案を受けることも有効です。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする