사용자 계정 컨트롤(UAC)이란? [이동 완료]
이동 완료 2011. 10. 19. 23:15 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
사용자 계정 컨트롤(UAC)이란?
사용자 계정 컨트롤이란 프로그램에서 관리자 수준의 권한이 필요한 변경 작업을 수행할 때 이를 사용자에게 알려 컴퓨터를 제어할 수 있도록 도와주는 윈도우 기능입니다. 사용자 계정 컨트롤은 맬웨어라고 통칭되는 악성 프로그램이 무단으로 진행하는 자동 설치를 중지하여 시스템을 손상시키지 않도록 방지하는 데 도움을 주며 사용자가 실수로 시스템 설정을 변경하지 않도록 방지하는 것을 도와줍니다.
의심받지 않은 무소불위의 권력자 - 관리자 그룹
우리가 일상적으로 관리자 그룹(Administrators Group)의 사용자를 사용해왔기 때문에 잘 느끼지 못하지만 사실 관리자 그룹의 권한은 막강한 것 입니다. 윈도우의 모든 설정과 정책을 바꿀 수 있고 어떠한 프로그램이든 설치하고 실행할 수 있으며 어떠한 저장 경로에도[개인 폴더로 암호화된 폴더 제외] 접근이 가능합니다. 이는 윈도우를 변경할 수도 있고 파괴할 수도 있음을 의미합니다.
그래서 마이크로소프트는 이러한 막강한 권한을 가진 관리자 그룹의 사용자를 평상의 용도로 사용하지 말고 권한이 제한된 표준 사용자 그룹의 사용자를 사용하다 관리자 권한의 작업이 필요하면 관리자 그룹의 사용자를 사용하도록 장려해 왔습니다.[다만 씨알도 안 먹혔을 뿐...]
다만 이게 씨알도 안 먹혔을 뿐이다.
과거 윈도우 버전에서는[윈도우 XP, 윈도우 2K] 사용자가 관리자 그룹의 사용자라면 해당 사용자에 의해 일어나는 모든 일들을 전적으로 신뢰했다고 볼 수 있습니다. 사용자에 의해 일어나는 모든 일들은 사용자가 의도한 일이라고 믿어 의심치 않았죠. 관리자 그룹 사용자의 권한하에서 실행되는 모든 프로그램은 아무런 제한없이 관리자의 권한으로 실행이 되었습니다.
그래서 문제가 많이 생겼습니다. 잘못된 작업으로 인해 윈도우에 문제가 생기는 일이 다반사로 발생했고 특히나 맬웨어로 통칭되는 악의를 가진 악성 프로그램들이 사용자 모르게 아무런 간섭없이 자기 마음대로 설치되어 사용자의 개인 정보를 파헤쳐가고 윈도우를 조작하고 시스템을 파괴한 것 입니다.
윈도우, 드디어 그들을 의심하여 방어를 시작하다
그리하여 윈도우는 사용자의 권한을 좀 더 강력하게 제어해야만 할 필요성을 느끼게 되었습니다. 이러한 연유로 드디어 윈도우 비스타에 이르러서 윈도우는 사용자의 권한에 강력하게 개입하며 사용자가 하려는 작업들을 간섭하기 시작했습니다. 이제 더이상 윈도우가 사용자에 의해 일어나는 모든 일들을 전적으로 신뢰하지 않기 시작한 것 입니다.
네가 관리자로 보이지만 난 널 못 믿어! 윈도우는 내가 지킨다!
이렇게 사용자의 작업을 감시하고 적절히 제한하고 확인하는 작업을 담당하는 것이 바로 수 많은 사용자들을 당황하게 만든 사용자 계정 컨트롤(User Account Contorl) 입니다.
사용자 계정 컨트롤의 작동 방법
표준 사용자와 관리자
윈도우 7 에서는 사용자 수준이 표준 사용자와 관리자 두 가지가 있습니다. 컴퓨터에서 표준 사용자는 Users 그룹의 구성원이며 관리자는 Administrators 그룹의 구성원 입니다.
표준 사용자 |
관리자 |
이전 윈도우 버전들과[윈도우 XP, 윈도우 2K] 달리 윈도우 비스타와 윈도우 7 은 표준 사용자 는 물론 관리자 모두 기본적으로 표준 사용자의 권한 수준으로 응용 프로그램을 실행합니다. 관리자가 관리 작업을 수행하는 응용 프로그램("관리자 응용 프로그램")을 실행해야 하는 경우 윈도우는 사용자에게 권한 수준을 표준 사용자에서 관리자로 변경하거나 "권한 상승" 을 요구하게 되고 사용자가 승인을 하게 되면 관리자의 권한 수준으로 응용 프로그램을 실행합니다. 이러한 기본 관리자 사용자 환경을 관리자 승인 모드라고 합니다. 그리고 이러한 정책이 바로 사용자 계정 컨트롤의 핵심입니다. 그렇다면 이러한 작업은 어떻게 이루어지는 것일까요?
두 개의 액세스 토큰
사용자가 윈도우에 로그온하는 경우 윈도우는 해당 사용자의 액세스 토큰을 만듭니다. 이 액세스 토큰에는 특정 SID(보안 식별자) 및 윈도우 권한을 포함하여 해당 사용자에게 부여된 액세스 수준에 대한 정보가 있습니다.
표준 사용자로 로그온을 하는 경우 윈도우는 표준 사용자 액세스 토큰(Standart user access token)을 만듭니다. 관리자로 로그온을 하는 경우 윈도우는 별도의 액세스 토큰을 두 개 즉, 표준 사용자 액세스 토큰(Filtered standard user token)과 관리자 액세스 토큰(Full administator access token)을 만듭니다. 표준 사용자 액세스 토큰에는 관리자 액세스 토큰과 동일한 사용자 특정 정보가 있지만 윈도우 관리 권한 및 SID 는 제거된 것으로 표준 사용자에게 제공되는 토큰과 유사합니다.
윈도우는 표준 사용자든 관리자든 로그온하면 둘 모두 동일하게 표준 사용자 액세스 토큰을 사용하여 쉘 프로그램인 익스플로러(Explorer.exe) 를 실행합니다.[인터넷 익스플로러 브라우저(Internet Explorer) 가 아닙니다.]
윈도우는 표준 사용자, 관리자 모두 표준 사용자 액세스 토큰으로 쉘인 익스플로러를 실행합니다.
쉘 프로그램인 익스플로러 (프로세스)를 표준 사용자 액세스 토큰을 사용하여 표준 사용자 권한으로 실행하게 되면 어떤 일이 벌어질까요? 윈도우의 응용 프로그램들은 초기에 실행된 이 익스플로러 아래에서 실행되는 것이기 때문에 익스플로러 이후 실행되는 모든 프로그램의 프로세스들은 익스플로러의 자식 프로세스가 됩니다. 윈도우에서는 기본적으로 부모 프로세스에서 파생되는 자식 프로세스는 부모의 권한을 상속 받게 되어 있음으로 이후에 생성되는 모든 프로세스들 역시 표준 사용자 권한으로 생성이 되는 것 입니다.
그래서 표준 사용자는 물론 관리자 또한 마찬가지로 이후 실행되는 모든 응용 프로그램들을 관리자 권한이 아닌 표준 사용자 권한으로 실행을 하게 되는 것 입니다.
권한 상승(Elevation)
앞에서도 말했지만 사용자가 관리자라 할 지라도 일반적인 응용 프로그램들은 표준 사용자 권한 수준으로 실행하게 됩니다. 사실 대다수의 응용 프로그램들은 표준 사용자 권한 수준에서도 아무런 문제없이 돌아갑니다. 그러니 굳이 위험하게 관리자 권한 수준으로 모든 응용 프로그램을 실행시킬 필요가 없는 것 입니다.
그러다 관리자가 관리 작업을 수행하는 응용 프로그램을 수행하려고 하면 사용자 계정 컨트롤은 사용자에게 작업을 승인할 것인지 묻는 메시지를 표시하게 됩니다. 사용자가 작업을 승인하면 관리자의 전체 관리자 액세스 토큰을 사용하여 해당 프로세스를 관리자 권한 수준으로 권한을 상승시키고 작업을 시작하는 것 입니다.
사용자의 승인을 요구하는 사용자 계정 컨트롤.
표준 사용자 또한 사용자 계정 컨트롤을 사용하여 권한을 높이고 관리 작업을 수행할 수 있습니다. 표준 사용자가 일부 허락된 관리 작업을 수행하려고 시도하면 사용자 계정 컨트롤은 사용자에게 관리자 계정을 위한 유효한 자격 증명을 입력하도록 요구합니다. 표준 사용자가 관리자 그룹 사용자의 계정과 암호를 알고 있다면 이를 입력해 주면 됩니다.
관리자 자격을 증명하길 요구하는 사용자 계정 컨트롤.
이러한 권한 상승을 통해 사용자는 현재 수행하려는 작업이 관리자 권한 수준이 필요한 작업임을 알 수 있습니다. 이를 통해 사용자가 실수로 시스템 설정을 변경하지 않도록 할 수 있으며 악성 프로그램이 사용자 몰래 관리자 권한을 획득하여 실행되거나 윈도우의 설정에 접근하는 것을 방어할 수 있는 것 입니다.
권한 상승 요구 확인 - 네 가지 유형의 대화 상자
권한 상승을 요구하는 확인 메시지는 다음의 네 가지 유형이 있습니다.
출처 - 마이크로소프트 테크넷
각 메시지들에 대한 설명은 아래와 같습니다.
아이콘 | 유형 | 설명 |
Windows의 일부인 설정 또는 기능을 시작하려면 사용 권한이 필요합니다. | 이 항목에는 Microsoft가 이 항목의 게시자임을 확인하는 유효한 디지털 서명이 있습니다. 이 유형의 대화 상자가 표시되면 일반적으로 안전하게 작업을 계속할 수 있습니다. 하지만 안전성이 확실치 않은 경우 프로그램 또는 기능 이름을 확인하여 실행하려는 프로그램 또는 기능이 맞는지 확인하십시오. | |
Windows의 일부가 아닌 프로그램을 시작하려면 사용 권한이 필요합니다. | 이 프로그램에는 원하는 프로그램이 맞는지 확인하는 데 도움이 되고 프로그램 게시자의 ID를 확인할 수 있는 유효한 디지털 서명이 있습니다. 이 유형의 대화 상자가 표시되면 실행하려는 프로그램이 맞는지, 그리고 게시자를 신뢰할 수 있는지 확인하십시오. | |
게시자를 알 수 없는 프로그램을 시작하려면 사용 권한이 필요합니다. | 이 프로그램에는 게시자의 유효한 디지털 서명이 없습니다. 오래된 정품 프로그램 중에는 디지털 서명이 없는 프로그램이 많으므로 반드시 위험하다고 할 수는 없습니다. 그러나 좀 더 주의를 기울여야 하며 원본 CD나 게시자의 웹 사이트 등 신뢰할 수 있는 원본에서 가져온 경우에만 프로그램을 실행하도록 허용해야 합니다. 안전성이 확실치 않은 경우 인터넷에서 프로그램 이름을 조회하여 알려진 프로그램인지 또는 악성 소프트웨어인지 확인하십시오. | |
시스템 관리자가 이 프로그램을 실행하지 못하도록 차단했습니다. | 이 프로그램은 신뢰할 수 없는 것으로 알려졌기 때문에 차단되었습니다. 이 프로그램을 실행하려면 시스템 관리자에게 문의해야 합니다. |
권한 상승이 일어나는 네 가지 경우
권한 상승이 일어나는 경우는 크게 아래의 네 가지 경우를 들 수 있습니다.
1. 사용자가 직접 권한 상승을 요청할 때(관리자 권한으로 실행)
사용자가 프로그램을 직접 관리자 권한으로 실행할 것을 요청하여 실행시키면 권한 상승이 일어납니다.
2. 프로그램 호환성 탭에 관리자 권한으로 실행하도록 설정된 경우
프로그램 호환성 탭에서 프로그램의 권한 수준을 관리자 권한으로 실행하도록 설정한 경우 권한 상승이 일어납니다.
3. 관리자 권한으로 마킹 된 실행 파일을 실행할 때
프로그램을 제작할 당시 매니페스트(Manifests) 리소스 안에 requestedExecutionLevel 을 설정하고 설정한 수준이 현재 부모 프로세스의 실행 수준보다 높은 경우 권한 상승이 일어납니다.
출처 - 위키피디아
4. 설치 프로그램을 실행할 때
윈도우는 설치 프로그램을 실행 시에 자동으로 설치 프로그램을 감지해서 설치 프로그램의 권한을 상승시키려 시도합니다.
이 외에 윈도우의 주요한 설정이나 정책을 편집하거나 관련된 기본 관리 프로그램들을 실행하려고 할 때도 권한 상승이 일어납니다.[제어판의 수 많은 방패들을 떠올려 보세요. ^^]
보안 데스크톱(Secure Desktop)
사용자 계정 컨트롤은 권한 상승을 확인할 때 보안 데스크톱이라는 것을 사용합니다. 보안 데스크톱은 화면이 완전히 일시적으로 어두워지며 인증 창만이 강조되는 것 입니다. 이는 악의적인 프로그램이 사용자 인터페이스나 마우스를 속이는 작업을 방지하기 위해서 입니다.
보안 데스크톱 적용 |
보안 데스크톱 해제 |
기타 이야기
이상으로 사용자 계정 컨트롤은 무엇인지 어떻게 동작하는지에 대해서 알아보았습니다. 윈도우 7 은 이와 같이 권한을 분리시키고 사용자 계정 컨트롤의 관리하에서 필요에 따라 사용자의 권한을 상승시키는 방법으로 작업을 진행합니다. 이를 통해 사용자의 실수를 방지하고 악의적인 프로그램을 차단하여 윈도우의 보안을 지키는 것이지요.
최고의 권력자 - Administrator
그런데 윈도우의 사용자 중 유일하게 이러한 사용자 계정 컨트롤의 간섭을 받지 않는 사용자가 딱 하나 있습니다. 바로 애초에 윈도우에 의해 명시된 관리자인 Administrator(최고 관리자) 입니다.
I'm King of the Windows!!!!!
그래서 사용자 계정 컨트롤이 귀찮은 많은 분들은 이러한 최고 관리자 계정을 많이들 사용하고 있죠. 근데 사용자 계정 컨트롤을 꺼버리면 관리자 그룹의 사용자들도 최고 관리자와 동일한 환경이 됩니다. ^^; 아무튼 이러한 Administrator 도 사용자 계정 컨트롤의 영향을 받게 끔 윈도우의 보안 정책을 수정할 수 있습니다. ^^a
사용자 계정 컨트롤의 영향을 받지 않으려면?
사용자가 사용자 계정 컨트롤의 영향으로 부터 완전히 벗어나 예전 윈도우 버전들과 같이 자유롭게 작업할 수 있는 방법은 간단하게 최고 관리자 계정을 사용하거나 사용자 계정 컨트롤 자체를 꺼버리는 방법이 있습니다.
물론 사용자 계정 컨트롤을 끄지 않고 정책을 수정하거나 완화하는 방법도 사용할 수 있습니다.[물론 강화할 수도 있습니다.] 이러한 내용은 다른 글에서 찾아 뵙도록 하죠. ^^ 사용자 계정 컨트롤에 관한 글은 여기까지 입니다. ^^
참고 자료
http://technet.microsoft.com/en-us/library/dd835561(WS.10).aspx
http://msdn.microsoft.com/library/bb530410
http://windows.microsoft.com/ko-KR/windows-vista/User-Account-Control-Overview