
ブロークン・アクセス・コントロールとは何か?
壊れたアクセス制御 アプリケーションが、ユーザが何を見たり、何をしたりできるかについて、適切な制限を実施しない場合に発生します。
つまり、攻撃者はロジックの欠陥を悪用して、他のユーザーの記録を閲覧したり、許可なく管理者タスクを実行したりするなど、本来は禁止されているはずのデータやアクションにアクセスする。
この脆弱性は OWASPトップ10 というのも、これは一般的かつ危険だからだ。ひとたびアクセス制御が破られれば、攻撃者は派手なエクスプロイトを必要としない。特権の境界を越えて水平方向や垂直方向に移動するために、いくつかの細工を施したリクエストを送るだけでいいのだ。
一般的な例
タイプ | 説明 | 例 |
---|---|---|
水平エスカレーション | 同じ権限レベルで他のユーザーのデータにアクセスすること。 | 変更 user_id=1 への user_id=2 をクリックすると、他のユーザーのプロフィールを読むことができます。 |
垂直エスカレーション | 通常のユーザーロールから管理者レベルのパーミッションにジャンプする。 | リクエストボディを変更して "役割":"管理者" . |
IDOR(安全でない直接オブジェクト参照) | 所有権を確認せずにオブジェクトに直接アクセスする。 | ダウンロード /請求書?id=5678 たとえそれが他のユーザーのものであっても。 |
クライアント側のみのチェック | アクセス制御を隠しボタンや無効化された入力に頼る。 | HTMLに隠された "削除 "ボタンは、APIを通じて呼び出すことができる。 |
非表示ボタン、無効化されたUI要素、JavaScriptチェックなど、クライアントサイドのコントロールは実装が簡単でユーザーエクスペリエンスを向上させるため、開発者はしばしばクライアントサイドのコントロールに依存する。問題は、これらのフロントエンドのルールが唯一の防御ラインとして扱われる場合に発生する。厳密なサーバーサイドの実施なしでは、すべてのAPIエンドポイントが暗黙の信頼境界となる。オブジェクトの所有権、役割の主張、セッション・トークンの検証が欠けていたり、一貫していなかったりすると、細工されたリクエストによって、識別子、リプレイ・トークン、または要求者が見るべきでないデータにアクセスしたり操作したりするために変更されたペイロードを代用できることになる。チームが最小特権の原則を無視し、広範なロール、長寿命のトークン、過剰なAPIスコープを付与した場合、攻撃対象は拡大し、サービス全体での実施はもろくなる。
現実世界での影響は深刻である。アクセス・コントロールが破られると、攻撃者は機密性の高い顧客データや企業データを流出させたり、記録を改ざんしたり、重要な情報を削除したりすることが可能になります。多くの場合、アクセス・コントロールはより大きな侵害の軸となります。特権の昇格や横方向への移動が可能な敵対者は、システム全体や管理コンソールを乗っ取る可能性があります。直接的な被害だけでなく、このような障害はしばしば規制やコンプライアンス違反の引き金となり、GDPRやPCI DSSのようなフレームワークのもと、企業は罰金や是正費用にさらされることになる。
その発見と予防法
- サーバーで常にアクセス制御を実施する - クライアントを信じてはいけない。
- 最小特権の原則を適用する - 各ユーザーまたはAPIキーは、必要なものだけを持つべきである。
- オブジェクトの所有権を確認する リソースを返したり変更したりする前に。
- 予測不可能な識別子を使用する 連続したIDの代わりに。
- 役割ベースのアクセス制御(RBAC)の実装 と一貫性のある検証ロジック。
- 継続的なテストの実施 Penligentのような自動化ツールで。

ペンリゲント壊れたアクセス制御のための自然言語検出
寡黙 を使えば、セキュリティ・チームはコードもスクリプトも使わず、自然言語のプロンプトだけでアクセス・コントロールの欠陥をテストできる。
プロンプトの例
「私のウェブアプリケーションにアクセス制御の脆弱性がないかチェックしてください。
次に何が起こるか:
自動的に過失:
- エンドポイントとロールを列挙する;
- 複数のユーザーレベルをシミュレートします;
- 不正アクセスを検知する;
- どのAPIやページが公開されているかをハイライトする;
- 本番システムに触れることなく、改善策を提案します。
AIの推論とルールベースの検証を組み合わせることで、Penligentは以下を実現します。 守備の洞察 数時間単位ではなく、数分単位で。
主な収穫
壊れたアクセス・コントロールは単なるコーディング・ミスではなく、オートメーションが早期に発見できるようになった設計上の欠陥なのだ。
Penligentを使えば、「反応的な修正」から プロアクティブ・プロテクションアプリケーションを安全かつインテリジェントに監査するために、平易な英語を使用します。