- PR -

作りこみのWindowsサービスの起動アカウントをLocal Systemにすると危険な理由。

1
投稿者投稿内容
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-10-01 07:47
作りこみのWindowsサービスの起動アカウントをLocal Systemにすると危険な理由がわかりません。
現状、念のため新規作成したAdministrator権限のユーザーで起動しています。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-10-01 10:33
ASP.NET や FTP などのサービスはそれを動かす最低限の権限で動作させます。
それはそのサービスに脆弱性が見つかりサービス悪用された場合などに被害を最小にするためです。

Local System や Administrator はシステムに対しておおきな権限を持っているので、乗っ取られたときに好き放題されてしまいますよね。
sand さんの作ったサービスは本当に Administrator 権限が必要ですか?
_________________
かるあ のメモスニペット
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-10-01 23:20
Local System (NT AUTHORITY\SYSTEM) は default でその local computer のほぼすべての resource を扱える権限を有しています。
つまり、簡単に言うと local computer に限ってはできないことはまず存在しないということです。

自作した service を Local System で起動している状態で、もしその service 自体に buffer overflow の脆弱性があったらどうなるでしょう?

buffer overflow の内容にもよりますが、buffer overflow が発生すると対象の process 上で任意の code を実行させることが可能なことが多くあります。
つまり、process が乗っ取られるわけですから、その process が扱えるすべての処理を行えるということになりますね。

で、今回の場合 process は Local System で起動しているのですから、対象の computer で好き勝手なことをやり放題です。

では、Loacal System ではなく、Administrators に所属しない standard user で service を起動した場合を考えましょう。

同様に buffer overflow が発生して process が乗っ取られましたが、今度は起動しているのが standard user なので standard user に認められた範囲内の処理しか行えません。

つまり、攻撃はできるけれども被害は最小限に食い止められるわけです。

通信を行う service の場合特に深刻ですね。それだけ攻撃受けやすいので。
_________________
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-10-02 03:35
なるほど乗っ取り時の被害を最小限に留めるというのが理由ですね。
勉強になりました。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)