
権限昇格とは、オペレーティングシステムやソフトウェアアプリケーションのバグ、設計上の欠陥、または設定ミスを悪用して、通常はアプリケーションやユーザーから保護されているリソースへのアクセス権を取得する行為です。その結果、アプリケーション開発者やシステム管理者が意図した以上の権限を持つアプリケーションやユーザーが、不正な操作を実行できるようになります。
ほとんどのコンピュータシステムは、複数のユーザーアカウントで使用できるように設計されており、各アカウントには権限と呼ばれる機能が割り当てられています。一般的な権限には、ファイルの閲覧や編集、システムファイルの変更などがあります。
権限昇格とは、ユーザーが本来持つべきではない権限を取得することを意味します。これらの権限は、ファイルの削除、個人情報の閲覧、ウイルスなどの不要なプログラムのインストールなどに悪用される可能性があります。これは通常、システムにセキュリティを回避できるバグが存在する場合、またはシステムの使用方法に関する設計上の前提に欠陥がある場合に発生します。権限昇格には、次の2つの形態があります。

この種の権限昇格は、ユーザーまたはプロセスが、管理者またはシステム開発者が意図したよりも高いレベルのアクセス権限を取得できる場合に発生します。これは、カーネルレベルの操作を実行することによって行われる可能性があります。
場合によっては、高権限アプリケーションは、インターフェース仕様に一致する入力のみが提供されると想定し、その入力を検証しないことがあります。すると、攻撃者はこの想定を悪用し、アプリケーションの権限で不正なコードを実行できる可能性があります。
/etc/cron.d、クラッシュした場合に備えてコアダンプの実行を要求し、その後別のプロセスによって強制終了されるプログラムを作成することが可能でした。コアダンプファイルはプログラムの現在のディレクトリ、つまり に配置され/etc/cron.d、スケジュールに従ってプログラムを実行するように指示するテキストファイルとして扱われます。ファイルの内容は攻撃者の制御下にあるため、攻撃者はrootcron権限で任意のプログラムを実行できます。Android スマートフォンは、メーカーが管理するプロセスを経由するか、エクスプロイトを使用してルート権限を取得するか、ルート化変更をインストールすることによって公式にルート化できます。メーカーは、自社が管理するプロセスを通じてルート化を許可していますが、一部のメーカーは、起動時に特定のキーの組み合わせを押すだけで、またはその他の自己管理方式でスマートフォンをルート化できるようにしています。メーカーの方法を使用すると、ほぼ必ずデバイスが工場出荷時設定にリセットされるため、データを表示したい人にとってルート化は役に立たなくなり、デバイスのルート化を解除して再フラッシュしても、保証は永久に無効になります。ソフトウェアのエクスプロイトは、一般的に、スマートフォンのカーネルに固有のエクスプロイトを使用するか、新しいバージョンでパッチが適用された既知の Android エクスプロイトを使用することによって、ユーザーがアクセスできるルートレベルのプロセスをターゲットにするか、スマートフォンをアップグレードしないか、意図的にバージョンをダウングレードすることによって行われます。
オペレーティングシステムとユーザーは、権限昇格のリスクを軽減するために、以下の戦略を用いることができます。
最近の研究では、特権昇格攻撃に対する効果的な防御策が明らかになっています。これには、OSの脆弱性を標的とした攻撃を特に防止する追加カーネルオブザーバ(AKO)の提案が含まれます。研究によると、AKOは実際に特権昇格攻撃に対して効果的です。[ 5 ]
水平権限昇格は、アプリケーションが攻撃者に、通常はアプリケーションやユーザーから保護されているリソースへのアクセスを許可した場合に発生します。その結果、アプリケーションは、アプリケーション開発者やシステム管理者が意図したものとは異なるセキュリティコンテキストで、同じユーザーとしてアクションを実行します。これは実質的に限定的な権限昇格(具体的には、他のユーザーになりすます能力を不正に取得すること)です。垂直権限昇格と比較すると、水平権限昇格ではアカウントの権限をアップグレードする必要はありません。多くの場合、システムのバグに依存します。[ 6 ]
この問題はWebアプリケーションでよく発生します。次の例を考えてみましょう。
この悪意のある行為は、一般的なWebアプリケーションの脆弱性や弱点によって可能になる場合があります。
この状態を引き起こす可能性のあるWebアプリケーションの脆弱性や状況には、以下のようなものがあります。