KR20100117604A - 컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템 - Google Patents

컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20100117604A
KR20100117604A KR1020107018027A KR20107018027A KR20100117604A KR 20100117604 A KR20100117604 A KR 20100117604A KR 1020107018027 A KR1020107018027 A KR 1020107018027A KR 20107018027 A KR20107018027 A KR 20107018027A KR 20100117604 A KR20100117604 A KR 20100117604A
Authority
KR
South Korea
Prior art keywords
requests
customer
computer
computer system
application program
Prior art date
Application number
KR1020107018027A
Other languages
English (en)
Other versions
KR101465462B1 (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 디엘비 파이낸스 & 컨설턴시 비.브이.
Publication of KR20100117604A publication Critical patent/KR20100117604A/ko
Application granted granted Critical
Publication of KR101465462B1 publication Critical patent/KR101465462B1/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • H04L63/0254Stateful filtering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 고객과의 전자 통신을 위해 구성되는 컴퓨터 시스템에서 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법에 관한 것이다. 상기 컴퓨터 시스템은 컴퓨터 애플리케이션 프로그램의 제 1 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들의 제 1 요청 세트에 액세스하도록 구성된다. 상기 컴퓨터 애플리케이션 프로그램은 상기 컴퓨터 시스템상에서 또는 하나 이상의 다른 컴퓨터 시스템상에서 실행될 수 있다. 고객 요청은 상기 컴퓨터 시스템에서 컴퓨터 애플리케이션 프로그램용으로 수신된다. 상기 컴퓨터 애플리케이션 프로그램은 상기 고객과 관련되는 상기 1 애플리케이션 상태에 있다(예를 들어 고객 접속을 사용한다). 상기 고객 요청이 상기 컴퓨터 애플리케이션 프로그램의 제 1 애플리케이션 상태에 대응하는 허용 가능 요청들 중 하나에 매칭하는지를 결정하기 위해서 상기 고객 요청이 분석된다. 상기 컴퓨터 애플리케이션 프로그램은, 상기 고객 요청이 상기 제 1 요청 세트의 허용 가능 요청과 매칭하는 경우에만 상기 고객 요청을 실행하라고 이 프로그램에 명령함으로써 제어된다.

Description

컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING A COMPUTER APPLICATION PROGRAM}
본 발명은 하나 이상의 컴퓨터 디바이스(computer device)들을 사용하는 전자 통신 분야에 관한 것이다.
인터넷의 확산에 따라, 호스트 시스템(host system)들은 자신의 서비스들을 수많은 고객 시스템들로 제공할 수 있고, 여기서 호스트 및 고객 시스템들은 전세계 도처에 분산되어 있다. 일단 적절한 접속이 확립되면, 정보는 호스트 시스템 및 고객 시스템 사이에서 자유롭게 흐를 수 있다.
예를 들어, 종래의 분산형 네트워크(distributed network)에서 복수의 호스트 시스템들 또는 서버들은 네트워크 또는 네트워크의 집합체, 예를 들어 인터넷을 통해 복수의 고객 시스템들과 통신한다. 이와 같은 분산형 네트워크의 아키텍처(architecture)는 강함(strength)의 원천(예를 들어 다수의 시스템들 사이에서 정보의 자유로운 흐름을 가능하게 한다) 및 취약함의 원천(예를 들어 악의적 공격들에 대한 취약성들을 발생시킨다)이다.
특히, 고객 시스템이 호스트 시스템으로의 접속, 예를 들어 TCP(Transmission Control Protocol) 접속의 확립을 시도하면, 고객 및 호스트는 메시지들 또는 패킷(packet)들의 시퀀스의 세트를 교환한다. 이 일반적인 방법은 모든 TCP 접속들에 적용된다: 웹(web), 텔넷(telnet), 이메일 등등. 접속이 설정되면, 고객 시스템은 호스트 시스템에 예를 들어 콘텐츠(contents)에 대한 요청들을 송신할 수 있다.
호스트 시스템들에서 고객 시스템의 악의적 활동들을 방지하거나 감소시키기 위해, 일반적으로 방화벽(firewall)들이 알려져 있다. 방화벽은 자신을 통과하는 네트워크 트래픽(traffic)을 검사하여 일단의 규칙들에 기반하여 통과를 거부하거나 허용하는 전용 기기(appliance) 또는 소프트웨어이다.
통신이 발생하고 있는 장소, 통신이 인터셉트(intercept)된 장소, 및 추적되고 있는 상태에 따라 여러 분류의 방화벽들이 존재한다. 또한 패킷 필터(packet filter)들로 칭해지는 네트워크 계층 방화벽들은 상대적으로 낮은 레벨의 TPC/IP 프로토콜 스택(protocol stack)에서 동작하지만, 패킷들이 설정된 규칙 세트에 매칭하지 않는 한 패킷들은 방화벽을 통과하지 못한다. 이 방화벽은 패킷 속성들에 기반하여 트래픽을 여과한다. 방화벽 관리자는 규칙을 규정할 수 있거나; 또는 디폴트(default) 규칙들을 적용할 수 있다. 네트워크 계층 방화벽들은 일반적으로 두 하위 범주로 나누어진다. 상태기반 방화벽(stateful firewall)은 자신을 통과하는 네트워크 접속들(TCP 스트림(stream)들, UDP 통신)의 상태를 추적하는 방화벽이다. 이 방화벽은 상이한 유형들의 접속들을 위해 적법한 패킷들을 구분하도록 프로그램된다. 공지된 접속 상태에 매칭하는 패킷들만이 방화벽에 의해 허용될 것이며, 반면에 다른 패킷들은 거부될 것이다. 무상태(stateless) 방화벽은 패킷 필터링 능력을 가지지만, 호스트들 사이의 통신들이 어떤 국면에 도달했는지에 대한 보다 복잡한 결정들을 행할 수 없다.
애플리케이션 계층 방화벽들은 TCP/IP 스택의 애플리케이션 레벨(즉, 모든 브라우저 트래픽, 또는 모든 텔넷 또는 ftp 트래픽)에서 동작하고, 애플리케이션을 왔다갔다 이동하는 모든 패킷들을 인터셉트할 것이다. 이론적으로, 애플리케이션 방화벽들은 모든 원하지 않는 외부 트래픽이 보호된 기계들에 도달하는 것을 방지할 수 있다. 이 방화벽들은 패킷들을 부적절한 콘텐츠에 대해서 검사한다. XML 방화벽은 최신 애플리케이션 계층 방화벽의 종류를 예시한다. 이와 같은 방화벽의 예는 EP 1 296 252에 의해 제공된다.
네트워크 계층 방화벽들은 복잡한 규칙 세트들이 설정되고 유지되어야만 하기 때문에 불리하다. 한편, 애플리케이션 계층 방화벽들은 패킷들의 콘텐츠의 스크리닝(screening)이 상당한 양의 자원들을 필요로 하고/하거나 현저한 많은 시간이 걸리기 때문에 불리하다.
본 기술분야에서는 예를 들어 자원을 절약할 수 있는 개선된 보안 시스템이 필요하다.
고객과의 전자 통신을 위해 구성되는 컴퓨터 시스템에서 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법이 제안된다. 상기 컴퓨터 시스템은 상기 컴퓨터 애플리케이션 프로그램의 제 1 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들의 제 1 요청 세트에 액세스하도록 구성된다. 상기 컴퓨터 애플리케이션 프로그램은 상기 컴퓨터 시스템상에서 또는 하나 이상의 다른 컴퓨터 시스템상에서 실행될 수 있다. 고객 요청은 상기 컴퓨터 시스템에서 상기 컴퓨터 애플리케이션 프로그램용으로 수신된다. 상기 컴퓨터 애플리케이션 프로그램은 상기 고객과 관련되는 상기 1 애플리케이션 상태에 있다(예를 들어 고객 접속을 사용한다). 상기 고객 요청이 상기 컴퓨터 애플리케이션 프로그램의 상기 제 1 애플리케이션 상태에 대응하는 상기 허용 가능 요청들 중 하나에 매칭하는지를 결정하기 위해서 상기 고객 요청이 분석된다. 상기 컴퓨터 애플리케이션 프로그램은, 상기 고객 요청이 상기 제 1 요청 세트의 허용 가능 요청과 매칭하는 경우에만 상기 고객 요청을 실행하라고 이 프로그램에 명령함으로써 제어된다.
상기 방법을 실행하기 위한 컴퓨터 프로그램 및 그와 같은 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 매체가 또한 제안된다.
컴퓨터 애플리케이션 프로그램을 제어하기 위한 컴퓨터 시스템이 또한 제안된다. 상기 컴퓨터 애플리케이션 프로그램은 상기 컴퓨터 시스템상에 또는 하나 이상의 다른 컴퓨터 시스템들 상에 설치된다. 상기 컴퓨터 시스템은 적어도 하나의 고객에 접속하도록 구성된다. 상기 컴퓨터 시스템은 상기 컴퓨터 애플리케이션 프로그램으로 지향되는 고객 요청을 수신하도록 구성되는 고객 요청 수신기를 포함한다. 그리고나서 상기 컴퓨터 프로그램은 제 1 애플리케이션 상태에 있을 수 있다. 상기 컴퓨터 시스템은 또한, 상기 고객 요청이 제 1 요청 세트의 허용 가능 요청과 매칭하는지를 분석하도록 구성되는 분석기 모듈(module)을 포함한다. 상기 제 1 요청 세트는 상기 고객과 관련되는 상기 컴퓨터 애플리케이션 프로그램의 상기 제 1 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들을 포함한다. 상기 컴퓨터 시스템은 또한, 상기 고객 요청이 상기 제 1 요청 세트의 상기 허용 가능 요청들 중 하나와 매칭하는 경우에만 상기 고객 요청을 수행하도록 상기 컴퓨터 애플리케이션 프로그램에 명령하도록 구성되는 명령 모듈을 포함한다.
상기 고객 요청은 예를 들어 상기 컴퓨터 애플리케이션 프로그램에 대한 명령을 포함할 수 있다.
상기 허용 가능 요청들의 제 1 세트는 상기 컴퓨터 애플리케이션 프로그램에 유효한 (광범위한) 복수의 요청들 중에서 선택된 요청을 포함할 수 있다.
상기 제안된 방법 및 시스템은 증가된 보안성과 함께 감소된 자원들의 애플리케이션을 결합한다. 일반적으로, 컴퓨터 애플리케이션 프로그램은 복수의 요청들, 종종 (매우) 다량의 요청들을 처리할 수 있다. 상기 제안된 방법 및 시스템은 상기 컴퓨터 프로그램(들)의 애플리케이션 상태가 주어질 때, 허용 가능 요청들만을 선택할 수 있다. 상기 상태에 대해서 상기 허용 가능 요청들에 매칭하는 요청들만이 실행되어 보안 시스템에 제공될 것이다. 한편, 상기 방법 및 시스템은 콘텐츠 자체를 조사하지 않지만 특정한 순간에 컴퓨터 프로그램(들)의 애플리케이션 상태와 관련하여 고객으로부터 예상될 수 있는 더 낮은 레벨 요청들(예를 들어 애플리케이션 레벨 요청들)을 추적한다. 만일 그렇지 않다면, 상기 요청은 실행되는 것이 아니라 거부되거나 단지 중단된다. 이 방법은 신속하면서도 안전한 트래픽의 스크리닝을 가능하게 한다.
상기 방법 및 컴퓨터 시스템은 실제로 컴퓨터 애플리케이션 프로그램을 실행하는 하나 이상의 다른 컴퓨터 시스템과 통신 중일 수 있음이 인식되어야 한다. 이때 상기 컴퓨터 시스템은 게이트키퍼(gatekeeper)로서 기능을 한다.
애플리케이션 프로그램의 예들은 웹 서버들, 웹 서비스들, 애플리케이션 서버들, 및 특히 데이터베이스들을 포함한다.
청구항 제 2 항 및 제 9 항의 실시예들은 상기 컴퓨터 애플리케이션 프로그램의 상기 적용 가능 애플리케이션 상태에 대응하는 요청 세트를 동적으로 구성하는 장점을 제공한다. 상기 컴퓨터 시스템 또는 다른 컴퓨터 시스템의 통신 상태의 변경은 청구항 제 3 항에 규정된 바와 같은 애플리케이션 프로그램에 의한 요청의 실행에 의해 결정될 수 있다.
상기 컴퓨터 시스템에, 상기 컴퓨터 애플리케이션 프로그램의 특정 애플리케이션 상태에 허용 가능 요청들을 구비한 적용 가능 요청 세트를 고지하는 다양한 방법들이 존재한다.
청구항 제 20 항의 실시예는 상기 컴퓨터 애플리케이션 프로그램이 특정 고객에 대한 자체의 애플리케이션 상태(접속)를 상기 컴퓨터 시스템에 단지 보고함 하는 장점을 갖는다. 상기 컴퓨터 시스템은 상기 컴퓨터 애플리케이션 프로그램의 이 상태에 대한 상기 적용 가능 요청 세트를 획득하거나, 검색하거나, 또는 업데이트하기 위해 상기 보고된 상태를 사용할 수 있다.
한편, 청구항 제 4 항 및 제 21 항의 실시예들은 상기 적용 가능 요청 세트가 상기 컴퓨터 애플리케이션 프로그램(또는 상기 컴퓨터 프로그램의 애플리케이션 상태를 상기 컴퓨터 시스템에 보고하도록 구성되는 다른 프로그램)으로부터 직접적으로 수신되는 장점을 갖는다.
청구항 제 5 항, 제 6 항 및 제 22 항은 실제 콘텐츠의 레벨 미만의 레벨에서 요청들의 실시예들을 규정한다. 이 레벨에서의 스크리닝은 신속하지만 안전한다.
청구항 제 7 항 및 제 23 항의 실시예들은 예를 들어 상태기반 방화벽과 같이 복수의 고객들의 접속으로 상기 컴퓨터 시스템에 접속되는 복수의 고객들의 추적이 가능하다. 특히, 상기 컴퓨터 시스템은 예를 들어 어떤 고객이 접속되고/되거나 어떤 고객 요청들이 어떤 고객에 의해 행해졌는지(접속 상태) 모니터링(monitoring)한다. 이때 상기 컴퓨터 애플리케이션 프로그램의 애플리케이션 상태는 특정 접속 상태와 관련된다.
청구항 제 8 항 및 제 24 항의 실시예들은 악의적 및 비악의적 고객들을 구분하는 것이 가능하다. 대부분의 기관들은 흔히 프록시(proxy)들로 칭해지는 컴퓨터 시스템들을 사용하고, 이 컴퓨터 시스템들은 인터넷과 같이 광대역 네트워크(wide area network)에서 국지 대역 네트워크(local area network)를 분리한다. 프록시들은 다른 기능들 중에서도, NAT(network address translation)을 사용한다. 프록시에 행해지는 요청들의 양이 상당할지라도, 이 요청들은 대부분 비악의적일 가능성이 크다. 적절한 문턱값(예를 들어 내부 고객들로부터 수신되는 로그인 요청들의 수의 이력 데이터를 사용하여 국지 대역 네트워크로부터 예상될 수 있는 평균 수 또는 요청들에 기반하는)을 설정함으로써, 악의적 외부 요청들은 국지 대역 네트워크로부터의 비악의적 요청들과 구분될 수 있다. 내부 고객들로부터의 요청들의 빈도는 로그인 요청들 및 상기 애플리케이션 프로그램의 흐름, 즉, 상기 컴퓨터 애플리케이션 프로그램의 애플리케이션 상태들의 시퀀스에 기반하여 추정될 수 있다. 외부 고객들로부터의 상당한 수의 요청들은 공격을 나타낼 수 있다. 이와 같은 요청들은 거부될 수 있다. 이 고객들로부터의 요청들은 접촉 이력, 과거 행동 및/또는 도메인(domain)을 기반하여 모니터링되거나, 거부되거나, 또는 분석될 수 있다.
청구항 제 9 항 내지 제 12 항 및 제 25 항 내지 제 28 항의 실시예는 예를 들어 매우 큰 수의 요청들 또는 매우 큰 수의 동일한 고객 요청들을 송신하는 고객들을 차단하거나 중단하는 것이 가능하다. 보다 보편적으로, 악의적 고객들은 비악의적 고객들과 구분될 수 있고, 상기 요청들이 상기 컴퓨터 시스템에 이후에 도착하는 경우조차도 비악의적 고객들은 악의적 고객 이전에 서비스를 받을 수 있다. 이 실시예들이 일반적으로 보안성을 추가할지라도, 이 실시예들은 또한 청구항 제 1 항 내지 제 8 항에 규정된 발명과는 별도로 적용될 수 있다는 것이 이해된다.
상기 고객 및 상기 컴퓨터 시스템이 단일 디바이스에서 실행될 수 있을지라도, 청구항 제 13 항 및 제 29 항의 실시예들이 바람직하다.
가능한 요청들의 양은 데이터베이스 컴퓨터 애플리케이션 프로그램들이 비해 특히 크다. 청구항들 제 14 항, 제 15 항, 제 30 항 및 제 31 항의 실시예들은 특히 이 경우들에 유용하다.
이후에, 본 발명의 실시예들은 더욱 상세하게 설명될 것이다. 그러나, 이 실시예들은 본 발명의 보호의 범위를 제한하는 것으로 해석될 수 없음이 인식되어야 한다.
상술한 바와 같이, 본 발명으로 인해 네트워크 계층 방화벽들을 유지하는 규칙 세트들이 보다 간소하게 설정 유지되고, 패킷들의 콘텐츠의 스크리닝(screening)에 필요한 자원 및 시간이 감소한다.
도 1a 및 도 1b는 본 발명의 실시예에 따른 컴퓨터 시스템을 사용하는 다양한 상황들의 개략적인 도면.
도 2a 및 도 2b는 본 발명의 실시예에 따른 시스템의 개략적인 도면.
도 3a 및 도 3b는 본 발명의 실시예에 따른 방법의 단계들을 도시한 도면.
도 1a 및 도 1b는 본 발명의 실시예에 따른 컴퓨터 시스템(1)을 사용하는 다양한 상황들의 개략적인 도면들을 제공한다.
도 1a에서, 고객 디바이스들(2A, 2B)은 네트워크(3)를 통해 컴퓨터 시스템(1)에 접속된다. 그러나, 컴퓨터 시스템(1)은 또한 고객 자체를 실행하여 디스플레이(4) 상에서 고객에게 사용자 인터페이스를 제공할 수 있다. 컴퓨터 시스템(1)은 또한 웹 서버 또는 데이터베이스 애플리케이션과 같이 고객들의 요청들(명령들)이 지향되는 컴퓨터 애플리케이션 프로그램을 실행한다. 고객 디바이스들은 전화, PDA, 랩탑(laptop) 컴퓨터들과 같이 무선 액세스 네트워크(5)를 통하여 네트워크(3)와 통신하는 모바일(mobile) 무선 디바이스들(2A) 및 데스크탑 컴퓨터들(2B)과 같은 유선 디바이스들을 포함할 수 있다.
도 1b에서, 고객 디바이스들(2C, 2D, 및 2E)은 제 1 네트워크(3)를 통해 컴퓨터 시스템(1)에 접속된다. 컴퓨터 시스템(1)은 고객들로부터의 요청이 지향되는 특정한 컴퓨터 애플리케이션 프로그램을 운영하는 호스트 시스템 또는 서버(6)에 대한 게이트키퍼로서 기능을 한다. 그와 같은 서버들(6)이 복수로 제공될 수 있다. 컴퓨터 시스템(1)은 제 2 네트워크(7)를 통해 호스트 시스템(6)에 통신하도록 접속된다. 호스트 시스템(6)은 데이터베이스(8)에 액세스하고 특히 데이터베이스(8)를 사용하여 데이터베이스 애플리케이션을 실행할 수 있다.
당업자에 의해 본 발명의 범위를 벗어나지 않고 컴퓨터 시스템(1)의 애플리케이션에 대한 다양한 다른 상황들이 고려될 수 있다.
고객 애플리케이션 프로그램은 컴퓨터 시스템(1), 호스트 시스템(6) 또는 하나 이상의 다른 컴퓨터 시스템들에 설치되고 실행된다. 컴퓨터 애플리케이션 프로그램은 복수의 애플리케이션 상태들을 갖는다. 애플리케이션 상태들은 애플리케이션 프로그램에 대한 상태들의 특정한(사전 결정된) 시퀀스 내의 논리적 단계들을 표시한다. 컴퓨터 애플리케이션 프로그램의 애플리케이션 상태들은 상기 프로그램에 요청을 실행한 후에 변경된다. 이 애플리케이션 상태들에 대해 다량의 요청들이 유효하다. 그러나, 애플리케이션 상태들 각각에 대해, 다량의 요청들의 특정한 서브세트만이 허용 가능하다.
예로서, 웹사이트 페이지 상의 링크의 활성은 새로운 링크들의 세트를 구비한 다른 웹사이트로 리턴한다(애플리케이션 상태의 변화). 웹 서버로의 많은 가능한 요청들 중에서, 리턴된 웹페이지 상의 링크들의 활성은 이 애플리케이션 상태에 대한 허용 가능 요청들의 세트에 속한다.
도 2a에서, 도 1a 및 도 1b의 컴퓨터 시스템(1)이 개략적으로 도시된다. 컴퓨터 시스템(1)은, 네트워크들(3)을 통해 하나 이상의 디바이스들(2A 내지 2E)과 (그리고 가능한 경우 제 2 네트워크(7)를 통해 호스트 시스템(6)과) 통신하기 위해 프로세서(10), 메모리(11), 네트워크 어댑터(adapter)(12)를 포함한다. 일반적으로 도 1a 및 도 1b의 컴퓨터 시스템(1)이 둘 또는 셋 이상의 고객 디바이스들에 접속하도록 구성될 수 있음이 인식되어야 한다.
컴퓨터 시스템(1)은 또한 컴퓨터 시스템(1) 또는 호스트 시스템(6)에 의해 실행되는 애플리케이션 프로그램의 다양한 애플리케이션 상태들에 대한 요청 세트들을 구비한 데이터베이스(13)를 포함할 수 있다. 데이터베이스(13)는 또한 컴퓨터 시스템(1)에서 실행되는 데이터베이스 애플리케이션 프로그램에 의해 사용될 수 있다.
컴퓨터 시스템(1)의 특정한 기능들은 도 2b에 개략적으로 도시되고 이제 더욱 상세하게 설명될 것이다. 상기 기능들은 대체로 프로세서(10) 상에서 실행되는 하나 이상의 컴퓨터 프로그램들의 소프트웨어 코드 부분들로서 실행될 수 있음이 인식되어야 한다.
컴퓨터 시스템(1)은 고객 디바이스들(2A 내지 2E)과의 접속을 확립하기 위한 접속 모듈(20)을 포함한다. 접속 모듈은 고객 디바이스들과의 접속을 모니터링한다. 접속 모듈(20)은 고객 대 컴퓨터 시스템(1)에 대한 통신 상태를 결정하도록 구성될 수 있다.
컴퓨터 시스템(1)은 고객 디바이스(2A 내지 2E) 또는 내부 고객으로부터의 요청을 수신하도록(그리고 프로세싱하도록) 구성되는 고객 요청 수신기(21)를 포함한다. 고객 요청은 컴퓨터 시스템(1) 및/또는 호스트 시스템(6)에 설치되는 컴퓨터 애플리케이션 프로그램에 대한 요청 또는 명령이다. 고객 요청은 예를 들어 특정한 웹 페이지 상의 링크의 활성에 의한 http 요청 결과 또는 데이터베이스(8, 13)에 대한 명령일 수 있다.
컴퓨터 시스템(1)은 또한, 고객 요청 수신기(21)에 의해 수신되는 고객 요청이 상기 고객과 관련되는 컴퓨터 애플리케이션 프로그램의 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들을 포함하는 요청 세트의 허용 가능 요청과 매칭하는지를 분석하도록 구성되는 분석기 모듈(22)을 가질 수 있다.
컴퓨터 시스템(1)은 또한 컴퓨터 시스템(1) 및/또는 호스트 시스템(6)의 컴퓨터 애플리케이션 프로그램에 명령하기 위한 명령 모듈(23)을 포함하여 상기 고객 요청이 상기 요청 세트의 허용 가능 요청들 중 하나와 매칭하는 경우에만 고객 요청을 수행한다.
물론, 고객 요청 수신기(21)는 부가 고객 요청들을 수신할 수 있다. 분석기 모듈(22)은 부가 고객 요청들이 각각 컴퓨터 애플리케이션 프로그램의 상이한 애플리케이션 상태들에 대응하는 부가 대응 요청 세트들의 허용 가능 요청들에 매칭하는지를 분석할 수 있다. 그 후에 명령 모듈(23)은, 대응하는 애플리케이션 상태의 적용 가능 요청 세트의 허용 가능 요청들과 상기 요청들이 매칭하는 경우에만 부가 요청들을 수행하라고 컴퓨터 애플리케이션 프로그램에 명령할 수 있다.
컴퓨터 애플리케이션 프로그램의 특정한 애플리케이션 상태에 대하여 허용 가능 요청들을 갖는 적용 가능 요청 세트를 컴퓨터 시스템(1)에 고지하는 다양한 방법들이 존재한다.
컴퓨터 시스템(1)은 예를 들어 컴퓨터 시스템(1) 및/또는 호스트 시스템(6)의 컴퓨터 애플리케이션 프로그램의 애플리케이션 상태들을 검출하도록 구성된 애플리케이션 상태 검출기(24)를 포함할 수 있다. 검출기(24)가 프로그램의 애플리케이션 상태를 검출하는 경우, 상기 특정 애플리케이션 상태에 대한 요청 세트를 검색, 획득 및/또는 업데이트하기 위해 요청 세트 검색기(25)가 제공된다. 요청 세트는 예를 들어 데이터베이스(13)로부터 검색될 수 있다.
그러나, 컴퓨터 애플리케이션 프로그램의 특정한 애플리케이션 상태에 대해 허용 가능 요청들의 적용 가능한 요청 세트는 또한 컴퓨터 시스템(1)의 요청 세트 수신기(26)에 의해 수신될 수 있다. 요청 세트는 예를 들어 컴퓨터 시스템(1) 또는 서버(6) 상에서 실행되는 컴퓨터 애플리케이션 프로그램으로부터, 또는 다른 컴퓨터 프로그램으로부터 수신될 수 있다.
컴퓨터 시스템(1)은 또한 고객 요청들의 문턱값 량을 저장할 수 있다. 컴퓨터 시스템(1)은 시간 단위당 고객 요청들의 문턱값 량을 유지하도록 구성된다. 명령 모듈(23)은 고객 요청의 양이 상기 문턱값 량 미만인 경우에만 고객 요청을 수행하라고 컴퓨터 애플리케이션 프로그램에 명령하도록 구성된다. 그와 같은 기능은 예를 들어 컴퓨터 시스템(1)이 프록시 서버 내에서 실행될 때 또는 많은 고객들이 공통 공중 IP 어드레스를 공유할 때 장점이 되는 것으로 입증된다.
대안의 실시예에서, 컴퓨터 시스템(1)은 악의적 그리고 비악의적 고객들 사이를 구분하도록 구성된 구분 모듈(27)을 가질 수 있다. 악의적 및 비악의적 고객들은 예를 들어 고객들로부터 수신된 고객 요청들의 수, 고객의 컴퓨터 시스템(1)과의 접촉 이력, 요청들의 콘텐츠의 유형 및/또는 상기 고객들로부터 수신되는 요청들의 콘텐츠에 기반하여 구분될 수 있다. 악의적 고객 요청들에 선행하는 비악의적 고객 요청들의 큐(queue)를 획득하기 위해 악의적 및 비악의적 고객들로부터의 고객 요청들을 순위화하도록 구성된 순위 모듈(ranking module)(28)이 제공된다. 명령 모듈(23)은 우선 상기 비악의적 고객 요청들을 실행하라고 상기 컴퓨터 애플리케이션에 명령하도록 구성된다. 악의적 고객 요청들은 적법한 요청들이 처리되고 난 후에 다른 분석기 모듈(29)에 의해 분석되어, 악의적 고객에 페널티(penalty)를 과할 수 있다. 그 결과는 예를 들어 컴퓨터 시스템(1)과 악의적 고객들 사이의 접촉 이력을 업데이트하기 위해 사용될 수 있다.
컴퓨터 시스템(1)은 고객들로부터의 접촉 이력을 저장하기 위한 저장 모듈(30)을 가질 수 있다. 순위 모듈(28)은 상기 접촉 이력으로부터 인지되지 않는 고객들보다 상기 접촉 이력으로부터 인지된 고객들을 큐에서 더 높게 순위화하도록 구성될 수 있다.
다음에, 컴퓨터 시스템(1)의 동작은 도 3a 및 도 3b를 참조하여 기술될 것이다. 컴퓨터 시스템(1)은 도 1b에 따라, 데이터베이스(8)로부터 데이터를 검색하기 위해 데이터베이스 애플리케이션 프로그램을 실행하는 호스트 시스템(6)에 대한 게이트키퍼로서 기능을 한다.
고객 디바이스(2C)에 설치된 고객은 통신 네트워크(3)를 통해 호스트 시스템(6)에서 실행되는 컴퓨터 애플리케이션 프로그램의 사용을 요청한다.
단계 40에서, 컴퓨터 시스템(1)은 요청을 인터셉트하고 접속 모듈(20)을 사용하여 접속을 확립한다. 접속 모듈(20)은 접속 및 고객 디바이스(2C)로부터의 요청들을 모니터링한다. 시작 페이지, 예를 들어 html 페이지가 고객 디바이스(2C)에 제공된다. 여기서 컴퓨터 애플리케이션을 구동하기 위한 할당된 허용 가능 요청들을 갖는 초기 애플리케이션 상태가 적용될지라도, 컴퓨터 시스템(1)은 초기 요청을 스크리닝하지 않는다고 가정한다.
고객 디바이스(2C)에 제공되는 컴퓨터 애플리케이션 프로그램의 시작 페이지는 다수의 요청들, 예를 들어 http GET 요청들이 행해지도록 한다. 이 요청들은 컴퓨터 애플리케이션 프로그램의 시작 페이지(애플리케이션 상태)에 대응하는 허용 가능 요청들의 제 1 요청 세트를 구성한다. 간소화를 위해서, 단지 유효 요청들만이 여기서 활성화될 수 있는 하이퍼링크(hyperlink)들의 세트에 의해 구성되는 것으로 가정할 수 있다. 그러나, 다른 요청들 또는 명령들, 예를 들어 http 포스트(post) 요청들이 가능할 수 있음이 인식되어야 한다.
단계 41에서, http 요청은 시작 페이지로부터의 하이퍼링크의 활성화의 결과에 따라 고객(2C)으로부터 수신된다. 접속 모듈(20)은 이 요청이 시작 페이지로부터의 요청을 발행했던 고객 디바이스(2C)로부터 온 것인지를 모니터링한다.
요청 세트 수신기(26)는, 호스트 시스템(6)에서 실행하고 시작 페이지에 대해 유효한 컴퓨터 애플리케이션 프로그램으로부터 제 1 요청을 수신한다. 단계 42에서, 컴퓨터 시스템(1)의 분석기 모듈(22)은 고객 디바이스(2C)로부터 수신된 http 요청이 html 시작 페이지에 대해 수신된 제 1 요청 세트의 허용 가능 요청과 매칭하는지를 조사한다.
http 요청이 제 1 요청 세트의 요청과 매칭되지 않는 경우, 명령 모듈(23)은 호스트 시스템(6) 상에서 실행하고 있는 컴퓨터 애플리케이션 프로그램에 http 요청을 수행하라고 명령하지 않을 것이다(단계 43). 이 요청이 적용 가능한 요청 세트의 일부가 아니면 고객 디바이스 관점에서 유효한 듯한 요청이라도 수행되지 않을 것이 가능하다는 점이 주목되어야 한다.
단계 44에서, 수행되지 않은 요청에 부가 작동들이 수행된다. 이 작동들은 제한되지 않지만, 요청을 폐기하고, 요청을 분석하고, 요청들을 저장하고, 요청 이력을 구성하기 위해 요청으로부터 정보를 추출하는 것을 포함한다.
분석 모듈(22)이 고객 디바이스(2C)에서의 http 요청이 시작 html 페이지의 제 1 요청 세트의 허용 가능 요청과 매칭하는 것을 발견하는 경우, 명령 모듈(23)은 단계 45에서 데이터베이스(8)에 http 요청을 수행하라고 컴퓨터 애플리케이션 프로그램에 명령한다. 부가 작동들은 또한 이 수행된 요청들에 대해서 수행될 수 있음이 주목된다.
요청의 수행은 애플리케이션 프로그램이 데이터베이스로부터 데이터를 추출하여 상기 요청에 따라 새로운 html 페이지를 구성하도록 한다. 새로운 html 페이지는 고객 디바이스(2C)로 송신된다.
새로운 html 페이지는 컴퓨터 애플리케이션 프로그램의 새로운 애플리케이션 상태에 대응한다(단계 46). 고객 디바이스(2C)와의 개방 접속을 유지하는 접속 모듈(20)은 새로운 html 페이지가 고객 디바이스(2C)로 송신되었음을 등록한다.
단계 47에서, 고객 디바이스(2C)로부터 부가 http 요청이 수신된다.
http 요청을 수신하기 전에 또는 수신한 후에, 컴퓨터 애플리케이션 프로그램은 분석기 모듈(22)에 새로운 애플리케이션 상태에 대응하는 요청 세트를 고지하였다. 부가 http 요청의 수신 시에, 분석 모듈(22)은 단계 48에서 부가 http 요청이 새로운 애플리케이션 상태에 대해 유효한 요청 세트의 허용 가능 요청과 매칭하는지를 조사한다.
최종적으로, 분석기 모듈(22)에 의한 분석의 결과에 따라, 명령 모듈(23)은 컴퓨터 애플리케이션 프로그램에 요청을 수행(단계 49)하거나 수행하지 말라고(단계 50) 명령할 것이다.
고객 디바이스(2C)의 부가 요청들에 대한 흐름도가 계속되는 것이 인식되어야 한다.
컴퓨터 시스템(1)은 예를 들어 각각의 접속에 대한 표들을 가지는 접속 모듈(20)을 사용하여 각각의 고객에 대한 애플리케이션 상태를 추적하여 컴퓨터 시스템(1)이 다수의 고객들로부터의 요청들을 처리하도록 구성되지만, 반면에 컴퓨터 애플리케이션 프로그램(들)의 애플리케이션 상태는 특정한 시간의 경우에 각각의 고객에 대해 상이할 수 있음이 또한 인식되어야 한다.
고객으로부터 수신되는 각각의 요청은 단계 44에 따라 예를 들어 통계적인 이유로 분석될 수 있음이 또한 인식되어야 한다.

Claims (31)

  1. 고객과의 전자 통신을 위해 구성되고 상기 고객과 관련된 컴퓨터 시스템 또는 다른 컴퓨터 시스템에서 실행하는 컴퓨터 애플리케이션 프로그램의 제 1 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들의 제 1 요청 세트에 액세스하는, 상기 컴퓨터 시스템 내의 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법에 있어서:
    - 상기 컴퓨터 시스템에서, 상기 제 1 사전 결정된 애플리케이션 상태에서 상기 고객으로부터 상기 컴퓨터 애플리케이션 프로그램에 대한 고객 요청을 수신하는 단계;
    - 상기 고객 요청을 수신한 것에 응답하여 상기 고객 요청이 상기 허용 가능 요청들 중 하나와 매칭하는지를 분석하는 단계;
    - 상기 고객 요청이 상기 제 1 요청 세트의 상기 허용 가능 요청들 중 하나와 매칭하는 경우에만 상기 고객 요청들을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하는 단계를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  2. 제 1 항에 있어서,
    - 상기 제 1 애플리케이션 상태를 상기 컴퓨터 애플리케이션 프로그램의 제 2 애플리케이션 상태로 변경하는 단계로서, 상기 제 2 애플리케이션 상태는 상기 제 1 애플리케이션과 상이한, 상기 변경 단계;
    - 상기 고객 디바이스로부터 부가 고객 요청을 수신하는 단계;
    - 상기 부가 고객 요청이 상기 제 2 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들의 제 2 요청 세트의 허용 가능 요청과 매칭하는지를 분석하는 단계;
    - 상기 부가 고객 요청이 상기 제 2 요청 세트의 상기 허용 가능 요청들 중 하나와 매칭하는 경우에만 상기 부가 고객 요청을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하는 단계를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  3. 제 2 항에 있어서, 상기 제 1 애플리케이션 상태는 상기 고객 요청의 실행에 응답하여 상기 제 2 애플리케이션 상태로 변경되는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 제 1 요청 세트 또는 상기 제 1 애플리케이션 상태 중 적어도 하나는 상기 컴퓨터 시스템 또는 상기 다른 컴퓨터 시스템에서 실행하는 상기 컴퓨터 애플리케이션 프로그램으로부터 획득되는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 제 1 요청 세트의 상기 허용 가능 요청들은 애플리케이션 계층 요청들과 관련되는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  6. 제 5 항에 있어서, 상기 애플리케이션 계층 요청들은 HTTP(hypertext transfer protocol) 요청들, FTP(file transfer protocol) 요청들, SMTP(simple mail transfer protocol) 요청들 및 텔넷 요청들 중 적어도 하나를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    - 상기 컴퓨터 시스템에 의해, 상기 고객과 상기 컴퓨터 시스템 사이의 접속 상태를 결정하는 단계;
    - 상기 제 1 애플리케이션 상태 및 제 2 애플리케이션 상태를 상기 접속 상태와 관련시키는 단계를 더 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 컴퓨터 시스템은 시간 단위당 고객 요청들의 문턱값 량을 유지하고, 상기 방법은 상기 고객 요청들의 양이 상기 문턱값 량 미만인 경우에만 상기 고객 요청들을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하는 단계를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    - 악의적 고객 및 비악의적 고객들을 구분하는 단계;
    - 상기 악의적 고객 및 상기 비악의적 고객들로부터의 고객 요청들을 순위화하여 비악의적 고객 요청들이 상기 악의적 고객 요청들에 선행하는 큐를 획득하는 단계;
    - 상기 비악의적 고객 요청들을 먼저 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하는 단계를 더 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  10. 제 9 항에 있어서, 상기 컴퓨터 애플리케이션 프로그램에 모든 비악의적 고객 요청들을 수행하라고 명령한 후에 상기 큐로부터 상기 악의적 고객 요청들을 분석하는 단계를 더 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  11. 제 9 항 또는 제 10 항에 있어서, 상기 컴퓨터 시스템은 고객들로부터의 접촉 이력을 저장하고, 상기 접촉 이력으로부터 인지되는 고객들을 상기 큐에서 상기 접촉 이력으로부터 인지되지 않는 고객들보다 더 높게 순위화하는 단계를 더 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서, 고객들로부터 수신된 고객 요청들의 수, 고객들의 상기 컴퓨터 시스템과의 접촉 이력, 요청들의 콘텐츠의 유형, 상기 고객들로부터 수신되는 요청들의 콘텐츠 중 적어도 하나에 기반하여 상기 악의적 고객 및 비악의적 고객을 구분하는 단계를 더 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서, 상기 고객은 고객 디바이스에서 실행되고 상기 컴퓨터 시스템은 적어도 하나의 통신 네트워크에 접속되어 상기 고객 디바이스와 전자 통신하고, 상기 방법은 상기 통신 네트워크를 통해 상기 고객 요청을 수신하는 단계를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  14. 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 컴퓨터 시스템 또는 상기 다른 컴퓨터 시스템은 데이터베이스를 포함하고 상기 컴퓨터 애플리케이션 프로그램은 데이터베이스 애플리케이션 프로그램인, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  15. 제 14 항에 있어서,
    - 상기 데이터베이스 애플리케이션 프로그램으로부터 상기 허용 가능 데이터베이스 요청들의 제 1 세트를 수신하는 단계;
    - 상기 고객 요청이 상기 허용 가능 데이터베이스 요청들 중 하나와 매칭하는 경우에만 상기 데이터베이스의 상기 데이터베이스 애플리케이션 프로그램의 데이터베이스 동작을 명령하는 단계를 포함하는, 컴퓨터 애플리케이션 프로그램을 제어하는 컴퓨터 실행 방법.
  16. 전자 시스템에 설치되고 상기 전자 시스템에 의해 수행될 때, 제 1 항 내지 제 15 항 중 어느 한 항에 따른 방법을 수행하도록 적응되는 소프트웨어 코드부들을 포함하는, 컴퓨터 프로그램.
  17. 제 16 항의 컴퓨터 프로그램을 포함하는, 캐리어(carrier).
  18. 자체 또는 다른 컴퓨터 시스템상의 컴퓨터 애플리케이션 프로그램을 제어하고, 적어도 하나의 고객과 접속하도록 구성되는 컴퓨터 시스템에 있어서:
    - 적어도 제 1 애플리케이션 상태를 포함하는 상기 컴퓨터 애플리케이션 프로그램으로 지향되는 고객 요청을 수신하도록 구성되는 고객 요청 수신기;
    - 상기 고객과 관련되는 상기 컴퓨터 애플리케이션 프로그램의 상기 제 1 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들을 포함하는 제 1 요청 세트의 허용 가능 요청과 상기 고객 요청이 매칭하는지를 분석하도록 구성되는 분석 모듈;
    - 상기 고객 요청이 상기 제 1 요청 세트의 상기 허용 가능 요청들 중 하나와 매칭하는 경우에만 상기 고객 요청들을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하도록 구성되는 명령 모듈을 포함하는, 컴퓨터 시스템.
  19. 제 18 항에 있어서,
    - 상기 고객 요청 수신기는 상기 고객으로부터 부가 고객 요청을 수신하도록 구성되고;
    - 상기 분석기 모듈은 상기 부가 고객 요청이 상기 컴퓨터 애플리케이션 프로그램의 제 2 애플리케이션 상태에 대응하는 하나 이상의 허용 가능 요청들을 포함하는 제 2 요청 세트의 허용 가능 요청과 매칭하는지를 분석하도록 구성되고, 상기 제 2 애플리케이션 상태는 상기 제 1 애플리케이션 상태와 상이하고;
    - 상기 명령 모듈은 상기 부가 고객 요청이 상기 제 2 요청 세트의 상기 허용 가능 요청들 중 하나와 매칭하는 경우에만 상기 부가 고객 요청을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하도록 더 구성되는, 컴퓨터 시스템.
  20. 제 19 항에 있어서, 상기 컴퓨터 시스템은:
    - 상기 제 1 애플리케이션 상태 및 상기 제 2 애플리케이션 상태를 검출하도록 구성되는 애플리케이션 상태 검출기;
    - 상기 제 1 애플리케이션 상태 또는 상기 제 2 애플리케이션 상태를 검출하는 것에 응답하여, 각각 상기 제 1 요청 세트 및 상기 제 2 요청 세트를 검색하도록 구성되는 요청 세트 검색기를 더 포함하는, 컴퓨터 시스템.
  21. 제 19 항에 있어서, 상기 컴퓨터 시스템은 상기 제 1 요청 세트 및 상기 제 2 요청 세트를 수신하도록 구성되는 요청 세트 수신기를 더 포함하는, 컴퓨터 시스템.
  22. 제 18 항 내지 제 21 항 중 어느 한 항에 있어서, 상기 고객 요청 수신기는 HTTP 요청들, FTP 요청들, SMTP 요청들 및 텔넷 요청들과 같은 애플리케이션 계층 요청들을 수신하도록 구성되는, 컴퓨터 시스템.
  23. 제 18 항 내지 제 22 항 중 어느 한 항에 있어서, 상기 컴퓨터 시스템은 상기 고객 및 상기 컴퓨터 시스템 사이의 접속 상태를 결정하도록 구성되는 접속 상태 모니터를 더 포함하고, 상기 컴퓨터 시스템은 상기 컴퓨터 애플리케이션 프로그램의 상기 제 1 애플리케이션 상태 및 제 2 애플리케이션 상태가 상기 접속 상태와 관련되도록 구성되는, 컴퓨터 시스템.
  24. 제 18 항 내지 제 23 항 중 어느 한 항에 있어서, 상기 컴퓨터 시스템은 시간 단위당 고객 요청들의 문턱값 량을 유지하도록 구성되고, 상기 명령 모듈은 상기 고객 요청들의 양이 상기 문턱값 량 미만인 경우에만 상기 고객 요청들을 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하도록 구성되는, 컴퓨터 시스템.
  25. 제 18 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 컴퓨터 시스템은:
    - 악의적 고객 및 비악의적 고객들을 구분하도록 구성되는 구분 모듈;
    - 상기 악의적 고객 및 상기 비악의적 고객들로부터의 고객 요청들을 순위화하여 비악의적 고객 요청들이 상기 악의적 고객 요청들에 선행하는 큐를 획득하도록 구성되는 순위 모듈을 더 포함하고,
    - 상기 명령 모듈은 상기 비악의적 고객 요청들을 먼저 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령하도록 구성되는, 컴퓨터 시스템.
  26. 제 25 항에 있어서, 상기 명령 모듈이 모든 비악의적 고객 요청들을 먼저 수행하라고 상기 컴퓨터 애플리케이션 프로그램에 명령한 후에 상기 큐로부터 상기 악의적 고객 요청들을 분석하도록 구성되는 제 2 분석기 모듈을 더 포함하는, 컴퓨터 시스템.
  27. 제 25 항 또는 제 26 항에 있어서, 고객들로부터의 접촉 이력을 저장하는 저장 모듈 및 상기 접촉 이력으로부터 인지되는 고객들을 상기 큐에서 상기 접촉 이력으로부터 인지되지 않는 고객들보다 더 높게 순위화하도록 구성되는 순위 모듈을 더 포함하는, 컴퓨터 시스템.
  28. 제 25 항 내지 제 27 항 중 어느 한 항에 있어서, 상기 구분 모듈은, 고객들로부터 수신된 고객 요청들의 수, 고객들의 상기 컴퓨터 시스템과의 접촉 이력, 요청들의 콘텐츠의 유형, 상기 고객들로부터 수신되는 요청들의 콘텐츠 중 적어도 하나에 기반하여 상기 악의적 고객 및 비악의적 고객을 구분하도록 구성되는, 컴퓨터 시스템.
  29. 제 18 항 내지 제 28 항 중 어느 한 항에 있어서, 상기 컴퓨터 시스템은 통신 네트워크를 통해 상기 고객 요청들을 수신하도록 구성되는, 컴퓨터 시스템.
  30. 제 18 항 내지 제 29 항 중 어느 한 항에 있어서, 상기 컴퓨터 애플리케이션 프로그램은 바람직하게 상기 다른 컴퓨터 시스템 상에 설치된 데이터베이스 애플리케이션 프로그램인, 컴퓨터 시스템.
  31. 제 30 항에 있어서, 상기 컴퓨터 시스템은:
    - 상기 다른 컴퓨터 시스템의 상기 데이터베이스 애플리케이션 프로그램으로부터 상기 허용 가능한 데이터베이스 요청들의 제 1 세트를 수신하도록 구성되는 수신기를 포함하고;
    - 상기 명령 모듈은 상기 고객 요청이 상기 허용 가능한 데이터베이스 요청들 중 하나와 매칭하는 경우에만 데이터베이스 동작을 수행하라고 상기 데이터베이스 애플리케이션 프로그램에 명령하도록 구성되는, 컴퓨터 시스템.
KR1020107018027A 2008-01-17 2008-01-17 컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템 KR101465462B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NL2008/050030 WO2009091241A1 (en) 2008-01-17 2008-01-17 Method and system for controlling a computer application program

Publications (2)

Publication Number Publication Date
KR20100117604A true KR20100117604A (ko) 2010-11-03
KR101465462B1 KR101465462B1 (ko) 2014-11-26

Family

ID=39810298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018027A KR101465462B1 (ko) 2008-01-17 2008-01-17 컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템

Country Status (11)

Country Link
EP (1) EP2103073B1 (ko)
JP (1) JP5160652B2 (ko)
KR (1) KR101465462B1 (ko)
CN (1) CN101919224B (ko)
AT (1) ATE473584T1 (ko)
AU (1) AU2008348253B2 (ko)
CA (1) CA2711369A1 (ko)
DE (1) DE602008001714D1 (ko)
ES (1) ES2346825T3 (ko)
PL (1) PL2103073T3 (ko)
WO (1) WO2009091241A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190028446A (ko) * 2016-06-21 2019-03-18 소레크 뉴클리어 리서치 센터 다수 솔리드 대상물을 식별하기 위한 xrf 분석기, 분류 시스템 및 그 분류 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061738A (en) * 1997-06-27 2000-05-09 D&I Systems, Inc. Method and system for accessing information on a network using message aliasing functions having shadow callback functions
US7313822B2 (en) * 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
JP4487490B2 (ja) * 2003-03-10 2010-06-23 ソニー株式会社 情報処理装置、およびアクセス制御処理方法、情報処理方法、並びにコンピュータ・プログラム
MXPA05010073A (es) * 2003-03-21 2006-05-17 Axesstel Inc Red inalambrica.
JP3974554B2 (ja) * 2003-05-19 2007-09-12 日本電信電話株式会社 ゲートウェイ
US20050249214A1 (en) * 2004-05-07 2005-11-10 Tao Peng System and process for managing network traffic
US8074277B2 (en) * 2004-06-07 2011-12-06 Check Point Software Technologies, Inc. System and methodology for intrusion detection and prevention
JP4602158B2 (ja) * 2005-05-25 2010-12-22 三菱電機株式会社 サーバ装置保護システム
KR100695204B1 (ko) 2005-06-17 2007-03-14 에스케이 텔레콤주식회사 이동통신 단말기를 이용하여 애플리케이션 상태를 저장하는 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190028446A (ko) * 2016-06-21 2019-03-18 소레크 뉴클리어 리서치 센터 다수 솔리드 대상물을 식별하기 위한 xrf 분석기, 분류 시스템 및 그 분류 방법

Also Published As

Publication number Publication date
ATE473584T1 (de) 2010-07-15
ES2346825T3 (es) 2010-10-20
JP2011512572A (ja) 2011-04-21
PL2103073T3 (pl) 2010-12-31
KR101465462B1 (ko) 2014-11-26
CN101919224A (zh) 2010-12-15
DE602008001714D1 (de) 2010-08-19
AU2008348253B2 (en) 2014-01-23
JP5160652B2 (ja) 2013-03-13
CN101919224B (zh) 2013-11-20
CA2711369A1 (en) 2009-07-23
EP2103073B1 (en) 2010-07-07
AU2008348253A1 (en) 2009-07-23
EP2103073A1 (en) 2009-09-23
WO2009091241A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
Eliyan et al. DoS and DDoS attacks in Software Defined Networks: A survey of existing solutions and research challenges
EP1817685B1 (en) Intrusion detection in a data center environment
Ranjan et al. DDoS-shield: DDoS-resilient scheduling to counter application layer attacks
EP1558937B1 (en) Active network defense system and method
US7359962B2 (en) Network security system integration
EP2904539B1 (en) Server with mechanism for reducing internal resources associated with a selected client connection
US20050188221A1 (en) Methods, systems and computer program products for monitoring a server application
US8463921B2 (en) Method and system for controlling a computer application program
US8543807B2 (en) Method and apparatus for protecting application layer in computer network system
WO2014142792A1 (en) Using learned flow reputation as a heuristic to control deep packet inspection under load
Sudar et al. TFAD: TCP flooding attack detection in software-defined networking using proxy-based and machine learning-based mechanisms
WO2008155429A2 (en) Systems, methods, and media for firewall control via process interrogation
Murtuza et al. Mitigation and detection of DDoS attacks in software defined networks
KR100543664B1 (ko) 네트워크 보호 장치 및 이의 운영 방법
Gonçalves et al. A protection system against HTTP flood attacks using software defined networking
KR101465462B1 (ko) 컴퓨터 애플리케이션 프로그램을 제어하기 위한 방법 및 시스템
Carvalho et al. DataPlane‐ML: an integrated attack detection and mitigation solution for software defined networks
Murthy et al. Hypertext transfer protocol performance analysis in traditional and software defined networks during Slowloris attack.
Mauricio et al. A Network Function Virtualization Architecture for Automatic and Efficient Detection and Mitigation against Web Application Malware
KR101196325B1 (ko) 분산서비스거부 공격 탐지장치 및 방법
TWI764618B (zh) 網路資安威脅防護系統及相關的前攝性可疑網域示警系統
Shafiq et al. Detection and prevention of distributed denial of services attacks by collaborative effort of software agents, first prototype implementation
Jaiswal DOS attack Network Traffic Monitoring in Software Defined Networking using Mininet and RYU Controller
Alshayea et al. Reducing the Effect of Denial of Service in Web Service Environment
CN114978590A (zh) Api安全防护的方法、设备及可读存储介质

Legal Events

Date Code Title Description
A201 Request for 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: 20180420

Year of fee payment: 4