Share via


Administrator와 User의 혼돈 속에서...

가정에는 아버지, 어머니, 자녀... 의 어떠한 각자의 역할이 존재하고, 본연의 역할별 해야 할 일, 상호 보완, 교육 등... 많은 관계가 일어나게 됩니다. 여기서 아버지, 어머니, 자녀라고 하는 것은 정해진 위치이며, 자녀가 다시 언젠가 아버지, 어머니가 되는 일상 생활은 너무나 평범한 모습이죠. IT 블로그에서 갑자기 왜 가족 이야기를... 이라고 생각하시는 분들이 계실지 모르겠습니다.

IT 인프라에도 이러한 역할과 역할별 업무가 구분되어져 있습니다. IT 전체 관리자의 경우, 인프라의 배포, 구성, 유지 보수등의 업무가 있으며, IT 인프라를 이용하여 회사의 이익을 추구하는 지식 근로자가 존재하게 됩니다.

Microsoft의 Windows 경우에도, 컴퓨터 한대에 대한 역할 구분이 존재합니다. 바로 Administrator와 User가 가장 대표적인 예가 됩니다.

Administrator, 말 그대로, 관리자입니다. Unix/Linux의 Root와 같은 역할을 컴퓨터에서 할 수 있게 되죠. 대표적으로 Administrator가 할 수 있는 일은 시스템의 설정 변경, 소프트웨어의 설치등을 꼽을 수 있습니다. 이러한 Administrator가 꾸며놓은 컴퓨터를 일반 사용자가 이용하게 되며, 일반 사용자의 경우, 시스템에 어떠한 변경을 가할 수 있는 작업들은 당연히 Administrator의 허락이나 위임을 통해 하게 되죠.

Windows는 이러한 컨셉을 아주 오래전부터 가져왔습니다. 서버 사이드의 경우, 이러한 경계의 자각이 당연지사로 보여져 왔습니다만, 가정의 컴퓨터와 개인 사무용 컴퓨터에 대한 인식은 조금 달랐다고 생각합니다. 가정의 컴퓨터를 관리하는 다른 사람이 존재한다기 보단, 당연히 집에서 사용하는 컴퓨터는 본인이 프로그램을 설치하고, 관리하며, 웹 서핑 도중에 발생하는 각종 컴포넌트 설치도 할 수 있어야 합니다. 개인 사무용 컴퓨터에 대해서는 조직 자체의 정해진 규칙에 따라, 본인 판단하에 프로그램을 설치할 수도 있고, 회사에서 필요한 업무용 프로그램(LOB Application)을 시스템적으로 설치해주기도 합니다.(적법한 라이센스적인 측면에서, 점점 중앙에서 프로그램에 대한 설치, 설치한 프로그램에 대한 조사, 사용 여부등을 조사하려고 합니다.) 경우에 따라 Administrator에 대한 권한을 지식 근로자에게 부여할 수도 있고 아닐 수도 있다는 것입니다.

어떠한 일을 할 때, 양면성이라는 단어를 종종 듣곤 합니다. 그 일이 잘되었을 땐, 좋은 측면이지만, 그 일을 악용하는 경우, 180도 이야기가 틀려져, 나쁜 측면으로 치다를수도 있죠. 바로 Administrator가 양면성을 가지고 있다는 것입니다. 왜? 라는 생각을 한번 해보시기 바랍니다.

Administrator는 말 그대로 관리자입니다. 그렇기 때문에, 모든 작업을 다할 수 있다는 것이며, 당연히 소유한 모든 권한을 이용하여 좋은(?) 측면으로 컴퓨팅을 할 수 있으나, 역의 모습을 가지는 경우가 있습니다.

Windows의 경우, 시스템의 중요 부분(대표적인 것이 \Windows 폴더, \Program Files 폴더, 레지스트리의 HKey Local Machine등)에 Administrator와 User를 분리하여 권한(Permission)을 적용해 놓았습니다. 꼭 Windows 뿐만 아니라, 다른 운영 체제들도 시스템 주요 부분에 대해선 일반 사용자가 수정할 수 없는 조치를 취해놓고 있죠.

권한이라는 단어의 뜻은 무엇인가를 할 수 있다? 없다?로 구분할 수 있습니다. 당연히 이를 더 세부적으로 구분할 수도 있겠죠. 가정에서 아버지/어머니는 회사에서 벌어오는 금전적인 면을 일괄 관리하기도 하고, 자녀에게 어떠한 일에 대해 훈계를 할 수도 있고... 비약적인 비유이긴 하지만, 이러한 권한 모델이 컴퓨팅에도 존재하고 있습니다.

Administrator, 즉 관리자는 시스템을 총괄하기 위한 모든 권한을 가지고 있다는 뜻입니다. Administrator 권한을 가지게 되면, 시스템에 득이 되던, 해가 되던 이를 할 수 있다는 것입니다. 바로 여기서 폐단이 발생하게 됩니다. 분명히 Administrator인 사용자가 작업은 했다고 가정합니다. 그런데 이러한 작업이 시스템에 해가 되는 작업인 경우? 시스템은 과연 어떻게 될까요? ... 누가 그렇게 시스템을 이용하겠느냐? 라고 반문하실 수 있지만, Administrator인 사용자가 모르게 또는 사용자를 속이고 해가 되는 작업이 이루어졌다면? ...

인터넷 환경이 비약적으로 커지고, 이는 사람이 살아가는데 다양한 경험과 정보를 제공하고 있습니다만, 언제나 모든 사회는 악의적인 의도도 시도되곤 합니다. 바로 인터넷 환경도 그런 셈입니다. 생활에서 많이 쓰는 칼의 경우, 정상적인 용도로 사용한다면, 과일을 깎거나, 종이를 자르거나... 이렇다면 문제가 없지만, 이를 이용하여 누군가를 해친다면... 이럴 경우 칼이 없어져야 한다고 주장할 수 있을까요? 컴퓨터 측면으로 돌아오면, 마치 좋은 시도인냥, 좋은 선물인냥 포장하여 설치를 유도하는 경우, Administrator인 사용자가 인지하지 못하게, 프로그램이 실행되는 경우..

보안적인 측면에선, Administrator를 필요시에만 사용하고 일상적으론 User를 사용하라고 합니다. 당연히 보안적으론 User를 사용하시는 것이 좋겠죠. 필요시에만 잠깐 Administrator를 사용하고... 이럴 경우, 필요시마다 어떠한 환경 변화를 가져와야 하기 때문에(로그오프/로그온이 대표적인 예), 사용자들은 처음부터 Administrator를 사용하는 것이 일반화되어져 있었다고 봅니다. 보안이라는 막연한 단어보단 당장 느껴지는 불편함이 더 싫었기 때문이라고 생각합니다. 결국 Administrator를 편의성 측면에서 사용하게 되고, 이러한 모습이 악성 코드, 바이러스, 트로이잔 목마를 통한 시스템 설정 변경으로 이루어지게 되고, 시스템 설정 변경은 긍정적인 측면보단, 악의적인 측면... - 이런 악성 코드나 바이러스를 만든 프로그래머가 악의적 용도로 사용하기 위한 희생양(Victim), 또는 악의적 쾌감(?)...을 위해 - 으로 반영되고 있는 경우가 몇년동안 지속되고 있었습니다.

Windows Vista의 보안 모델 변경으로, 많은 혼란이 일어나고 있습니다. 일반적인 시스템 사용 형태가 Administrator를 사용하게 되는데, 지금까지 말씀드렸던 여러 나쁜 형태로의 사용이 이루어지게 되고, 이를 통해 사용자는 인지하던 못하던.. 희생양이 되어갑니다. 그럼 사용자가 로그오프, 로그온하는 불편함을 최소화하면서, 사용자의 보안 환경을 높일 수 있는 방안이 필요하게 되었고.. 바로 사용자 계정 컨트롤(UAC)라는 모델로 제시되었습니다.

UAC... 쉽게는 Administrator 권한을 사용할 때, 사용자에게 이를 인지시켜주는 보안 프로세스입니다. Administrator인 사용자가 로그온을 하더라도, 일단은 User, 일반 사용자의 권한을 주게 됩니다. 일반 사용자이기 때문에, 손댈 수 없는 부분이 권한상 존재하게 됩니다. 이런 환경에서 어떠한 형태든, 이것이 긍정적이던, 부정적이던.. Administrator 권한을 사용할 경우, 사용자에게 이를 알려주고, 사용자가 판단한 후, 이를 허가 또는 거부할 수 있게 물어봅니다. (정확하게는 사용자가 실제 관리자인 경우와, 일반 사용자가 관리자 권한이 필요한 일을 하려고 할때가 조금 틀립니다만) 악성 코드나 바이러스가 시스템의 설정을 변경하려 들때, 아무렇게나 변경할 수 있는 것이 아니라, Administrator의 권한 이용하여 변경할 수 있으므로...Administrator의 권한을 이용하려 할 것이고, Windows Vista의 경우 UAC가 이를 감지, 사용자에게 알림을 보내줍니다. '어떤 프로그램이 지금 관리자 권한을 쓰려고 한다. 권한을 줘? 말어?' 하나의 안전 장치를 더 가미한 셈이 되었습니다. 물론 컴퓨팅에 대한 지식이 부족한 사용자의 경우, '이게 뭐지?' 라는 의구심을 던질 수 있습니다만, UAC가 보여주는 메시지엔, 여러 경고나 권고 사항들이 존재합니다. '이 프로그램이 무엇인지 모르거나, 써본 적이 없다면, 다시 한번 생각해봐... 혹시 나쁜 것일수도 있어..'라고... 지금까지는 Administrator가 실행한 프로그램은 Administrator 권한을 자연스럽게 받아 사용했습니다. 왜냐면 현재 사용자가 Administrator였기 때문에, 당연히 그 프로그램은 관리자가 승인하고 실행한 프로그램으로 보자는 것이었습니다만, 사용자가 모르게, 영어로 Transparent하게, 프로그램들이 실행될 수 있었고, 이러한 루트가 악성 프로그램 설치의 주요 방법이 되었습니다.

악성 프로그램이 이 세상에 없다면, 구지 이러한 안전 장치를 둘 필요성이 줄어들게 됩니다, 단지 모르는 사용자가 시스템의 설정을 모르고, 또는 실수로 변경하여 시스템을 망가뜨리는 경우가 아니라면...

1년동안 무수히 많은 악성 프로그램들이 개발되고, 인터넷에 떠돌고, 알게 모르게 많은 사용자들에게 피해를 주고 있습니다. 컴퓨팅 환경을 만드는 많은 하드웨어, 소프트웨어 회사들은 고객들이 안전한 환경에서 이용되길 당연히 바라고 있습니다. 방화벽, 안티 바이러스 프로그램, 안티 스파이웨어 프로그램, 키보드 보안 프로그램등... 이러한 모든 것들이 부정적 측면의 프로그램들로부터 사용자를 보호하기 위한 장치들이라고 볼 수 있을 것입니다.

UAC가 악의적인 프로그램들을 막기 위한 장치이지만, 정상적으로 Administrator를 사용할 때도, 당연히 알림 메시지를 알려줍니다. '관리자 권한을 쓰려는데, 줘? 말어?' 사용자가 정상적인 작업을 하고 있었다면, 이를 허가하고.. 이 경우는 Administrator 권한하에 정상적으로 프로그램은 동작하게 됩니다. 보안 강화로 인한 사용자 편의성 감소의 측면이 발생한 것이죠. 집에 도둑이나 침입을 막기위해, 담을 쌇고, 보안 업체의 이용하기도 하며, 더 성능 좋은 자물쇠의 장착, 이러한 자물쇠의 복수이상 설치를 합니다. 자물쇠를 복수 설치하게 되면, 당연히 외출시 불편합니다. 더 많이 잠궈야 하니까.. 열때도 마찬가지입니다. UAC를 바라보는 시각을 일상에서의 보안 강화 시각에서 바라본다면, 조금은 이해할 수 있어 보입니다.

반복되는 이야기입니다만, UAC 환경에서는 일단 모든 사용자는(관리자 일지더라도) 기본적으로 User 권한을 가지고 있다가, 관리자 권한(Administrator)가 필요한 경우, 확인을 하게 됩니다. 또한 UAC는 실제 프로그램이 실행될 때, 이러한 보안 모델을 적용하게 됩니다. 프로그램에 관리자 권한이 필요하다고 명시되어져 있다면, 실행시 사용자에게 이를 알리고 확인을 받아, 관리자 권한을 줍니다. 이미 실행된 이후엔 실행될 당시 권한을 사용하게 되지, 도중에 올라갔다 내려갔다 할 수는 없게 되어져 있습니다. 그렇다면 UAC를 통해 관리자 권한을 획득하지 않은 프로그램들은 User 권한으로 실행되고, 프로그램이 시스템을 변경하려 들면, 당연히 권한상으론 거부되게 되죠.

프로그램이 개발될 당시, Administrator인 사용자가 사용할 것이라는 가정으로 많이 개발을 하고 있습니다. 이러한 대전제하에 만들어 졌기 때문에, 프로그램이 실행 도중, 시스템을 변경, 설정 추가를 할 수 있었습니다. 그렇지만 Windows Vista는 달라졌다는 것입니다. 보안상 방어를 위해 UAC라는 기능을 추가하였고, 실행시 관리자 권한을 획득하지 않았다면, 해당 프로그램은 종료시까지 User 권한이라는 것입니다. 프로그램이 실행될 당시, Administrator 권한을 획득하지 않고... 중간에 권한이 필요한 작업을 하려고 할때는 당연히 오류가 발생하게 된다는 것이죠.

컴퓨팅이 발전함에 따라, 보안 기술과 이를 공격하는 악성 프로그램도 발전해가고 있습니다. 경보기나 무선 알림이 없이도, 단순하게 열쇠하나만 가지고 시건을 하더라도, 아무런 일이 일어나지 않을 때도 있었지만, 그것만으로 지금엔 부족하기에, 여러 보안 장치들이 개발, 장착되고 있는 것과 유사합니다. 언제나 처음에는 다소 혼란이 있을 수 있으나, 강력한 보안 체계와 이를 통한 사용자 혜택을 고려해본다면, UAC는 환영할만한 요소입니다.

모든 체계변화는 일상적이나, IT적으로나 처음에는 혼란스러울 수 있습니다. 법이 변경되어, 어제까진 가능했던 것이, 오늘부터 불가능하다면, 일정 기간동안 벌금내는 사람들이 많아지게 되고.. 이에 대한 많은 비판이 일어나게 됩니다. 시간이 흘러, 해당 법이 정착되고, 이러한 법이 많은 이들에게 혜택을 줄 수 있다면, 일정 기간의 혼란은 어느 정도 감수해야하지 않을까 싶습니다.

짧게는 몇개월, 길게는 몇년뒤, UAC라는 모델에 대해, 당연한 보안 장치로 인지하고, 이를 사용하는 Windows 컴퓨팅 환경이 될 것입니다.

사용자 계정 컨트롤(UAC)는 불편을 주기 위해 만든 것이 아니라, 안전한 컴퓨팅 환경을 사용자들에게 제공하고자 하는 Windows의 기능이기 때문입니다.