2007~2011/Windows Platform2011. 5. 11. 16:29
Windows Server 2008 및 Windows Vista 이후 운영 체제에서는 대부분의 운영체제 파일에 대한 모든 권한을 갖는 TrustedInstaller 가 존재합니다. TrustedInstaller 의 목적은 관리자 또는 LocalSystem 계정으로 실행되는 프로세스가 운영체제 파일을 함부로 변경하지 못하도록 방지하기 위한 보안 때문에 새롭게 도입된 기능입니다. 즉, TrustedInstaller.exe 는 Windows Resource Protection 의 일부인 Windows Module Installer 이며 WRP 는 파일 폴더, 레지스트리 접근을 제어하는 기술로 dll, exe, ocx, sys 확장자 파일이 변경되는 것을 막는 역할을 합니다.

조금만 더 자세히 탐구(?)해 보면......,
DLL Hell(버전 관리의 문제, 상하위 버전) 문제를 풀기 위해 Component Servicing 이 도입되었으며 이것은 Component Store(\Windows\winsxs)를 유효하고 Healthy 한 상태로 유지하고 system32 폴더에 있는 파일을 hardlink 로 관리합니다. 바로 이 관리 주체가 TrustedInstaller 서비스입니다. 아래 폴더에 있는 파일들에 대해서는 모든 권한과 Ownership 을 TrustedInstaller 가 가지게 됩니다.
\Windows\winsxs, \Windows\winsxs\backup, \Windows\system32

하지만 이러한 기능을 이해하지 못하고 일부 사용자들은 Windows Server 2008 이전 버전을 기준으로 만들어진 보안 정책에 의해 시스템 파일에 등록된 TrustedInstaller 권한을 제거하는 경우를 종종 확인하게 됩니다. 이 권한을 제거할 경우 프로그램 설치, 변경, 업데이트를 실패하는 문제가 발생할 수 있으며 Malware 로 부터 시스템 파일을 보호받지 못하는 문제가 발생할 수 있습니다. 그래서 
기본 설정대로 추가하는 것이 권장사항이라 할 수 있겠습니다.


그렇다면 이미 제거한 TrustedInstaller 권한을 다시 추가하려면 해당 파일 속성의 보안 탭에서 신규로 추가해 주면 되지 않을까? 라고 생각할 수 있습니다만 고급 - 지금 찾기(Find Now) 버튼을 사용하여 UI 를 목록을 검색해도 기본적으로 TrustedInstaller 는 해당 목록에 나타나지 않습니다. 그렇다면 어떻게 TrustedInstaller 권한을 추가할 수 있을까요? 그 방법을 아래와 같이 정리하였습니다.


[환경]
Windows Server 2008


[현상]
cmd.exe 프로세스의 ACL(Access Control List) 목록에 TrustedInstaller 권한이 제거되어 있으며 UI 를 통해 다시 추가할 수 없습니다.





[해결방법]
CMD.EXE 프로세스의 ACL 목록에 아래와 같은 방법으로 계정을 추가합니다.

cmd.exe - Security - EDIT - ADD - "NT SERVICE\TrustedInstaller" 입력 후 Check Names 확인

 




TrustedInstaller 권한이 정상적으로 추가된 것을 확인할 수 있습니다.





[참고자료]
What's New for Access Control in Windows Server 2008
http://technet.microsoft.com/en-us/library/cc731677(WS.10).aspx


작성자 : Lai Go / 작성일자 : 2011.05.11

Posted by Lai Go