![]()
Windows에서, 사용자의 그룹 소속원 정보와 데이터에 대한 접근 제어 및 허가 정보를 포함하고 있는 보안 토큰은 Windows가 어떠한 자원과 작업에 대해 사용자가 접근할 수 있는지 구분할 경우에 사용되게 됩니다. Windows Vista 이전 Windows(2000,2003,XP) 관리자(Administrator, Administrators 그룹의 소속원)의 경우에는 Windows 자원에 대한 모든 접근이 가능한 토큰을 받았습니다. 이 토큰 모델에는 일종의 안전 장치(Fail-Safe)가 없었다는 것이 가장 큰 문제였습니다. 안전 장치라는 표현이 좀 우스울 수도 있지만. 관리자가 정말 해당 작업을 원하는지에 대해 확인하는 작업이 없었다는 것이죠. '관리자가 프로그램을 실행하기 위해 클릭하는 자체가, 이미 해당 작업을 하겠다는 의지로 봐야하지 않을까요?'라고 물으신다면.. 다시 이렇게 여쭤봅니다. '시스템에 설치된 악성 프로그램들이 무언가를 관리자 권한 하에서 실행한다면..' 어떠한 사용자(Administrator, Administrators 그룹의 소속원)가 로그인했을 경우, 해당 사용자의 데스크톱 환경인 Explorer.exe 프로세스는 Administrators 그룹에 부여된 Permission과 Right을 모두 가지고 동작하게 됩니다. 그러므로, 실행되는 모든 프로그램은 전부다 관리자의 권한을 부여받게 된다는 것입니다. 다시 말해 특정 권한으로 실행된 프로세스 내에서 실행되는 또다른 프로세스는 해당 권한을 모두 상속받게 되어 있다는 것입니다. 프로그램들은 기존 Windows에서 관리자 보안 토큰내에서 아무런 안전 장치의 확인 없이 프로그램이 설치(알림 없이 - Silent Installation), 실행되게 되고, 이 프로그램이 악성 프로그램이라면 Windows 시스템의 안정성, 신뢰성, 가용성, 성능 등 전반적인 부분에 영향을 주었습니다. 또한 관리자 권한하에 설치된 악성 프로그램들은 삭제 또한 용이하지 않았습니다. 이러한 확인 없이 설치되는 악성 프로그램들, 더 큰 의미로는 보안을 강화하기 위해 Microsoft는 Windows Vista에 UAC을 넣게 되었습니다. 다시 이야기를 UAC으로 돌려보겠습니다. 이전 Windows와 달리 관리자가 Windows Vista에 로그온 하게 되면, 사용자의 전체 관리자 보안 토큰은 관리자 권한을 모두 가지고 생성되게 됩니다. 그렇지만 Split Access Token 모델에 따라, 관리자 권한을 모두 필터링한 후, UAC 접근 토큰을 생성하게 되고, 관리자 권한이 필요한 경우, 확인 후 권한을 가지게 됩니다. 이를 Linked Token이라고 합니다. 결국 UAC 접근 토큰은 표준 사용자 권한을 가지게 된다는 결론입니다. 이 UAC 접근 토큰이 Explorer.exe를 실행시켜, 데스크톱 환경을 꾸미게 되고, 이 데스크톱 환경은 모두 일반 사용자 권한으로 실행하게 됩니다. 그럼 언제 전체 관리자 보안 토큰을 사용하게 되느냐? 바로 관리자의 권한이 필요한 작업들을 시도할 때 사용하게 된다는 것입니다. 아래 그림을 보시면 명확히 이해가 되실 것입니다. (해당 계정은 로컬 관리자 그룹, 도메인 관리자 그룹에 들어간 계정입니다.)
토큰의 모양이 확연히 틀린 것을 보실 수 있습니다. 그럼 Administrator 권한을 이용해서 프로그램을 실행하는 방법은 해당 프로그램에서 마우스 오른쪽 버튼을 누르시면.. "관리자 권한으로 실행"을 이용하시면 됩니다.
해당 프로그램은 항상 관리자 권한으로 이용하고자 한다면, 해당 프로그램의 속성에 가셔서 ‘관리자 권한으로 이 프로그램 실행’을 체크하시면 됩니다. (이 체크를 하시더라도 UAC의 알림 창은 매번 실행시마다 나타나게 됩니다.)
현재 Microsoft와 여러 ISV 업체들이 크게 노력하고 있는 사항은 사용자들이 표준 사용자 권한으로도 프로그램을 사용할 수 있도록 재디자이닝을 하는 것입니다. 정말 관리자 권한이 필요한 경우에만 사용하도록 재구성한다는 것입니다. 지금까지 많은 프로그램들은 프로그램이 실행될 경우, 해당 사용자가 Administrator 권한을 가지고 있는지 체크해 왔습니다. 이런 많은 프로그램이 실제로는 관리자 권한이 없어도 실행 가능 했었습니다. (물론 모든 프로그램이 다 그렇다는 것은 아닙니다. 하드웨어 관리 프로그램이라던가.. 많은 프로그램들은 관리자 권한을 사용했습니다.) 기존의 프로그램 호환성에 문제가 있으시다면, 해결 방법으로는 소개한 관리자 권한으로 실행하는 것이 있습니다. UAC에 대한 다양한 설정이 가능하도록, Microsoft는 해당 기능들에 대해 설정을 일부 변경할 수 있도록 그룹 정책내 해당 정책들을 만들어 놓았습니다. 모든 사용에 대한 판단은 사용자가 최종적으로 결정하게 된다는 뜻입니다.
|