사용자 계정 컨트롤 (User Account Control)

 

이 블로그는사용자 인터페이스에 대한 성능, 기술적 및 비기술적 주제, 쉬운 주제 및 논쟁적 주제 등 다양한 주제들을 다뤄서Windows 7 엔지니어링에 대한 전체적인 조망을 제공할것입니다. 그리고 지금 다루고자 하는 주제는 사용자 계정 컨트롤(UAC)에 대한 것입니다. 핵심 OS 개발의 부사장인 Ben Fathi가 이 글을 작성했고 몇몇 팀원들이 이에 도움을 주었습니다. UAC는 보안, 계정, 사용자 인터페이스, 디자인 등 Windows 아키텍처의 많은 부분을 다루는 기능입니다.

우리는 이 글을 통해 피드백을 잘 하지 않는 사용자까지도 댓글을 달 수 있을 정도로 가치있는 논의들을 전개해 나가도록 노력할 것입니다. 이 글을 읽으시는 분들의 많은 댓글 부탁드립니다.

Blogs.msdn.com 서버인 FWIW는 스팸을 감소시키기 위해 댓글을 통제하는 기능을 사용합니다. 그러나 저희가 댓글에 대해서 직접 관여하지는 않을 것입니다. 저는 스팸 방지규칙을 공개하지 않을 것이며, 사실 저는 그 규칙을 알지도 못합니다. 그리고 스팸 방지 규칙에 의해 여러분의 글이 게재가 되지 않았을 경우에 대해서는 죄송하게 생각합니다. – Steven

UAC는 확실히 Windows Vista에서 논쟁의 여지가 있는 기능 중의 하나입니다. 왜 Microsoft는 Windows에 UAC팝업을 추가하였을까요? UAC 는 실제로 보안을 강화할까요? 모든 사용자가 그냥 “계속” 단추를 클릭하지 않을까요? Microsoft 직원들은 사용자들의 피드백을 듣고 있나요? TV광고에서 UAC기능을 본 적이 있으신가요?

Windows 7을 만드는 과정에서 저희는 사용자 피드백, 대량의 데이터, 소프트웨어 에코시스템, Windows 를 연구하면서 UAC기능에 대해 주의 깊게 검토해 보았습니다. 지금부터 UAC 기능을 만든 이유 및 Vista에서의 접근 방법에 대해 논의해 보겠습니다.

UAC기능을만든이유

자세한 기술적 사항까지 다루진 않더라도, UAC에 대해 간단히 설명드리자면, ”시스템 수준”의 변경 사항이 있을 때마다 여러분에게 이 사실을 알려주는 기능이며, 이를 통해서 여러분이 컴퓨터를 안전하게 통제할 수 있게 되도록 하는 것입니다. 방화벽을 끄는 바이러스, 컴퓨터의 통제권을 장악하는 루트킷(rootkit) 등과 같은 “원치 않는 변경”은 컴퓨터에 피해를 줄 수 있습니다. 그리고 “원치 않는 변경”은 사용에 제한이 있는 사용자에 의해 시도 될 수 있습니다. 예를 들어, 가정에서 부모에 의한 사용 통제(parental control)를 설정해 둔 컴퓨터에서 제한을 무시하고 사용을 시도하는 어린이 또는 회사에서 허가되지 않은 소프트웨어를 설치하려고 하는 사원 등이 이에 속합니다. Windows NT는 다양한 사용자 계정 유형을 제공합니다. 그 중의 하나가 “표준 사용자”인데, 이 계정 유형은 의도하지 않은 변경을 할 수 있는 관리자 권한이 없습니다. 기업에서는 일반적으로 대부분의 사원에게는 표준 사용자 계정을 제공하며 반면에 소수의 IT전문가에게만 관리자 권한을 제공합니다. 표준 사용자 계정에서는 시스템 수준을 변경할 수 없으며, 심지어 본의 아니게 악의적 웹사이트를 방문하는 것에 의해서나, 잘못된 프로그램을 설치하는 것에 의해서 시스템 수준이 변경될 수 없습니다. 대부분의 사용자 변경을 제한하는것은 컴퓨터에 대한 고객 지원 및 회사의 총소유비용(TCO)을 감소시킬 수 있습니다. 가정에서 부모는 아이들을 위해 표준 사용자 계정을 만들 수 있으며, 아이들을 유해 정보 등으로 부터 보호하기 위해 사용에 제한을 둘 수 있습니다.

그러나 기업 및 부모에 의한 사용통제가 있는 경우 이외의 대부분의 컴퓨터(75%)에서는 관리자 권한이 있는 하나의 계정만이 있습니다. 이러한 이유 중 일부는 관리자에 의해 기본적으로 만들어지는 첫번째 사용자 계정이기 때문이기도 하고, 또 일부는 사용자가 자신의 컴퓨터를 자유롭게 통제하기를 원하기 때문이기도 합니다. 그 결과 대부분의 사용자가 관리자 계정을 가지고 있으며, 결국 일부 Windows 컴포넌트뿐만 아니라 대부분의 응용 프로그램이 시스템 수준 상의 변경을 할 수 있도록 만들어졌습니다. 이러한 방식으로 만들어진 소프트웨어는 앞에서 언급한 기업 및 부모에 의한 사용 통제가 있는 컴퓨터의 표준 사용자 계정에서는 제대로 실행되지 않을 것입니다. 덧붙여, 모든 응용 프로그램에 컴퓨터에 대한 모든 접근 권한이 있게 되면 시스템에 피해를 줄 확률이 높아질 수 있습니다.

그림 1. 서버를 제외하고 하나 이상의 계정을 사용하는 시스템의 비율 (2008년 1월~2008년 6월).

사용자 계정 컨트롤은 Vista에서 두 가지 이슈를 다루도록 시행되었습니다. 한 가지 이슈는 사용자 유형에 따른 소프트웨어의 호환성 문제, 또 다른 이슈는 시스템 수준 변경에 대한 사용자의 이해 부족입니다. 보호된 관리자(PA)를 계정에 추가하면서 계정 유형을 늘렸는데, 이 새로운 계정 유형이 시스템의 첫번째 계정을 위한 기본 유형이 됩니다. PA 사용자가 시스템에 로그인할 때 두 가지 보안 증명을 받게 되는데, 하나는 대부분 기본 권한이면 충분한 표준 사용자 증명과 동일한 것이고, 또 다른 하나는 모든 관리자 권한을 가지고 있습니다. 표준 사용자는 기본 증명만 받게 되고, 필요하면 또 다른 계정에서 관리자 증명을 가져올 수 있습니다.

시스템에서 사용자가 관리자 권한을 요구하는 동작을 수행하려는 것이 감지되면 디스플레이는 “보안된 데스크톱” 모드로 변경되고 사용자에게 승인을 요청하는 대화 상자가 뜨게 됩니다. 디스플레이를 “보안된 데스크톱”으로 바꾸는 이유는 악성 소프트웨어 프로그램이 UAC 인터페이스를 모방하여 (UI Spoofing) UAC 대화 상자에 “예”를 클릭하도록 시도하는 공격을 방지하기 위한 것입니다. 데스트톱이 “보안” 상태에 있을 경우에는 이를 시도할 수가 없습니다. 보호된 관리자 유형의 사용자는 모든 시스템 변경이 있을 때마다 이에 대한 정보를 받고 “예”만 클릭하면 변경이 실행되도록 할 수 있습니다. 표준 사용자는 비슷한 대화 상자를 보게 되지만, 변경을 완료하는데 필요한 관리자 권한을 가진 계정에 대한 관리자 증명(암호, 스마트 카드 PIN, 지문 등을 통해서)을 입력해야 합니다. 부모에 의한 사용 통제를 사용하는 가정용 컴퓨터의 경우, 부모는 자신의 로그인 이름 및 암호를 입력해야만 소프트웨어를 설치할 수 있으며, 결국 컴퓨터에 추가된 소프트웨어나 컴퓨터에 대한 변경을 통제할 수 있습니다. 기업의 경우, IT 관리자는 그룹 정책을 통해서 표준 사용자가 시스템 상태를 변경할 수 없다는 메시지를 주는 등의 팝업을 통제할 수 있습니다.

지금까지알게된사실

우리는 언제나 Windows를 향상시키기 위한 노력들을 하고 있으며, 특히 저희의 고객인 여러분들에게 가장 큰 영향을 끼치는 영역에 대해서 노력을 아끼지 않고 있습니다. 다음 부분에서는, 에코시스템, Windows, 최종 사용자(end user)에 대한 데이터를 다룰 것입니다. 그리고 이 데이터는 이 글을 읽으시는 분들이 느꼈을지도 모르는 사용상의 불편함이나 힘든 부분들에 대해 모두 보여주지 못할 수도 있습니다. UAC는 소프트웨어 에코시스템, Vista 사용자, Windows에 중요한 영향을 끼쳤습니다. 앞의 글에서 언급하였듯이, 사용자들이 자발적 및 익명으로 얼마나 많은 기능을 사용하는지에 대한 데이터를 저희에게 보내는 방법들은 많습니다(사용자경험 향상 프로그램, Windows 피드백 패널, 설문 조사, 사용자 현장 테스트, 블로그 글, 사용 편의성 테스트). 이렇게 수집한 데이터와 피드백은 기능 디자인 시 우선순위를 결정하는데 있어서 도움을 줍니다. 그리고 이러한 데이터를 통해 우리는 UAC가 어떤 영향을 끼쳤는지에 대해서 많이 알게 되었습니다.

소프트웨어에코시스템에대한영향

UAC를 통해 관리자 권한을 불필요하게 요구하는 응용 프로그램 수가 상당히 감소되었습니다. 이를 통해 전반적인 소프트웨어 품질이 향상되었으며 시스템에 대한 모든 관리자 권한을 필요로 하는 컴퓨터 소프트웨어에 잠재된 위험성을 약화시켰다고 생각합니다.

Vista가 이용되기 시작한 이후 처음 몇 달간, 사용자 여러분은 세션의 50%에서 UAC 팝업창을 경험하셨습니다. 하나의 세션은 로그온으로부터 로그오프까지 또는 24시간 내에 발생하는 모든 것을 말합니다. 그리고 팝업을 불러오는 775,312개의 중복되지 않는 응용 프로그램(Windows에서 지원하는 중복되지 않는 소프트웨어)이 있었습니다(설치자나 응용 프로그램 자체는 동일한 프로그램으로 계산하지 않습니다). 수치가 높아 보이는데요. 이는 소프트웨어 에코시스템에서 불필요하게 관리자 권한을 실행하도록 요구하는 경우가 많기 때문입니다. 에코시스템에서 소프트웨어를 업데이트하면서 관리자 권한을 요구하는 응용 프로그램의 수가 훨씬 줄어 들었습니다. 2008년 8월의 사용자 경험 향상 프로그램 데이터를 보면, 팝업창을 불러오는 응용 프로그램이나 작업의 수가 775,312개에서 168,149개로 감소했습니다.

그림 2. UAC 팝업창을 불러온 응용 프로그램 및 작업 수

이러한 감소는 더 많은 프로그램이, 표준 사용자들이 매번 작업할 때마다 팝업창을 띄우거나 예기치 않게 관리자 또는 시스템 설정을 변경하는 등의 일이 발생하지 않도록 제대로 작동하고 있음을 보여줍니다. 추가적으로, 새 컴퓨터의 경우 관리자 수준의 작업 필요성이 높기 때문에 초기에는 팝업창이 나타나겠지만, 사용자 여러분이 컴퓨터를 오래 사용할수록 새로운 프로그램을 설치하거나 Windows 설정을 변경하는 빈도가 줄어들게 되고 따라서 팝업창이 뜨는 경우도 감소하게 될 것으로 예측됩니다. 사용자 경험 향상 프로그램 데이터를 보면,하나 이상의 UAC 팝업창을 불러오는 세션의 수가 Vista에서는 50%에서Vista SP1에서는33%로 감소했음을 알 수 있습니다.

그림 3. 팝업을 불러온 세션의 비율

Windows에대한영향

UAC의 결과는 바로 Windows 엔지니어링 품질 향상을 가져 왔습니다. 시스템에 완전히 접근할 수 있는 Windows 컴포넌트의 수는 이전보다 훨씬 적어졌습니다. 게다가, 시스템에 대한 모든 접근을 필요로 하는 컴포넌트는 모두 사용자의 허가를 받아야 합니다. 데이터에 따르면, 모든 UAC 팝업에 있어서 Windows 자체가 차지하는 비중은 약 40%에 이릅니다. 가장 빈도가 높은 팝업의 비중을 보면 더욱 극적인 변화가 보입니다. Vista에서는 팝업 상위 50개에서 Windows 컴포넌트가 17개 있었으며, Vista SP1에서는 상위 50개 중 29개로 바뀌었습니다. Vista SP1에서의 향상 목표를 통해 자주 사용하는 복사 엔진 등 컴포넌트의 Windows 팝업 빈도를 줄였으며, 팝업 빈도를 더욱 줄여 나갈 수 있을 것입니다. 소프트웨어 에코시스템에서도 부단한 노력이 있었고 결과적으로 상위 50개 목록에서 Windows 컴포넌트가 차지하는 비중이 높아지게 된 것입니다. Windows 차원에서는 아키텍처 수준의 변경을 통해서 Windows 7에서는 팝업이 더 줄어들게 될 것입니다. 소프트웨어 에코시스템과 Windows 자체에서의 팝업 감소는 결국 Win-Win의 명제가 될 것입니다. 팝업 감소를 통해서 사용자는 시스템에 대한 잠재적으로 불안정한 변경이 있지 않도록 소프트웨어에 대한 더 많은 선택권이 있다는 확신을 가지게 될 것이고, 사용자가중요한 팝업을 더 쉽게 분별하게 되면서 자신이 시스템에 대한 통제 권한을 가지고 있다는 확신도 강해질 것입니다.

저희가 들은 피드백 중 중요한 하나가 Internet Explorer에서 다운로드를 받을 경우 야기되는 팝업의 수입니다. 이는 응용 프로그램의 보안 대화 상자와 UAC 팝업의 경우가 겹쳐지는 일반적 예 중 하나입니다. XP Service Pack 2 이후, IE에서는 인터넷에서 프로그램을 실행하기 전에 사용자에게 경고를 해주는 보안 대화 상자를 사용해 왔습니다. Vista에서는 이 때문에 두 번의 팝업이 발생하게 되었는데 IE 팝업이 뜨고 바로UAC 팝업이 뜨게 된 것입니다. 이 부분은 앞으로 보다 적절한 방식으로 다루어져야할 분야입니다.

그림 4. Microsoft제품 중 상위 50개의 팝업

사용자에대한영향

장치 관리자를 열거나, 소프트웨어를 설치하거나, 방화벽을 끄는 등의 일반적 일을 하기위해 한번 더 클릭하는 것에 대해 때로는 사용자는 혼동스럽거나 좌절감을 느낄 수도 있습니다. 다음은 Windows 피드백 패널에서 받은 대표적 피드백의 예입니다.

· 방금 컴퓨터에게수행하도록 입력한 바에 대해 원하는 일인지 계속 질문받고 싶지는 않습니다.

· Vista에서 컴퓨터에서 하는 작은 일들을 일일이 허가하도록 요청받고 싶지 않습니다.

· 변경이 있을 때마다 끊임 없이 뭔가를 입력해야 하는 것은 성가신 일입니다. 하지만 아이들이 뭔가 바꿀 필요가 있는 경우 저에게 암호를 넣도록 요청하는 것은 좋다고 봅니다.

· UAC를 단순화시켜 주십시오. 당혹스럽고 성가신 경우가 있습니다.

한 번 더 클릭하는 것이 성가실 수 있다는 것을, 특히 시스템에서 발생하는 사항을 잘 알고 계신 사용자들에게는 더 그럴 수 있다는 것을, 저희들도 이해하고 있습니다. 그러나, 대부분의 사용자들에게, UAC를 통해서 시스템이 피해 입기 전에 악성 프로그램이나 제대로 만들어지지 않은 소프트웨어가 보여지고 사용자의 승인을 묻는 잠재적인 이점이 있습니다.

이렇게 하면 시스템이 더 안전해질까요? 모든 Windows 사용자가 모든 컴퓨터 작업의 원인과 결과를 이해하는 전문가라면 UAC 팝업을 통해 어떤 악성적인 것들도 들어오지 못하도록 완벽한 통제가 가능할 것입니다. 그러나 실재로는 일부 사용자들께서 팝업 내용을 읽지 않으시고 결과적으로 아무런 이익도 얻지 못한채 그냥 성가시게만 느끼게 되는 것입니다. Vista에서 일부 고급 사용자들은 UAC 기능을 끄셨습니다. 찾기 어려운 설정인데 말이죠. 사실 이런 접근 방식은 추천하고 싶지 않습니다. UAC 기능을 끄는 방법을 안다는 것이 가치가 없진 않겠지만요. UAC 팝업을 읽어 상황을 이해하려는 분들은, 각 팝업을 읽어서 원하는 바와 일치하는지 시간을 두고 확인하시면, 보안 부분에서 잠재적으로 이익을 보실 수 있을 겁니다. 그러나 아직 팝업을 이해하기는 쉽지 않습니다. Vista에서 대화 상자를 이해하기 쉽지 않고 기억하기도 어렵습니다. 저희들이 시행했던 한 연구 결과에 따르면 오직 13%의 연구 참가자만이 Vista에서 UAC 대화 상자가 왜 나타났는지 자세히 설명할 수 있었습니다. 다른 참가자들은 그런 대화 상자를 본 사실조차도 기억하지 못했습니다. 덧붙여서 말씀드리자면, 관리자들은 Vista에서 89%, SP1에서 91%의 팝업이 나오도록 허가하고 있습니다. 팝업 수가 너무 많아서 사용자들이 그냥 습관적으로 팝업에 반응하며 중요한 팝업을 그냥 지나치면서 확실한 결정을 할 수 없다는 부분에 대해서 우려가 있습니다. 많은 분들도 예측 가능한 시나리오라고 말합니다.

그림 5. 각 팝업 유형의 비율

그림 6. UAC 팝업의 비율

앞으로의계획

이제까지 수집한 데이터 및 피드백으로 저희들은 향후 UAC가 어떤 식으로 발전하게 될지 가늠해 볼 수 있습니다. UAC에 대한 저희들의 목표가 맞다고 느끼고 있으며, 이 목표를 달성하기 위한 적절한 방법을 찾는 것이 저희들의 과제입니다. UAC를 만든 목적은, 소유 비용을 절감하고 소프트웨어 에코시스템을 향상시키면서 사용자가 자신의 시스템을 통제할 수 있게 하는 것입니다. 저희들이 알게 된 사실은 Vista에서는 이 목표에 대해 아직 부분적인 달성만 있었고 일부 사용자들께서는 저희가 이 목표를 이루지 못했다고 생각하신다는 것입니다.

데이터 및 피드백으로부터 알게 된 사실에 근거해서 보면, 몇몇 중요한 이슈를 Windows 7에서 다룰 필요가 있습니다.

· 중요한 팝업을 쉽게 인식할 수 있도록, Windows 및 에코시스템에서 불필요하거나 중복되는 팝업을 감소시킵니다.

· 고객이 자신의 시스템에 대한 통제권을 가지고 있다는 확신을 줍니다.

· 사용자가 보다 확실한 선택을 할 수 있도록 팝업의 정보를 보다 이해하기 쉽게 만듭니다.

· 메커니즘에 있어서 좀 더 발전되고 분명한 통제를 제공합니다.

UAC가 에코시스템 및 Windows에 혜택을 가져온다는 사실은 명백하며 우리는 이를 계속해 나가야 합니다. 표준 사용자를 성공적으로 활성하시키면서, UAC를 통해 IT 관리자와 부모가 특정 사용자에 대해 시스템을 잠글 수 있는 보다 강력한 통제 권한을 제공하는 목표를 달성했습니다. 앞에서 보여지는 데이터에서, 불필요하게 관리자 권한을 요구하는 외부 응용 프로그램 및 Windows 컴포넌트의 수가 격감했음을 알 수 있습니다. 결국 이를 통해 자주 듣게 되는 불만 사항인 사용자가 보게 되는 모든 팝업의 수가 감소되는 이점이 있습니다. 계속해서 사용자에게 가장 중요한 시나리오를 검토해서 이런 시나리오에 불필요한 팝업이 포함되지 않도록 할 것입니다. 또한 가장 많이 나타나는 팝업들을 검토해서 외부 소프트웨어 벤더 및 내부 Microsoft 팀에서도 불필요한 팝업을 감소시키도록 유도할 것입니다.

Windows 7에서 UAC를 계속 발전시켜 나가며, 팝업과 관련된 고객 피드백 및 만족도와 관련된 이슈를 무엇보다도 중요하게 다룰 것입니다. 사용자들께서 불만족스러운 부분에 대해 제공하신 피드백을 들었는데 팝업이 너무 잦고 성가시고 혼동스럽다는 것입니다. 사용자 여러분께 시스템 수준의 변경에 대한 통제권을 제공하고 싶습니다만 동시에 더 낳은 사용자 경험도 제공해 드리고 싶습니다. 이는 두 가지 중요 원칙에 집중하면서 달성될 수 있다고 믿습니다. 하나는 UAC 팝업에 대한 통제 권한을 넓히는 것입니다. 시스템 수준의 변경에 대한 통제 권한을 계속해서 제공할 것이지만 Windows 7에서는 관리자에게 팝업이 나타나는 범위를 지정하는 옵션을 더불어 제공할 것입니다. 또 다른 한 가지 원칙은, 사용자 인터페이스에서 추가적이고도 더 이해하기 쉬운 정보를 제공하는 것입니다. 사용자가 보다 이해하기 쉽고 확실한 선택을 할 수 있도록 대화 상자 UI를 향상시킬 것입니다. 이런 원칙들에 근거해서 사용자 경험 테스트를 통해 새로운 개념의 디자인을 시작했고 매우 긍정적인 결과를 얻고 있습니다. 83%의 참가자들이 왜 팝업 대화 상자를 보았는지 자세한 사항을 얘기할 수 있었습니다. 사용자들이 새로운 개념의 디자인을 더 좋아하게 된 이유는, “ 간단하고,” “인증된 공급자를 강조해서 표시하고,” “파일 출처를 제공하고,” “의미있는 질문을 하기” 때문입니다.

요약해 보면, 저희들은 UAC 기능에 대해 긍적적이건 부정적이건 피드백에 계속 귀 기울여 왔습니다. 그리고 UAC가 표준 사용자에게 제공할 수 있는 혜택들을 계속 발전시켜 시스템을 보다 안전하게 만들겠습니다. 결국 사용자 경험 향상에 대한 많은 피드백도 잘 반영해 나갈 수 있을 것입니다.

Ben Fathi