본문 바로가기
IT-개발,DB

[개발] Internet Explorer에서 ActiveX 컨트롤 실행을 중지하는 방법

by SB리치퍼슨 2010. 9. 2.

이 문서에서는 Microsoft Internet Explorer와 Windows Internet Explorer에서 ActiveX 컨트롤 실행을 중지하는 방법을 설명합니다. ActiveX 컨트롤의 CLSID(클래스 식별자)에 대한 Compatibility Flags DWORD 값의 데이터 값을 수정하여 ActiveX 컨트롤을 중지할 수 있습니다.

참고 Microsoft Windows XP 기반 컴퓨터와 Windows Server 2003 기반 컴퓨터의 경우 관리자는 소프트웨어 제한 정책을 사용하여 Active Directory 도메인 환경에 있는 컴퓨터의 프로그램에서 ActiveX 컨트롤이 실행되지 않게 할 수 있습니다. 소프트웨어 제한 정책에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
중요 이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수도 있으므로 다음 단계를 주의하여 수행해야 합니다. 추가 보호 조치로 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 이렇게 하면 문제가 발생하는 경우 레지스트리를 복원할 수 있습니다. 레지스트리 백업 및 복원 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
322756  (http://support.microsoft.com/kb/322756/ ) Windows XP 및 Windows Server 2003에서 레지스트리를 백업, 편집 및 복원하는 방법


경고 ActiveX 컨트롤에 대한 중지 작업을 취소(unkilling)하지 않는 것이 좋습니다. 취소할 경우 보안 문제가 생길 수 있습니다. kill bit는 일반적으로 중요한 이유로 설정되며 따라서 ActiveX 컨트롤 중지를 취소(unkill)할 때는 주의해야 합니다. 또한 다음 절차는 매우 기술적이므로 절차에 익숙하지 않은 경우에는 진행해서는 안되며 시작하기 전에 전체 절차를 읽어 보아야 합니다.

ActiveX 컨트롤의 CLSID는 해당 컨트롤의 GUID입니다. 기본 설정이 사용될 때 Internet Explorer에서 컨트롤을 호출하지 못하도록 kill bit를 설정함으로써 Internet Explorer에서 ActiveX 컨트롤이 실행되지 않도록 할 수 있습니다.

kill bit는 레지스트리에서 ActiveX 컨트롤의 Compatibility Flags DWORD 값에 대한 특정 값입니다. 이것은 ActiveX 컨트롤에서 "스크립트 사용에 안전" 옵션을 호출하는 것과 다릅니다. "스크립트 사용에 안전" 옵션을 호출하면 Internet Explorer는 컨트롤을 호출한 다음 ActiveX 컨트롤이 안전하지 않을 수 있다는 경고를 표시합니다. 여기서 컨트롤은 사용자의 선택에 따라 실행될 수 있습니다. 그러나 Internet Explorer에서 안전하지 않는 것으로 표시된 ActiveX 컨트롤 초기화 및 스크립트 옵션을 사용하지 않는 경우 ActiveX 컨트롤에 "kill bit"를 설정하면 Internet Explorer에서 해당 컨트롤을 호출하지 않습니다. kill bit를 설정하려면 다음과 같이 하십시오.
  1. 해제할 ActiveX 컨트롤의 CLSID를 확인합니다. 컨트롤의 CLSID를 잘 모르겠으면 제조업체에 문의하십시오. 컨트롤이 설치된 경우 컨트롤의 이름을 알고 있으면 해당 CLSID를 확인할 수 있습니다. CLSID를 확인하려면 HKEY_CLASSES_ROOT\CLSID에서 각 CLSID 키에 대해 ProgID 키의 기본값 문자열 값을 검토합니다. 해제할 컨트롤에 해당하는 CLSID를 식별하기 쉽도록 하려면 해제할 컨트롤을 제외하고 가능하면 많은 ActiveX 컨트롤을 제거해야 할 수 있습니다. ActiveX 컨트롤을 제거하는 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
    154850  (http://support.microsoft.com/kb/154850/ ) Windows에서 ActiveX 컨트롤을 제거하는 방법
  2. 레지스트리 편집기를 사용하여 레지스트리 키
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID of the ActiveX control
    에 있는 ActiveX 개체 CLSID의 Compatibility Flags DWORD 값의 데이터 값을 확인하십시오. 여기서 CLSID of the ActiveX Control은 해당 ActiveX 컨트롤의 클래스 식별자입니다.

    참고 일반적으로 이 레지스트리 키를 수동으로 만들어야 합니다.
  3. Compatibility Flags DWORD 값을 0x00000400으로 변경합니다.
ActiveX 컨트롤에 kill bit가 설정되고 새 버전의 ActiveX 컨트롤이 다른 CLSID를 사용하여 릴리스되는 경우 이전 CLSID를 사용하는 웹 사이트가 계속 의도한 대로 작동되도록 할 수 있습니다. 이렇게 하려면 레지스트리에서 Compatibility Flags 값과 같은 수준에 새 값을 추가하면 됩니다. 이 값은 "AlternateCLSID"라는 이름의 REG_SZ 문자열이어야 합니다. AlternateCLSID 값은 중괄호로 묶여 표시됩니다. 예를 들면 다음과 같습니다.
{ABCDEF12-ABCD-ABCD-ABCD-ABCDEF123456}
예:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\
{CLSID of killed ActiveX control}, Compatibility Flags, 0x0400

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\
{CLSID of killed ActiveX control}, AlternateCLSID, "{CLSID of alternate ActiveX control}"
Internet Explorer는 이 값을 해석한 후, killbit를 수신한 ActiveX 컨트롤이 아니라 AlternateCLSID 값에서 참조된 ActiveX 컨트롤의 인스턴스를 만듭니다.

참고 AlternateCLSID 값을 효율적으로 사용하기 위해서는 kill bit를 초기 CLSID에 설정해야 합니다.
ActiveX 컨트롤 개발자는 "kill bit"와 함께 TreatAs 또는 AlternateCLSID 레지스트리 값을 사용하여 해제된 ActiveX 컨트롤 대신 업데이트된 ActiveX 컨트롤이 제공되었는지를 Internet Explorer에서 확인하도록 할 수 있습니다. TreatAs 값을 사용하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
http://msdn.microsoft.com/ko-kr/library/ms679737(VS.85).aspx (http://msdn.microsoft.com/ko-kr/library/ms679737(VS.85).aspx)
AlternateCLSID 값을 설정하려면 다음과 같이 하십시오.
  1. 레지스트리 편집기를 사용하여 다음 레지스트리 키에서 해제된 ActiveX 개체 CLSID를 찾습니다.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID of the ActiveX control
    여기서 CLSID of the ActiveX Control은 해당 ActiveX 컨트롤의 클래스 식별자입니다.

    Compatibility Flags의 값이 DWORD 00000400으로 설정되었음을 볼 수 있습니다.
  2. AlternateCLSID 문자열 값을 CLSID 키에 추가합니다.
  3. AlternateCLSID 문자열 값의 데이터를 {CLSID of the alternate ActiveX control}로 설정합니다. 여기서 {CLSID of the ActiveX Control}은 업데이트된 ActiveX 컨트롤의 클래스 식별자입니다.
AlternateCLSID 값은 Internet Explorer에 업데이트된 ActiveX 컨트롤에 대한 CLSID로 리디렉션하도록 지시합니다. 최대 10수준까지 체인 리디렉션할 수 있습니다.

AlternateCLSID 값은 다음 버전의 Internet Explorer에서 지원됩니다.
  • Windows 2000용 Internet Explorer 5.01 서비스 팩 2 이상(MS03-004 이상 포함)
  • Internet Explorer 5.5 서비스 팩 2(MS02-068 이상 포함)
  • Internet Explorer 6 서비스 팩 1
  • Windows XP용 Internet Explorer 6(MS02-068 이상 포함)
  • Windows Server 2003용 Internet Explorer 6
  • Windows Server 2003 IA64용 Windows Internet Explorer 7
  • Windows XP용 Windows Internet Explorer 7
  • Windows Server 2003용 Windows Internet Explorer 7.0
  • Windows Vista의 Windows Internet Explorer 7.0
참고 이 문서에 나열되지 않은 Internet Explorer 버전은 제품 수명 주기의 연장 기간 내에 있거나 더 이상 지원되지 않는 것입니다. 여기에 나와 있는 Windows 버전과 Internet Explorer 버전에서도 kill bit를 설정할 수 있지만 지원되는 Internet Explorer 버전으로 업그레이드하고 적절한 업데이트를 모두 적용하는 것이 좋습니다. Internet Explorer의 버전을 확인하는 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
164539  (http://support.microsoft.com/kb/164539/ ) 설치된 Internet Explorer 버전 확인 방법
ActiveX 컨트롤용 kill bit에 대한 자세한 내용은 다음 Microsoft Security Vulnerability Research & Defense 블로그 게시물을 참조하십시오.
Kill-Bit FAQ: 1/3부
http://blogs.technet.com/srd/archive/2008/02/06/The-Kill_2D00_Bit-FAQ_3A00_-Part-1-of-3.aspx (http://blogs.technet.com/srd/archive/2008/02/06/The-Kill_2D00_Bit-FAQ_3A00_-Part-1-of-3.aspx)
Kill-Bit FAQ: 2/3부
http://blogs.technet.com/srd/archive/2008/02/07/The-Kill_2D00_Bit-FAQ_3A00_-Post-2-of-3.aspx (http://blogs.technet.com/srd/archive/2008/02/07/The-Kill_2D00_Bit-FAQ_3A00_-Post-2-of-3.aspx)
Kill-Bit FAQ: 3/3부
http://blogs.technet.com/srd/archive/2008/02/08/The-Kill_2D00_Bit-FAQ_3A00_-Part-3-of-3.aspx (http://blogs.technet.com/srd/archive/2008/02/08/The-Kill_2D00_Bit-FAQ_3A00_-Part-3-of-3.aspx)


해당 ActiveX 컨트롤에 보안 문제가 있는 응용 프로그램 공급업체는 해당 ActiveX 컨트롤이 Internet Explorer에서 실행되지 못하게 하는 kill bit을 출시할 것을 Microsoft에 요청할 수 있습니다. 승인된 요청은 앞으로 출시될 ActiveX Kill Bits용 업데이트 롤업 보안 권고에서 처리됩니다. Microsoft는 해당 ISV(독립 소프트웨어 공급업체)가 업데이트된 ActiveX 컨트롤 버전을 이미 제작한 경우에만 취약성이 있다고 확인된 ActiveX 컨트롤에 대해 kill bit을 출시합니다. 취약한 ActiveX 컨트롤이 있는 ISV는 해당 요청과 다음 질문에 대한 대답을 함께 전자 메일로 msvr@microsoft.com에 전송할 수 있습니다.
반응형

댓글