とりあずネタふり。
Security に配慮した application 開発を行う場合、別の資格情報を用いて実行することが必須なわけです。
ASP.NET では Web.config で identity 要素を設定することで偽装できるようになっていますが、これにはいくつかの問題があります。
- その ASP.NET application がすべて同じ偽装した資格情報で実行される
つまり、最小限の特権の原則を満たせない。
- 偽装する前の権限で password が取得可能
Buffer overflow 等の攻撃で process が乗っ取られた場合 password が取得できるわけでして、そこから別の資格情報を使った2次攻撃が考えられるわけです。
1. に対しては必要な部分だけ別の資格情報で実行するようにすることで対処可能ですが、2. を解決するのは結構大変です。
ではそれを解決するためにはどうしたらいいかを Windows Service の起動方法を例にしてみて見ましょう。