KR101055267B1 - 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법 - Google Patents

액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법 Download PDF

Info

Publication number
KR101055267B1
KR101055267B1 KR1020100019869A KR20100019869A KR101055267B1 KR 101055267 B1 KR101055267 B1 KR 101055267B1 KR 1020100019869 A KR1020100019869 A KR 1020100019869A KR 20100019869 A KR20100019869 A KR 20100019869A KR 101055267 B1 KR101055267 B1 KR 101055267B1
Authority
KR
South Korea
Prior art keywords
activex control
vulnerability
security
security vulnerability
activex
Prior art date
Application number
KR1020100019869A
Other languages
English (en)
Inventor
이철호
이동현
김수용
오형근
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020100019869A priority Critical patent/KR101055267B1/ko
Priority to US12/944,050 priority patent/US20110219454A1/en
Application granted granted Critical
Publication of KR101055267B1 publication Critical patent/KR101055267B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명을 적용하면 액티브엑스 컨트롤에 내재된 보안 취약점을 자동으로 검출할 수 있고, 해당 보안 취약점의 파급효과를 측정할 수 있으며, 발견된 보안 취약점이 보호대상 사용자 PC에서 악용되는 것을 즉각적으로 차단할 수 있다.
따라서, 보안 패치에 관계없이 사용자 PC를 보호할 수 있으므로, 액티브엑스 컨트롤의 무분별한 사용으로 인한 부작용을 겪고 있는 인터넷 환경의 보안성을 획기적으로 향상시킬 수 있을 것으로 기대된다.

Description

액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법{Method for identifying distribution sites of ActiveX controls and verifying security weaknesses of ActiveX controls and immunizing ActiveX controls}
본 발명은 액티브엑스 컨트롤(ActiveX control)의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법에 관한 것으로, 더 자세하게는 웹사이트로부터 사용자 PC에 설치되어 동작되는 액티브엑스 컨트롤의 배포 현황을 파악하여 보안 취약점을 자동으로 검출하고 검출된 보안 취약점을 즉각적으로 면역화하는 방법에 관한 것이다.
액티브엑스 컨트롤(ActiveX control)은 마이크로소프트社의 COM(Component Object Model) 기술을 근간으로 하고 있으므로, 컨트롤의 동작에 대한 보안적 제약사항이 매우 적다. 따라서, 액티브엑스 컨트롤의 보안은 개발자 스스로 보안을 고려한 개발원칙을 수립하고 그 원칙에 따라 개발할 경우에만 안전한 액티브엑스 컨트롤의 개발이 가능하다. 이러한 이유로 인해, 많은 액티브엑스 컨트롤은 버퍼오버플로우, 파일쓰기, 파일삭제, 레지스트리 조작, 자동업데이트, 임의명령 실행 등이 가능한 심각한 수준의 보안 취약점을 내재하고 있는 것이 현실이다.
더욱이, 이러한 액티브엑스 컨트롤의 보안 취약점은 악의적인 공격자에 의해서 삽입된 악성 웹페이지 또는 스팸메일을 열람하는 순간 사용자가 인지하지 못하는 사이에 사용자 PC를 장악하여 봇(Bot)과 같은 악성코드를 설치 수 있는 심각성이 있다. 특히, 액티브엑스 컨트롤은 배포 웹사이트에 접속한 사용자 PC에 직접 설치되는 형태이므로, 접속자가 많은 대형 포털, 쇼핑몰, 공공기관 대민서비스 등에서 사용되는 액티브엑스 컨트롤에 보안 취약점이 존재하는 경우, 좀비 PC의 대량 양산과 같은 매우 심각한 사회적 문제로 확대될 가능성이 있다.
또한, 액티브엑스 컨트롤의 보안 취약점이 공표된 이후 해당 보안 취약점에 대한 보안 패치의 개발 및 배포가 지연되는 경우 해당 컨트롤이 설치된 수백만~수천만 대의 PC는 제로데이(Zero-day) 공격에 무방비 상태에 놓이게 된다.
이러한 액티브엑스 컨트롤의 보안 취약성을 보완하기 위한 수단으로서, 액티브엑스 컨트롤의 보안 취약점을 자동으로 검사할 수 있는 Dranzer(美 CERT/CC), COMRaider, AxMan, COMbust, AxFuzz 등의 검사 도구가 개발되었다. 하지만, 이러한 검사 도구들은 검사를 위한 자동화 수준이 미약하거나 검사 대상의 보안 취약점 유형이 버퍼 오버플로우 형태로 한정되는 등의 문제점을 가지고 있다. 더욱이, 이러한 검사 도구들은 보안 취약점 테스트에 사용하는 입력값에 대한 조절이 비교적 자유롭지 못하며, 실제 사용 환경과 동일한 인터넷 익스플로러(Internet Explorer)를 이용한 테스트를 실시하지 않거나 하는 등의 문제점을 가지고 있다.
즉, 액티브엑스 컨트롤의 보안 취약점을 자동으로 검사하는 것은 물론 해당 보안 취약점의 파급 효과를 측정하여 보안 패치의 개발 및 적용의 우선순위를 결정하거나, 최악의 상황에서 발생 가능한 피해규모 산정을 실시할 수 있어야 하지만, 현재 이러한 파급효과 측정에 관한 실질적인 기술은 없는 실정이다.
또한, 발견된 보안 취약점을 제거하거나 보안 취약점이 악용되지 않도록 조치하는 것이 필요하지만, 실질적으로 보안 패치 개발에만 전적으로 의존하고 있는 상황이며, 따라서 보다 획기적인 보안 취약점 악용방지 대책이 필요하다.
본 발명의 목적은 액티브엑스 컨트롤의 배포 현황을 파악하는 방법, 액티브엑스 컨트롤의 보안 취약점을 자동으로 검출하는 방법 및 상기 검출된 보안 취약점을 즉각적으로 면역화할 수 있는 방법을 제공하는 것이다.
보다 구체적으로, 본 발명의 목적은 (1) 액티브엑스 컨트롤의 배포 현황을 파악할 수 있고, (2) 액티브엑스 컨트롤의 보안 취약점에 대한 파급 효과를 측정할 수 있으며, (3) 보안 패치의 적용 현황을 파악할 수 있는 액티브엑스 컨트롤의 배포 사이트 식별 방법을 제공하는 것이다.
본 발명의 다른 목적은 (1) 실제 사용환경과 동일한 인터넷 익스플로러를 기반으로 하여 테스트를 수행할 수 있고, (2) 다양한 패턴의 테스트 입력값을 적용할 수 있고, (3) 버퍼오버플로우 외의 자원 접근 형태의 보안 취약점까지 검출할 수 있으며, (4) 검출된 보안 취약점에 대한 익스플로잇 패턴을 자동으로 생성할 수 있는 액티브엑스 컨트롤의 보안 취약점 검출 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 (1) 사용자 PC에서 실행이 가능하고, (2) 액티브엑스 컨트롤의 보안 취약점 검출 결과를 탐지 패턴으로 사용하며, (3) 액티브엑스 컨트롤의 기능 호출의 감시가 가능하고, (4) 익스플로잇 패턴을 사용하는 액티브엑스 컨트롤의 기능 호출을 차단할 수 있는 액티브엑스 컨트롤의 보안 취약점 면역화 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 방법은, (a1) 배포 사이트 식별 서버에서 입력된 검색엔진 쿼리를 수행하여 검사대상 URL을 획득한 후, 상기 획득된 각 검사대상 URL에 대해서 웹브라우저를 실행하여 검사대상 URL에 접속하도록 하는 단계; (a2) 상기 접속된 각 검사대상 URL에서 액티브엑스 컨트롤의 사용 여부를 판단하는 단계; (a3) 상기 접속된 각 검사대상 URL에서 액티브엑스 컨트롤이 사용되는 경우 해당 액티브엑스 컨트롤의 정보를 수집하여 배포 현황 DB에 기록하는 단계; (a4) 상기 배포 현황 DB를 기반으로 해당 엑티브엑스 컨트롤의 배포 사이트를 식별하는 단계를 포함하는 것을 특징으로 한다.
한편, 상기 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 보안 취약점 검출 방법은, (b1) 보안 취약점 검출 서버에서 검사대상 액티브엑스 컨트롤을 가상머신에서 동작하는 검사용 PC에 설치하는 단계; (b2) 해당 액티브엑스 컨트롤의 테스트를 위한 테스트 입력값 조합을 생성하는 단계; (b3) 상기 생성된 테스트 입력값 조합을 이용하여 테스트 웹페이지를 생성하는 단계; (b4) 웹브라우저를 실행하여 상기 생성된 테스트 웹페이지에 접속하도록 한 후, 웹브라우저의 행위를 감시하여 웹브라우저의 비정상적인 종료로 인한 디버깅 로그 및 자원 접근으로 인한 자원 접근 로그를 보안 취약점 DB에 기록하는 단계; 및 (b5) 상기 보안 취약점 DB를 기반으로 해당 엑티브엑스 컨트롤의 보안 취약점을 검출하는 단계를 포함하는 것을 특징으로 한다.
한편, 상기 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 면역화 방법은, (c1) 사용자 PC에서 액티브엑스 컨트롤의 비정상적인 사용 패턴인 익스플로잇 패턴이 기록된 익스플로잇 패턴 DB를 업데이트한 후, 감시대상 액티브엑스 컨트롤의 기능 호출 경로를 후크하는 단계; (c2) 상기 후크된 코드를 이용하여 감시대상 액티브엑스 컨트롤의 기능 호출을 감시하는 단계; (c3) 감시대상 액티브엑스 컨트롤의 기능 호출이 발생되면, 각 기능 호출에 대하여 전달인자와 상기 익스플로잇 패턴간의 유사도를 측정하는 단계; (c4) 상기 측정된 유사도가 미리 정해진 기준치를 초과하는 경우 상기 익스플로잇 패턴이 사용된 것으로 판단하여 기능 호출을 차단하고, 상기 측정된 유사도가 미리 정해진 기준치를 초과하지 않는 경우 상기 익스플로잇 패턴이 사용되지 않은 것으로 판단하여 기능 호출을 허용하는 단계; 및 (c5) 상기 익스플로잇 패턴의 사용으로 기능 호출이 차단된 경우 취약점 악용 정보를 수집하여 보안 취약점 검출 서버로 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명을 적용하면 액티브엑스 컨트롤에 내재된 보안 취약점을 자동으로 검출할 수 있고, 해당 보안 취약점의 파급효과를 측정할 수 있으며, 발견된 보안 취약점이 보호대상 사용자 PC에서 악용되는 것을 즉각적으로 차단할 수 있다.
따라서, 보안 패치에 관계없이 사용자 PC를 보호할 수 있으므로, 액티브엑스 컨트롤의 무분별한 사용으로 인한 부작용을 겪고 있는 인터넷 환경의 보안성을 획기적으로 향상시킬 수 있을 것으로 기대된다.
도 1은 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 절차, 보안 취약점 검출 절차 및 면역화 절차를 개략적으로 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 절차를 설명하기 위한 도면이다.
도 3은 본 발명에서 이용되는 배포 현황 DB의 일예를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 보안 취약점 검출 절차를 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명에서 이용되는 컨트롤별 입력값 DB 및 기본 입력값 DB의 일예를 나타낸 도면이다.
도 6은 본 발명에서 이용되는 보안 취약점 DB의 일예를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 보안 취약점 면역화 절차를 설명하기 위한 도면이다.
도 8은 본 발명에서 이용되는 익스플로잇 패턴 DB의 일예를 나타낸 도면이다.
도 9는 본 발명에서 이용되는 취약점 악용 사이트 DB의 일예를 나타낸 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 설명하기로 한다. 본 발명의 바람직한 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하거나 간략하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 절차, 보안 취약점 검출 절차 및 면역화 절차를 개략적으로 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 절차(S200), 보안 취약점 검출 절차(S400) 및 면역화 절차(S600)는 하나의 시스템에 연동되어 적용될 수 있다.
우선, 배포 사이트 식별 서버(100)에서는 배포 사이트 식별 절차(S200)를 수행하여 식별된 액티브엑스 컨트롤에 관한 정보를 배포 현황 DB(110)에 기록한다.
그 다음, 보안 취약점 검출 서버(300)에서는 상기 배포 현황 DB(110)를 기반으로 보안 취약점 검출 절차(S400)를 수행하여 검출된 보안 취약점에 관한 정보를 보안 취약점 DB(350)에 기록한다.
이때, 상기 보안 취약점 검출 서버(300)는 컨트롤별 입력값 DB(310)와 기본 입력값 DB(330)를 테스트에 필요한 메소드 전달인자로서 입력받아 보안 취약점 검출 절차(S400)를 수행한다.
여기에서, 상기 보안 취약점 DB(350)에는 보안을 위해 차단되어야할 액티브엑스 컨트롤의 익스플로잇 패턴이 포함되며, 상기 보안 취약점 DB(350) 및 이에 포함된 익스플로잇 패턴에 관하여는 이하에서 더 자세히 설명하기로 한다.
다음으로, 사용자 PC(500)에서는 상기 보안 취약점 DB(350)에 포함된 익스플로잇 패턴을 이용하여 메모리에 저장되어 있는 익스플로잇 패턴 DB(510)를 업데이트한 후, 상기 업데이트된 익스플로잇 패턴 DB(510)를 기반으로 면역화 절차(S600)를 수행한다.
상기 배포 사이트 식별 절차(S200), 상기 보안 취약점 검출 절차(S400) 및 상기 면역화 절차(S600)에 대하여 더 자세히 설명하면 다음과 같다.
(1) 액티브엑스 컨트롤의 배포 사이트 식별 절차(S200)
도 2는 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 배포 사이트 식별 절차(S200)를 설명하기 위한 도면이다.
먼저, 사용자로부터 검색엔진 쿼리를 입력받는다(S201).
이때, 상기 검색엔진 쿼리는 Google 등의 검색엔진에서 지원하는 검색식(예: site:domain.com)을 통해 검사대상 도메인 또는 검사대상 사이트 유형을 지정하게 된다.
이후, 검색엔진 쿼리를 수행하여(S202), 검사대상 URL을 획득한다(S203).
다음으로, 상기 획득된 검사대상 URL 각각에 대해서 웹브라우저를 실행하여(S204), 검사대상 URL에 접속하도록 한다(S205).
그 다음, 상기 접속된 검사대상 URL에서 웹브라우저에 로드된 DOM(Document Object Model) 구조를 분석하여 액티브엑스 컨트롤의 사용 여부를 판단한다(S206).
액티브엑스 컨트롤이 사용되는 경우, 해당 액티브엑스 컨트롤의 정보를 수집하여(S207), 상기 배포 현황 DB(110)에 기록한다(S208).
상기 배포 현황 DB(110)에 대하여 더 자세히 설명하면 다음과 같다.
도 3은 본 발명에서 이용되는 배포 현황 DB(110)의 일예를 나타낸 도면이다.
도 3을 참조하면, 상기 배포 현황 DB(110)에는 해당 액티브엑스 컨트롤이 사용되는 사이트 URL(111), 해당 액티브엑스 컨트롤의 CLSID(112), CODEBASE(113), 버전(114), 작성일시(115), 제작회사(116), HASH(해쉬, 117), 설치파일(118) 등의 정보가 기록된다.
여기에서, 상기 CLSID(112)는 해당 액티브엑스 컨트롤의 식별자(ID)를 나타내며, 상기 CODEBASE(113)는 해당 액티브엑스 컨트롤의 설치 파일 URL을 나타낸다.
그리고, 동일한 액티브엑스 컨트롤이 여러 개의 버전으로 배포되므로, 각각의 버전을 구분할 수 있도록 해당 액티브엑스 컨트롤의 버전(114), 작성일시(115), 제작회사(116) 등의 정보가 상기 배포 현황 DB(110)에 기록된다.
또한, 액티브엑스 컨트롤의 버전 관리 미흡으로 인한 식별의 모호성 해결을 위해 설치 파일 전체에 대한 해쉬값(117)도 상기 배포 현황 DB(110)에 기록되며, 이후의 보안 취약점 검출 절차(S400)를 위해 설치 파일(118)도 바이너리 형태로 상기 배포 현황 DB(110)에 기록된다.
다시 도 2를 참조하면, 상기 액티브엑스 컨트롤의 사용 여부 판단 단계(S206)에서, 액티브엑스 컨트롤이 사용되지 않은 경우 검사 스케줄링이 종료되었는지를 확인한다(S209). 만약 검사 스케줄링이 종료되었으면 검사를 종료하고(S210), 종료되지 않았으면 지정된 시간경과 후에 검사를 재수행한다(S211).
즉, 상기 배포 사이트 식별 절차(S200)에서는 검색엔진 쿼리를 통해 검사대상 URL을 확보한 다음, 각 검사대상 URL에 대해서 웹브라우저 접속을 통해 액티브엑스 컨트롤의 사용 여부를 검출하여 배포 현황을 파악한다. 그리고, 각 검사대상 URL에 대한 검사 작업을 하나의 스케쥴로 관리하여 동일한 URL에서 배포하는 액티브엑스 컨트롤의 정보를 일정한 주기별로 수집하여 배포 현황 DB(110)를 업데이트한다.
따라서, 상기 배포 사이트 식별 절차(S200)에 의하면, 액티브엑스 컨트롤의 배포 현황, 보안 패치 적용 현황을 즉각적으로 파악할 수 있으며, 더 나아가 액티브엑스 컨트롤의 보안 취약점에 대한 파급 효과까지 측정할 수 있다.
(2) 액티브엑스 컨트롤의 보안 취약점 검출 절차(S400)
도 4는 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 보안 취약점 검출 절차(S400)를 설명하기 위한 도면이다.
먼저, 검사대상 액티브엑스 컨트롤을 가상머신에서 동작하는 검사용 PC에 설치한다(S401).
이때, 상기 배포 현황 DB(110)내의 CLSID(112) 및 설치파일(118) 정보를 이용하여 검사대상 액티브엑스 컨트롤을 설치한다.
그 다음, 상기 검사대상 액티브엑스 컨트롤을 사용하는 정상적인 웹사이트에서 각 메소드 및 전달인자에 대한 정상 입력값을 추출하여 컨트롤별 입력값 DB(310)에 기록한다(S402).
이때, 해당 액티브엑스 컨트롤의 기능 호출(메소드 호출, 속성 호출, 초기화를 위한 초기값 입력) 경로를 후크(Hook)와 같은 기술적 방법을 이용하여 상기 각 메소드 및 전달인자에 대한 정상 입력값을 추출하며, 정상 입력값 추출 단계(S402)는 경우에 따라 생략이 가능하다.
다음으로, 해당 액티브엑스 컨트롤의 테스트를 위한 테스트 입력값 조합을 생성한다(S403).
이때, 호출 가능한 메소드(Method), 속성(Property), 초기화(Initialization)별로 테스트 입력값 조합을 생성하며, 2개 이상의 전달인자를 갖는 메소드의 경우 각 전달인자의 타입(Type)에 따라 다양한 테스트 입력값 조합을 생성할 수 있다.
여기에서, 상기 테스트 입력값은 상기 정상 입력값 추출 단계(S402)를 통해 구축된 컨트롤별 입력값 DB(310)와 미리 정의된 기본 입력값 DB(330)로부터 입력된다.
상기 컨트롤별 입력값 DB(310) 및 상기 기본 입력값 DB(330)에 대하여 더 자세히 설명하면 다음과 같다.
도 5a 및 도 5b는 본 발명에서 이용되는 컨트롤별 입력값 DB(310) 및 기본 입력값 DB(330)의 일예를 나타낸 도면이다.
자원 접근 유형의 보안 취약점 검출을 위해서 "magicstring"을 사용하였고, 네트워크 접근 보안 취약점 검출을 위해서 "http://magicstring.com"을 사용하였으며, 파일 접근 보안 취약점 검출을 위해서 "c:\\magicstring.bmp"을 사용하였다.
도 5a 및 도 5b를 참조하면, 상기 컨트롤별 입력값 DB(310)와 상기 기본 입력값 DB(330)에는 Type(311, 331), Category(312, 332), Value(313, 333) 등의 정보가 기록된다.
상기 Type(311, 331)은 액티브엑스 컨트롤의 입력값 타입을 의미하며, 액티브엑스 컨트롤이 가질 수 있는 표준 데이터 타입을 모두 지원한다.
상기 Category(312, 332)는 액티브엑스 컨트롤의 테스트를 위한 테스트 입력값을 나타내며, 상기 테스트 입력값은 그 용도에 따라 Code Coverage와 Invalid Input으로 구분된다.
여기에서, 상기 Invalid Input은 정상적인 상황에서는 사용되지 않는 극단적인 형태의 값을 사용함으로써 보안 취약점 유무를 판단할 수 있도록 하는 입력값이며, Code Coverage는 이러한 Invalid Input 입력값으로 인해서 보안 취약점이 발생되는 코드 지점까지 진입할 수 있는 제반조건을 형성하는 값이다.
예를 들어, 정상적인 상황에서 method1(1, "a") 또는 method1(2,"ab") 형태로 사용되는 메소드 method가 다음의 [예 1]과 같은 형태로 구현되어 있다고 가정하자.
[예 1]
bool method(int length, char* string)
{
char buffer[128];
if (length > 128) return(false);
strcpy(buffer, string);
return(true);
}
상기 [예 1]과 같은 메소드에서, 첫 번째 전달인자는 두 번째 전달인자의 길이를 나타내며, 두 번째 전달인자는 내부적으로 취약한 함수인 strcpy() 함수에 의해서 메모리 스택상의 주소로 복사된다.
만약 method1의 호출을 method1(1,"AAAAAA…AAAAAA"); 와 같이 수행한다면, 결국 버퍼오버플로우가 발생되는 보안 취약점을 발견할 수 있다. 따라서, 호출에 사용된 첫 번째 전달인자인 "1"은 Code Coverage가 되고, 두 번째 전달인자인 "AAAAAA…AAA" 는 Invalid Input으로 볼 수 있다.
상기 Value(313, 333)는 상기 테스트 입력값을 XML 형태로 구조화한 값을 나타낸 것이며, 다음의 [예 2]는 http://AAAA...AAAA 형태의 긴 문자열을 XML 형태로 표현한 Value값을 나타낸다.
[예 2]
<TestCase>
<Value>http://</Value>
<Value Repeat="50000">A</Value>
</TestCase>
한편, 각각의 호출 가능한 메소드에 대해서 메소드가 가진 전달인자의 수, 각 전달인자 형, 입력값 DB(310, 330)에 따라 하나의 메소드를 테스트하기 위한 테스트 입력값 조합이 수십~수백개에 이를 수 있으므로, 보안 취약점 검사의 수준에 따라 테스트에 사용하는 입력값의 수를 조절할 필요가 있다.
다시 도 4를 참조하면, 테스트 입력값 조합이 생성되면, 상기 테스트 입력값 조합을 이용하여 웹브라우저에서 인식 가능한 HTML 형태의 테스트 웹페이지를 생성한다(S404).
이렇게 생성된 웹페이지에 대해서 웹브라우저를 디버그 모드로 실행하여(S405), 테스트 웹페이지에 접속되도록 한 후(S406), 웹브라우저의 행위를 감시한다(S407).
이때, 웹브라우저의 자원 접근 행위의 감시를 위해서 파일, 레지스트리, 네트워크 관련 API 함수들을 후크(Hook)하여 호출을 감시하게 된다. 여기에서, 웹브라우저 프로세스에 대해서 자원 접근을 감시하는 것은 액티브엑스 컨트롤이 DLL형태로 웹브라우저 프로세스에 로드되어 동작되기 때문이다.
만약 웹브라우저의 행위를 감시하던 도중에 웹브라우저가 비정상적으로 종료되는 경우(S408), 프로세스의 레지스터 및 스택 상태 등을 포함한 디버깅 로그를 기록한다(S409).
그리고, 웹브라우저의 행위를 감시하던 도중에 자원 접근이 발생되면(S410), 해당 API 함수의 전달인자로 매직스트링이 포함된 문자열이 사용되는지의 여부를 판단하여(S411), 매직스트링이 포함된 문자열이 사용된 경우에만 자원 접근으로 인정하여 자원 접근 로그를 기록한다(S412).
매직스트링은 일반적인 상황에서 검출되지 않는 문자열을 말하며, 매직스트링을 검사를 위한 입력값으로 사용하면, 감시단계에서 해당 매직스트링이 있는지를 판단하여 입력값으로서 사용한 그 문자열이 그대로 검출되는 경우에만 자원 접근을 인정한다.
이후, 웹브라우저의 비정상적인 종료로 인한 디버깅 로그 및 자원 접근으로 인한 자원 접근 로그를 기반으로 취약점 증명코드를 생성하여 보안 취약점 DB(350)에 기록한다(S413).
따라서, 버퍼오버플로우 보안 취약점과 자원 접근 보안 취약점을 구분하여 취약점 증명코드를 생성하고 보안 취약점 DB(350)에 기록하여, 해당 엑티브 엑스 컨트롤의 보안 취약점을 검출할 수 있다.
이때, 버퍼오버플로우 보안 취약점에 대한 익스플로잇 패턴 생성을 위해서 문자열 길이를 증감하여 버퍼오버플로우를 유발하는 최소 문자열을 찾아낼 수 있다. 버퍼오버플로우 보안 취약점의 경우, 문자열의 길이를 이용하여 취약점의 악용여부를 판단할 수 있다. 자원접근 유형의 취약점과 달리 버퍼오버플로우의 경우에는 액티브엑스 컨트롤(ActiveX control)의 내부 구현코드에서 정상적으로 처리할 수 있는 최대한의 길이를 초과하는 길이의 문자열에 대해서 발생되기 때문이다.
상기 보안 취약점 DB(350)에 대하여 더 자세히 설명하면 다음과 같다.
도 6은 본 발명에서 이용되는 보안 취약점 DB(350)의 일예를 나타낸 도면이다.
도 6을 참조하면, 상기 보안 취약점 DB(350)에는 취약점 ID(351), CLSID(352), 버전(353), 작성일시(354), HASH(해쉬, 355), 취약점 유형(356), 호출유형(357), 메소드명(358), 익스플로잇 패턴(359) 등의 정보가 기록된다.
특히, 상기 취약점 유형(356)은 버퍼오버플로우 보안 취약점 유형(BoF)과 자원 접근 보안 취약점 유형(FileAccess, RegAccess, NetAccess)으로 나뉜다.
상기 버퍼오버플로우 보안 취약점은 이전 단계에서 Access Violation이 발생된 입력값 조합을 대상으로 레지스터(Register) EIP값이 Invalid Input 입력값으로 변경되는 최소 입력값 길이를 구하여 얻어진다. 여기에서, 구해진 최소 입력값 길이는 보안 취약점 DB(350)에서 익스플로잇 패턴(359)의 생성에 사용된다.
상기 자원 접근 유형의 보안 취약점은 버퍼오버플로우 보안 취약점과는 달리 CPU 명령을 직접 제어할 수 있는 형태가 아니므로 입력값에 영향을 받는 매직스트링을 포함한 파일이 생성되거나, 삭제되거나, 읽혀지거나, 실행되는 경우 FileAccess 보안 취약점으로 구분하고, 매직스트링을 포함한 레지스트리 엔트리가 생성되거나, 삭제되거나, 읽혀지면 RegAccess 보안 취약점으로 구분한다. 그리고, 매직스트링을 포함한 HTTP요청 등의 네트워크 접속이 발생되면 NetAccess 보안 취약점으로 구분한다. 이러한 자원 접근 유형의 보안 취약점에 대한 증명코드 생성에 있어서, 매직스트링을 포함하는 파일경로, 레지스트리 경로, 네트워크 경로를 사전에 준비해 두고 증명코드 생성작업을 시작해야 한다. 하지만, NetAccess 보안 취약점의 경우는 네트워크 경로에서 다운로드 받은 파일에 따라 부수적인 동작이 발생되므로 완전히 자동적인 방법으로 검증이 어렵다. NetAccess 외의 RegAccess, FileAccess는 자동적인 방법으로 검증이 가능하다.
여기에서, 버퍼오버플로우(BoF)의 경우는 버퍼오버플로우를 발생시키는 최소문자열을 기준으로 익스플로잇 패턴을 생성할 수 있지만, 자원 접근 유형의 보안 취약점에 대한 익스플로잇 패턴은 Directory Traversal를 위한 "..\\..\\" 와 같은 문자열을 사용해서만 익스플로잇 패턴을 생성할 수 있다. 왜냐하면, 본 발명에서의 익스플로잇 패턴의 사용은 사용자 PC에서 액티브엑스 컨트롤의 정상적인 사용은 허용하고 익스플로잇 패턴만을 차단하기 때문이다.
다시 말해, 취약점 증명코드 생성 단계(S413)에서 생성되는 익스플로잇 패턴(359)은 정상적인 사용시에는 절대 사용하지 않는 값만 기재되어야만 한다. 따라서, 익스플로잇 패턴(359)의 생성이 불가능한 보안 취약점은 보안 취약점 DB(350)에 유지는 하되, 사용자 PC(500)로 전달되는 익스플로잇 패턴(359)에서는 제외되도록 한다.
상기와 같은 보안 취약점 검출 절차(S400)는 주로 Non-Persistent 모드의 가상머신 상에서 이루어진다.
즉, 상기 보안 취약점 검출 절차(S400)에서는 검사대상 PC에 설치된 엑티브엑스 컨트롤에 대한 테스트 입력값 조합을 기반으로 테스트 웹페이지를 생성하고, 웹브라우저를 구동시켜 상기 생성된 테스트 웹페이지에 접속되도록 한 후, 웹브라우저 프로세스의 동작상태 및 자원 접근 상황을 감시함으로써 액티브엑스 컨트롤의 보안 취약점을 자동으로 검출한다.
따라서, 상기 보안 취약점 검출 절차(S400)에 의하면, 다양한 패턴의 테스트 입력값을 적용할 수 있으며, 실제 사용환경과 동일한 인터넷 익스플로러를 기반으로 하여 테스트를 수행할 수 있다. 그리고, 버퍼오버플로우 외의 자원 접근 형태의 보안 취약점까지 검출할 수 있으며, 검출된 보안 취약점에 대한 익스플로잇 패턴을 자동으로 생성할 수 있다.
(3) 액티브엑스 컨트롤의 보안 취약점 면역화 절차(S600)
도 7은 본 발명의 일 실시예에 따른 액티브엑스 컨트롤의 보안 취약점 면역화 절차(S600)를 설명하기 위한 도면이다.
먼저, 사용자 PC(500)에서는 상기 보안 취약점 검출 서버(300)로부터 다운로드된 상기 보안 취약점 DB(350)의 익스플로잇 패턴(359)을 이용하여 메모리에 저장되어 있는 익스플로잇 패턴 DB(510)를 업데이트한다(S601).
상기 익스플로잇 패턴 DB(510)에는 액티브엑스 컨트롤의 비정상적인 사용 패턴인 익스플로잇 패턴이 기록되어 있으며, 이에 대하여 더 자세히 설명하면 다음과 같다.
도 8은 본 발명에서 이용되는 익스플로잇 패턴 DB(510)의 일예를 나타낸 도면이다.
도 8을 참조하면, 상기 익스플로잇 패턴 DB(510)에는 취약점 ID(511), CLSID(512), 버전(513), 작성일시(514), HASH(해쉬, 515), 취약점 유형(516), 호출유형(517), 메소드명(518), 익스플로잇 패턴(519) 등의 정보가 기록되어 있다.
다시 말해, 상기 보안 취약점 검출 서버(300)로부터 상기 보안 취약점 DB(350)를 다운로드한 후, 상기 보안 취약점 DB(350)에 포함된 익스플로잇 패턴(359)을 이용하여 상기 익스플로잇 패턴 DB(510)를 업데이트한다.
다음으로, 보안 취약점을 가진 감시대상 액티브엑스 컨트롤의 기능 호출(메소드/속성 호출 및 초기값 입력) 경로를 후크(Hook) 한다(S602).
여기에서, 액티브엑스 컨트롤의 기능 호출 경로 후크 과정은 레지스트리에 등록된 액티브엑스 컨트롤 파일을 교체하거나, 해당 인터페이스에 대한 테이블을 변경하거나, 새로 설치되는 액티브엑스 컨트롤을 감지하는 방법 등을 통해서 가능하다.
다음으로, 후크된 코드를 이용하여 감시대상 액티브엑스 컨트롤의 기능 호출(메소드/속성 호출 및 초기값 입력)을 감시한다(S603).
해당 액티브엑스 컨트롤의 기능 호출(메소드/속성 호출 및 초기값 입력)이 발생되면(S604), 각 기능 호출에 대해서 전달인자와 익스플로잇 패턴간의 유사도를 측정한다(S605).
그 다음, 상기 측정된 유사도가 미리 정해진 기준치(Threshold)를 초과하는지에 따라 익스플로잇 패턴의 사용 여부를 판단한다(S606).
만약 익스플로잇 패턴이 사용되지 않은 것으로 판단되면 기능 호출(메소드/속성 호출 및 초기값 입력)을 허용하고(S607), 익스플로잇 패턴이 사용된 것으로 판단되면 기능 호출(메소드/속성 호출 및 초기값 입력)을 차단한다(S608).
이때, 메소드 호출의 경우, 후크된 코드에서 원래의 메소드를 호출하지 않고 에러값을 리턴함으로써 메소드 차단이 가능하다.
익스플로잇 패턴의 사용으로 기능 호출(메소드/속성 호출 및 초기값 입력)이 차단된 경우에는 취약점 악용 정보를 수집하여(S609), 사용자의 동의하에 상기 보안 취약점 검출 서버(300)로 전송한다.
여기에서, 상기 보안 취약점 검출 서버(300)로 전송된 취약점 악용 정보는 취약점 악용 사이트 DB(370)에 기록되며, 상기 취약점 악용 사이트 DB(370)에 대하여 더 자세히 설명하면 다음과 같다.
도 9는 본 발명에서 이용되는 취약점 악용 사이트 DB(370)의 일예를 나타낸 도면이다.
도 9를 참조하면, 상기 취약점 악용 사이트 DB(370)에는 취약점 악용 사이트 URL(371), 취약점 ID(372), 익스플로잇 패턴 유사도(373), 액티브엑스 컨트롤의 기능 호출시 사용된 입력값 로그를 나타내는 액티브엑스 호출 로그(374), 해당 사이트의 URL 접속시 웹브라우저에 로딩된 웹문서의 내용을 나타내는 웹문서 로그(375) 등의 취약점 악용 정보가 기록되어 있으며, 이를 통해 액티브엑스 컨트롤의 보안 취약점 악용 사례를 파악할 수 있다.
즉, 상기 면역화 절차(S600)에서는 상기 익스플로잇 패턴 DB(510)에 포함된 액티브엑스 컨트롤에 대하여 각각의 기능 호출(메소드/속성 호출 및 초기값 입력)을 감시하여, 상기 익스플로잇 패턴(359)과 높은 유사성을 갖는 액티브엑스 컨트롤의 기능 호출을 차단한다. 그리고, 해당 악용 사례 정보를 사용자 동의를 거쳐 상기 보안 취약점 검출 서버(300)로 전송하여 취약점 악용 사이트 DB(370)에 기록함으로써 보안 취약점의 악용을 방지한다.
따라서, 상기 면역화 절차(S600)에 의하면 사용자 PC에서 보안 취약점을 가진 액티브엑스 컨트롤이 악용되는 것을 즉각적으로 차단할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 설명하였다. 그러나, 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것으로, 본 발명의 범위가 상기의 실시예에 한정되는 것은 아니며, 여러 가지 다른 형태로 변형이 가능함은 물론이다.
100: 배포 사이트 식별 서버
110: 배포 현황 DB
300: 보안 취약점 검출 서버
310: 컨트롤별 입력값 DB
330: 기본 입력값 DB
350: 보안 취약점 DB
370: 보안 악용 사이트 DB
500: 사용자 PC
510: 익스플로잇 패턴 DB

Claims (18)

  1. (a1) 배포 사이트 식별 서버에서 입력된 검색엔진 쿼리를 수행하여 검사대상 URL을 획득한 후, 상기 획득된 각 검사대상 URL에 대해서 웹브라우저를 실행하여 검사대상 URL에 접속하도록 하는 단계;
    (a2) 상기 접속된 각 검사대상 URL에서 액티브엑스 컨트롤의 사용 여부를 판단하는 단계;
    (a3) 상기 접속된 각 검사대상 URL에서 액티브엑스 컨트롤이 사용되는 경우 해당 액티브엑스 컨트롤의 정보를 수집하여 배포 현황 DB에 기록하는 단계; 및
    (a4) 상기 배포 현황 DB를 기반으로 해당 엑티브엑스 컨트롤의 배포 사이트를 식별하는 단계를 포함하고,
    상기 (a2) 단계에서, 상기 접속된 각 검사대상 URL에서 웹브라우저에 로드된 DOM(Document Object Model) 구조를 분석하여 액티브엑스 컨트롤의 사용 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 배포 사이트 식별 방법.
  2. 삭제
  3. 제 1항에 있어서, 상기 (a3) 단계에서,
    해당 액티브엑스 컨트롤이 사용되는 사이트 URL, 해당 액티브엑스 컨트롤의 설치 파일 URL, 버전, 작성일시, 제작회사, 설치 파일에 대한 해쉬값 및 설치 파일의 바이너리값을 수집하여 식별자와 함께 상기 배포 현황 DB에 기록하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 배포 사이트 식별 방법.
  4. 제 1항에 있어서, 상기 (a3) 단계에서,
    상기 접속된 각 검사대상 URL에서 액티브엑스 컨트롤이 사용되지 않은 경우 검사 스케줄링의 종료 여부를 확인하는 제1 단계와,
    검사 스케줄링이 종료되지 않은 경우, 지정된 시간경과 후에 다시 검사대상 URL에 접속하도록 하여 액티브엑스 컨트롤의 사용 여부를 판단하는 제2 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 배포 사이트 식별 방법.
  5. (b1) 보안 취약점 검출 서버에서 검사대상 액티브엑스 컨트롤을 가상머신에서 동작하는 검사용 PC에 설치하는 단계;
    (b2) 해당 액티브엑스 컨트롤의 테스트를 위한 테스트 입력값 조합을 생성하는 단계;
    (b3) 상기 생성된 테스트 입력값 조합을 이용하여 테스트 웹페이지를 생성하는 단계;
    (b4) 웹브라우저를 실행하여 상기 생성된 테스트 웹페이지에 접속하도록 한 후, 웹브라우저의 행위를 감시하여 웹브라우저의 비정상적인 종료로 인한 디버깅 로그 및 자원 접근으로 인한 자원 접근 로그를 보안 취약점 DB에 기록하는 단계; 및
    (b5) 상기 보안 취약점 DB를 기반으로 해당 엑티브엑스 컨트롤의 보안 취약점을 검출하는 단계를 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  6. 제 5항에 있어서, 상기 (b2) 단계에서,
    미리 정의된 기본 입력값 DB를 이용하여 호출 가능한 메소드(Method), 속성(Property), 초기화(Initialization)별로 상기 테스트 입력값 조합을 생성하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  7. 제 6항에 있어서, 상기 (b2) 단계에서,
    상기 검사대상 액티브엑스 컨트롤을 사용하는 정상적인 웹사이트에서 각 메소드 및 전달인자에 대한 정상 입력값을 추출하여 컨트롤별 입력값 DB에 기록하는 제1 단계;
    상기 기본 입력값 DB와 상기 컨트롤별 입력값 DB를 이용하여 호출 가능한 메소드(Method), 속성(Property), 초기화(Initialization)별로 상기 테스트 입력값 조합을 생성하는 제2 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  8. 제 7항에 있어서,
    상기 기본 입력값 DB와 상기 컨트롤별 입력값 DB에는 해당 액티브엑스 컨트롤의 입력값 타입, 해당 액티브엑스 컨트롤의 테스트를 위한 테스트 입력값 유형, 상기 테스트 입력값을 XML 형태로 나타낸 값이 기록되는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  9. 제 8항에 있어서,
    상기 테스트 입력값 유형은, 정상적인 상황에서는 사용되지 않는 극단적인 형태의 값을 사용함으로써 보안 취약점 유무를 판단할 수 있도록 하는 Invalid Input와, 상기 Invalid Input 입력값으로 인해서 보안 취약점이 발생되는 코드 지점까지 진입할 수 있는 제반조건을 형성하는 값인 Code Coverage로 구분되는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  10. 제 5항에 있어서, 상기 (b4) 단계에서,
    상기 웹브라우저의 행위를 감시하던 도중에 상기 웹브라우저가 비정상적으로 종료되는 경우, 프로세스의 레지스터 및 스택 상태를 포함하는 디버깅 로그를 기록하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  11. 제 5항에 있어서, 상기 (b4) 단계에서,
    상기 웹브라우저의 행위를 감시하던 도중에 상기 웹브라우저에서 자원 접근이 발생되는 경우, 해당 API 함수의 전달인자로 매직스트링이 포함된 문자열이 사용되는지의 여부를 판단하여, 매직스트링이 포함된 문자열이 사용된 경우에만 자원 접근으로 인정하여 자원 접근 로그를 기록하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  12. 제 11항에 있어서,
    상기 웹브라우저의 자원 접근 행위의 감시를 위해서 파일, 레지스트리, 네트워크 관련 API 함수들을 후크하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  13. 제 5항에 있어서, 상기 (b4) 단계에서,
    해당 액티브엑스 컨트롤의 취약점에 대한 취약점 유형, 호출유형, 메소드명, 해당 액티브엑스 컨트롤의 비정상적인 사용 패턴을 나타내는 익스플로잇 패턴을 취약점 식별자와 함께 상기 보안 취약점 DB에 기록하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  14. 제 13항에 있어서,
    상기 취약점 유형은 버퍼오버플로우 보안 취약점 유형과 자원 접근 보안 취약점 유형으로 분류되고,
    Access Violation이 발생된 입력값 조합을 대상으로 레지스터 EIP값이 Invalid Input 입력값으로 변경되는 최소 입력값 길이를 계산한 경우, 버퍼오버플로우 보안 취약점 유형으로 분류되며,
    입력값에 영향을 받는 매직스트링을 포함한 파일이 생성되거나, 삭제되거나, 읽혀지거나, 실행되는 경우 자원 접근 유형의 보안 취약점 중에서 FileAccess 보안 취약점 유형으로 분류되고, 매직스트링을 포함한 레지스트리 엔트리가 생성되거나, 삭제되거나, 읽혀지는 경우, 자원 접근 유형의 보안 취약점 중에서 RegAccess 보안 취약점으로 분류되며, 매직스트링을 포함하는 네트워크 접속이 발생되는 경우, 자원 접근 유형의 보안 취약점 중에서 NetAccess 보안 취약점으로 분류되는 것을 특징으로 하는 액티브엑스 컨트롤의 보안 취약점 검출 방법.
  15. (c1) 사용자 PC에서 액티브엑스 컨트롤의 비정상적인 사용 패턴인 익스플로잇 패턴이 기록된 익스플로잇 패턴 DB를 업데이트한 후, 감시대상 액티브엑스 컨트롤의 기능 호출 경로를 후크하는 단계;
    (c2) 상기 후크된 코드를 이용하여 감시대상 액티브엑스 컨트롤의 기능 호출을 감시하는 단계;
    (c3) 감시대상 액티브엑스 컨트롤의 기능 호출이 발생되면, 각 기능 호출에 대하여 전달인자와 상기 익스플로잇 패턴간의 유사도를 측정하는 단계;
    (c4) 상기 측정된 유사도가 미리 정해진 기준치를 초과하는 경우 상기 익스플로잇 패턴이 사용된 것으로 판단하여 기능 호출을 차단하고, 상기 측정된 유사도가 미리 정해진 기준치를 초과하지 않는 경우 상기 익스플로잇 패턴이 사용되지 않은 것으로 판단하여 기능 호출을 허용하는 단계; 및
    (c5) 상기 익스플로잇 패턴의 사용으로 기능 호출이 차단된 경우 취약점 악용 정보를 수집하여 보안 취약점 검출 서버로 전송하는 단계를 포함하고,
    상기 (c5) 단계 이후에, 상기 보안 취약점 검출 서버에서 상기 전송된 취약점 악용 정보를 기반으로 취약점 악용 사이트 URL, 취약점 ID, 익스플로잇 패턴 유사도, 해당 액티브엑스 컨트롤의 기능 호출시 사용된 입력값 로그를 나타내는 액티브엑스 호출 로그, 해당 사이트의 URL 접속시 웹브라우저에 로딩된 웹문서의 내용을 나타내는 웹문서 로그를 취약점 악용 사이트 DB에 기록하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 면역화 방법.
  16. 제 15항에 있어서, 상기 (c1) 단계에서,
    보안 취약점 검출 서버로부터 보안 취약점 DB를 다운로드한 후, 상기 보안 취약점 DB에 포함된 익스플로잇 패턴을 이용하여 상기 익스플로잇 패턴 DB를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 액티브엑스 컨트롤의 면역화 방법.
  17. 제 15항에 있어서, 상기 (c2) 단계에서,
    레지스트리에 등록된 액티브엑스 컨트롤 파일을 교체하거나, 해당 인터페이스에 대한 테이블을 변경하거나, 새로 설치되는 액티브엑스 컨트롤을 감지하여 액티브엑스 컨트롤의 기능 호출 경로를 후크하는 것을 특징으로 하는 액티브엑스 컨트롤의 면역화 방법.
  18. 삭제
KR1020100019869A 2010-03-05 2010-03-05 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법 KR101055267B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100019869A KR101055267B1 (ko) 2010-03-05 2010-03-05 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법
US12/944,050 US20110219454A1 (en) 2010-03-05 2010-11-11 Methods of identifying activex control distribution site, detecting security vulnerability in activex control and immunizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100019869A KR101055267B1 (ko) 2010-03-05 2010-03-05 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법

Publications (1)

Publication Number Publication Date
KR101055267B1 true KR101055267B1 (ko) 2011-08-09

Family

ID=44532434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019869A KR101055267B1 (ko) 2010-03-05 2010-03-05 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법

Country Status (2)

Country Link
US (1) US20110219454A1 (ko)
KR (1) KR101055267B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832836B2 (en) * 2010-12-30 2014-09-09 Verisign, Inc. Systems and methods for malware detection and scanning
US10395031B2 (en) * 2010-12-30 2019-08-27 Verisign, Inc. Systems and methods for malware detection and scanning
US9356955B2 (en) * 2014-03-15 2016-05-31 Kenneth F. Belva Methods for determining cross-site scripting and related vulnerabilities in applications
US10121004B2 (en) * 2015-10-07 2018-11-06 Electronics And Telecommunications Research Institute Apparatus and method for monitoring virtual machine based on hypervisor
CN105279086B (zh) * 2015-10-16 2018-01-19 山东大学 一种基于流程图的自动检测电子商务网站逻辑漏洞的方法
US10235528B2 (en) * 2016-11-09 2019-03-19 International Business Machines Corporation Automated determination of vulnerability importance
US10585660B2 (en) * 2018-06-11 2020-03-10 Fujitsu Limited Reducing buffer overflow
US11520682B2 (en) 2018-08-27 2022-12-06 Samsung Electronics Co., Ltd. Code coverage method for embedded system on chip
CN112306591B (zh) * 2019-07-31 2022-07-22 腾讯科技(深圳)有限公司 一种基于页面的远程调试方法及装置
US10599558B1 (en) * 2019-11-05 2020-03-24 CYBERTOKA Ltd. System and method for identifying inputs to trigger software bugs
US11758040B2 (en) * 2020-12-31 2023-09-12 Bce Inc. Systems and methods for use in blocking of robocall and scam call phone numbers
US11914497B2 (en) * 2022-03-31 2024-02-27 Arm Limited Profiling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070092403A (ko) * 2006-03-10 2007-09-13 한국전자통신연구원 ActiveX Control 취약점 검사 및 검증방법과 ActiveX Control 식별 장치 및 방법
KR20090003050A (ko) * 2006-11-13 2009-01-09 한국전자통신연구원 액티브엑스 컨트롤 실행 관리 장치 및 방법
KR20100018840A (ko) * 2008-08-07 2010-02-18 주식회사 엘지텔레콤 액티브엑스 대체 시스템 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
IL146762A0 (en) * 2000-03-27 2002-07-25 Network Security Systems Inc Internet/network security method and system for checking security of a client from a remote facility
US7313822B2 (en) * 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
CN1223938C (zh) * 2004-04-02 2005-10-19 清华大学 一种构件的封装和一致性访问的方法
US8046831B2 (en) * 2005-03-02 2011-10-25 Actiance, Inc. Automating software security restrictions on system resources
WO2007089786A2 (en) * 2006-01-30 2007-08-09 Sudhakar Govindavajhala Identifying unauthorized privilege escalations
US7530105B2 (en) * 2006-03-21 2009-05-05 21St Century Technologies, Inc. Tactical and strategic attack detection and prediction
AU2007261272B2 (en) * 2006-03-24 2012-04-19 AVAST Software s.r.o. Software vulnerability exploitation shield
US7926114B2 (en) * 2007-05-31 2011-04-12 Microsoft Corporation Testing software applications with schema-based fuzzing
WO2009015671A1 (en) * 2007-07-31 2009-02-05 Sony Corporation Automatically protecting computer systems from attacks that exploit security vulnerabilities
KR20090037540A (ko) * 2007-10-12 2009-04-16 한국정보보호진흥원 클라이언트 애플리케이션을 탐지하기 위한 복합형 네트워크탐지 방법
US20100037317A1 (en) * 2008-08-06 2010-02-11 Jeong Wook Oh Mehtod and system for security monitoring of the interface between a browser and an external browser module
US8776218B2 (en) * 2009-07-21 2014-07-08 Sophos Limited Behavioral-based host intrusion prevention system
US9015829B2 (en) * 2009-10-20 2015-04-21 Mcafee, Inc. Preventing and responding to disabling of malware protection software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070092403A (ko) * 2006-03-10 2007-09-13 한국전자통신연구원 ActiveX Control 취약점 검사 및 검증방법과 ActiveX Control 식별 장치 및 방법
KR20090003050A (ko) * 2006-11-13 2009-01-09 한국전자통신연구원 액티브엑스 컨트롤 실행 관리 장치 및 방법
KR100925508B1 (ko) * 2006-11-13 2009-11-05 한국전자통신연구원 액티브엑스 컨트롤 실행 관리 장치 및 방법
KR20100018840A (ko) * 2008-08-07 2010-02-18 주식회사 엘지텔레콤 액티브엑스 대체 시스템 및 그 방법

Also Published As

Publication number Publication date
US20110219454A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
KR101055267B1 (ko) 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법
EP3693874B1 (en) Continuous vulnerability management for modern applications
JP5507699B2 (ja) 悪性サイト検出装置及び方法
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
EP3200115B1 (en) Specification device, specification method, and specification program
US7904278B2 (en) Methods and system for program execution integrity measurement
US11520901B2 (en) Detecting firmware vulnerabilities
CN102546576B (zh) 一种网页挂马检测和防护方法、系统及相应代码提取方法
JP5507176B2 (ja) ソフトウェアの信頼性を測定する方法及び装置
KR101214893B1 (ko) 어플리케이션의 유사성 검출 장치 및 방법
US10033761B2 (en) System and method for monitoring falsification of content after detection of unauthorized access
CN106845223B (zh) 用于检测恶意代码的方法和装置
US9507933B2 (en) Program execution apparatus and program analysis apparatus
CN102043649A (zh) 插件下载控制方法及插件下载控制系统
CN103390130A (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
KR101902747B1 (ko) 클라이언트 측 웹 취약점 분석 방법 및 장치
CN114386032A (zh) 电力物联网设备的固件检测系统及方法
CN110869931A (zh) 电子系统漏洞评估
KR101781780B1 (ko) 다중 서버, 다중 브라우저 기반의 고속 악성 웹 사이트 탐지 시스템 및 방법
KR101345867B1 (ko) 클라우드 스토리지를 위한 악성파일 탐지 시스템 및 그 탐지 방법
JP2010134536A (ja) パタンファイル更新システム、パタンファイル更新方法、及びパタンファイル更新プログラム
KR20120070025A (ko) 웹/이메일을 통해 유포되는 악성코드 자동 관리 시스템 및 그 관리방법
CN117056918A (zh) 一种代码分析方法及相关设备
Dong et al. What did you pack in my app? a systematic analysis of commercial android packers
Kim et al. Detecting illegally-copied apps on android devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 9