>  기사  >  백엔드 개발  >  관리자가 아닌 사용자가 시스템 보안을 손상시키지 않고 Windows 서비스를 시작할 수 있습니까?

관리자가 아닌 사용자가 시스템 보안을 손상시키지 않고 Windows 서비스를 시작할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-26 00:58:02812검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.