権利の拡大 – ウィキペディア
いつ 権利の拡大 、権利の増加、特権の拡大または特権のエスカレーション、コンピューターバグの使用、またはリソースへのアクセスを目的としたソフトウェアの構造または構成エラーとも呼ばれます。
ほとんどのコンピューターシステムは、アクセス権の管理のための概念を含むマルチユーザーシステムとして設計されています。拡張は、ユーザーが通常持っていない権利を受け取ることを意味します。これらの権限を使用して、ファイルを削除したり、他のユーザーから個人情報を変更したり、変更したりできます。不要なプログラムのインストールも可能です。セキュリティ概念を可能にする関連システムにエラーがある場合、特権エスカレーションが発生します。
2つのバリエーションがあります。
- 垂直権の権利: ユーザーまたはアプリケーションによるアクセス権の増加、または実際には、より高い特権ユーザーであるリソースを使用できることを目的として、主に他のユーザーグループから。例:管理権を持っているユーザーによるドライバーソフトウェアのインストール。
- 水平権の拡大: 通常のユーザーは、他の通常のユーザー向けに予約されている関数またはコンテンツにアクセスします。例:ユーザーAとユーザーBは同じユーザーグループに属しますが、ユーザーBにはネットワークにアクセスする権利もあります。権利の水平方向の権利により、ユーザーはこれを正しく理解しています。
このタイプの特権拡張は、ユーザーまたは申請プロセスが、おそらくコア要素を介して管理者またはシステムの権利を取得できる場合に発生します。
垂直特権拡張の例 [ 編集 | ソーステキストを編集します ]
多くの場合、特権のあるプロセスでは、インターフェイス仕様に入力されたデータが満たされ、チェックなしで行う必要があります。攻撃者は、この前提条件を使用して、非許可コードが非常に特権的に制御されたアプリケーションによって実行されるように使用できる場合があります。
- Microsoft Windowsオペレーティングシステムの古いバージョンでは、Screen Saverはシステムユーザーアカウントのコンテキストで実行されます。画面のアプリケーションを独自のアプリケーションに置き換えることができる各アカウントは、システムの特権を獲得しました。
- StuxNetは、現在のWindowsバージョンでCRC32が不十分なXMLファイルによって閉じられているタスクプランナーのギャップを使用しています。かつて通常のユーザーによって作成されたタスクは、XMLファイルを操作して、システムユーザーアカウントの権利で開始されるように変更することで変更できます。 [初め]
- Linuxカーネルの一部のバージョンでは、ゼロポインターを介してルートの権利を取得することができました。原因は、リリースが早すぎるカーネルのミューテックスでした。 [2]
- UDEVサービスのセキュリティギャップは、udevに操作されたNetLinkメッセージを使用してLinuxでルートの権利を取得することができました。 [3]
- Linuxカーネルの特定のバージョンは、子プロセスとその現在のディレクトリを作成するプログラムを作成することを可能にしました
/etc/cron.d
設定できます。この子プロセスは、クラッシュが発生した場合にストレージ画像を作成するためにマークされました。その後、子どものプロセスは人為的に終了しました。メモリ画像は現在設定されたディレクトリ、つまり/etc/cron.d
、ルートアカウントが入力され、所有者が入力されました。 Cronはファイルを自動的に実行しました。ファイルの内容は元のプログラムの攻撃者によって定義されていたため、攻撃者はルートの権利を持つコードを実行することができました。 [4]
- クロスゾーンスクリプトは、クライアントコンピューターでコードを実行できるように、WebサイトがWebブラウザーの安全モデルを引き受ける攻撃バリアントです。
- 権利の拡大の別のバリアントは、脱獄と呼ばれます。これは、たとえばiPhoneでリリースされていないアプリを実行したり、ゲームコンソールでHomeBrewコンピュータープログラムを使用したりするなど、ほとんどがDRM保護されたシステムのロックを解除またはバイパスすることを意味します。これらのシステムは通常、特権エスカレーションを使用して分割されるサンドボックスに基づいて機能します。
損害制限のための戦略 [ 編集 | ソーステキストを編集します ]
次の戦略により、特権拡大の犠牲者になるリスクが減ります。
- データ実行防止
- 空間レイアウトのランダム化に対応します
- ポインター認証(PAC) [5]
- 特定のアプリケーションに対する管理者SIDの一般的な非活性化。
- カーネルモードコードは、デジタルで署名されている場合にのみ実行する必要があります。
- 現在のウイルス対策ソフトウェアの使用。
- 通常のソフトウェアの更新。
- バッファーオーバーフローをチェックするソフトウェア開発におけるコンパイラの使用。
- ソフトウェアおよび/またはファームウェアコンポーネントの暗号化。
- 特権ユーザー(管理者など)の権利の削減、最小限の特権 [6] 。
水平特権拡張は、攻撃者が別のユーザーのために予約されているリソースにアクセスできるようになったときに発生しますが、彼らはあまり特権ではありません。その結果、アプリケーションまたはユーザーは、アプリケーション開発者またはシステム管理者が元々意図していたものとは異なるセキュリティコンテキストでアクションを実行します。
水平特権拡大の例 [ 編集 | ソーステキストを編集します ]
この問題は、多くの場合、Webアプリケーションで発生します。例:
- ユーザーAは、インターネットバンキングアプリケーションでアカウントにアクセスできます。
- ユーザーBは、同じインターネットバンキングアプリケーションでアカウントにアクセスできます。
- セキュリティギャップは、ユーザーAが悪意のあるアクティビティによってユーザーBアカウントにアクセスできるときに発生します。
- この悪意のあるアクティビティは、一般的なWebアプリケーションの弱点やギャップによって可能です。
Webアプリケーションの潜在的な弱点は次のとおりです。
- ↑ オンラインでheise: 27C3:Microsoft Security Expert Reports on StuxNet Hunt 。 2010年12月28日。2010年12月29日にアクセス。
- ↑ オンラインでheise: Linuxカーネルのギャップにより、ルートアクセスが可能になります 。 2009年11月4日。2010年12月29日にアクセス。
- ↑ ダニエル・バッハフェルド: Linuxの脆弱性はルートの権利を可能にします。 の: heise.de。 16. 2009年4月、 2021年6月22日にアクセス 。
- ↑ Securiteam: Linuxカーネル2.6.x PRCTLコアダンプ処理 。 2006年7月13日。2010年12月31日にアクセス。
- ↑ https://lwn.net/articles/718888/
- ↑ 最小特権-OWASP。 2018年11月13日にアクセス (英語)。
Recent Comments