ホームページ > バックエンド開発 > C++ > 管理者以外のユーザーは、システムのセキュリティを損なうことなく Windows サービスを開始できますか?

管理者以外のユーザーは、システムのセキュリティを損なうことなく Windows サービスを開始できますか?

Mary-Kate Olsen
リリース: 2024-10-26 00:58:02
オリジナル
882 人が閲覧しました

Can Non-Admin Users Start Windows Services Without Compromising System Security?

管理者権限を持たないアプリケーションからの Windows サービスの開始

多くのシナリオでは、別のアプリケーションから Windows サービスを開始または停止する必要があります。ただし、セキュリティ上の懸念により、これは管理者以外のユーザーには制限されているように見える場合があります。この制限を克服し、システムの安定性を損なうことなく、ユーザーがサービス管理をきめ細かく制御できるようにするにはどうすればよいでしょうか?

解決策: サービス権限の変更

この問題の鍵は次のとおりです。サービスオブジェクトの権限を変更する場合。管理者以外のユーザーに適切な権限を付与することで、管理者が制御された方法でサービスと対話できるようにすることができます。

次のコード スニペットは、サービスのセキュリティ記述子を設定して必要な権限を含める方法を示しています。

<code class="c++">wchar_t sddl[] = L"D:"
  L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)"           
  L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)"   
  L"(A;;CCLCSWLOCRRC;;;AU)"                 
  L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)"           
  L"(A;;RP;;;IU)"                         
;

PSECURITY_DESCRIPTOR sd;

if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL))
{
   fail();
}

if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd))
{
   fail();
}</code>
ログイン後にコピー

この特定のセキュリティ記述子は、次の権限を付与します:

  • ローカル システムのデフォルトの権限: ローカル システム アカウントにフル コントロールを付与します。
  • 管理者のデフォルトのアクセス許可: 管理者にアクセスを許可します。
  • 認証されたユーザーのデフォルトのアクセス許可: すべての認証されたユーザーに制限付きのアクセスを許可します。
  • パワー ユーザーのデフォルトの権限: パワー ユーザーにフル コントロールを付与します。
  • 対話型ユーザーの追加権限: 対話型ユーザーにサービスを開始する権限を付与します。

セキュリティ記述子文字列 (SDDL) をカスタマイズして、さまざまなユーザー グループに必要なアクセス レベルに基づいて特定の権限を追加または削除できます。たとえば、管理者以外のユーザーがサービスを停止できるようにしたい場合は、次の SDDL を使用できます:

L"(A;;RPWP;;;IU)" 
ログイン後にコピー

これにより、WP (WRITE_PROPERTY) 権限が追加され、対話型ユーザーの両方が開始できるようになります。

権限を慎重に設定することで、管理者以外のユーザーはシステムのセキュリティを損なうことなく重要なサービス管理タスクを実行できます。

以上が管理者以外のユーザーは、システムのセキュリティを損なうことなく Windows サービスを開始できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート