KR20100049258A - 브라우저 기반 어뷰징 방지 방법 및 시스템 - Google Patents

브라우저 기반 어뷰징 방지 방법 및 시스템 Download PDF

Info

Publication number
KR20100049258A
KR20100049258A KR1020080108354A KR20080108354A KR20100049258A KR 20100049258 A KR20100049258 A KR 20100049258A KR 1020080108354 A KR1020080108354 A KR 1020080108354A KR 20080108354 A KR20080108354 A KR 20080108354A KR 20100049258 A KR20100049258 A KR 20100049258A
Authority
KR
South Korea
Prior art keywords
browser
function
extension module
module
window
Prior art date
Application number
KR1020080108354A
Other languages
English (en)
Other versions
KR101074624B1 (ko
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 KR1020080108354A priority Critical patent/KR101074624B1/ko
Priority to PCT/KR2009/006435 priority patent/WO2010062063A2/ko
Priority to US13/126,645 priority patent/US8997253B2/en
Priority to JP2011534404A priority patent/JP5554338B2/ja
Publication of KR20100049258A publication Critical patent/KR20100049258A/ko
Application granted granted Critical
Publication of KR101074624B1 publication Critical patent/KR101074624B1/ko
Priority to JP2014078105A priority patent/JP5863869B2/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

브라우저 기반 어뷰징 방지 방법 및 시스템이 개시된다. 브라우저 기반 어뷰징 방지 방법은 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계 및 상기 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계를 포함할 수 있다.
인터넷 브라우저, 브라우저 기능 확장 모듈, 어뷰징, 후크, 오브젝트, 함수

Description

브라우저 기반 어뷰징 방지 방법 및 시스템{METHOD AND SYSTEM FOR PROTECTING ABUSINNG BASED BROWSER}
본 발명은 브라우저 기반 어뷰징 방지 방법 및 시스템으로, 인터넷 브라우저에 플러그-인 형태로 연결되는 악의적인 브라우저 기능 확장 모듈을 통한 다양한 형태의 어뷰징을 대처하기 위해 브라우저 기능 확장 모듈 연결 차단, HTML 문서 획득 방지 및 HTML 문서의 구성 요소 획득을 무력화하는 브라우저 기반 어뷰징 방지 방법 및 시스템에 관한 것이다.
인터넷 브라우저를 통해 다수의 사용자들이 웹 서핑을 수행한다. 웹 서핑에서 사용자의 편의성을 위해 인터넷 브라우저는 애드-온(add-on)할 수 있는 브라우저 기능 확장 모듈을 통해 기능을 확장할 수 있다. 인터넷 브라우저의 기능을 확장하기 위한 브라우저 기능 확장 모듈은 인터넷 브라우저에 연결되어 인터넷 브라우저의 동작 이벤트나 그 외 여러 가지 정보를 얻고 조작할 수 있다. 결국, 인터넷 브라우저의 기능을 확장하기 위한 모듈이 악의적으로 사용됨으로써, 이를 이용한 데이터 또는 실행중인 프로그램을 변경, 위조 등의 해킹의 문제가 발생하고 있다.
이러한 브라우저 기능 확장 모듈은 쉽게 개발할 수 있고, 무엇보다 인터넷 브라우저의 기능을 쉽게 제어할 수 있어 악의적으로 사용할 가능성이 높을 수 있다. 이러한 악의적인 브라우저 기능 확장 모듈을 통한 어뷰징 사례는 다양하고 증가하고 있다. 예를 들면, 브라우저 기능 확장 모듈을 통해 인터넷 브라우저 기반의 키워드 전송으로 검색, 포털사이트 들의 실시간 검색어, 연관 검색어, 사이트 검색 결과 등이 조작될 수 있다(검색 어뷰징). 또한, 브라우저 기능 확장 모듈을 통해 인터넷 브라우저의 이벤트를 받아서 입력값 가로채기를 수행하여 팝업창을 띄우거나 원래 웹페이지 내용을 변경, 교체할 수 있다(광고 어뷰징). 그리고, 브라우저 기능 확장 모듈이 사용자의 정상적인 클릭인 것처럼 허위클릭을 검색, 포털 사이트에 전송할 수 있다(클릭 어뷰징). 또한, 브라우저 기능 확장 모듈이 다른 웹페이지에서 사용하는 쿠키 값을 자신의 것으로 변조할 수 있다(쿠키 어뷰징).
따라서, 인터넷 브라우저의 기능을 확장하기 위해 브라우저 기능 확장 모듈이 필요할 수 있지만, 상기 언급한 브라우저 기능 확장 모듈의 악의적인 사용에 따른 어뷰징 행위를 방지하기 위한 다양한 해결책이 절실히 요구되고 있다.
본 발명은 브라우저 기능 확장 모듈에 따른 어뷰징 행위를 방지하기 위한 브라우저 기반 어뷰징 방지 방법 및 시스템을 제공한다.
본 발명은 브라우저 오브젝트의 문서를 획득하는 함수를 가로채서 악의적인 브라우저 기능 확장 모듈이 브라우저 오브젝트를 통해 문서를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템을 제공한다.
본 발명은 브라우저 오브젝트의 문서의 구성 요소를 획득하는 함수를 가로채서 악의적인 브라우저 기능 확장 모듈이 브라우저 오브젝트를 통해 문서의 구성 요소를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템을 제공한다.
본 발명은 윈도우 메시지를 처리하는 윈도우 프로시져 함수를 가로채서 윈도우 메시지를 통해 문서를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템을 제공한다.
본 발명은 인터넷 브라우저에 연결된 브라우저 기능 확장 모듈 중 정상적인 모듈이 아닌 모듈의 연결을 차단함으로써, 어뷰징 행위를 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템을 제공한다.
본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 방법은 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적 인 접근인지 여부를 판단하는 단계 및 상기 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계를 포함할 수 있다.
본 발명의 일측면에 따르면, 상기 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계는 상기 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 새로 정의한 신규 함수로 교체하는 단계, 상기 브라우저 기능 확장 모듈을 통해 신규 함수가 호출되면, 상기 신규 함수를 호출한 대상을 확인하는 단계 및 상기 신규 함수를 호출한 대상이 안전한지 여부를 판단하는 단계를 포함할 수 있다.
본 발명의 일측면에 따르면, 상기 원본 함수를 새로 정의한 신규 함수로 교체하는 단계는 상기 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득하는 단계, 상기 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업하는 단계, 상기 원본 함수와 형식이 같은 상기 신규 함수를 선언하는 단계 및 상기 선언된 신규 함수의 주소를 상기 원본 함수의 위치에 기록하는 단계를 포함할 수 있다.
본 발명의 일측면에 따르면, 상기 원본 함수를 새로 정의한 신규 함수로 교체하는 단계는 상기 인터넷 브라우저에 대한 메인 윈도우를 결정하는 단계, 상기 메인 윈도우를 기준으로 상기 인터넷 브라우저에 대한 뷰 윈도우를 결정하는 단계 및 상기 인터넷 브라우저에 전달된 메시지를 처리하는 상기 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체하는 단계를 포함할 수 있다.
본 발명의 일측면에 따르면, 상기 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계는 상기 인터넷 브라우저의 브라우저 오브젝트를 통해 상기 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출하는 단계, 상기 추출된 인터넷 브라우저의 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈을 확인하는 단계 및 상기 확인된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 시스템은 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 어뷰징 판단부 및 상기 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 어뷰징 차단부를 포함할 수 있다.
본 발명에 따르면, 브라우저 기능 확장 모듈에 따른 어뷰징 행위를 방지하기 위한 브라우저 기반 어뷰징 방지 방법 및 시스템이 제공된다.
본 발명에 따르면, 브라우저 오브젝트의 문서를 획득하는 함수를 가로채서 악의적인 브라우저 기능 확장 모듈이 브라우저 오브젝트를 통해 문서를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템이 제공된다.
본 발명에 따르면, 브라우저 오브젝트의 문서의 구성 요소를 획득하는 함수를 가로채서 악의적인 브라우저 기능 확장 모듈이 브라우저 오브젝트를 통해 문서의 구성 요소를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스 템이 제공된다.
본 발명에 따르면, 윈도우 메시지를 처리하는 윈도우 프로시져 함수를 가로채서 윈도우 메시지를 통해 문서를 획득하는 것을 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템이 제공된다.
본 발명에 따르면, 인터넷 브라우저에 연결된 브라우저 기능 확장 모듈 중 정상적인 모듈이 아닌 모듈의 연결을 차단함으로써, 어뷰징 행위를 방지하는 브라우저 기반 어뷰징 방지 방법 및 시스템이 제공된다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 브라우저 기반 어뷰징 방지 방법은 브라우저 기반 어뷰징 방지 시스템에 의해 수행될 수 있다. 여기서, 브라우저 기반 어뷰징 방지 시스템은 어뷰징 방지 모듈로 대체될 수 있다.
도 1은 본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 방법에 대한 전체적인 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 인터넷 브라우징은 웹서버(101)와 클라이언트(102) 간의 모델로 구현될 수 있다. 여기서, 인터넷 브라우저(103)는 문서를 해석하여 클라이언트(102)에게 제공하는 역할을 수행할 수 있다.
예를 들어, 클라이언트(102)는 웹서버(101)에 접속하여 정보를 요청할 수 있고, 서버(101)는 요청된 정보를 검색하여 클라이언트(102)에 전달할 수 있다. 이 때, 인터넷 브라우저(103)를 통해 서버(101)가 전달한 정보를 사용자에게 제공할 수 있다.
이 때, 인터넷 브라우저(103)의 기능을 확장시키기 위해 브라우저 기능 확장 모듈이 사용될 수 있다. 여기서, 브라우저 기능 확장 모듈은 인터넷 브라우저에 Add-On 형태로 연결되어 메모리 상에 로딩되는 프로그램일 수 있다. 일례로, 인터넷 브라우저(103)가 인터넷 익스플로러(Internet Explorer)인 경우, 브라우저 기능 확장 모듈은 브라우저 헬퍼 오브젝트(BHO: Browser Helper Object)일 수 있다. 인터넷 브라우저(103)가 동작하면, 인터넷 브라우저(103)는 연결된 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)을 메모리 상에 로딩할 수 있다. 이 때, 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)은 인터넷 브라우저(103)와 동일한 메모리에 로딩될 수 있다. 이러한 브라우저 기능 확장 모듈은 다른 인터넷 브라우저에도 적용될 수 있다.
예를 들어, 인터넷 브라우저(103)가 인터넷 익스플로러인 경우, 브라우저 기능 확장 모듈은 인터넷 익스플로러 자체를 나타내는 오브젝트인 IWebBrowser2를 인터넷 브라우저(103)로 전달받을 수 있다. 그러면, 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)은 IWebBrowser2를 통해 인터넷 브라우저(103)의 전형적인 이벤트를 감지하고, 브라우저에서 발생하는 메세지들을 감시할 수 있다. 이러한, 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)은 인터넷 브라우저(103)에 연결되어 인터넷 브라우저(103)를 제어할 수 있으며, 특히 손쉽게 개발될 수 있다. 한편 으로는, 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)은 악의적인 목적으로 개발될 수 있기 때문에, 브라우저 기능 확장 모듈의 강력한 기능으로 인해 다양한 형태의 어뷰징이 이루어지고 있다.
본 발명의 일실시예에 따른 어뷰징 방지 모듈(105)은 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)과 같이 Add-on 형태의 프로그램으로 인터넷 브라우저(103)에 연결될 수 있다. 어뷰징 방지 모듈(105)은 악의적인 브라우저 기능 확장 모듈의 어뷰징 행위를 차단할 수 있다.
일례로, 어뷰징 방지 모듈(105)은 브라우저 기능 확장 모듈(104-1, 104-2, 104-3)의 어뷰징 행위를 다음과 같이 차단할 수 있다.
단계(S101)에서, 어뷰징 방지 모듈(105)은 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단할 수 있다. 일례로, 브라우저 기능 확장 모듈에 기초한 접근은 브라우저 기능 확장 모듈이 인터넷 브라우저에 연결하여 인터넷 브라우저를 제어하려는 접근을 포함할 수 있다. 또는, 브라우저 기능 확장 모듈에 기초한 접근은 브라우저 기능 확장 모듈이 함수 호출 또는 메시지 전달을 통해 인터넷 브라우저의 데이터를 획득하려는 접근을 포함할 수 있다. 상기 언급한 일례뿐만 아니라, 브라우저 기능 확장 모듈에 기초한 접근은 다양할 수 있다.
단계(S102)에서, 어뷰징 방지 모듈(105)은 브라우저 기능 확장 모듈에 기초한 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단할 수 있다. 즉, 어뷰징 방지 모듈(105)은 악의적인 브라우저 기능 확 장 모듈이 인터넷 브라우저에 연결하는 것을 차단하여 어뷰징을 방지하거나 또는 인터넷 브라우저의 데이터를 획득하는 것을 차단하여 어뷰징을 방지할 수 있다.
도 2 내지 도 9에서는 브라우저 기능 확장 모듈에 기초하여 여러 가지 형태의 어뷰징을 방지하는 기술에 대해서 설명된다. 일례로, 본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방법은 어뷰징 방지 모듈에 의해 구현될 수 있다.
여기서, 어뷰징 방지 모듈도 브라우저 기능 확장 모듈일 수 있다. 즉, 어뷰징 방지 모듈은 인터넷 브라우저에 연결하여 어뷰징 행위를 하는 악의적인 브라우저 기능 확장 모듈의 접근을 차단할 수 있다. 이하에서, 브라우저 기반 어뷰징 방법은 어뷰징 방지 모듈을 통해 설명된다.
도 2는 본 발명의 일실시예에 있어서, 함수 교체를 통해 브라우저 기능 확장 모듈에 의한 접근이 악의적인 접근인지 판단하는 과정을 도시한 도면이다.
구체적으로, 도 2는 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 미리 가로채어 악의적인 브라우저 기능 확장 모듈이 원본 함수를 호출하는 것을 방지하는 방법을 설명한다. 여기서, 원본 함수는 인터넷 브라우저를 통해 표시되는 문서를 획득하거나 또는 문서의 구성 요소를 획득할 수 있는 함수를 포함할 수 있다. 즉, 원본 함수는 인터넷 브라우저에 대한 HTML 객체를 획득하는 함수일 수 있다.
도 2를 참고하면, 브라우저 기능 확장 모듈에 기초한 접근이 악의적인 접근인지 판단하는 단계(S101)는 단계(S201), 단계(S202) 및 단계(S203)를 포함할 수 있다.
단계(S201)에서, 어뷰징 방지 모듈은 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 새로 정의한 신규 함수로 교체할 수 있다. 여기서, 어뷰징 방지 모듈은 인터넷 브라우저의 데이터를 획득할 수 있는 함수에 대한 원본 함수를 후크 함수인 신규 함수로 교체함으로써, 원본 함수를 가로챌 수 있다. 이 때, 후크 함수는 원본 함수와 동일한 형식을 나타낼 수 있다.
다시 말해서, 어뷰징 방지 모듈은 미리 원본 함수를 가로채어 악의적인 브라우저 기능 확장 모듈에 의한 원본 함수의 호출을 사전에 방지할 수 있다. 그러면, 브라우저 기능 확장 모듈은 원본 함수를 호출하려는 의도를 가졌지만, 어뷰징 방지 모듈에 의해 교체된 후크 함수를 호출하게 된다. 원본 함수를 후크 함수인 신규 함수로 교체하는 구체적인 과정은 도 3 및 도 5에서 설명된다.
단계(S202)에서, 브라우저 기능 확장 모듈을 통해 신규 함수가 호출되면, 어뷰징 방지 모듈은 상기 신규 함수를 호출한 대상을 확인할 수 있다. 일례로, 브라우저 기능 확장 모듈이 후크 함수인 신규 함수를 호출한 경우, 어뷰징 방지 모듈은 신규 함수를 호출한 대상인 브라우저 기능 확장 모듈이 어떠한 모듈인지 확인할 수 있다.
일례로, 브라우저 기능 확장 모듈은 신규 함수가 리턴될 주소에 위치한 브라우저 기능 확장 모듈의 정보를 이용하여 신규 함수를 호출한 브라우저 기능 확장 모듈을 확인할 수 있다.
단계(S201)에서, 어뷰징 방지 모듈은 신규 함수를 호출한 대상이 안전한지 여부를 판단할 수 있다.
일례로, 신규 함수를 호출한 대상이 브라우저 기능 확장 모듈인 경우, 어뷰징 방지 모듈은 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트를 이용하여 브라우저 기능 확장 모듈이 안전한 지 여부를 판단할 수 있다. 이 때, 신규 함수를 호출한 브라우저 기능 확장 모듈이 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트에 존재하는 경우, 어뷰징 방지 모듈은 브라우저 기능 확장 모듈을 안전한 모듈로 판단할 수 있다.
도 3은 본 발명의 일실시예에 있어서, 문서 및 문서의 구성요소를 획득하는 함수를 대체하는 과정을 도시한 도면이다.
도 3은 인터넷 브라우저가 HTML 방식의 문서를 사용자에게 제공할 때, 어뷰징 모듈이 문서 또는 문서의 구성 요소를 미리 가로채어 상기 문서를 변조, 수정하는 어뷰징을 방지하는 과정을 나타내고 있다. 이하에서는 HTML 방식의 문서에 대해서 설명되었지만, 문서는 HTML 외에 다른 형식의 언어로 구성된 것을 포함할 수 있다.
도 3을 참고하면, 원본 함수를 신규 함수로 교체하는 단계(S201)는 단계(S301), 단계(S303), 단계(S303) 및 단계(S304)를 포함할 수 있다.
단계(S301)에서, 어뷰징 방지 모듈은 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득할 수 있다. 일례로, 어뷰징 방지 모듈은 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 가 저장된 가상 펑션 테이블(virtual function table)을 획득할 수 있다.
이 때, 브라우저 오브젝트는 미리 빌드된 바이너리 형태인 COM(component object model) 기반의 오브젝트를 포함할 수 있다. COM 기반의 오브젝트는 미리 빌드(build)되어 바이너리 형태로 된 오브젝트를 호출하고 사용하는 것을 보장해줄 수 있으며, 오브젝트의 재사용도 보장할 수 있다.
예를 들어, 인터넷 브라우저가 인터넷 익스플로러이고, 브라우저 오브젝트가 IWebBrowser2 오브젝트인 경우, 브라우저 기반 어뷰징 방지 방법은 HTML 문서를 획득하는 것을 차단하기 위한 것이라고 할 수 있다. IWebBrowser2 오브젝트는 인터넷 브라우저마다 가지고 있는 고유한 오브젝트일 수 있다. 즉, IWebBrowser2 오브젝트는 인터넷 브라우저 자체를 나타내는 것이라고 할 수 있다. 이 때, IWebBrowser2 오브젝트는 특정 웹페이지를 내비게이터하도록 인터넷 브라우저에 명령을 내림으로써, 인터넷 브라우저를 제어할 수 있다. 그리고, IWebBrowser2 오브젝트는 현재 웹페이지의 HTML 문서를 획득하여 HTML 문서 내용을 참고하거나 수정할 수 있다.
이러한 IWebBrowser2 오브젝트는 인터넷 브라우저가 로드된 브라우저 기능 확장 모듈에게 제공하는 오브젝트이다. 결국, 악의적인 목적의 브라우저 기능 확장 모듈(어뷰징 모듈)은 인터넷 브라우저로부터 IWebBrowser2 오브젝트를 제공받음으로써 인터넷 브라우저가 보여주는 현재 웹사이트의 HTML 문서를 얻어 조작하거나 변조할 수 있다. 결국, 어뷰징 방지 모듈은 어뷰징 모듈이 IWebBrowser2 오브젝트를 통해 HTML 문서를 획득하는 것을 방지하는 것이라고 할 수 있다.
다른 일례로, 어뷰징 모듈이 얻고자 하는 브라우저 오브젝트가 HTML 인터페이스 오브젝트인 경우, 어뷰징 방지 모듈은 HTML 문서의 구성 요소를 획득하는 것 을 차단하기 위한 것이라고 할 수 있다. 다만, HTML 문서의 구성 요소를 획득하는 것이 모두 악의적인 목적이라고 할 수 없기 때문에 어뷰징 방지 모듈은 어뷰징 사례와 관련된 특정 함수만 가로챌 수 있다.
예를 들어, 인터넷 익스플로러(Internet Explorer)에 대한 IHTMLInputElement 오브젝트의 get_value함수는 포털 사이트 검색창의 검색어를 획득함으로써 검색자가 입력하는 검색어를 변경하는 어뷰징에 사용될 수 있다. 또한, IHTMLDocument3 오브젝트의 getElementByName과 getElementsByTagName 함수는 HTML 문서의 특정 구성 요소를 획득하여 웹페이지를 변경하는 어뷰징에 사용될 수 있다. 그리고, IHTMLDocument3 오브젝트의 get_Images 함수는 HTML 문서의 이미지를 획득하여 다른 이미지로 변경하는 어뷰징에 사용될 수 있다. 이러한 어뷰징 에 사용되는 문서의 구성 요소를 획득하는 함수의 종류는 제한이 없다.
이 때, COM 기반의 오브젝트는 가상 펑션 테이블을 가질 수 있다. 가상 펑션 테이블은 브라우저 오브젝트의 함수들에 대한 주소를 저장할 수 있다. 구체적으로, 가상 펑션 테이블은 오브젝트에서 외부로 제공하는 함수들에 대한 주소가 저장될 수 있다. 이 때, COM 기반의 오브젝트가 제공하는 함수의 주소는 일정한 순서로 가상 펑션 테이블에 저장될 수 있다. 만약, COM 기반의 오브젝트의 함수를 호출하기 위해 브라우저 기능 확장 모듈은 가상 펑션 테이블을 통해 확인한 해당 함수의 주소를 이용하여 함수를 호출할 수 있다.
단계(S302)에서, 어뷰징 방지 모듈은 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업할 수 있다. 일례로, 어뷰징 방지 모듈은 가상 펑션 테 이블을 이용하여 가로채고자 하는 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업할 수 있다.
이 때, 원본 함수는 인터넷 브라우저를 통해 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수 중 어느 하나일 수 있다. 일례로, 문서를 획득하는 함수는 IWebBrowser2 오브젝트의 get_Document 함수일 수 있다. get_Document 함수는 현재 인터넷 브라우저의 HTML 문서를 획득하여 어뷰징에 사용될 수 있다. 따라서, 브라우저 기반 어뷰징 방지 방법은 get_Document 함수의 호출을 방지하기 위해 get_Document 함수를 후킹하여 가로채는 방법에 해당한다.
또한, 일례로, 문서의 특정 구성 요소를 획득하는 함수는 IHTMLInputElement 오브젝트의 get_value함수, IHTMLDocument2 오브젝트의 getElementByName과 getElementsByTagName 함수 또는 IHTMLDocument2 오브젝트의 get_Images 함수일 수 있다.
COM 기반 오브젝트는 제공하는 함수의 순서가 일정하기 때문에, 상기 함수의 순서에 따라 가상 펑션 테이블의 원본 함수의 위치도 결정될 수 있다. 예를 들어, OLEView와 같은 프로그램을 통해 가상 펑션 테이블 상의 IWebBrowser2 오브젝트의 함수 순서가 확인될 수 있다.
원본 함수의 주소가 확인되면, 어뷰징 방지 모듈은 가상 펑션 테이블 상의 원본 함수의 위치에 있는 주소를 따로 저장하여 백업할 수 있다. 즉, 원본 함수가 특정 브라우저 기능 확장 모듈에 의해 호출되면 어뷰징 방지 모듈은 원본 함수의 호출을 무조건 차단하지 않는다. 즉, 원본 함수를 호출한 브라우저 기능 확장 모 듈이 안전한 모듈인 경우, 원본 함수를 호출하기 위해 어뷰징 방지 모듈은 원본 함수의 주소를 따로 저장할 수 있다.
단계(S303)에서, 어뷰징 방지 모듈은 원본 함수와 형식이 같은 신규 함수를 선언할 수 있다. 이 때, 신규 함수는 원본 함수를 가로채기 위한 후크 함수일 수 있다.
단계(S304)에서, 어뷰징 방지 모듈은 선언된 신규 함수의 주소를 가상 펑션 테이블의 원본 함수의 위치에 기록할 수 있다. 즉, 어뷰징 방지 모듈은 원본 함수를 미리 가로채어 가상 펑션 테이블의 원본 함수의 위치에 후크 함수의 주소를 기록함으로써, 브라우저 기능 확장 모듈이 원본 함수를 호출하는 경우 후크 함수를 호출하도록 유도할 수 있다.
도 4는 본 발명의 일실시예에 있어서, 문서 및 문서의 구성요소를 획득하는 원본 함수에 대한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 4는 브라우저 오브젝트(401)에 대한 가상 펑션 테이블(402)을 도시하고 있다. 이 때, 어뷰징 방지 모듈(403)은 본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 방법을 수행할 수 있다. 그리고, 브라우저 기능 확장 모듈(404)은 어뷰징 방지 모듈(403)과 다른 모듈을 의미한다. 여기서, 어뷰징 방지 모듈(403)은 브라우저 기능을 확장하는 모듈의 일종이다.
어뷰징 방지 모듈(403)은 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득할 수 있다. 이 때, 어뷰징 방지 모듈(403)은 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소를 저장하는 가상 펑션 테이 블(402)을 획득할 수 있다. 일례로, 브라우저 오브젝트(401)는 COM 기반의 오브젝트일 수 있다. COM 기반의 오브젝트에 대해 가상 펑션 테이블(402)에서의 함수의 순서가 일정할 수 있다. 즉, 가상 펑션 테이블(402)에서의 함수 각각의 위치는 일정할 수 있다.
어뷰징 방지 모듈(403)은 가상 펑션 테이블(402)을 참고하여 원본 함수의 위치에 대응하는 주소를 찾을 수 있다. 이 때, 원본 함수는 어뷰징 방지 모듈(403)이 가로채고자 하는 함수로서, 인터넷 브라우저를 통해 표시되는 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수를 포함할 수 있다.
어뷰징 방지 모듈(403)은 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업할 수 있다. 정상적인 모듈이 원본 함수를 호출할 때, 어뷰징 방지 모듈(403)은 백업한 원본 함수의 주소를 통해 원본 함수를 호출할 수 있다.
어뷰징 방지 모듈(403)은 원본 함수와 형식이 같은 신규 함수를 선언하고, 선언된 신규 함수의 주소를 가상 펑션 테이블(402)의 원본 함수의 위치에 기록할 수 있다. 이 때, 신규 함수는 원본 함수를 가로채기 위한 후크 함수를 의미할 수 있다.
결론적으로, 도 4에서 볼 수 있듯이, 어뷰징 방지 모듈(403)은 가상 펑션 테이블(402) 내에서 원본 함수의 위치에서 원본 함수의 주소를 후크 함수의 주소로 교체할 수 있다.
이 후, 브라우저 기능 확장 모듈(404)은 가상 펑션 테이블(402)의 원본 함수의 위치에 기록된 후크 함수의 주소를 참고하여 후크 함수를 호출할 수 있다. 이 때, 브라우저 기능 확장 모듈(404)의 목적은 원본 함수를 호출하는 것이다. 그러나, 이미 어뷰징 방지 모듈(403)에 의해 원본 함수가 후크 함수로 교체되어 있기 때문에 브라우저 기능 확장 모듈(404)은 원본 함수의 위치에 기록된 후크 함수의 주소에 따라 후크 함수를 호출할 수 있다.
그러면, 어뷰징 방지 모듈(403)은 후크 함수를 호출한 브라우저기 기능 확장 모듈을 확인할 수 있다. 이 때, 후크 함수가 호출되었을 때, 어뷰징 방지 모듈(403)은 후크 함수 안에서 후크 함수가 리턴될 주소에 위치한 브라우저 기능 확장 모듈의 정보를 이용하여 후크 함수를 호출한 브라우저 기능 확장 모듈을 확인할 수 있다.
그리고, 어뷰징 방지 모듈(403)은 후크 함수를 호출한 모듈이 정상적인 모듈인지 판단할 수 있다. 이 때, 어뷰징 방지 모듈(403)은 인터넷 브라우저에 사용되는 정상적인 모듈에 대한 리스트인 white list에 후크 함수를 호출한 모듈이 존재하는 경우, 상기 모듈을 정상적인 모듈로 판단할 수 있다.
만약, 후크 함수를 호출한 브라우저 기능 확장 모듈(404)이 정상적인 모듈인 경우, 어뷰징 방지 모듈(403)은 백업한 원본 함수를 호출할 수 있다. 여기서, 원본 함수는 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수로, 인터넷 브라우저의 데이터를 획득할 수 있는 함수를 의미할 수 있다. 반대로, 후크 함수를 호출한 브라우저 기능 확장 모듈(404)이 정상적인 모듈이 아닌 악의적인 모듈인 경우, 어뷰징 방지 모듈(403)은 미리 백업한 원본 함수에 대한 호출을 차단할 수 있다. 결론적으로, 어뷰징 방지 모듈(403)은 악의적인 브라우저 기능 확장 모듈(404)이 신규 함수를 호출하려는 접근을 차단함으로써, 어뷰징 행위를 방지할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 윈도우 메시지를 처리하는 원본 윈도우 프로시져 함수를 대체하는 과정을 도시한 도면이다.
브라우저 기능 확장 모듈을 통해 문서를 획득하기 위한 오브젝트의 윈도우 메세지가 인터넷 브라우저에 전송되면, 인터넷 브라우저는 현재 보여지고 있는 HTML 문서(HTML 객체)를 제공할 수 있다. 즉, 도 5에 따른 브라우저 기반 어뷰징 방지 방법은 윈도우 메세지를 통해 문서를 획득하여 이를 수정, 변경하는 어뷰징을 방지할 수 있다.
도 5에 도시된 것과 같이 원본 함수를 신규 함수로 교체하는 단계(S201)는 단계(S501), 단계(S502) 및 단계(S503)를 포함할 수 있다.
단계(S501)에서, 어뷰징 방지 모듈은 인터넷 브라우저에 대한 메인 윈도우를 결정할 수 있다. 일례로, 어뷰징 방지 모듈은 인터넷 브라우저의 브라우저 오브젝트가 제공하는 함수를 호출하여 메인 윈도우를 결정할 수 있다. 예를 들어, 어뷰징 방지 모듈은 IWebBrowser2 오브젝트 또는 CreateWindowEx함수의 API-Hook를 통해서 인터넷 브라우저에 대한 메인 윈도우의 핸들(handle)을 구할 수 있다. 여기서, 브라우저 오브젝트는 인터넷 브라우저가 브라우저 기능 확장 모듈을 로드할 때, 인터넷 브라우저가 브라우저 기능 확장 모듈에 제공하는 오브젝트일 수 있다. 그리고, 메인 윈도우의 핸들은 윈도우를 식별하기 위한 번호를 의미할 수 있다.
단계(S502)에서, 어뷰징 방지 모듈은 메인 윈도우를 기준으로 인터넷 브라 우저에 대한 뷰 윈도우를 결정할 수 있다. 일례로, 어뷰징 방지 모듈은 인터넷 브라우저의 버전에 따른 윈도우 구조를 참고하여 뷰 윈도우를 결정할 수 있다. 인터넷 브라우저의 윈도우 구조는 버전별로 다른 형태를 나타내기 때문에, 어뷰징 방지 모듈은 버전에 따른 인터넷 브라우저의 윈도우 구조를 조사할 수 있다.
이 때, 뷰 윈도우는 인터넷 브라우저에서 실제 페이지가 보이는 위치의 윈도우를 의미한다. 즉, 뷰 윈도우는 인터넷 브라우저 상에 존재하는 다수의 윈도우 중 활성화되어 사용자에게 실제로 보여지는 윈도우를 의미할 수 있다.
단계(S503)에서, 어뷰징 방지 모듈은 인터넷 브라우저에 전달된 메시지를 처리하는 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체할 수 있다. 예를 들어, 어뷰징 방지 모듈은 SetWindowLong함수를 통해 윈도우 프로시져 함수를 교체하는 과정을 수행할 수 있다.
일례로, 신규 윈도우 프로시져 함수로 교체하는 과정은 뷰 윈도우의 원본 윈도우 프로시져 함수가 변경되었는 지 여부를 확인하는 과정, 원본 윈도우 프로시져 함수가 변경되지 않은 경우, 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 저장하여 백업하는 과정 및 원본 윈도우 프로시져 함수의 주소를 상기 신규 윈도우 프로시져 함수의 주소로 변경하는 과정을 포함할 수 있다.
일례로, 뷰 윈도우의 원본 윈도우 프로시져 함수가 변경되었는 지 여부를 확인하는 과정은 다음과 같은 과정으로 이루어 질 수 있다. 먼저, 어뷰징 방지 모듈은 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 구한다. 그리고, 어뷰징 방지 모듈은 해당 프로시져 함수가 위치한 브라우저 기능 확장 모듈의 경로를 검색 할 수 있다. 이 때, 어뷰징 방지 모듈은 프로시져 함수가 어떤 모듈에 위치하고 있는 지를 메모리를 통해 확인할 수 있다.
어뷰징 방지 모듈은 검색한 브라우저 기능 확장 모듈의 경로를 기준으로, 브라우저 기능 확장 모듈을 확인할 수 있다. 이 때, 확인한 브라우저 기능 확장 모듈이 인터넷 브라우저와 관련된 모듈(예를 들면, 인터넷 브라우저가 인터넷 익스플로러인 경우, IEFrame.dll, mshtml.dll 등을 포함함)이 아닌 경우, 어뷰징 방지 모듈은 다른 브라우저 기능 확장 모듈에 의해 뷰 윈도우의 원본 윈도우 프로시져 함수가 변경되었다고 판단할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 윈도우 메세지를 처리하는 원본 함수에 대한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 6을 참고하면, 인터넷 브라우저는 메인 윈도우(601)에 윈도우(605)를 포함할 수 있다. 윈도우(605)는 복수일 수 있다. 그리고, 윈도우(605)마다 윈도우 프로시져 함수(606)가 존재할 수 있다. 윈도우(605) 중 사용자가 인터넷 브라우저를 통해 현재 보여지는 윈도우가 뷰 윈도우(602)로 정의될 수 있다. 윈도우 메세지(604)가 윈도우에 전달될 경우, 윈도우 프로시져 함수는 자동으로 호출되어 메세지를 처리할 수 있다.
어뷰징 방지 모듈은 인터넷 브라우저에 대한 메인 윈도우를 결정할 수 있다. 이 때, 어뷰징 방지 모듈은 인터넷 브라우저의 브라우저 오브젝트가 제공하는 함수를 이용하여 메인 윈도우를 결정할 수 있다. 그리고, 어뷰징 방지 모듈은 메인 윈도우(601)를 기준으로 인터넷 브라우저에 대한 뷰 윈도우(602)를 결정할 수 있다. 이 때, 어뷰징 방지 모듈은 인터넷 브라우저의 버전에 따른 윈도우 구조를 참고하여 뷰 윈도우를 결정할 수 있다.
그러면, 어뷰징 방지 모듈은 뷰 윈도우(602)의 원본 윈도우 프로시져 함수(603)를 신규 윈도우 프로시져 함수로 교체할 수 있다. 이 때, 원본 윈도우 프로시져 함수(603)의 주소는 호출을 위해 따로 저장될 수 있다. 즉, 문서를 획득하기 위한 오브젝트에 대한 윈도우 메세지(604)가 윈도우에 전달될 경우, 이를 차단할 필요가 있기 때문에, 어뷰징 방지 모듈은 원본 윈도우 프로시져 함수(603)를 윈도우 메세지(604)를 후킹할 수 있는 신규 윈도우 프로시져 함수로 교체할 수 있다.
이 때, 어뷰징 방지 모듈은 뷰 윈도우(602)의 원본 윈도우 프로시져 함수(603)가 변경되었는 지 여부를 확인하고, 변경되지 않으면 원본 윈도우 프로시져 함수(603)의 주소를 저장하여 백업할 수 있다. 그러면, 어뷰징 방지 모듈은 원본 윈도우 프로시져 함수(603)의 주소를 신규 윈도우 프로시져 함수의 주소로 변경할 수 있다. 이런 과정을 통해 어뷰징 방지 모듈은 원본 윈도우 프로시져 함수(603)를 미리 가로챌 수 있다.
인터넷 브라우저는 윈도우 프로시져 함수를 통해 인터넷 브라우저에 전달된 윈도우 메시지(604)를 처리할 수 있다. 이 때, 뷰 윈도우(602)에 대한 윈도우 메시지(604)가 전달되면, 원본 윈도우 프로시져 함수(603)가 호출되지 않고, 교체된 신규 윈도우 프로시져 함수는 자동으로 호출될 수 있다.
그런 후, 뷰 윈도우에 대한 윈도우 메시지(604)가 발생하면, 어뷰징 방지 모듈은 윈도우 메시지(604)가 문서를 획득하기 위한 오브젝트의 메세지인지 판단할 수 있다.
일례로, 어뷰징 방지 모듈은 문서를 획득하기 위한 오브젝트의 윈도우 메세지(604)에 대한 메세지값을 확인하는 과정 및 발생된 윈도우 메세지(604)의 메세지값과 상기 확인된 오브젝트의 메세지에 대한 메세지값을 비교하는 과정을 포함할 수 있다.
이 때, 문서를 획득하기 위한 오브젝트에 대한 메세지는 윈도우의 기본 메세지가 아니기 때문에, 어뷰징 방지 모듈은 문서를 획득하기 위한 오브젝트에 대한 메세지를 사용자 정의 메세지로 등록하여 생성할 수 있다. 이미 문서를 획득하기 위한 오브젝트에 대한 메세지가 생성된 경우, 어뷰징 방지 모듈은 윈도우 메시지(604)의 메세지값을 바로 확인할 수 있다. 그리고, 생성 전이라면 어뷰징 방지 모듈은 문서를 획득하기 위한 오브젝트에 대한 메세지를 생성하여 메세지값을 얻을 수 있다. 예를 들어, 문서를 획득하기 위한 오브젝트에 대한 메세지는 RegisterWindowMessage 함수를 통해 생성될 수 있다.
만약, 윈도우 메시지(604)가 문서를 획득하기 위한 오브젝트에 대한 메세지인 경우, 어뷰징 방지 모듈은 윈도우 메세지에 대한 처리 과정을 종료할 수 있다. 그리고, 생성된 윈도우 메세지가 문서를 획득하기 위한 오브젝트에 대한 메세지가 아닌 경우, 어뷰징 방지 모듈은 원본 윈도우 프로시져 함수를 호출할 수 있다.
본 발명의 다른 일실시예에 따르면, 도 3 및 도 4에서 설명된 발명은 키 메시지(Key Message)를 통한 어뷰징 행위에도 적용될 수 있다. 즉, 악의적인 브라우저 기능 확장 모듈은 인터넷 브라우저의 키 메시지를 획득하여 사용자가 입력한 검 색어나 ID 등의 중요한 정보인 키 메세지를 가로챌 수 있다.
이러한 행위를 방지하기 위해 어뷰징 방지 모듈은 메시지 후킹을 설정하거나 또는 윈도우 프로시져를 교체하는 함수에 대한 후킹을 통해 제어함으로써, 키 메시지 획득을 방지할 수 있다. 이 때, 제어하는 것은 정상적인 모듈의 리스트를 참고하여 해당 함수를 호출한 브라우저 기능 확장 모듈이 정상적인 지 여부에 따라 결정될 수 있다.
도 7은 본 발명의 일실시예에 있어서, 연결 포인트를 통한 브라우저 기능 확장 모듈에 의한 접근이 악의적인 접근인지 판단하는 과정을 도시한 도면이다.
도 7에 따른 어뷰징 방지 방법은 인터넷 브라우저에 접근하기 위한 악의적인 브라우저 기능 확장 모듈의 연결 자체를 차단하여 어뷰징을 방지할 수 있다. 앞에서 이미 언급했듯이, 브라우저 기능 확장 모듈은 인터넷 브라우저에 대한 Add-On 프로그램일 수 있기 때문에, 인터넷 브라우저가 실행되면 자동으로 로딩될 수 있다. 그리고, 브라우저 기능 확장 모듈은 인터넷 브라우저로부터 브라우저 오브젝트(예를 들어, 인터넷 익스플로러인 경우 IWebBrowser2 오브젝트)를 전달받아 HTML 문서를 조작, 변경할 수 있기 때문에, 브라우저 기반 어뷰징 방지 방법은 악의적인 목적으로 연결된 브라우저 기능 확장 모듈을 차단하여 무력화할 수 있다. 일례로, 어뷰징 방지 모듈은 주기적으로 악의적인 브라우저 기능 확장 모듈을 검색하여 연결을 차단할 수 있다.
도 7을 참고하면, 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계(S101)는 단 계(S701), 단계(S702) 및 단계(S703)를 포함할 수 있다.
단계(S701)에서, 어뷰징 방지 모듈은 인터넷 브라우저의 브라우저 오브젝트를 통해 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출할 수 있다.
이 때, 연결 포인트는 브라우저 기능 확장 모듈이 인터넷 브라우저에 연결할 수 있는 포인트를 의미한다. 인터넷 브라우저는 복수의 연결 포인트를 가질 수 있으며, 연결 포인트마다 다른 정보와 이벤트를 제공할 수 있다. 그리고, 연결 포인트 컨테이너는 연결 포인트를 가지고 있는 연결 포인트 오브젝트를 가질 수 있다. 연결 포인트 오브젝트는 자신의 아이디를 가질 수 있으며, 인터넷 브라우저의 이벤트와 관련된 아이디와의 비교를 통해 연결 포인트가 이벤트와 관련된 연결 포인트인지를 확인할 수 있다. 각각의 연결 포인트는 자신에게 연결된 브라우저 기능 확장 모듈의 리스트를 포함할 수 있다.
단계(S702)에서, 어뷰징 방지 모듈은 추출된 인터넷 브라우저의 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈을 확인할 수 있다.
일례로, 어뷰징 방지 모듈은 브라우저 기능 확장 모듈의 주소에 따라 연결 포인트와 브라우저 기능 확장 모듈 간의 경로를 결정하여 상기 연결 포인트와 연결된 브라우저 기능 확장 모듈을 확인할 수 있다. 구체적으로, 어뷰징 방지 모듈은 브라우저 기능 확장 모듈의 주소값을 이용하여 메모리 상에 로딩된 DLL의 위치에 존재하는 브라우저 기능 확장 모듈을 확인할 수 있다.
단계(S703)에서, 어뷰징 방지 모듈은 확인된 브라우저 기능 확장 모듈이 안 전한 지 여부를 판단할 수 있다.
일례로, 브라우저 기능 확장 모듈은 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트(예를 들어, White list)를 이용하여 상기 브라우저 기능 확장 모듈이 안전한 지 여부를 판단할 수 있다. 즉, 확인된 브라우저 기능 확장 모듈이 white list에 존재하는 경우, 어뷰징 방지 모듈은 상기 브라우저 기능 확장 모듈을 안전한 모듈로 판단할 수 있다.
그리고, 확인된 브라우저 기능 확장 모듈이 white list에 존재하지 않는 경우, 어뷰징 방지 모듈은 상기 브라우저 기능 확장 모듈을 악의적인 모듈로 판단할 수 있다. 그러면, 어뷰징 방지 모듈은 인터넷 브라우저에 대한 악의적인 모듈의 연결을 차단할 수 있다. 일례로, 어뷰징 방지 모듈은 연결 포인트에 연결된 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 연결 포인트의 연결 순서값을 참조하여 브라우저 기능 확장 모듈의 연결을 차단할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 인터넷 브라우저의 연결 포인트를 추출하는 과정을 도시한 도면이다.
도 8을 참고하면, 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출하는 단계(S701)는 단계(S801), 단계(S802) 및 단계(S803)를 포함할 수 있다.
단계(S801)에서, 어뷰징 방지 모듈은 브라우저 오브젝트를 이용하여 연결 포인트 컨테이너를 획득할 수 있다. 연결 포인트 컨테이너는 인터넷 브라우저와 관련된 연결 포인트를 포함할 수 있다. 이 때, 연결 포인트 컨테이너는 연결 포인트 들을 직접 가지고 있는 것이 아니라, 연결 포인트를 가지고 있는 오브젝트를 포함할 수 있다. 인터넷 브라우저의 연결 포인트 각각은 다른 정보와 이벤트를 제공할 수 있다. 결국, 브라우저 기능 확장 모듈은 원하는 이벤트를 획득하기 위해 정확한 연결 포인트에 연결해야 한다.
단계(S802)에서, 어뷰징 방지 모듈은 연결 포인트 컨테이너에 포함된 연결 포인트 리스트를 확인할 수 있다. 일례로, 어뷰징 방지 모듈은 연결 포인트 컨테이너의 오브젝트가 제공하는 함수를 호출하여 연결 포인트 오브젝트를 구할 수 있다. 그리고, 어뷰징 방지 모듈은 연결 포인트 오브젝트가 제공하는 함수를 호출하여 연결 포인트 리스트를 확인할 수 있다.
단계(S803)에서, 어뷰징 방지 모듈은 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 이용하여 연결 포인트 리스트로부터 이벤트와 관련된 연결 포인트를 검색할 수 있다. 이 때, 어뷰징 방지 모듈은 미리 알고 있는 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 상기 연결 포인트 리스트와 비교하여 연결 포인트를 검색할 수 있다.
결국, 어뷰징 방지 모듈은 검색된 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하여, 악의적인 브라우저 기능 확장 모듈의 연결을 차단할 수 있다.
도 9는 본 발명의 일실시예에 있어서, 연결 포인트에 연결된 악의적인 브라우저 기능 확장 모듈을 통한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 9를 참고하면, 인터넷 브라우저(901)에 연결되는 복수의 브라우저 기능 확장 모듈(909-1~909-6)이 도시된다. 어뷰징 방지 모듈도 브라우저 기능 확장 모듈의 한 종류에 속할 수 있다. 어뷰징 방지 모듈은 인터넷 브라우저(901)의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출할 수 있다.
일례로, 어뷰징 방지 모듈은 브라우저 오브젝트를 이용하여 연결 포인트 컨테이너(902)를 획득하는 할 수 있다. 그리고, 어뷰징 방지 모듈은 연결 포인트 컨테이너(902)에 포함된 연결 포인트 리스트(903~906)를 확인할 수 있다. 그런 후, 어뷰징 방지 모듈은 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 이용하여 연결 포인트 리스트로(903~906)부터 이벤트와 관련된 연결 포인트(904, 906)를 검색할 수 있다.
도 9를 참고하면, 어뷰징 방지 모듈은 인터넷 브라우저(901)의 이벤트와 관련된 연결 포인트 2(904), 연결 포인트 4(906)를 추출할 수 있다. 이 때, 연결 포인트(903~906)는 연결 포인트 컨테이너(902)에 포함될 수 있다. 연결 포인트 컨테이너는 브라우저 오브젝트에 의해 결정될 수 있다.
인터넷 브라우저(901)의 이벤트와 관련된 연결 포인트 2(904) 및 연결 포인트4(906)는 각각 연결된 브라우저 기능 확장 모듈을 확인할 수 있다. 그러면, 어뷰징 방지 모듈은 인터넷 브라우저(901)의 이벤트와 관련된 연결 포인트 2(904) 및 연결 포인트 4(906) 각각에 연결된 브라우저 기능 확장 모듈들의 리스트를 확인할 수 있다. 이 때, 브라우저 기능 확장 모듈의 리스트는 브라우저 기능 확장 모듈에 대한 주소값 및 이벤트와 관련된 연결 포인트에 연결될 때의 연결 순서값으로 구성 될 수 있다.
도 9에서, 연결 포인트 2(904)에 연결된 브라우저 기능 확장 모듈의 리스트는 브라우저 기능 확장 모듈 1(907-1), 브라우저 기능 확장 모듈 2(907-2) 및 브라우저 기능 확장 모듈 3(907-3)을 포함할 수 있다. 그리고, 연결 포인트 4(906)에 연결된 브라우저 기능 확장 모듈의 리스트는 브라우저 기능 확장 모듈 4(907-4), 브라우저 기능 확장 모듈 5(907-5) 및 브라우저 기능 확장 모듈 6(907-6)을 포함할 수 있다.
그러면, 어뷰징 방지 모듈은 인터넷 브라우저의 연결 포인트에 연결된 각각의 브라우저 기능 확장 모듈이 정상적인 모듈인지 여부를 판단할 수 있다. 이 때, 어뷰징 방지 모듈은 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트(white list)를 이용하여 리스트에 포함된 브라우저 기능 확장 모듈이 정상적인 모듈인지 여부를 판단할 수 있다.
만약, 연결 포인트 2(904)를 통해 인터넷 브라우저(901)에 연결된 브라우저 기능 확장 모듈 2(907-2)와 연결 포인트 4(906) 를 통해 인터넷 브라우저(901)에 연결된 브라우저 기능 확장 모듈 6(907-6)이 정상적인 모듈이 아니라고 판단된 경우, 어뷰징 방지 모듈은 인터넷 브라우저(901)에 연결된 브라우저 기능 확장 모듈 2(907-2)와 브라우저 기능 확장 모듈 6(907-6)을 차단할 수 있다. 이 때, 어뷰징 방지 모듈은 브라우저 기능 확장 모듈 2(907-2)와 브라우저 기능 확장 모듈 6(907-6)의 연결 순서값을 참고하여 차단할 수 있다. 그리고, 나머지 브라우저 기능 확장 모듈(907-1, 907-3, 907-4, 907-5)은 정상적인 모듈로 판단되어, 어뷰징 방지 모듈에 의해 연결이 차단되지 않을 수 있다. 악의적인 브라우저 기능 확장 모듈의 연결을 차단하는 과정은 주기적으로 반복될 수 있다.
도 1 내지 도 9에서 설명되지 않은 본 발명의 다른 실시예에 따르면, 악의적인 브라우저 기능 확장 모듈인 어뷰징 모듈이 변조된 데이터를 인터넷 브라우저에 전송하는 것을 방지할 수 있다. 즉, 어뷰징 모듈은 인터넷 브라우저에 데이터를 전송하기 위한 데이터 전송과 관련된 함수(예를 들어, 윈도우에서 제공하는 WinInet 함수)를 후킹함으로써 변조된 데이터를 인터넷 브라우저에 전송할 수 있다. 이 때, 어뷰징 방지 모듈은 데이터 전송과 관련된 함수가 어뷰징 모듈에 의해 변조되어 후킹되었는 지 여부를 확인하여 어뷰징을 방지할 수 있다.
구체적으로, 어뷰징 방지 모듈은 변조가 의심이 되는 데이터 전송과 관련된 함수에 대한 시작 일부분을 확인하여 CPU 점프 명령어가 입력되었는 지 여부를 확인함으로써 함수의 후킹 여부를 확인할 수 있다. 그리고, 데이터 전송과 관련된 함수가 어뷰징 모듈에 의해 변조되어 후킹된 경우, 어뷰징 방지 모듈은 변조되지 않은 부분을 읽어 변조된 부분에 덮어 씌움으로써 변조된 함수를 복원할 수 있다. 이러한 복원 과정을 통해 함수를 초기화하고, 해당 함수를 어뷰징 방지 모듈이 같은 형식의 함수로 후킹할 수 있다.
이 후에 브라우저 기능 확장 모듈이 어뷰징 방지 모듈이 후킹한 함수를 호출하는 경우, 어뷰징 방지 모듈은 함수를 호출한 모듈이 정상적인 모듈인 지 여부를 판단할 수 있다. 함수를 호출한 모듈이 정상적인 모듈로 판단된 경우, 어뷰징 방지 모듈은 함수 호출을 수행할 수 있고, 그렇지 않은 경우, 어뷰징 방지 모듈은 함수 호출을 차단할 수 있다.
도 10은 본 발명의 일실시예에 따른 함수 교체를 이용한 브라우저 기반 어뷰징 방지 시스템의 전체 구성을 도시한 도면이다.
도 10을 참고하면, 브라우저 기능 어뷰징 방지 시스템(1000)은 어뷰징 판단부(1001) 및 어뷰징 차단부(1002)를 포함할 수 있다.
어뷰징 판단부(1001)는 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단할 수 있다. 일례로, 브라우저 기능 확장 모듈에 기초한 접근은 브라우저 기능 확장 모듈이 인터넷 브라우저에 연결하여 인터넷 브라우저를 제어하려는 접근을 포함할 수 있다. 또는, 브라우저 기능 확장 모듈에 기초한 접근은 브라우저 기능 확장 모듈이 함수 호출 또는 메시지 전달을 통해 인터넷 브라우저의 데이터를 획득하려는 접근을 포함할 수 있다. 상기 언급한 일례뿐만 아니라, 브라우저 기능 확장 모듈에 기초한 접근은 다양할 수 있다.
일례로, 어뷰징 판단부(1001)는 함수 교체부(1003), 호출 대상 확인부(1004) 및 호출 대상 판단부(1005)를 포함할 수 있다.
여기서, 브라우저 기능 확장 모듈은 인터넷 브라우저가 인터넷 익스플로러인 경우, 상기 인터넷 브라우저에 애드-온(add-on) 형태로 연결될 수 있는 브라우저 헬퍼 오브젝트(BHO: Browser Helper Object)를 포함할 수 있다.
함수 교체부(1003)는 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 새로 정의한 신규 함수로 교체할 수 있다. 이 때, 함수 교체부(1003)는 원본 함수를 후크 함수인 신규 함수로 미리 교체함으로써, 악의적인 브라우저 기능 확장 모듈이 원본 함수를 호출하는 것을 방지할 수 있다. 함수 교체부(1003)에 대해서는 도 11 및 도 12에서 구체적으로 설명된다.
호출 대상 확인부(1004)는 브라우저 기능 확장 모듈을 통해 교체된 신규 함수가 호출되면, 신규 함수를 호출한 대상을 확인할 수 있다. 즉, 브라우저 기능 확장 모듈이 후크 함수인 신규 함수를 호출한 경우, 호출 대상 확인부(1004)는 신규 함수를 호출한 대상인 브라우저 기능 확장 모듈이 어떠한 모듈인지 확인할 수 있다.
일례로, 호출 대상 확인부(1004)는 신규 함수가 리턴될 주소에 위치한 브라우저 기능 확장 모듈의 정보를 이용하여 신규 함수를 호출한 브라우저 기능 확장 모듈을 확인할 수 있다.
호출 대상 판단부(1005)는 신규 함수를 호출한 대상이 안전한 지 여부를 판단할 수 있다. 일례로, 신규 함수를 호출한 브라우저 기능 확장 모듈이 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트에 존재하는 경우, 호출 대상 판단부(1005)는 상기 브라우저 기능 확장 모듈을 안전한 모듈로 판단할 수 있다.
어뷰징 차단부(1002)는 브라우저 기능 확장 모듈에 기초한 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단할 수 있다. 일례로, 어뷰징 차단부(1002)는 신규 함수를 호출한 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 상기 인터넷 브라우저의 데이터를 획득할 수 있는 원 본 함수의 호출을 차단할 수 있다.
즉, 어뷰징 차단부(1002)는 악의적인 브라우저 기능 확장 모듈이 인터넷 브라우저에 연결하는 것을 차단하여 어뷰징을 방지하거나 또는 인터넷 브라우저의 데이터를 획득하는 것을 차단하여 어뷰징을 방지할 수 있다.
도 11은 본 발명의 일실시예에 있어서, 문서 또는 문서의 구성 요소를 획득하는 원본 함수를 교체하는 함수 교체부를 구체적으로 도시한 도면이다.
도 11을 참고하면, 함수 교체부(1003)는 주소 정보 획득부(1101), 원본 함수 백업부(1102), 신규 함수 선언부(1103) 및 주소 기록부(1104)를 포함할 수 있다.
주소 정보 획득부(1101)는 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득할 수 있다. 이 때, 브라우저 오브젝트는 미리 빌드된 바이너리 형태인 COM(component object model) 기반의 오브젝트를 포함할 수 있다. 일례로, 주소 정보 획득부(1101)는 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 가 저장된 가상 펑션 테이블(virtual function table)을 획득할 수 있다.
이 때, COM 기반의 오브젝트는 가상 펑션 테이블을 가질 수 있다. 가상 펑션 테이블은 브라우저 오브젝트의 함수들에 대한 주소를 저장할 수 있다. 구체적으로, 가상 펑션 테이블은 오브젝트에서 외부로 제공하는 함수들에 대한 주소가 저장될 수 있다. 이 때, COM 기반의 오브젝트가 제공하는 함수의 주소는 일정한 순서로 가상 펑션 테이블에 저장될 수 있다. 만약, COM 기반의 오브젝트의 함수를 호출하기 위해 브라우저 기능 확장 모듈은 가상 펑션 테이블을 통해 확인한 해당 함 수의 주소를 이용하여 함수를 호출할 수 있다.
원본 함수 백업부(1102)는 주소 정보에 기초하여 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업할 수 있다. 일례로, 원본 함수 백업부(1102)는 가상 펑션 테이블을 이용하여 가로채고자 하는 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업할 수 있다. 여기서, 원본 함수는 인터넷 브라우저를 통해 표시되는 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수 중 어느 하나일 수 있다.
신규 함수 선언부(1103)는 원본 함수와 형식이 같은 신규 함수를 선언할 수 있다. 이 때, 신규 함수는 원본 함수를 가로채기 위한 후크 함수일 수 있다.
주소 기록부(1104)는 선언된 신규 함수의 주소를 원본 함수의 위치에 기록할 수 있다. 주소 기록부(1104)는 가상 펑션 테이블의 원본 함수의 위치에 후크 함수의 주소를 기록함으로써, 브라우저 기능 확장 모듈이 원본 함수를 호출하는 경우 후크 함수를 호출하도록 유도할 수 있다.
도 12는 본 발명의 일실시예에 있어서, 윈도우 메시지를 처리하는 원본 함수를 교체하는 함수 교체부를 구체적으로 도시한 도면이다.
도 12를 참고하면, 함수 교체부(1003)는 메인 윈도우 결정부(1201), 뷰 윈도우 결정부(1202) 및 원본 함수 교체부(1203)를 포함할 수 있다.
메인 윈도우 결정부(1201)는 인터넷 브라우저에 대한 메인 윈도우를 결정할 수 있다. 일례로, 메인 윈도우 결정부(1201)는 인터넷 브라우저의 브라우저 오브젝트가 제공하는 함수를 이용하여 메인 윈도우를 결정할 수 있다. 이 때, 브라우 저 오브젝트는 인터넷 브라우저가 브라우저 기능 확장 모듈을 로드할 때, 상기 인터넷 브라우저가 상기 브라우저 기능 확장 모듈에 제공하는 오브젝트를 의미할 수 있다.
뷰 윈도우 결정부(1202)는 메인 윈도우를 기준으로 상기 인터넷 브라우저에 대한 뷰 윈도우를 결정할 수 있다. 일례로, 뷰 윈도우 결정부(1202)는 인터넷 브라우저의 버전에 따른 윈도우 구조를 참고하여 뷰 윈도우를 결정할 수 있다. 인터넷 브라우저의 윈도우 구조는 버전별로 다른 형태를 나타내기 때문에, 뷰 윈도우 결정부(1202)는 버전에 따른 인터넷 브라우저의 윈도우 구조를 조사할 수 있다. 이 때, 뷰 윈도우는 인터넷 브라우저에서 실제 페이지가 보이는 위치의 윈도우를 의미할 수 있다.
원본 함수 교체부(1203)는 인터넷 브라우저에 전달된 메시지를 처리하는 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체할 수 있다.
그러면, 호출 대상 확인부(1004)는 브라우저 기능 확장 모듈이 전달한 메시지에 의해 신규 윈도우 프로시져 함수가 호출되면, 상기 신규 윈도우 프로시져 함수를 호출한 메시지의 메시지값을 이용하여 메시지를 확인할 수 있다.
호출 대상 판단부(1005)는 메시지가 상기 인터넷 브라우저의 문서를 획득하기 위한 브라우저 오브젝트의 메시지가 아닌 경우, 상기 신규 함수를 호출한 대상인 메시지가 안전한 것으로 판단할 수 있다.
어뷰징 판단부(1002)는 신규 함수를 호출한 대상이 된 메시지가 상기 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 메시지인 경우, 상기 메시지가 원본 함수에 전달되는 것을 방지할 수 있다.
도 12를 참고하면, 원본 함수 교체부(1203)는 함수 변경 확인부(1204), 함수 백업부(1205) 및 함수 주소 변경부(1206)를 포함할 수 있다.
함수 변경 확인부(1204)는 뷰 윈도우의 원본 윈도우 프로시져 함수가 다른 윈도우 프로시져 함수로 변경되었는 지 여부를 확인할 수 있다.
일례로, 함수 변경 확인부(1204)는 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 구한다. 그리고, 함수 변경 확인부(1204)는 해당 프로시져 함수가 위치한 브라우저 기능 확장 모듈의 경로를 검색할 수 있다. 이 때, 함수 변경 확인부(1204)는 프로시져 함수가 어떤 모듈에 위치하고 있는 지를 메모리를 통해 확인할 수 있다.
함수 변경 확인부(1204)는 검색한 브라우저 기능 확장 모듈의 경로를 기준으로, 브라우저 기능 확장 모듈을 확인할 수 있다. 이 때, 확인한 브라우저 기능 확장 모듈이 인터넷 브라우저와 관련된 모듈(예를 들면, 인터넷 브라우저가 인터넷 익스플로러인 경우, IEFrame.dll, mshtml.dll 등을 포함함)이 아닌 경우, 함수 변경 확인부(1204)는 다른 브라우저 기능 확장 모듈에 의해 뷰 윈도우의 원본 윈도우 프로시져 함수가 변경되었다고 판단할 수 있다.
함수 백업부(1205)는 원본 윈도우 프로시져 함수가 변경되지 않은 것으로 확인된 경우, 상기 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 저장하여 백업할 수 있다. 즉, 함수 백업부(1205)는 전달된 메시지가 문서를 획득하기 위한 메 시지가 아닌 경우, 원본 윈도우 프로시져 함수를 호출할 수 있도록 뷰 윈도우의 원본 윈도우 프로시져 함수를 저장하여 백업할 수 있다.
함수 주소 변경부(1206)는 원본 윈도우 프로시져 함수의 주소를 신규 윈도우 프로시져 함수의 주소로 변경할 수 있다. 즉, 함수 주소 변경부(1206)는 원본 윈도우 프로시져 함수는 신규 윈도우 프로시져 함수로 교체됨으로써, 악의적인 메시지를 통해 원본 윈도우 프로시져가 호출되는 것을 방지할 수 있다.
도 13은 본 발명의 일실시예에 있어서, 연결 포인트를 통한 어뷰징 행위를 방지하는 어뷰징 판단부를 구체적으로 도시한 도면이다.
도 13을 참고하면, 어뷰징 판단부(1001)는 연결 포인트 추출부(1301), 모듈 확인부(1302) 및 모듈 판단부(1303)를 포함할 수 있다.
연결 포인트 추출부(1301)는 인터넷 브라우저의 브라우저 오브젝트를 통해 상기 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출할 수 있다. 이 때, 연결 포인트는 브라우저 기능 확장 모듈이 인터넷 브라우저에 연결할 수 있는 포인트를 의미한다.
일례로, 연결 포인트 추출부(1301)는 컨테이너 획득부(1304), 리스트 확인부(1305) 및 연결 포인트 검색부(1306)를 포함할 수 있다.
컨테이너 획득부(1304)는 브라우저 오브젝트를 이용하여 연결 포인트 컨테이너를 획득할 수 있다. 연결 포인트 컨테이너는 인터넷 브라우저와 관련된 연결 포인트를 포함할 수 있다. 이 때, 연결 포인트 컨테이너는 연결 포인트들을 직접 가지고 있는 것이 아니라, 연결 포인트를 가지고 있는 오브젝트를 포함할 수 있다. 인터넷 브라우저의 연결 포인트 각각은 다른 정보와 이벤트를 제공할 수 있다.
리스트 확인부(13050)는 연결 포인트 컨테이너에 포함된 연결 포인트 리스트를 확인할 수 있다. 일례로, 리스트 확인부(13050)는 연결 포인트 컨테이너의 오브젝트가 제공하는 함수를 호출하여 연결 포인트 오브젝트를 구할 수 있다. 그리고, 리스트 확인부(13050)는 연결 포인트 오브젝트가 제공하는 함수를 호출하여 연결 포인트 리스트를 확인할 수 있다.
연결 포인트 검색부(1306)는 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 이용하여 연결 포인트 리스트로부터 이벤트와 관련된 연결 포인트를 검색할 수 있다. 이 때, 연결 포인트 검색부(1306)는 미리 알고 있는 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 상기 연결 포인트 리스트와 비교하여 연결 포인트를 검색할 수 있다.
모듈 확인부(1302)는 상기 추출된 인터넷 브라우저의 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈을 확인할 수 있다. 일례로, 모듈 확인부(1302)는 브라우저 기능 확장 모듈의 주소에 따라 연결 포인트와 브라우저 기능 확장 모듈 간의 경로를 결정하여 연결 포인트와 연결된 브라우저 기능 확장 모듈을 확인할 수 있다.
모듈 판단부(1303)는 확인된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단할 수 있다. 일례로, 모듈 판단부(1303)는 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트를 이용하여 상기 브라우저 기능 확장 모듈이 안전한 지 여부를 판단할 수 있다.
최종적으로, 어뷰징 차단부(1002)는 연결 포인트에 연결된 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 연결 포인트의 연결 순서값을 참조하여 브라우저 기능 확장 모듈의 연결을 차단할 수 있다.
도 10 내지 도 13에서 설명되지 않은 부분은 도 1 내지 도 9의 설명을 참고할 수 있다.
또한 본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에 서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 따른 브라우저 기반 어뷰징 방지 방법에 대한 전체적인 과정을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 함수 교체를 통해 브라우저 기능 확장 모듈에 의한 접근이 악의적인 접근인지 판단하는 과정을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 문서 및 문서의 구성요소를 획득하는 함수를 대체하는 과정을 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 문서 및 문서의 구성요소를 획득하는 원본 함수에 대한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 윈도우 메시지를 처리하는 원본 윈도우 프로시져 함수를 대체하는 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 윈도우 메세지를 처리하는 원본 함수에 대한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 연결 포인트를 통한 브라우저 기능 확장 모듈에 의한 접근이 악의적인 접근인지 판단하는 과정을 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 인터넷 브라우저의 연결 포인트를 추출하는 과정을 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 연결 포인트에 연결된 악의적인 브라우저 기능 확장 모듈을 통한 어뷰징 행위를 방지하는 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 따른 함수 교체를 이용한 브라우저 기반 어뷰징 방지 시스템의 전체 구성을 도시한 도면이다.
도 11은 본 발명의 일실시예에 있어서, 문서 또는 문서의 구성 요소를 획득하는 원본 함수를 교체하는 함수 교체부를 구체적으로 도시한 도면이다.
도 12는 본 발명의 일실시예에 있어서, 윈도우 메시지를 처리하는 원본 함수를 교체하는 함수 교체부를 구체적으로 도시한 도면이다.
도 13은 본 발명의 일실시예에 있어서, 연결 포인트를 통한 어뷰징 행위를 방지하는 어뷰징 판단부를 구체적으로 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
101: 서버
102: 클라이언트
103: 인터넷 브라우저
104-1, 104-2, 104-3: 브라우저 기능 확장 모듈(BHO: Browser Helper Object)
105: 어뷰징 방지 모듈

Claims (43)

  1. 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계; 및
    상기 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  2. 제1항에 있어서,
    상기 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계는,
    상기 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 새로 정의한 신규 함수로 교체하는 단계;
    상기 브라우저 기능 확장 모듈을 통해 신규 함수가 호출되면, 상기 신규 함수를 호출한 대상을 확인하는 단계; 및
    상기 신규 함수를 호출한 대상이 안전한지 여부를 판단하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  3. 제1항에 있어서,
    상기 브라우저 기능 확장 모듈은,
    상기 인터넷 브라우저가 인터넷 익스플로러인 경우, 상기 인터넷 브라우저에 애드-온(add-on) 형태로 연결될 수 있는 브라우저 헬퍼 오브젝트(BHO: Browser Helper Object)인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  4. 제2항에 있어서,
    상기 원본 함수를 새로 정의한 신규 함수로 교체하는 단계는,
    상기 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득하는 단계;
    상기 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업하는 단계;
    상기 원본 함수와 형식이 같은 상기 신규 함수를 선언하는 단계; 및
    상기 선언된 신규 함수의 주소를 상기 원본 함수의 위치에 기록하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  5. 제4항에 있어서,
    상기 브라우저 오브젝트는,
    미리 빌드된 바이너리 형태인 COM(component object model) 기반의 오브젝트를 포함하는 브라우저 기반 어뷰징 방지 방법.
  6. 제4항에 있어서,
    상기 원본 함수는,
    상기 인터넷 브라우저를 통해 표시되는 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수 중 어느 하나인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  7. 제4항에 있어서,
    상기 신규 함수를 호출한 대상을 확인하는 단계는,
    상기 신규 함수가 리턴될 주소에 위치한 브라우저 기능 확장 모듈의 정보를 이용하여 상기 신규 함수를 호출한 브라우저 기능 확장 모듈을 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  8. 제4항에 있어서,
    상기 신규 함수를 호출한 대상이 안전한지 여부를 판단하는 단계는,
    상기 신규 함수를 호출한 브라우저 기능 확장 모듈이 상기 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트에 존재하는 경우, 상기 브라우저 기능 확장 모듈을 안전한 모듈로 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  9. 제2항에 있어서,
    상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계는,
    상기 신규 함수를 호출한 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 상기 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수의 호출을 차단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  10. 제2항에 있어서,
    상기 원본 함수를 새로 정의한 신규 함수로 교체하는 단계는,
    상기 인터넷 브라우저에 대한 메인 윈도우를 결정하는 단계;
    상기 메인 윈도우를 기준으로 상기 인터넷 브라우저에 대한 뷰 윈도우를 결정하는 단계; 및
    상기 인터넷 브라우저에 전달된 메시지를 처리하는 상기 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  11. 제10항에 있어서,
    상기 메인 윈도우를 결정하는 단계는,
    상기 인터넷 브라우저의 브라우저 오브젝트가 제공하는 함수를 이용하여 메인 윈도우를 결정하고,
    상기 브라우저 오브젝트는,
    상기 인터넷 브라우저가 브라우저 기능 확장 모듈을 로드할 때, 상기 인터넷 브라우저가 상기 브라우저 기능 확장 모듈에 제공하는 오브젝트인 것을 특징으 로 하는 브라우저 기반 어뷰징 방지 방법.
  12. 제10항에 있어서,
    상기 인터넷 브라우저에 대한 뷰 윈도우를 결정하는 단계는,
    상기 인터넷 브라우저의 버전에 따른 윈도우 구조를 참고하여 상기 뷰 윈도우를 결정하고,
    상기 뷰 윈도우는,
    상기 인터넷 브라우저에서 실제 페이지가 보이는 위치의 윈도우인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  13. 제10항에 있어서,
    상기 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체하는 단계는,
    상기 뷰 윈도우의 원본 윈도우 프로시져 함수가 다른 윈도우 프로시져 함수로 변경되었는 지 여부를 확인하는 단계;
    상기 원본 윈도우 프로시져 함수가 변경되지 않은 것으로 확인된 경우, 상기 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 저장하여 백업하는 단계; 및
    상기 원본 윈도우 프로시져 함수의 주소를 상기 신규 윈도우 프로시져 함수의 주소로 변경하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  14. 제10항에 있어서,
    상기 신규 함수를 호출한 대상을 확인하는 단계는,
    상기 브라우저 기능 확장 모듈이 전달한 메시지에 의해 상기 신규 윈도우 프로시져 함수가 호출되면, 상기 신규 윈도우 프로시져 함수를 호출한 메시지의 메시지값을 이용하여 상기 메시지를 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  15. 제10항에 있어서,
    상기 신규 함수를 호출한 대상이 안전한지 여부를 판단하는 단계는,
    상기 메시지가 상기 인터넷 브라우저의 문서를 획득하기 위한 브라우저 오브젝트의 메시지가 아닌 경우, 상기 신규 윈도우 프로시져 함수를 호출한 대상인 메시지가 안전한 것으로 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  16. 제2항에 있어서,
    상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계는,
    상기 신규 함수를 호출한 대상이 된 메시지가 상기 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 메시지인 경우, 상기 메시지가 원본 함수에 전달되는 것을 방지하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  17. 제1항에 있어서,
    상기 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 단계는,
    상기 인터넷 브라우저의 브라우저 오브젝트를 통해 상기 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출하는 단계;
    상기 추출된 인터넷 브라우저의 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈을 확인하는 단계; 및
    상기 확인된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  18. 제17항에 있어서,
    상기 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출하는 단계는,
    상기 브라우저 오브젝트를 이용하여 연결 포인트 컨테이너를 획득하는 단계;
    상기 연결 포인트 컨테이너에 포함된 연결 포인트 리스트를 확인하는 단계; 및
    상기 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 이용하여 상기 연결 포인트 리스트로부터 이벤트와 관련된 연결 포인트를 검색하는 단계
    를 포함하는 브라우저 기반 어뷰징 방지 방법.
  19. 제17항에 있어서,
    상기 브라우저 기능 확장 모듈을 확인하는 단계는,
    상기 브라우저 기능 확장 모듈의 주소에 따라 상기 연결 포인트와 상기 브라우저 기능 확장 모듈 간의 경로를 결정하여 상기 연결 포인트와 연결된 브라우저 기능 확장 모듈을 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  20. 제18항에 있어서,
    상기 확인된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 단계는,
    상기 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트를 이용하여 상기 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  21. 제18항에 있어서,
    상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 단계는,
    상기 연결 포인트에 연결된 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 상기 연결 포인트의 연결 순서값을 참조하여 상기 브라우저 기능 확장 모듈의 연결을 차단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 방법.
  22. 제1항 내지 제21항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록 되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  23. 브라우저 기능 확장 모듈에 기초한 접근이 인터넷 브라우저의 데이터를 획득하기 위한 악의적인 접근인지 여부를 판단하는 어뷰징 판단부; 및
    상기 접근이 악의적인 접근으로 결정된 경우 상기 브라우저 기능 확장 모듈에 기초한 접근을 차단하는 어뷰징 차단부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  24. 제23항에 있어서,
    상기 어뷰징 판단부는,
    상기 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수를 새로 정의한 신규 함수로 교체하는 함수 교체부;
    상기 브라우저 기능 확장 모듈을 통해 신규 함수가 호출되면, 상기 신규 함수를 호출한 대상을 확인하는 호출 대상 확인부; 및
    상기 신규 함수를 호출한 대상이 안전한지 여부를 판단하는 호출 대상 판단부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  25. 제23항에 있어서,
    상기 브라우저 기능 확장 모듈은,
    상기 인터넷 브라우저가 인터넷 익스플로러인 경우, 상기 인터넷 브라우저에 애드-온(add-on) 형태로 연결될 수 있는 브라우저 헬퍼 오브젝트(BHO: Browser Helper Object)인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  26. 제24항에 있어서,
    상기 함수 교체부는,
    상기 인터넷 브라우저의 브라우저 오브젝트와 관련된 함수들의 주소 정보를 획득하는 주소 정보 획득부;
    상기 주소 정보에 기초하여 상기 원본 함수의 위치에 대응하는 원본 함수의 주소를 저장하여 백업하는 원본 함수 백업부;
    상기 원본 함수와 형식이 같은 상기 신규 함수를 선언하는 신규 함수 선언부; 및
    상기 선언된 신규 함수의 주소를 상기 원본 함수의 위치에 기록하는 주소 기록부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  27. 제26항에 있어서,
    상기 브라우저 오브젝트는,
    미리 빌드된 바이너리 형태인 COM(component object model) 기반의 오브젝트를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  28. 제26항에 있어서,
    상기 원본 함수는,
    상기 인터넷 브라우저를 통해 표시되는 문서를 획득하는 함수 또는 문서의 특정 구성 요소를 획득하는 함수 중 어느 하나인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  29. 제26항에 있어서,
    상기 호출 대상 확인부는,
    상기 신규 함수가 리턴될 주소에 위치한 브라우저 기능 확장 모듈의 정보를 이용하여 상기 신규 함수를 호출한 브라우저 기능 확장 모듈을 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  30. 제26항에 있어서,
    상기 호출 대상 판단부는,
    상기 신규 함수를 호출한 브라우저 기능 확장 모듈이 상기 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트에 존재하는 경우, 상기 브라우저 기능 확장 모듈을 안전한 모듈로 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  31. 제24항에 있어서,
    상기 어뷰징 차단부는,
    상기 신규 함수를 호출한 브라우저 기능 확장 모듈이 악의적인 모듈인 경우, 상기 인터넷 브라우저의 데이터를 획득할 수 있는 원본 함수의 호출을 차단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  32. 제24항에 있어서,
    상기 함수 교체부는,
    상기 인터넷 브라우저에 대한 메인 윈도우를 결정하는 메인 윈도우 결정부;
    상기 메인 윈도우를 기준으로 상기 인터넷 브라우저에 대한 뷰 윈도우를 결정하는 뷰 윈도우 결정부; 및
    상기 인터넷 브라우저에 전달된 메시지를 처리하는 상기 뷰 윈도우의 원본 윈도우 프로시져 함수를 신규 윈도우 프로시져 함수로 교체하는 원본 함수 교체부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  33. 제32항에 있어서,
    상기 메인 윈도우 결정부는,
    상기 인터넷 브라우저의 브라우저 오브젝트가 제공하는 함수를 이용하여 메인 윈도우를 결정하고,
    상기 브라우저 오브젝트는,
    상기 인터넷 브라우저가 브라우저 기능 확장 모듈을 로드할 때, 상기 인터넷 브라우저가 상기 브라우저 기능 확장 모듈에 제공하는 오브젝트인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  34. 제32항에 있어서,
    상기 뷰 윈도우 결정부는,
    상기 인터넷 브라우저의 버전에 따른 윈도우 구조를 참고하여 상기 뷰 윈도우를 결정하고,
    상기 뷰 윈도우는,
    상기 인터넷 브라우저에서 실제 페이지가 보이는 위치의 윈도우인 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  35. 제32항에 있어서,
    상기 원본 함수 교체부는,
    상기 뷰 윈도우의 원본 윈도우 프로시져 함수가 다른 윈도우 프로시져 함수로 변경되었는 지 여부를 확인하는 함수 변경 확인부;
    상기 원본 윈도우 프로시져 함수가 변경되지 않은 것으로 확인된 경우, 상기 뷰 윈도우의 원본 윈도우 프로시져 함수의 주소를 저장하여 백업하는 함수 백업부; 및
    상기 원본 윈도우 프로시져 함수의 주소를 상기 신규 윈도우 프로시져 함수 의 주소로 변경하는 함수 주소 변경부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  36. 제32항에 있어서,
    상기 호출 대상 확인부는,
    상기 브라우저 기능 확장 모듈이 전달한 메시지에 의해 상기 신규 윈도우 프로시져 함수가 호출되면, 상기 신규 윈도우 프로시져 함수를 호출한 메시지의 메시지값을 이용하여 상기 메시지를 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  37. 제32항에 있어서,
    상기 호출 대상 판단부는,
    상기 메시지가 상기 인터넷 브라우저의 문서를 획득하기 위한 브라우저 오브젝트의 메시지가 아닌 경우, 상기 신규 윈도우 프로시져 함수를 호출한 대상인 메시지가 안전한 것으로 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  38. 제24항에 있어서,
    상기 어뷰징 차단부는,
    상기 신규 함수를 호출한 대상이 된 메시지가 상기 인터넷 브라우저의 데이 터를 획득하기 위한 악의적인 메시지인 경우, 상기 메시지가 원본 함수에 전달되는 것을 방지하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  39. 제23항에 있어서,
    상기 어뷰징 판단부는,
    상기 인터넷 브라우저의 브라우저 오브젝트를 통해 상기 인터넷 브라우저의 이벤트와 관련된 적어도 하나의 연결 포인트를 추출하는 연결 포인트 추출부;
    상기 추출된 인터넷 브라우저의 연결 포인트 각각에 연결된 브라우저 기능 확장 모듈을 확인하는 모듈 확인부; 및
    상기 확인된 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 모듈 판단부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  40. 제39항에 있어서,
    상기 연결 포인트 추출부는,
    상기 브라우저 오브젝트를 이용하여 연결 포인트 컨테이너를 획득하는 컨테이너 획득부;
    상기 연결 포인트 컨테이너에 포함된 연결 포인트 리스트를 확인하는 리스트 확인부; 및
    상기 인터넷 브라우저의 이벤트와 관련된 연결 포인트 아이디를 이용하여 상 기 연결 포인트 리스트로부터 이벤트와 관련된 연결 포인트를 검색하는 연결 포인트 검색부
    를 포함하는 브라우저 기반 어뷰징 방지 시스템.
  41. 제39항에 있어서,
    상기 모듈 확인부는,
    상기 브라우저 기능 확장 모듈의 주소에 따라 상기 연결 포인트와 상기 브라우저 기능 확장 모듈 간의 경로를 결정하여 상기 연결 포인트와 연결된 브라우저 기능 확장 모듈을 확인하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  42. 제39항에 있어서,
    상기 모듈 판단부는,
    상기 인터넷 브라우저에서 사용되는 정상적인 브라우저 기능 확장 모듈의 리스트를 이용하여 상기 브라우저 기능 확장 모듈이 안전한 지 여부를 판단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
  43. 제39항에 있어서,
    상기 어뷰징 차단부는,
    상기 연결 포인트에 연결된 브라우저 기능 확장 모듈이 악의적인 모듈인 경 우, 상기 연결 포인트의 연결 순서값을 참조하여 상기 브라우저 기능 확장 모듈의 연결을 차단하는 것을 특징으로 하는 브라우저 기반 어뷰징 방지 시스템.
KR1020080108354A 2008-11-03 2008-11-03 브라우저 기반 어뷰징 방지 방법 및 시스템 KR101074624B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020080108354A KR101074624B1 (ko) 2008-11-03 2008-11-03 브라우저 기반 어뷰징 방지 방법 및 시스템
PCT/KR2009/006435 WO2010062063A2 (ko) 2008-11-03 2009-11-03 브라우저 기반 어뷰징 방지 방법 및 시스템
US13/126,645 US8997253B2 (en) 2008-11-03 2009-11-03 Method and system for preventing browser-based abuse
JP2011534404A JP5554338B2 (ja) 2008-11-03 2009-11-03 ブラウザベースの不正行為防止方法およびシステム
JP2014078105A JP5863869B2 (ja) 2008-11-03 2014-04-04 ブラウザベースの不正行為防止方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080108354A KR101074624B1 (ko) 2008-11-03 2008-11-03 브라우저 기반 어뷰징 방지 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20100049258A true KR20100049258A (ko) 2010-05-12
KR101074624B1 KR101074624B1 (ko) 2011-10-17

Family

ID=42226218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080108354A KR101074624B1 (ko) 2008-11-03 2008-11-03 브라우저 기반 어뷰징 방지 방법 및 시스템

Country Status (4)

Country Link
US (1) US8997253B2 (ko)
JP (2) JP5554338B2 (ko)
KR (1) KR101074624B1 (ko)
WO (1) WO2010062063A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060639A2 (en) * 2010-11-03 2012-05-10 Ahnlab., Inc. Method and apparatus for blocking malicious access to process
WO2013168902A1 (ko) * 2012-05-10 2013-11-14 주식회사 안랩 웹 페이지의 정보 변조 차단 장치 및 방법
CN103777855A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 截取移动终端屏幕的方法和装置
KR20170141475A (ko) * 2016-06-15 2017-12-26 에스케이플래닛 주식회사 광고플랫폼장치 및 그 동작 방법

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120011653A (ko) * 2010-07-29 2012-02-08 삼성전자주식회사 영상 처리 장치 및 방법
US9210155B2 (en) * 2013-03-08 2015-12-08 Stocktree Inc. System and method of extending a host website
US10430894B2 (en) 2013-03-21 2019-10-01 Khoros, Llc Gamification for online social communities
KR101462114B1 (ko) * 2013-03-28 2014-11-17 네이버 주식회사 동기식 스크립트 지연 로딩 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US9930095B2 (en) * 2014-03-26 2018-03-27 Google Llc System for managing extension modifications to web pages
CN104503752A (zh) * 2014-12-17 2015-04-08 青岛海信电器股份有限公司 一种智能设备中控制网页调用系统功能的方法及装置
GB2546304B (en) * 2016-01-14 2020-04-08 Avecto Ltd Computer device and method for controlling access to a web resource
US9501439B1 (en) * 2016-01-19 2016-11-22 International Business Machines Corporation Communicating in an integrated circuit using hardware-managed virtual channels
US10326790B2 (en) * 2016-02-12 2019-06-18 Shape Security, Inc. Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US10594731B2 (en) 2016-03-24 2020-03-17 Snowflake Inc. Systems, methods, and devices for securely managing network connections
US10063533B2 (en) * 2016-11-28 2018-08-28 International Business Machines Corporation Protecting a web server against an unauthorized client application
US10902462B2 (en) 2017-04-28 2021-01-26 Khoros, Llc System and method of providing a platform for managing data content campaign on social networks
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US11050704B2 (en) 2017-10-12 2021-06-29 Spredfast, Inc. Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices
US10785222B2 (en) * 2018-10-11 2020-09-22 Spredfast, Inc. Credential and authentication management in scalable data networks
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US11470161B2 (en) 2018-10-11 2022-10-11 Spredfast, Inc. Native activity tracking using credential and authentication management in scalable data networks
US10346449B2 (en) 2017-10-12 2019-07-09 Spredfast, Inc. Predicting performance of content and electronic messages among a system of networked computing devices
US10601937B2 (en) 2017-11-22 2020-03-24 Spredfast, Inc. Responsive action prediction based on electronic messages among a system of networked computing devices
US11061900B2 (en) 2018-01-22 2021-07-13 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US10594773B2 (en) 2018-01-22 2020-03-17 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US10855657B2 (en) 2018-10-11 2020-12-01 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
KR102038957B1 (ko) 2018-10-11 2019-10-31 넷마블 주식회사 게임 어뷰저 검출 방법 및 장치
US10931540B2 (en) 2019-05-15 2021-02-23 Khoros, Llc Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously
US11438289B2 (en) 2020-09-18 2022-09-06 Khoros, Llc Gesture-based community moderation
US11128589B1 (en) 2020-09-18 2021-09-21 Khoros, Llc Gesture-based community moderation
US11438282B2 (en) 2020-11-06 2022-09-06 Khoros, Llc Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices
US11627100B1 (en) 2021-10-27 2023-04-11 Khoros, Llc Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel
US11924375B2 (en) 2021-10-27 2024-03-05 Khoros, Llc Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source
US11714629B2 (en) 2020-11-19 2023-08-01 Khoros, Llc Software dependency management
EP4053722B1 (en) * 2021-03-01 2023-11-29 Irdeto B.V. Secured computer code and systems, methods, and storage media for creating the secured computer code from original computer code

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107548B2 (en) * 1998-10-28 2006-09-12 Yahoo! Inc. Method of controlling an internet browser interface and a controllable browser interface
US7010581B2 (en) * 2001-09-24 2006-03-07 International Business Machines Corporation Method and system for providing browser functions on a web page for client-specific accessibility
JP4490026B2 (ja) * 2002-01-28 2010-06-23 日立オムロンターミナルソリューションズ株式会社 カスタマイズ可能な情報処理装置
JP4232431B2 (ja) * 2002-10-18 2009-03-04 株式会社日立製作所 ブラウザー関連のセキュリティチェックプログラム
US7278114B2 (en) * 2002-12-30 2007-10-02 Viewspace Technologies Method and apparatus for managing display of popup windows
JP4239682B2 (ja) * 2003-05-22 2009-03-18 日本精工株式会社 ローラクラッチ及びローラクラッチ内蔵型プーリ装置
KR100483700B1 (ko) 2003-12-03 2005-04-19 주식회사 잉카인터넷 온라인 게임 클라이언트 보안을 위한 실시간 프로세스 불법 접근 및 조작 차단 방법
US8332943B2 (en) * 2004-02-17 2012-12-11 Microsoft Corporation Tiered object-related trust decisions
GB0407977D0 (en) * 2004-04-08 2004-05-12 Ibm Communication between browser windows
US20050268112A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Managing spyware and unwanted software through auto-start extensibility points
KR20060112849A (ko) 2005-04-28 2006-11-02 (주)밀리언커뮤니케이션 씨피씨 광고 부정클릭 모니터링 방법 및 그 장치
US20090281816A1 (en) 2005-08-29 2009-11-12 Daikin Industries, Ltd. Account abuse detection or prevention device, data collection device, and account abuse detection or prevention program
KR100770163B1 (ko) 2006-03-02 2007-10-26 엔에이치엔(주) 스팸 지수 산정 방법 및 시스템
KR20060028463A (ko) 2006-03-09 2006-03-29 정성욱 온라인 광고 시스템에서의 이용자 부정 클릭 추적과 방지시스템 및 그 방법
US20070250531A1 (en) * 2006-04-24 2007-10-25 Document Advantage Corporation System and Method of Web Browser-Based Document and Content Management
US20080184358A1 (en) * 2007-01-26 2008-07-31 Verdasys, Inc. Ensuring trusted transactions with compromised customer machines
US8370766B2 (en) * 2007-01-30 2013-02-05 Oracle International Corporation Menu creation browser extension
KR100915589B1 (ko) * 2007-07-12 2009-09-07 엔에이치엔비즈니스플랫폼 주식회사 보안 인증 시스템 및 방법
US7975308B1 (en) * 2007-09-28 2011-07-05 Symantec Corporation Method and apparatus to secure user confidential data from untrusted browser extensions
ES2372128T3 (es) * 2007-10-15 2012-01-16 Penango, Inc. Método y sistema para fomentar las comunicaciones seguras.
US8065734B1 (en) * 2008-03-06 2011-11-22 Symantec Corporation Code module operating system (OS) interactions intercepting system and method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060639A2 (en) * 2010-11-03 2012-05-10 Ahnlab., Inc. Method and apparatus for blocking malicious access to process
WO2012060639A3 (en) * 2010-11-03 2012-07-05 Ahnlab., Inc. Method and apparatus for blocking malicious access to process
KR101277516B1 (ko) * 2010-11-03 2013-07-30 주식회사 안랩 프로세스 외부 접근 차단 장치와 방법 및 컴퓨터 프로그램이 기록된 기록매체
US9185131B2 (en) 2010-11-03 2015-11-10 Ahnlab, Inc. Method and apparatus for blocking malicious access to process
WO2013168902A1 (ko) * 2012-05-10 2013-11-14 주식회사 안랩 웹 페이지의 정보 변조 차단 장치 및 방법
KR101369253B1 (ko) * 2012-05-10 2014-03-06 주식회사 안랩 웹 페이지의 정보 변조 차단 장치 및 방법
CN103777855A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 截取移动终端屏幕的方法和装置
KR20170141475A (ko) * 2016-06-15 2017-12-26 에스케이플래닛 주식회사 광고플랫폼장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR101074624B1 (ko) 2011-10-17
WO2010062063A3 (ko) 2010-07-29
JP2014142960A (ja) 2014-08-07
JP5554338B2 (ja) 2014-07-23
JP2012507778A (ja) 2012-03-29
WO2010062063A2 (ko) 2010-06-03
US20110283366A1 (en) 2011-11-17
JP5863869B2 (ja) 2016-02-17
US8997253B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
KR101074624B1 (ko) 브라우저 기반 어뷰징 방지 방법 및 시스템
US20200304463A1 (en) Method, Apparatus, and System for Detecting Terminal Security Status
RU2514140C1 (ru) Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов
CN102932370B (zh) 一种安全扫描方法、设备及系统
US20130239214A1 (en) Method for detecting and removing malware
US20130160126A1 (en) Malware remediation system and method for modern applications
US6789200B1 (en) Method of automatically instituting secure, safe libraries and functions when exposing a system to potential system attacks
WO2013032422A1 (en) Data leak prevention systems and methods
WO2006137057A2 (en) A method and a system for providing comprehensive protection against leakage of sensitive information assets using host based agents, content- meta-data and rules-based policies
US20170364679A1 (en) Instrumented versions of executable files
KR101080953B1 (ko) 실시간 웹쉘 탐지 및 방어 시스템 및 방법
US8381300B2 (en) Offline extraction of configuration data
JP6282217B2 (ja) 不正プログラム対策システムおよび不正プログラム対策方法
CN106250761B (zh) 一种识别web自动化工具的设备、装置及方法
CN108646988B (zh) 文档打印方法和系统
US11580248B2 (en) Data loss prevention
CN114091031A (zh) 基于白规则的类加载防护方法及装置
KR101724412B1 (ko) 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
CN116611066A (zh) 勒索病毒识别方法、装置、设备及存储介质
JP4643201B2 (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
WO2008036665A2 (en) Methods, media, and systems for detecting attack on a digital processing device
CN107239703B (zh) 一种动态链接库缺失的可执行程序的动态分析方法
KR100977150B1 (ko) 웹 사이트 점검 방법 및 그 시스템
KR102473436B1 (ko) 물리 메모리 레이아웃 관리 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
JP2011145772A (ja) サーバ、制御方法、および、プログラム

Legal Events

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

Payment date: 20140925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151008

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171012

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181008

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191010

Year of fee payment: 9