この記事にはMacの「認証」ダイアログに関する情報が不足しています。(2021年9月) |
多くのコンピュータオペレーティングシステムでは、悪意のあるソフトウェアがコンピュータシステムを侵害するのに十分な権限を取得するのを防ぐためのセキュリティ機能を採用しています。 DOS、Windows NT (およびその派生)より前のWindows実装、CP/M-80、Mac OS X より前のすべての Mac オペレーティングシステムなど、こうした機能のないオペレーティングシステムでは、何でも実行できるユーザーのカテゴリは 1 つしかありませんでした。個別の実行コンテキストを使用すると、複数のユーザーがプライベートファイルを保存したり、複数のユーザーが同時にコンピュータを使用したり、システムを悪意のあるユーザーから保護したり、システムを悪意のあるプログラムから保護したりすることができます。 最初のマルチユーザーセキュアシステムはMulticsで、1960 年代に開発が始まりました。マルチタスクセキュリティコンテキストがx86コンシューママシンに導入されたのは、80 年代後半から 90 年代前半のUNIX、BSD、Linux、およびNTになってからでした。
| ユーザーアカウント制御( UAC): Windows Vista以降のMicrosoft Windowsオペレーティングシステムに含まれているUACは、アプリケーションが管理者タスクを実行しようとしたときにユーザーに承認を求めます。 [ 1 ] | |
| Runas : Windows 2000で導入されたコマンドラインツールおよびコンテキストメニュー機能。プログラム、コントロールパネルアプレット、またはMMC スナップインを別のユーザーとして実行できます。 [ 2 ] Runas は、同じく Windows 2000 で導入された「セカンダリログイン」 Windows サービスを利用します。 [ 3 ]このサービスは、別のユーザーとして実行されているアプリケーションが、ログインしているユーザーのデスクトップと対話できるようにする機能を提供します。これは、ドラッグアンドドロップ、クリップボード共有、その他の対話型ログイン機能をサポートするために必要です。 | |
| sudo : Windows 11 バージョン 24H2には Windows 版のsudoが付属しています。デフォルトでは有効になっていませんが、開発者向け設定ページで有効にすることができます。 [ 4 ] |
macOSには認証ダイアログが含まれており、管理者タスクを実行する際にユーザーにパスワードの入力を求めます。これは本質的にsudoコマンドのグラフィカルなフロントエンドです。 |
| PolicyKit/pkexec :使用中のデスクトップ環境に依存しないように設計された権限認証機能。GNOME [ 5 ]では既に採用されている。以前のシステムとは異なり、PolicyKitを使用するアプリケーションは、現在のユーザーの権限よりも高い権限で実行されることはない。代わりに、PolicyKitデーモンに間接的にリクエストを送信する。PolicyKitデーモンは、ルート権限で実行される唯一のプログラムである。 | |
| su : Unix用のコマンドラインツール。su (substitute user) を使用すると、ユーザーはユーザー名とパスワードを入力することで、端末を別のアカウントに切り替えることができます。ユーザー名を指定しない場合は、オペレーティングシステムのスーパーユーザーアカウント(「root」と呼ばれる)が使用され、システムへの完全な権限を持つログインシェルを迅速に取得できます。exit コマンドを実行すると、ユーザーは元のアカウントに戻ります。 | |
| sudo :1980年頃に作成された[ 6 ] 。suに似た高度に設定可能なUnixコマンドラインツールであるが、特定のユーザーがルートシェルを生成したりルートのパスワードを要求したりすることなくルート権限でプログラムを実行できるようにする。 [ 7 ] | |
| GKSuとGKsudo:suとsudoのGTK+グラフィカルフロントエンド。[ 8 ] GKsuは、サポートされているアプリケーションがルート権限を必要とするアクションを実行する必要があるときに自動的に起動します。su / sudoの代わりにPolicyKitを使用する代替手段「 gksu PolicyKit」が、GNOMEの一部として開発されています。[ 9 ] | |
| kdesu : KDEのsuコマンドのQtグラフィカルフロントエンド。[ 10 ] | |
| kdesudo : Kubuntu 7.10以降、Kubuntuでkdesuに代わるsudoのQtグラフィカルフロントエンド。[ 11 ] | |
| ktsuss : ktsuss は「suをシンプルに、愚かに」の略で、suのグラフィカルバージョンです。このプロジェクトの理念は、シンプルさとバグのなさを維持することです 。 | |
| beesu : Red Hatベースのオペレーティングシステムにおいてgksuに代わるsuコマンドのグラフィカルフロントエンド。主にRHELとFedora向けに開発されている。[ 12 ] | |
| doas : OpenBSD 5.8 (2015 年 10 月) 以降のsudo の代替 |
このセクションは、Macの「認証」ダイアログに関する情報を追加して拡張する必要があります。不足している情報を追加していただけると助かります。 (2009年12月) |
セキュリティ上の主要な考慮事項は、悪意のあるアプリケーションがキーストロークやマウスのクリックをシミュレートし、セキュリティ機能を 騙したり偽装したりして、悪意のあるアプリケーションに高い権限を付与する能力です。
もう一つのセキュリティ上の考慮事項は、悪意のあるソフトウェアが、正当なセキュリティ確認要求を装ったダイアログを表示する可能性があることです。ユーザーが偽のダイアログを正当なものと思い込み、認証情報を入力すると、悪意のあるソフトウェアはユーザーのパスワードを入手してしまいます。セキュアデスクトップなどの機能が無効化されている場合、悪意のあるソフトウェアはそのパスワードを利用してより高い権限を取得する可能性があります。

これらの実装で考慮されたもう 1 つの点は、使いやすさです。
このセクションは、Macの「認証」ダイアログに関する情報を追加して拡張する必要があります。不足している情報を追加していただけると助かります。 (2009年12月) |
sudo -kkdesu -ssudo -kAltF2このセクションは、Macの「認証」ダイアログに関する情報を追加して拡張する必要があります。不足している情報を追加していただけると助かります。 (2009年12月) |
オペレーティングシステムがユーザーに認証を求めるタイミングを判断するには、アプリケーションまたはアクションが、昇格された権限を必要とすることを自ら認識している必要があります。技術的には、そのような権限を必要とする操作が実行された瞬間にユーザーに認証を求めることは可能ですが、タスクの完了途中で権限を求めるのは必ずしも理想的ではありません。ユーザーが適切な資格情報を提供できない場合、タスクを最後まで実行できず、管理者権限を要求する前に行われた作業が元に戻される可能性があります。
Microsoft WindowsのコントロールパネルやMac OS Xの環境設定パネルなどのユーザーインターフェースの場合、正確な権限要件はシステムにハードコードされており、適切なタイミングで(例えば、管理者のみが閲覧できる情報を表示する前など)、ユーザーに認証ダイアログが表示されます。オペレーティングシステムによって、アプリケーションがセキュリティ要件を識別するための方法は異なります。
/etc/sudoersには、ユーザーのリストと、それらのユーザーが使用できる権限付きアプリケーションおよびアクションが含まれます。sudoersファイルの文法は、コマンドラインパラメータの制限など、様々なシナリオに対応できる柔軟性を備えています。例えば、次のように記述することで、ユーザーにrootアカウントを除くすべてのユーザーのパスワードを変更する権限を与えることができます。ピート ALL = /usr/bin/passwd [Az]*, !/usr/bin/passwd root
Notepad.exe.manifestファイルです(例:.manifest)。アプリケーションが起動されると、マニフェストを参照して、アプリケーションのセキュリティ要件に関する情報が取得されます。例えば、次のXMLフラグメントは、アプリケーションが管理者アクセスを必要とするものの、アプリケーション外部のユーザーデスクトップの他の部分への自由なアクセスは必要としないことを示しています。<security> <requestedPrivileges> <requestedExecutionLevel level= "requireAdministrator" uiAccess= "false" /> </requestedPrivileges> </security>