Size: px
Start display at page:

Download ""

Transcription

1 Windows Vista 용

2

3 목차 ActiveX Control 개발보안가이드라인 제 1 장 개요 7 제1절목적 9 제2절적용대상 10 제3절책자구성 10 제 2 장 ActiveX Control 정의및사용현황 11 제1절 ActiveX Control이란? 13 제2절 ActiveX Control 사용현황 14 제 3 장 ActiveX Control 의위험성 15 제1절잠재적악용가능성이있는 ActiveX Control이란? 17 제2절 ActiveX Control 위협 20 제3절윈도우비스타에서 ActiveX Control 위협 22 제4절 ActiveX Control 악용사례 27 3

4 Contents ActiveX Control 개발보안가이드라인 제 4 장 안전한 ActiveX Control 개발을위한십계명 29 제1절문자열입력값에대한크기검증 31 제2절임의의프로세스를실행할수있는기능금지 37 제3절임의의파일내용에대한읽기기능금지 40 제4절임의의레지스트리내용읽기기능금지 44 제5절업데이트파일에대한신뢰성검증 49 제6절관리자권한의폴더에 ActiveX Control 프로그램설치 52 제7절실행가능한웹사이트의제한 55 제8절 신뢰할수있는사이트추가 남용금지 59 제9절권한상승창에대한우회금지 62 제10절 ActiveX Control의남용금지 69 5 부록 73 [1] 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 75 [2] 윈도우비스타에서의안전한 ActiveX Control 개발을위한체크리스트 87 4

5 목차 ActiveX Control 개발보안가이드라인 [ 그림목차 ] [ 그림 1] 우리나라 PC의평균 ActiveX Control 설치개수 14 [ 그림 2] 2007년웹플러그인취약점 20 [ 그림 3] 대리자프로세스를이용한권한상승 26 [ 그림 4] 취약한 ActiveX Control 사용예 28 [ 그림 5] ActiveX Control 실행예 32 [ 그림 6] 버퍼오버플로우취약점을가진메소드의예 34 [ 그림 7] 메소드를통한버퍼오버플로우취약점악용예 34 [ 그림 8] 메소드의문자열입력값에대한크기검증을수행한예 35 [ 그림 9] 파라미터를통한버퍼오버플로우취약점악용예 36 [ 그림 10] 임의의프로세스를실행할수있도록구현된메소드의예 37 [ 그림 11] 임의의프로세스실행기능악용예 39 [ 그림 12] 임의의파일읽기기능을구현한메소드의예 41 [ 그림 13] 임의의파일읽기기능악용예 42 [ 그림 14] 잘못구현된파일읽기필터링의예 43 [ 그림 15] 올바르게구현된파일읽기필터링의예 43 [ 그림 16] 임의의레지스트리내용읽기기능을구현한메소드의예 45 [ 그림 17] 임의의레지스트리읽기기능악용예 46 [ 그림 18] 잘못구현된레지스트리읽기필터링의예 47 [ 그림 19] 올바르게구현된레지스트리읽기필터링의예 48 [ 그림 20] 정상적인 DLL 업데이트예 50 5

6 Contents ActiveX Control 개발보안가이드라인 [ 그림 21] 악용되어 DLL이변조되는예 51 [ 그림 22] DLL 파일이낮은권한의폴더에설치되어있는예 54 [ 그림 23] SiteLock Template 적용 (1) 57 [ 그림 24] SiteLock Template 적용 (2) 57 [ 그림 25] SiteLock Template 적용 (3) 57 [ 그림 26] SiteLock Template 적용 (4) 58 [ 그림 27] SiteLock Template 적용 (5) 58 [ 그림 28] 신뢰할수있는사이트추가를강제하는예 61 [ 그림 29] 권한상승창 63 [ 그림 30] Elevation Policy를통한권한상승예 66 [ 그림 31] Ajax가적용된지도검색사이트 71 [ 그림 32] FLEX가적용된영화예매사이트 71 [ 그림 33] SilverLight가적용된방송다시보기사이트 72 [ 표목차 ] [ 표 1] 잠재적악용가능성이있는 ActiveX Control의인터페이스및옵션 19 [ 표 2] ActiveX Control이가질수있는운영체제별권한 23 [ 표 3] 대리자프로세스를통한권한상승예 67 6

7 2008 제 1 장 개 요 제1절목적제2절적용대상제3절책자구성

8

9 제1절 목적 제 1장 개 요 제1절 목적 전자정부와 같은 다양한 서비스들이 웹을 기반으로 개발되면서 ActiveX Control에 대한 활 용이 점차 확대되고 있다. 그러나, ActiveX Control은 악의적인 사용자에 의해 악용될 수 있어 ActiveX Control을 안전하게 제작하는 것이 중요하다. 특히, 윈도우 비스타(Windows Vista) 제1장 개 요 가 출시되면서 ActiveX Control 악용을 방지하기 위한 보안기능들이 제공되고 있지만, 많 은 개발자들은 새로운 보안기능에 대한 이해가 여전히 부족한 상황이다. 이에 따라 본 보안가이드라인에서는 윈도우 비스타에서 ActiveX Control 개발 시 지켜 야할 주요 보안문제에 대해 기술한다. ActiveX Control 개발 보안가이드라인 9

10 제 1 장 개요 제 2 절적용대상 본보안가이드라인에서는윈도우비스타에서 ActiveX Control 개발시준수해야할항목별체크리스트, 주의사항을따르지않을경우발생할수있는위험성, 해킹에악용된사례및문제해결방안을설명한다. 제 3 절책자구성 2장에서는 ActiveX Control의정의및현황에대하여살펴본다. 3장에서는 ActiveX Control의위험성을소개하고보안기능이강화된윈도우비스타에서도여전히위험한이유를기술한다. 4장에서는안전한 ActiveX Control 개발을위해반드시점검해야할사항을 10가지로분류하여기술한다. 부록1에서는 4장에서기술된 ActiveX Control 개발시반드시지켜야하는사항을항목별로요약하며, 부록2에서는 ActiveX Control 개발시에스스로점검해볼수있도록체크리스트를제공한다. 10

11 2008 제 2 장 ActiveX Control 정의및사용현황 제1절 ActiveX Control이란? 제2절 ActiveX Control 사용현황

12

13 제 1 절 ActiveX Control 이란? 제 2 장 ActiveX Control 정의및사용현황 본장에서는 ActiveX Control 의정의및현황에대하여기술한다. 제 1 절 ActiveX Control 이란? ActiveX는기존의정적인텍스트와그림만으로구성된웹문서에서탈피하여동적이고화려한멀티미디어문서로작성을가능하게하는 Microsoft 의기술이다. ActiveX는 ActiveX Control, ActiveX Script, ActiveX Document 등의기술을총칭하는의미이며본고에서는 ActiveX 기술중 ActiveX Control에관한내용을다룬다. MSDN에서는 ActiveX Control은 IUnknown 인터페이스를제공하는간단한형태의 OLE 오브젝트이며다양한기능제공을위해 IUnknown 이외에많은인터페이스들을제공한다 라고정의한다. 제 2 장 ActiveX Control 정의및사용현황 13

14 제 2 장 ActiveX Control 정의및사용현황 제 2 절 ActiveX Control 사용현황 ActiveX Control은실행파일형식으로제공되어클라이언트 PC에서실행되는프로그램이다. 이러한이유로 ActiveX Control은웹을통해풍부한기능과미려한디자인을제공할수있다. [ 그림 1] 은우리나라개인사용자의컴퓨터에설치되어있는 ActiveX Control 현황을보여주고있다. 운영체제와함께설치되는 ActiveX Control을포함하여컴퓨터당평균 400~ 700개정도의 ActiveX Control이설치되어있다. 특히인터넷뱅킹, 포털, 게임, 쇼핑몰등대부분의상업적웹사이트에서 ActiveX Control을배포하고있다. 예를들어, 인터넷뱅킹서비스를이용하기위해서사용자는키보드보안프로그램, PC 방화벽, 백신, 피싱방지프로그램과같은 ActiveX Control들을설치해야한다. PC설치 ActiveX Control 개수 : 여개 [ 그림 1] 우리나라 PC 의평균 ActiveX Control 설치개수 14

15 2008 제 3 장 ActiveX Control 의위험성 제1절잠재적악용가능성이있는 ActiveX Control이란? 제2절 ActiveX Control 위협제3절윈도우비스타에서 ActiveX Control 위협제4절 ActiveX Control 악용사례

16

17 제 1 절잠재적악용가능성이있는 ActiveX Control 이란? 제 3 장 ActiveX Control 의위험성 ActiveX Control 은사용자 PC의자원접근과같이인터넷익스플로러에서지원할수없는기능을제공하기위해사용되는웹플러그인이다. ActiveX Control 은인터넷익스플로러내부에서동작되는응용프로그램이기때문에인터넷익스플로러와같은권한을가지고동작한다. 이러한이유로윈도우 XP에서 ActiveX Control 이악용되면임의의파일및레지스트리에대한읽기 / 쓰기가가능해지고, 관리자권한으로프로세스가실행될수있다. 2007년 Microsoft 에서는보안이강화된인터넷익스플로러 7과윈도우비스타를출시했다. 윈도우비스타와인터넷익스플로러 7에서채택한가장중요한보안기능은보호모드 (Protected Mode) 1) 이다. 이를이용하면다수의심각한 ActiveX Control 취약점을차단할수있다. 하지만, 아무리좋은보안시스템이라도사용자와개발자들이제대로활용하지못하면, 보안수준향상으로이어지지않는다. 본장에서는잠재적악용가능성이있는 ActiveX Control 을정의하고위협현황및속성을살펴본다. 또한, 강화된보안기능을가진윈도우비스타에서새롭게적용된자원접근권한을살펴보고, 축소된 ActiveX Control 의권한변화에도불구하고여전히존재하는위협에대하여기술한다. 제 3 장 ActiveX Control 의위험성 제 1 절잠재적악용가능성이있는 ActiveX Control 이란? 보안의관점에서 ActiveX Control이중요한이유는웹페이지나이메일에포함된스크립트에의해사용자 PC에설치된 ActiveX Control이실행될수있기때문이다. ActiveX Control은스크립트언어등에서실행될수있지만, 일반적인스크립트언어와는달리보안상제약을받지않는다. 즉, 클라이언트측스크립트언어에서는사용자 PC에파일을생 1) 보호모드 (Protected Mode) : 인터넷익스플로러에게최소한의사용권한만을허용하여악의적인공격으로부터사용자를보호하게하는기법참고 URL= 17

18 제3 장 ActiveX Control의 위험성 성한다거나 프로세스를 실행하는 행위가 엄격히 제한되지만, ActiveX Control은 파일 생 성, 레지스트리 키 생성 등이 가능하다. 이러한 의미에서 본 가이드라인에서는 잠재적 악용 가능성이 있는 ActiveX Control 을 HTML 언어 혹은 스크립트 언어에서 호출 가능한 ActiveX Control로 정의한다. ActiveX Control이 스크립트 언어에서 호출될 수 있다하더라도 아무런 외부 입력 값을 받지 않는다면 악용될 가능성은 거의 없다2). 사용자 입력이 가능하기 위해서는 ActiveX ActiveX Control 개발 보안가이드라인 Control은 [표 1]과 같은 인터페이스 및 옵션이 설정되어 있어야 한다. 2) 매우 예외적인 경우로 외부 입력 값이 전혀 존재하지 않더라도 악용 가능한 ActiveX Control이 존재한다. 예 를 들면, ActiveX Control이 초기 구동시 웹브라우저가 접속한 서버에 특정 파일을 다운로드하여 사용자 PC 에 설치하도록 구현되어 있다면 악의적인 서버에서 해당 ActiveX Control을 구동할 경우 악성 파일을 사용자 PC에 설치할 수 있어 외부 입력값이 없어도 악용 가능하다. 18 ActiveX Control 개발 보안가이드라인

19 제 1 절잠재적악용가능성이있는 ActiveX Control 이란? [ 표 1] 잠재적악용가능성이있는 ActiveX Control 의인터페이스및옵션 IDispatch[Ex] 인터페이스지원, Safe for Scripting 옵션설정 대상 ActiveX Control이 IDispatch 혹은 IDispatchEx 인터페이스를지원하고 Safe for Scripting 옵션이설정된경우사용자의동의없이외부의입력값을받을수있으므로잠재적악용가능성이있는 ActiveX Control로정의할수있다. IDispatch와 IDispatchEx는메소드이름을통해 ActiveX Control의메소드를호출하기위해필요한인터페이스이며, 스크립트상에서사용자동의없이메소드가실행되기위해서는 Safe for Scripting 옵션이설정되어있어야한다. IPersistPropertyBag[2] 인터페이스지원, Safe for Initialization 옵션설정 대상 ActiveX Control 이 IPersistPropertyBag 혹은 IPersistPropertyBag2 인터페이스를지원하고 Safe for Initialization 옵션이설정된경우사용자의동의없이외부의입력값을받을수있으므로잠재적악용가능성이있는 ActiveX Control로정의할수있다. 여기서 IPersistPropertyBag와 IPersistPropertyBag2는 <object> 태그의 <param> 태그를이용하여 ActiveX Control에초기값전달하기위해필요한인터페이스이며, 사용자동의없이웹문서상에서초기값전달을위해서는 Safe for Initialization 옵션이설정되어있어야한다. IPersistStream 인터페이스지원, Safe for Initialization 옵션설정대상 ActiveX Control이 IPersistStream 인터페이스를지원하고 Safe for Initialization 옵션이설정 제 3 장 ActiveX Control 의위험성 된경우사용자의동의없이외부의입력값을받을수있으므로잠재적악용가능성이있는 ActiveX Control로정의할수있다. 여기서 IPersistStream은 <object> 태그의 DATA 속성을이용하여 ActiveX Control에초기값전달하기위해필요한인터페이스이며, 사용자동의없이웹문서상에서초기값전달을위해서는 Safe for Initialization 옵션이설정되어있어야한다. 19

20 제 3 장 ActiveX Control 의위험성 제 2 절 ActiveX Control 위협 본절에서는 ActiveX Control 을이용한위협현황및속성에대하여기술한다. 1. ActiveX Control 위협현황 [ 그림 2] 는전체웹플러그인취약점에서 ActiveX Control 취약점이차지하는발생비율을나타내고있다. 전체웹플러그인취약점중 ActiveX Control 취약점이 2007년상반기에 89%, 하반기에 79% 를차지할정도로많은부분을차지하는것을확인할수있다 년 1 월 2007 년 6 월 2007 년 7 월 2007 년 12 월 [ 그림 2] 2007 년웹플러그인취약점 출처 : Symantec Corporation 2. ActiveX Control 위협속성 ActiveX Control은사용자의동의하에혹은일반응용프로그램이설치되면서함께설치되지만, 일단사용자 PC에설치된후에는임의의웹페이지에서 ActiveX Control들을실행시킬수있을뿐만아니라, ActiveX Control은아무런보안상의제약없이클라이언트시스템의자원에접근할수있다. 따라서, ActiveX Control은적절한보안조치가없이개 20

21 제1 절잠재적악용가능성이제있는 2절 ActiveX Control 이란위협? 발될경우공격자들에의해악용될소지가매우높다. MS Office나아래한글과같은응용프로그램들도많은 ActiveX Control들을포함하고, 전자정부및전자상거래와같이웹을통한서비스가활발해지면서최근 ActiveX Control 의위험성이다시부각되고있다. ActiveX Control 취약점을이용한공격은다음과같은세가지측면으로인해더욱위험하다. 가. 원격공격 원격에서공격자가악성이메일을희생자에게보내고, 희생자는악성이메일을열람하는것만으로백도어가설치될수있다. 나. 조용한공격서버의경우침입탐지시스템설치, 로그분석등다양한보호대책이강구되어있기때문에공격사실을쉽게탐지하여관리자는신속하게대응할수있다. 하지만, PC의경우보안지식이부족한사용자들이관리를하고있어공격사실을인지하지못하는경우가많다. 즉, ActiveX Control 취약점을통해희생자 PC에백도어가설치되면상당한기간동안희생자는침해사실을인지하지못하기때문에지속적인정보유출이일어난다. 또한, ActiveX Control은웹브라우저내부에서동작하기때문에취약점을이용하여침입하는과정에서개인방화벽과같은정보보호시스템도공격사실을탐지하지못한다. 제 3 장 ActiveX Control 의위험성 다. 효과적인공격 ActiveX Control 취약점으로인해개개인들이업무용으로사용중인 PC가장악될경우, PC에저장된수많은민감한정보와중요문서들을손쉽게획득할수있다. 또한, 외부에서접근이불가능한내부서버에대한추가적인공격도가능하다. 21

22 제 3 장 ActiveX Control 의위험성 제 3 절윈도우비스타에서 ActiveX Control 위협 본절에서는강화된보안기능을가진윈도우비스타의기능중 ActiveX Control 보안관점에서의변화를살펴보고여전히존재하는위협에대하여기술한다. 1. ActiveX Control 을사용한자원접근권한의변화 ActiveX Control을이용한취약점의파급효과는취약한 ActiveX Control의권한에달려있다. 따라서본절에서는윈도우비스타와윈도우 XP에서 ActiveX Control의자원접근권한의차이를살펴본다. 윈도우비스타에서는인터넷익스플로러와 ActiveX Control의자원접근권한을제한하기위해서사용자계정컨트롤 (UAC : User Access Control), MIC(Mandatory Integrity Control) 그리고 UIPI(User Interface Privilege Isolation) 메커니즘을추가하였다. UAC에서는사용자의권한이관리자라하더라도평소에는제한된관리자권한으로작업을수행하고사용자가개별적으로허락하는경우에만관리자권한으로응용프로그램들을실행한다. MIC는낮은 Integrity 3) 프로세스가상위 Integrity 오브젝트에대한쓰기권한을제한하며, UIPI는낮은 Integrity 프로세스가상위 Integrity 프로세스에게윈도우메시지를전송하거나후킹하는행위를제한한다. 상기세가지보안메커니즘으로인해윈도우비스타에서낮은 Integrity 권한을가지는 ActiveX Control은대부분의파일및레지스트리에대한읽기작업만이가능하며사용자컴퓨터에저장되어있는민감함데이터에대한쓰기작업을수행할수없다. 또한, 상위 Integrity 권한을가진프로세스실행시사용자의동의가필요하다. [ 표 2] 는 ActiveX Control이윈도우 XP와윈도우비스타플랫폼에서가질수있는자원접근권한을정리한것이다. 3) Integrity : 윈도우비스타에서새로도입된보안개념으로각각의프로세스나파일, 레지스트리의접근권한을낮음 (Low), 중간 (Medium), 높음 (High), 시스템 (System) 으로나누고이를 Integrity Level 이라부름 22

23 제 3 절윈도우비스타에서 ActiveX Control 위협 [ 표 2] ActiveX Control 이가질수있는운영체제별권한 권한 운영체제 윈도우 XP 윈도우비스타 낮은 Integrity 권한을가진파일 / 레지스트리키에대한쓰기 중간이상의 Integrity 권한을가진파일 / 레지스트리키에대한쓰기 N/A 4) 가능 가능 불가능 낮은 Integrity 권한을가진프로세스실행 N/A 가능 중간이상의 Integrity 권한을가진프로세스실행가능사용자동의필요 파일및레지스트리키읽기가능가능 2. 윈도우비스타에서발생할수있는 ActiveX Control 취약점윈도우비스타의강화된보안정책에도불구하고 ActiveX Control을이용한취약점은여전히존재한다. 본절에서는내재된취약점과사용자및개발자의편의로인해발생하는취약점들에대하여기술한다. 제 3 장 ActiveX Control 의위험성 가. 파일및레지스트리읽기취약점 ActiveX Control의파일및레지스트리읽기취약점이란 ActiveX Control을통하여사용자 PC의파일및레지스트리가외부로유출될수있는취약점을말한다. [ 표 2] 에서도알수있듯이 ActiveX Control의파일및레지스트리에대한읽기권한은윈도우비스타에서도윈도우 XP와마찬가지로제한되지않는다. 따라서기존의파일및레지스트리읽기취약점의위협은동일하게존재한다. 파일및레지스트리에대한읽기취약점이존재하면, 공격자는사용자시스템의중요파일및레지스트리정보를외부로유출할수있다. 4) N/A : 윈도우 XP 의경우낮은 Integirty 개념이존재하지않음. 따라서, N/A 로지정된권한은해당운영체제에서가능한것으로봐야함 23

24 제 3 장 ActiveX Control 의위험성 나. 파일및레지스트리쓰기취약점 ActiveX Control의파일및레지스트리쓰기취약점이란 ActiveX Control을통하여파일및레지스트리를생성후악성행위를수행할수있는취약점을말한다. ActiveX Control은중간 Integrity 폴더인 시작프로그램 폴더나높은 Integrity 폴더인 Program Files 폴더에쓰기작업이불가능하다. 따라서악의적인사용자도 ActiveX Control 취약점을이용하여 시작프로그램 폴더에악성코드를생성할수없다. 그러나, 이러한제한사항은개발자에게도적용되어사용자의동의없이 Program Files 와같은폴더에존재하는프로그램파일들을업데이트할수없다는문제가발생한다. 일부개발자들은 ActiveX Control을사용자동의없이업데이트하기위해낮은 Integrity 폴더에 ActiveX Control을설치한다. 이런경우악의의사용자는 ActiveX Control 파일쓰기취약점을악용하여 dll 파일등을변조함으로써악성코드를실행할수있다. 비슷하게레지스트리쓰기취약점을통해낮은 Integrity 레지스트리에저장된민감한정보를변조할수있다. 다. 프로세스실행취약점 ActiveX Control의프로세스실행취약점이란 ActiveX Control을통하여프로세스를생성후악성행위를수행할수있는취약점을말한다. 윈도우비스타에서도낮은 Integrity 권한으로프로세스를실행하기위해 CreateProcessAsUser API 등을사용하는 ActiveX Control에는프로세스실행취약점이존재한다. 상위 Integrity 권한으로프로세스를실행하는 ActiveX Control은항상사용자의동의가필요하므로프로세스실행취약점이존재하더라도사용자동의없이는악용이불가능하다. 24

25 제 3 절윈도우비스타에서 ActiveX Control 위협 라. 버퍼오버플로우취약점 ActiveX Control의버퍼오버플로우취약점이란 ActiveX Control이긴문자열입력을올바르게처리하지못하여버퍼오버플로우가발생함으로써악성코드가실행될수있는취약점을말한다. 윈도우비스타에서는 Address Space Layout Randomization 기법 5) 을적용하여버퍼오버플로우공격을어렵게만들었으나인터넷익스플로러에서동작하는 ActiveX Control의버퍼오버플로우취약점은 DLL 파일들의로딩주소와연관없는 heap spraying 6) 기법을이용하여악용되므로여전히취약하다. 마. 신뢰할수있는사이트 등록으로인한취약점 ActiveX Control이실행되는웹서버를사용자가 신뢰할수있는사이트 로등록하게되면보호모드 (Protected Mode) 7) 가동작되지않아윈도우 XP에서발생할수있는 ActiveX Control 취약점이그대로존재할수있다. 제 3 장 ActiveX Control 의위험성 5) ASLR(Address Space Layout Randomization) : 버퍼오버플로우공격을방지하기위하여 DLL 이메모리에로드되는주소를랜덤하게변경하는기법참고 URL= 6) heap spraying : 7) 보호모드 (Protected Mode) : 보호모드가실행되면 UAC, MIC, UIPI 기능이동작한다. 25

26 제 3 장 ActiveX Control 의위험성 바. 사용자동의없는권한상승에의한취약점사용자의동의를통해권한을상승시키는것은수시로확인 ( 동의 ) 창을띄워개발자와사용자들에게많은불편을준다. 이에개발자들은 Microsoft 에서지원하는 Elevation Policy 8) 나 [ 그림 3] 처럼높은권한의대리자프로세스 9) 를이용하여사용자동의없이 ActiveX Control의권한을상승시킨다. 권한상승된 ActiveX Control은윈도우 XP에서와동일한취약점 10) 들이존재할수있다. [ 그림 3] 대리자프로세스를이용한권한상승 8) Elevation Policy : 권한상승과관련된레지스트리를설정하여사용자동의없이인터넷익스플로러가중간 Integrity 를가지는프로세스를생성하는방법참고 URL= 9) 대리자프로세스 : ActiveX Control 보다높은권한을가지고 ActiveX Control 의역할을대행하는프로세스참고 URL= 10) 윈도우 XP 에서와동일한취약점 : 권한이상승된 ActiveX Control 은윈도우 XP 에서와마찬가지로관리자권한으로악성행위를수행할수있기때문에윈도우비스타를통해개선된보안정책에영향을받지않으므로더욱위험하다. 26

27 제 4 절 ActiveX Control 악용사례 제 4 절 ActiveX Control 악용사례 본절에서는 ActiveX Control의보안을고려하지않고개발된악용사례를기술한다. [ 그림 4] 는 ActiveX Control 기능의악용예이다. [ 그림 4] 의왼쪽은정상적인 ActiveX Control의사용흐름을보여주고있고오른쪽은공격자가악용한사례이다. 보안을고려하지않고개발된자동업데이트기능을가진 ActiveX Control은아래와같이악용될수있다. 공격자는 100만명이상의가입자를갖는온라인포커게임을타겟으로하여게임을사용하기위해사용자 PC에설치되는 ActiveX Control의취약점을분석하여자동업데이트취약점을찾는다. 공격자는온라인포커게임사용자에게유인성이메일을보내정상적인게임서버가아닌공격자가구축한서버로접속하게하고, 온라인포커게임을위해사용자 PC에설치된 ActiveX Control을구동한다. 사용자 PC에서구동된 ActiveX Control은업데이트를위해공격자의서버에게최신업데이트정보를요구하고, 공격자의서버는소프트웨어버전정보및관련파일등조작된정보를사용자 PC에게보여준다. 제 3 장 ActiveX Control 의위험성 사용자 PC는조작된정보에따라공격자서버에업데이트시필요한파일 ( 백도어 ) 을요청한다. 사용자 PC에서구동된 ActiveX Control은다운로드받은백도어를설치, 실행하게되고공격자는사용자 PC의제어권을획득한다. 27

28 제 3 장 ActiveX Control 의위험성 Activex Control 의정상적인사용 Activex Control 의악용 사용자컴퓨터 공격자 피해자를유인하는이메일전송 pokerlauncher 축하. 방문부탁 사용자컴퓨터 게임서버 포커게임을즐기기위해게임사이트방문 악의적인사이트방문 포커게임을위해설치된 ActiveX Control 구동 포커게임을위해설치된 ActiveX Control 구동 pokerlauncher pokerlauncher 게임의최신버전정보요구 최신버전및다운로드를위한파일정보전달 전달받은정보를이용해업데이트파일다운요청 pokerlauncher pokerlauncher 게임의최신버전정보요구 조작된최신버전및다운로드 ( 백도어 ) 파일정보전달 전달받은정보를이용해백도어파일다운요청 pokerlauncher 최신업데이트파일다운 pokerlauncher 백도어파일다운로드 pokerlauncher 온라인포커게임시작 pokerlauncher 업데이트파일실행 백도어파일실행 [ 그림 4] 취약한 ActiveX Control 사용예 28

29 2008 제 4 장 안전한 ActiveX Control 개발을위한십계명 제1절문자열입력값에대한크기검증제2절임의의프로세스를실행할수있는기능금지제3절임의의파일내용에대한읽기기능금지제4절임의의레지스트리내용읽기기능금지제5절업데이트파일에대한신뢰성검증제6절관리자권한의폴더에 ActiveX Control 프로그램설치제7절실행가능한웹사이트의제한제8절 신뢰할수있는사이트추가 남용금지제9절권한상승창에대한우회금지제10절 ActiveX Control의남용금지

30

31 제 1 절문자열입력값에대한크기검증 제 4 장 안전한 ActiveX Control 개발을위한십계명 본장에서는윈도우비스타에서의안전한 ActiveX Control 개발을위한 10여가지주의사항에대하여기술한다. 제안된십계명은윈도우비스타에서 ActiveX Control 개발시빈번히발생하는취약점유형을근간으로선정하였다. 제 1 절문자열입력값에대한크기검증 1. 개요 ActiveX Control은보통인터넷익스플로러웹브라우저에서스크립트를통해실행된다. HTML 상에서 <param> 태그를통하여 ActiveX Control이초기화될때의파라미터를설정할수있고, <script> 태그를통하여변수를사용하듯이프라퍼티 (property) 를설정할수있고, 함수를사용하듯이메소드를호출할수있다. [ 그림 5] 는 PokerLauncher라는 ActiveX Control이문자열입력값을통해실행되는예이다. Server라는파라미터에문자열 가설정되어초기화되고, Title이라는프라퍼티에문자열 My Poker 4 가설정되고, StartGame이라는메소드가인자로문자열 poker.exe 와숫자 0을받아호출되도록실행되게된다. 즉, 파라미터 Server, 프라퍼티 Title, 메소드 StartGame은문자열입력값을가진다. 제 4 장안전한 ActiveX Control 개발을위한십계명 31

32 제 4 장 안전한 ActiveX Control 개발을위한십계명 <object id= PokerLauncher classid= clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > <param name= Server value= > </object> <script> PokerLancher.Title= My Poker 4 ; PokerLauncher.StartGame( poker.exe, 0); </script> [ 그림 5] ActiveX Control 실행예 문자열입력값에대한크기검증이란이와같이파라미터, 프라퍼티, 메소드를통해 ActiveX Control에입력되는문자열이미리할당된메모리의크기보다클때버퍼오버플로우와같은치명적인오류를일으키지않게입력값을필터링하는행위를말한다. 문자열입력값에대하여크기를검증하지않으면버퍼오버플로우취약점이발생할수있다. 버퍼오버플로우취약점이발생하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템을장악하고중요파일의변조나삭제등피해를줄수있다. 버퍼오버플로우취약점을방지하기위해서는반드시미리허용된길이의문자열만을입력받고, 이후문자열을처리하는과정에서도할당한버퍼보다더긴문자열을복사하지않도록프로그램을제작하여야한다. 미리할당된메모리보다큰문자열이입력으로들어왔을때는오류를리턴하고, 문자열을복사할때는미리할당된버퍼크기보다문자열이크진않은지항상확인하며, strcpy 함수대신에 strncpy_s 함수를, memcpy 함수대신에 memcpy_s 함수를사용하는등문자열복사에보다안전한함수를사용하여프로그램을구현하는것이바람직하다. 2. 검증항목 HTML에서 <param> 태그를통해파라미터로문자열을입력으로받아처리하는경우에는사전에할당한크기를넘지않는지확인하는루틴이항상포함되어야한다. 스크립트에서프라퍼티 (property) 가문자열을입력받아처리하는경우에는프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어야한다. 32

33 제 1 절문자열입력값에대한크기검증 스크립트에서메소드 (method) 가인자로문자열을입력으로받아처리하는경우에는프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어야한다. 3. 검증항목간과시위험성 문자열을입력받는파라미터, 프라퍼티, 메소드등이미리할당된메모리보다큰문자열의입력 ( 일반적으로 1000자이상의매우긴문자열 ) 에대해적절히처리되지않을경우, 버퍼오버플로우취약점이발생할수있다. 버퍼오버플로우취약점이발생하면, 공격자는취약한해당 ActiveX Control을이용하여사용자시스템을장악하고악성코드를설치하거나중요파일을변조또는삭제하는등사용자시스템에치명적인피해를입힐수있게된다. 버퍼오버플로우로인한보안위협은 ActiveX Control의가장대표적인보안취약점유형이기때문에 ActiveX Control 개발시부터철저한검증이필요하다. 소스코드를작성할때부터주위를해야함은물론, 아래와같은공개된버퍼오버플로우취약점검사도구를활용하여컴파일후실행시에도문제가없는지확인하여야한다. COMRaider idefense Labs의 COM 퍼징도구 URL: COM 퍼징도구 URL: bh-usa-03/bh-us-03-bretmounet-combust.zip 제 4 장안전한 ActiveX Control 개발을위한십계명 AxMan HD Moore의 ActiveX Control 퍼징도구 URL: 33

34 제 4 장 안전한 ActiveX Control 개발을위한십계명 4. 사례 가. 메소드를통해서문자열을입력받아버퍼오버플로우가발생하는사례 [ 그림 6] 은메소드를통한문자열입력값에대한크기검증을하지않은예를보여주는의사코드이다. MyActiveX라는이름을가진 ActiveX Control의 StartGame 메소드가입력값인 x를 buffer에복사하도록구현되어있다. 이경우 buffer가가질수있는최대크기는 20바이트인데만약 x가 20바이트보다크게입력되었을경우버퍼오버플로우가발생하는취약점을가지고있다. void MyActiveX::StartGame(char * x, int y) { char buffer[20]; strcpy(buffer, x); // copy x to buffer...( 생략 )... } [ 그림 6] 버퍼오버플로우취약점을가진메소드의예 [ 그림 7] 은 [ 그림 6] 에서구현된 MyActiveX의 StartGame 메소드가공격자에의해악용되는예이다. [ 그림 7] 과같은공격자가만든스크립트가웹게시물이나이메일을통해사용자시스템에서실행되면, 취약점을가진 StartGame 메소드가사용자몰래호출되어 [ 그림 6] 의 strcpy를통해 buffer에미리할당된 20바이트를넘어다른스택영역까지문자열을덮어쓰는버퍼오버플로우가발생하게된다. 버퍼오버플로우가발생하면, 공격자는사용자시스템의제어권을획득하고악성코드를설치하는등해킹을수행할수있다. <object id= PokerLauncher classid= clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > </object> <script> PokerLauncher.StartGame( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...AAA, 0); </script> [ 그림 7] 메소드를통한버퍼오버플로우취약점악용예 34

35 제 1 절문자열입력값에대한크기검증 StartGame이안전하게구현되려면, StartGame의문자열입력값인 x에대하여크기를검증하여야한다. [ 그림 8] 은 StartGame을수정하여크기검증을구현한예를보여주는의사코드이다. strlen 함수를통해문자열입력값 x의길이가 20 이상인경우는에러처리하였으며, strcpy 함수대신에 strncpy_s 함수를사용하여버퍼오버플로우에대한보안을강화하였다. 또한, NULL 체크및 memset 함수를통한메모리초기화도프로그램의보안성과안전성을향상시키는데크게도움이된다. void MyActiveX::StartGame2(char * x, int y) { char buffer[20]; memset(buffer, 0x00, 20); // Initialize buffer if(x==null) return; // Check NULL input if(strlen(x) >= 20) // Check Length of x { /*...Here comes Error Handling Code... */ return; } strncpy_s(buffer, 20, x, 20-1); // Use strncpy_s(), instead of strcpy()...( 생략 )... } [ 그림 8] 메소드의문자열입력값에대한크기검증을수행한예 나. 파라미터를통해서문자열을입력받아버퍼오버플로우가발생하는사례 제 4 장안전한 ActiveX Control 개발을위한십계명 [ 그림 9] 는파라미터의버퍼오버플로우취약점을악용하는예를보여준다. 메소드의경우와마찬가지로문자열입력값에대한크기검증을수행하지않았다면해당파라미터는버퍼오버플로우취약점을가질수있다. 이와같은파라미터를통한버퍼오버플로우취약점을방지하기위해서는프로그램내에문자열입력값을받는파라미터가사용되는부분에대해서반드시크기검증과정을구현하여야만한다. 35

36 제4 장 안전한 ActiveX Control 개발을 위한 십계명 <object id= PokerLauncher classid= clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > <param name= Server value= A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A A A A A A A A A A A A A A AA > </object> ActiveX Control 개발 보안가이드라인 [그림 9] 파라미터를 통한 버퍼오버플로우 취약점 악용 예 36 ActiveX Control 개발 보안가이드라인

37 제 2 절임의의프로세스를실행할수있는기능금지 제 2 절임의의프로세스를실행할수있는기능금지 1. 개요 임의의프로세스를실행할수있는기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서프라퍼티, 메소드인자를통하여사용자시스템에있는임의의실행파일에대한경로, 이름및실행인자를입력으로받고해당파일을실행하는기능을의미한다. 일반적으로임의의프로세스를실행하는기능은보안상매우위험하므로 ActiveX Control의메소드형태로구현하지말아야하지만, 보안을고려하지않는개발자들이쉽게범할수있는실수이고, 또한자주발견되고있는취약점이다. [ 그림 10] 은임의의프로세스를실행할수있는가장전형적인예를보여주는의사코드이다. MyActiveX라는이름을가진 ActiveX Control의 CreateProcessMethod 메소드는입력값인 x를실행파일의경로및이름으로하여해당실행파일을실행하도록되어있다. void MyActiveX::CreateProcessMethod(BSTR x) { CreateProcess(..., x,...); // Create Process } [ 그림 10] 임의의프로세스를실행할수있도록구현된메소드의예 실행할수있는프로세스를제한하지않고임의의파일을실행할수있도록설계되어있다면프로세스실행취약점이발생하게된다. 프로세스실행취약점이발생하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템을장악하고중요파일의변조나삭제등치명적인피해를줄수있다. 프로세스실행취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한파일에대해서만프로세스실행기능을제공하도록프로그램을개발하여야한다. HTML 또는스크립트상에서실행파일의경로와이름또는실행인자를입력받지않도록프로그램소스상에고정하는방법이가장안전하다. 제 4 장안전한 ActiveX Control 개발을위한십계명 37

38 제 4 장 안전한 ActiveX Control 개발을위한십계명 불가피하게 HTML 또는스크립트상의입력값을통한프로세스실행기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 경로나이름으로필터링하여기능을제한하여야한다. 필터링을구현할때는실행파일의경로가.. 으로제한된범위를벗어나지않도록구현에주의가필요하다. 또한, 실행인자를입력받는경우에는실행인자에대한크기를검증하고특수문자를사용한경우지정된범위를벗어나지않도록구현에주의가필요하다. 2. 검증항목 임의의프로세스를실행할수있는기능 (HTML의 <param> 태그나스크립트상에서메소드 / 프라퍼티를통하여사용자시스템에있는임의의실행파일에대한경로와이름, 실행인자를입력받아해당파일을실행하는기능 ) 을제공하지말아야한다. 제한된경로내의실행파일에대하여프로세스를실행할수있는기능 (HTML의 <param> 태그나스크립트상에서메소드 / 프라퍼티를통하여실행파일에대한경로와이름, 실행인자를입력받아해당파일을실행하는기능 ) 을제공하는경우에는입력값에.. 을사용할수없도록제한하여야한다. 3. 검증항목간과시위험성 HTML 또는스크립트상의입력값을통하여임의의프로세스를실행할수있는기능은곧프로세스실행취약점이다. ActiveX Control에프로세스실행취약점이존재하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템을장악하고중요파일의변조나삭제등치명적인피해를줄수있다. 또한, 제한된경로내의실행파일에대하여프로세스실행기능을구현하였는데우회가가능하다면이역시임의의실행파일에대한실행이가능하여프로세스실행취약점을가지므로위험하다. 프로세스실행취약점은윈도우비스타의강화된보안정책인사용자계정컨트롤및보호모드에제약되지만임의로악성코드를설치하거나실행할수있기때문에주의가필요하다. 38

39 제 2 절임의의프로세스를실행할수있는기능금지 4. 사례 가. 프로세스실행취약점사례 [ 그림 11] 은 [ 그림 10] 에서구현된 MyActiveX의 CreateProcessMethod 메소드가악의적인공격자에의해악용되는예이다. [ 그림 11] 과같은악의적인공격자의스크립트가웹게시물이나이메일을통해사용자시스템에서실행되면, 취약점을가진 CreateProcessMethod가사용자몰래호출되어 mshta.exe가실행되고공격자서버에서악성코드인 exploit.hta를다운받아실행하게된다. 즉, 임의의프로세스실행기능을통해사용자시스템에악성코드가설치되고실행되는것이다. <object id=myactivex classid= clsid:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} > </object> <script> MyActiveX.CreateProcessMethod( mshta.exe ); </script> [ 그림 11] 임의의프로세스실행기능악용예 CreateProcessMethod가안전하게구현되려면, CreateProcessMethod에의해실행되는실행파일의경로및이름이제한되도록프로그램을변경하여야한다. 가장좋은방법은실행파일의경로및이름을메소드인자로입력받지않고, 프로그램소스상에서고정하여사용하는것이다. 하지만, 이방법이어렵다면입력값을개인키로암호화하여변조될수없게보호하거나, 특정폴더를지정하여이폴더의하위파일에대해서만프로세스실행기능이가능하도록입력값에대한필터링을구현하여야한다. 필터링을구현할때는실행파일의경로가우회되지않도록.. 을사용할수없도록제한하여야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 39

40 제 4 장 안전한 ActiveX Control 개발을위한십계명 제 3 절임의의파일내용에대한읽기기능금지 1. 개요 임의의파일내용에대한읽기기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서메소드인자, 프라퍼티를통하여사용자시스템에있는임의의파일에대한경로와이름을입력받고해당파일의내용을메소드의리턴값이나프라퍼티로출력하는기능을의미한다. 임의의파일내용에대한읽기기능은범용으로사용될수있다는장점때문에 ActiveX Control 개발자들이일반적으로구현하게되는대표적인취약점유형중하나이다. [ 그림 12] 는임의의파일내용에대하여읽기기능을구현한가장전형적인예를보여주는의사코드이다. MyActiveX라는이름을가진 ActiveX Control의 ReadFileMethod라는이름의메소드가파일경로와이름을입력값 x로받아해당파일을읽어들이고파일내용을 Base64 인코딩하여리턴하도록구현되어있다. 파일의내용을읽어서출력하는기능이제한되어있지않고임의의파일을읽을수있게설계되어있다면파일읽기취약점이발생하게된다. 파일읽기취약점이발생하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템의중요파일의내용을유출시킬수있다. 파일읽기취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한파일에대해서만파일읽기기능을제공하도록프로그램을작성하여야한다. HTML 또는스크립트상에서파일경로및이름을입력받지않도록프로그램소스상에파일경로및이름을고정하는방법이가장안전하다. 불가피하게 HTML 또는스크립트상의입력값을통한파일읽기기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 폴더이름, 파일이름, 확장자등으로필터링기능을제한하여야한다. 필터링을구현할때는파일의경로가.. 으로우회되지않도록구현에주의가필요하다. 40

41 제 3 절임의의파일내용에대한읽기기능금지 BSTR MyActiveX::ReadFileMethod(BSTR x) { HANDLE hfile; BSTR content, encodedcontent; hfile= CreateFile(x,...); ReadFile(hFile, &content,...); Base64Encode(&content, &encodedcontent); return encodedcontent; } // Open file // Read file content // Encode file content // Return encoded file content [ 그림 12] 임의의파일읽기기능을구현한메소드의예 2. 검증항목임의의파일내용에대한읽기기능 (HTML의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여사용자시스템에있는임의의파일에대한경로와이름을입력받고해당파일의내용을메소드의리턴값이나프라퍼티로출력하는기능 ) 을제공하지말아야한다. 제한된폴더내의파일에대하여읽기기능 (HTML의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여파일에대한경로와이름을입력받고해당파일의내용을메소드의리턴값이나프라퍼티로출력하는기능 ) 을제공하는경우에는입력값에.. 을사용할수없도록제한하여야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 3. 검증항목간과시위험성 HTML 또는스크립트상의입력값을통한임의의파일내용에대한읽기기능은곧파일읽기취약점이다. ActiveX Control에파일읽기취약점이존재하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템의중요파일의내용을외부로유출시킬수있다. 또한, 제한된폴더내의파일에대하여파일내용에대한읽기기능을구현하였는데우회가가능하다면이역시임의의파일내용에대한읽기기능이가능하여파일읽기취약점을가지므로위험하다. 41

42 제 4 장 안전한 ActiveX Control 개발을위한십계명 파일읽기취약점은윈도우비스타의강화된보안정책인사용자계정컨트롤및보호모드기능으로도해결되지않기때문에더욱주의가필요하다. 4. 사례 가. 메소드를통해임의의파일읽기기능을제공하여악용되는예 [ 그림 13] 은 [ 그림 12] 에서구현된 MyActiveX의 ReadFileMethod 메소드가공격자에의해악용되는예이다. [ 그림 13] 과같은공격자의스크립트가웹게시물또는이메일열람을통해사용자시스템에서실행되면, 취약점을가진 ReadFileMethod가사용자몰래호출되어 C:\Program Files\SecretFile.hwp ( 임의로정한가상의중요파일 ) 에대한파일내용을변수 str에저장하여공격자웹서버의 exploit.asp에전달한다. 즉, 임의의파일읽기기능을통해사용자시스템의 C:\Program Files\SecretFile.hwp 파일이공격자에게유출되는것이다. ReadFileMethod가안전하게구현되려면, ReadFileMethod에의해읽기파일경로와이름이제한되도록프로그램을제작하여야한다. 가장좋은방법은파일경로와이름을메소드인자로입력받지않고, 프로그램소스상에서고정하여사용하는것이다. 하지만, 이방법이어렵다면입력값을개인키로암호화하여변조될수없게보호하거나, 특정폴더를정하여이폴더의하위파일에대해서만파일읽기기능이가능하도록입력값에대한필터링을구현하여야한다. 또한필터링을구현할때는파일의경로가우회되지않도록.. 을사용할수없도록제한하여야한다. <object id=myactivex classid= clsid:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} > </object> <script> var str = MyActiveX.ReadFileMethod( C:/Program Files/SecretFile.hwp ); document.write( <form name= save method= post action= > ); document.write( <input type= hidden name= filecontent value= + str + > ); save.submit(); </script> [ 그림 13] 임의의파일읽기기능악용예 42

43 제 3 절임의의파일내용에대한읽기기능금지 나. 잘못구현된필터링으로임의의파일읽기기능을제공하는예 [ 그림 14] 는잘못구현된필터링의예이다. C:\Program Files\MyActiveX\ 폴더하위의파일에대해서만읽기기능이가능하도록필터링을구현하였다. BSTR MyActiveX::ReadFileMethod2(BSTR filename) { BSTR x = C:/Program Files/MyActiveX/ + filename; return ReadFileMethod(x); } 그러나구현된필터링방식은 ReadFileMethod2(../SecretFile.hwp ) 와같은방법으로우회가가능하다. 따라서필터링을구현할때는파일의경로가우회되지않도록.. 을사용할수없도록제한하여야한다. [ 그림 15] 는 [ 그림 14] 를올바르게수정한예이다. BSTR MyActiveX::ReadFileMethod3(BSTR filename) { if(strstr(filename,.. )!= NULL) { /*...Here comes Error Handling Code... */ return ; } [ 그림 14] 잘못구현된파일읽기필터링의예 제 4 장안전한 ActiveX Control 개발을위한십계명 BSTR x = C:/Program Files/MyActiveX/ + filename; return ReadFileMethod(x); } [ 그림 15] 올바르게구현된파일읽기필터링의예 43

44 제 4 장 안전한 ActiveX Control 개발을위한십계명 제 4 절임의의레지스트리내용읽기기능금지 1. 개요 임의의레지스트리내용읽기기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서메소드인자, 프라퍼티를통하여사용자시스템에있는임의의레지스트리에대한경로및이름을입력받고해당레지스트리의내용을메소드의리턴값이나프라퍼티로출력하는기능을의미한다. 임의의레지스트리내용에대한읽기기능은범용으로사용될수있다는장점때문에 ActiveX Control 개발자들이일반적으로구현하게되는또하나의대표적인보안취약점유형중하나이다. [ 그림 16] 은임의의레지스트리읽기기능을구현한가장전형적인예를보여주는의사코드이다. MyActiveX라는이름을가진 ActiveX Control의 ReadRegistryMethod라는이름의메소드가입력값인 x를레지스트리키의경로및이름으로하여해당레지스트리키를읽어들이고입력값인 y의이름에해당하는레지스트리데이터의내용을 Base64 인코딩하여리턴하도록구현되어있다. 레지스트리의내용을읽어서출력하는기능이제한되어있지않고임의의레지스트리내용을읽을수있게설계되어있다면레지스트리읽기취약점이발생하게된다. 레지스트리읽기취약점이발생하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템의중요레지스트리의내용을외부로유출시킬수있다. 레지스트리읽기취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한레지스트리에대해서만레지스트리읽기기능을제공하도록프로그램을수정하여야한다. HTML 또는스크립트상에서레지스트리경로및이름을입력받지않도록프로그램소스상에레지스트리경로및이름을고정하는방법이가장안전하다. 불가피하게 HTML 또는스크립트상의입력값을통한레지스트리읽기기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 경로나이름으로필터링을가하여기능을제한하여야한다. 필터링을구현할때는레지스트리의경로가.. 으로우회되지않도록구현에주의가필요하다. 44

45 제 4 절임의의레지스트리내용읽기기능금지 BSTR MyActiveX::ReadRegistryMethod(BSTR x, BSTR y) { HKEY hkey; BSTR content, encodedcontent; RegOpenKeyEx(HKEY_LOCAL_MACHINE, x,..., &hkey); // Open registry key x RegQueryValueEx(hKey, y,..., &content,...); Base64Encode(&content, &encodedcontent); return encodedcontent; } // Read data y of registry key x // Encode registry content // Return encoded registry content [ 그림 16] 임의의레지스트리내용읽기기능을구현한메소드의예 2. 검증항목임의의레지스트리내용에대한읽기기능 (HTML의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여사용자시스템에있는임의의레지스트리에대한경로와이름을입력받고해당레지스트리의내용을메소드의리턴값이나프라퍼티로출력하는기능 ) 을제공하지말아야한다. 제한된경로내의레지스트리에대하여읽기기능 (HTML의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여레지스트리에대한경로와이름을입력받고해당레지스트리의내용을메소드의리턴값이나프라퍼티로출력하는기능 ) 을제공하는경우에는입력값에.. 을사용할수없도록제한하여야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 3. 검증항목간과시위험성 HTML 또는스크립트상의입력값을통한임의의레지스트리읽기기능은곧레지스트리읽기취약점이다. ActiveX Control에레지스트리읽기취약점이존재하면, 악의적인공격자는취약한해당 ActiveX Control을악용하여사용자시스템의중요레지스트리의내용을외부로유출시킬수있다. 또한, 제한된경로내의레지스트리에대하여레지스트 45

46 제 4 장 안전한 ActiveX Control 개발을위한십계명 리읽기기능을구현하였는데우회가가능하다면이역시임의의레지스트리에대한읽기기능이가능하여레지스트리읽기취약점을가지므로위험하다. 레지스트리읽기취약점은윈도우비스타의강화된보안정책인사용자계정컨트롤및보호모드에도제약되지않기때문에더욱주의가필요하다. 4. 사례 가. 메소드를통해임의의레지스트리읽기기능을제공하여악용되는예 [ 그림 17] 은 [ 그림 16] 에서구현된 MyActiveX의 ReadRegistryMethod 메소드가공격자에의해악용되는예이다. <object id=myactivex classid= clsid:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} > </object> <script> var str = MyActiveX.ReadRegistryMethod( SOFTWARE, SECRET ); document.write( <form name= save method= post action= > ); document.write( <input type= hidden name= filecontent value= + str + > ); save.submit(); </script> [ 그림 17] 임의의레지스트리읽기기능악용예 [ 그림 17] 과같은공격자의스크립트가웹게시물이나이메일열람을통해사용자시스템에서실행되면, 취약점을가진 ReadRegistryMethod가사용자몰래호출되어 HKLM\SOFTWARE 의 SECRET ( 임의로정한가상의중요레지스트리데이터 ) 이라는이름을가진데이터내용을변수 str에저장하여공격자의웹서버의 exploit.asp로전달한다. 즉, 임의의레지스트리읽기기능을통해사용자시스템의 HKLM\SOFTWARE 레지스트리키의 SECRET 데이터가공격자에게유출되는것이다. ReadRegistryMethod가안전하게구현되려면, ReadRegistryMethod에의해읽어지는레지스트리경로와이름이제한되도록프로그램을변경하여야한다. 가장좋은방법은레지스트리경로와이름을메소드인자로입력받지않고, 프로그램소스상에서고정하여사용하는것이다. 46

47 제 4 절임의의레지스트리내용읽기기능금지 하지만, 이방법이어렵다면입력값을개인키로암호화하여변조될수없게보호하거나, 특정레지스트리경로를지정하여이경로의하위레지스트리에대해서만읽기기능이가능하도록입력값에대한필터링을구현하여야한다. 필터링을구현할때는레지스트리의경로가우회되지않도록.. 을사용할수없도록제한하여야한다. 나. 잘못구현된필터링으로임의의레지스트리읽기기능을제공하는예 [ 그림 18] 은잘못된필터링의예이다. HKLM\SOFTWARE\MyActiveX 경로하위의레지스트리에대해서만읽기기능이가능하도록필터링을구현하였다. BSTR MyActiveX::ReadRegistryMethod2(BSTR keyname, BSTR valuename) { BSTR x = SOFTWARE\\MyActiveX\\ + keyname; return ReadRegistryMethod(x, valuename); } [ 그림 18] 잘못구현된레지스트리읽기필터링의예 하지만, 이필터링은 ReadRegistryMethod2(..\\, SECRET ) 과같은방법으로우회가가능하다. 따라서필터링을구현할때는레지스트리의경로가우회되지않도록.. 을사용할수없도록제한하여야한다. [ 그림 19] 는 [ 그림 18] 을올바르게수정한예이다. 제 4 장안전한 ActiveX Control 개발을위한십계명 47

48 제 4 장 안전한 ActiveX Control 개발을위한십계명 BSTR MyActiveX::ReadRegistryMethod3(BSTR keyname, BSTR valuename) { if(strstr(keyname,.. )!= NULL) { /*...Here comes Error Handling Code... */ } return ; if(strstr(valuename,.. )!= NULL) { /*...Here comes Error Handling Code... */ return ; } BSTR x = SOFTWARE\\MyActiveX\\ + keyname; return ReadRegistryMethod(x, valuename); } [ 그림 19] 올바르게구현된레지스트리읽기필터링의예 48

49 제 5 절업데이트파일에대한신뢰성검증 제 5 절업데이트파일에대한신뢰성검증 1. 개요 최근 ActiveX Control들은대부분자동업데이트기능을포함하고있으며, 이러한업데이트기능은 HTML의 <param> 태그나스크립트상에서메소드인자, 프라퍼티를통하여업데이트서버의 URL이나설치파일등의업데이트정보를입력받아서동작하는것이일반적이다. 만약업데이트정보 ( 업데이트서버의 URL, 설치파일, 업데이트되는파일등 ) 를공격자가변조할수있다면, 정상적인업데이트기능을악용하여악성코드를설치하는것이가능하다. ActiveX Control 프로그램의업데이트를공격자로부터보호하기위해서는업데이트파일에대한신뢰성검증이필요하며, 이를위한방법으로는서명값을검증하는방법이가장바람직하다. 서명값검증이란해당 ActiveX Control 개발업체에서공개키 / 개인키쌍을발급받고, 업데이트파일에대해서는개인키로서명한값을추가하여전달하고, 사용자시스템인클라이언트측에서는전달된업데이트파일에대하여서명값이올바른지공개키로검증하는방법을의미한다. 즉, 업데이트파일에디지털서명을하여업데이트파일에대한신뢰성을보장받는것이다. 서명값검증방법을구현하기어려운경우에는업데이트 URL을 HTML이나스크립트상에서입력받지아니하고프로그램소스상에서고정하여사용하는방법이한가지대안이될수있다. 제 4 장안전한 ActiveX Control 개발을위한십계명 2. 검증항목 업데이트 URL을 HTML의 <param> 태그나스크립트상에서메소드인자, 프라퍼티를통하여입력받는경우에는, 인터넷에서다운로드받는업데이트파일에대하여디지털서명을검증하여신뢰성을확보하여야한다. 49

50 제 4 장 안전한 ActiveX Control 개발을위한십계명 3. 검증항목간과시위험성 업데이트파일에대한신뢰성을확보할수없다면업데이트파일을통한 ActiveX Control 프로그램의변조가가능하다. 예를들면, 업데이트파일에대한 URL을메소드인자를통해설정할수있는경우에는공격자가업데이트 URL을공격자의서버내파일주소로변조하여임의의파일을사용자시스템에설치할수있게된다. ActiveX Control 프로그램이공격자에의해변조가가능하다면악성코드로바꿔치기당하거나실행코드내에악성코드가삽입될수있으며, 이후해당웹사이트를방문할때마다악성코드가실행되어사용자시스템에치명적인위협이될것이다. 4. 사례가. 메소드를통해서업데이트 URL을입력받는사례 [ 그림 20] 은정상으로사용되는업데이트기능을보여주는예이다. Download 메소드를통하여업체의웹서버로부터 module.zip을다운로드받고, C:\Program Files\MyActiveX\ 에압축을풀고, Run 메소드를통하여압축이풀린 module.dll 파일을로드하도록구현되어있다. [ 그림 20] 의 ActiveX Control은전형적인업데이트기능의보안취약점을가지고있다. <object id= MyActiveX classid= clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > </object> <script> var UpdateURL = ; MyActiveX.Download(UpdateURL); /* Download and Extract into C:\Program Files\MyActiveX\ module.zip contains module.dll */ MyActiveX.Run(); // call LoadLibrary(C:\Program Files\MyActiveX\module.dll) </script> [ 그림 20] 정상적인 DLL 업데이트예 50

51 제 5 절업데이트파일에대한신뢰성검증 [ 그림 21] 은 [ 그림 20] 의 ActiveX Control이악용되는예이다. Download 메소드를통하여공격자의웹서버로부터 module.zip을다운로드받고, C:\Program Files\MyActiveX\ 에압축을풀고, Run 메소드를통하여압축이풀린 module.dll 파일을로드하도록구현되어있다. 단지여기서의 module.zip은정상적인 module.dll 파일을가지고있는업데이트파일이아니고, 악성코드가실행되는 module.dll 파일을가지고있기때문에, 사용자시스템은곧악성코드에감염되게된다. 이러한업데이트기능의보안취약점을이용한공격자의변조공격으로부터 ActiveX Control을보호하기위해서는업데이트파일에대한서명값검증을하거나, 업데이트 URL을 HTML이나스크립트상에서입력받지아니하고프로그램소스상에서고정하여사용하도록프로그램을수정하여야한다. <object id= MyActiveX classid= clsid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > </object> <script> MyActiveX.Download( /* Download and Extract into C:\Program Files\MyActiveX\ module.zip contains module.dll that has malicious code */ MyActiveX.Run(); // call LoadLibrary(C:\Program Files\MyActiveX\module.dll) </script> 제 4 장안전한 ActiveX Control 개발을위한십계명 [ 그림 21] 악용되어 DLL 이변조되는예 51

52 제 4 장 안전한 ActiveX Control 개발을위한십계명 제 6 절관리자권한의폴더에 ActiveX Control 프로그램설치 1. 개요 ActiveX Control은설치된웹사이트에서실행될뿐만아니라웹게시물이나이메일의열람을통해서도손쉽게실행이가능하다. 또한, ActiveX Control을개발하는목적은인터넷익스플로러가접근하지못하는사용자시스템의자원을다루기위해서가대부분이다. 만약이러한 ActiveX Control이공격자에의해변조되어악성코드로변해있다면사용자시스템에치명적인위협이될것이자명하다. 불행히도일부 ActiveX Control 개발자들은이러한위협에대하여고려하지않은채업데이트나사용상의편의를위해인터넷익스플로러에서도접근이가능한낮은권한의폴더에프로그램을설치하기도한다. 하지만, 낮은권한의폴더에있는파일은쉽게수정이가능하기때문에잠재적으로변조될위험성이크다할수있다. ActiveX Control 프로그램을공격자의변조공격으로부터보호하기위해서는 ActiveX Control 프로그램을관리자권한의폴더에설치하는것이중요하다. 이때 ActiveX Control 프로그램이란실행코드인 exe, dll, ocx 등의파일을의미하고, 관리자권한의폴더란 C:\Windows\ 의하위폴더또는 C:\Program Files\ 의하위폴더를의미한다. 2. 검증항목 ActiveX Control 프로그램 (exe, dll, ocx등의파일 ) 은관리자권한의폴더 (C:\Windows\ 의하위폴더또는 C:\Program Files\ 의하위폴더 ) 에설치되어야한다. 3. 검증항목간과시위험성 관리자권한의폴더에설치되지않는 ActiveX Control 프로그램은낮은권한을가진프로세스에의해서도변조가가능하기때문에보안상문제가있다. 예를들자면, 편의를위 52

53 제 6 절관리자권한의폴더에 ActiveX Control 프로그램설치 해인터넷익스플로러가쓰기접근이가능한폴더에 ActiveX Control의프로그램파일을설치한다면, 해당 ActiveX Control의보안취약점에의해서프로그램이변조될수있을뿐만아니라해당 ActiveX Control에보안취약점이존재하지않는다고해도잠재적으로다른 ActiveX Control의보안취약점을통해서변조가가능한위험성을가진다. ActiveX Control 프로그램이악의적인공격자에의해변조가가능하다면악성코드로바꿔치기당하거나실행코드내에악성코드가삽입될수있으며, 이후해당웹사이트를방문할때마다악성코드가실행되어사용자시스템에치명적인위협이될것이다. 4. 사례가. DLL 파일이낮은권한에서쓰기접근이가능한폴더에위치하는예 [ 그림 22] 는 ActiveX Control의실행을위한일부 DLL 파일이낮은권한에서쓰기접근이가능한폴더하위에설치되어있는모습을보여준다. 예에서 ActiveX Control은업데이트 URL을입력받아해당 URL의 xxx.dll.zip 파일을 C:\Users\( 사용자계정 )\AppData\LocalLow\ XXX\XXX 폴더에다운로드하고압축을자동으로풀어 xxx.dll 파일을덮어쓸수있는파라미터를제공하고있다. 해당폴더는인터넷익스플로러의낮은권한으로도쓰기접근이가능하기때문에공격자가 ActiveX Control이나또는다른인터넷익스플로러의취약점을이용하여 DLL 파일을덮어씀으로써프로그램을변조할수있는위험을가진다. 변조된 DLL 파일은해당 ActiveX Control이실행될때마다메모리에로드되어자동으로실행된다. 즉, 공격자가해당 DLL 파일을악성코드로덮어쓴다면이후해당웹사이트를방문할때마다악성코드가실행되어사용자시스템에치명적인위협이될것이다. 이와같은위험으로부터 ActiveX Control 프로그램을보호하기위해서는 ActiveX Control 프로그램을관리자권한의폴더에설치하여야만한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 53

54 제 4 장 안전한 ActiveX Control 개발을위한십계명 [ 그림 22] DLL 파일이낮은권한의폴더에설치되어있는예 54

55 제 7 절실행가능한웹사이트의제한 제 7 절실행가능한웹사이트의제한 1. 개요 대부분의 ActiveX Control은설치된웹사이트에서만필요하며그외의웹사이트에서는실행될필요가없다. 하지만, ActiveX Control은설치된웹사이트에서뿐만아니라다른모든웹사이트나이메일을통해서도손쉽게실행이가능하다. 문제는특정 ActiveX Control이보안취약점을가지는경우해당 ActiveX Control을설치하고사용했던웹사이트뿐만이아니라모든웹사이트와이메일을통해서도공격이가능해진다는점이다. 따라서 ActiveX Control의악용을방지하기위해서는 ActiveX Control의실행가능한웹사이트를제한하여야만한다. 실행가능한웹사이트의제한은 ActiveX Control의보안취약점을제거해줄수는없지만, 공격자의공격을효과적으로방어해줄수있다. 왜냐하면 ActiveX Control의악용은해당 ActiveX Control이설치되고사용되는사이트와는관계가없는공격자의웹서버또는이메일을통해서대부분이루어지기때문이다. ActiveX Control의실행가능한웹사이트를제한하기위해서는 ActiveX Control이실행되는시점에웹사이트 URL에대한필터링을구현하여야하며, 이를위해 SiteLock Template을활용할것을적극권장한다. SiteLock Template이란 ActiveX Control가실행되는도메인을제한해주기위해 Microsoft 에서제공하는 ATL 템플릿으로써실행가능한웹사이트리스트의제한뿐만아니라, 추가적으로실행가능한인터넷영역의제한및실행가능한유효기간설정등의기능을제공해준다. SiteLock Template을활용하지않고직접웹사이트 URL에대한필터링 11) 을구현할수있겠으나사용이간편하고안정적이며 URL이우회될수있는실수를방지해주기때문에 SiteLock Template을이용하는편이바람직하다. SiteLock Template을설치할수있는 URL 은아래와같다 ( 또는 MSDN 사이트에서 SiteLock Template을검색하면찾을수있다 ). 제 4 장안전한 ActiveX Control 개발을위한십계명 11) 이올바른도메인이라면 com%2fmyweb.com, 등과같은방법으로우회되지않아야한다. 55

56 제 4 장 안전한 ActiveX Control 개발을위한십계명 SiteLock Template 설치 URL : 2. 검증항목 Microsoft의 SiteLock Template를활용하여특정웹사이트에서만 ActiveX Control 이실행가능하도록제한하여야한다. 3. 검증항목간과시위험성 실행가능한웹사이트가제한되지않은 ActiveX Control은보안취약점이발견될경우, 해당 ActiveX Control이설치되고사용되었던웹사이트뿐만아니라다른웹사이트방문이나이메일열람을통해서도악용이가능하다. 즉, 악의적인공격자에의해인터넷어디에서라도공격이가능해진다. 실행가능한웹사이트의제한은 ActiveX Control의보안취약점을제거해줄수는없지만, 공격자의공격루트를차단함으로써공격을방어해주는효과를가진다. 덧붙여실행가능한웹사이트로지정된웹사이트에서의 ActiveX Control의악용을방어하기위해서는해당웹사이트에서스크립트인젝션취약점이나 XSS 취약점이발생하지않도록하여야만한다. 4. 사례 가. VC++ 로개발된 ActiveX Control에 SiteLock Template 을적용한예 VC++ 로개발된 ActiveX Control에 SiteLock Template을적용하여 myweb.com 도메인으로실행가능한웹사이트를제한하는예를기술한다. 상세한내용은 SiteLock 설치시첨부된 sitelock.doc와 sitelock.h 파일을참고한다. 56

57 제 7 절실행가능한웹사이트의제한 ActiveX Control 에 SiteLock Template 적용순서 1) SiteLock을설치 URL로부터다운로드받는다. 2) C:\Program Files\Microsoft\SiteLock 1.14\sitelock.h 파일을복사하여 ActiveX Control 프로젝트에추가한다. 3) StdAfx.h 파일에 [ 그림 23] 과같은내용을추가한다. #define SITELOCK_USE_MAP #define SITELOCK_NO_EXPIRY #define SITELOCK_USE_IOLEOBJECT #include sitelock.h // use macro for sitelock // do not use expire-time // use IOleObject [ 그림 23] SiteLock Template 적용 (1) 4) ActiveX Control 클래스에 [ 그림 24] 와같이 CSiteLock 을 base 클래스에추가한다. class CMyActiveXCtrl :...,..., public CSiteLock<CMyActiveXCtrl> // for SiteLock [ 그림 24] SiteLock Template 적용 (2) 제 4 장안전한 ActiveX Control 개발을위한십계명 5) 멤버를선언하는곳에 [ 그림 25] 와같은내용을추가한다. 예에서는 myweb.com 도메인에대한 http 접속을허용하겠다는의미이다. BEGIN_SITELOCK_MAP() SITELOCK_ALLOWHTTP END_SITELOCK_MAP() ( L myweb.com ) // allow *.myweb.com [ 그림 25] SiteLock Template 적용 (3) 6) 웹사이트제한을위해 CSiteLock::InApprovedDomain() 함수를적용한다. CSiteLock::InApprovedDomain() 함수는올바른도메인에서는 true를, 올바르지않은도메인에서는 false를반환한다. Safe for Initialization 과 Safe for Scripting을 IObjectSafety 57

58 제 4 장 안전한 ActiveX Control 개발을위한십계명 인터페이스를통해구현하였다면, CSiteLock::InApprovedDomain() 을구현부에적용하여 ActiveX Control이처음시작될때웹사이트를제한하는것이바람직하다. ActiveX Control 에 SiteLock Template 적용시고려할점 1) GetSite : is not a member of CMyActiveXCtrl 과같은에러메시지발생시에는 sitelock.h 파일의 GetOurUrl 함수의구현부를 [ 그림 26] 과같이수정한다. // Get the client site, container, and provider, etc. // hr = IObjectWithSite::GetSite(IID_IOleClientSite, (void**)&spclientsite); // if (FAILED(hr)) // return false; [ 그림 26] SiteLock Template 적용 (4) 2) COleControl::GetClientSite : function does not take 1 arguments 와같은에러메시지발생시에는 sitelock.h 파일의 GetOurUrl 함수의구현부를 [ 그림 27] 과같이수정한다. #ifdef SITELOCK_USE_IOLEOBJECT // hr = pt->getclientsite((ioleclientsite **)&spclientsite); // if (FAILED(hr) spclientsite == NULL) // return false spclientsite = pt->getclientsite(); if (spclientsite == NULL) return false hr = spclientsite->queryinterface(iid_iserviceprovider, (void **)&spsrvprov); #else hr = pt->getsite(iid_iserviceprovider, (void**)&spsrvprov); #endif [ 그림 27] SiteLock Template 적용 (5) 58

59 제 8 절 신뢰할수있는사이트추가 남용금지 제 8 절 신뢰할수있는사이트추가 남용금지 1. 개요 윈도우비스타의강화된보안정책으로 ActiveX Control의설치및실행에제한을받게되자개발자들은대대적인수정작업에들어가야했다. 불행히도일부개발자들은윈도우비스타용 ActiveX Control을수정하는대신자신의 ActiveX Control이설치되거나실행되는사이트를신뢰할수있는사이트로추가하였다. 신뢰할수있는사이트에서는윈도우 Vista에서추가된보안기능들이대부분해제되어기존의 ActiveX Control들도대부분정상적으로동작하기때문이다. 인터넷익스플로러는웹사이트를보안수준에따라인터넷영역, 로컬인트라넷영역, 신뢰할수있는사이트영역, 제한된사이트영역의 4가지영역으로나누고있다. 대부분의사이트는인터넷영역에서실행되며, 인터넷영역에서는높은보안수준이제공된다. 신뢰할수있는사이트는사용자스스로해당사이트가안전하다고특별히지정하는사이트로써, 인터넷영역보다보안설정이낮아지며특히윈도우비스타에서는보호모드가해제된다. 보호모드가해제되면윈도우비스타에서추가된대부분의보안정책이무력화된다. 따라서이문제를해결하기위해서는보안설정을낮추는방식이아니라, 신뢰할수있는사이트가아니더라도 ActiveX Control의정상적인실행이가능하도록 ActiveX Control 을수정하여야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 2. 검증항목 ActiveX Control의설치및실행을위해서해당웹사이트를신뢰할수있는사이트에추가하도록강요하지말아야한다. ActiveX Control의설치를위해서보안설정을낮출필요가있다면설치후에는반드시보안설정을원래대로복구하여야한다. ActiveX Control의실행을위해서보안설정을낮출필요가있다면보안설정을낮추는방법대신권한상승창을통해 ActiveX Control의권한을높이는방법으로구현하여야한다. 59

60 제 4 장 안전한 ActiveX Control 개발을위한십계명 3. 검증항목간과시위험성 신뢰할수있는사이트는일반인터넷보다보안수준이낮게설정되어있다. ActiveX Control을실행하기위해해당웹사이트를신뢰할수있는사이트에추가하도록강제한다면결과적으로해당웹사이트의보안수준을강제적으로낮추게되는것이며이로인하여보안에취약할가능성은높아진다. 또한, 윈도우비스타의경우신뢰할수있는사이트는보호모드가적용되지않는다. 일반적으로해당웹사이트에취약점이발생하는경우라도낮은 Integrity의제약을받지만, 신뢰할수있는사이트에추가되어보호모드가해제되면중간 Integrity의권한을가지므로사용자권한의폴더및레지스트리에대한접근권한을가지므로특히위험하다. ActiveX Control의설치를위해부득이하게보안설정을낮추어야한다면, 설치후에는반드시보안설정을복구하여야한다. 왜냐하면변경된보안설정은인터넷익스플로러에반영구적으로적용되므로해당 ActiveX Control 뿐만아니라인터넷사용전반에보안설정이낮아지기때문이다. 만약 ActiveX Control이보안설정을낮추어야만실행가능하다면이는올바르지않은실행방법이므로대신권한상승창으로사용자동의를얻어서높은권한을얻는방법으로구현되어야한다. 4. 사례 가. 대화상자를통해신뢰할수있는사이트로추가를강제하는예 [ 그림 28] 은 ActiveX Control의실행을위해서해당사이트를신뢰할수있는사이트로등록하라고대화상자를통해강제하는예를보여준다. 사용자가 [ 그림 28] 좌측하단의 동의합니다 를체크하지않으면대화상자의 확인 버튼을누를수없으며이후사이트를이용하는데 ActiveX Control이정상적으로설치되지않거나정상적으로실행되지않는등의장애가발생한다. 즉, 신뢰할수있는사이트에추가하지않으면해당사이트의서비스를이용할수없게되는것이다. 60

61 제 8 절 신뢰할수있는사이트추가 남용금지 [ 그림 28] 신뢰할수있는사이트추가를강제하는예 신뢰할수있는사이트에추가하는것은곧보안설정수준이낮아지고보호모드가해제되는것을의미한다. 따라서이는사용자의선택의문제이지해당웹사이트를구성하는일부응용 S/W인 ActiveX Control이강요하거나강제해서는안된다. 이문제를해결하고올바르게구현하려면, ActiveX Control이신뢰할수있는사이트의추가없이도설치및실행이가능하도록프로그램을수정하여야한다. 부득이하게 ActiveX Control의설치를위해보안설정을낮출필요가생긴다면, 설치후에는반드시보안설정을원래대로복구하도록하여야한다. 그리고 ActiveX Control이보안설정을낮추어야만실행가능하다면이는올바르지않는실행방법이므로권한상승창으로사용자동의를얻어서높은권한을얻어서실행되도록프로그램을수정하여야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 61

62 제 4 장 안전한 ActiveX Control 개발을위한십계명 제 9 절권한상승창에대한우회금지 1. 개요 윈도우비스타의보호모드하에서인터넷익스플로러는낮은 Integrity의사용자권한으로실행되며, ActiveX Control 또한낮은 Integrity의사용자권한을가진다. 이로인하여, ActiveX Control이 Program Files 하위의파일이나 HKEY_LOCAL_MACHINE 하위의레지스트리와같은높은권한을가지는로컬자원을다루기위해서는권한상승이필요하다. 보안적인관점에서 ActiveX Control의권한상승을사용자동의가필요한안전한권한상승과사용자동의가필요없는취약한권한상승으로구분하였으며, 각각에대한설명은다음과같다. 가. 사용자동의가필요한안전한 ActiveX Control의권한상승안전한권한상승은사용자동의가필요하다. 여기서사용자동의란 ActiveX Control이권한상승이필요할때, 권한상승창이팝업되고사용자가허용을해야만권한상승이일어나는것을의미한다. [ 그림 29] 는윈도우비스타에서볼수있는여러가지형태의권한상승창의예이다. 62

63 제 9 절권한상승창에대한우회금지 [ 그림 29] 권한상승창 Microsoft 는 ActiveX Control의안전한권한상승을위하여 CoCreateInstanceAsAdmin 이라는 API를제공한다. 일반적으로 ActiveX Control을생성할때는 CoCreateInstance를통해구현하지만 CoCreateInstanceAsAdmin을대신사용하게되면, ActiveX Control은사용자동의후에관리자권한으로실행될수있다. 안전한권한상승의또다른방법은 ActiveX Control이 Medium Integrity 이상의대리자프로세스를생성하여 ActiveX Control이해야할작업을대리자프로세스가대신수행하게끔구현하는것이다. ActiveX Control이 ShellExecute() API를통하여권한이높은대리자프로세스를시작하려하면, 권한상승창이뜨게되고사용자동의후에대리자프로세스가높은권한으로실행될수있다. ActiveX Control의안전한권한상승은보안강화에도움이된다. 왜냐하면이경우 ActiveX Control이치명적인보안취약점을가지고있다할지라도사용자동의없이는실행되지않기때문이다. 즉, 공격자가 ActiveX Control의보안취약점을이용하여 exploit 하더라도낮은 Integrity의낮은권한에서동작하며, 높은권한을가지는주요로컬자원에쓰기작업을하거나높은권한으로동작하기위해서는권한상승창이팝업되는것을피할수없다. 제 4 장안전한 ActiveX Control 개발을위한십계명 63

64 제 4 장 안전한 ActiveX Control 개발을위한십계명 나. 사용자동의가필요없는취약한 ActiveX Control 의권한상승 취약한권한상승은 ActiveX Control이사용자동의없이높은권한이필요한작업을수행하는것을말한다. 보안적인관점에서취약한권한상승은권한상승창을우회하는효과를가진다. 취약한권한상승의한가지방법은 Elevation Policy 레지스트리키를이용하는것이다. 이방법은 Medium Integrity의사용자권한이필요할때사용된다. Microsoft 는레지스트리키설정을통하여 ActiveX Control의권한상승방법을제공하며, 그레지스트리경로는 HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\Elevation Policy\ {GUID of ActiveX Control}\ 이다. 해당 ActiveX Control이실행할대리자프로세스의이름을상기레지스트리경로의 AppName 에대리자프로세스의경로를 AppPath 에등록하고, Policy 값을 3으로설정하면, 해당 ActiveX Control은권한상승창을통한사용자동의없이대리자프로세스를중간 Integrity의사용자권한으로실행할수있다. ( 참고 : Policy 값을 2로설정하면권한상승창을통해대리자프로세스를 Medium Integrity의사용자권한으로실행할수있다. 또한 Policy 값을 1로설정하면대리자프로세스를낮은 Integrity로실행할수있다.) 취약한권한상승의또다른방법은사용자시스템에상주하는 Medium Integrity 이상의높은권한의대리자프로세스와통신하여높은권한이필요한작업을수행하는방법이다. ActiveX Control이최초설치되는시점에는관리자권한을갖기때문에상주하는높은권한의대리자프로세스를설치할수있다. 대리자프로세스가상주한다는것은매번재부팅되는시점에대리자프로세스가높은권한으로실행된다는것을의미한다. [ 그림 3] 과같이 ActiveX Control은대리자프로세스와의통신을통하여대리자프로세스에게명령을내림으로써권한상승창을통한사용자동의없이높은권한이필요한작업을수행할수있게된다. 위와같은형태의암시적인권한상승을위한 ActiveX Control과대리자프로세스간의대표적인통신방법으로는파일공유, 레지스트리키공유, 윈도우메시지, 네임드파이프, 파일매핑 ( 메모리맵파일 ), RPC(Remote Procedure Call) 가있다. 윈도우비스타에서는일반적으로낮은권한의프로세스가높은권한의프로세스로통신하는것이제한되지만통신자원을낮은권한으로설정함으로써이를허용하도록개발할수있다. 64

65 제 9 절권한상승창에대한우회금지 일반적인사용자입장에서빈번하게팝업되는권한상승창은번거로운것이사실이다. 따라서개발자는사용자편의성을위해권한상승창이팝업되는수가최소화되도록 ActiveX Control을설계하고싶어하며, 이런의미에서자동권한상승은매력적이다. 하지만, ActiveX Control의암시적권한상승은보안적인관점에서보았을때위험하다. 왜냐하면, 보통의경우 ActiveX Control이보안취약점을가지고있다할지라도보호모드때문에높은권한으로동작하는것이제한되는반면, 암시적인자동권한상승을사용하는 ActiveX Control이보안취약점을가지는경우는사용자동의없이도높은권한으로악성행위를수행하게할수있기때문이다. 따라서 ActiveX Control 개발시이러한암시적인권한상승의위험성을반드시고려해야할것이다. 2. 검증항목 Elevation Policy 레지스트리키를 ActiveX Control이권한상승창을통해사용자동의없이 Medium Integrity의사용자권한을가지는프로세스 (.exe) 를실행할수있도록설정하지말아야한다. Medium Integrity 이상의권한을가진대리자프로세스 (.exe) 를사용자시스템에상주하게하여, ActiveX Control이권한상승창을통한사용자동의없이대리자프로세스와의통신으로높은권한이필요한일을처리하도록개발하지말아야한다. 제 4 장안전한 ActiveX Control 개발을위한십계명 3. 검증항목간과시위험성 보통의경우 ActiveX Control이보안취약점을가지고있다할지라도보호모드때문에높은권한으로동작하는것이제한되는반면, 권한상승창을우회하는 ActiveX Control이보안취약점을가지는경우는사용자동의없이도높은권한으로악성행위를수행하게할수있다. 즉, 권한상승창을우회하지않는경우는공격자가 ActiveX Control의보안취약점을이용하더라도사용자시스템에큰피해를입히기어렵지만, 권한상승창을우회하도록설계된 ActiveX Control이보안취약점을가지는경우는공격자에의해사용자시스템이장악되어중요파일의변조나삭제등치명적인피해를입힐수있다. 65

66 제4 장 안전한 ActiveX Control 개발을 위한 십계명 4. 사례 가. Elevation Policy 레지스트리 키를 이용하여 권한 상승 창 우회 후 중간 Integrity의 대리자 프로세스를 실행하는 예 [그림 31]은 Elevation Policy 레지스트리 키를 이용한 암시적인 권한 상승의 한 예를 보여 준다. 레지스트리 HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\Elevation Policy\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ 경로에 AppName 은 ClientX.XXXexe, AppPath 는 C:\Program Files\XXXX\ActiveX, Policy 는 3 으로 설정되어 있다. 즉, GUID가 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}인 ActiveX Control이 C:\Program ActiveX Control 개발 보안가이드라인 Files\XXXX\ActiveX 폴더에 있는 ClientXXXX.exe 를 사용자 동의 없이 Medium Integrity의 사용자 권한으로 실행할 수 있음을 의미한다. 암시적인 권한 상승은 권한 상승 창을 우회하므로 위험하다. 따라서 안전한 권한 상승 으로 변경하여야 한다. 만약에 대리자 프로세스가 Medium Integrity의 권한이 필요 없다 면 Policy 를 1 로, 대리자 프로세스가 Medium Integrity의 권한이 필요하다면 Policy 를 2 로 변경함으로써 명시적인 권한 상승으로의 변경이 손쉽게 가능하다. [그림 30] Elevation Policy를 통한 권한 상승 예 66 ActiveX Control 개발 보안가이드라인

67 제 9 절권한상승창에대한우회금지 나. 상주하는높은권한의대리자프로세스에윈도우메시지를전달하여권한상승창을우회한후자동업데이트를수행하는예 [ 표 3] 은윈도우메시지를통한대리자프로세스와의통신예를보여주는의사코드를보여준다. 대리자프로세스는 ChangeWindowMessageFilter를통하여낮은권한의프로세스로부터의 WM_COPYDATA 메시지를허용한다. WM_COPYDATA 메시지는문자열을전송하는데사용되는윈도우메시지이다. 스크립트를통해 ActiveX Control에서 method( ) 가호출되면 ActiveX Control은 FindWindow() API로대리자프로세스의윈도우포인터를찾고, 대리자프로세스에 SendMessage() API를통하여내용이 문자열인 WM_COPYDATA 메시지를전달한다. 이후메시지를전달받은대리자프로세스는 을인터넷에서다운받아 ActiveX Control 프로그램에대한업데이트를수행한다. 상주하는대리자프로세스 ActiveX Control [ 표 3] 대리자프로세스를통한권한상승예 의사코드 (Pseudo Code) ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD); /* Allow to receive WM_COPYDATA message from processes with low integrity WM_COPYDATA message is used for the string transmission */ method(update_url) {... // message to send to Surrogate Process CString str = update_url; /* ex) If you call method( ) in script str will be */ COPYDATASTRUCTURE cds; // set structure for WM_COPYDATA cds.cbdata = str.getlength()+1; cds.lpdata = (LPSTR)(LPCSTR)str; 제 4 장안전한 ActiveX Control 개발을위한십계명 // Get the window pointer of the surrogate process CWnd *pwnd = FindWindow([surrogate process name], NULL); // Send message SendMessage(pWnd->m_hWnd, WM_COPYDATA, (WPARAM)m_hWnd, (LPARAM)&cds); } 67

68 제4 장 안전한 ActiveX Control 개발을 위한 십계명 해당 ActiveX Control의 자동 업데이트 모듈에 보안 취약점을 가지는 경우, 악의적인 공 격자는 스크립트 상에서 method( )를 호출되게 함 으로써 공격자의 웹서버 로부터 변조된 update.inf 파일을 사용 자 시스템에 설치하고, 변조된 정보에 의해 악성코드를 사용자 시스템에 설치할 수 있다. 이 과정은 높은 권한을 가진 대리자 프로세스에 의해 수행되며 사용자 동의를 구하는 권 한 상승 창이 없기 때문에 사용자 모르게 수행되므로 매우 위험하다. 암시적인 권한 상승은 권한 상승 창을 우회하므로 위험하다. 따라서 명시적인 권한 상 승으로 변경하여야 한다. 이 예의 경우에는 ActiveX Control과 대리자 프로세스 간의 통신 을 사용하지 않게 수정하거나, 대리자 프로세스가 상주하지 않도록 수정하는 방법을 사 ActiveX Control 개발 보안가이드라인 용하여 명시적인 권한 상승으로 변경할 수 있다. 68 ActiveX Control 개발 보안가이드라인

69 제 10 절 ActiveX Control 의남용금지 제 10 절 ActiveX Control 의남용금지 1. 개요 과거프로그램을 ActiveX Control 형태로개발했던이유는다음의 3가지로요약할수있다. 첫째, 사용자시스템의자원을아무런제약없이이용할수있기때문이다. 둘째, 윈도우의 GUI 컴포넌트를그대로사용할수있기때문이다. 셋째, 패키지시장이사장되면서개발업체에게 ActiveX Control이좋은수익모델이되었기때문이다. 하지만, ActiveX Control은 3가지주요한문제점을안고있다. 첫째, 보안에매우취약하다. 그동안 ActiveX Control에서발견되었던취약점들은수백종에달한다. 둘째, 이종운영체제와웹브라우저간의호환성이전혀없다. 셋째, Microsoft 에서조차 ActiveX Control의역기능을우려하고있으며보안상의제약이앞으로점점심해질것이다. 이러한문제에도불구하고인터넷상에서 ActiveX Control이단기간내에아예사라지지는않을것이확실하다. 왜냐하면 ActiveX Control이할수있는일을완전히대체할수있으면서도안전한대체기술이현존하지않기때문이다. 안전한사이버공간을위해서는불필요한 ActiveX Control의개발을줄이고대체기술로전환하는것이바람직하다. ActiveX Control은사용자시스템의자원을접근해야하고다른대체수단이없는경우에만선택되어야하며, 그외에는 Ajax, Flash/FLEX, SilverLight 등의더나은대체기술로전환되어야옳다. 그리고부득이하게 ActiveX Control을개발할때에는개발초기부터보안을염두에두고설계및구현해야한다. 안전한 ActiveX Control의개발을위해서는개발자와보안책임자스스로보안의식과책임감을가지는것이무엇보다도필요하다. 제 4 장안전한 ActiveX Control 개발을위한십계명 69

70 제 4 장 안전한 ActiveX Control 개발을위한십계명 2. 검증항목 프로그램설계시 ActiveX Control 이외에다른대체기술로구현가능한지확인하여야한다. ActiveX Control은사용자시스템의자원을이용해야하고, 다른대체수단이없는경우에만개발되어야한다. ActiveX Control을개발할때에는해당 ActiveX Control은정상적인사용자뿐만아니라공격자또한이용할수있음을염두하고, 해당기능이악용될소지는없는지충분한고려가선행되어야한다. 3. 검증항목간과시위험성불필요한 ActiveX Control의개발은더많은보안취약점을발생시키는원인이된다. 또한정상적인 ActiveX Control의기능일지라도접근할수있는자원의범위를제한하지않으면공격자에의해악용될소지가높다. ActiveX Control은보안에취약하고호환성이전혀없어서 Microsoft 에종속적이며현시대의웹기술이나웹표준이고려되지않은프로그램이므로, 시스템의자원을이용할필요가없는웹응용프로그램을개발할경우보안성이강화되고호환성이좋은대체기술을사용하는것이바람직하다. 4. 사례가. 대체기술이활용된웹사이트의예 ActiveX Control의대체기술로알려진 Ajax, Flash/FLEX, SilverLight가적용된웹사이트의예는각각 [ 그림 31], [ 그림 32], [ 그림 33] 과같다. 70

71 제10절 ActiveX Control의 남용 금지 제4장 안전한 ActiveX Control 개발을 위한 십계명 [그림 31] Ajax가 적용된 지도검색 사이트 [그림 32] FLEX가 적용된 영화예매 사이트 ActiveX Control 개발 보안가이드라인 71

72 제 4 장 안전한 ActiveX Control 개발을위한십계명 [ 그림 33] SilverLight 가적용된방송다시보기사이트 [ 그림 31] 은 Ajax로구현된지도검색사이트, [ 그림 32] 는 FLEX로구현된영화예매사이트, [ 그림 33] 은 SilverLight로구현된방송다시보기사이트를보여준다. 기존에는 ActiveX Control로구현되었던 GUI나멀티미디어웹응용프로그램이보다나은기능을지원하는대체기술로전환되어가고있음을확인할수있다. Ajax, Flash/FLEX, SilverLight와같은웹응용기술들은 ActiveX Control과는다르게샌드박스모델 12) 이적용되어웹으로부터사용자시스템에대한접근이불가하므로공격자의공격으로부터보다안전하다. 예와같이사용자시스템의자원을이용할필요가없는웹응용프로그램을개발할경우에는보안성이강화되고호환성이좋으며더화려한 GUI를지원하는최신의대체기술로개발하는것이바람직하다. 12) 샌드박스모델 : 보안을강화하기위해가상화등을통하여프로세스가접근할수있는시스템자원을한정하는기법참고 URL= 72

73 2008 부 록 1. 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 2. 윈도우비스타에서의안전한 ActiveX Control 개발을위한체크리스트

74

75 [ 부록 1] 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 75

76

77 부록 1 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한십계명 십계명 1 입력으로문자열을받아처리하는경우에는지정된길이를넘지않는지확인하는루틴이항상포함되어야한다. 가이드라인제 4 장 1 절참조 버퍼오버플로우란? 문자열을입력인자로받아처리하는함수가할당한메모리보다더큰문자열을입력으로받게되어프로그램의스택또는힙영역이문자열로덮어쓰여져서실행오류를일으키는것을말한다. 위험성 버퍼오버플로우위협은 ActiveX Control의가장대표적인취약요소이며, 문자열을입력받는파라미터, 프라퍼티, 메소드등이매우긴문자열을올바르게처리하지못해발생한다. 공격자는버퍼오버플로우를이용하여해당 ActiveX Control이실행될때자신이원하는악성코드를실행할수있다. 부록 1 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 77

78 부록 십계명 2 임의의프로세스를실행할수있는기능을제공하지말아야한다. 가이드라인제 4 장 2 절참조 임의의프로세스실행기능이란? 스크립트입력값을통해실행파일의경로또는이름을받고해당실행파일을실행하는기능을말한다. 위험성 일반적으로임의의프로세스를실행하는기능은불필요하다. 공격자는프로세스실행취약점을악용함으로써악성프로세스를실행하여사용자시스템에악성코드를설치할수있다. 78

79 부록 1 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한십계명 십계명 3 임의의파일을읽을수있는기능을제공하지말아야한다. 가이드라인제 4 장 3 절참조 임의의파일읽기기능이란? 스크립트입력값을통해파일의경로또는이름을받고해당파일의내용을평문이나 Base64 등으로인코딩하여리턴하는기능을의미한다. 위험성 권한이낮은 ActiveX Control도권한의높은폴더의파일에대한읽기권한을가진다. ActiveX Control이공격자에의해악용되어서사용자 PC의중요파일의내용이유출될위험이있다. 부록 1 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 79

80 부록 십계명 4 임의의레지스트리를읽을수있는기능을제공하지말아야한다. 가이드라인제 4 장 4 절참조 임의의레지스트리읽기기능이란? 스크립트입력값을통해레지스트리의경로또는이름을받고해당레지스트리의내용을평문이나 Base64 등으로인코딩하여리턴하는기능을말한다. 위험성 권한이낮은 ActiveX Control도권한의높은레지스트리내용에대한읽기권한을가진다. ActiveX Control이공격자에의해악용되어서사용자 PC의중요레지스트리의내용이유출될위험이있다. 80

81 부록 1 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한십계명 십계명 5 ActiveX Control을통해인터넷에서다운로드받는업데이트파일에대해서는서명값검증을통해신뢰성을확인하여야한다. 가이드라인제 4 장 5 절참조 업데이트파일이란? 다운로드 URL, 설치경로등의업데이트정보를담고있는파일또는업데이트를위해인터넷을통해다운로드되는파일을의미한다. 위험성 업데이트파일은 ActiveX Control 프로그램을변조할수있다. 업데이트서버를스크립트를통해변경할수있는경우공격자는악성프로그램을업데이트파일인것처럼위장하여사용자시스템에설치, 악성행위를수행할수있다. 부록 1 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 81

82 부록 십계명 6 ActiveX Control 프로그램은관리자권한의폴더에설치되어야한다. 가이드라인제 4 장 6 절참조 관리자권한의폴더란? 관리자권한이란운영체제의 Administrator 권한을의미하며관리자권한의폴더란관리자만이해당폴더의파일을쓰고실행할수있는폴더를의미한다. 위험성 낮은권한의폴더에설치된실행파일및 DLL 파일은권한이낮은프로세스에의해쉽게변조될수있다. 공격자에의해변조된실행파일및 DLL 파일은해당 ActiveX Control이호출될때실행되어악성행위를수행하게된다. 82

83 부록 1 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한십계명 십계명 7 ActiveX Control 은설치된웹사이트에서만실행되고, 그외웹사이트에서는실행을제한해야한다. 가이드라인제 4 장 7 절참조 SiteLock Template이란? SiteLock Template은 ActiveX Control이스크립트로실행되는도메인을제한해주는 ATL 템플릿이다. 위험성 대부분의 ActiveX Control은설치된웹사이트에서만필요하며그외웹사이트에서는실행될필요가없다. 실행가능한웹사이트의제한이없다면공격자는일반이메일이나다른웹사이트의게시물을이용하여 ActiveX Control을실행, 악성행위를수행할수있다. 부록 1 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 83

84 부록 십계명 8 ActiveX Control의실행을위해서해당웹사이트를신뢰할수있는사이트에추가하도록강제하지말아야한다. 가이드라인제 4 장 8 절참조 신뢰할수있는사이트란? IE는웹사이트를인터넷, 로컬인트라넷, 신뢰할수있는사이트, 제한된사이트의 4가지영역으로나누고있다. 신뢰할수있는사이트는인터넷영역보다보안수준이낮으며사용자스스로해당사이트가안전하다고특별히지정한사이트이다. 위험성 신뢰할수있는사이트는보호모드가해제되어인터넷영역보다보안수준이낮게설정된다. ActiveX Control을실행하기위해해당웹사이트를신뢰할수있는사이트에추가하도록강제한다면결과적으로해당웹사이트의보안수준을낮추게되며, 보안에취약할가능성이높아진다. 신뢰하는웹사이트목록 84

85 부록 1 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한십계명 십계명 9 ActiveX Control 사용시권한상승창을우회하지말아야한다. 가이드라인제 4 장 9 절참조 권한상승창이란? 윈도우비스타에서는낮은권한의객체가높은권한의객체의자원을사용하려는경우권한상승이필요하며이때사용자동의를구하는창을의미한다. 위험성 사용자계정컨트롤 (UAC) 정책에의하면사용자는높은권한의프로세스가실행될때사용자로부터권한상승창을통해동의를구해야한다. 하지만편의상권한상승창이생성되지않게하는방법들이존재한다. 보안적관점으로볼때 ActiveX Control이높은권한의프로세스를생성할때는권한상승창을띄우는것이바람직하다. 권한상승창을우회하는방법을 ActiveX Control 이제공하고해당 ActiveX Control이보안에취약하다면결과적으로권한상승창을우회하는악성행위도가능하다. 부록 1 윈도우비스타에서의안전한 ActiveX Control 개발을위한십계명 85

86 부록 십계명 10 불필요한 ActiveX Control 프로그램은개발하지말아야한다. 가이드라인제 4 장 10 절참조 불필요한 ActiveX Control 이란? 특정서비스및소프트웨어개발시 ActiveX Control 이외의대체기술이있음에도불구하고 ActiveX Control로개발된프로그램을의미한다. 위험성 ActiveX Control은자원에대한무제한적인접근이가능하므로악의적인공격에취약하다. 불필요한 ActiveX Control 개발은더많은보안취약점을발생시키는원인이될수있다. 86

87 [ 부록 2] 윈도우비스타에서의안전한 ActiveX Control 개발을위한체크리스트 87

88

89 부록 2 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한체크리스트 내용 세부점검항목 HTML 에서 <param> 태그를통해파라미터로문자열을입력으로받아처리하는경우프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어있는가? 체크 ( 유 / 무 ) 문자열입력값에대한크기검증 임의의프로세스실행기능금지 임의의파일읽기기능금지 스크립트에서프라퍼티 (property) 가문자열을입력으로받아처리하는경우프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어있는가? 스크립트에서메소드 (method) 가인자로문자열을입력으로받아처리하는경우프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어있는가? 임의의프로세스실행기능을제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여사용자시스템에있는임의의실행파일에대한경로및이름, 실행인자를입력으로받고해당실행파일을실행하는기능 특정경로내의실행파일에대하여프로세스실행기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여실행파일에대한경로및이름, 실행인자를입력으로받고해당실행파일을실행하는기능 임의의파일읽기기능을제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여사용자시스템에있는임의의파일에대한경로및이름을입력으로받고해당파일의내용을메소드의리턴값이나프라퍼티로출력하는기능 특정폴더내의파일에대하여읽기기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여파일에대한경로및이름을입력으로받고해당파일의내용을메소드의리턴값이나프라퍼티로출력하는기능 부록 2 윈도우비스타에서의안전한 ActiveX Control 개발을위한체크리스트 89

90 부록 내용 세부점검항목 체크 ( 유 / 무 ) 임의의레지스트리읽기기능금지 업데이트파일에대한신뢰성검증 관리자권한의폴더에프로그램설치 임의의레지스트리읽기기능을제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여사용자시스템에있는임의의레지스트리에대한경로및이름을입력으로받고해당레지스트리의내용을메소드의리턴값이나프라퍼티로출력하는기능 특정경로내의레지스트리에대하여레지스트리읽기기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프라퍼티를통하여레지스트리에대한경로및이름을입력으로받고해당레지스트리의내용을메소드의리턴값이나프라퍼티로출력하는기능 HTML 의 <param> 태그나스크립트상에서메소드인자, 프라퍼티를통하여업데이트 URL 정보를입력받는경우, 디지털서명을이용하여업데이트파일의신뢰성을확보하였는가? ActiveX Control 프로그램 (exe, dll, ocx 등의파일 ) 은관리자권한의폴더 ( C:\Windows\ 의하위폴더또는 C:\Program Files\ 의하위폴더 ) 에설치되도록제한하였는가? 7 실행가능한웹사이트제한 Microsoft 의 SiteLock Template 를활용하여 ActiveX Control 이실행가능한웹사이트를제한하였는가? ActiveX Control 의설치및실행을위해서해당웹사이트를신뢰할수있는사이트에추가하는기능을제한하고있는가? 8 신뢰할수있는사이트추가남용금지 ActiveX Control 의설치를위해서보안설정을낮출필요가있는경우설치후에반드시보안설정을원래대로복구하고있는가? ActiveX Control 의실행을위해서보안설정을낮출필요가있는경우보안설정을낮추는방법대신권한상승창을통해 ActiveX Control 의권한을높이는방법으로구현하고있는가? 90

91 부록 2 윈도우 Vista 에서의안전한 ActiveX Control 개발을위한체크리스트 내용 세부점검항목 체크 ( 유 / 무 ) 9 10 권한상승창우회금지 불필요한 ActiveX Control 남용금지 권한상승창을통해사용자동의없이 ActiveX Control 이 Medium Integrity 의사용자권한을가지는프로세스 (.exe) 를실행할수있도록 Elevation Policy 레지스트리키를사용하지않았음을확인하였는가? Medium Integrity 이상의권한을가진대리자프로세스 (.exe) 를사용자시스템에상주하게하여, ActiveX Control 이사용자동의없이높은권한이필요한일을처리하도록개발하지않았음을확인하였는가? 개발되는 ActiveX Control 이사용자시스템의자원을이용할필요가명확히있고, 다른대체수단이없는것을확인하였는가? ActiveX Control 은정상적인사용자뿐만아니라악의적인공격자또한이용할수있음을염두하고, 해당기능이악용될소지는없는지충분히고려하였는가? 부록 2 윈도우비스타에서의안전한 ActiveX Control 개발을위한체크리스트 91

92

93 발행일자 발행기관 2008 년 11 월발행 국가사이버안전센터 국가보안기술연구소 본문서에대한기술문의는아래이메일로해주십시오. analysis@ncsc.go.kr activex@ensec.re.kr

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B 월간악성코드은닉사이트탐지 동향보고서 (11 월 ) 2012. 12. 침해사고대응단 인터넷침해대응센터 < 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP10 3 - 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 10

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환 취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit 2012-07-19 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Simple Web Server 취약점... 2 2.1. Simple Web Server 취약점개요... 2 2.2. Simple

More information

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환 취약점분석보고서 [Photodex ProShow Producer v5.0.3256] 2012-07-24 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Photodex ProShow Producer Buffer Overflow 취약점분석... 2 2.1. Photodex ProShow Producer Buffer

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코 월간악성코드은닉사이트탐지 동향보고서 (2 월 ) 2013. 03. 침해사고대응단 인터넷침해대응센터 < 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP10 3 - 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3.

More information

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

*2008년1월호진짜

*2008년1월호진짜 3. USB 이동식저장장치를이용하여전파되는악성코드분석 1. 개 요 최근 USB 이동식 저장장치를 통하여 전파되는 악성코드에 대한 감염피해가 증가하고 있어 주의가 필요하다. 이번에 확인된 ntion.exe 악성코드는 감염 시, 특정 사이트에 접속하여 추가 악성코드를 다운로드하는 Dropper 기능을 수행한다. 또한, 웹 서버가 감염될 경우는 웹 서버내의 웹 페이지가

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

#WI DNS DDoS 공격악성코드분석

#WI DNS DDoS 공격악성코드분석 #WI-13-025 2013-07-19 내용요약 이보고서는 7 월 15 일 Fortinet 의 Kyle Yang 이작성한 6.25 DNS DDoS Attack In Korea 를참고하여작성된것임 공격대상이된 DNS 서버는 ns.gcc.go.kr 과 ns2.gcc.go.kr 로, 악성코드에 감염된좀비 PC 는 DNS 서버에대한도메인확인질의에대한응답을두 타깃으로보내지도록하는방법을이용하였음

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0 Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : 2013.11 Version 1.0 Table of Contents 1 개요... 1 1.1 윈도우업데이트를통한 Internet Explorer 11 자동배포... 1 1.2 자동배포적용대상... 1 1.3 자동배포방지... 1 2 Blocker Toolkit 배치파일을통한자동배포방지...

More information

NTD36HD Manual

NTD36HD Manual Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

More information

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다. PDMLink 에등록된 Office 문서들의 PDF 문서변환기능및 Viewer 기능을알아보자 PDM Link에서지원하는 [Product View Document Support] 기능은 Windows-Base 기반의 Microsoft Office 문서들을 PDMLink용 Viewer인 Product View를통한읽기가가능한 PDF Format 으로변환하는기능이다.

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

` 동향보고서 1. 악성코드은닉동향요약 3 2. 홈페이지은닉형악성코드통계 악성코드유포지현황 6 - 유포지탐지현황 6 - 대량경유지가탐지된유포지 TOP 악성코드취약점및취약한 S/W 악용현황 8 - 악성코드유형별비율 9 - 위협 IP 및도메인현황 10

` 동향보고서 1. 악성코드은닉동향요약 3 2. 홈페이지은닉형악성코드통계 악성코드유포지현황 6 - 유포지탐지현황 6 - 대량경유지가탐지된유포지 TOP 악성코드취약점및취약한 S/W 악용현황 8 - 악성코드유형별비율 9 - 위협 IP 및도메인현황 10 월간악성코드은닉사이트탐지 동향보고서 5 월 침해사고대응단인터넷침해대응본부 ` 동향보고서 1. 악성코드은닉동향요약 3 2. 홈페이지은닉형악성코드통계 6 2.1 악성코드유포지현황 6 - 유포지탐지현황 6 - 대량경유지가탐지된유포지 TOP10 7 - 악성코드취약점및취약한 S/W 악용현황 8 - 악성코드유형별비율 9 - 위협 IP 및도메인현황 10 2.2 악성코드경유지현황

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

untitled

untitled Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA Spotlight on Oracle V10.x DELL SOFTWARE KOREA 2016-11-15 Spotlight on Oracle 목차 1. 시스템요구사항... 2 1.1 지원하는데이터베이스...2 1.2 사용자설치홖경...2 2. 프로그램설치... 3 2.1 설치프로그램실행...3 2.2 라이선스사용관련내용확인및사용동의...3 2.3 프로그램설치경로지정...4

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름 EDB 분석보고서 (016.01) 016.01.01~016.01.31 Exploit-DB(http://exploit-db.com) 에공개된취약점별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 016 년 1 월에공개된 Exploit-DB 의분석결과, SQL Injection 공격에대한취약점보고개수가가장많았습니다. 분석된 SQL Injection

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : ActiveX

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for 메일서버등록제(SPF) 인증기능적용안내서 (Exchange 2003 - Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for Exchange 2016 년 6 월 - 1 - 목 차 I. 개요 1 1. SPF( 메일서버등록제)

More information

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770> 웹하드서비스를통해생성된 Botnet 을이용한 DDoS 공격피해사례 2009. 12. 본보고서의전부나일부를인용시반드시 [ 자료 : 한국인터넷침해대응센터 (KrCERT)] 를명시하여주시기바랍니다. - 1 - 1. 개요 최근발생하고있는 DDoS 사례들을분석해보면그방식들이점점지능화되고조직화되고있다는것을확인할수있다. 또한 DDoS 공격의목적도과거자기과시또는정치적인이유의단순한목적에서벗어나금전적이득을취하거나경쟁업체의영업을방해하기위한목적으로점차기업화되고있기도하다.

More information

Android Master Key Vulnerability

Android Master Key Vulnerability Android Master Key Vulnerability Android Bug 8219321 2013/08/06 http://johnzon3.tistory.com Johnzone 内容 1. 개요... 2 1.1. 취약점요약... 2 1.2. 취약점정보... 2 2. 분석... 2 2.1. 기본개념... 2 2.2. 공격방법... 4 3. 방어대책... 7

More information

한국에너지기술연구원 통합정보시스템설치방법설명서 한국에너지기술연구원 지식정보실 - 1 -

한국에너지기술연구원 통합정보시스템설치방법설명서 한국에너지기술연구원 지식정보실 - 1 - 한국에너지기술연구원 통합정보시스템설치방법설명서 한국에너지기술연구원 지식정보실 - 1 - [1 단계 ] 운영체제별시스템설정방법 Windows XP 시스템설정방법 : XP 운영체제는설정할사항이없음 Windows 7 시스템설정방법 1) [ 시작 ]-[ 제어판 ]-[ 관리센터 ] 를클릭한다. - 2 - 2) 사용자계정컨트롤설정변경 을클릭한다. 3) 알리지않음 ( 사용자계정컨트롤끄기

More information

슬라이드 1

슬라이드 1 TortoiseSVN 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 Tortoise SVN (http://tortoisesvn.net) 라이선스 GNU GPL v2.0 소개 Subversion 를통해서소스버전관리를할수있게하는클라이언트도구 특징 Windows Explorer 에서곧바로 Subversion 를사용하여버전컨트롤가능

More information

CODESYS 런타임 설치과정

CODESYS 런타임 설치과정 CODESYS 런타임설치과정 CODESYS Control RTE / SoftMotion RTE Setup Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 목 차 CODESYS 런타임 - Control RTE, SoftMotion RTE... 2 다운로드및설치과정... 2 CODESYS EtherCAT

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

0. 들어가기 전

0. 들어가기 전 컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture1 Malware Analysis #1 Agenda 악성코드정적분석 악성코드분석 악성코드정적분석 정적분석 임의의코드또는응용프로그램을실행하지않고분석 ASCII 문자열 (ex. URL) API 리스트 Packing VT 기타등등 정적분석 : 파일식별 악성으로의심되는파일의형태식별 file

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 14. HTML5 웹스토리지, 파일 API, 웹소켓 웹스토리지 웹스토리지 (web storage) 는클라이언트컴퓨터에데이터를저장하는메카니즘 웹스토리지는쿠키보다안전하고속도도빠르다. 약 5MB 정도까지저장이가능하다. 데이터는키 / 값 (key/value) 의쌍으로저장 localstorage 와 sessionstorage localstorage 객체

More information

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo 메일서버등록제(SPF) 인증기능적용안내서 (Exchange 2003 - Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 for Exchange 2016 년 6 월 - 1 - 목 차 I. 개요 1 1. SPF( 메일서버등록제)

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272) 게임엔진 제 13 강 ofusion 씬구성 이대현교수 한국산업기술대학교게임공학과 학습목차 Ofusion 을이용한 export Export 된씬의재현 씬노드애니메이션을이용한수동카메라트래킹 ofusion OGRE3D 엔진용 3D MAX 익스포터 http://www.ofusiontechnologies.com ofusion 의특징 Realtime Viewport 3D

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

08_spam.hwp

08_spam.hwp 1. 개요 최근국내외에서 E-card 발송을가장한스팸메일로인하여악성코드에감염되는피해가다수보고되었다. 악성코드는메일본문에악의적인 URL을삽입및클릭을유도하는방식으로스팸메일을발송한다. 사용자가스팸메일에포함되어있는악성URL을클릭할경우감염될수있으며, 감염후에는악성코드가감염PC내에저장되어있는메일주소들을추출하여해당주소로동일유형의스팸메일을발송하게된다. 또한, P2P를통한명령전달및추가악성코드다운로드등의악성행위가예상되므로사용자는

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information