KR101137828B1 - 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101137828B1
KR101137828B1 KR1020100080003A KR20100080003A KR101137828B1 KR 101137828 B1 KR101137828 B1 KR 101137828B1 KR 1020100080003 A KR1020100080003 A KR 1020100080003A KR 20100080003 A KR20100080003 A KR 20100080003A KR 101137828 B1 KR101137828 B1 KR 101137828B1
Authority
KR
South Korea
Prior art keywords
request
client
received
cookie information
server
Prior art date
Application number
KR1020100080003A
Other languages
English (en)
Other versions
KR20120017357A (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 KR1020100080003A priority Critical patent/KR101137828B1/ko
Publication of KR20120017357A publication Critical patent/KR20120017357A/ko
Application granted granted Critical
Publication of KR101137828B1 publication Critical patent/KR101137828B1/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/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Abstract

본 발명의 일 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서, (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는지 여부를 판별하는 단계, 및 (b) 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 방법이 제공된다. 본 발명에 의하면, 클라이언트로부터 보내지는 요청(request)이 포함하고 있는 암호화된 쿠키 정보 및 클라이언트로부터 보내지는 요청이 수신되는 시각 사이의 간격을 분석하여 해당 요청이 정상인지 여부를 판별할 수 있으므로, 서비스 거부 공격을 수행하는 클라이언트로부터 보내지는 요청을 정확하게 판별해낼 수 있게 되는 효과가 달성된다.

Description

서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM AND COMPUTER-READABLE RECORDING MEDIUM FOR DEFENDING AGAINST DENIAL OF SERVICE ATTACK}
본 발명은 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것으로서, 보다 상세하게는, 클라이언트로부터 보내지는 요청(request)이 포함하고 있는 쿠키 정보 및 클라이언트로부터 보내지는 요청이 수신되는 시각 사이의 간격을 분석하여 해당 요청이 정상인지 여부를 판별함으로써, 서비스 거부 공격을 수행하는 클라이언트로부터 보내지는 악의적인 요청이 목표 서버에 전달되는 것을 차단하고 정상적인 클라이언트로부터 보내지는 선의의 요청만이 서버에 전달되도록 하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
서비스 거부(DoS: Denial of Service) 공격 또는 도스(DoS) 공격은 네트워크 상에 존재하는 시스템을 악의적으로 공격하여 해당 시스템의 자원을 부족하게 함으로써 해당 시스템이 원래 의도된 용도로 사용하지 못하게 하는 공격을 의미한다. 즉, 서버에 대한 수많은 접속 시도를 만들어 해당 서버의 네트워크 자원을 점유함으로써 다른 사용자가 해당 서버에 의하여 제공되는 서비스를 이용하지 못하게 하거나 서버의 TCP 연결을 바닥내는 등의 공격이 이에 해당한다.
단순한 서비스 거부 공격보다 훨씬 더 심각한 피해를 초래하는 것으로서, 분산 서비스 거부(Distributed DoS) 공격 또는 디도스(DDoS) 공격은 네트워크 상에 분산적으로 배치되어 있는 여러 대의 공격용 클라이언트를 이용하여 동시에 엄청나게 많은 양의 서비스 거부 공격을 행하는 것을 의미한다. 이러한 분산 서비스 거부 공격은, 먼저 악성 코드나 바이러스 등의 악의적인 프로그램을 이용하여 일반 사용자의 PC를 감염시킴으로써 해당 PC가 서비스 거부 공격을 수행할 수 있는 일명 좀비 PC가 되도록 만든 후에 명령제어 서버(C&C 서버)를 이용하여 좀비 PC가 목표 서버를 공격하도록 명령을 내리는 방식으로 이루어지는 것이 보통이다.
인터넷을 통하여 서비스를 제공하는 기업이나 정부가 직면하고 있는 가장 큰 문제는 바로 위와 같은 서비스 거부 공격이나 분산 서비스 거부 공격에 의해서 시스템이 마비되거나 시스템에 저장되어 있는 데이터의 안정성과 무결성이 침해 받는 등의 보안 문제라고 할 수 있는데, 이들 공격은 날이 갈수록 그 방법과 유형이 복잡해지고 또한 다양해지고 있어 그에 따른 피해도 급증하고 있는 실정이다.
한편, 이러한 서비스 거부 공격을 방어하기 위한 방법으로서 인터넷 내의 어떤 선택된 지점에서 네트워크 트래픽을 모니터링하거나 패킷 스트림을 분석하는 등의 통계적인 분석법을 이용하여 서비스 거부 공격을 검출하는 방어 기술이 소개된 바 있다. 하지만, 이러한 종래 기술에 따라 네트워크 트래픽을 모니터링하거나 패킷 스트림을 분석하는 것만으로는 네트워크 상에서 관찰되는 어떤 거동이 정상적인 거동인지 여부를 정확하게 판단해 내기가 어렵다는 한계가 있는데, 예를 들면, 어떤 웹 사이트의 인기가 급상승함에 따라 네트워크 트래픽이 증대되는 것과 같은 정상적인 거동도 서비스 거부 공격으로 오인될 우려가 있을 수도 있다.
또한, TCP SYN 메시지 대 ACK 메시지의 비 등에 기초하여 서비스 거부 공격을 검출하는 방어 기술이 소개된 바도 있지만, 이러한 종래 기술 역시 공격자가 이를 피해 독특한 파라미터를 사용함으로써 방어 시스템을 쉽게 회피할 수 있다는 한계를 갖고 있다.
이에, 본 발명자는, 위와 같은 종래의 문제점을 해결하고 서비스 거부 공격을 효과적으로 방어하고자, 암호화된 쿠키 정보 및 시간 지연을 활용하여 서비스 거부 공격을 방어할 수 있는 방법 및 시스템을 개발하기에 이르렀다.
본 발명은 상술한 종래 기술의 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 클라이언트로부터 보내지는 요청(request)이 포함하고 있는 암호화된 쿠키 정보 및 클라이언트로부터 보내지는 요청이 수신되는 시각 사이의 간격 정보 중 적어도 하나를 분석하여 해당 요청이 정상인지 여부를 판별함으로써, 서비스 거부 공격을 수행하는 클라이언트로부터 보내지는 악의적인 요청이 목표 서버에 전달되는 것을 차단하고 정상적인 클라이언트로부터 보내지는 선의의 요청만이 서버에 전달되도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은 쿠키 정보를 암호화하는 방식으로서 비대칭 암호화 방식을 사용하여 클라이언트가 쿠키 정보를 암호화하는 데에 많은 시간이 소요되도록 함으로써, 정상적인 클라이언트라면 필연적으로 소정의 시간 간격을 두고 요청을 보낼 수 밖에 없도록 하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 클라이언트가 쿠키 정보를 암호화하도록 하거나 소정의 시간 간격을 두고 요청을 보내도록 하는 프로그램 코드로서 일반 웹 브라우저에서 널리 호환되는 자바스크립트(Javascript) 형식의 유도 프로그램 코드를 사용함으로써, 일반 웹 브라우저를 통하여 서버에 접근하는 정상적인 클라이언트는 유도 프로그램 코드를 실행할 수 있도록 하여 결과적으로 서버에 접근할 수 있도록 하고, 반대로 일반 웹 브라우저가 아닌 공격 전용 프로그램을 통하여 통신하는 악의의 클라이언트는 유도 프로그램 코드를 실행할 수 없도록 하여 결과적으로 서버에 접근할 수 없도록 하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서, (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는지 여부를 판별하는 단계, 및 (b) 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서, (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인지 여부를 판별하는 단계, 및 (b) 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 직전 요청이 수신된 시각 정보를 포함하는 쿠키 정보를 포함하고, 상기 응답은 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서, (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 제1 조건 및 제2 조건을 만족시키는지 여부를 판별하는 단계 - 상기 제1 조건은 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 경우에 만족되고, 상기 제2 조건은 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인 경우에 만족됨 -, 및 (b) 상기 요청이 상기 제1 조건 및 상기 제2 조건을 모두 만족시키는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하고 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서, 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는지 여부를 판별하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 시스템이 제공된다.
본 발명의 또 다른 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서, 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인지 여부를 판별하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 직전 요청이 수신된 시각 정보를 포함하는 쿠키 정보를 포함하고, 상기 응답은 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 시스템이 제공된다.
본 발명의 또 다른 태양에 따르면, 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서, 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 제1 조건 및 제2 조건을 만족시키는지 여부를 판별하고, - 상기 제1 조건은 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 경우에 만족되고, 상기 제2 조건은 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인 경우에 만족됨 -, 상기 요청이 상기 제1 조건 및 상기 제2 조건을 모두 만족시키는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및 상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하고 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 - 를 포함하는 시스템이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 클라이언트로부터 보내지는 요청(request)이 포함하고 있는 암호화된 쿠키 정보 및/또는 클라이언트로부터 보내지는 요청이 수신되는 시각 사이의 간격을 분석하여 해당 요청이 정상인지 여부를 판별할 수 있으므로, 서비스 거부 공격을 수행하는 클라이언트로부터 보내지는 요청을 정확하게 판별해낼 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 쿠키 정보를 암호화하는 방식으로서 비대칭 암호화 방식을 사용하여 정상 클라이언트라면 필연적으로 소정의 시간 간격을 두고 요청을 보낼 수 밖에 없도록 할 수 있으므로, 이러한 소정의 시간 간격보다 더 짧은 시간 간격을 두고 보내지는 요청을 서비스 거부 공격용 클라이언트로부터 보내지는 요청인 것으로 판별해 낼 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 클라이언트가 쿠키 정보를 암호화하도록 하거나 소정의 시간 간격을 두고 요청을 보내도록 하는 유도 프로그램 코드로서 일반 웹 브라우저에서 널리 호환되는 자바스크립트(Javascript)를 사용할 수 있으므로, 서비스 거부 공격용 클라이언트로부터 보내지는 요청을 차단하되 정상적인 클라이언트로부터 보내지는 요청은 서버에 전달할 수 있는 효과가 달성된다.
도 1은 본 발명의 일 실시예에 따른 전체 시스템의 개략적인 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 DoS 공격 방어 시스템(200)의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 DoS 공격 방어 시스템(200)이 동작하는 과정을 예시적으로 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
전체 시스템의 구성
도 1은 본 발명의 일 실시예에 따른 전체 시스템의 개략적인 구성을 나타내는 도면이다.
도 1에 도시되어 있는 바와 같이, 본 발명의 전체 시스템은 통신망(100), DoS 공격 방어 시스템(200), 클라이언트(300) 및 서버(400)를 포함하여 구성될 수 있다. 도 1에 도시된 바와 같이, 통신망(100) 상에는 다수의 DoS 공격 방어 시스템(200), 다수의 클라이언트(300) 및 다수의 서버(400)가 존재할 수 있으며, 특히, 클라이언트(300) 중에는 정상적인 웹 요청을 보내는 정상적인 클라이언트(310)와 DoS 공격용 웹 요청을 보내는 DoS 공격용 클라이언트(320)가 있을 수 있다.
먼저, 통신망(100)은 유선 및 무선과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 바람직하게는, 본 발명에서 말하는 통신망(100)은 공지의 월드와이드웹(WWW: World Wide Web)일 수 있다. 그러나, 본 발명에 따른 통신망(100)은 굳이 이에 국한될 필요 없이 공지의 무선 데이터 통신망이나 공지의 전화망을 적어도 일부에 있어서 포함할 수도 있다.
다음으로, 본 발명의 일 실시예에 따르면, DoS 공격 방어 시스템(200)은 클라이언트로부터 보내지는 요청(request)이 포함하고 있는 암호화된 쿠키 정보 및 클라이언트로부터 보내지는 요청이 수신되는 시각 사이의 간격 정보 중 적어도 하나를 분석하여 해당 요청이 정상인지 여부를 판별함으로써, 서비스 거부 공격(이하, "DoS 공격"이라고 함)용 클라이언트로부터 보내지는 악의적인 요청이 목표 서버에 전달되는 것을 차단하고 정상적인 클라이언트로부터 보내지는 선의의 요청만이 서버에 전달되도록 하는 기능을 수행할 수 있다.
본 발명의 일 실시예에 따르면, DoS 공격 방어 시스템(200)은 통신망(100) 상에서 클라이언트(300)와 서버(400) 사이의 임의의 지점에 위치할 수 있는데, 예를 들면, 여러 개의 클라이언트(300)를 연결하는 미들웨어(middleware) 상에 위치하거나 클라이언트(300)에서 서버(400)로의 경로에 존재하는 스위치, 라우터, 프록시 서버 등의 중간 노드 상에 위치할 수도 있을 것이다. DoS 공격 방어 시스템(200)의 내부 구성 및 각 구성요소에 대한 상세한 설명은 후술하기로 한다.
다음으로, 본 발명의 일 실시예에 따른 클라이언트(300)는 DoS 공격 방어 시스템(200) 또는 서버(400)에 접속한 후 통신할 수 있도록 하는 기능을 포함하는 디지털 기기로서, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 웹 패드, 이동 전화기, IPTV 수신기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 클라이언트(300)가 될 수 있다. 한편, 클라이언트(300)에는 DoS 공격 방어 시스템(200)으로부터 전송되는 쿠키 정보 및 유도 프로그램 코드(예를 들면, 자바스크립트(Javascript) 형식의 프로그램 코드)를 처리할 수 있도록 하기 위한 웹 애플리케이션, 웹 브라우저, 위젯, 왑 브라우저, IPTV 전용 소프트웨어 등의 필요 프로그램이 포함되어 있을 수도 있을 것이다.
다음으로, 본 발명의 일 실시예에 따른 서버(400)는 통신망(100)을 통하여 DoS 공격 방어 시스템(200) 또는 클라이언트(300)와의 통신을 수행할 수 있는 구성요소로서, 클라이언트(300)의 요청에 따라 다양한 유형의 정보를 제공하는 기능을 수행할 수 있다. 예를 들면, 본 발명의 일 실시예에 따른 서버(400)는 공지의 인터넷 포털 사이트, 회사 웹 사이트, 정부 기관 웹 사이트 등의 서버일 수도 있다.
DoS 공격 방어 시스템(200)의 구성
이하에서는, 본 발명의 구현을 위하여 중요한 기능을 수행하는 DoS 공격 방어 시스템(200)의 내부 구성 및 각 구성요소의 기능에 대하여 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 DoS 공격 방어 시스템(200)의 내부 구성을 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 DoS 공격 방어 시스템(200)은 응답부(210), DoS 공격 판별부(220), 데이터베이스(230), 통신부(240) 및 제어부(250)를 포함하여 구성될 수 있다. 본 발명의 일 실시예에 따르면, 응답부(210), DoS 공격 판별부(220), 데이터베이스(230), 통신부(240) 및 제어부(250)는 그 중 적어도 일부가 클라이언트(300) 및/또는 서버(400)와 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 DoS 공격 방어 시스템(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 DoS 공격 방어 시스템(200)과 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
먼저, 본 발명의 일 실시예에 따르면, 응답부(210)는 클라이언트(300)로부터 보내지는 요청(가령, 임의의 서버(400)로 입력되기 위한 요청)을 서버(400)에 입력되기 이전에 가로채서 상기 요청에 대한 소정의 응답(response)을 클라이언트(300)에 보내는 기능을 하는 구성요소로서, 구체적으로, 응답부(210)는 쿠키 정보(소정의 비밀키로 암호화된 쿠키 정보)와 함께 해당 클라이언트(300)가 DoS 공격 방어 시스템(200)에 의하여 유도된 특정 작업을 수행하도록 하는 유도 프로그램 코드를 해당 클라이언트(300)에 전송할 수 있다.
위와 같은 쿠키 정보 및 유도 프로그램 코드는 다음과 같은 경우에 클라이어언트(300)에 전송될 수 있다. 먼저, 본 발명의 일 실시예에 따르면, DoS 공격 방어 시스템(200)에 최초로 접속하는 클라이언트(300)가 DoS 공격 방어 시스템(200)에 의하여 제공되는 쿠키 정보 및 유도 프로그램 코드를 가지고 있지 않은 경우에, 응답부(210)는 해당 클라이언트(300)로부터 보내지는 요청에 대한 응답으로서 쿠키 정보(소정의 비밀키로 암호화된 쿠키 정보) 및 유도 프로그램 코드를 해당 클라이언트(300)에 전송할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 추후 설명될 DoS 공격 판별부(220)에 의해 클라이언트(300)로부터 보내지는 요청이 정상적인 요청이 아닌 것으로 판별되는 경우에 응답부(210)는 해당 클라이언트(300)가 DoS 공격용 클라이언트(300)인지 다시 한 번 확실히 판별해 볼 필요가 있으므로, 해당 클라이언트(300)로부터 보내지는 요청에 대한 응답으로서 쿠키 정보 및 유도 프로그램 코드를 다시 전송할 수도 있다. 이와 같이 다시 한 번 확인해 보는 과정은 경우에 따라 기설정된 횟수만큼 반복될 수도 있을 것이다.
이하에서는, 클라이언트(300)에 전송될 수 있는 쿠키 정보 및 유도 프로그램 코드에 대하여 보다 자세하게 살펴보기로 한다.
먼저, 본 발명의 일 실시예에 따르면, 응답부(210)에 의하여 클라이언트(300)에 전송되는 쿠키 정보(이하, "응답 쿠키 정보"라고 함)에는 DoS 공격 방어 시스템(200)에 대한 클라이언트(300)의 접속 시도를 특정할 수 있는 다양한 정보가 포함될 수 있는데, 예를 들면, 클라이언트(300)의 식별자, 클라이언트(300)로부터 수신된 직전 요청의 수신 시각 등의 정보가 포함될 수 있다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 클라이언트(300)에 전송되는 응답 쿠키 정보는, 후술할 유도 프로그램 코드에 의하여 수행되는 암호화와는 별개로, 소정의 비밀키에 의하여 암호화되어 있을 수 있는데, 이렇게 함으로써 응답 쿠키 정보에 포함되어 있는 식별자, 접속 시간 등의 구체적인 정보가 외부의 관찰자(예를 들면, 스니퍼(sniffer) 등)에게 그대로 드러나지 않도록 할 수 있게 되며 공격자에 의하여 응답 쿠키 정보가 임의로 변조되는 것을 방지할 수 있게 된다.
다음으로, 본 발명의 일 실시예에 따르면, 클라이언트(300)에 전송되는 유도 프로그램 코드는 해당 클라이언트(300)가 DoS 공격 방어 시스템(200)에 의하여 유도된 특정 작업을 수행하도록 하는 기능을 수행할 수 있는데, 해당 클라이언트(300)는 이렇게 유도된 특정 작업을 수행함으로써 자신이 정상적인 클라이언트(300)임을 입증할 수 있게 된다. 즉, 클라이언트(300)에 전송되는 유도 프로그램 코드는, 해당 클라이언트(300) 상에서 실행되어 해당 클라이언트(300)가 상술한 응답 쿠키 정보를 기설정된 암호화 방식에 따라 암호화하도록 하거나 해당 클라이언트(300)가 기설정된 시간 지연을 두고 요청을 보내도록 하는 기능을 수행할 수 있다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 유도 프로그램 코드는 클라이언트(300)가 비대칭 암호화 방식에 따라 응답 쿠키 정보를 암호화하도록 할 수 있다. 여기서, 비대칭 암호화 방식이란, 정보를 암호화하기 위하여 사용하는 암호화 키와 암호화된 정보를 복원하기 위하여 사용하는 복호화 키가 서로 다른 암호화 방식을 의미한다. 이러한 비대칭 암호화 방식을 사용하게 되면, 클라이언트(300)가 응답 쿠키 정보를 암호화하는 데에는 상대적으로 많은 오버헤드(overhead)가 소요되도록 할 수 있는 반면에 DoS 공격 방어 시스템(200)이 암호화된 응답 쿠키 정보를 복호화하는 데에는 상대적으로 적은 오버헤드가 소요되도록 할 수 있게 된다. 즉, 본 발명의 일 실시예에 따라 비대칭 암호화 방식을 사용하면, DoS 공격 방어 시스템(200)의 오버헤드에 대한 부담을 줄일 수 있게 되고, 나아가 유도 프로그램 코드를 실행할 수 있는 정상적인 클라이언트(310)라면 응답 쿠키 정보를 암호화하는 데에 필연적으로 소정의 시간 이상이 소요되도록 함으로써 DoS 공격 방어 시스템(200)으로 하여금 소정의 시간 간격보다 더 짧은 시간 간격을 두고 보내지는 요청을 DoS 공격용 요청인 것으로 판별해 낼 수 있도록 할 수 있다. 다만, 본 발명에 따른 암호화 방식이 반드시 상기 언급한 비대칭 암호화 방식에 한정되는 것은 아니며, 본 발명의 목적을 달성할 수 있는 범위 내에서 적절히 변경될 수 있음은 물론이라 할 것이다.
또한, 보다 구체적으로, 본 발명의 일 실시예에 따르면, 유도 프로그램 코드는 클라이언트(300)가 기설정된 시간 지연을 두고 요청을 보내도록 할 수 있다. 즉, 본 발명의 일 실시예에 따르면, 유도 프로그램 코드를 실행할 수 있는 정상적인 클라이언트(310)라면 기설정된 시간 지연을 두고 요청을 보내도록 함으로써 DoS 공격 방어 시스템(200)으로 하여금 소정의 시간 간격보다 더 짧은 시간 간격을 두고 보내지는 요청을 DoS 공격용 요청인 것으로 판별해 낼 수 있도록 할 수 있다. DoS 공격용 요청은 짧은 시간 간격을 두고 연속적으로 보내지는 것이 일반적이기 때문이다. 예를 들면, 유도 프로그램 코드가 자바스크립트 형식으로 구성되는 경우에 자바스크립트의 SetTimeout함수를 사용하여 클라이언트(300)가 기설정된 시간이 지난 후에야 다음 번 요청을 보내도록 할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 클라이언트에 전송되는 유도 프로그램 코드는, 정상적인 클라이언트(310)에서 사용되는 일반 웹 브라우저에 의하여 실행될 수 있지만 DoS 공격용 클라이언트(320)에서 사용되는 공격용 프로그램에 의하여는 실행될 수 없는 형식으로 구성될 수 있는데, 예를 들면, 자바스크립트(Javascript) 형식으로 구성될 수 있다. 보다 구체적으로, 자바스크립트 엔진이 장착되어 있는 일반 웹 브라우저를 통하여 서버에 접속하려고 하는 정상적인 클라이언트(310)는 자바스크립트 코드를 실행함으로써 DoS 공격 방어 시스템(200)이 요구하는 암호화를 수행할 수 있기 때문에 DoS 공격 방어 시스템(200)에 의하여 정상적인 클라이언트인 것으로 판별되어 결과적으로 목표로 하는 서버(400)에 접근할 수 있게 된다. 반대로, 일반 웹 브라우저를 통하는 것이 아니라 자바스크립트 엔진이 장착되어 있는 공격용 프로그램을 통하여 서버에 접속하려고 하는 DoS 공격용 클라이언트(320)는 자바스크립트 코드를 실행할 수 없어 DoS 공격 방어 시스템(200)이 요구하는 암호화를 수행할 수 없기 때문에 DoS 공격 방어 시스템(200)에 의하여 비정상적인 클라이언트인 것으로 판별되어 결과적으로 목표로 하는 서버(400)에 접근할 수 없게 된다. 특히, 본 발명의 일 실시예에 따르면, 클라이언트(300)에 전송되는 유도 프로그램 코드로서 일반 웹 브라우저에서 가장 널리 사용된다고 할 수 있는 자바스크립트 형식으로 구성된 유도 프로그램 코드를 사용함으로써, 정상적인 클라이언트(310)임에도 불구하고 DoS 공격용 클라이언트(320)인 것으로 오인되는 경우가 발생할 가능성을 최소화할 수 있게 되는 효과가 달성된다. 다만, 본 발명에 따른 유도 프로그램 코드의 형식이 반드시 상기 언급한 자바스크립트에 한정되는 것은 아니며, 본 발명의 목적을 달성할 수 있는 범위 내에서 적절히 변경될 수 있을 것이다.
한편, 본 발명의 일 실시예에 따르면, 위와 같이 응답부(210)로부터 응답 쿠키 정보 및 유도 프로그램 코드를 전송 받은 클라이언트(300)는 DoS 공격 방어 시스템(200)에 의하여 유도된 특정 작업을 수행하도록 유도된다.
보다 구체적으로, 클라이언트(300)는 DoS 공격 방어 시스템(200)에 의하여 유도된 기설정된 암호화 방식에 따라 응답 쿠키 정보를 암호화할 수 있고, 그 결과 생성되는 암호화된 쿠키 정보(이하, "요청 쿠키 정보"라고 함)는 해당 클라이언트(300)가 보내는 요청에 포함되어 DoS 공격 방어 시스템(200)에 전송될 수 있으며, DoS 공격 방어 시스템(200)은 해당 클라이언트(300)로부터 전송된 요청 쿠키 정보를 참조로 하여 해당 클라이언트(300)의 요청이 정상인지 여부를 판별할 수 있게 된다.
또한, 클라이언트(300)는 DoS 공격 방어 시스템(200)에 의하여 유도된 기설정된 시간 간격을 두고 요청을 보내게 되므로 DoS 공격 방어 시스템(200)은 해당 클라이언트(300)로부터 보내지는 요청이 기설정된 시간 간격을 준수하였는지 여부를 참조로 하여 해당 클라이언트(300)로부터 보내지는 요청이 정상인지 여부를 판별할 수 있게 된다. 이상의 판별 과정과 관련하여서는, 후술할 DoS 공격 판별부(220) 부분에서 보다 상세하게 설명하기로 한다.
다음으로, 본 발명의 일 실시예에 따르면, DoS 공격 판별부(220)는 서버(400)에 대한 요청이 클라이언트(300)로부터 수신되면, (i) 해당 요청에 포함되어 있는 요청 쿠키 정보가 DoS 공격 방어 시스템(200)에 의하여 유도된 기설정된 암호화 방식에 따라 암호화된 것인지 여부를 판별할 수 있고(제1 조건), (ii) 해당 요청이 DoS 공격 방어 시스템(200)에 의하여 유도된 기설정된 시간 지연을 두고 수신된 것인지 여부를 판별할 수 있다(제2 조건). 여기서, 제2 조건의 만족 여부 판단의 기준이 되는 기설정된 시간 지연은 DoS 공격을 수행하는 클라이언트로부터 공격 요청이 보내지는 주기를 파악한 후 이보다 길게 설정될 수 있는데, 이는 상술한 바와 같이 DoS 공격을 수행하는 클라이언트가 짧은 시간 간격을 두고 연속적으로 요청을 보내는 것이 일반적이기 때문이다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 제1 조건에 대한 판별은 요청 쿠키 정보를 기설정된 암호화 방식을 참조로 복호화함으로써 수행될 수 있고, 제2 조건에 대한 판별은 요청 쿠키 정보에 포함되어 있는 직전 요청의 시각 정보로부터 판단할 때 얼마만큼의 시간 지연이 있었는지를 참조함으로써 수행될 수 있다.
또한, 본 발명의 일 실시예에 따른 DoS 공격 판별부(220)는, 클라이언트(300)로부터 보내지는 서버(400)에 대한 요청이 상술한 제1 조건 또는 제2 조건 중 어느 하나를 만족시키는 것으로 판별되면 해당 요청이 정상인 것으로 판별하여 해당 요청을 해당 서버(400)에 전달할 수 있으며, 반대로 클라이언트(300)로부터 보내지는 요청이 상술한 제1 조건 및 제2 조건을 모두 만족시키지 못하는 것으로 판별되면 해당 요청이 정상이 아닌 것으로 판별하여 해당 요청을 해당 서버(400)에 전달하지 않을 수 있다. 다만, 본 발명에 따른 제1 기준 및 제2 기준에 대한 판별 기준이 반드시 상기 언급된 실시예에 한정되는 것은 아니다. 즉, 본 발명의 다른 실시예에 따르면, 클라이언트(300)로부터 보내지는 요청이 제1 조건 및 제2 조건을 모두 만족시키는 경우에만 해당 요청이 정상인 요청인 것으로 판별할 수도 있을 것이다.
나아가, 본 발명의 일 실시예에 따른 DoS 공격 판별부(220)는, 클라이언트(300)로부터 보내지는 요청이 정상이 아닌 것으로 판별되는 경우에는, 상술한 바와 같이, 해당 클라이언트(300)가 DoS 공격용 클라이언트(320)인지 여부를 다시 한 번 판별해 보기 위하여 응답부(210)로 하여금 해당 클라이언트(300)에 응답 쿠키 정보 및 유도 프로그램 코드를 재차 전송하도록 할 수 있다.
또한, 본 발명의 일 실시예에 따른 DoS 공격 판별부(220)는, 특정 클라이언트(300)로부터 정상이 아닌 요청이 기설정된 횟수 이상 연속하여 수신되는 경우에 해당 클라이언트(300)를 DoS 공격용 클라이언트(320)로 간주하여 해당 클라이언트(300)로부터 보내지는 요청을 소정의 시간 동안 혹은 영구적으로 차단할 수 있다.
또한, 본 발명의 일 실시예에 따른 DoS 공격 판별부(220)는, 클라이언트(300)로부터 보내지는 요청에 요청 쿠키 정보가 포함되어 있지 않은 것으로 판별되는 경우, 즉, 요청이 해당 클라이언트(300)로부터 최초로 수신되는 경우에는, 상술한 바와 같이 해당 요청을 해당 서버(400)에 전달하지 않고 해당 클라이언트(300)가 DoS 공격용 클라이언트(320)인지 여부를 판별해 보기 위하여 응답부(210)로 하여금 해당 클라이언트(300)에 응답 쿠키 정보 및 유도 프로그램 코드를 전송하도록 할 수 있을 것이다.
한편, 본 발명의 일 실시예에 따르면, 데이터베이스(230)에는 DoS 공격 방어 시스템(200)에 접속한 적이 있는 클라이언트(300)에 대한 쿠키 정보가 저장되어 있을 수 있고, 클라이언트(300)에 전송되는 유도 프로그램 코드가 저장되어 있을 수 있으며, 기설정된 암호화 방식에 따라 암호화된 요청 쿠키 정보를 복호화하기 위해서 필요한 복호화 키 등의 암호화 관련 정보가 저장되어 있을 수 있다. 비록 도 2에서 데이터베이스(230)는 DoS 공격 방어 시스템(200)에 포함되어 구성되는 것으로 도시되어 있지만, 본 발명을 구현하는 당업자의 필요에 따라, 데이터베이스(230)는 DoS 공격 방어 시스템(200)과 별개로 구성될 수도 있다. 한편, 본 발명에서의 데이터베이스(230)는, 컴퓨터 판독 가능한 기록 매체를 포함하는 개념으로서, 협의의 데이터베이스뿐만 아니라 파일 시스템에 기반한 데이터 기록 등을 포함하는 넓은 의미의 데이터베이스도 포함하여 지칭하며, 단순한 로그의 집합이라도 이를 검색하여 데이터를 추출할 수 있다면 본 발명에서의 데이터베이스(230)에 포함된다.
본 발명의 일 실시예에 따른 통신부(240)는 DoS 공격 방어 시스템(200)으로부터의/으로의 데이터 송수신이 가능하도록 하는 기능을 수행할 수 있다.
마지막으로, 본 발명의 일 실시예에 따른 제어부(250)는 응답부(210), DoS 공격 판별부(220), 데이터베이스(230) 및 통신부(240) 간의 데이터의 흐름을 제어하는 기능을 수행할 수 있다. 즉, 본 발명에 따른 제어부(250)는 외부로부터의/외부로의 또는 DoS 공격 방어 시스템(200)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 응답부(210), DoS 공격 판별부(220), 데이터베이스(230) 및 통신부(240)에서 각각 고유 기능을 수행하도록 제어할 수 있다.
도 3은 본 발명의 일 실시예에 따라 DoS 공격 방어 시스템(200)이 동작하는 과정을 예시적으로 나타내는 도면이다. 앞서 살펴본 바와 같이, 본 발명의 일 실시예에 따르면, 클라이언트(300)로부터 보내지는 서버(400)에 대한 요청은 DoS 공격 방어 시스템(200)에 의하여 걸러짐으로써 정상인 것으로 판별된 요청만이 서버(400)에 전달될 수 있다.
먼저, 도 3을 참조하면, 클라이언트(300)로부터 보내지는 최초의 요청(이하, "제1 요청"이라고 함)이 DoS 공격 방어 시스템(200)에 수신될 수 있으며(S310), DoS 공격 방어 시스템(200)은 이러한 제1 요청에 대한 응답으로서 해당 클라이언트(300)에 응답 쿠키 정보 및 유도 프로그램 코드를 전송할 수 있다(S320).
다음으로, 도 3을 참조하면, 해당 클라이언트(300)에 전송된 유도 프로그램 코드는 해당 클라이언트(300)가 기설정된 암호화 방식에 따라 응답 쿠키 정보를 암호화하도록 유도할 수 있고(S330) 해당 클라이언트(300)가 기설정된 시간이 지난 후(클라이언트(300)의 암호화 수행 overhead에 의한 자연스러운 시간 지연에 기인할 수 있음)에야 다음 번 요청(이하, "제2 요청"이라고 함)을 보내도록 유도할 수 있다(S340).
다음으로 도 3을 참조하면, 클라이언트(300)로부터 보내지는 제2 요청이 DoS 공격 방어 시스템(200)에 수신될 수 있으며, DoS 공격 방어 시스템(200)은 이러한 제2 요청이 정상적인 요청인지 여부를 판별할 수 있는데(S350), 보다 구체적으로는, 제2 요청에 포함된 요청 쿠키 정보가 기설정된 암호화 방식에 따라 암호화된 것인지 여부를 판별할 수 있고 제2 요청이 제1 요청이 수신된 시점으로 기설정된 시간이 지난 후에 수신된 것인지 여부를 판별할 수 있다(S350).
다음으로, 도 3을 참조하면, 제2 요청이 정상인 것으로 판별된 경우에 제2 요청을 서버(400)에 전달할 수 있다(S360). 반대로, 제2 요청이 정상이 아닌 것으로 판별된 경우에는 제2 요청을 서버(400)에 전달하지 않을 수 있으며, 해당 클라이언트(300)가 DoS 공격용 클라이언트인지 여부를 다시 한 번 판별하기 위하여 해당 클라이언트(300)에 응답 쿠키 정보 및 유도 프로그램 정보를 재차 전송할 수 있다(S370).
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 통신망
200: DoS 공격 방어 시스템
210: 응답부
220: DoS 공격 판별부
230: 데이터베이스
240: 통신부
250: 제어부
300: 클라이언트
310: 정상적인 클라이언트
320: DoS 공격용 클라이언트
400: 서버

Claims (21)

  1. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서,
    (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는지 여부를 판별하는 단계, 및
    (b) 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 방법.
  2. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서,
    (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인지 여부를 판별하는 단계, 및
    (b) 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 직전 요청이 수신된 시각 정보를 포함하는 쿠키 정보를 포함하고, 상기 응답은 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 방법.
  3. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 방법으로서,
    (a) 서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 제1 조건 및 제2 조건을 만족시키는지 여부를 판별하는 단계 - 상기 제1 조건은 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 경우에 만족되고, 상기 제2 조건은 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인 경우에 만족됨 -, 및
    (b) 상기 요청이 상기 제1 조건 및 상기 제2 조건을 모두 만족시키는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않고 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 단계 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하고 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 응답에 포함되어 있는 쿠키 정보는 기설정된 비밀키에 의하여 암호화되어 있는 것을 특징으로 하는 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 유도 프로그램 코드는 자바스크립트(Javascript) 형식으로 구성되는 것을 특징으로 하는 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 (b) 단계에서,
    상기 요청이 특정 클라이언트로부터 최초로 수신된 것이라면, 상기 요청을 상기 서버에 전달하지 않고 상기 응답을 상기 특정 클라이언트에 전송하는 것을 특징으로 하는 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    (c) 특정 클라이언트로부터 정상이 아닌 요청이 기설정된 횟수 이상 연속하여 수신되면, 상기 특정 클라이언트로부터 보내지는 요청을 일정 시간 동안 차단하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항 또는 제3항에 있어서,
    상기 기설정된 암호화 방식으로서 비대칭 암호화 방식을 사용함으로써 상기 기설정된 암호화 방식에 따라 암호화를 수행하는 데에 소요되는 오버헤드(overhead)가 상기 기설정된 암호화 방식을 참조로 하여 복호화를 수행하는 데에 소요되는 오버헤드보다 더 크도록 하는 것을 특징으로 하는 방법.
  9. 제2항 또는 제3항에 있어서,
    상기 기설정된 시간은 서비스 거부 공격을 수행하는 클라이언트로부터 공격 요청이 보내지는 주기보다 길게 설정되는 것을 특징으로 하는 방법.
  10. 제3항에 있어서,
    상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화를 수행하는 데에 상기 기설정된 시간 이상의 시간이 소요되도록 하는 것을 특징으로 하는 방법.
  11. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서,
    서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는지 여부를 판별하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및
    상기 요청이 상기 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하지 않는 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 시스템.
  12. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서,
    서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인지 여부를 판별하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및
    상기 요청이 상기 직전 요청이 수신된 이후로 상기 기설정된 시간이 지난 후에 수신된 것이 아닌 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 직전 요청이 수신된 시각 정보를 포함하는 쿠키 정보를 포함하고, 상기 응답은 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 시스템.
  13. 서비스 거부(DoS: Denial of Service) 공격을 방어하기 위한 시스템으로서,
    서버에 대한 요청(request)이 클라이언트로부터 수신되면, 상기 요청이 제1 조건 및 제2 조건을 만족시키는지 여부를 판별하고, - 상기 제1 조건은 상기 요청이 기설정된 암호화 방식에 따라 암호화된 쿠키 정보를 포함하는 경우에 만족되고, 상기 제2 조건은 상기 요청이 직전 요청이 수신된 이후로 기설정된 시간이 지난 후에 수신된 것인 경우에 만족됨 -, 상기 요청이 상기 제1 조건 및 상기 제2 조건을 모두 만족시키는 것으로 판별되면 상기 요청을 상기 서버에 전달하고, 상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청을 상기 서버에 전달하지 않는 DoS 공격 판별부, 및
    상기 요청이 상기 제1 조건 및 상기 제2 조건 중 어느 하나라도 만족시키지 못하는 것으로 판별되면 상기 요청에 대한 응답(response)을 상기 클라이언트에 전송하는 응답부 - 상기 응답은 상기 기설정된 암호화 방식에 따른 암호화 이전의 쿠키 정보 및 상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화하도록 유도하고 상기 클라이언트가 상기 기설정된 시간 이상의 간격을 두고 요청을 보내도록 유도하는 유도 프로그램 코드를 포함함 -
    를 포함하는 시스템.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 응답에 포함되어 있는 쿠키 정보는 기설정된 비밀키에 의하여 암호화되어 있는 것을 특징으로 하는 시스템.
  15. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 유도 프로그램 코드는 자바스크립트(Javascript) 형식으로 구성되는 것을 특징으로 하는 시스템.
  16. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 DoS 공격 판별부는,
    상기 요청이 특정 클라이언트로부터 최초로 수신된 것이라면, 상기 요청을 상기 서버에 전달하지 않고,
    상기 응답부는,
    상기 요청이 특정 클라이언트로부터 최초로 수신된 것이라면, 상기 응답을 상기 특정 클라이언트에 전송하는 것을 특징으로 하는 시스템.
  17. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 DoS 공격 판별부는,
    특정 클라이언트로부터 정상이 아닌 요청이 기설정된 횟수 이상 연속하여 수신되면, 상기 특정 클라이언트로부터 보내지는 요청을 일정 시간 동안 차단하는 것을 특징으로 하는 시스템.
  18. 제11항 또는 제13항에 있어서,
    상기 기설정된 암호화 방식으로서 비대칭 암호화 방식을 사용함으로써 상기 기설정된 암호화 방식에 따라 암호화를 수행하는 데에 소요되는 오버헤드(overhead)가 상기 기설정된 암호화 방식을 참조로 하여 복호화를 수행하는 데에 소요되는 오버헤드보다 더 크도록 하는 것을 특징으로 하는 시스템.
  19. 제12항 또는 제13항에 있어서,
    상기 기설정된 시간은 서비스 거부 공격을 수행하는 클라이언트로부터 공격 요청이 보내지는 주기보다 길게 설정되는 것을 특징으로 하는 시스템.
  20. 제13항에 있어서,
    상기 클라이언트가 상기 기설정된 암호화 방식에 따라 상기 암호화 이전의 쿠키 정보를 암호화를 수행하는 데에 상기 기설정된 시간 이상의 시간이 소요되도록 하는 것을 특징으로 하는 시스템.
  21. 제1항 내지 제3항, 제10항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체.
KR1020100080003A 2010-08-18 2010-08-18 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 KR101137828B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100080003A KR101137828B1 (ko) 2010-08-18 2010-08-18 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100080003A KR101137828B1 (ko) 2010-08-18 2010-08-18 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20120017357A KR20120017357A (ko) 2012-02-28
KR101137828B1 true KR101137828B1 (ko) 2012-04-20

Family

ID=45839324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100080003A KR101137828B1 (ko) 2010-08-18 2010-08-18 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101137828B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101370244B1 (ko) * 2012-10-16 2014-03-06 한국과학기술원 응용 계층 디도스 공격의 탐지 및 차단 방법과 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040064991A (ko) * 2003-01-13 2004-07-21 주식회사 케이티프리텔 인터넷 연동 게이트웨이의 이동 통신 단말기 접속 차단시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040064991A (ko) * 2003-01-13 2004-07-21 주식회사 케이티프리텔 인터넷 연동 게이트웨이의 이동 통신 단말기 접속 차단시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEBFRONT 표준제안서 *

Also Published As

Publication number Publication date
KR20120017357A (ko) 2012-02-28

Similar Documents

Publication Publication Date Title
US8321955B2 (en) Systems and methods for protecting against denial of service attacks
US10097520B2 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
Sinha et al. Information Security threats and attacks with conceivable counteraction
US10666680B2 (en) Service overload attack protection based on selective packet transmission
JP4911018B2 (ja) フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
US9843590B1 (en) Method and apparatus for causing a delay in processing requests for internet resources received from client devices
Rajkumar A survey on latest DoS attacks: classification and defense mechanisms
KR100973076B1 (ko) 분산 서비스 거부 공격 대응 시스템 및 그 방법
Park et al. Watermarking for detecting freeloader misbehavior in software-defined networks
US9680950B1 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
KR20110059963A (ko) 유해 트래픽 차단 장치 및 방법과 이를 이용한 유해 트래픽 차단 시스템
Huang et al. Detecting stepping-stone intruders by identifying crossover packets in SSH connections
KR101137828B1 (ko) 서비스 거부 공격을 방어하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101865690B1 (ko) Https 기반 통신의 가시성 확보를 위한 네트워크 보안 감시 시스템 및 방법
Song et al. Network iron curtain: hide enterprise networks with openflow
Joseph et al. Cookie based protocol to defend malicious browser extensions
Holik Protecting IoT Devices with Software-Defined Networks
KR101686472B1 (ko) 네트워크 보안 장치, 네트워크 보안 장치에서 수행되는 악성 행위 방어 방법
Mavrommatis Confronting and intrusion detection techniques of cyber-attacks in wired and wireless communication networks
KR102491738B1 (ko) SDN에서의 분산형 DoS공격 방어방법
JP2010212916A (ja) スキャン攻撃不正侵入防御装置
KR102421722B1 (ko) 네트워크 정보 보호 방법 및 장치
Ilavarasan et al. A Survey on host-based Botnet identification
KR101811841B1 (ko) 보안 장치 및 이의 동작 방법
KR101143368B1 (ko) 분산형 DDos 방어 시스템 및 이를 이용한 방어 방법

Legal Events

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

Payment date: 20170412

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180410

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190410

Year of fee payment: 8