KR101175951B1 - 웹 인젝션 공격 차단 방법 - Google Patents

웹 인젝션 공격 차단 방법 Download PDF

Info

Publication number
KR101175951B1
KR101175951B1 KR1020120015637A KR20120015637A KR101175951B1 KR 101175951 B1 KR101175951 B1 KR 101175951B1 KR 1020120015637 A KR1020120015637 A KR 1020120015637A KR 20120015637 A KR20120015637 A KR 20120015637A KR 101175951 B1 KR101175951 B1 KR 101175951B1
Authority
KR
South Korea
Prior art keywords
web
injection attack
attack blocking
web injection
blocking module
Prior art date
Application number
KR1020120015637A
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 KR1020120015637A priority Critical patent/KR101175951B1/ko
Application granted granted Critical
Publication of KR101175951B1 publication Critical patent/KR101175951B1/ko

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
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명에 의한 웹 인젝션 공격 차단 방법은, 웹 브라우저 모듈과, 문서 객체 모델을 포함하는 웹 인젝션 공격 차단 모듈을 포함하는 환경에서 수행되며, 상기 차단 방법은, (1) 상기 웹 인젝션 공격 차단 모듈이 프로세스에 라이브러리를 인젝션하거나 또는 커널 드라이브를 로드하는 제1 단계와, (2) 상기 웹 인젝션 공격 차단 모듈이, 보호 대상 함수를 프로세스 신뢰도 조사 함수로 후킹하는 제2 단계와, (3) 상기 보호 대상 함수의 호출을 외부 프로세스로부터 상기 웹 인젝션 공격 차단 모듈이 수신하는 제3 단계와, (4) 상기 호출이 내부 프로세스로부터의 호출이면 상기 웹 인젝션 공격 차단 모듈이 콜스택을 추출하고 시작 함수의 라이브러리를 조사한 후 신뢰된 라이브러리인 것으로 판단되면 보호 대상 함수의 호출을 허용하는 제4-1 단계와, (5) 상기 호출이 내부 프로세스로부터의 호출이 아니면 상기 웹 인젝션 공격 차단 모듈이 신뢰된 프로세스로 판단되면 보호 대상 함수의 호출을 허용하는 제4-2 단계와, (6) 상기 제4-1 단계에서 신뢰된 라이브러리가 아닌 것으로 판단되거나 상기 제4-2 단계에서 신뢰된 프로세스가 아닌 것으로 판단되면 보호대상 함수 호출을 차단하거나 또는 더미 값을 리턴하는 제5 단계를 포함한다.

Description

웹 인젝션 공격 차단 방법{Method for Preventing Web Injection Attack}
본 발명은 웹 인젝션 공격 차단 방법에 관한 것으로서, 좀 더 구체적으로는 신뢰받지 못한 외부 프로세스 또는 라이브러리가 웹 브라우저에 접근하는 것을 차단함으로써 소위 MITB(Man-In-The-Browser) 공격을 차단하는 방법에 관한 것이다.
네트워크를 통한 웹 서버와 웹 브라우저간의 통신에 의해 인터넷 뱅킹, 온라인 증권거래, 전자 상거래 등을 웹 서비스 제공자가 사용자에게 제공하여 편의성을 고양시킬 수 있는데, 그 과정에서 사용자의 개인 정보나 보안이 필요한 정보에 대해 악의적인 해커의 공격을 차단할 필요가 있다.
해커의 공격은 웹 서버와 웹 브라우저간의 통신 구간에서 이루어지는 소위 MITM(Man-In-The-Middle) 공격과 웹 브라우저상에서 이루어지는 소위 MITB(Man-In-The_Browser) 공격으로 나뉜다.
통신 구간에서의 공격은 SSL/TLS와 같은 암호 통신 프로토콜 등을 통해 차단할 수 있는 다양한 방법이 개발되어 적용되고 있다. 본 발명은 MITB 공격 차단 방법에 관한 것으로서, 이 공격은 웹 브라우저에 로딩된 웹 페이지에 접근하여 웹 페이지 객체를 위조/변조하는 공격으로서 웹 인젝션 공격이라고도 불린다.
웹 인젝션 공격은 크게 세 가지로 유형으로 나뉘는데 다음과 같다.
<웹 브라우저 확장 인터페이스를 이용한 공격>
웹 브라우저 확장 인터페이스는 웹 브라우저를 전반적으로 제어할 수 있는 인터페이스로 BHO/툴바/XPCOM 등의 기술이 존재한다. 이 기술을 이용해 확장 모듈을 개발하면 웹 브라우저 내에 DOM 객체에 쉽게 접근할 수 있다. 이러한 인터페이스를 이용하면 자동 번역, 웹 페이지 화면 자동 캡쳐 등 사용자에게 유용한 기능을 제공할 수 있으나, 악의적으로 사용하면 웹 페이지 내에 로딩된 개인 정보를 갈취하거나 주요 거래 정보를 위조/변조하는 웹 인젝션 공격이 가능하다.
<API 후킹>
웹 브라우저는 디버깅, 사용자 편의 기능 제공 등의 목적으로 외부 프로세스가 웹 브라우저에 접근할 수 있는 방법을 제공한다. 공격자는 이 기능을 악용하여 웹 브라우저에 로딩된 웹 페이지에 접근해 웹 인젝션 공격을 수행할 수 있다.
<오브젝트 후킹>
대부분의 웹 브라우저는 객체 지향 프로그래밍으로 개발되어 있어 모든 것이 컴포넌트화되어 있다. 웹 페이지가 로딩된 상태인 DOM도 객체 형태로 존재한다. 이러한 DOM 객체 내의 API 함수들을 후킹하면 DOM 객체가 생성되고 페이지가 로딩되는 이벤트를 후킹해서 웹 인젝션 공격을 수행할 수 있다.
<메모리 해킹>
모든 프로세스는 운영체제가 할당한 메모리에 적재되어 구동된다. 웹 페이지도 메모리상에 존재하기 때문에 DOM 객체의 메모리 주소를 찾을 경우 메모리 맵을 위조/변조하여 웹 인젝션 공격을 수행할 수 있다.
이러한 웹 인젝션 공격을 방지하기 위한 기술로서 2011년 11월 25일에 등록공고된 한국특허 제1086451호에 개시된 기술이 있는데, 이 기술에서는 복수 개의 클라이언트(웹 브라우저)가 웹 서버에 요청하는 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 각각의 클라이언트에 서로 다른 랜덤 웹 소스를 제공한다. 그리고 클라이언트 각각에서 표출 웹 소스 고유값을 생성하여 이것을 상기 랜덤 웹 소스의 고유값과 비교하여 웹 소스의 화면 변조 발생 여부를 판단한다.
그러나 이러한 방법에서는 통신 부하가 높이 걸리고 서버측에서 처리해야 하기 때문에 서버에 과부하가 걸리는 단점이 있다. 또한 근본적으로 웹 브라우저 내부 자원에 대한 접근을 통제하지 않아 MITB 공격에 취약하다.
본 발명은 이러한 종래 기술보다 우수한 웹 브라우저의 DOM, 화면, 메모리 등 웹 브라우저의 주요 자원에 대한 웹 인젝션 공격 차단 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 웹 인젝션 공격 차단 방법은, 웹 브라우저 모듈과, 문서 객체 모델을 포함하는 웹 인젝션 공격 차단 모듈을 포함하는 환경에서 수행되며, 상기 차단 방법은, (1) 상기 웹 인젝션 공격 차단 모듈이 프로세스에 라이브러리를 인젝션하거나 또는 커널 드라이브를 로드하는 제1 단계와, (2) 상기 웹 인젝션 공격 차단 모듈이, 보호 대상 함수를 프로세스 신뢰도 조사 함수로 후킹하는 제2 단계와, (3) 상기 보호 대상 함수의 호출을 외부 프로세스로부터 상기 웹 인젝션 공격 차단 모듈이 수신하는 제3 단계와, (4) 상기 호출이 내부 프로세스로부터의 호출이면 상기 웹 인젝션 공격 차단 모듈이 콜스택을 추출하고 시작 함수의 라이브러리를 조사한 후 신뢰된 라이브러리인 것으로 판단되면 보호 대상 함수의 호출을 허용하는 제4-1 단계와, (5) 상기 호출이 내부 프로세스로부터의 호출이 아니면 상기 웹 인젝션 공격 차단 모듈이 신뢰된 프로세스로 판단되면 보호 대상 함수의 호출을 허용하는 제4-2 단계와, (6) 상기 제4-1 단계에서 신뢰된 라이브러리가 아닌 것으로 판단되거나 상기 제4-2 단계에서 신뢰된 프로세스가 아닌 것으로 판단되면 보호대상 함수 호출을 차단하거나 또는 더미 값을 리턴하는 제5 단계를 포함한다.
본 발명의 양호한 실시예에 의하면, 상기 방법은 (6) 상기 웹 인젝션 공격 차단 모듈이, 상기 제1 단계 이후에 보호 대상 함수에 대해 후킹 무결성 검사를 수행하는 제1-1 단계와, (7) 상기 제1-1 단계의 후킹 무결성 검사에서 후킹된 것으로 판단되면 상기 웹 인젝션 공격 차단 모듈이, 상기 보호 대상 함수를 후킹 이전 상태로 복원시키거나 로딩된 웹 브라우저를 종료시키는 제1-2 단계를 더 포함한다.
본 발명의 다른 양호한 실시예에 의하면, 상기 방법은 (8) 상기 웹 인젝션 공격 차단 모듈이, 상기 제2 단계에서 후킹한 함수가 후킹 해제, 위조 및 변조 중 적어도 어느 하나로 변경되는 지를 모니터링하는 제2-1 단계와, (9) 상기 제2-1 단계에서 후킹 해제, 위조 및 변조 중 어느 하나에 해당되는 것으로 판단되면 상기 웹 인젝션 공격 차단 모듈이 제2 단계에서의 후킹 상태로 복원시키거나 웹 브라우저를 종료시키는 제2-2 단계를 더 포함할 수 있다.
한편, 상기 제2 단계는 사용자 수준에서 이루어지는 후킹과 커널 수준에서 이루어지는 후킹 중 적어도 어느 하나를 포함하는 단계인 것이 바람직하다.
본 발명의 다른 실시예에 의하면, 상기 방법은 (a) 상기 웹 인젝션 공격 차단 모듈이, 보호 대상 프로세스를 오픈한 프로세스 핸들 리스트를 추출하는 제1 단계와, (b) 상기 웹 인젝션 공격 차단 모듈이, 상기 프로세스 핸들 리스트로부터 프로세스를 추출하는 제2 단계와, (c) 상기 웹 인젝션 공격 차단 모듈이, 상기 추출된 프로세스가 신뢰된 프로세스인지 여부를 판단하는 제3 단계와, (d)상기 웹 인젝션 공격 차단 모듈이, 상기 제3 단계에서 신뢰된 프로세스가 아닌 경우에는 핸들을 닫거나 핸들을 소유한 프로세스를 종료하는 제4 단계를 포함한다.
상기 다른 실시예에의 보다 양호한 실시에에서 상기 방법은 (e) 상기 제1 단계 이후에 프로세스 리스트 접근 인덱스를 초기화하는 제1-1 단계와, (f) 상기 제3 단계에서 신뢰된 프로세스로 판단되면 상기 인덱스를 증가시키는 제3-1 단계와, (g) 상기 증가한 인덱스가 리스트 크기보다 작은지 여부를 판단하는 제3-2 단계와, (h) 보호 대상 프로세스 종료 이벤트가 있는지 여부를 판단하는 제5 단계를 더 포함한다. 그리고 상기 제4 단계 수행 후 상기 제3-1 단계로 이행하며, 상기 제3-2 단계에서 판단 결과 증가한 인덱스가 리스트 크기보다 작으면 상기 제2 단계로 이행하며, 상기 제3-2 단계에서 판단 결과 증가한 인덱스가 리스트 크기보다 작지 않으면 상기 제5 단계로 이행한다. 또한, 상기 제5 단계에서 종료 이벤트가 있으면 종료하고, 종료 이벤트가 없으면 상기 제1 단계로 이행하게 된다.
본 발명에 의하면, 악의의 해커 또는 해킹 프로그램이 웹 브라우저의 프로세스에 접근하는 것을 원천적으로 차단할 수 있으므로 소위 웹 인젝션 공격을 안전하게 차단할 수 있다.
도 1은 본 발명에 의한 웹 인젝션 공격 차단 모듈을 도시한 도면.
도 2는 본 발명의 제1 실시예에 의한 웹 인젝션 공격 차단 방법의 흐름도.
도 3은 본 발명의 제2 실시예에 의한 웹 인젝션 공격 차단 방법의 흐름도.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다.
도 1에는 웹 브라우저 모듈(1)과 본 발명에 의한 웹 인젝션 공격 차단 모듈(10)의 블록도가 도시되어 있다. 웹 브라우저 모듈(1)에는 문서 객체 모델(2; DOM)이 제공된다.
본 명세서에서 "모듈"이라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다. 웹 인젝션 공격 차단 모듈(10)은, 통신 모듈(11)과, 운영 정책 관리 모듈(12)과, 프로세스 핸들 모니터링 모듈(13)과, 프로세스 제어 모듈(14)과, 프로세스 인젝션 모듈(15)과, 후킹 무결성 검사 모듈(16)과, 후킹 모듈(17)과, 후킹 보호 모듈(18)을 포함한다. 그리고 웹 인젝션 공격 차단 모듈(10)은 문서 객체 모델(50; Document Object Model, DOM)을 내장한다. 또한, 본 발명에 의한 웹 인젝션 공격 차단 모듈은 샌드박스(Sandbox)의 형태로 구현되는 것이 바람직하지만 다른 방식으로도 구현이 가능하며 그러한 다른 방식의 구현이 본 발명의 권리범위에서 배제되는 것은 아니다.
웹 인젝션 공격 차단 모듈(10)은 도 1에 도시된 바와 같이 각각의 기능을 수행하는 복수 개의 모듈로 분리된 것으로 도시되어 있지만, 복수 개의 모듈이 하나의 모듈로 결합된 상태이어도 무방하며, 외부에서 보면 하나의 모듈로 인식될 수도 있다. 그리고 웹 인젝션 공격 차단 모듈(10)은 웹 브라우저 모듈(1)의 DOM(Document Object Module) 내에서 실행되는 플러그인 형태로 제공되는 것이 바람직하다. 또한, 웹 인젝션 공격 차단 모듈(10)은, 외부와의 인터페이스가 단절되어 있어서 외부의 자원을 참조할 수 없고 외부에서는 웹 인젝션 공격 차단 모듈(10)의 자원(DOM, 웹 페이지 화면 등)을 참조할 수 없다.
브라우저 모듈(1)은 웹 서버(도시되지 않음)와의 통신을 통해서 소정의 정보를 렌더링하여 표시하거나 요청할 수 있는 모듈을 의미하며, 그 종류를 불문한다. 그리고 웹 브라우저 모듈(1)에 의해서 요청되고 표시될 수 있는 문서를 본 명세서 및 도면에서는 HTML 문서로 예시하지만, 역시 전술한 웹 브라우저 모듈(1)에 부합하는 웹 브라우저 모듈(1)이 표시할 수 있는 문서라면 어느 형태의 문서라도 무방하다.
통신 모듈(11)은, HTTP/HTTPS 등 웹 브라우저 모듈(1)이 기본적으로 제공하는 통신 프로토콜을 지원하는 통신 모듈이며, 웹 서버와의 통신을 통해 웹 페이지를 DOM(50)으로 전달하는 역할을 수행한다. 그리고 웹 서버로 전달되는 요청(Request)이 본 발명에 의한 웹 인젝션 공격 차단 모듈(10)에서 발생된 요청인지를 확인할 수 있는 정보를 제공하는 역할도 수행한다.
운영 정책 관리 모듈(12)은, 본 발명에 의한 웹 인젝션 공격 차단 모듈(10)의 운영 정책을 관리하는 모듈로서, 신뢰 여부 검증 방법, 시작 URL 및 신뢰된 게시자, 신뢰된 프로세스, 신뢰된 라이브러리, 보안 정책, 후킹해야 할 보호 대상 함수 종류의 정의, 후킹된 보호 함수 호출시 대응 방법의 종류(예를 들어, 차단 또는 더미값 리턴) 등 웹 인젝션 공격 차단 전반에 대한 환경 설정을 관리한다.
프로세스 핸들 모니터링 모듈(13)은, 글로벌 핸들 리스트 중에서 외부 프로세스가 웹 브라우저 모듈의 프로세스에 접근하기 위해 프로세스 오픈 요청을 한 핸들인 경우 해당 핸들을 프로세스 제어 모듈로 전달하는 역할을 수행한다.
프로세스 제어 모듈(14)은, 프로세스 핸들 모니터링 모듈(13)로부터 전달받은 외부 프로세스 정보가 신뢰된 프로세스인지를 조사하고, 신뢰된 프로세스가 아닌 경우에는 핸들을 닫거나 핸들을 소유한 프로세스를 종료하는 역할을 수행한다.
프로세스 인젝션 모듈(15)은, 외부 프로세스에 대한 사용자 수준의 후킹을 위해 본 발명에 의한 웹 인젝션 공격 차단 모듈이 제공하는 라이브러리를 프로세스에 인젝션하는 역할을 수행한다.
후킹 무결성 검사 모듈(16)은, 웹 브라우저 모듈(1)의 프로세스 자원에 접근하려는 함수 또는 디버깅 등의 목적으로 DOM의 핸들을 얻은 함수가 외부 프로세스 등에 의해서 이미 후킹되어 있는지를 검사하고, 만약 그러한 후킹이 수행된 상태라면 후킹되기 이전의 상태로 복원시키거나 또는 웹 브라우저 모듈(1)이 로딩한 웹 브라우저를 종료시키는 역할을 수행한다.
후킹 모듈(17)은, 운영체제가 제공하는 프로세스의 자원을 접근하는 함수(또는 액션 내지 객체), 웹 브라우저가 제공하는 DOM 접근 함수 등을 사용자 수준 또는 커널 수준에서 프로세스 신뢰도 조사 함수로 후킹하여 인가되지 않는 접근을 차단하는 역할을 수행한다. 구체적인 후킹 방법의 예시는 후술하기로 한다.
후킹 보호 모듈(18)은, 후킹 모듈(17)에 의해서 후킹된 함수가 후킹 해제, 위조 및 변조 중 적어도 어느 하나에 해당되는지를 모니터링하고, 그러한 경우에는 후킹 모듈(17)에 의한 후킹 상태로 복원시키거나 웹 브라우저를 종료하는 역할을 수행한다.
다음으로는 본 발명에 의한 웹 인젝션 공격 차단 방법에 대해서 자세히 설명하기로 한다.
도 2에는 본 발명에 의한 웹 인젝션 공격 차단 모듈(10)이 수행하는 제1 실시예의 웹 인젝션 공격 차단 방법의 흐름도가 도시되어 있고, 도 3에는 제1 실시예보다 보안 수준이 높은 제2 실시예에 의한 웹 인젝션 공격 차단 방법의 흐름도가 도시되어 있다.
제1 실시예에서는 보호 대상 프로세스를 오픈한 프로세스 핸들 리스트가 추출된다.(단계 20) 다음으로 단계(21)에서 프로세스 리스트 접근 인덱스가 초기화되며, 단계(22)에서는 리스트에서 프로세스가 추출된다. 추출된 프로세스는 단계(23)에서 신뢰된 프로세스인지 여부가 판단되며 신뢰되지 않은 프로세스로 판단되면 해당 핸들을 닫거나 핸들을 소유한 프로세스를 종료시킨다.(단계 24)
한편, 단계(23)에서 신뢰된 프로세스로 판단되면 단계(25)로 이행하여 인덱스를 증가시키고, 증가된 인덱스가 리스트 크기보다 작은지 여부가 판단된다.(단계 26) 단계(24) 후에는 단계(25)로 이행하여 인덱스가 증가된다.
증가된 인덱스가 리스트 크기보다 작은 것으로 판단되면 아직 신뢰도를 조사할 프로세스가 남아 있는 것으로 판단하여 단계(22)로 복귀하고 전술한 과정을 반복한다. 증가된 인덱스가 리스트 크기보다 작지 않은 것으로 판단되면 단계(27)로 이행하여 보호 대상 프로세스의 종료 이벤트가 있는지를 판단한다. 종료 이벤트가 있는 것으로 판단되면 본 발명에 의한 웹 인젝션 공격 차단을 종료시키며, 종료 이벤트가 없으면 단계(20)로 복귀한다.
도 3에 도시된 제2 실시예에서는, 먼저 프로세스 인젝션 모듈(15)이 본 발명에 의한 웹 인젝션 공격 차단 모듈(10)이 제공하는 라이브러리를 프로세스에 인젝션하거나 커널 드라이브를 로드한다.(단계 30) 커널 드라이버가 로드되면 후킹된 커널 함수에 대해서 모든 프로세스에 자동으로 영향을 미친다.
다음으로 후킹 무결성 검사 모듈(16)이 보호 배상 함수의 후킹 무결성 검사를 수행하며(단계 31), 후킹 모듈(17)이 단계(32)에서 보호 대상 함수의 후킹을 수행한다. 본 단계에서의 후킹은, 외부 프로세스가 웹 브라우저 모듈(1)의 보호 대상 함수를 호출할 때에 호출되는 프로세스 신뢰도 조사 함수로 후킹하는 것으로서 본 명세서에서 "프로세스 신뢰도 조사 함수"라 함은, 웹 브라우저 모듈(1)의 프로세스의 자원에 접근하려고 하는 외부 프로세스 또는 라이브러리의 신뢰도를 조사하고 조사 결과에 따라서 외부 프로세스 또는 라이브러리의 허용/차단을 수행하는 함수를 의미한다. 바람직하게는, 프로세스 인젝션 모듈(15)에 인젝션되는 라이브러리에 포함된다.
후킹 모듈(17)에 의한 후킹 방법을 예시하면 다음과 같다. 본 명세서에서 설명하는 후킹 방법 이외에도 본 발명의 목적을 달성하는데에 부합하기만 하면, 아래에 명시적으로 기재되어 있지 않지만 당업자에게 자명한 다양한 후킹 방법을 사용할 수 있다.
첫번째 후킹 방법으로서, 운영체제에서 제공하는 API 후킹함수(예를 들어, SetWindowsHookEx)를 이용하여 특정 Global API를 후킹할 수 있다. 두번째 방법으로는, 프로세스 인젝션 모듈(15)이 외부 프로세스에 대해서 쓰레드(thread)를 구동시키고, 쓰레드의 시작함수를 라이브러리를 로드하는 함수(예를 들어, LoadLibrary)로 함으로써 후킹하는 동적 라이브러리를 로드시키며, 프로세스내 함수 이름별 주소 테이블(예를 들어, IAT)에 존재하는 함수의 메모리 주소를 변경시키거나 함수의 코드를 직접 패치하는 방법이 있다.
세번째 방법으로는 커널 레벨의 후킹으로서, 커널 레벨에서 구동되는 드라이버를 통해 Global API에 해당하는 함수 이름별 주소 테이블(예를 들어, SSDT)의 주소를 바꾸거나 함수의 코드를 직접 패치하는 방법이 있다.
네번째 방법으로는, 운영체제에서 액션/오브젝트/API 필터링 기술이 제공되는 경우에 드라이버를 통해 해당 액션/오브젝트/API에 대한 필터를 등록하여 특정 프로세스가 API를 호출하면 해당되는 필터가 먼저 실행되도록 함수의 호출을 제어하도록 후킹하는 방법이 있다.
후킹을 수행한 후에는 후킹된 함수의 호출을 대기하며(단계 33), 함수 호출이 발생하면 그 호출이 내부 프로세스로부터의 접근인지를 판단한다.(단계 34) 내부 프로세스로부터 호출된 경우에는 단계(35)로 이행하여 콜스택(Call Stack)을 추출하고, 단계(36)에서 시작 함수의 라이브러리를 조사한다. 신뢰된 라이브러리인지 여부를 판단하고(단계 37), 신뢰된 라이브러리인 경우에는 단계(39)로 이행하여 보호 대상 함수의 호출을 허용하고, 신뢰된 라이브러리가 아닌 경우에는 단계(40)로 이행하여 보호 대상 함수의 호출을 차단하거나 또는 더미값(또는 핸들)을 리턴한다.
단계(34)에서 내부 프로세스로부터의 접근이 아닌 것으로 판단되면, 단계(38)로 이행하여 신뢰된 프로세스인지 여부를 판단한다. 신뢰된 프로세스인지 여부는 운영 정책 관리 모듈(12)을 참조하여 판단하거나, 또는 운영체제 자체가 원래 제공하는 프로세스인 경우 신뢰하는 것으로 판단한다.
좀 더 자세하게 설명하면, 운영 정책 관리 모듈(12)에서 정의한 정책에 따라서 신뢰 여부를 검증하며, 검증 요소가 될 수 있는 것들은 예를 들어 프로세스 또는 라이브러리의 경로, 프로세스 또는 라이브러리를 서명한 게시자 정보, 프로세스 또는 라이브러리의 해쉬값 등이 있다. 즉 보호 대상 프로세스에 접근하려는 프로세스 또는 라이브러리가 운영 정책에 정의되어 있는 경로에 위치하고 있거나, 해당 프로세스 또는 라이브러리를 서명한 게시자가 운영 정책에 정의되어 있는 게시자이거나, 프로세스 또는 라이브러리의 해쉬값을 계산했을 때 그 해쉬값이 운영 정책에서 정의되어 있는 해쉬값인 경우에는 신뢰된 프로세스 또는 라이브러리로 판단할 수 있다. 그 밖에도 평균적 기술자에게 자명한 다양한 신뢰도 판단 방법이 적용될 수 있으며, 그러한 신뢰도 판단 방법의 종류에 따라서 본 발명의 권리범위가 제한적으로 해석되는 것으로 이해되어서는 아니된다.
신뢰된 프로세스의 접근으로 판단되면 보호 대상 함수의 호출을 허용하고, 신뢰된 프로세스가 아닌 것으로 판단되면 단계(40)로 이행하여 보호 대상 함수의 호출을 차단하거나 또는 더미값(또는 핸들)을 리턴한다.
한편 단계(32)에서 보호 대상 함수가 후킹된 후에는 후킹 모니터링이 이루어지며 후킹 보호 모듈(18)에 의해 후킹 보호가 수행된다.(단계 41) 또한, 보호 대상 프로세스 종료 이벤트가 있는지가 체크되어(단계 42), 종료 이벤트가 없으면 후킹 보호 단계(41)가 계속되며, 종료 이벤트가 있는 경우에는 단계(43)으로 이행하여 보호 대상 함수의 후킹을 해제시킨다.
이상 첨부 도면을 참조하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
1: 웹 브라우저 모듈
2: DOM
10: 웹 인젝션 공격 차단 모듈
11: 통신 모듈
12: 운영 정책 관리 모듈
13: 프로세스 핸들 모니터링 모듈
14: 프로세스 제어 모듈
15: 프로세스 인젝션 모듈
16: 후킹 무결성 검사 모듈
17: 후킹 모듈
18: 후킹 보호 모듈

Claims (6)

  1. 웹 브라우저 모듈과, 문서 객체 모델을 포함하는 웹 인젝션 공격 차단 모듈을 포함하는 환경에서 상기 웹 인젝션 공격 차단 모듈이 수행하는 웹 인젝션 공격 차단 방법에 있어서,
    상기 웹 인젝션 공격 차단 모듈이 프로세스에 라이브러리를 인젝션하거나 또는 커널 드라이브를 로드하는 제1 단계와,
    상기 웹 인젝션 공격 차단 모듈이, 상기 제1 단계 이후에 보호 대상 함수에 대해 후킹 무결성 검사를 수행하는 제1-1 단계와,
    상기 제1-1 단계의 후킹 무결성 검사에서 후킹된 것으로 판단되면 상기 웹 인젝션 공격 차단 모듈이, 상기 보호 대상 함수를 후킹 이전 상태로 복원시키거나 로딩된 웹 브라우저를 종료시키는 제1-2 단계와,
    상기 웹 인젝션 공격 차단 모듈이, 보호 대상 함수를 프로세스 신뢰도 조사 함수로 후킹하는 제2 단계와,
    상기 보호 대상 함수의 호출을 외부 프로세스로부터 상기 웹 인젝션 공격 차단 모듈이 수신하는 제3 단계와,
    상기 호출이 내부 프로세스로부터의 호출이면 상기 웹 인젝션 공격 차단 모듈이 콜스택을 추출하고 시작 함수의 라이브러리를 조사한 후 신뢰된 라이브러리인 것으로 판단되면 보호 대상 함수의 호출을 허용하는 제4-1 단계와,
    상기 호출이 내부 프로세스로부터의 호출이 아니면 상기 웹 인젝션 공격 차단 모듈이 신뢰된 프로세스로 판단되면 보호 대상 함수의 호출을 허용하는 제4-2 단계와,
    상기 제4-1 단계에서 신뢰된 라이브러리가 아닌 것으로 판단되거나 상기 제4-2 단계에서 신뢰된 프로세스가 아닌 것으로 판단되면 보호대상 함수 호출을 차단하거나 또는 더미 값을 리턴하는 제5 단계를 포함하는,
    웹 인젝션 공격 차단 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 웹 인젝션 공격 차단 모듈이, 상기 제2 단계에서 후킹한 함수가 후킹 해제, 위조 및 변조 중 적어도 어느 하나로 변경되는 지를 모니터링하는 제2-1 단계와,
    상기 제2-1 단계에서 후킹 해제, 위조 및 변조 중 어느 하나에 해당되는 것으로 판단되면 상기 웹 인젝션 공격 차단 모듈이 제2 단계에서의 후킹 상태로 복원시키거나 로딩된 웹 브라우저를 종료시키는 제2-2 단계를 더 포함하는,
    웹 인젝션 공격 차단 방법.
  4. 청구항 1에 있어서,
    상기 제2 단계는 사용자 수준에서 이루어지는 후킹과 커널 수준에서 이루어지는 후킹 중 적어도 어느 하나를 포함하는 단계인,
    웹 인젝션 공격 차단 방법.
  5. 웹 브라우저 모듈 및 웹 인젝션 공격 차단 모듈을 포함하는 환경에서 상기 웹 인젝션 공격 차단 모듈이 수행하는 웹 인젝션 공격 차단 방법에 있어서,
    상기 웹 인젝션 공격 차단 모듈이, 보호 대상 프로세스를 오픈한 프로세스 핸들 리스트를 추출하는 제1 단계와,
    상기 제1 단계 이후에 프로세스 리스트 접근 인덱스를 초기화하는 제1-1 단계와,
    상기 웹 인젝션 공격 차단 모듈이, 상기 프로세스 핸들 리스트로부터 프로세스를 추출하는 제2 단계와,
    상기 웹 인젝션 공격 차단 모듈이, 상기 추출된 프로세스가 신뢰된 프로세스인지 여부를 판단하는 제3 단계와,
    상기 제3 단계에서 신뢰된 프로세스로 판단되면 상기 프로세스 리스트 접근 인덱스를 증가시키는 제3-1 단계와,
    상기 증가한 프로세스 리스트 접근 인덱스가 리스트 크기보다 작은지 여부를 판단하는 제3-2 단계와,
    상기 웹 인젝션 공격 차단 모듈이, 상기 제3 단계에서 신뢰된 프로세스가 아닌 경우에는 핸들을 닫거나 핸들을 소유한 프로세스를 종료하는 제4 단계와,
    보호 대상 프로세스 종료 이벤트가 있는지 여부를 판단하는 제5 단계를 포함하며,
    상기 제4 단계 수행 후 상기 제3-1 단계로 이행하며,
    상기 제3-2 단계에서 판단 결과 증가한 프로세스 리스트 접근 인덱스가 리스트 크기보다 작으면 상기 제2 단계로 이행하며, 상기 제3-2 단계에서 판단 결과 증가한 프로세스 리스트 접근 인덱스가 리스트 크기보다 작지 않으면 상기 제5 단계로 이행하며,
    상기 제5 단계에서 종료 이벤트가 있으면 종료하고, 종료 이벤트가 없으면 상기 제1 단계로 이행하는,
    웹 인젝션 공격 차단 방법.
  6. 삭제
KR1020120015637A 2012-02-16 2012-02-16 웹 인젝션 공격 차단 방법 KR101175951B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120015637A KR101175951B1 (ko) 2012-02-16 2012-02-16 웹 인젝션 공격 차단 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120015637A KR101175951B1 (ko) 2012-02-16 2012-02-16 웹 인젝션 공격 차단 방법

Publications (1)

Publication Number Publication Date
KR101175951B1 true KR101175951B1 (ko) 2012-08-22

Family

ID=46887598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120015637A KR101175951B1 (ko) 2012-02-16 2012-02-16 웹 인젝션 공격 차단 방법

Country Status (1)

Country Link
KR (1) KR101175951B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11165820B2 (en) 2015-10-13 2021-11-02 Check Point Software Technologies Ltd. Web injection protection method and system
CN114547628A (zh) * 2022-02-24 2022-05-27 浙江网商银行股份有限公司 漏洞检测方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101097590B1 (ko) * 2011-07-15 2011-12-22 오영광 동적 링크 라이브러리 인젝션 방어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101097590B1 (ko) * 2011-07-15 2011-12-22 오영광 동적 링크 라이브러리 인젝션 방어 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11165820B2 (en) 2015-10-13 2021-11-02 Check Point Software Technologies Ltd. Web injection protection method and system
CN114547628A (zh) * 2022-02-24 2022-05-27 浙江网商银行股份有限公司 漏洞检测方法及装置

Similar Documents

Publication Publication Date Title
US9798879B2 (en) Apparatus, system, and method for protecting against keylogging malware
US10623440B2 (en) Method and system for protecting web applications against web attacks
CN107077410B (zh) 分析客户端应用行为以检测异常并且阻止访问
US8316445B2 (en) System and method for protecting against malware utilizing key loggers
US9898739B2 (en) System and method for ensuring safety of online transactions
US9071600B2 (en) Phishing and online fraud prevention
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
US20140317733A1 (en) Method and client for ensuring user network security
US10867049B2 (en) Dynamic security module terminal device and method of operating same
JP2017228264A (ja) 安全なオンライン認証のためのシステム及び方法
CN112632605A (zh) 一种防止越权访问的方法、装置、计算机设备及存储介质
US9853940B2 (en) Passive web application firewall
Shah HTML5 Top 10 Threats Stealth Attacks and Silent Exploits
Satish et al. Web browser security: different attacks detection and prevention techniques
KR101175951B1 (ko) 웹 인젝션 공격 차단 방법
CN115879099A (zh) 一种dcs控制器、操作处理方法和防护子系统
CN101753545A (zh) 净盒技术
US8261328B2 (en) Trusted electronic communication through shared vulnerability
US11128639B2 (en) Dynamic injection or modification of headers to provide intelligence
CA2691129A1 (en) Activex object method and computer program system for protecting against crimeware key stroke loggers
Davi et al. Over-the-air cross-platform infection for breaking mTAN-based online banking authentication
Lee et al. Cognitive countermeasures against bad USB
KR101244649B1 (ko) 파밍 방어 방법
EP2854088B1 (en) A system and method for ensuring safety of online transactions
Mao et al. Research on the Hidden Technology of Troy Trojan-Horse

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20150817

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160810

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170801

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 7