[컴][웹] ActiveX Control 을 safe for initialization / safe for scripting 으로 인식하게 하는 법

safe for iniialization / Initialize and script ActiveX controls marked as safe


ActiveX control 을 "safe for initialization" 이라고 인식하게 하는 방법 2가지


control 이 초기화될 때 control 의 state 를 초기화 하기 위해 임의의 IPersist interface 로 부터 data 를 받게 된다. 이 data 가 untrusted source 로 부터 올 수 있기 때문에 security 위험이 있다고 볼 수 있다.

그래서 data 가 어디서 부터 오는지에 상관없이 보안위반(security breach) 가 없는 것을 보장하는 control 은 "safe for intiailization" 하다고 본다.

  1. Component Categories Manager 를 이용해서 system registry 에 알맞는 entry 를 만드는 것 : Internet Explorer 는 control 을 load 하기 전에 registry 에 이 entry 들이 있는지 검사한다.
  2. control 에서 IObjectSafety 를 구현한다. : Internet Explorer 가 control 이 IObjectSafety 를 지원한다고 판단하면, control 을 load 하기 전에 control 이 safe for initialization 한지 판단하기 위해 IObjectSafety::SetInterfaceSafetyOptions 함수를 호출한다.



Control 이 safe for scripting 이라고 인식하게 하는 방법 2가지

Code signing 은 code 가 믿을 수 있는 것이라는 것을 보장할 수 있다. 하지만 ActiveX control들을 scripts 에서 접근하는 것을 가능하게 하는 것은 새로운 보안 이슈가 된다. 예를 들어 MS Word 는 믿을 수 있지만, 악성적인 script 는 이 Word 의 automation 을 이용해서 유저의 file 들을 지울 수도 있고, macro 바이러스들을 설치하는 등의 일을 할 수 있다.

이 Control 을 "safe for scripting" 이라고 인식하게 하는 방법은 위의 "safe for initialization" 으로 인식하게 하는 것과 동일하다.




  1. Component Categories Manager 를 이용해서 system registry 에 알맞는 entry 를 만드는 것 : Internet Explorer 는 control 을 load 하기 전에 registry 에 이 entry 들이 있는지 검사한다.
  2. control 에서 IObjectSafety 를 구현한다. : Internet Explorer 가 control 이 IObjectSafety 를 지원한다고 판단하면, control 을 load 하기 전에 control 이 safe for initialization 한지 판단하기 위해 IObjectSafety::SetInterfaceSafetyOptions 함수를 호출한다.
참고로, safe for scripting 은 이 control 을 가지고 scripting 을 해도 안전하다라는 뜻이다.



References


  1. Safe Initialization and Scripting for ActiveX Controls
  2. HOWTO: MFC 컨트롤을 스크립트 사용에 안전(Safe for Scripting)/초기화에 안전(Safe for Initialization)으로 표시

댓글 없음:

댓글 쓰기