ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  1539  : トラックバック  133

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

別の資格情報を用いた安全な起動方法 の続き

Windows Service ですが、default では 'NT AUTHORITY\SYSTEM' で起動するように構成されるのが多いわけですが、'NT AUTHORITY\SYSTEM' 以外の account で起動できるのもご存知の方は多いでしょう。
'NT AUTHORITY\SYSTEM' は password が無い特殊な account なので例外として、その他の account で Windows Service を起動する場合、他の process を起動する場合と同様に password が必須になるわけです。

Service propeties window logon tab

結局、password を保持しいて、必要に応じてそれを取り出して、それを用い別の資格情報で process を起動するというところは変わらないわけですが、とりあえず Windows Service の起動を見てみましょう。

  1. Windows が起動する際に 'winlogon.exe' が SCM(Service Control Manager: 'services.exe') を呼び出す。
  2. SCM は Service の起動を要求されると 'lsass.exe' に対しその Service が起動されるべき account の username と password を取り出すよう要求する。
  3. 'lsass.exe' は暗号化され、かつ security 保護された場所から username, password を取得し、SCM に返す。
  4. SCM は受け取った username, password を使い対象の service process を起動する。

Process tree 'services.exe'

これだけじゃ何が安全かわからないですね。

実は重要なのは、上記であげた process がすべて 'NT AUTHORITY\SYSTEM' で起動していることなんです。
Password の動きを考えください。保存する場所はもともと 'NT AUTHORITY\SYSTEM' のみ扱える場所に保存されていますし、それを渡すのは user の process ではなく、SCM なわけです。

つまり、password は 'NT AUTHORITY\SYSTEM' の手から外には渡らないということになります。
別の資格情報で process を起動したり、偽装する場合でより高い security を求めるには、このあたりを意識する必要があると思います。

投稿日時 : 2007年4月26日 2:09

コメント

# DB への接続 user を共用した場合の client-server 構成での 問題点 2008/05/11 4:37 ちゃっぴの監禁部屋
DB への接続 user を共用した場合の client-server 構成での 問題点

Post Feedback

タイトル
名前
Url:
コメント