KR101086451B1 - 클라이언트 화면 변조 방어 장치 및 방법 - Google Patents

클라이언트 화면 변조 방어 장치 및 방법 Download PDF

Info

Publication number
KR101086451B1
KR101086451B1 KR1020110087435A KR20110087435A KR101086451B1 KR 101086451 B1 KR101086451 B1 KR 101086451B1 KR 1020110087435 A KR1020110087435 A KR 1020110087435A KR 20110087435 A KR20110087435 A KR 20110087435A KR 101086451 B1 KR101086451 B1 KR 101086451B1
Authority
KR
South Korea
Prior art keywords
web
random
source
generated
screen
Prior art date
Application number
KR1020110087435A
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 KR1020110087435A priority Critical patent/KR101086451B1/ko
Priority to US13/304,069 priority patent/US8667294B2/en
Application granted granted Critical
Publication of KR101086451B1 publication Critical patent/KR101086451B1/ko

Links

Images

Classifications

    • 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/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

웹서버에서 URI(Uniform Resource Identifier) 및 웹 소스를 동적으로 생성하여 클라이언트에 제공하여 웹 인젝션 공격, 메모리 해킹 공격 등에 의한 클라이언트 화면의 변조를 방어하도록 한 클라이언트 화면 변조 방어 장치 및 방법이 제시된다. 제시된 클라이언트 화면 변조 방어 장치는 복수의 클라이언트로부터 요청되는 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 각각의 클라이언트에게 서로 다른 랜덤 웹 소스를 제공하는 랜덤 웹 생성부; 및 랜덤 웹 생성부에서 클라이언트로 제공되는 랜덤 웹 소스의 표출 웹 소스 고유값과, 랜덤 웹 생성부에서 생성된 랜덤 웹 소스의 생성 웹 소스 고유값을 비교하여 클라이언트에서 표출되는 랜덤 웹 소스의 화면 변조 발생 여부를 판단하는 웹 변조 판단부를 포함한다.

Description

클라이언트 화면 변조 방어 장치 및 방법{APPARATUS AND METHOD FOR DEFENDING A MODULATION OF THE CLIENT SCREEN}
본 발명은 클라이언트 화면 변조 방어 장치 및 방법에 관한 것으로, 더욱 상세하게는 웹 인젝션, 메모리해킹 공격 등을 이용하여 서버로부터 전송받은 데이터를 변경하여 사용자 화면을 조작하는 공격을 방어하는 클라이언트 화면 변조 방어 장치 및 방법에 관한 것이다.
클라이언트 화면 변조 공격은 사용자 정보 해킹을 위한 공격방법 중의 하나로, 사용자 컴퓨터(즉, 클라이언트)에서 설치된 악성코드에 의해 웹서버에서 제공되는 화면에 관련된 정보가 변조되어 클라이언트에서 다른 화면을 표시하여 사용자의 정보를 해킹하는 공격방법이다. 즉, 클라이언트 화면 변조 공격은 사용자에게 웹페이지가 표출되기 이전에 서버로부터 전달된 화면을 웹 인젝션, 메모리 해킹 등으로 변조하여 사용자가 의도하지 않은 화면이 전달되도록 하는 공격으로서 사용자가 보는 데이터와 서비스 제공자가 처리하는 데이터가 다르다.
웹 인젝션 기법은 웹브라우저를 통한 사용자의 URL 요청에 대한 서버의 응답을 수신(HTTPS를 사용한 요청 및 응답의 경우)을 수행한 이후 단계에서 수신 데이터를 변조한다. 서버의 응답은 HTML, JavaScript, XML 등과 같이 화면을 구성하는 텍스트들로 구성된다. 해커는 웹 인젝션 기법과 메모리 해킹 기법을 이용하여 서버의 응답을 변조(삽입, 치환, 삭제 등)하여 자신이 원하는 일을 사용자의 권한으로 수행할 수 있다. 예를 들어, 사용자로부터 “아이디”와 “비밀번호”를 입력받으며, 사용자 “비밀번호”는 키보드 보안 솔루션을 이용하도록 구성된 홈페이지가 있다면, 해커는 화면 변조 기법을 이용하여 “비밀번호 확인” 입력이라는 입력 태그를 추가하여 사용자로 하여금 비밀번호를 다시 입력하게 유도한다. 해커에 의해 인젝션된 입력 태그는 키보드 보안 솔루션으로 보호되지 않기 때문에 해커는 사용자의 “비밀번호”를 쉽게 알아낼 수 있다. 메모리 해킹 공격은 클라이언트의 메모리값을 수정 변경하여 변조된 데이터가 표출되거나 서버로 전달되게 하는 방법이다. 이러한 공격은 서비스 제공자와 사용자 모르게 이루어지기 때문에 웹페이지 제공자와 사용자 모두 인지하는데 어려움이 있다.
기존의 대표적인 대응 방법은 클라이언트에 설치된 악성코드를 찾아 제거할 수 있는 백신을 설치하여 공격이 이루어 지지 않게 하는 방식이다. 이러한 방식은 이미 알려져 있는 악성코드에 대하여 대응할 수 있으며 악성코드를 원천적으로 제거할 수 있어 효과적인 대응이 가능하다. 하지만, 이 방법은 백신이 인지할 수 없는 변종 악성코드에 대하여 방어할 수 없는 단점이 있으며, 사용자에게 의존하는 방식으로서 서비스 제공자는 아무 대응을 할 수 없다는 문제점이 있다.
기존의 또 다른 대응 방법으로는 컴퓨터 응용프로그램의 메모리 데이터 조작 방지 방법이 있다. 이 방법은 컴퓨터의 특정 응용 프로그램 실행 중 메모리 데이터 관련 API함수를 후킹(hooking) 한 후, 상기 해킹 프로그램에 의한 메모리 데이터 접근을 차단함으로써 해당 함수의 실행 결과가 보호하고자 하는 프로그램에 영향을 주지 못하도록 조기에 방지할 수 있도록 한 컴퓨터 응용 프로그램의 메모리 데이터 조작 방지 방법이다. 이 방법은 비정상적인 메모리 데이터 접근을 초기에 차단할 수 있는 효과가 있으나 시큐어 브라우저 등 전용 소프트웨어를 설치해야 하며 새로운 메모리 공격 방법에 대응이 어려운 문제점이 있다.
기존의 또 다른 대응 방법으로는 Address space randomization이 있다. 프로그램이 동작할 때마다 사용하거나 새로이 할당하는 메모리 주소 공간을 랜덤하게 변경하도록 조작하여, 해커의 조작된 입력값을 전송하는 경우 오버플로어가 발생하더라도 해커가 처음 생각했던 대로 메모리 주소 공간이 사용되고 있지 않기 때문에, 프로그램의 제어를 맘대로 변경할 수 없다. 하지만, 이 방법은 버퍼 오버플로어 공격에 효율적으로 대응할 수 있으나 웹 인젝션 공격에 대응할 수 없는 문제점이 있다.
본 발명은 동적으로 생성한 URI(Uniform Resource Identifier) 및 웹 소스 등의 랜덤 웹을 클라이언트에 제공하여 웹 인젝션 공격, 메모리 해킹 공격 등에 의한 클라이언트 화면의 변조를 방어하도록 한 클라이언트 화면 변조 방어 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은, 웹 제공자가 클라이언트의 요청을 처리하기 위해 생성한 웹 문서의 변조 여부를 클라이언트에서 출력되는 과정에서 판별하도록 한 클라이언트 화면 변조 방어 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은, 표출된 화면의 주요 정보를 웹 제공자(즉, 웹 서버)로 전달하여 클라이언트에서 인지되는 화면을 웹 제공자(즉, 웹 서버)가 검증하여 데이터의 변경 여부를 확인하도록 한 클라이언트 화면 변조 방어 장치 및 방법을 제공함에 있다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치는, 복수의 클라이언트들의 요청에 의하여 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 서로 다른 랜덤 웹 소스들을 생성하고 서로 다른 랜덤 웹 소스들을 클라이언트들 각각으로 제공하는 랜덤 웹 생성부; 및 랜덤 웹 소스들 중 어느 하나에 대하여 클라이언트들 각각에서 생성된 표출 웹 소스 고유값과, 랜덤 웹 소스들 중 어느 하나에 대한 생성 웹 소스 고유값을 비교하여 클라이언트들 각각에서 표출되는 랜덤 웹 소스의 화면 변조 발생 여부를 판단하는 웹 변조 판단부를 포함한다.
랜덤 웹 생성부는, 복수의 클라이언트들로부터 요청되는 웹 페이지에 해당하는 랜덤 URI를 생성하는 랜덤 URI 생성 모듈; 및 생성된 랜덤 URI와 연계하여 랜덤 웹 소스를 생성하는 랜덤 웹 소스 생성 모듈을 포함한다.
랜덤 웹 소스 생성 모듈은, 생성된 랜덤 URI에 해당하는 웹 페이지에 해당하는 웹 소스에 포함되는 변수들에 대응되는 랜덤 변수들을 생성하고, 웹 소스의 변수들을 생성한 랜덤 변수들로 변환하여 랜덤 웹 소스를 생성한다.
랜덤 웹 소스 생성 모듈은, 의미 없는 웹 소스 구문을 랜덤 위치에 삽입하고, 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경한다.
웹 변조 판단부는, 생성된 랜덤 웹 소스의 생성 웹 소스 고유값을 산출하는 생성 웹 소스 고유값 산출 모듈; 및 클라이언트들 각각에서 생성된 표출 웹 소스 고유값을 산출한 생성 웹 소스 고유값과 비교하여 클라이언트들 각각에서 표출된 웹 소스의 화면 변조 여부를 판단하는 변조 판단 모듈을 포함한다.
생성 웹 소스 고유값 산출 모듈은, 복수의 클라이언트들과 공유되는 고유키를 이용하여 생성 웹 소스 고유값을 산출한다.
변조 판단 모듈은, 복수의 클라이언트 각각에 대해 서로 다른 고유키들을 공유한다.
변조 판단 모듈은, 고유키를 이용하여 산출된 랜덤 웹 소스의 표출 웹 소스 고유값을 복수의 클라이언트들 중 적어도 하나로부터 수신한다.
생성된 랜덤 URI들 및 랜덤 웹 소스들과, 랜덤 웹 소스의 화면 변조 발생 여부를 판단하기 위해 산출하는 생성 웹 소스 고유값을 저장하는 저장부를 더 포함한다.
중요 정보를 복수의 클라이언트들 중에 적어도 하나로 전송하여 중요 정보에 해당하는 입력 정보의 입력을 요청하고, 복수의 클라이언트들 중에 적어도 하나로부터 수신되는 입력 정보와 중요 정보를 비교하여 표출 화면의 변조 여부를 검증하는 표출 화면 검증부를 더 포함한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 방법은, 복수의 클라이언트들의 요청에 의하여 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 서로 다른 랜덤 웹 소스들을 생성하고 서로 다른 랜덤 웹 소스들을 클라이언트들 각각으로 제공하는 단계; 및 랜덤 웹 소스들 중 어느 하나에 대하여 클라이언트들 각각에서 생성된 표출 웹 소스 고유값과, 랜덤 웹 소스들 중 어느 하나에 대한 생성 웹 소스 고유값을 비교하여 클라이언트들 각각에서 표출되는 랜덤 웹 소스의 화면 변조 발생 여부를 판단하는 단계를 포함한다.
랜덤 웹 소스를 제공하는 단계는, 복수의 클라이언트들 중에 적어도 하나로부터 수신한 웹 요청에 해당하는 이전 생성 랜덤 웹 소스가 존재하지 않으면 웹 요청에 해당하는 웹 페이지에 대한 랜덤 URI를 생성하는 단계; 생성된 랜덤 URI와 연계하여 랜덤 웹 소스를 생성하는 단계; 생성된 랜덤 URI 및 랜덤 웹 소스를 저장하는 단계; 및 생성된 웹 소스를 복수의 클라이언트들 중에 적어도 하나로 전송하는 단계를 포함한다.
랜덤 웹 소스를 제공하는 단계는, 수신한 웹 요청에 해당하는 이전 생성 랜덤 웹 소스가 존재하면 해당 랜덤 웹 소스를 검출하는 단계를 더 포함하고, 전송하는 단계에서는 검출한 랜덤 웹 소스를 클라이언트로 전송한다.
랜덤 웹 소스를 생성하는 단계는, 생성된 랜덤 URI에 해당하는 웹 페이지에 포함되는 변수들에 대응되는 랜덤 변수들을 생성하는 단계; 및 웹 페이지에 포함된 변수들을 생성된 랜덤 변수들로 변경하여 랜덤 웹 소스를 생성하는 단계를 포함한다.
랜덤 웹 소스를 생성하는 단계는, 의미 없는 웹 소스 구문을 랜덤 위치에 랜덤하게 삽입하는 단계; 및 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경하는 단계; 중에 적어도 하나의 단계를 포함한다.
화면 변조 발생 여부를 판단하는 단계는, 클라이언트와 공유되는 고유키를 이용하여 복수의 클라이언트들 중에 적어도 하나에서 산출되는 랜덤 웹 소스에 대한 표출 웹 소스 고유값을 수신하는 단계; 고유키를 이용하여 랜덤 웹 소스에 대한 생성 웹 소스 고유값을 산출하는 단계; 및 수신한 표출 웹 소스 고유값과 산출한 생성 웹 소스 고유값을 비교하여 화면 변조 발생 여부를 판단하는 단계를 포함한다.
화면 변조 발생 여부를 판단하는 단계는, 복수의 클라이언트들과 웹 소스 고유값 산출을 위한 고유키를 공유하는 단계를 더 포함하되, 고유키를 공유하는 단계에서는 복수의 클라이언트들 각각에 대해 서로 다른 고유키를 공유한다.
화면 변조 발생 여부를 판단하는 단계는, 산출한 생성 웹 소스 고유값을 저장하는 단계를 더 포함한다.
복수의 클라이언트들 중에 적어도 하나로 전송되는 중요 정보에 대한 입력 정보를 근거로 웹 소스에 해당하는 표출 화면의 변조 여부를 검증하는 단계를 더 포함한다.
표출 화면의 변조 여부를 검증하는 단계는, 중요 정보를 복수의 클라이언트들 중에 적어도 하나로 전송하는 단계; 전송된 중요 정보를 복수의 클라이언트들 중에 적어도 하나에서 표출하여 입력 정보의 입력을 요청하는 단계; 복수의 클라이언트들 중에 적어도 하나로부터 입력 정보를 수신하는 단계; 및 전송한 중요 정보와 수신한 입력 정보를 비교하여 표출 화면의 변조 여부를 검증하는 단계를 포함한다.
본 발명에 의하면, 클라이언트 화면 변조 방어 장치 및 방법은 URI(Uniform Resource Identifier) 및 웹 소스 등을 동적으로 생성한 랜덤 웹을 클라이언트에 제공함으로써, 웹 인젝션 공격, 메모리 해킹 공격 등에 의한 클라이언트 화면의 변조를 방지할 수 있는 효과가 있다. 즉, 클라이언트 화면 변조 방어 장치 및 방법은 클라이언트에 악성코드 또는 해킹 툴이 설치된 경우에도 웹페이지 등 웹 서버에서 랜덤 웹을 생성하여 제공하기 때문에 화면 변조 공격을 받고 있는 클라이언트에 공격을 회피한 정상적인 화면을 제공할 수 있는 효과가 있다.
또한, 클라이언트 화면 변조 방어 장치 및 방법은 클라이언트에 표출된 화면이 공격을 당하여 변조된 경우에 웹 서버에서 화면의 주요 정보에 대한 변조 여부를 인지하여 화면 변조 사실을 인지하여 화면 변조에 대응할 수 있도록 하는 효과가 있다.
또한, 클라이언트 화면 변조 방어 장치 및 방법은 클라이언트와 웹 서버 사이에서 송수신되는 중요데이터의 변경 여부를 통해 상호 인증을 수행함으로써, 인터넷을 통한 중요 거래(예컨대, 인터넷 뱅킹, 주식거래, 전자 상거래 등)에서 사용자 인증 후에 발생하는 클라이언트의 화면 변조를 통한 해킹을 탐지하여 예방할 수 있다. 즉, 기존의 보안 솔루션에서 인터넷을 통한 중요 거래(예컨대, 인터넷 뱅킹, 주식거래, 전자 상거래 등)에서 비밀번호, OTP등을 이용하여 사용자를 인증하고 있으나 클라이언트 화면에 표출된 내용이 서비스제공자가 제공한 내용과 일치하는지 확인이 불가능한 문제를 해결하기 위해서, 본 발명은 사용자가 인지하는 전자거래와 같은 중요 트랜잭션과 서비스제공자가 수행하려는 트랜잭션이 동일함을 확인하는 방법으로 사용자 화면 변조를 통한 대부분의 해킹 시도를 탐지할 수 있다.
또한, 클라이언트 화면 변조 방어 장치 및 방법은 알려지지 않은 악성코드에 의한 웹 인젝션 공격 등과 같은 화면 변조 공격에 대응할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치를 포함하는 웹 서비스 시스템을 설명하기 위한 도면.
도 2는 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치를 설명하기 위한 도면.
도 3 내지 도 7은 도 2의 랜덤 웹 생성부를 설명하기 위한 도면.
도 8은 도 2의 웹 변조 판단부를 설명하기 위한 도면.
도 9 내지 도 11은 도 2의 표출 화면 검증부를 설명하기 위한 도면.
도 12는 도 1의 클라이언트를 설명하기 위한 도면.
도 13은 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 방법을 설명하기 위한 흐름도.
도 14는 도 13의 랜덤 웹 페이지 제공 단계를 설명하기 위한 흐름도.
도 15는 도 13의 웹 페이지 변조 판단 단계를 설명하기 위한 흐름도.
도 16은 도 13의 표출 화면 검증 단계를 설명하기 위한 흐름도.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하, 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치를 포함하는 웹 서비스 시스템을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 1은 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치를 포함하는 웹 서비스 시스템을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 웹 서비스 시스템은 웹 서버(100), 클라이언트 화면 변조 방어 장치(200), 복수의 클라이언트(300)를 포함하여 구성된다.
웹 서버(100)는 복수의 클라이언트(300)에게 제공되는 복수의 웹 페이지를 관리한다. 이때, 웹 서버(100)는 네트워크를 통해 클라이언트 화면 변조 방어 장치(200)와 연결된다. 웹 서버(100)는 클라이언트(300)로부터의 웹 요청에 따라 해당 웹 페이지(또는, 웹 소스)를 클라이언트 화면 변조 방어 장치(200)에게로 전송한다.
클라이언트 화면 변조 방어 장치(200)는 웹 인젝션 공격, 메모리 해킹 공격 등에 의한 클라이언트(300) 화면의 변조를 방지하기 위해서 웹 서버(100)에서 제공되는 동일한 웹 페이지를 각 클라이언트(300)별로 서로 다른 랜덤 웹 소스로 제공한다. 즉, 클라이언트 화면 변조 방어 장치(200)는 클라이언트(300)로부터 요청되는 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환한다. 클라이언트 화면 변조 방어 장치(200)는 변환된 랜덤 URI를 통해 각각의 클라이언트(300)에게 서로 다른 랜덤 웹 소스를 제공한다. 클라이언트(300)에 표출된 정보에 대한 응답 정보를 이용하여 표출 화면의 무결성(즉, 변조 여부)을 검증한다. 여기서, 클라이언트 화면 변조 방어 장치(200)는 웹 서버(100)와 별도로 형성되는 것으로 도시하였으나, 모듈, 애플리케이션의 형태로 웹 서버(100)에 내장될 수도 있다.
이와 같이, 본 발명에서 웹 서버(100)(즉, 웹 페이지 제공자)는 클라이언트 화면 변조 방어 장치(200)를 통해 클라이언트(300; 즉, 사용자)가 웹 서버(100)에 웹 요청을 할 때마다 동일 기능을 수행하는 URI, 웹 소스를 랜덤하게 생성하여 응답한다. 이때, 클라이언트 화면 변조 방어 장치(200)는 사용자별로 제공한 웹페이지 제공정보를 웹 서버(100)에 저장(예컨대, 웹 세션)하고 있으며 모든 웹 요청에 대해 서로 다른 소스코드에서 동일한 기능과 화면 제공을 보장한다.
클라이언트(300)는 화면 변조 발생 여부를 판단하는데 근거가 되는 표출 웹 소스 고유값을 산출한다. 즉, 클라이언트(300)는 클라이언트 화면 변조 방어 장치(200)와 공유되는 고유키를 이용하여 표출되는 웹 소스의 표출 웹 소스 고유값을 산출한다. 클라이언트(300)는 산출한 표출 웹 소스 고유값을 클라이언트 화면 변조 방어 장치(200)로 전송한다.
클라이언트(300)는 표출 화면 검증을 위해 클라이언트 화면 변조 방어 장치(200)로부터 수신하는 중요 정보를 표출한다. 클라이언트(300)는 표출된 중요 정보에 대한 입력 정보를 입력받아 클라이언트 화면 변조 방어 장치(200)에게로 전송한다.
이를 위해, 도 12에 도시된 바와 같이, 클라이언트(300)는 클라이언트 화면 변조 방어 장치(200)와 데이터를 송수신하는 통신부(320), 표출되는 중요 정보에 대한 입력 정보를 입력받는 입력부(340), 고유키를 이용하여 표출되는 웹 소스의 표출 웹 소스 고유값을 산출하는 표출 웹 소스 고유값 산출부(360), 클라이언트 화면 변조 방어 장치(200)로부터 수신되는 웹 소스 및 중요 정보를 화면에 표출하는 웹 소스 처리부(380)를 포함한다.
이하, 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치(200)를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 2는 본 발명의 실시예에 따른 클라이언트 화면 변조 방어 장치(200)를 설명하기 위한 도면이다. 도 3 내지 도 7은 도 2의 랜덤 웹 생성부(230)를 설명하기 위한 도면이고, 도 8은 도 2의 웹 변조 판단부(250)를 설명하기 위한 도면이고, 도 9 내지 도 11은 도 2의 표출 화면 검증부(270)를 설명하기 위한 도면이고, 도 12는 도 1의 클라이언트(300)를 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, 클라이언트 화면 변조 방어 장치(200)는 통신부(210), 랜덤 웹 생성부(230), 웹 변조 판단부(250), 표출 화면 검증부(270), 저장부(290)를 포함하여 구성된다.
통신부(210)는 복수의 클라이언트(300)와 데이터를 송수신한다. 즉, 통신부(210)는 클라이언트(300) 화면 변조 방지를 위해 사용되는 데이터를 클라이언트(300)와 송수신한다.
통신부(210)는 랜덤 웹 생성부(230)에서 생성되는 랜덤 웹 소스를 웹 요청을 발생한 클라이언트(300)에게로 전송한다.
통신부(210)는 클라이언트(300)로부터 표출 웹 소스 고유값을 수신한다. 통신부(210)는 수신한 표출 웹 소스 고유값을 웹 변조 판단부(250)로 전송한다.
통신부(210)는 표출 화면 검증부(270)에서 생성된 중요 정보를 클라이언트(300)로 전송한다. 통신부(210)는 전송한 중요 정보에 대한 입력 정보를 해당 클라이언트(300)로부터 수신하여 표출 화면 검증부(270)로 전송한다.
랜덤 웹 생성부(230)는 복수의 클라이언트(300)로부터 요청되는 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 각각의 클라이언트(300)에게 서로 다른 랜덤 웹 소스를 제공한다. 즉, 랜덤 웹 생성부(230)는 동일한 웹 페이지를 클라이언트(300)별로 서로 다른 랜덤 웹 소스를 생성하여 제공한다. 이때, 랜덤 웹 생성부(230)는 각 클라이언트(300)에 제공하기 위해 생성한 랜덤 URI를 저장부(290)에 저장하여 관리한다. 랜덤 웹 생성부(230)는 랜덤 웹 소스를 저장부(290)에 저장할 수도 있다. 이를 위해, 도 3에 도시된 바와 같이, 랜덤 웹 생성부(230)는 랜덤 URI 생성 모듈(232) 및 랜덤 웹 소스 생성 모듈(234)을 포함하여 구성된다.
랜덤 URI 생성 모듈(232)은 클라이언트(300)로부터 요청되는 웹 페이지에 해당하는 랜덤 URI를 생성한다. 즉, 랜덤 URI 생성 모듈(232)은 클라이언트(300)의 요청에 따라 같은 웹페이지를 랜덤으로 생성된 동적 URI로 생성한다. 랜덤 URI 생성 모듈(232)은 생성한 랜덤 URI를 저장부(290)에 저장한다.
랜덤 웹 소스 생성 모듈(234)은 랜덤 URI 생성 모듈(232)에서 생성되는 랜덤 URI와 연계하여 랜덤 웹 소스를 생성한다. 이때, 랜덤 웹 소스 생성 모듈(234)은 랜덤 URI 생성 모듈(232)에서 생성된 랜덤 URI에 해당하는 웹 페이지에 포함되는 변수들에 대응되는 랜덤 변수를 생성한다. 랜덤 웹 소스 생성 모듈(234)은 웹 페이지에 해당하는 웹 소스의 변수들을 기생성한 랜덤 변수로 변환하여 랜덤 웹 소스를 생성한다.
랜덤 웹 소스 생성 모듈(234)은 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경하여 삽입한다. 예를 들면, 도 4에 도시된 바와 같이, 랜덤 웹 소스 생성 모듈(234)은 세 글자로 된 랜덤 문자열을 생성한다. 랜덤 웹 소스 생성 모듈(234)은 웹 페이지에 포함된 자바스크립트의 변수 이름을 생성한 랜덤 문자열로 변경한다. 도 5에 도시된 바와 같이, 랜덤 웹 소스 생성 모듈(234)은 다섯 글자로 된 랜덤 문자열을 생성한다. 랜덤 웹 소스 생성 모듈(234)은 웹 페이지에 포함된 자바스크립트 내 함수의 이름을 생성한 다섯 글자의 랜덤 문자열로 변경한다. 도 6에 도시된 바와 같이, 랜덤 웹 소스 생성 모듈(234)은 웹 페이지의 폼에서 사용하는 태그 이름을 랜덤화한다. 이때, 웹 세션에 ACCOUNT_NO에 해당하는 태그 이름의 랜덤화를 위해 랜덤하게 생성한 문자가 저장되어 있다.
랜덤 웹 소스 생성 모듈(234)은 의미 없는 웹 소스 구문을 랜덤 위치에 삽입한다. 예를 들면, 도 7에 도시된 바와 같이, 랜덤 웹 소스 생성 모듈(234)은 두 번째 및 세 번째 행에 클라이언트(300)의 화면에는 보이지 않는 의미 없는 구문을 웹 소스에 삽입한다.
이와 같이, 악성코드를 이용하여 웹 인젝션 위치를 찾을 수 없게 하기 위하여, 랜덤 웹 소스 생성 모듈(234)은 웹 페이지에 포함된 자바스크립트 함수 이름 랜덤화, 자바스크립트 내 변수 이름 랜덤화, 폼에서 사용하는 태그 이름 랜덤화, 의미없는 HTML, 자바스크립트 구문 랜덤 위치에 삽입을 한다.
랜덤 웹 소스 생성 모듈(234)은 생성한 랜덤 웹 소스를 저장부(290)에 저장한다. 랜덤 웹 소스 생성 모듈(234)은 통신부(210)를 통해 랜덤 웹 소스를 웹 요청을 발생한 클라이언트(300)에게로 전송한다.
웹 변조 판단부(250)는 랜덤 웹 소스의 고유값들을 이용하여 클라이언트(300)의 화면 변조 발생 여부를 판단한다. 즉, 웹 변조 판단부(250)는 랜덤 웹 생성부(230)에서 클라이언트(300)로 제공되는 랜덤 웹 소스의 표출 웹 소스 고유값과, 랜덤 웹 생성부(230)에서 생성된 랜덤 웹 소스의 생성 웹 소스 고유값을 비교하여 클라이언트(300)에서 표출되는 랜덤 웹 소스의 화면 변조 발생 여부를 판단한다.
이를 위해, 도 8에 도시된 바와 같이, 웹 변조 판단부(250)는 생성 웹 소스 고유값 산출 모듈(252) 및 변조 판단 모듈(254)을 포함하여 구성된다.
생성 웹 소스 고유값 산출 모듈(252)은 랜덤 웹 생성부(230)에서 생성되는 랜덤 웹 소스의 생성 웹 소스 고유값을 산출한다. 이때, 생성 웹 소스 고유값 산출부는 클라이언트(300)와 공유되는 고유키를 이용하여 랜덤 웹 소스의 생성 웹 소스 고유값을 산출한다. 생성 웹 소스 고유값 산출 모듈(252)은 산출한 생성 웹 소스 고유값을 저장부(290)에 저장한다.
변조 판단 모듈(254)은 클라이언트(300)로부터 수신되는 랜덤 웹 소스에 대한 표출 웹 소스 고유값을 생성 웹 소스 고유값과 비교하여 표출 웹 소스의 화면 변조 여부를 판단한다. 이때, 변조 판단 모듈(254)은 통신부(210)를 통해 표출 웹 소스 고유값을 클라이언트(300)로부터 수신한다. 즉, 클라이언트(300)는 공유되는 고유키를 이용하여 표출 웹 소스 고유값을 산출한다. 클라이언트(300)는 네트워크를 통해 산출한 표출 웹 소스 고유값을 변조 판단 모듈(254)로 전송한다. 예를 들면, 변조 판단 모듈(254)(또는, 웹 서버(100)(즉, 웹 서비스 제공자))는 먼저 안전한 방법을 통하여 고유값 계산을 위한 고유키 값을 공유한다. 이때, 변조 판단 모듈(254)은 DH Key exchange, ID 비밀번호 등과 같이 클라이언트(300)와 변조 판단 모듈(254)만 아는 값을 이용하여 고유키를 공유한다. 변조 판단 모듈(254)은 클라이언트(300)들이 웹 서버(100)에 요청을 할 때마다 제공한 웹 페이지를 이용하여 생성한 생성 웹 소스 고유값을 산출한다. 여기서, 웹 소스는 HTML, JavaScript, XML 등과 같이 웹 페이지 서비스를 위해 사용되는 소스를 통칭한다. 생성 웹 소스 고유값은 웹 소스를 HMAC(즉, 해시 기반 메시지 인증 코드(HMAC: hash-based message authentication code))한 결과값을 의미한다. 변조 판단 모듈(254)은 산출한 생성 웹 소스 고유값을 저장부(290)에 저장한 후에 클라이언트(300)에게 전송한다. 클라이언트(300)는 수신한 웹 소스(즉, 웹 페이지)를 화면에 표출한 후에 표출 웹 소스 고유값을 산출하여 변조 판단 모듈(254)로 전송한다. 변조 판단 모듈(254)은 저장된 웹 소스 고유값과 전달된 표출 웹 소스 고유값을 비교하여 변조 여부를 판단한다. 이때, 변조 판단 모듈(254)은 표출 화면이 변조된 경우 웹 서버(100)(즉, 웹 서비스 제공자)에게 화면 변조 발생을 통보한다.
표출 화면 검증부(270)는 클라이언트(300)로 제공되는 중요 정보에 해당하는 입력 정보를 이용하여 클라이언트(300)에 표출된 화면의 변조 여부를 검증한다. 즉, 도 9에 도시된 바와 같이, 표출 화면 검증부(270)는 중요 정보를 생성하여 저장부(290)에 저장한다. 이때, 표출 화면 검증부(270)는 미리 생성된 중요 정보를 저장부(290)로부터 검출하는 것으로 중요 정보의 생성을 대신할 수도 있다. 표출 화면 검증부(270)는 생성된 중요 정보를 통신부(210)를 통해 클라이언트(300)로 전송한다. 도 10에 도시된 바와 같이, 클라이언트(300)는 수신한 중요 정보와 입력 정보의 입력을 요청하는 입력창을 화면에 표출하여 중요 정보에 해당하는 입력 정보의 입력을 사용자에게 요청한다. 이때, 메모리 해킹 또는 웹 인젝션 공격을 당한 경우, 해커가 입력한 다른 정보가 중요 정보를 대신하여 클라이언트(300)의 화면에 표출된다. 도 11에 도시된 바와 같이, 클라이언트(300)는 문자 인식기를 이용하여 사용자에 의해 입력된 입력 정보를 인식한다. 클라이언트(300)는 인식한 입력 정보를 통신부(210)를 통해 표출 화면 검증부(270)로 전송한다. 표출 화면 검증부(270)는 클라이언트(300)로부터 수신되는 입력 정보와 기전송한 중요 정보를 비교하여 표출 화면의 변조 여부를 검증한다. 표출 화면 검증부(270)는 전송된 중요 정보와 수신한 입력 정보가 일치하는 경우에만 다음 서비스(즉, 웹 페이지)를 클라이언트(300)에게 제공한다. 여기서, 사용자에게 입력을 요청하거나, 문자 인식기에서 인식해야 하는 중요 정보는 정해진 것이 아니라 임의로 선택되어야 한다. 즉, 중요 정보는 클라이언트(300)별로 다른 정보(예를 들면, 사용자 이름, 고유번호 등)로 구성되어 제공된다. 이때, 클라이언트(300)는 중요 정보에 포함된 문자, 숫자 등으로 모두 포함하는 입력 정보의 입력을 요청한다. 물론, 클라이언트(300)는 중요 정보에 포함된 문자, 숫자 중에서 일부를 포함하는 입력 정보의 입력을 요청할 수도 있다. 예를 들어, 중요 정보가 사용자 이름인 경우, 제1사용자의 클라이언트(300)에서는 이름의 첫 번째 문자와 세 번째 문자를 입력하도록 요청하고, 제2사용자의 클라이언트(300)에서는 이름의 두 번째 문자 및 세 번째 문자를 입력하도록 요청하고, 제3사용자의 클라이언트(300)에서는 이름의 초성만 입력하도록 요청한다.
저장부(290)는 랜덤 웹 생성부(230)에서 생성되는 랜덤 URI 및 랜덤 웹 소스를 저장한다. 저장부(290)는 웹 변조 판단부(250)에서 랜덤 웹 소스의 화면 변조 발생 여부를 판단하기 위해 산출하는 생성 웹 소스 고유값을 저장한다.
이하, 본 발명의 실시예에 따른 클라이언트(300) 화면 변조 방어 방법을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 13은 본 발명의 실시예에 따른 클라이언트(300) 화면 변조 방어 방법을 설명하기 위한 흐름도이다. 도 14는 도 13의 랜덤 웹 페이지 제공 단계를 설명하기 위한 흐름도이고, 도 15는 도 13의 웹 페이지 변조 판단 단계를 설명하기 위한 흐름도이고, 도 16은 도 13의 표출 화면 검증 단계를 설명하기 위한 흐름도이다.
클라이언트 화면 변조 방어 장치(200)는 복수의 클라이언트(300)로부터 요청되는 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 각각의 클라이언트(300)에게 서로 다른 랜덤 웹 소스를 제공한다(S100). 랜덤 웹 소스 제공 단계를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.
클라이언트(300)에서 발생한 웹 요청이 수신되면(S110; YES), 클라이언트 화면 변조 방어 장치(200)는 해당 웹 요청에 해당하는 이전 생성 랜덤 웹 소스의 존재 여부를 판단한다(S120).
이때, 이전 생성 랜덤 웹 소스가 존재하는 경우(S120; YES), 클라이언트 화면 변조 방어 장치(200)는 저장부(290)에 저장된 복수의 랜덤 웹 소스 중에서 웹 요청에 해당하는 랜덤 웹 소스를 검출한다(S130).
이전 생성 랜덤 웹 소스가 존재하지 않는 경우(S120; NO), 클라이언트 화면 변조 방어 장치(200)는 웹 요청에 해당하는 웹 페이지에 대한 랜덤 URI를 생성한다(S140).
클라이언트 화면 변조 방어 장치(200)는 생성한 랜덤 URI를 저장부(290)에 저장(S150)한 후에, 생성된 랜덤 URI와 연계하여 랜덤 웹 소스를 생성한다(S160). 즉, 클라이언트 화면 변조 방어 장치(200)는 생성된 랜덤 URI에 해당하는 웹 페이지에 포함되는 변수들에 대응되는 랜덤 변수를 생성한다. 클라이언트 화면 변조 방어 장치(200)는 웹 페이지에 포함된 변수들을 생성된 랜덤 변수로 변경하여 랜덤 웹 소스를 생성한다. 이후, 클라이언트 화면 변조 방어 장치(200)는 의미 없는 웹 소스 구문을 랜덤 위치에 랜덤하게 삽입한다. 물론, 클라이언트 화면 변조 방어 장치(200)는 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경하여 삽입할 수도 있다.
클라이언트 화면 변조 방어 장치(200)는 검출한 랜덤 웹 소스 또는 생성한 랜덤 웹 소스를 웹 요청을 발생한 클라이언트(300)에게로 전송한다(S170)
클라이언트 화면 변조 방어 장치(200)는 서로 다른 랜덤 웹 소스를 제공하는 단계에서 클라이언트(300)로 제공되는 랜덤 웹 소스의 표출 웹 소스 고유값과, 랜덤 웹 소스의 생성 웹 소스 고유값을 비교하여 클라이언트(300)에서 표출되는 랜덤 웹 소스의 화면 변조 발생 여부를 판단한다(S200). 화면 변조 발생 여부 판단 단계를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.
먼저, 클라이언트 화면 변조 방어 장치(200)는 복수의 클라이언트(300)와 변조 판단을 위한 고유키를 공유한다(S210). 이때, 클라이언트 화면 변조 방어 장치(200)는 복수의 클라이언트(300)별로 서로 다른 고유키를 공유한다. 물론, 클라이언트 화면 변조 방어 장치(200)는 복수의 클라이언트(300)와 하나의 고유키 또는 일부 중복되는 복수의 고유키를 공유할 수도 있다.
클라이언트(300)로부터 웹 요청이 발생하면(S220; YES), 클라이언트 화면 변조 방어 장치(200)는 해당 클라이언트(300)에 제공된 랜덤 웹 소스에 대한 생성 웹 소스 고유값을 산출하여 저장한다(S230). 이때, 클라이언트 화면 변조 방어 장치(200)는 웹 요청을 발생한 클라이언트(300)와 공유하는 고유키를 이용하여 생성 웹 소스 고유값을 산출한다.
클라이언트 화면 변조 방어 장치(200)는 클라이언트(300)로부터 표출 웹 소스 고유값을 수신한다(S240). 이때, 클라이언트(300)는 공유하는 고유키를 이용하여 화면에 표출된 웹 소스에 대한 표출 웹 소스 고유값을 산출하여 클라이언트 화면 변조 방어 장치(200)에게로 전송한다.
클라이언트 화면 변조 방어 장치(200)는 수신한 표출 웹 소스 고유값과 산출한 생성 웹 소스 고유값을 비교하여 화면 변조 발생 여부를 판단한다. 이때, 클라이언트 화면 변조 방어 장치(200)는 두 고유값이 다르면 화면 변조가 발생한 것으로 판단한다. 클라이언트 화면 변조 방어 장치(200)는 두 고유값이 동일하면 화면 변조가 발생하지 않은 것으로 판단한다.
화면 변조가 발생한 것으로 판단하면(S250; YES), 클라이언트 화면 변조 방어 장치(200)는 웹 페이지 표출 에러 처리를 수행한다(S260). 즉, 클라이언트 화면 변조 방어 장치(200)는 에러 메시지를 클라이언트(300)의 화면에 출력하거나, 웹 서버(100)로 에러 메시지를 전송하여 웹 서비스 제공자에게 화면 변조 발생을 통보한다.
클라이언트 화면 변조 방어 장치(200)는 클라이언트(300)로 전송되는 중요 정보에 대한 입력 정보를 근거로 웹 소스에 해당하는 표출 화면의 변조 여부를 검증한다(S300). 표출 화면 검증 단계를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.
먼저, 클라이언트 화면 변조 방어 장치(200)는 표출 화면의 검증을 위해 중요 정보를 클라이언트(300)로 전송한다(S310). 이때, 중요 정보는 숫자, 문자 등의 조합을 통해 생성되는 정보로 검증시마다 랜덤하게 생성된다.
클라이언트(300)는 클라이언트 화면 변조 방어 장치(200)로부터 수신한 중요 정보를 화면에 표출하여 입력 정보의 입력을 요청한다(S320). 사용자는 표출된 중요 정보에 해당하는 입력 정보를 입력한다. 클라이언트(300)는 입력된 입력 정보를 클라이언트 화면 변조 방어 장치(200)에게로 전송한다.
클라이언트(300)로부터 입력 정보가 수신되면(S330; YES), 클라이언트 화면 변조 방어 장치(200)는 전송한 중요 정보와 수신한 입력 정보를 비교하여 표출 화면 검증을 수행한다(S340). 이때, 클라이언트 화면 변조 방어 장치(200)는 중요 정보와 입력 정보가 동일하면 표출 화면 검증 성공으로 판단한다.
표출 화면 검증이 성공하면(S350; YES), 클라이언트 화면 변조 방어 장치(200)는 다음 웹 페이지를 전송한다(S360).
표출 화면 검증이 실패하며(S350; NO), 클라이언트 화면 변조 방어 장치(200)는 표출 화면 에러 처리를 수행한다(S370). 즉, 클라이언트 화면 변조 방어 장치(200)는 에러 메시지를 클라이언트(300)로 전송하여 화면에 표출한다. 클라이언트 화면 변조 방어 장치(200)는 에러 메시지를 웹 서로 전송하여 웹 서비스 제공자에게 표출 화면 검증 실패를 통보한다.
상술한 바와 같이, 클라이언트 화면 변조 방어 장치(200) 및 방법은 URI(Uniform Resource Identifier) 및 웹 소스 등을 동적으로 생성한 랜덤 웹을 클라이언트(300)에 제공함으로써, 웹 인젝션 공격, 메모리 해킹 공격 등에 의한 클라이언트(300) 화면의 변조를 방지할 수 있는 효과가 있다. 즉, 클라이언트 화면 변조 방어 장치(200) 및 방법은 클라이언트(300)에 악성코드 또는 해킹 툴이 설치된 경우에도 웹페이지 등 웹 서버(100)에서 랜덤 웹을 생성하여 제공하기 때문에 화면 변조 공격을 받고 있는 클라이언트(300)에 공격을 회피한 정상적인 화면을 제공할 수 있는 효과가 있다.
또한, 클라이언트 화면 변조 방어 장치(200) 및 방법은 클라이언트(300)에 표출된 화면이 공격을 당하여 변조된 경우에 웹 서버(100)에서 화면의 주요 정보에 대한 변조 여부를 인지하여 화면 변조 사실을 인지하여 화면 변조에 대응할 수 있도록 하는 효과가 있다.
또한, 클라이언트 화면 변조 방어 장치(200) 및 방법은 클라이언트(300)와 웹 서버(100) 사이에서 송수신되는 중요데이터의 변경 여부를 통해 상호 인증을 수행함으로써, 인터넷을 통한 중요 거래(예컨대, 인터넷 뱅킹, 주식거래, 전자 상거래 등)에서 사용자 인증 후에 발생하는 클라이언트(300)의 화면 변조를 통한 해킹을 탐지하여 예방할 수 있다. 즉, 기존의 보안 솔루션에서 인터넷을 통한 중요 거래(예컨대, 인터넷 뱅킹, 주식거래, 전자 상거래 등)에서 비밀번호, OTP등을 이용하여 사용자를 인증하고 있으나 클라이언트(300) 화면에 표출된 내용이 서비스제공자가 제공한 내용과 일치하는지 확인이 불가능한 문제를 해결하기 위해서, 본 발명은 사용자가 인지하는 전자거래와 같은 중요 트랜잭션과 서비스제공자가 수행하려는 트랜잭션이 동일함을 확인하는 방법으로 사용자 화면 변조를 통한 대부분의 해킹 시도를 탐지할 수 있다.
또한, 클라이언트 화면 변조 방어 장치(200) 및 방법은 알려지지 않은 악성코드에 의한 웹 인젝션 공격 등과 같은 화면 변조 공격에 대응할 수 있는 효과가 있다.
이상에서 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
100: 웹 서버 200: 클라이언트 화면 변조 방어 장치
210: 통신부 230: 랜덤 웹 생성부
232: 랜덤 URI 생성 모듈 234: 랜덤 웹 소스 생성 모듈
250: 웹 변조 판단부 252: 생성 웹 소스 고유값 산출 모듈
254: 변조 판단 모듈 270: 표출 화면 검증부
290: 저장부 300: 클라이언트
320: 통신부 340: 입력부
360: 표출 웹 소스 고유값 산출부 380: 웹 소스 처리부

Claims (20)

  1. 복수의 클라이언트들의 요청에 의하여 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 서로 다른 랜덤 웹 소스들을 생성하고 상기 서로 다른 랜덤 웹 소스들을 상기 클라이언트들 각각으로 제공하는 랜덤 웹 생성부; 및
    상기 랜덤 웹 소스들 중 어느 하나에 대하여 상기 클라이언트들 각각에서 생성된 표출 웹 소스 고유값과, 상기 랜덤 웹 소스들 중 어느 하나에 대한 생성 웹 소스 고유값을 비교하여 상기 클라이언트들 각각에서 표출되는 상기 랜덤 웹 소스의 화면 변조 발생 여부를 판단하는 웹 변조 판단부를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  2. 청구항 1에 있어서,
    상기 랜덤 웹 생성부는,
    상기 복수의 클라이언트들로부터 요청되는 웹 페이지에 해당하는 랜덤 URI를 생성하는 랜덤 URI 생성 모듈; 및
    상기 생성된 랜덤 URI와 연계하여 랜덤 웹 소스를 생성하는 랜덤 웹 소스 생성 모듈을 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  3. 청구항 2에 있어서,
    상기 랜덤 웹 소스 생성 모듈은,
    상기 생성된 랜덤 URI에 해당하는 웹 페이지에 해당하는 웹 소스에 포함되는 변수들에 대응되는 랜덤 변수들을 생성하고, 상기 웹 소스의 변수들을 상기 생성한 랜덤 변수들로 변환하여 랜덤 웹 소스를 생성하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  4. 청구항 2에 있어서,
    상기 랜덤 웹 소스 생성 모듈은,
    의미 없는 웹 소스 구문을 랜덤 위치에 삽입하고, 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  5. 청구항 1에 있어서,
    상기 웹 변조 판단부는,
    상기 생성된 랜덤 웹 소스의 생성 웹 소스 고유값을 산출하는 생성 웹 소스 고유값 산출 모듈; 및
    상기 클라이언트들 각각에서 생성된 표출 웹 소스 고유값을 상기 산출한 생성 웹 소스 고유값과 비교하여 상기 클라이언트들 각각에서 표출된 웹 소스의 화면 변조 여부를 판단하는 변조 판단 모듈을 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  6. 청구항 5에 있어서,
    상기 생성 웹 소스 고유값 산출 모듈은,
    상기 복수의 클라이언트들과 공유되는 고유키를 이용하여 상기 생성 웹 소스 고유값을 산출하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  7. 청구항 6에 있어서,
    상기 변조 판단 모듈은,
    상기 복수의 클라이언트 각각에 대해 서로 다른 고유키들을 공유하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  8. 청구항 5에 있어서,
    상기 변조 판단 모듈은,
    상기 고유키를 이용하여 산출된 상기 랜덤 웹 소스의 표출 웹 소스 고유값을 상기 복수의 클라이언트들 중 적어도 하나로부터 수신하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  9. 청구항 1에 있어서,
    상기 생성된 랜덤 URI들 및 랜덤 웹 소스들과, 상기 랜덤 웹 소스의 화면 변조 발생 여부를 판단하기 위해 산출하는 생성 웹 소스 고유값을 저장하는 저장부를 더 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  10. 청구항 1에 있어서,
    중요 정보를 상기 복수의 클라이언트들 중에 적어도 하나로 전송하여 상기 중요 정보에 해당하는 입력 정보의 입력을 요청하고, 상기 복수의 클라이언트들 중에 적어도 하나로부터 수신되는 입력 정보와 상기 중요 정보를 비교하여 표출 화면의 변조 여부를 검증하는 표출 화면 검증부를 더 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 장치.
  11. 랜덤 웹 생성부에 의해, 복수의 클라이언트들의 요청에 의하여 동일한 웹 페이지를 랜덤으로 생성되는 랜덤 URI로 변환하여 서로 다른 랜덤 웹 소스들을 생성하고 상기 서로 다른 랜덤 웹 소스들을 상기 클라이언트들 각각으로 제공하는 단계; 및
    웹 변조 판단부에 의해, 상기 랜덤 웹 소스들 중 어느 하나에 대하여 상기 클라이언트들 각각에서 생성된 표출 웹 소스 고유값과, 상기 랜덤 웹 소스들 중 어느 하나에 대한 생성 웹 소스 고유값을 비교하여 상기 클라이언트들 각각에서 표출되는 상기 랜덤 웹 소스의 화면 변조 발생 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  12. 청구항 11에 있어서,
    상기 랜덤 웹 소스를 제공하는 단계는,
    상기 랜덤 웹 생성부에 의해, 상기 복수의 클라이언트들 중에 적어도 하나로부터 수신한 웹 요청에 해당하는 이전 생성 랜덤 웹 소스가 존재하지 않으면 상기 웹 요청에 해당하는 웹 페이지에 대한 랜덤 URI를 생성하는 단계;
    상기 랜덤 웹 생성부에 의해, 상기 생성된 랜덤 URI와 연계하여 랜덤 웹 소스를 생성하는 단계;
    상기 랜덤 웹 생성부에 의해, 상기 생성된 랜덤 URI 및 상기 랜덤 웹 소스를 저장하는 단계; 및
    상기 랜덤 웹 생성부에 의해, 상기 생성된 웹 소스를 상기 복수의 클라이언트들 중에 적어도 하나로 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  13. 청구항 12에 있어서,
    상기 랜덤 웹 소스를 제공하는 단계는,
    상기 랜덤 웹 생성부에 의해, 상기 수신한 웹 요청에 해당하는 이전 생성 랜덤 웹 소스가 존재하면 해당 랜덤 웹 소스를 검출하는 단계를 더 포함하고,
    상기 전송하는 단계에서는 상기 랜덤 웹 생성부에 의해, 상기 검출한 랜덤 웹 소스를 상기 클라이언트로 전송하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  14. 청구항 12에 있어서,
    상기 랜덤 웹 소스를 생성하는 단계는,
    상기 랜덤 웹 생성부에 의해, 상기 생성된 랜덤 URI에 해당하는 웹 페이지에 포함되는 변수들에 대응되는 랜덤 변수들을 생성하는 단계; 및
    상기 랜덤 웹 생성부에 의해, 상기 웹 페이지에 포함된 변수들을 상기 생성된 랜덤 변수들로 변경하여 랜덤 웹 소스를 생성하는 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  15. 청구항 12에 있어서,
    상기 랜덤 웹 소스를 생성하는 단계는,
    상기 랜덤 웹 생성부에 의해, 의미 없는 웹 소스 구문을 랜덤 위치에 랜덤하게 삽입하는 단계; 및
    상기 랜덤 웹 생성부에 의해, 웹 소스 내의 변수 이름과 태그 이름 및 함수 이름 중에 적어도 하나를 랜덤하게 변경하는 단계;
    중에 적어도 하나의 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  16. 청구항 11에 있어서,
    상기 화면 변조 발생 여부를 판단하는 단계는,
    상기 웹 변조 판단부에 의해, 클라이언트와 공유되는 고유키를 이용하여 상기 복수의 클라이언트들 중에 적어도 하나에서 산출되는 상기 랜덤 웹 소스에 대한 표출 웹 소스 고유값을 수신하는 단계;
    상기 웹 변조 판단부에 의해, 상기 고유키를 이용하여 상기 랜덤 웹 소스에 대한 생성 웹 소스 고유값을 산출하는 단계; 및
    상기 웹 변조 판단부에 의해, 상기 수신한 표출 웹 소스 고유값과 상기 산출한 생성 웹 소스 고유값을 비교하여 화면 변조 발생 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  17. 청구항 16에 있어서,
    상기 화면 변조 발생 여부를 판단하는 단계는,
    상기 웹 변조 판단부에 의해, 상기 복수의 클라이언트들과 웹 소스 고유값 산출을 위한 고유키를 공유하는 단계를 더 포함하되,
    상기 고유키를 공유하는 단계에서는 상기 웹 변조 판단부에 의해, 상기 복수의 클라이언트들 각각에 대해 서로 다른 고유키를 공유하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  18. 청구항 16에 있어서,
    상기 화면 변조 발생 여부를 판단하는 단계는,
    저장부에 의해, 상기 산출한 생성 웹 소스 고유값을 저장하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  19. 청구항 11에 있어서,
    표출 화면 검증부에 의해, 상기 복수의 클라이언트들 중에 적어도 하나로 전송되는 중요 정보에 대한 입력 정보를 근거로 상기 웹 소스에 해당하는 표출 화면의 변조 여부를 검증하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
  20. 청구항 19에 있어서,
    상기 표출 화면의 변조 여부를 검증하는 단계는,
    상기 표출 화면 검증부에 의해, 중요 정보를 상기 복수의 클라이언트들 중에 적어도 하나로 전송하는 단계;
    상기 표출 화면 검증부에 의해, 상기 전송된 중요 정보를 상기 복수의 클라이언트들 중에 적어도 하나에서 표출하여 입력 정보의 입력을 요청하는 단계;
    상기 표출 화면 검증부에 의해, 상기 복수의 클라이언트들 중에 적어도 하나로부터 상기 입력 정보를 수신하는 단계; 및
    상기 표출 화면 검증부에 의해, 상기 전송한 중요 정보와 상기 수신한 입력 정보를 비교하여 표출 화면의 변조 여부를 검증하는 단계를 포함하는 것을 특징으로 하는 클라이언트 화면 변조 방어 방법.
KR1020110087435A 2011-08-30 2011-08-30 클라이언트 화면 변조 방어 장치 및 방법 KR101086451B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110087435A KR101086451B1 (ko) 2011-08-30 2011-08-30 클라이언트 화면 변조 방어 장치 및 방법
US13/304,069 US8667294B2 (en) 2011-08-30 2011-11-23 Apparatus and method for preventing falsification of client screen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110087435A KR101086451B1 (ko) 2011-08-30 2011-08-30 클라이언트 화면 변조 방어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101086451B1 true KR101086451B1 (ko) 2011-11-25

Family

ID=45398138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110087435A KR101086451B1 (ko) 2011-08-30 2011-08-30 클라이언트 화면 변조 방어 장치 및 방법

Country Status (2)

Country Link
US (1) US8667294B2 (ko)
KR (1) KR101086451B1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805331B2 (en) 2010-09-24 2020-10-13 BitSight Technologies, Inc. Information technology security assessment system
US10025928B2 (en) * 2011-10-03 2018-07-17 Webroot Inc. Proactive browser content analysis
US9438615B2 (en) 2013-09-09 2016-09-06 BitSight Technologies, Inc. Security risk management
JP6096389B2 (ja) * 2014-06-30 2017-03-15 日本電信電話株式会社 検知装置、検知方法及び検知プログラム
CN105701402B (zh) * 2014-11-24 2018-11-27 阿里巴巴集团控股有限公司 一种监测展示劫持的方法和装置
US11165820B2 (en) 2015-10-13 2021-11-02 Check Point Software Technologies Ltd. Web injection protection method and system
US10425380B2 (en) 2017-06-22 2019-09-24 BitSight Technologies, Inc. Methods for mapping IP addresses and domains to organizations using user activity data
US10257219B1 (en) 2018-03-12 2019-04-09 BitSight Technologies, Inc. Correlated risk in cybersecurity
US10812520B2 (en) 2018-04-17 2020-10-20 BitSight Technologies, Inc. Systems and methods for external detection of misconfigured systems
US11200323B2 (en) 2018-10-17 2021-12-14 BitSight Technologies, Inc. Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios
US10521583B1 (en) * 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
US10726136B1 (en) 2019-07-17 2020-07-28 BitSight Technologies, Inc. Systems and methods for generating security improvement plans for entities
US11956265B2 (en) 2019-08-23 2024-04-09 BitSight Technologies, Inc. Systems and methods for inferring entity relationships via network communications of users or user devices
US10848382B1 (en) 2019-09-26 2020-11-24 BitSight Technologies, Inc. Systems and methods for network asset discovery and association thereof with entities
US11032244B2 (en) 2019-09-30 2021-06-08 BitSight Technologies, Inc. Systems and methods for determining asset importance in security risk management
US10893067B1 (en) 2020-01-31 2021-01-12 BitSight Technologies, Inc. Systems and methods for rapidly generating security ratings
US10764298B1 (en) 2020-02-26 2020-09-01 BitSight Technologies, Inc. Systems and methods for improving a security profile of an entity based on peer security profiles
US11023585B1 (en) 2020-05-27 2021-06-01 BitSight Technologies, Inc. Systems and methods for managing cybersecurity alerts
JP2021196647A (ja) * 2020-06-09 2021-12-27 富士フイルムビジネスイノベーション株式会社 情報処理装置及びコンピュータプログラム
US11122073B1 (en) 2020-12-11 2021-09-14 BitSight Technologies, Inc. Systems and methods for cybersecurity risk mitigation and management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100867306B1 (ko) 2007-05-31 2008-11-06 (주)위너다임 이미지 분석기법을 이용한 홈페이지 변조점검 시스템 및 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001235765A1 (en) * 2000-02-23 2001-09-03 Tradesafely.Com Limited Method and apparatus for internet web site accreditation
WO2002014991A2 (en) * 2000-08-11 2002-02-21 Incanta, Inc. Resource distribution in network environment
US7127609B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface for adaptively processing and communicating URL data between applications
US7500099B1 (en) * 2003-05-16 2009-03-03 Microsoft Corporation Method for mitigating web-based “one-click” attacks
GB2412189B (en) * 2004-03-16 2007-04-04 Netcraft Ltd Security component for use with an internet browser application and method and apparatus associated therewith
US8528078B2 (en) * 2004-07-15 2013-09-03 Anakam, Inc. System and method for blocking unauthorized network log in using stolen password
US7578436B1 (en) * 2004-11-08 2009-08-25 Pisafe, Inc. Method and apparatus for providing secure document distribution
US20060106802A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Stateless methods for resource hiding and access control support based on URI encryption
KR100681696B1 (ko) 2004-11-29 2007-02-15 주식회사 안철수연구소 컴퓨터 응용 프로그램의 메모리 데이터 조작 방지 방법
US20070162961A1 (en) * 2005-02-25 2007-07-12 Kelvin Tarrance Identification authentication methods and systems
US8079087B1 (en) * 2005-05-03 2011-12-13 Voltage Security, Inc. Universal resource locator verification service with cross-branding detection
US7841003B1 (en) * 2005-05-04 2010-11-23 Capital One Financial Corporation Phishing solution method
US7698269B2 (en) * 2005-11-29 2010-04-13 Yahoo! Inc. URL shortening and authentication with reverse hash lookup
US20070255953A1 (en) * 2006-04-28 2007-11-01 Plastyc Inc. Authentication method and apparatus between an internet site and on-line customers using customer-specific streamed audio or video signals
US20090144554A1 (en) * 2007-07-19 2009-06-04 Next Access Technologies, Llc Two-way authentication with non-disclosing password entry
KR100963421B1 (ko) 2008-02-22 2010-06-15 에스케이 텔레콤주식회사 웹페이지 변조 판단 방법 및 웹페이지 변조 판단 시스템
KR101001132B1 (ko) * 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 웹 어플리케이션의 취약성 판단 방법 및 시스템
US8429751B2 (en) * 2009-03-13 2013-04-23 Trustwave Holdings, Inc. Method and apparatus for phishing and leeching vulnerability detection
US8365290B2 (en) * 2009-05-15 2013-01-29 Frederick Young Web application vulnerability scanner
US8621614B2 (en) * 2009-05-26 2013-12-31 Microsoft Corporation Managing potentially phishing messages in a non-web mail client context
US9135363B2 (en) * 2009-06-09 2015-09-15 Gvoto (Hong Kong) Ltd. Methods and systems for automatic content retrieval and organization
US8862699B2 (en) * 2009-12-14 2014-10-14 Microsoft Corporation Reputation based redirection service
US8615804B2 (en) * 2010-02-18 2013-12-24 Polytechnic Institute Of New York University Complementary character encoding for preventing input injection in web applications
US8281232B2 (en) * 2010-04-22 2012-10-02 Rockmelt, Inc. Integrated adaptive URL-shortening functionality
US20120011370A1 (en) * 2010-07-06 2012-01-12 Duke David John Personal identification code entry device and method therefor
US8578487B2 (en) * 2010-11-04 2013-11-05 Cylance Inc. System and method for internet security
TW201227385A (en) * 2010-12-16 2012-07-01 Univ Nat Taiwan Science Tech Method of detecting malicious script and system thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100867306B1 (ko) 2007-05-31 2008-11-06 (주)위너다임 이미지 분석기법을 이용한 홈페이지 변조점검 시스템 및 방법

Also Published As

Publication number Publication date
US20130055386A1 (en) 2013-02-28
US8667294B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
KR101086451B1 (ko) 클라이언트 화면 변조 방어 장치 및 방법
US10171250B2 (en) Detecting and preventing man-in-the-middle attacks on an encrypted connection
USRE46158E1 (en) Methods and systems to detect attacks on internet transactions
US20040073809A1 (en) System and method for securing a user verification on a network using cursor control
US9077546B1 (en) Two factor validation and security response of SSL certificates
WO2019095856A1 (zh) 一种网络身份认证方法、系统及其使用的用户代理设备
US11997210B2 (en) Protection of online applications and webpages using a blockchain
CN111460410A (zh) 服务器登录方法、装置、系统与计算机可读存储介质
CN111193740A (zh) 加密方法、装置、解密方法、计算机设备和存储介质
CN109818906B (zh) 一种设备指纹信息处理方法、装置及服务器
WO2021137769A1 (en) Method and apparatus for sending and verifying request, and device thereof
US7347366B2 (en) Method and apparatus to provide authentication using an authentication card
CN113630412B (zh) 资源下载方法、资源下载装置、电子设备以及存储介质
KR100877593B1 (ko) 랜덤하게 맵핑되는 가변 패스워드에 의한 인증 보안 방법
US11968202B2 (en) Secure authentication in adverse environments
KR102113223B1 (ko) 보안통신방법 및 시스템
KR102168098B1 (ko) 디지털인감을 이용한 안전한 비밀번호 인증 프로토콜
KR101943166B1 (ko) 동적모듈, 동적모듈의 인증 및 무결성 보장방법
JP6084258B2 (ja) 認証システム及び表示プログラム
JP6499461B2 (ja) 情報処理装置
CN114760078A (zh) 一种防止恶意篡改页面请求参数的方法和系统
JP6398308B2 (ja) 情報処理システム、情報処理方法、及びプログラム
JP2022052469A (ja) 認証システム、認証要素ファイル、サーバ、漏洩検知方法、及びプログラム
Frank Internet security
JP2019053779A (ja) 情報処理装置

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: 20140916

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 9