Windows 보안의 마지막 자물쇠 사용자 계정 컨트롤(UAC)… Windows 7에서는?

오늘은 Windows 7의 보안에 대해서 이야기를 드려볼까 합니다. 바로 UAC에 대한 이야기입니다. 지금까지는 주로 새롭게 등장한 가치에 대해서 언급했지만, 오늘은 꼬알라의 생각도 많이 들어가고, 어느정도 기존에 대한 이야기도 할 때가 되지 않았나 싶습니다. 조금은 딱딱한 이야기가 될 수 있지만, 시간이 되신다면 꼭~ 끝까지 읽어보시는 것도 좋을거라 생각합니다.

Windows Vista에서 소개되었던 UAC(User Account Control)에 대해서는 이제 잘 아실거라 생각합니다. Windows에 대한 몇가지 변경을 하려고 할 때, 사용자에게 이를 확인하던..

Microsoft TechNet에 관련된 리소스를 찾아보니, 제가 Microsoft에 들어온지 얼마되지 않아 기고했던, 기고문이 찾아졌습니다. UAC에 대한 기본적인 이해는 여기서부터 시작해볼까 합니다.

https://www.microsoft.com/korea/technet/resources/Technetcolumn/column_uac1.mspx
https://www.microsoft.com/korea/technet/resources/Technetcolumn/column_uac2.mspx
https://www.microsoft.com/korea/technet/resources/Technetcolumn/column_uac3.mspx
https://www.microsoft.com/korea/technet/resources/Technetcolumn/column_uac4.mspx

Windows Vista에서 가장 크게 변경된 보안 메커니즘이었기에, 여러 의견과 반응이 교차했었고, 보안적인 측면에서의 환영과 사용자 편의성에서의 불만들을 여기저기서 많이 들었던 기억이 있고, 요즘도 가끔 듣곤 합니다.

2008년 10월에 Engineering Windows 7 블로그에 Microsoft Vice President인 Ben Fathi가 포스팅한 UAC에 대한 이야기를 읽어보면, UAC에 대한 여러가지 생각을 다시 해볼 수 있고, Windows 7이 얼마나 고객이나 사용자분들의 의견을 최대한 수렴해서 반영했는지를 생각해볼 수 있습니다. (오늘 포스팅은 해당 내용에 기반과 더불어 제 생각을 가미하고 있습니다.)

Percentage of machines (server excluded) with one or more user accounts from January 2008 to June 2008. 75% of machines have one account.

위의 표는 한 컴퓨터에서 얼마나 많은 계정을 사용하고 있는지에 대한 데이터입니다.(2008년 1월~6월) 75%정도의 컴퓨터가 1개의 계정을 사용하고 있고, 해당 계정은 Administrator 권한을 가진 계정이 되게 됩니다. 기술적인 관점에서 살펴볼때, UAC가 등장하기 전, 해당 관리자 계정이 사용하는 데스크톱 환경에서는 모든 프로세스가 관리자 권한을 가지고 있게 되고, 사용자가 원치 않는 변경, 또는 모르는 사이에 변경이 가해지는 것..을 통해, Windows의 보안 및 안정성에는 큰 영향을 받게 되었습니다. 기업의 입장에서 봤을 때, 이는 근로자 데스크톱을 유지 보수하는데 자연스럽게 비용으로 이어지게 되고 기업의 TCO(Total Cost of Ownership)에 영향을 주게 됩니다. 개인 사용자의 경우에도, 부모가 자식과 함께 컴퓨터를 사용할 경우, 컴퓨터를 잘 모르는 자식이 컴퓨터에 보안상 영향을 주는 어떤 행동을 할지도 불명확하다는데서, UAC가 등장하게 됩니다.

UAC는 크게 두가지 형태로 동작하였습니다. 관리자 권한을 가진 Administrators 그룹내 계정이 시스템에 로그온했을 때, 이에 대한 보안 토큰을 분리하여, 일반 사용자의 보안 토큰, 그리고 관리자 권한의 보안 토큰을 가지게 했습니다. 일상적인 프로세스에선 사용자 권한의 토큰을 가지고 프로세스를 생성, 작업을 진행하고, 관리자 권한이 필요한 경우에, UAC 창을 보안 데스크톱(Secure Desktop, 화면이 다 잠기고, UAC 창만 남아있는, 이랬던 이유는 위에 칼럼에도 있지만, UAC 대화 상자에 대한 스푸핑(Spoofing)을 방지하기 위해서 입니다.)에서 띄워주게 됩니다.

일반 사용자의 경우에는, 관리자 권한이 필요한 경우, UAC 창에서 확인을 받는 창이 아닌, 관리자 계정 및 암호를 물어보는 창을 띄워서 진행하는 형태였습니다.

한가지 분명한 점은 보안적 관점에서 UAC의 등장으로 Windows 보안은 비약적으로 향상하였고, 기존에 컴퓨터를 잘 모르던 사용자나 실수로 보안을 침해할 수 있는 사항에 대해 Windows가 다시 확인하는 형태를 취해주면서, 다른 어떠한 운영 체제보다 Windows Vista의 보안 침해 건수는 줄어들었습니다. 시스템을 변경하려는 사항에 대해서, Windows가 사용자 혹은 관리자에게 확인을 거친다는 자체가, 또하나의 보안 장치가 되었던 것이죠. 물론 이러한 보안적인 사항에 대한 개선점과 더불어, 이에 대한 여러 의견도 접했다고 앞서 언급했었습니다.

그렇다면, 이러한 Windows Vista의 UAC 환경에 대해,어떠한 사항을 Microsoft가 배웠고, 어떠한 사항에 대해서 고객, 사용자들에게서 피드백을 받았을까요? Windows Engineering팀에서는 사용자 환경 개선 프로그램, Windows 피드백, 블로그등을 통해, Windows Vista 출시 이후, UAC 대화 상자가 얼마나 나타났었는지를 알아보았다고 합니다.

Number of unique applications and tasks creating UAC prompts. Shows a significant decline.

위의 표는 2007년 8월부터, 2008년 8월까지의 Windows Vista에서 UAC 대화 상자를 나타나게 한 프로그램의 숫자입니다. Windows Vista가 나오고 얼마 되지 않아서는 정확하게 775,312개의 프로그램이 UAC를 등장시켰고, 2008년 8월에는 168,149로 비약적으로 줄었다는 것입니다. 결론적으로 UAC는 불필요한 관리자 권한을 요구하였던 응용 프로그램의 숫자를 비약적으로 감소시켰고, 이는 소프트웨어에 대한 전반적인 품질과 소프트웨어에서 근간할 수 있는 보안 사고를 줄이는데에는 확실한 공을 세웠다고 보입니다. 대략 77만개의 프로그램이 당시에 UAC를 요구했었다고 하니, 24시간동안 등장하는 UAC의 숫자는 매우 많았었겠네요. 다양한 응용 프로그램 벤더와 개발자 분들께서 좀더 보안을 신경쓰시고 프로그램을 개발하였기에, 이러한 결과의 의미는 많은 프로그램이 일반 사용자 권한으로 잘 동작하였기에, 이는 사용자 보안의 향상으로 이어졌습니다. (물론 초기에 많은 프로그램을 설치하고 설정하느라, 더 많은 창이 뜰 수도 있었겠다는 생각도 듭니다만..)

Windows Vista SP1 이후에, 많은 사용자분들께서는 Windows Vista가 많이 좋아졌다는 이야기를 종종 하셨습니다. 신뢰성, 안정성에 대한 강화와 더불어, UAC에 대한 조금의 귀찮았던 부분, 특히 파일 복사시 연속적으로 뜨던.. 부분까지 해결했기에.. 이에 대해서도 역시나 조사 결과가 있더군요

Percentage of sessions with prompts over time.

Windows Vista SP1 출시 이후, UAC 대화 상자의 등장이 또 줄어든 것을 볼 수 있습니다.

Microsoft에서도 역시 Windows에서 UAC를 사용하는 부분에 대해서 최대한 줄일려고 많은 노력을 하고 있습니다. Windows Vista SP1에서도 해당 사항이 반영되었고, Windows Vista SP2, Windows 7에 걸쳐 다양한 부분에서 사용자 권한으로 더 많은 작업을 할 수 있는 부분이 없는지, 항상 고민을 하고 있는 것처럼 보입니다. Windows Vista 초기에 UAC를 등장하게 한 상위 50개의 프로그램 중 17개만이 Windows 구성 요소였지만, 지금은 50개의 프로그램 중 29개 Windows 구성 요소인 것에서도 많은 프로그램들이 이제 관리자 권한 자체만을 요구하지 않는다는 것을 느낄 수 있었습니다.

Number of Microsoft prompters in the top 50 over time.

저역시 마찬가지였지만, Internet Explorer에서 ActiveX를 설치할 때, 특히 우리나라에서는 UAC 대화 상자가 다소 번거로울 때도 있었습니다. 단순히 UAC로 인해서는 아니지만, Windows XP SP2에서 등장한 IE의 보안 대화 상자까지 합세하여, 무언가를 IE내에서 설치할 때, 약간(?)은 짜증났던 경험을 저역시도 느꼈었죠. 보안적 측면에선 당연하지만 사용자의 편의성적인 측면에서는 조금은 아닐(?)수도 있는 측면이 아니였나 생각합니다. 세미나를 하던지, 아니면 IT 엔지니어 분들과 술자리를 기울이다보면, 이런 이야기를 가끔 들었습니다. Engineering 블로그에서도 느끼는 점도, 많은 사용자들이 의견을 비슷하게 제시한 것으로 보입니다.

  1. 내가 하는 일마다 계속 할 것인지를 질문안했으면 좋겠다.
  2. 작은 일까지 일일히 확인을 받는 자체가 귀찮다.
  3. 조금은 UAC의 레벨을 낮추거나, 조절할 수 있는 부분이 있으면 좋겠다.
  4. 해당 컴퓨터의 주인은 나다.
  5. UAC의 대화 상자 내용이 조금 모호하다? 조금 구체적이었으면 좋겠다.

IT에 종사하시는 분들께서는 잘 이해하시겠지만, 대부분의 컴퓨팅 환경내 사용자들은 우리가 생각하는 것만큼 보안에 대해서 깊은 지식을 가지지 못하는 경우도 있습니다. 그냥 창이 뜨면, 아무렇지도 않게 예를 클릭하고, 이는 당연하다고 생각해버릴수도 있었다는 것이죠. 본사에서 진행한 연구에서 참여자의 13%만이 UAC 대화 상자에서 뜨는 이유와 메시지를 이해하고 설명했다고 합니다. 그리고 당연히 많이들 끄고 사용하신다고 생각하시겠지만, Windows Vista때는 89%, Windows Vista SP1에서는 91%의 사용자가 아직도 UAC를 사용하고 있습니다.

Percentage of UAC prompts allowed over time.

Windows7_h_rgb

여전히 Windows Vista 이야기를 하고 있죠. Windows 7은 하루 아침에 하늘에서 떨어진 운영 체제가 아니라, Windows Vista 기반에서 만들어진 운영 체제이며, 많은 명목은 Windows Vista에서 근간을 가지고 있습니다. 사용자의 의견 및 시대의 트렌드를 충분히 받아들여, Windows 7의 UAC는 여러 이슈를 처리하려고 합니다.

  1. Windows에서 UAC 등장을 감소시켜, UAC 대화 상자가 보안상 중요하다는 것을 인식할 수 있어야 한다는 의견, UAC 대화 상자내 메시지를 좀더 구체화..
  2. 사용자가 컴퓨터의 주인이라는 확신..

image image

위의 그림은 Windows 7에서 변경된 UAC의 대화 상자입니다. 메시지가 조금더 구체적이 된 것을 느끼실 수 있죠?

UAC 메커니즘의 변화

UAC는 분명히 보안에 매우 중요한 Windows 자물쇠입니다. UAC가 없었다면, 사용자는 계속 그냥 평범한 관리자 권한의 계정을 사용할 것이며, 이는 자연스럽게 Windows 보안 레벨의 감소로 이어질 것입니다. Windows Vista가 Windows XP에 비해, 출시 이후, 취약점이 얼마나 줄었는지에 대한 포스팅을 참고해보셔도 좋을 것 같습니다.

Windows 7에서는 UAC를 통해 향상된 보안과 함께 이러한 고객, 사용자들의 의견을 어떻게 반영할지에 대해서 많은 고민을 한 흔적이 보입니다. 사용자가 시스템의 보안에 대한 설정을 유연하게 할 수 있고, 좀더 명확한 대화 상자등.. 역시 본사에서 이에 대해 사용자 경험 테스트를 했다고 합니다. 참여자의 83% 가 UAC가 왜 나타나고, 어떠한 형태로 적용되는지를 설명할 수 있었다고 합니다. Windows 7의 다양한 부분은 사용자들의 의견 및 사회적 트렌드를 최대한 반영하려고 한 흔적이 보이고, 이러한 반영은 당연하다고 생각합니다.

Windows 7 설치 후, 시작 메뉴내 시작 항목내 UAC 설정 변경이라는 부분이 보이고, 이를 클릭하면, UAC에 대해서 단계별 설정이 가능하게 되어 있습니다. 이는 최근에 공개된 Windows 7 Beta가 아닌, Windows 7 M3 빌드(PDC에서 제공)에서부터 반영되어져 있던 부분입니다.

image

UAC 제어판은 총 4개의 항목으로 구성되어져 있습니다.

  1. Always notify me when: 프로그램에서 소프트웨어를 설치하거나, 컴퓨터를 변경하려는 경우, I make changes to Windows Settings(Windows 설정을 변경하려는 경우)  - 이는 Windows Vista와 동일한 형태로 UAC를 동작시키는 것입니다.
  2. Notify me only when programs try to make changes to my computer - 기본값입니다. 컴퓨터의 사용자가 직접 Windows 설정을 변경할 때는 UAC가 뜨지 않지만, 프로그램에서 Windows 설정을 변경하려고 하는 경우만 UAC 대화 상자를 띄워줍니다. 다시 말해, 사용자가 직접 장치 관리자를 간다거나, 시스템의 설정을 변경할 때는 UAC의 확인을 받지 않지만, 사용중인 프로그램에서 변경을 가하려고 하면 UAC 창을 띄워주게 됩니다.
  3. Notify me only when programs try to make changes to my computer (보안 데스크톱 사용 안함) - 한글 MUI를 설치하시더라도, 영문으로 메뉴가 나오는 부분입니다. 2번 항목과 동일하지만, 보안 데스크톱에서 UAC 대화 상자를 띄우는 것이 아니라, 그냥 일반 데스크톱 화면에서 띄워주는 것입니다. (이를 dim이라고 표현해놨더군요) 이는 몇몇 드라이버와의 충돌 및 호환성 이슈로 보안 데스크톱으로의 전환이 느리거나, 문제가 있을 때, 사용할 수 있는 부분이지만, 앞서 언급한 데로, 스푸핑이 일어날 수 있습니다.
  4. 다음의 경우 알리지 않음 : 프로그램에서 소프트웨어를 설치하거나, 컴퓨터를 변경하려는 경우, I make changes to Windows Settings(Windows 설정을 변경하려는 경우)  - 아예 UAC를 꺼버리는 것입니다.

image 

Windows 7을 설치하시고, 많은 분들께서 꼬알라에게 여쭤오셨던 부분에 대한 해답이 이제 보이실 것입니다. 왜 Windows 7에서 UAC 대화 상자가 많이 줄었는지.. UAC 아키텍쳐상에서의 큰 변화보단, 사용자에게 유연한 보안 환경을 설정할 수 있게 해드리고, 이러한 설정 변화는 모두 사용자분들의 피드백에서 근간했던 부분입니다. Windows 설정을 직접 변경하는 것에 대해서는 사용자가 직접 하는 것이기에, UAC를 통하지 않지만, 프로그램이 사용자 몰래(!) 진행할 수 있는 가능성이 있는 부분에 대해서는 UAC의 보호를 받을 수 있게 해놓은 것입니다.

UAC를 통한 시스템 보안 향상을 유지하면서, 더욱 더 나은 컴퓨팅 환경을 위한 모습.. 그리고 고객의 피드백 반영.. 이렇게 Windows 7 및 모든 Microsoft 제품은 만들어지고 있습니다.