4

完了するまでに時間がかかる可能性のあるバックグラウンドで作業を行っているWindowsサービスをユーザーが改ざん、停止、またはクラッシュするのを防ぐにはどうすればよいですか?

停止要求を受信すると、サービスは作業が完了するまで待機してから停止する必要があります。

サービスのフラグがありCanStopますが、OnStopメッセージに応答する方法がわかりません。また、ユーザーがサービスをクラッシュさせようとした場合、それ以上の改ざんを防ぐにはどうすればよいですか?


編集:ペアレンタルコントロールからバックグラウンドプロセスまでの一般化された質問。

4

3 に答える 3

3

ユーザーは、サービスを停止するために管理者権限を持っている必要があります。ボックスに管理者がいる人からプログラムを保護するための絶対確実な方法はないと思います。「信頼できないユーザー」がサービスを停止したくない場合は、「信頼できないユーザー」に管理者権限を与えないでください。

この点で少しつまずくようですので、少しはっきりさせておきます。管理者がプログラムをアンインストールすることを決定したとします。これは通常、マウスを数回クリックするだけです。それを防ぐための措置を講じますか?

ここであなたの答えについて慎重に考えてください。管理者によるアンインストールを意図的に阻止しようとするプログラムは、定義上マルウェアです。

NTが登場して以来、すべてのホームPCユーザーに管理者権限を付与して、ゲームを心ゆくまでインストールしてプレイできるようにすることは、かなり標準的なことだと思います。ただし、VistaとWin7では、これはもはや必要不可欠ではなく、人々はその習慣から抜け出す必要があります。「信頼できる」ユーザーであっても、これは非常に悪いセキュリティ慣行です。

実際にいくつかのセキュリティ慣行に従わなければならないことをユーザーに伝えることは悪いことではありません。彼らは、その方法でマシンからマルウェアやウイルスをはるかに少なく除去する必要があることに気付くでしょう。

于 2010-11-24T12:37:37.370 に答える
2

グループポリシーを使用すると、

これを試してくださいhttp://social.technet.microsoft.com/Forums/en-US/2758d69a-60e8-4a5b-83dd-fc7d8e15bdc1/preventing-users-from-stopping-a-particular-service-with-a-gpo

于 2014-05-05T20:21:48.770 に答える
1

あなたの脅威モデルは何ですか?脅威モデルがなければ、あなたの努力を費やす正しい方法を見つけることは不可能です。

とりあえず、防止や改ざん、クラッシュではなく、サービスの停止を防ぐことを考えてみましょう。

TEDは、管理者がサービスを停止したい場合、通常はこれを阻止しようとすべきではないと言っているのは正しいです。それ以外の場合、管理者はどのようにして障害分離を実行したり、Windowsをベアボーンモードで起動したりできますか?

おっしゃるように、ServiceBase.CanStopプロパティは、サービスの停止を防ぐために使用されます。このプロパティは通常、実行する必要のあるOSクリティカルなサービスによってのみ使用されます。

メインサービススレッドでは、 OnStopイベントを無視して、永久ループすることができます。そのため、SCMは、サービスがまだ実行されていても、サービスが停止したと見なします。これはかなり厄介ですが、機能するはずです。SCMは、実際に停止を強制するのではなく、停止要求を発行しているだけです。

于 2010-11-24T14:00:37.927 に答える