KR101005927B1 - 웹 어플리케이션 공격 탐지 방법 - Google Patents

웹 어플리케이션 공격 탐지 방법 Download PDF

Info

Publication number
KR101005927B1
KR101005927B1 KR1020100064363A KR20100064363A KR101005927B1 KR 101005927 B1 KR101005927 B1 KR 101005927B1 KR 1020100064363 A KR1020100064363 A KR 1020100064363A KR 20100064363 A KR20100064363 A KR 20100064363A KR 101005927 B1 KR101005927 B1 KR 101005927B1
Authority
KR
South Korea
Prior art keywords
http traffic
attack
recombined
web application
packet
Prior art date
Application number
KR1020100064363A
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 KR1020100064363A priority Critical patent/KR101005927B1/ko
Priority to JP2010178803A priority patent/JP4977888B2/ja
Priority to US12/876,820 priority patent/US20120124661A1/en
Priority to CN2010102872622A priority patent/CN102316087A/zh
Application granted granted Critical
Publication of KR101005927B1 publication Critical patent/KR101005927B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

본 발명은 웹 어플리케이션 공격을 탐지하는 방법에 관한 것으로서, 본 발명의 목적은, 수신되는 HTTP 트래픽의 패킷들에서 패이로드만을 분리하여 HTTP 트래픽을 재조합한 후, 재조합된 HTTP 트래픽의 내용을 파서를 이용해 분석하여, 공격과 관련된 내용이 포함되어 있는지의 여부를 판단할 수 있는, 웹 어플리케이션 공격 탐지 방법을 제공하는 것이다. 이를 위해 본 발명은, HTTP 트래픽을 형성하는 패킷이 수신되면, 웹 어플리케이션 방화벽이, 상기 HTTP 트래픽을 재조합하는 단계; 재조합된 HTTP 트래픽을 분석하여, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는지를 판단하는 단계; 상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있지 않으면, 상기 재조합된 HTTP 트래픽을 웹 서버 또는 사용자 서버로 전송하여 정상적으로 처리되도록 하는 단계; 상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는 경우, 상기 재조합된 HTTP 트래픽을 공격으로 탐지한 후 재처리하는 단계를 포함한다.

Description

웹 어플리케이션 공격 탐지 방법{METHOD FOR DETECTING A WEB APPLICATION ATTACK}
본 발명은 웹 어플리케이션 공격을 탐지하는 방법에 관한 것이다.
종래의 웹 어플리케이션 방화벽(Web Application Firewall)(이하, 간단히 'WAF'라 함)들의 경우, OSI의 network 분류기준 중 Layer 4 에서의 공격 탐지를 수행하는 Intrusion Detection System(IDS) 또는 Intrusion Protection System (IPS)를 기반으로하여, OSI network 분류의 최상위 계층에 해당하는 Layer 7을 대상으로 하는 공격을 방어하고 있으며, 따라서, 방어의 한계가 발생하고 있다.
도 1은 일반적인 OSI 7 Layer를 설명하기 위한 예시도이다.
OSI 7 Layer란 도 1에 도시된 바와 같이, Application, Presentation, Session, Transport, Network, Data Link 및 Physical의 7개 층으로 구성된 것을 말하며, 상기한 바와 같이, Layer 7 수준을 대상으로 한 공격을 탐지하여 방어하는 웹 어플리케이션 방화벽(Web Application Firewall, WAF)이 Layer 4 수준에서 공격을 탐지하고 방어하는 이유는 다음과 같다.
우선, 종래에 공격 탐지를 위해 일반적으로 이용되고 있는 Intrusion Detection System(IDS) 또는 Intrusion Protection System(IPS) 등의 시스템이, 과거 특정 Internet Protocol Address(IP 주소)에 대하여 특정 port를 막는 역할을 하던 네트워크 방화벽의 역할을, Packet 분석으로 확장하는 시도에서 발명된 것이기 때문에, 과거에 네트워크 방화벽이 공격을 탐지하던 지점인 Layer 4에 머무르게된 것이다.
또한, 종래의 웹 어플리케이션 방화벽이 Layer 4에서 공격 여부를 탐지하는 이유는, OSI 7 Layer model에서 의미를 알 수 없는 전기 신호가 아닌, 의미를 지닌 최소의 데이터 단위인 Packet이 나타나는 시점이, Layer 4이기 때문에, 최초의 데이터 단위가 성립되는 시점에서 공격을 판단하고 차단하기 위하여, Layer 4에서 탐지하는 것이다.
즉, Application Layer(Layer 7, L7)를 대상으로 하는 공격을 탐지하여 방어하려면 네트워크 트래픽의 분석 역시 Layer 7 수준에서 이루어져야 만이, 오탐과 미탐(공격인데 탐지하지 못하는것)을 극소화할 수 있는 지능적인 웹 방화벽의 역할을 할 수 있으나, 종래에는 Layer 7을 대상으로 하는 공격을 Layer 4 수준의 탐지 방법으로 탐지하고 있기 때문에, 정상적인 탐지 및 방어가 이루어지지 못하고 있다는 문제점이 있다.
부연하여 설명하면, Layer 4는 데이터의 단위가 패킷(packet)으로서, 종래의 IDS, IPS를 근간으로 하여 만들어진 1세대, 2세대 WAF들은, packet단위의 Pattern matching을 수행함으로써 해당 네트워크 트래픽의 공격 유무를 판단하고 있다. 즉, 종래의 1, 2 세대 WAF들은, 사전에 관리자에 의해 등록되어있는 평균 5000여 개 정도의 공격 유형(정식명칭 Regular Expression, 약어: Regx)에 대하여, Packet 별로 1번부터 5000번까지의 공격 유형과 일치하는 유형이 있는지 여부를 검사함으로써, Packet이 공격이 담겨있는 Packet인지 또는 정상 Packet인지 여부를 판단한다.
그러나, 최근의 WAF 들은, Deep Packet Inspection(DPI)라는 방식을 표명하며 기존의 packer header만 보고 공격 유무를 판별하는 방식에서 탈피하여, 패킷(packet)의 payload 부분도 검사하는 방식으로 변화하고 있지만, 이는 진정한 의미의 Application Layer 수준의 방어가 아니라, 단지, 종래의 Layer 4 수준의 방어가 조금더 진화된 형태라고 할 수 있다.
한편, Application Layer(Layer 7) 수준의 공격 탐지 방법에 적용되는, Layer 4 수준에서 이루어지는 상기한 바와 같은 종래의 공격 탐지 방법은, 다음과 같은 네 가지 한계점을 가지고 있다.
첫째, 종래의 탐지 방법은, 공격의 유형이 변화될 때마다 새로운 공격 유형이 매번 업데이트 되어야 한다.
둘째, 종래의 탐지 방법은, 처리 속도의 문제로 등록할 수 있는 공격 유형의 개수가 제한되어있으므로(최대 만개) 기존에 공격으로 등록되었던 유형을 주기적으로 삭제해주어야 한다.
셋째, Layer 4의 packet pattern matching 기반의 종래 WAF에서는, 공격 packet의 변조(예, HTML 태그의 변형, 삭제 등, 개인정보의 특정 부분 삭제 등)가 기술적으로 거의 불가능 하다. 그 불가능의 이유는 다음과 같다. 즉, Packet의 변조는 Packet size의 변화를 일으키는데, 종래의 1, 2 세대 WAF들이, 변화된 packet의 size를 packet header에 다시 기록하는 작업은 매우 많은 연산을 요구하게 되고 그에 따라 처리시간이 늘어나게 되어 실제 인터넷 서비스 환경에 적용되기 어렵기 때문이다.
넷째, 종래의 탐지 방법은, HTTP Traffic의 전체를 보고 공격을 판단하는 것이 아니기 때문에, 의미론적으로 보았을 때 공격이 아닌 packet을 공격 packet으로 판단하는 오탐을 일으킬 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 수신되는 HTTP 트래픽의 패킷들에서 패이로드만을 분리하여 HTTP 트래픽을 재조합한 후, 재조합된 HTTP 트래픽의 내용을 파서를 이용해 분석하여, 공격과 관련된 내용이 포함되어 있는지의 여부를 판단할 수 있는, 웹 어플리케이션 공격 탐지 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명은, HTTP 트래픽을 형성하는 패킷이 수신되면, 웹 어플리케이션 방화벽이, 상기 HTTP 트래픽을 재조합하는 단계; 재조합된 HTTP 트래픽을 분석하여, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는지를 판단하는 단계; 상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있지 않으면, 상기 재조합된 HTTP 트래픽을 웹 서버 또는 사용자 서버로 전송하여 정상적으로 처리되도록 하는 단계; 상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는 경우, 상기 재조합된 HTTP 트래픽을 공격으로 탐지한 후 재처리하는 단계를 포함한다.
본 발명은 수신되는 HTTP 트래픽의 패킷들에서 패이로드만을 분리하여 HTTP 트래픽을 재조합한 후, 재조합된 HTTP 트래픽의 내용을 파서를 이용해 분석하여, 공격과 관련된 내용이 포함되어 있는지의 여부를 판단함으로써, 오탐율을 낮출 수 있다는 우수한 효과를 가지고 있다.
도 1은 일반적인 OSI 7 Layer를 설명하기 위한 예시도.
도 2는 본 발명이 적용되는 통신 시스템의 구성을 나타낸 예시도.
도 3은 본 발명에 따른 웹 어플리케이션 공격 탐지 방법의 일실시예 흐름도.
도 4는 본 발명에 따른 웹 어플리케이션 공격 탐지 방법에 적용되는 HTTP Traffic 재조합의 의미를 설명하기 위한 예시도.
도 5a 내지 도 5d는 본 발명에 적용되는 SQL 파서의 기능을 설명하기 위한 다양한 예시도.
이하, 첨부된 도면을 참조하여 본 발명이 상세히 설명된다.
도 2는 본 발명이 적용되는 통신 시스템의 구성을 나타낸 예시도이다.
본 발명이 적용되는 통신 시스템은 도 1에 도시된 바와 같이, 웹 사이트를 운영하여 사용자들에게 다양한 서비스를 제공하기 위한 웹 서버(20), 웹 서버와 통신을 수행하여 웹 서버로부터 다양한 정보를 제공받거나 웹 서버로 다양한 정보를 제공하기 위해 사용자가 이용하는 사용자 서버(30) 및 웹 서버를 네트워크를 통해 사용자 서버와 연결시키는 한편 사용자 서버로부터의 공격을 탐지하여 웹 서버의 기능을 보호하기 위한 웹 어플리케이션 방화벽(10)을 포함하여 구성된다.
여기서, 사용자 서버는 개인용 컴퓨터(PC)와 같은 단말기일 수도 있으며, 다수의 개인용 컴퓨터와 네트워크를 통해 통신을 수행하는 서버일 수도 있다.
한편, 본 발명에 따른 웹 어플리케이션 공격 탐지 방법이 적용되어 웹 서버를 외부의 공격으로부터 보호하기 위한 웹 어클리케이션 방화벽(10)은 도 2에 도시된 바와 같이, XML 파서(11), Javascript 파서(12), SQL 파서(13)를 포함하고 있다.
즉, 본 발명에 따른 웹 어플리케이션 공격 탐지 방법은, 웹 어플리케이션 방화벽이, 수신되는 HTTP 트래픽에서, 패킷(packet)의 헤더(header)를 제거한 채 payload부분만을 모아서 HTTP Traffic을 재조합한 후에, 해당 Traffic의 의미론적인 분석을 수행하여 공격 여부를 탐지하는 것으로서, 다음과 같은 장점을 가지고 있다.
첫째, 본 발명은 공격의 유형이 변화될 때마다 새로운 패턴을 등록해줄 필요가 없다.
둘째, 저장되어있는 패턴이라는 개념이 없으므로 기존의 공격 유형을 삭제하는 작업이 필요 하지 않다.
셋째, HTTP Traffic 전체를 보고 공격 여부를 판단하며, 공격으로 판단될 경우 재조합 HTTP Traffic을 변조하여 전송할 수 있다. 즉, 주민번호의 삭제와 html, javascript tag의 변조가 가능하다.
넷째, Packet만 보고 공격 유형을 판단하는 것이 아니라, 재조합된 HTTP Traffic을 전체적으로, 의미론적으로 분석하기 때문에 오탐율을 현저히 낮출 수 있다.
도 3은 본 발명에 따른 웹 어플리케이션 공격 탐지 방법의 일실시예 흐름도이고, 도 4는 본 발명에 따른 웹 어플리케이션 공격 탐지 방법에 적용되는 HTTP Traffic 재조합의 의미를 설명하기 위한 예시도이다. 또한, 도 5a 내지 도 5d는 본 발명에 적용되는 SQL 파서의 기능을 설명하기 위한 다양한 예시도이다.
첫 번째 과정으로서, 웹 어플리케이션 방화벽은 네트워크를 통해 외부의 서버들과 통신을 수행하는 중에, HTTP 트래픽(Traffic)을 형성하는 패킷이 수신되면, 패킷의 Sequence 순서대로 정렬하여, 각 패킷의 헤더를 제거한 후, 각 패킷의 패이로드(payload) 부분만을 모아, HTTP 프래픽(Traffic)을 재조합 한다(502). 즉, HTTP 트래픽을 재조합한다는 것은, 패킷(Packet)의 헤더(Header) 부분을 분석하여 Sequence에 따라 패킷을 정렬하여, 패이로드 부분만을 모은다는 것으로서, 도 4에 도시된 바와 같이, 각 패킷을 그 Sequence에 따라 정렬한 후, 패킷(40)의 패이로드(payload)(42) 부분만을 결합시키는 것을 말한다. 즉, HTTP 트래픽을 형성하는 다수의 패킷(Packet)(40) 각각은 도 4에 도시된 바와 같이, 헤더(header)(41)와 패이로드(payload)(42)로 구성되어 있는바, 본 발명은 각 패킷에서 패이로드 부분만을 분리하여, HTTP 트래픽을 재조합하고 있다. 부연하여 설명하면, HTTP 트래픽은 L7(Layer 7) -> L6 -> L5 -> L4 -> L3 -> L2 -> L1과 같이 하급 계층으로 갈수록, 점차 작은 단위로 쪼개져 목적지 컴퓨터(또는 서버)에 도착하게 되는데, L4 계층에서의 데이터의 단위는 패킷(Packet)이다. 여기서, 패킷(Packet)은 Packet의 Sequence 상태 등의 정보가 담긴 Packet 헤더(이하, 간단히 '헤더'라 함)와, 작은 단위로 쪼개져있는 L7 계층의 원문의 일부가 담겨져있는 Packet Payload(이하, 간단히 '패이로드'라 함)부분으로 나누어져 있으며, 본 발명은 각 패킷들의 패이로드 부분만을 재조합하고 있다는 특징을 가지고 있다.
두 번째 및 세 번째 과정으로서, 웹 어플리케이션 방화벽은 재조합된 HTTP 트래픽(50)을 분석하여(504), 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는지를 판단한다(506). 이때, 웹 어플리케이션 방화벽은 도 2에 도시된 바와 같이, 다양한 종류의 파서를 이용해 HTTP 트래픽을 분석함으로써, 공격 여부를 판단한다.
즉, 본 발명에 적용되는 웹 어플리케이션 방화벽은 웹 사이트를 운영하는 웹 서버를 공격으로부터 방어하는 것이 목적으로서, 웹 사이트가 존재하는데 필요한 요소는 크게 XML, Javascript, SQL인바, 본 발명에 따른 웹 어플리케이션 공격 탐지 방법이 적용되는 웹 어플리케이션 방화벽 역시, XML 파서, Javascript 파서, SQL 파서의 세가지 종류로 구성되는 것이 바람직하며, 파서의 종류는 웹 사이트의 표준 변화에 따라 다양하게 변화될 수 있다.
여기서, XML은 DHTML, HTML의 상위 요소이고, Tag를 기반으로 문서의 정합성과 상/하위 개념을 보장하는 Markup Language이며, XML 파서는, 재조합된 HTTP 트래픽에 대하여 Tag의 시작과 끝을 파악하여 XML 구문의 정합성(Integrity)과, 상/하위 개념을 파악하는 파서로서, 재조합된 HTTP 트래픽에 공격과 관련된 내용이 포함되어 있는지를 판단하는 기능을 수행한다.
한편, Javascript 파서는 컴퓨터 프로그래밍 언어(C언어나 java, phyton 등) 중 하나인 javascript를 분석하고 컴퓨터가 알 수 있는 형태인 이진수로 변환하는 기능을 수행하는 것으로서, Javascript 파서는, 국제 표준 기관에서 정한 ECMA에서 정한 javascript 문법의 표준을 따르며, 이 문법에 어긋날 경우 해당 javascript 구문은 컴퓨터에서 제대로 해석되지 못하고 에러를 발생시킨다. 종래의 WAF들은 javascript 구문을 분석하지 않은 채 javascript 구문이 시작함을 알리는 tag인 <script> Tag의 유무로 javascript를 이용한 공격문인지의 여부를 판단하였다. 그러나, 본 발명은 EMCA-262 표준의 javascript 파서를(해독기)를 이용하여 해당 javascript 구문이 유효한 구문인지를 파악한다. 또한, 종래의 L4 탐지 위치에서는 javascript HTTP 트래픽의 전체를 파악할 수 없기 때문에 javascript 구문의 유효성 여부를 파악할 수 있는 방법이 없었으나, 본 발명은 상기한 바와 같이 HTTP 트래픽을 재조합하는 한편, Javascript 파서를 이용하여 재조합된 HTTP 트래픽을 분석하여 Javascript 구문의 유효성 여부를 파악할 수 있다. 즉, Javascript 파서는 EMCA-262 표준을 지키는 javascript 문법을 검사하여 javascript 문이 유효한지 아닌지 여부를 판단하는 기능을 수행한다.
또한, SQL 파서는, 재조합된 HTTP 트래픽을 최소 단위로 분해해서 각 결과들이 SQL 구문의 일부분들인지를 체크하여, HTTP 트래픽에 공격문이 포함되어 있는지를 판단하는 기능을 수행한다. SQL 파서의 기능을 도 5a 내지 도 5d를 참고하여 설명하면 다음과 같다. 즉, SQL 파서(Parser)를 이용한 공격 탐지의 예로서, SQL Injection 공격문이 (name=“penta” or name=“security”) and keyword=“pentasec”인 경우, SQL 파서는, 상기 SQL Injection 공격문을 도 5a에 도시된 바와 같이, SQL 문법의 최소 단위로 분해하여, 최소 단위별로 공격여부를 탐지하게 된다. 이때, 최소 단위의 결과들이 모두 SQL Command의 일부일 경우 해당 전체 문장이 SQL 문장이라고 판단한다. 이에 반하여, 종래의 기술을 적용한 웹 어플리케이션 방화벽(WAF)은, 도 5b에 도시된 바와 같이, 다양한 패턴(시그니쳐)를 미리 등록해 놓는 방법을 이용하는 것으로서, SQL Injection 공격문이 ‘a’=‘a’ to ‘b’=‘b’ 와 같이 변경되었을때 이를 방어하지 못한다는 문제점을 가지고 있다. 또한, 상기한 바와 같이 다양한 패턴(시그니쳐)을 미리 등록해 놓는 방법을 이용하는 종래의 WAF가, 도 5c와 같은 패턴(시그니쳐)을 등록해 놓은 경우, 만일 사용자가 서버(Server)로 전송하는 Request HTTP Traffic에 “… having a good time… ==…” 와 같은 문구가 포함되어 있다면, 종래의 WAF는, Having이라는 단어 다음에 == 표시가 온다면 SQL Injection 공격문으로 판단하기 때문에 오탐을 일으킬 수도 있다는 문제점을 가지고 있다.
즉, XML파서는 HTTP 트래픽을 재조합하여 분석을 하고, SQL 파서는 공격문들을 최소 단위로 분해하여 각 결과들이 SQL의 부분들인지를 분석하여 공격여부를 탐지한다는 특징을 가지고 있다.
네 번째 과정으로서, 상기 판단결과(506), 공격과 관련된 내용을 포함하고 있지 않으면, 웹 어플리케이션 방화벽은 재조합된 HTTP 트래픽을 웹 서버로 전송하거나 또는 네트워크를 통해 사용자 서버로 전송하여 정상적으로 처리되도록한다(508).
다섯 번째 과정으로서, 상기 판단결과(506), 공격과 관련된 내용을 포함하고 있는 경우, 웹 어플리케이션 방화벽은 재조합된 HTTP 트래픽에 포함되어 있는 패킷(또는 재조합된 HTTP 트래픽)이 정상이 아니라고 판단하여, 상기 재조합된 HTTP 트래픽을 공격으로 탐지하는 한편, 정상이 아닌 재조합된 HTTP 트래픽을 재처리하는 과정을 수행한다(510). 여기서, 정상이 아닌 재조합된 HTTP 트랙픽에 대한 재처리 과정은 두 가지로 구분될 수 있다. 첫 번째 방법은, 정상이 아닌 패킷을 송신한 웹 서버 또는 사용자 서버에게 상기 정상이 아닌 패킷에 대응하는 패킷을 재전송해줄 것을 요청하거나 상기 패킷을 삭제하는 방법이며, 두 번째 방법은, 정상이 아닌 패킷을 변조하여 전송하는 방법으로서, 이하에서는, 두 번째 방법에 대하여 보다 상세히 설명하도록 하겠다.
즉, 사용자가 사용자 서버(30)를 이용하여 네트워크 상의 웹 서버(20)로 전송하려고 하는(Request) 정상적인 메시지 안에 공격으로 의심받을 수 있는 문구(예: <script>)가 포함되어있을 경우, 실제 사용자가 의도한바는 공격이 아니었음에도 불구하고, 종래의 웹 어플리케이션 방화벽에서는 공격으로 판단하여 사용자의 요청을 차단할 수도 있었다. 그러나, 이럴 경우 본 발명이 적용되는 웹 어플리케이션 방화벽이 '<script>' Tag를 '[script]'와 같이 '<' 문자를 '[' 로 바꾸어 줌으로써 공격문은 성립하지 않게 되며, 따라서, 사용자의 정상적인 행동에 대한 공격 오탐을 방지할 수 있다.
또한, 웹 서버(20)에서 사용자 서버(30)로 전송되는(Response) 메시지에 개인정보가 포함되어있을 경우, 단순 개인정보가 포함되어있다는 이유로 페이지를 차단하면 사용자는 개인정보가 포함되지 않은 다른 정보들도 못 보게 된다. 이럴 경우, 본 발명이 적용되는 웹 어플리케이션 방화벽(10)은 개인정보가 담긴 부분만 변조(Masking, 예: 76****-11******)을 해줌으로써 개인정보의 유출과 관련 없는 다른 메시지들은 정상적으로 사용자에게 송신(Response)될 수 있도록 할 수 있다. 즉, 본 발명은 외부로 전송되어오는 웹 트래픽으로부터의 공격을 탐지하는 기능뿐만 아니라, 웹 트래픽의 변조를 통하여 개인정보의 유출을 막는 기능을 특징으로 하는 것으로서, 주민번호, 카드번호, 주소, 이메일, 법인번호, 사업자번호 등과 같은 개인정보의 유출을 방지하는 기능을 수행할 수 있다. 이를 위해 본 발명은, 웹 어플리케이션 방화벽이, 재조합된 웹 트래픽(HTTP 트래픽)에 포함되어 있는 메시지 중, 개인정보와 관련된 메시지의 일부를 외부에서 판독될 수 없는 메시지로 변조하는 것을 특징으로 하고 있다.
부연하여 설명하면, 본 발명에서 의미하는 재조합된 HTTP 트래픽의 의미는, 패킷(Packet)의 헤더(Header)부분을 분석하여 Sequence에 따라 패킷을 정렬한 것으로서, 애초에 L7 계층에서 보내려고 했던 원문 메시지를 복원해 낸 상태를 말한다. 따라서, 웹 어플리케이션 방화벽의 상기 파서들 중 적어도 어느 하나는, 재조합된 HTTP 트래픽의 내용을 분석하여, 공격문의 유무를 판단하는 한편, 공격문 등이 포함되어 있어, 정상적이지 않다고 판단되는 패킷(Packet)에 대하여는, 송신 네트워크 서버에게 재전송을 요청하여 다시 수신한 후, 상기한 바와 같이 헤더를 제거하고 HTTP Traffic을 재조합하는 과정(502)부터 반복하거나, 또는, 해당 패킷 중 공격과 관련된 내용만을 삭제하거나 변조한 후 전송할 수도 있다.
이하에서는, 상기한 바와 같은 본 발명의 두 가지 예를 [표 1] 및 [표 2]를 참조하여 설명한다.
[parser를 이용한 semantic detection engine의 예 1]
Cross Site Scripting ( XSS ) 공격문 : < script type =“ text / javascript ”> alert (“ penta ”);< script >
첫 번째 예로서, DHTML(XML) 파서(Parser)는 Tag의 시작인 <tag>와, Tag의 끝인 </tag>를 하나의 Tag로 분석하며, Tag의 Attribute와 Tag안의 함수를 분석하게 된다.
즉, 종래의 WAF에서는 보통 <script> 태그가 들어간 경우 공격으로 판단하여 해당 Packet을 공격 Packet처리 하였으나, 본 발명에서는 전체의 HTTP 트래픽을 재조합하여 완성된 DTHML 구문을 분석하므로 <script>태그가 감지되었다고 해서, 해당 Traffic을 공격처리 하지 않으며, 재조합된 전체의 HTTP 트래픽이 공격문일 경우에만 공격 처리를 하므로 오탐율이 현저히 낮아진다.
부연하여 설명하면, 본 발명은 [표 1]의 경우, XML파서가 태그의 시작과 태그의 끝을 하나의 태그로 분석하며, 태그의 속성과 태그 안의 함수를 분석하는 것으로서, 종래에는 <script>태그가 들어간 경우에는 공격으로 판단하지만, 본 발명에서는 전체의 재조합된 HTTP 트래픽 구문을 분석함으로써, 재조합된 전체의 HTTP 트래픽이 공격문일 경우에만 공격 처리를 한다는 특징을 가지고 있다.
[ parser 를 이용한 semantic detection engine 의 예 2]
Injection 공격문: (name=“penta” or name=“security”) and keyword=“pentasec”
여기서, End node의 결과들이 모두 part of SQL 이므로 전체 문장 SQL문 여부 = TRUE 이다. 즉, 두 번째 예로서, 매우 유명한 Web 공격 방법 중에 하나인 SQL Injection 공격의 경우에도 종래의 WAF들은, ‘or string=string'의 공격 유형을 저장소에 등록해 놓기 때문에 변형된 SQL Injection 공격에 대한 방어를 사전에 할 수 없으며, 이미 공격이 이루어진 이후의 방어만이 가능하였다. 그러나, 본 발명에서는 Database Management System에서 실행될 수 있는 모든 종류의 SQL구문에 대한 detection이 가능하므로, 변형된 공격, 새로운 공격이 나타나도 방어할 수 있다는 특징을 가지고 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여 져야만 할 것이다.
10 : 웹 어프릴케이션 방화벽 20 : 웹 서버
30 : 사용자 서버

Claims (10)

  1. HTTP 트래픽을 형성하는 패킷이 수신되면, 웹 어플리케이션 방화벽이, 상기 HTTP 트래픽을 재조합하는 단계;
    재조합된 HTTP 트래픽을 분석하여, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는지를 판단하는 단계;
    상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있지 않으면, 상기 재조합된 HTTP 트래픽을 웹 서버 또는 사용자 서버로 전송하여 정상적으로 처리되도록 하는 단계;
    상기 판단결과, 상기 재조합된 HTTP 트래픽이 공격과 관련된 내용을 포함하고 있는 경우, 상기 재조합된 HTTP 트래픽을 공격으로 탐지한 후 상기 재조합된 HTTP 트래픽에 포함되어 있는 정상이 아닌 패킷을 송신한 웹 서버 또는 사용자 서버에게 상기 정상이 아닌 패킷에 대응하는 패킷을 재전송해줄 것을 요청하거나, 또는 상기 정상이 아닌 패킷을 삭제하거나, 또는 상기 재조합된 HTTP 트래픽에 포함되어 있는 정상이 아닌 패킷을 변조하여 상기 웹 서버 또는 사용자 서버로 전송하는 방법중 어느 하나의 방법으로 재처리하는 단계를 포함하는 웹 어플리케이션 공격 탐지 방법.
  2. 제 1 항에 있어서,
    상기 HTTP 트래픽을 재조합하는 단계는,
    상기 HTTP 트래픽을 형성하는 각 패킷의 헤더를 제거한 후, 상기 각 패킷의 패이로드 부분만을 모아, 상기 재조합된 HTTP 트래픽을 형성하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  3. 제 1 항에 있어서,
    상기 판단하는 단계는,
    XML 파서, Javascript 파서, SQL 파서 중 적어도 어느 하나에 의해 실행되는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  4. 제 3 항에 있어서,
    상기 XML 파서는, 상기 재조합된 HTTP 트래픽에 대하여, Tag의 시작과 끝을 파악하여 XML 구문의 정합성과, 상/하위 개념을 파악하여, 상기 재조합된 HTTP 트래픽에 공격문이 포함되어 있는지의 여부를 판단하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  5. 제 3 항에 있어서,
    상기 Javascript 파서는, javascript 구문의 유효성 여부를 파악하여, 상기 재조합된 HTTP 트래픽에 공격문이 포함되어 있는지의 여부를 판단하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  6. 제 3 항에 있어서,
    상기 SQL 파서는, 상기 재조합된 HTTP 트래픽을 최소 단위로 분해해서 각 결과들이 SQL 구문의 일부분들인지를 체크하여, 상기 재조합된 HTTP 트래픽에 공격문이 포함되어 있는지의 여부를 판단하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 변조는,
    상기 웹 어플리케이션 방화벽이, 상기 재조합된 HTTP 트래픽에 포함되어 있는 공격으로 의심받을 수 있는 메시지를 정상적인 메시지로 변조하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
  10. 제 1 항에 있어서,
    상기 변조는,
    상기 웹 어플리케이션 방화벽이, 상기 재조합된 HTTP 트래픽에 포함되어 있는 메시지 중, 개인정보와 관련된 메시지의 일부를 외부에서 판독될 수 없는 메시지로 변조하는 것을 특징으로 하는 웹 어플리케이션 공격 탐지 방법.
KR1020100064363A 2010-07-05 2010-07-05 웹 어플리케이션 공격 탐지 방법 KR101005927B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100064363A KR101005927B1 (ko) 2010-07-05 2010-07-05 웹 어플리케이션 공격 탐지 방법
JP2010178803A JP4977888B2 (ja) 2010-07-05 2010-08-09 ウェブアプリケーション攻撃の検知方法
US12/876,820 US20120124661A1 (en) 2010-07-05 2010-09-07 Method for detecting a web application attack
CN2010102872622A CN102316087A (zh) 2010-07-05 2010-09-17 网络应用攻击的检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100064363A KR101005927B1 (ko) 2010-07-05 2010-07-05 웹 어플리케이션 공격 탐지 방법

Publications (1)

Publication Number Publication Date
KR101005927B1 true KR101005927B1 (ko) 2011-01-07

Family

ID=43615822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100064363A KR101005927B1 (ko) 2010-07-05 2010-07-05 웹 어플리케이션 공격 탐지 방법

Country Status (4)

Country Link
US (1) US20120124661A1 (ko)
JP (1) JP4977888B2 (ko)
KR (1) KR101005927B1 (ko)
CN (1) CN102316087A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488271B1 (ko) * 2013-11-26 2015-02-02 한국전자통신연구원 Ids 오탐 검출 장치 및 방법
KR101959544B1 (ko) * 2018-06-01 2019-03-18 주식회사 에프원시큐리티 웹 공격 탐지 및 차단 시스템 및 그 방법
KR102258956B1 (ko) * 2020-11-20 2021-06-02 (주)시큐레이어 관계형 데이터베이스를 관리하기 위한 언어인 SQL(Structured Query Language)이 사용되는 환경에서 공격을 탐지하기 위한 방법 및 이를 사용한 서버

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361394B2 (en) * 2010-06-30 2016-06-07 Oracle International Corporation Response header invalidation
US20130019314A1 (en) * 2011-07-14 2013-01-17 International Business Machines Corporation Interactive virtual patching using a web application server firewall
CN102938771B (zh) * 2012-12-05 2016-04-06 山东中创软件商用中间件股份有限公司 一种网络应用防火墙的方法和系统
GB201302402D0 (en) * 2013-02-11 2013-03-27 Telecom Ltd Q Communication apparatus
US8997232B2 (en) 2013-04-22 2015-03-31 Imperva, Inc. Iterative automatic generation of attribute values for rules of a web application layer attack detector
CA2920908A1 (en) * 2013-08-15 2015-02-19 Immun.io Inc. Method and system to dynamically alter application functionality at runtime in a constrained and secure manner
KR101468601B1 (ko) 2014-03-13 2014-12-03 한국전자통신연구원 웹 서버/웹 어플리케이션 서버 보안 관리 장치 및 방법
EP3211853B1 (en) 2016-02-26 2019-10-30 Mitsubishi Electric R & D Centre Europe B.V. Real-time validation of json data applying tree graph properties
US10404744B2 (en) * 2016-09-20 2019-09-03 Microsoft Technology Licensing, Llc Database query injection detection and prevention
CN106534209B (zh) * 2016-12-29 2017-12-19 广东睿江云计算股份有限公司 一种分流反射型ddos流量的方法及系统
CN108268774B (zh) * 2017-01-04 2021-07-23 阿里巴巴集团控股有限公司 攻击请求的判定方法和装置
US10931790B2 (en) * 2017-08-17 2021-02-23 Saudi Arabian Oil Company Systems and methods for securely transferring selective datasets between terminals with multi-applications support
US10389685B2 (en) * 2017-08-17 2019-08-20 Saudi Arabian Oil Company Systems and methods for securely transferring selective datasets between terminals
US11297091B2 (en) * 2019-09-24 2022-04-05 Bank Of America Corporation HTTP log integration to web application testing
CN111988280A (zh) * 2020-07-24 2020-11-24 网宿科技股份有限公司 服务器与请求处理方法
CN113297577A (zh) * 2021-06-16 2021-08-24 深信服科技股份有限公司 一种请求处理方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080036706A (ko) * 2006-10-24 2008-04-29 박재철 웹 공격 정규표현과 스크립트 파일의 포함 기능을 이용한웹 보안 모듈
KR20080073110A (ko) * 2007-02-05 2008-08-08 주식회사 엘지씨엔에스 네트워크 보안 장치 및 방법
KR20090051436A (ko) * 2007-11-19 2009-05-22 (주) 시스메이트 부적절한 패킷의 분류 방법 및 장치
KR20100075055A (ko) * 2008-12-24 2010-07-02 한국인터넷진흥원 Irc 및 http 봇넷 정보 공유 시스템 및 그 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7149966B2 (en) * 2002-06-24 2006-12-12 Microsoft Corporation Word processor for freestyle editing of well-formed XML documents
US7725934B2 (en) * 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
JP4997242B2 (ja) * 2005-08-25 2012-08-08 フォーティファイ ソフトウェア, エルエルシー セキュリティを提供するためのプログラムの解析および補完のための装置および方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080036706A (ko) * 2006-10-24 2008-04-29 박재철 웹 공격 정규표현과 스크립트 파일의 포함 기능을 이용한웹 보안 모듈
KR20080073110A (ko) * 2007-02-05 2008-08-08 주식회사 엘지씨엔에스 네트워크 보안 장치 및 방법
KR20090051436A (ko) * 2007-11-19 2009-05-22 (주) 시스메이트 부적절한 패킷의 분류 방법 및 장치
KR20100075055A (ko) * 2008-12-24 2010-07-02 한국인터넷진흥원 Irc 및 http 봇넷 정보 공유 시스템 및 그 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488271B1 (ko) * 2013-11-26 2015-02-02 한국전자통신연구원 Ids 오탐 검출 장치 및 방법
US9398040B2 (en) 2013-11-26 2016-07-19 Electronics And Telecommunications Research Institute Intrusion detection system false positive detection apparatus and method
KR101959544B1 (ko) * 2018-06-01 2019-03-18 주식회사 에프원시큐리티 웹 공격 탐지 및 차단 시스템 및 그 방법
WO2019231057A1 (ko) * 2018-06-01 2019-12-05 주식회사 에프원시큐리티 웹 공격 탐지 및 차단 시스템 및 그 방법
US11171919B1 (en) 2018-06-01 2021-11-09 F1 Security Inc. Web attack detecting and blocking system and method thereof
KR102258956B1 (ko) * 2020-11-20 2021-06-02 (주)시큐레이어 관계형 데이터베이스를 관리하기 위한 언어인 SQL(Structured Query Language)이 사용되는 환경에서 공격을 탐지하기 위한 방법 및 이를 사용한 서버

Also Published As

Publication number Publication date
US20120124661A1 (en) 2012-05-17
JP2012014667A (ja) 2012-01-19
CN102316087A (zh) 2012-01-11
JP4977888B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
KR101005927B1 (ko) 웹 어플리케이션 공격 탐지 방법
US9413776B2 (en) System for finding code in a data flow
RU2668710C1 (ru) Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике
Wang et al. Shield: Vulnerability-driven network filters for preventing known vulnerability exploits
US7302480B2 (en) Monitoring the flow of a data stream
US9514246B2 (en) Anchored patterns
US8615804B2 (en) Complementary character encoding for preventing input injection in web applications
US20040073811A1 (en) Web service security filter
CN109167754A (zh) 一种网络应用层安全防护系统
CN112468520B (zh) 一种数据检测方法、装置、设备及可读存储介质
CN111835777B (zh) 一种异常流量检测方法、装置、设备及介质
EP2850781B1 (en) Methods, systems, and computer readable media for measuring detection accuracy of a security device using benign traffic
CN110362992B (zh) 在基于云端环境中阻挡或侦测计算机攻击的方法和设备
US20060037077A1 (en) Network intrusion detection system having application inspection and anomaly detection characteristics
Nithya et al. A survey on detection and prevention of cross-site scripting attack
JP2004318816A (ja) 通信中継装置、通信中継方法及びプログラム
CN113645234B (zh) 基于蜜罐的网络防御方法、系统、介质及装置
CN106470214A (zh) 攻击检测方法和装置
US20040030788A1 (en) Computer message validation system
Sangeetha et al. Signature based semantic intrusion detection system on cloud
CN115664859B (zh) 基于云打印场景下的数据安全分析方法、装置、设备及介质
Zhang et al. Detecting malicious activities with user‐agent‐based profiles
WO2022001577A1 (zh) 一种基于白名单的内容锁防火墙方法及系统
CN108259416A (zh) 检测恶意网页的方法及相关设备
Anitha et al. Context based application level intrusion detection system

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141015

Year of fee payment: 5