Internet Explorer 8 보안 2부 : ActiveX 보안 개선
안녕하세요. 저는 IE 확장성 부문의 프로그램 매니저인 맷 크라울리입니다. 지난달 RSA 보안 컨퍼런스에서 했던 IE8의 보안 요소에 관한 토론은 매우 즐거웠습니다. IE8의 보안 요소를 다루는 두번째 글인 이 글에서, IE8에서 개선된 ActiveX를 설명하고, 지난 버전에서 넘어온 ActiveX 관련 보안 요소들에 관해서 요약하겠습니다.
사용자별 (관리자가 아닌) ActiveX
윈도우즈 비스타의 IE8에서, 일반 사용자는 관리자 권한 없이 자신의 계정에 ActiveX를 설치할 수 있게 됩니다. 이런 기능 개선을 통해 일반 사용자들이 ActiveX를 자유롭게 설치함으로써 기관들은 사용자 계정 컨트롤(UAC)의 이점을 누릴 수 있습니다.
설치된 ActiveX는 각 사용자 계정에만 설치되기 때문에, 만약 사용자가 위험한 ActiveX를 설치하더라도 전체 시스템은 영향을 받지 않게 됩니다. 이렇게 ActiveX 설치가 각 사용자에게 제한됨으로써, 침해 위협과 관리 비용은 현격하게 낮아지게 될 것입니다.
사용자별 ActiveX는 호환성을 고려하여 만들어졌기 때문에, 지금 사용하는 대부분의 ActiveX는 이 기능을 적용하기 위하여 다시 만들 필요가 없습니다. 바뀐 점은 리패키징 됩니다. 웹페이지가 ActiveX를 설치하려고 하는 경우, IE7처럼 알림표시줄이 뜹니다.
사용자는 알림표시줄을 클릭하고 이 컨트롤을 컴퓨터 전체(전체 사용자)에 설치할지 자기 계정에만 설치할지 선택할 수 있습니다. 이 옵션은 사용자의 권한 혹은 컨트롤의 패키징에 따라 바뀝니다.
그룹 정책 중 사용자별 ActiveX 설치 권한과, ActiveX 컨트롤이 사용자별로 설치되게 허용했는지 아닌지에 따라 사용할 수 있는 옵션이 달라집니다.
이 기능을 이용해 관리 비용을 줄일 수 있지만, 관리자는 그룹 정책 설정을 통하여 이 옵션을 사용하지 않을 수 있습니다. 사용자별 Active-X에 관해선, "Non-Admin Active X Controls"
를 참조하세요.
Active-X Opt-In
바이너리 확장 방식이 공격 가능한 부분을 늘린다는 사실을 알고 나서, IE7와 함께 ActiveX Opt-in이 출시되었습니다.
기본적으로 ActiveX Opt-in은 사용자 컴퓨터에 있는 대부분의 ActiveX를 비활성화 시킵니다. 사용자가 ActiveX를 필요로 하는 홈페이지에 접속하면, 사용자는 다음과 같은 문구가 나오는 알림표시줄을 보게 됩니다: "이 웹사이트는 XYZ에서 공급하는 ABC 컨트롤을 실행하길 원합니다." 사용자는 알림표시줄에서 ActiveX 컨트롤을 활성화 할지 선택할 수 있습니다.
ActiveX Opt-In 은 기본적으로 아래 ActiveX의 작동을 허용합니다.
- 브라우저 작동을 위한 몇가지의 Active-X
- IE8로 이전하기 전에 종종 사용되었던 것
- IE를 통하여 설치된 것
ActiveX Opt-In에 대해 더 알아보시려면 MSDN 기사 Best Practices for ActiveX를 읽어보세요.
Per-Site ActiveX
사용자가 ActiveX가 있는 사이트를 들어가게 되면, IE8은 해당 ActiveX 컨트롤이 이 사이트에서 실행될 수 있는지 점검합니다. 이 동작은 ActiveX 컨트롤의 용도를 악의적으로 변경하여 실행하는 것을 막는 기법으로써, Per-Site ActiveX라고 합니다. 컨트롤에 사용가능한 도메인을 지정하지 않을 경우, 컨트롤을 설치했던 웹사이트에 접속하게 되더라도 알림표시줄에서 사용 허가를 해주어야 합니다.
사용자는 알림표시줄을 통해 이 컨트롤이 특정한 사이트만 사용하게 해줄지 전체 사이트에서 사용가능하게 해줄지 결정할 수 있습니다.
IE8가 설치된 컴퓨터의 관리자는 기본적으로 설치를 허용할 컨트롤과 관련된 도메인을 지정할 수 있습니다. 그룹 정책으로도 설정 가능합니다.
Per-Site Active X에 관한 자세한 정보는, "Per-Site ActiveX"를 참조하세요.
Per-Site 와 ATL SiteLock 기술 사용하기
ActiveX가 여러분의 사이트에서만 사용되게 설계되어 있다면, 특정한 도메인에 고정함으로써 다른 사이트에서 여러분이 작성한 ActiveX 컨트롤을 악용하기 힘들도록 만들 수 있습니다. 자세한 정보는 "Developing Safe ActiveX Controls Using the Sitelock Template"를 참고하세요.
DEP/NX, "Killbits", Servicing으로 익스플로잇 위험 낮추기
IE8은 DEP를 통하여 취약한 ActiveX 컨트롤의 익스플로잇을 줄입니다. 어떻게 하면 컨트롤이 DEP/NX와 호환성을 가질 수 있는지, 또 어떻게 다른 보안 기법을 적용할지에 대해선 1부 기사를 참고하세요.
IE는 원래 "Killbit"이라는 옵션을 가지고 있습니다. 이 기능은 어떤 취약한 컨트롤이 익스플로잇 되었을 경우 브라우저 내에서 사용하지 못하도록 끄는 기능입니다. 벤더들이 자사의 컨트롤의 취약점을 알게 된다면 다음번 소프트웨어 업데이트를 통하여 Killbit을 적용할 수 있도록 마이크로소프트에 연락하여야 합니다. 자세한 정보는 "How to stop an ActiveX control from running in Internet Explorer"를 참고하세요.
데스크탑 소프트웨어처럼 컨트롤을 최신 버전으로 유지해야만 새로운 시스템과 호환성을 가지게 하고, 진화하는 보안 위협으로부터 리스크를 낮출 수 있습니다. 자세한 정보는 "Good Practices for ActiveX Updates"를 참고하시기 바랍니다.
애드온 관리 (Manage Add-Ons)
대부분의 사용자는 ActiveX 컨트롤의 내부적인 작동 방식이나 회사 정책이 어떻게 되는지 별로 신경쓰지 않겠지만, 원하는 경우 Manage Add-Ons를 통해 IE에 설치된 컨트롤들에 대한 정보를 알 수 있습니다. 개발자들에겐 그들이 만든 컨트롤이 정확히 작동하고 보안성이 있는지 알리는 것 뿐만 아니라, 개발자들이 제공하는 정보가 공개된다는 점이 중요합니다.
ActiveX 컨트롤은 애드온의 인터페이스에서 이름, 퍼블리셔, 버전, 클래스 아이디로 식별이 가능합니다. 따라서 개발자는 ActiveX 컨트롤을 릴리즈 빌드 할 때 메타데이터를 넣는 것이 좋습니다.
Active X 컨트롤에 관한 정보를 사용자에게 전달하는 방법에 대해서는 크리스토퍼 보건의 포스트 "Add-on Management Improvements in Internet Explorer 8"와 "Best Practices for ActiveX"를 참조하세요.
감사합니다.
매튜 데이비드 크라울리
프로그램 매니저
인터넷 익스플로러 확장성팀
* 역자 : 이글은 IE8 Security Part II: ActiveX Improvements (영문)을 NCHOVY 인터넷스톰센터에서 번역해 주셨습니다. 진심으로 감사의 말씀을 드립니다.