[基礎解説]
Windowsセキュリティ・メカニズム入門(後編)―― Windows OSのセキュリティ・チェックの仕組みを知る ――1.管理者権限でログオンするとは?畑中 哲2006/06/16 |
|
前編では、Windows OSにおけるセキュリティの仕組みについて、プロセスとそこに割り当てられているトークンや特権について解説した。後編では、管理者権限とトークンの関係や、実際にトークンの内容を書き換えた場合の挙動の変化などについて解説する。
「管理者権限でログオンする」ということの意味
よく「管理者権限でログオンする」ということがある。だが厳密には、「管理者権限」などというものは存在しない。例えば、「管理者特権」という特権は存在しない。
「管理者権限でログオンする」などというのは、通常、ローカルAdministratorsグループに所属するユーザーとしてログオンすることをいう。
ローカルAdministratorsグループに所属するユーザーとしてログオンすると、最初のプロセスのトークンに「私はローカルAdministratorsグループに属しています」という情報が記載される。また、ローカルAdministratorsグループに与えられている特権すべてがそのトークンに記載される。
管理者権限でログオンする |
「管理者権限でログオンする」とは、通常、ローカルAdministratorsグループに所属したユーザーとしてログオンすることをいう。この場合、最初のプロセス向けに作成されたトークンには、ローカルAdministratorsグループに所属しているという情報のほか、ローカルAdministratorsグループに与えられているすべての特権が記載される。 |
Windows OSのデフォルト設定では、オブジェクトのACLには、通常ローカルAdministratorsグループに対してフル・コントロールを許可することが記載されている。
デフォルトのACL |
オブジェクトのACLには、デフォルトでは、ローカルAdministratorsグループに対してフル・コントロールを許可することが記載されている。 |
また、Windows OSのデフォルトの設定では、ローカルAdministratorsには多くの特権が与えられている。
デフォルトの特権 |
デフォルトでは、ローカルAdministratorsには多くの特権が与えられている(下線部がローカルAdministratorsグループ)。ローカルAdministratorsに所属するユーザーは、これらの特権を利用することができる。 |
これらの結果、ローカルAdministratorsに所属するユーザーとしてログオンすると、それ以降に起動するプロセスすべてで、さまざまなオブジェクトに対してフル・コントロールの権限でアクセスでき、多くの特権的操作を行うことができる。
つまり、「管理者権限でログオン」するといろいろなことが実行できるのは、ログオンしたユーザーに「管理者権限」というものがあるからではない。ローカルAdministratorsグループに対して、たまたま強力なアクセス権を認めるACLが付いているオブジェクトが多く、また、たまたまデフォルトで多くの特権が与えられているからにすぎない。まとめると次のようになる。
|
「管理者権限でログオン」したとしても、トークンから「ローカルAdministratorsグループに所属している」という情報が削除されれば、そのプロセスは、「管理者権限を必要とする」ような操作は何もできなくなってしまう。
トークンからローカルAdministratorsグループに所属しているという情報を削除した場合のプロセスの例(クリックすると別ウィンドウで開きます) | ||||||||||||||||||||||||||||||||||||
先の図と同様に、ローカルAdministratorsグループに属しているユーザーAliceというアカウントでログオンしている。そのため、最初のプロセスのトークンには「ローカルAdministratorsグループに属している」という情報が記載されている。ここでAliceが子プロセスを起動すると、親プロセスのトークンがコピーされるが、そこから「ローカルAdministratorsグループに属している」という情報を削除してみる。すると子プロセスからは、管理者権限を必要とする操作は一切行えなくなる。この例では、デスクトップにログオンしているのは、Aliceで、「管理者権限」を持っている。そして、Aliceの起動した子プロセスはAliceであるというトークンを持っている。にもかかわらず、この子プロセスは、「管理者権限を必要とする」アクセスや操作を行うことができなくなるのである。つまり、Aliceが「管理者権限」を持っているわけではない。Aliceの起動したプロセスのトークンに、ローカルAdministratorsグループに所属しているという属性が付いているから、いわゆる管理者権限を必要とする多くの操作が可能になっているのである。 | ||||||||||||||||||||||||||||||||||||
|
また、たとえトークンがそのままでも、オブジェクトのACLに「ローカルAdministratorsグループにアクセスを許可する」という記載がないオブジェクトには、アクセスすることはできない。ローカルAdministratorsグループに与えられていない特権が必要な操作もできない。
すべては各プロセスのトークン次第であり、各オブジェクトのACL次第であり、個別の特権次第である。もう一度繰り返すが、「管理者権限」というものはない。ましてや、デスクトップに誰がログオンしているかはまったく関係ない(デスクトップとは、不正確を承知でいえば、画面に表示されるウィンドウの境界線にすぎず、セキュリティ・チェックの境界線ではない)。
INDEX | ||
[基礎解説] | ||
Windowsセキュリティ・メカニズム入門(前編) | ||
1.セキュアなOSに必要なこと | ||
2.プロセスとトークンとACL | ||
3.トークンと特権的操作 | ||
4.トークンの作成と書き換え | ||
Windowsセキュリティ・メカニズム入門(後編) | ||
1.管理者権限でログオンするとは? | ||
2.トークンの内容を確認する | ||
3.トークンの内容を書き換えてみる | ||
4.別のユーザーとして実行する機能とWindows Vista | ||
「基礎解説」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|