사용자 계정 컨트롤(UAC)이란?

사용자 계정 컨트롤이란 프로그램에서 관리자 수준의 권한이 필요한 변경 작업을 수행할 때 이를 사용자에게 알려 컴퓨터를 제어할 수 있도록 도와주는 윈도우 기능입니다. 사용자 계정 컨트롤은 맬웨어라고 통칭되는 악성 프로그램이 무단으로 진행하는 자동 설치를 중지하여 시스템을 손상시키지 않도록 방지하는 데 도움을 주며 사용자가 실수로 시스템 설정을 변경하지 않도록 방지하는 것을 도와줍니다.



의심받지 않은 무소불위의 권력자 - 관리자 그룹

우리가 일상적으로 관리자 그룹(Administrators Group)의 사용자를 사용해왔기 때문에 잘 느끼지 못하지만 사실 관리자 그룹의 권한은 막강한 것입니다. 윈도우의 모든 설정과 정책을 바꿀 수 있고 어떠한 프로그램이든 설치하고 실행할 수 있으며 어떠한 저장 경로에도[개인 폴더로 암호화된 폴더 제외] 접근이 가능합니다. 이는 윈도우를 변경할 수도 있고 파괴할 수도 있음을 의미합니다.

그래서 마이크로소프트는 이러한 막강한 권한을 가진 관리자 그룹의 사용자를 평상의 용도로 사용하지 말고 권한이 제한된 표준 사용자 그룹의 사용자를 사용하다 관리자 권한의 작업이 필요하면 관리자 그룹의 사용자를 사용하도록 장려해 왔습니다.[다만 씨알도 안 먹혔을 뿐...]

다만 이게 씨알도 안 먹혔을 뿐이다.



과거 윈도우 버전에서는[윈도우 XP, 윈도우 2K] 사용자가 관리자 그룹의 사용자라면 해당 사용자에 의해 일어나는 모든 일들을 전적으로 신뢰했다고 볼 수 있습니다. 사용자에 의해 일어나는 모든 일들은 사용자가 의도한 일이라고 믿어 의심치 않았죠. 관리자 그룹 사용자의 권한하에서 실행되는 모든 프로그램은 아무런 제한없이 관리자의 권한으로 실행이 되었습니다.



그래서 문제가 많이 생겼습니다. 잘못된 작업으로 인해 윈도우에 문제가 생기는 일이 다반사로 발생했고 특히나 맬웨어로 통칭되는 악의를 가진 악성 프로그램들이 사용자 모르게 아무런 간섭없이 자기 마음대로 설치되어 사용자의 개인 정보를 파헤쳐가고 윈도우를 조작하고 시스템을 파괴한 것입니다.



윈도우, 드디어 그들을 의심하여 방어를 시작하다

그리하여 윈도우는 사용자의 권한을 좀 더 강력하게 제어해야만 할 필요성을 느끼게 되었습니다. 이러한 연유로 드디어 윈도우 비스타에 이르러서 윈도우는 사용자의 권한에 강력하게 개입하며 사용자가 하려는 작업들을 간섭하기 시작했습니다. 이제 더이상 윈도우가 사용자에 의해 일어나는 모든 일들을 전적으로 신뢰하지 않기 시작한 것입니다.

네가 관리자로 보이지만 난 널 못 믿어! 윈도우는 내가 지킨다!



이렇게 사용자의 작업을 감시하고 적절히 제한하고 확인하는 작업을 담당하는 것이 바로 수 많은 사용자들을 당황하게 만든 사용자 계정 컨트롤(User Account Contorl) 입니다.






사용자 계정 컨트롤의 작동 방법


표준 사용자와 관리자

윈도우 7 에서는 사용자 수준이 표준 사용자관리자 두 가지가 있습니다. 컴퓨터에서 표준 사용자는 Users 그룹의 구성원이며 관리자는 Administrators 그룹의 구성원 입니다.

표준 사용자관리자


이전 윈도우 버전들과[윈도우 XP, 윈도우 2K] 달리 윈도우 비스타와 윈도우 7 은 표준 사용자 는 물론 관리자 모두 기본적으로 표준 사용자의 권한 수준으로 응용 프로그램을 실행합니다. 관리자가 관리 작업을 수행하는 응용 프로그램("관리자 응용 프로그램")을 실행해야 하는 경우 윈도우는 사용자에게 권한 수준을 표준 사용자에서 관리자로 변경하거나 "권한 상승" 을 요구하게 되고 사용자가 승인을 하게 되면 관리자의 권한 수준으로 응용 프로그램을 실행합니다. 이러한 기본 관리자 사용자 환경을 관리자 승인 모드라고 합니다. 그리고 이러한 정책이 바로 사용자 계정 컨트롤의 핵심입니다. 그렇다면 이러한 작업은 어떻게 이루어지는 것일까요?



두 개의 액세스 토큰

사용자가 윈도우에 로그온하는 경우 윈도우는 해당 사용자의 액세스 토큰을 만듭니다. 이 액세스 토큰에는 특정 SID(보안 식별자) 및 윈도우 권한을 포함하여 해당 사용자에게 부여된 액세스 수준에 대한 정보가 있습니다.

1. 표준 사용자로 로그온을 하는 경우 윈도우는 표준 사용자 액세스 토큰(Standart user access token)을 만듭니다.

2. 관리자로 로그온을 하는 경우 윈도우는 별도의 액세스 토큰을 두 개 즉, 표준 사용자 액세스 토큰(Filtered standard user token)과 관리자 액세스 토큰(Full administator access token)을 만듭니다.

표준 사용자 액세스 토큰에는 관리자 액세스 토큰과 동일한 사용자 특정 정보가 있지만 윈도우 관리 권한 및 SID 는 제거된 것으로 표준 사용자에게 제공되는 토큰과 유사합니다. 윈도우는 표준 사용자든 관리자든 로그온하면 둘 모두 동일하게 표준 사용자 액세스 토큰을 사용하여 쉘 프로그램인 익스플로러(Explorer.exe) 를 실행합니다.[인터넷 익스플로러 브라우저(Internet Explorer) 가 아닙니다.]

윈도우는 표준 사용자, 관리자 모두 표준 사용자 액세스 토큰으로 쉘인 익스플로러를 실행합니다.



쉘 프로그램인 익스플로러 (프로세스)를 표준 사용자 액세스 토큰을 사용하여 표준 사용자 권한으로 실행하게 되면 어떤 일이 벌어질까요? 윈도우의 응용 프로그램들은 초기에 실행된 이 익스플로러 아래에서 실행되는 것이기 때문에 익스플로러 이후 실행되는 모든 프로그램의 프로세스들은 익스플로러의 자식 프로세스가 됩니다.

윈도우에서는 기본적으로 부모 프로세스에서 파생되는 자식 프로세스는 부모의 권한을 상속 받게 되어 있으므로 이후에 생성되는 모든 프로세스들 역시 표준 사용자 권한으로 생성이 되는 것입니다. 그래서 표준 사용자는 물론 관리자 또한 마찬가지로 이후 실행되는 모든 응용 프로그램들을 관리자 권한이 아닌 표준 사용자 권한으로 실행을 하게 되는 것입니다.



권한 상승(Elevation)

앞에서도 말했지만 사용자가 관리자라 할 지라도 일반적인 응용 프로그램들은 표준 사용자 권한 수준으로 실행하게 됩니다. 사실 대다수의 응용 프로그램들은 표준 사용자 권한 수준에서도 아무런 문제없이 돌아갑니다. 그러니 굳이 위험하게 관리자 권한 수준으로 모든 응용 프로그램을 실행시킬 필요가 없는 것입니다.

그러다 관리자가 관리 작업을 수행하는 응용 프로그램을 수행하려고 하면 사용자 계정 컨트롤은 사용자에게 작업을 승인할 것인지 묻는 메시지를 표시하게 됩니다. 사용자가 작업을 승인하면 관리자의 전체 관리자 액세스 토큰을 사용하여 해당 프로세스를 관리자 권한 수준으로 권한을 상승시키고 작업을 시작하는 것입니다.

사용자의 승인을 요구하는 사용자 계정 컨트롤.



표준 사용자 또한 사용자 계정 컨트롤을 사용하여 권한을 높이고 관리 작업을 수행할 수 있습니다. 표준 사용자가 일부 허락된 관리 작업을 수행하려고 시도하면 사용자 계정 컨트롤은 사용자에게 관리자 계정을 위한 유효한 자격 증명을 입력하도록 요구합니다. 표준 사용자가 관리자 그룹 사용자의 계정과 암호를 알고 있다면 이를 입력해주면 됩니다.

관리자 자격을 증명하길 요구하는 사용자 계정 컨트롤.



이러한 권한 상승을 통해 사용자는 현재 수행하려는 작업이 관리자 권한 수준이 필요한 작업임을 알 수 있습니다. 이를 통해 사용자가 실수로 시스템 설정을 변경하지 않도록 할 수 있으며 악성 프로그램이 사용자 몰래 관리자 권한을 획득하여 실행되거나 윈도우의 설정에 접근하는 것을 방어할 수 있는 것입니다.



권한 상승 요구 확인 - 네 가지 유형의 대화 상자

권한 상승을 요구하는 확인 메시지는 다음의 네 가지 유형이 있습니다.

출처 - 마이크로소프트 테크넷



각 메시지들에 대한 설명은 아래와 같습니다.

윈도우 7 도움말 : 사용자 계정 컨트롤이란?
아이콘 유형 설명

Windows의 일부인 설정 또는 기능을 시작하려면 사용 권한이 필요합니다. 이 항목에는 Microsoft가 이 항목의 게시자임을 확인하는 유효한 디지털 서명이 있습니다. 이 유형의 대화 상자가 표시되면 일반적으로 안전하게 작업을 계속할 수 있습니다. 하지만 안전성이 확실치 않은 경우 프로그램 또는 기능 이름을 확인하여 실행하려는 프로그램 또는 기능이 맞는지 확인하십시오.

Windows의 일부가 아닌 프로그램을 시작하려면 사용 권한이 필요합니다. 이 프로그램에는 원하는 프로그램이 맞는지 확인하는 데 도움이 되고 프로그램 게시자의 ID를 확인할 수 있는 유효한 디지털 서명이 있습니다. 이 유형의 대화 상자가 표시되면 실행하려는 프로그램이 맞는지, 그리고 게시자를 신뢰할 수 있는지 확인하십시오.

게시자를 알 수 없는 프로그램을 시작하려면 사용 권한이 필요합니다. 이 프로그램에는 게시자의 유효한 디지털 서명이 없습니다. 오래된 정품 프로그램 중에는 디지털 서명이 없는 프로그램이 많으므로 반드시 위험하다고 할 수는 없습니다. 그러나 좀 더 주의를 기울여야 하며 원본 CD나 게시자의 웹 사이트 등 신뢰할 수 있는 원본에서 가져온 경우에만 프로그램을 실행하도록 허용해야 합니다. 안전성이 확실치 않은 경우 인터넷에서 프로그램 이름을 조회하여 알려진 프로그램인지 또는 악성 소프트웨어인지 확인하십시오.

시스템 관리자가 이 프로그램을 실행하지 못하도록 차단했습니다. 이 프로그램은 신뢰할 수 없는 것으로 알려졌기 때문에 차단되었습니다. 이 프로그램을 실행하려면 시스템 관리자에게 문의해야 합니다.




권한 상승이 일어나는 네 가지 경우

권한 상승이 일어나는 경우는 크게 아래의 네 가지 경우를 들 수 있습니다.

1. 사용자가 직접 권한 상승을 요청할 때(관리자 권한으로 실행)

사용자가 프로그램을 직접 관리자 권한으로 실행할 것을 요청하여 실행시키면 권한 상승이 일어납니다.



2. 프로그램 호환성 탭에 관리자 권한으로 실행하도록 설정된 경우

프로그램 호환성 탭에서 프로그램의 권한 수준을 관리자 권한으로 실행하도록 설정한 경우 권한 상승이 일어납니다.



3. 관리자 권한으로 마킹 된 실행 파일을 실행할 때

프로그램을 제작할 당시 매니페스트(Manifests) 리소스 안에 requestedExecutionLevel 을 설정하고 설정한 수준이 현재 부모 프로세스의 실행 수준보다 높은 경우 권한 상승이 일어납니다.



4. 설치 프로그램을 실행할 때

윈도우는 설치 프로그램을 실행 시에 자동으로 설치 프로그램을 감지해서 설치 프로그램의 권한을 상승시키려 시도합니다.



이 외에 윈도우의 주요한 설정이나 정책을 편집하거나 관련된 기본 관리 프로그램들을 실행하려고 할 때도 권한 상승이 일어납니다.[제어판의 수 많은 방패들을 떠올려 보세요. ^^]



보안 데스크톱(Secure Desktop)

사용자 계정 컨트롤은 권한 상승을 확인할 때 보안 데스크톱이라는 것을 사용합니다. 보안 데스크톱은 화면이 완전히 일시적으로 어두워지며 인증 창만이 강조되는 것입니다. 이는 악의적인 프로그램이 사용자 인터페이스나 마우스를 속이는 작업을 방지하기 위해서 입니다.

보안 데스크톱 적용보안 데스크톱 해제





기타 이야기

이상으로 사용자 계정 컨트롤은 무엇인지 어떻게 동작하는지에 대해서 알아보았습니다. 윈도우 7 은 이와 같이 권한을 분리시키고 사용자 계정 컨트롤의 관리하에서 필요에 따라 사용자의 권한을 상승시키는 방법으로 작업을 진행합니다. 이를 통해 사용자의 실수를 방지하고 악의적인 프로그램을 차단하여 윈도우의 보안을 지키는 것이지요.



최고의 권력자 - Administrator

그런데 윈도우의 사용자 중 유일하게 이러한 사용자 계정 컨트롤의 간섭을 받지 않는 사용자가 딱 하나 있습니다. 바로 애초에 윈도우에 의해 명시된 관리자인 Administrator(최고 관리자) 입니다.

I'm King of the Windows!!!!!



그래서 사용자 계정 컨트롤이 귀찮은 많은 분들은 이러한 최고 관리자 계정을 많이들 사용하고 있죠. 근데 사용자 계정 컨트롤을 꺼버리면 관리자 그룹의 사용자들도 최고 관리자와 동일한 환경이 됩니다. ^^; 아무튼 이러한 Administrator 도 사용자 계정 컨트롤의 영향을 받게 끔 윈도우의 보안 정책을 수정할 수 있습니다. ^^a



사용자 계정 컨트롤의 영향을 받지 않으려면?

사용자가 사용자 계정 컨트롤의 영향으로 부터 완전히 벗어나 예전 윈도우 버전들과 같이 자유롭게 작업할 수 있는 방법은 간단하게 최고 관리자 계정을 사용하거나 사용자 계정 컨트롤 자체를 꺼버리는 방법이 있습니다.



물론 사용자 계정 컨트롤을 끄지 않고 정책을 수정하거나 완화하는 방법도 사용할 수 있습니다.[물론 강화할 수도 있습니다.] 이러한 내용은 다른 글에서 찾아 뵙도록 하죠. ^^ 사용자 계정 컨트롤에 관한 글은 여기까지 입니다. ^^



참고 자료

 

 

캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 돌산 2013.01.18 12:54 신고  댓글주소  수정/삭제  댓글쓰기
    사용자 계정 컨트롤에 대한 깔끔한 글 감사합니다.
  2. q3 2013.02.18 02:32 신고  댓글주소  수정/삭제  댓글쓰기
    좋은 글 잘봤습니다 ㅎㅎ 요즘 윈도우8로 갈아타면서 UAC에 대해서 궁금했는데 궁금증이 다 풀렸네요
  3. 이종하 2013.09.06 10:13 신고  댓글주소  수정/삭제  댓글쓰기
    너무 자세한 기술에 그저 감사할 뿐입니다. 오늘도 즐거운 하루가..
  4. 만수르 2014.11.14 20:53 신고  댓글주소  수정/삭제  댓글쓰기
    안녕하세요. 친절한 설명 감사합니다.
    잘못 된 내용이 있는것 같습니다.
    부모 프로세스가 죽으면 자식 프로세스도 kill 되어야 하는데 explorer kill 시켜도 자식 프로세스는 하나도 안죽네요? 그말은 사용자 로그온 후 실행하는 프로그램의 부모가 explorer.exe가 아니라는 말인데..
    혹시나 해서 process Monitoring (sysinternals) 다운받아 확인한 결과 아니였습니다.
    이점 설명 부탁드립니다~
    • BlogIcon 나모찾기 2015.02.06 15:15 신고  댓글주소  수정/삭제
      만수르님이 잘못 알고 있습니다.
      부모 프로세스가 죽으면 자식 프로세스가 Kill되어야 한다는 사실은 잘못된 내용입니다.
      프로세스는 독립된 실행 객체입니다. 부모 프로세스가 종료(정상적 혹은 비정상 종료)시에 자식 프로세스가 종료될 필요가 없습니다.

      만수르 님이 원하시는 결과를 수행하시려면
      '프로세스 끝내기'가 아닌 '프로세스 트리 끝내기'를 수행하시면 됩니다.
  5. lsang2222 2016.04.02 05:24 신고  댓글주소  수정/삭제  댓글쓰기
    글은 정말 잘봤는데...
    부모 안에서 관리자 권한을 이용못해서 그러는거는 방법이 없을까요?
    현재 제 계정이 standary유저고 다른 계정이 어드민입니다
    물론 그계정 비밀번호를 모르구요....
    위에 사항들을 모두 따라해봤으나 모두 관리자 권한으로 변경이 가능하다고 하네요
    아래 참고링크도 같이 보고 해봤지만... 관리자 권한이 필요하다고 합니다...
    현재 제 상황을 보시고 답변 부탁드립니다...
  6. 안진현 2016.05.01 20:21 신고  댓글주소  수정/삭제  댓글쓰기
    보상플랜
  7. 추홍범 2016.06.03 16:37 신고  댓글주소  수정/삭제  댓글쓰기
    계정에 관한 글 감사히 잘 봤습니다.

    프로그램이 설치 되지 않는 현상을 해결하고자 여러 곳을 확인하고 있습니다.

    관리자 권한으로 설정되어 있는 계정에서는 프로그램이 설치되지 않으나 표준 사용자로 설정되어 있는 계정에서는 정상적으로 설치가 됩니다.

    참고로 관리자 권한으로 설정되어 있는 계정은 계정 유형 선택이 변경되지 않습니다.

    혹시 관리자 권한으로 설정되어 있는 계정에서 정상적으로 프로그램을 설치 할 수 있는 방법이 없을까요?

    해당 컴퓨터는 독서실에서 사용하고 있어 프로그램 설치가 되지 않도록 설정되어 있습니다.

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com