Windows 7, UAC 두마리 토끼를 잡자!


Windows Vista에서부터 프로그램을 새로 설치 하거나 Windows 설정을 변경 하려다 보면 낯선 무엇인가가 나타나서 ‘예’, ‘아니오’ 버튼을 눌러야 작업을 계속 할 수 있었습니다. 우리는 그 낯선 그를(혹은 그녀를) ‘UAC(User Account Control) 창’ 이라고 부릅니다.

clip_image002

[그림] ‘UAC 창’이 나타난 모습

우리가 회사나 집에서 컴퓨터를 사용할 때 윈도우 관리자 계정(Administrator)계정이 무엇인지 몰라도 대부분 관리자 계정을 사용하게 됩니다. 그런데 이 관리자 계정이라는 것이 Windows안에서 무엇이든지 할 수 있는 권한을 가지고 있어 그 계정으로 실행되는 프로그램들까지도 Windows를 마음대로 주무를 수 있습니다. 이것은 곧 관리자 계정에서 실행 되는 프로그램이 바이러스나 Rootkit과 같은 악성 프로그램이라 할지라도 Windows 어떠한 제제 없이 마음대로 주무를 수 있다는 의미입니다. 주무른다는 것은 다른 말로 프로그램을 설치 하거나 Windows의 설정을 변경하는 작업, 즉 Windows의 모든 리소스에 대해서 Read/Write/Excute가 가능하고  모든 사용 권한(Privilege)를 가진다는 의미 입니다, 그래서 악성 프로그램이 컴퓨터 부팅에 꼭 필요한 레지스트리(Registry) 몇 개 가뿐히 삭제하는 건 일도 아니겠죠. (부팅 못하게 하는 순진한 짓은 예전 이야기기고 요즘은 좀더 교활한 짓들을 많이 합니다…)

이런 악성 프로그램들이이 자신들이 실행/설치 될 때 “자 사용자님, 이제 제(악성프로그램)가 설치/실행 될 것 입니다, 앞으로 많이 괴롭혀 드릴 테니 기대하세요~”라고 말이라도 한마디 해주면 좋으련만 이놈들이 순순히 자신의 존재를 나타내지 않고 악행을 저지른다는 게 문제입니다. 그래서 악성 프로그램이 내 컴퓨터를 주무르려 할 때 이것을 사용자에게 알리고 미연에 차단 할 수 있는 방법을 고민하다가 Vista에서부터 구현된 것이 바로 UAC(User Account Control)입니다.

UAC를 알기 위해 간단한 설명을 드리겠습니다.

clip_image004

[그림] 두 가지 Token

Windows XP 이전에는 사용자가 컴퓨터에 로그인 하면 토큰이라는 것을 받습니다. Vista 이전에는 관리자 계정(Administrator) 로그인 하면 Windows에서 무엇이든 할 수 있는 Full Administrator Access Token을 받았습니다 그래서 이 토큰만 내밀면 모든 리소스는  모든 작업을 허락하였습니다.

예를 들면 놀때월드에 엄마와 함께 입장한 어린아이가 입장할 때 받은 자유이용권(Administrator Token)으로 엄마 몰래 모든 놀이 기구를 마음대로 탈수 있는 것과 비슷합니다.

Vista에서부터 사용자 허락 없이 악성 프로그램이 리소스를 함부로 건드리는 것을 막고자 위 그림에서처럼 토큰을 두 개로 나눴습니다(이것을 Split 했다고 표현합니다). 관리자 계정으로 로그인 해도 마치 일반 사용자와 동일한 Standard User Access Token을 받게 됩니다. 그랬다가 관리자 권한이 필요한 상황이 생기면 UAC가 해당 프로그램 실행 혹은 Windows 설정 변경을 위해 Full Administrator Access Token을 사용하겠냐고 ‘UAC 창’을 띄어 사용자에게 물어 보고 사용자가 OK하면 작업을 계속 진행하게 됩니다.

이것은 기본 입장권(Standard User Access Token)만으로 놀때월드에 들어간 아이가 바이킹이 타고 싶다면, 엄마(사용자)에게 타고 싶다고 이야기(‘UAC 창’)하면 엄마가 타도 좋다고 허락(UAC에서 ‘예’를 클릭) 하면서 그때만 잠시 자유이용권(Full Administrator Access Token)을 받아 바이킹을 탄다(응용프로그램 실행 혹은 설정 변경)고 생각할 수 있습니다.

clip_image006

[그림] 사용자의 허가를 기다리는 UAC 창’

 

Windows 7에서 UAC

Vista에서는 완고하게도 UAC가 필요하겠다고 판단되는 모든 작업에 UAC 창을 띄우게 했습니다(좀 과임 보호랄까요?) 그리고 UAC 기능을 On 혹은 Off 만 할 수 있었습니다. 이러한 면이 사용자 입장에서는 번거롭다고 인식되었고 사용자의 Feedback을 기반으로 Windows 7에서는 UAC의 기능은 그대로 가져 가면서 사용자의 번거로움을 최소화 할 수 있는 방식으로 구현 했습니다.

1. UAC 창이 나타나는 비율을 최소화 했습니다.
Windows 7에서는 이전 보다 UAC 창이 나타나는 빈도를 다각도로 줄였으며 일반 사용자 계정으로 로그온 해도 관리자 권한(Administrator Privilege)없이 변경 혹은 볼(View) 수 있는 Windows 설정을 늘렸습니다.

2. UAC 창이 나타나는 레벨을 사용자가 옵션 선택으로 설정 할 수 있게 되었습니다.
Windows 7에서는 UAC 창이 나타나는 레벨를 사용자가 직접 변경 할 수 있습니다. Vista에서는 UAC를 켜거나 끌 수 밖에 없었는데 Windows 7에서는 ‘제어판 > Action Center > 사용자 계정 컨트롤 설정‘에서 사용자가 원하는 레벨로 UAC를 조정 할 수 있습니다, 또한 UAC창이 나타나면서 모든 데스크 탑 창을 회색으로 비활성화(Dim 이라고 합니다)되면서 ‘예/아니오’를 선택하지 않고는 다른 작업을 하지 못했던 것과는 다르게 UAC 창이 나타난 상태에서도 다른 작업을 할 수 있는 옵션이 존재 합니다.

clip_image008

[그림] 사용자 계정 컨트롤 설정

아래 레벨에 따라 UAC가 실행 될 때 프로그램이 Windows 변경하는 경우와 사용자가 변경하는 경우에 따라 다른 Action을 취합니다.

옵 션

설 명

Always notify me when 프로그램이 관리자 권한(혹은 Full Access Token)으로 Windows 설정이나 프로그램 설치 같은 작업이 있는 경우 윈도우 바탕화면은 Dim 상태가 되며 UAC 창에서 ‘예/아니오’를 선택하지 않는 이상 다른 작업을 할 수 없습니다. Vista와 동일한 설정 입니다. *Dim 상태에서 UAC창만 컨트롤이 가능한 것을 Secure Desktop이라고 합니다.
Default – Notify me only when programs try to make change to my computer Windows 7의 기본 설정입니다. 프로그램이 관리자 권한으로 프로그램 설치 같은 변경 작업을 수행 할 경우 UAC 창과 함께 Dim 상태가 되지만 사용자가 설정을 변경하는 경우에는 UAC 창이 나타나지 않습니다.
Notify me when programs try to make changes to my computer (do not dim my desktop) Default와 동일하지만 프로그램으로 인한 변경작업이 진행 되면  UAC가 나타나지만 Dim 상태가 되지 않아 이외에 다른 작업이 가능합니다.
Never notify me UAC가 꺼진(Turn Off) 상태

그리고 이전에는 관리자 계정 토큰이 있어야만 실행되는 응용프로그램 비율이 높았습니다만 현재는 개발사들의 노력으로 일반 사용자 권한만 있어도 실행 되도록 많이 변화 되어 UAC 창이 나타나는 비율도 많이 줄어든 상태입니다.

image

오늘 UAC에 대한 내용은 여기 까지 입니다. 아마 기술의 발전이 계속되는 한 뚫으려는 자와 막으려는 자 사이의 대결은 계속 될 것입니다. 둘간의 대결을 보면 마치 피겨스케이팅 대결을 보는 착각을 불러 일으키는데요. 일단 UAC 기술로 가산 점수 3점에 Windows 7의 ‘두 마리 토끼잡기’로 예술점수 3점이 추가 된 듯 합니다. 상대방도 이 6점 차를 따라 잡아야 할텐데 점수로 느껴지는 것보다 차원이 다른 문제라 한동안 UAC의 완승이 될 것 같습니다.

즐거운 하루 되세요~

Comments (1)

  1. 유미 says:

    쉽고 좋은 정보 고맙습니다.

    uac가 뭔지, 창이 왜뜨는지… 궁금한게 풀렸어요~

    윈도에 얽힌 짧은글도 인상깊었고 윈도우7을 무식하게 써온것을 반성하며 조금씩 알아가고 있습니다.

    이 글을 비롯해서 servicing stack, 윈도우성능옵션, autoruns와함께… 포스트를 퍼갑니다.

Skip to main content