KR100398281B1 - 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법 - Google Patents

패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법 Download PDF

Info

Publication number
KR100398281B1
KR100398281B1 KR10-2001-0020524A KR20010020524A KR100398281B1 KR 100398281 B1 KR100398281 B1 KR 100398281B1 KR 20010020524 A KR20010020524 A KR 20010020524A KR 100398281 B1 KR100398281 B1 KR 100398281B1
Authority
KR
South Korea
Prior art keywords
policy
set table
policy set
packet
information
Prior art date
Application number
KR10-2001-0020524A
Other languages
English (en)
Other versions
KR20010068051A (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 KR10-2001-0020524A priority Critical patent/KR100398281B1/ko
Publication of KR20010068051A publication Critical patent/KR20010068051A/ko
Priority to US09/969,790 priority patent/US6976089B2/en
Application granted granted Critical
Publication of KR100398281B1 publication Critical patent/KR100398281B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management

Abstract

본 발명은 패킷 차단방식 방화벽 시스템에서 복수개의 정책들 중 각 정책 각각의 항목의 조건과 유입된 패킷이 가지고 있는 정보가 처음으로 일치하는 정책을 해당 패킷에 대응되는 정책으로 판별하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법에 관한 것으로서,
사용자에 의해 설정된 수의 정책에 따라 패킷의 정보와 비교 대상이 되는 정보를 가진 정책집합 테이블을 일정 비트씩 구획지어 설정된 구획마다 별도의 테이블을 구성하고, 구획마다 별도로 설정된 정책집합 테이블을 짝을 이루어 정책 집합들의 모든 가능한 교집합을 구성해나가는 정책집합 테이블 설정 단계와; 전송되는 패킷에서 정책을 구성하고 있는 정보와 비교 대상이 되는 정보를 설정 구획별로 추출하여 상기 정책집합 테이블 설정 단계에서 설정된 정책집합 테이블들의 단계별 정책집합 테이블을 기준으로 해당 인덱스값을 조회하여 전송되는 패킷에 대응하는 최종 대응 정책을 판별하는 정책 판별 단계를 포함한다.

Description

패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법{METHOD FOR HIGH SPEED POLICY DISTINCTION IN FIREWALL SYSTEM}
본 발명은 패킷 차단방식 방화벽 시스템에서의 정책 판별에서 소요되는 지연 시간을 줄여 네트워크의 성능을 향상시키는 고속 정책 판별 방법에 관한 것으로서, 구체적으로는 방화벽으로 유입되는 모든 TCP/IP 패킷들 각각에 대해 사용자가 정의해 놓은 정책들 중 어떤 정책을 적용해야 하는지의 분류 작업을 고속으로 수행할 수 있도록 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법에 관한 것이다.
더욱 상세하게는 고속 트래픽 분류 알고리즘을 이용한 방화벽을 사용하여 사용자가 설정한 정책의 수 및 동시 접속 사용자 수와 완전히 무관하게 고속의 성능을 유지할 수 있도록 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법에 관한 것이다.
일반적으로 방화벽(firewall)이란 보호하고자 하는 네트워크와 신뢰할 수 없는 네트워크 사이에 트래픽이 집중되는 곳에 위치하여 두 네트워크 간에 왕래하는 모든 트래픽들을 일일이 사용자가 설정한 정책과 대조하여 정책에 어긋나는 트래픽은 차단하고 정책에 합치하는 트래픽만을 선별하여 통과시키는 보안 솔루션으로서,네트워크 보완을 위한 핵심 기술이다.
현재 보다 지능화된 각종 해킹 기술들이 인터넷을 통해 누구든지 악용할 수 있도록 보편화되면서 해킹 피해가 기하 급수적으로 증가 추세에 있어 인터넷에 연결되어 있는 기업, 단체, 교육 기관 등에 설치되어 있는 네트워크들에의 병화벽 설치는 안전한 네트워킹을 위한 필수 요건으로 자리 잡아가고 있다.
그러나, 방화벽의 설치는 다른 부수적인 문제들을 야기하고 있는데, 첫번째로는 방화벽의 설치로 인한 트래픽의 속도 저하에 따른 네트워크 성능의 저하와, 두번째로는 방화벽이 지원하지 못하는 통신 프로그램 등 관리자가 지정해주는 기능을 수행할 뿐 변화하는 네트워크 환경에 능동적으로 대처할 수 없는 수동적인 시스템이라는 점이 바로 그것이다. 이러한, 두가지 문제점 중에서 가장 방화벽 사용자들을 곤란하게 하는 부분이 바로 네트워크의 성능 저하라고 할 수 있는데, 불과 몇 개월 단위로 배수로 증가하는 인터넷 트래픽의 성장 속도에 방화벽의 성능이 쫓아 가지 못하고 있는 형편이다.
기존의 방화벽에 사용되고 있는 방식은 대리 접속 방식과 패킷 차단 방식으로 크게 두가지의 방식이 사용되고 있는데, 대리 접속 방식은 역시 트래픽이 집중되는 지점에서 사용자들의 접속을 직접 차단하고, 수신지로의 접속을 대행하는 방식으로 사용자의 정보와 수신지의 정보를 토대로 정책을 적용한다. 이러한 방식은 적용할 정책 검사 속도 뿐 아니라 일일이 모든 접속을 차단하고, 직접 스스로가 접속을 대리하므로 성능이 낮고, 접속시 마다 시스템 자원을 많이 점유하여 동시에 가능한 접속 수가 매우 낮다.
반면에, 패킷 차단 방식은 트래픽 집중 지점에서 두 네트워크 간에 왕래하는 모든 패킷들을 일일이 정책들과 비교하여 차단 및 통과 작업을 수행하는데, 이 경우에는 방화벽 시스템에 별도의 프로그램을 띄울 필요가 없고, 접속을 차단하지 않기 때문에 대리 접속 방식 보다는 성능상 유리한 점이 많으므로 요즘은 대부분의 트래픽을 패킷 차단 방식으로 처리하고, 몇몇 특수 통신 방식에 대해서만 대리 접속 방식을 적용하고 있다.
그러나, 이러한 패킷 차단 방식의 방화벽 시스템도 성능상 대리 접속 방식에 비하여 유리하다고 할 뿐이지 급증하는 인터넷 트래픽의 완벽한 처리를 가능하게 하지는 못하고 있는 실정이다. 이는 유입되는 모든 패킷을 일일이 설정해 놓은 정책과 비교하는 과정에서 지연되는 시간에 기인한 것으로서, 패킷 차단 방식의 방화벽 시스템의 성능 저하는 80% 이상이 정책 판별에서 소요되는 지연 시간에 기인한다고 볼 수 있다.
따라서, 패킷에 대한 정책 판별에 소요되는 지연 시간을 줄이는 것이 네트워크의 성능을 향상시키는 최대 요인으로 부각되고 있으며, 패킷에 대한 정책 판별 방식에 대한 기존 기술들은 다음과 같이 분류할 수 있다.
첫째, 가장 단순한 형태로서 도 1과 같이 각 패킷의 접속 정보를 추출하여 일일이 모든 정책들을 처음부터 순차적으로 합치되는 것이 나타날 때까지 검사하는 방법으로서, 이러한 방법은 정책의 수가 100 개만 있어도 정책의 수가 한 개일 때와 비교하여 50배 이상의 성능 저하가 발생하게 된다. 즉, 이는 정책의 수 또는 동시 접속 수가 증가하면 전체 패킷 분류 작업이 늦어지게 되어 네트워크의 성능을저하시키게 된다.
둘째, 도 2와 같이 모든 패킷 정보의 변화 가능성을 테이블으로 구성하고, 유입된 패킷으로부터 바로 대응되는 테이블을 찾아가는 방식이다. 이러한 방식은 각 패킷의 정보들을 추출하여 한번의 계산으로 바로 대응되는 정책을 찾을 수 있으므로 정책의 수 및 동시 접속 수에 무관한 정책 판별이 가능하지만 패킷에서 정책 판별에 필요로 하는 정보의 양이 모두 112 비트이므로 모든 가능한 경우의 수는값으로 5,192,296,858,534,827,628,530,496,329,220,100이다. 따라서, 현실적으로 시스템의 저장 장소에 이 정도 크기의 테이블을 구성한다는 것은 불가능한 일이다.
셋째, 보통 패킷들은 같은 종류의 것들이 몰려다니기 쉬우므로 새로운 첫번째 패킷에 대해서만 첫번째와 같은 방식의 검사를 실시하여 지정된 저장 공간에 해당 패킷 정보를 판별된 정책 번호와 같이 저장한다. 동일한 두번째 패킷부터는 먼저 지정된 저장 공간에 동일한 패킷이 존재하는지 검사하여 존재하면 같이 저장되어 있는 정책번호의 정책으로 판별한다. 이 방법은 패킷들이 얼마나 많은 종류의 접속들이 동시에 접속되는가에 성능이 좌우된다. 많은 접속이 동시에 진행되면 같은 종류의 패킷들이 몰려다닐 확률은 급격히 떨어지게 되기 때문이다.
넷째, 압축된 다중 비트 트리어 알고리즘(Compressed Multibit Trie Algorithm)과 같이 IP 주소를 한 비트씩 검색해 들어가는 방법을 이용할 수도 있는데, 이는 다양한 정책의 요구를 만족시키지 못하는 단점이 있어 방화벽 시스템에서의 상품화에는 많은 문제점들을 내포하고 있다.
이러한 문제점들로 인해 지금까지 가장 속도가 빠르게 지원할 수 있는 부분은 역시 세번째 방식의 유사한 변형 형태들인데 이 방식으로는 동시 접속 수에 성능이 영향을 받게 된다. 단순한 예로, 초당 5만개의 패킷을 처리할 수 있는 시스템이 있고, 2천개의 접속을 요구하고 있다고 가정하면, 1초 동안 2천개의 신규 접속을 처리하고 남은 시간 동안에 초당 5만개의 속도로 패킷을 처리할 수 있을 것이다. 하나의 정책을 검사하는데 소요되는 시간이 1 마이크로 초이고, 정책의 수가 200개라고 한다면, 하나의 접속 당 평균 100개의 정책을 검사해야 하는데, 이에 소요되는 시간은 하나의 접속 당 100 마이크로 초가 소요될 것이다. 모두 2천 건의 접속에 필요한 시간은 200밀리 초인데, 그렇다면 1초당 처리할 수 있는 패킷 수는 나머지 800밀리 초 동안의 시간동안 처리해야 하므로 4만 2천 패킷으로 떨어져서 약 20%의 성능 저하가 발생한다.
따라서, 이러한 문제로 인해 고성능의 방화벽 시스템을 요구하는 사용자 환경에서는 정책 검사에 소요되는 시간을 최소화해야 하는 요구가 발생하게 된다.
따라서, 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 고속 트래픽 분류 알고리즘을 이용한 방화벽을 사용하여 사용자가 설정한 정책의 수 및 동시 접속 사용자 수와 전혀 무관하게 고속의 네트워크 성능을 유지할 수 있도록 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법을 제공함을 목적으로 한다.
본 발명의 다른 목적은 사용자가 설정한 정책의 수 및 동시 접속 사용자 수에 관계없이 유입되는 패킷이 가지고 있는 정보와 일치하는 정책을 고속으로 판별하여 정책 판별에 소요되는 시간을 최소화함으로써 방화벽으로 인한 네트워크의 성능 저하를 방지하도록 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법을 제공함을 목적으로 한다.
도 1 내지 도 2는 종래 패킷 차단방식 방화벽 시스템에서의 정책 판별 방법을 설명하기 위한 개괄적인 도식도.
도 3 내지 도 4는 본 발명에 따른 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법의 개념을 설명하기 위한 TCP/IP 패킷 및 정책의 구성도.
도 5 내지 도 10은 본 발명에 따른 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법의 개념을 설명하기 위한 개괄적인 도식도.
도 11 내지 도 12는 기존 테이블을 폐기하고 새로운 테이블을 생성할 경우를 나타낸 도식도.
도 13은 본 발명의 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법을 설명하기 위한 흐름도.
도 14 내지 도 20은 본 발명의 바람직한 실시예에 따라 사용자에 의해 설정된 정책이 A, B, C, D인 경우에 적용되는 정책 집합 테이블의 생성 과정을 나타낸 모식도.
도 21 내지 도 24는 본 발명의 바람직한 실시예에 따라 정책 집합 테이블들로부터 패킷에 대응하는 최종적인 정책을 찾아내는 정책 판별 과정을 도시한 모식도.
이러한 목적을 달성하기 위한 본 발명의 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법은, 사용자에 의해 설정된 수의 정책에 따라 패킷의 정보와 비교 대상이 되는 정보를 가진 정책집합 테이블을 일정 비트씩 구획지어 설정된 구획마다 별도의 테이블을 구성하고, 구획마다 별도로 설정된 정책집합 테이블을 짝을 이루어 정책 집합들의 모든 가능한 교집합을 구성해나가는 정책집합 테이블 설정 단계와; 전송되는 패킷에서 정책을 구성하고 있는 정보와 비교 대상이 되는 정보를 설정 구획별로 추출하여 상기 정책집합 테이블 설정 단계에서 설정된 정책집합 테이블들의 단계별 정책집합 테이블을 기준으로 해당 인덱스값을 조회하여 전송되는 패킷에 대응하는 최종 대응 정책을 판별하는 정책 판별 단계를 구비하는 것을 특징으로 한다.
또한, 본 발명에서의 정책집합 테이블 설정 단계는 설정된 수의 정책에 따라 1차 정책집합 테이블을 7개의 구획으로 나누어 생성하는 단계와; 1차 정책집합 테이블에서 7개의 구획을 2개씩 짝을 이루어 짝을 이룬 구획에 대한 정책집합의 교집합으로 2차 정책집합 테이블을 생성하는 단계와; 2차 정책집합 테이블으로 생성한 4개의 테이블을 짝을 이루어 짝을 이룬 테이블에 대한 정책집합의 교집합으로 3차 정책집합 테이블을 생성하는 단계; 및 3차 정책집합 테이블으로 생성한 2개 테이블의 교집합 중에서 최우선 순위 정책집합 구성원으로 4차 테이블을 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명에서의 정책 판별 단계는 정책을 구성하는 정보에 대응되는 패킷 정보를 추출하여 7개의 구획으로 나누어진 1차 정책집합 테이블에서 각각 패킷의 16 비트 정보에 해당되는 인덱스값을 조회하는 단계와; 7개의 구획으로 나누어져 1차 정책집합 테이블에서 조회한 16 비트 정보에 해당되는 인덱스값을 2 구획씩 짝을 지어 2차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하는 단계와; 4개의 구획으로 나누어진 2차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회하는 단계와; 2차 정책집합 테이블에서 조회한 인덱스값을 2 구획씩 짝을 지어 3차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하는 단계와; 2개의 구획으로 나누어진 3차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회하는 단계와; 3차 정책집합 테이블에서 조회한 각각의 인덱스값에 해당하는 변수값을 산출하는 단계; 및 4차 정책집합 테이블에서 변수값에 해당하는 최종 정책을 판별하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 관하여 상세하게 설명하면 다음과 같다.
도 3 내지 도 4는 본 발명에 따른 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법의 개념을 설명하기 위한 TCP/IP 패킷 및 정책의 구성 요소를 나타내는 구성도이다.
일반적으로 데이터의 전송시에는 수신측 정보를 고속으로 분석하여 송신 경로를 선택한 다음 TCP/IP 패킷(packet)의 데이터에 붙여진 수신측 정보(헤더)를 토대로 상대 단말기에 패킷을 전달하는 방식을 취하게 되는데, 본 발명에서의 방화벽은 이러한 정보를 읽어서 이 정보를 포함하고 있는 정책이 있는지를 검색하여 일치하는 정책이 있으면 해당 정책이 지시하는 대로의 처리를 하는데, 해당 정책이 거절 및 거부를 하게 되면 해당 패킷은 차단되고, 처리 지시가 허용이면 해당 패킷을 통과시키게 된다. 일치하는 정책이 없다면 기본 정책의 지시하는 처리를 따른다.
본 발명에서는 정책의 조건과 전송된 패킷이 가지고 있는 112 비트 정보가 처음으로 일치하는 정책이 해당 패킷에 대응되는 정책으로 판별된다.
먼저, 도 3을 참조하여 통상적인 TCP/IP 패킷(packet)을 살펴보면, 패킷은 어떤 트래픽인지를 인지할 수 있는 정보를 일정한 형식으로 담고 있다. 여기서, 패킷은 데이터와 제어정보 등이 하나의 묶음이 되어 교환 또는 전송되는 2진 신호의 집합을 말하며, 데이터와 제어정보, 오류 제어정보 등이 특정 형태로 배열되어 있다. 프로세서간의 통신에서 상호 교환하는 메시지를 한꺼번에 보내게 되면 이를 수신하여 중계하는 프로세서가 다른 메시지를 중계할 수가 없기 때문에 메시지를 일정한 길이의 짧은 묶음으로 분할해서 전송하는 방식을 취하게 되며, 이때 보내어지는 정보의 묶음을 패킷이라 한다.
도 3과 같이 각각의 TCP/IP 패킷은 메시지 부분외에 IP 헤더 20Byte와 TCP 헤더 20Byte를 포함하고 있다. 여기서, 옵션이 없는 IP 헤더 20Byte는 4-bit 버전, 4-bit 헤더 길이(Header Length), 8-bit 서비스 형태(Type of Service), 16-bit 총 길이(Total Length), 16-bit 고유번호(Identification), 8-bit 프로토콜(Protocol), 32-bit 발신지 IP 주소(source IP address), 32-bit 수신지 IP 주소(destination IP address) 등을 포함하고, 옵션이 없는 TCP 헤더 20Byte는 발신지 포트(source port), 수신지 포트(destination port), 시퀀스 넘버(sequence number), 응답번호(Acknowledgment number), 패킷 길이(header length), 플래그(Flag) 등을 포함한다.
IP 헤더(Header)에서 4-bit 버전은 IP의 버전 정보를 표시하는데 현재 대부분 IP Version 4를 사용하고, 4-bit 헤더 길이(Header Length)는 IP 헤더의 길이를 워드(4Byte) 단위로 기록하며, 예를들어 20Byte이면 5를 기록한다. 서비스 형태(Type of Service)는 이 패킷을 수신한 라우터가 어떻게 처리해야 하는지를 지시하고, 총 길이(Total Length)는 이 패킷의 길이를 표시하고, 아이덴티피케이션(Identification;ID)은 이 패킷에 대한 고유 번호를 나타내며, 분열(Fragmentation) 발생시, 동일 패킷에 대한 인식 지표로 사용한다. 플래그(Flag)는 이 패킷이 분열(Fragmentation) 되었는지를 표시하고, 프래그먼트 오프셋(Fragment Offset)은 분열(Fragmentation)된 패킷에 대해 조립 시 사용할 조립 위치를 표시하며, TTL(Time To Live)은 이 패킷의 인터넷 상의 수명을 표시하고, 8-bit 프로토콜(Protocol)은 IP 헤더 다음에 이어지는 형식에 대해 표시하여 6이면 TCP를 나타내고, 17이면 UDP를 나타낸다. 또한, 헤더 체크섬(Header Checksum)은 어떤 네트워크 장비의 IP 헤더 수신 시 확인(Validation)을 위해 헤더에 대한 CRC 체크섬(Checksum) 값을 기록하고, 발신지 IP 주소(Source IP Address)는 이 패킷의 발신지의 IP 주소를 기록하며, 수신지 IP 주소(Destination IP Address)는 이 패킷의 수신지 IP 주소를 기록한다.
TCP 헤더(Header)에서 발신지 포트(Source Port)는 이 메시지를 발생시킨 소켓(Socket) 주소를 표시하고, 수신지 포트(Destination Port)는 이 메시지의 수신지 소켓(Socket) 주소를 표시하며, 시퀀스 넘버(Sequence Number)는 흐름 조절을 목적으로 이 메시지에 대한 고유 번호를 바이트 스트림(Byte Stream)으로 기록하여 패킷의 순서를 나타내고, 응답번호(Acknowledge Number)는 흐름 조절을 목적으로 상대편으로부터 다음에 받을 메시지의 고유 번호를 바이트 스트림(Byte Stream)으로 기록하고, 메시지가 몇개의 패킷으로 분할되어 있는지를 나타내며, 헤더 길이(Header Length)는 TCP 헤더의 길이를 워드(4Byte) 단위로 기록하고, 리저브(Reserved)는 현재는 사용하지 않는다. 플래그(Flag)는 이 메시지의 성격을 분류하며, URG, ACK, PSH, RST, SYN, FIN 등이 있다. 윈도우 사이즈(Window Size)는 흐름 조절을 목적으로 이 메시지를 보내는 통신 주체의 현재 한번에 받을 수 있는 바이트 수를 표시하며, TCP 체크섬(Checksum)은 확인(Validation)을 목적으로 IP 헤더와 TCP 헤더에 대한 CRC 체크섬(Checksum)을 기록하고, 긴급 포인트(Urgent Point)는 이 메시지가 긴급(Urgent)한 성격이라고 표기된 경우 긴급히 처리해야 할 데이터의 위치를 오프셋(Offset) 값으로 표시한다. 이때, TCP 헤더에서체크섬(Checksum)은 데이터를 입력하거나 전송할 때 제대로 되었는지 데이터의 정확성을 검사하기 위해 입력 데이터나 전송 데이터의 맨 마지막에 앞서 보낸 모든 데이터의 합계를 따로 보내며, 데이터를 받아들인 편에서는 하나씩 받아들여 합산한 다음 이를 최종적으로 들어온 검사 합계와 비교하여 착오가 있었는지를 점검한다.
이처럼, 네트워크를 통한 자료 전송이 이루어질 때 자료는 패킷(Packet)이라는 단위로 잘라져서 전송되며 이때, IP는 데이터 패킷을 한 장소에서 다른 장소로 옮기는 역할을 수행하고, TCP는 데이터의 흐름을 관리하고 데이터가 정확한지 확인하는 역할을 수행한다.
도 4를 참조하여 정책의 구성 요소를 구체적으로 살펴보면, 본 발명에서는 전송되는 패킷에 붙여진 헤더 정보를 읽어서 이 정보를 포함하고 있는 정책이 있는지를 검색하게 되는데, 정책(policy)은 발신지 IP 주소, 수신지 IP 주소, 발신지 포트, 수신지 포트, 프로토콜, 방향 및 TCP 플래그로 구성되어 전송되는 패킷의 헤더에 포함되어 있는 정보 즉, 도 3에서 굵은 실선으로 표시한 부분과 비교하여 유입되는 패킷이 가지고 있는 정보와 일치하는 정책을 판별하게 된다.
이때, 정책은 네트워크 자원들이 클라이언트들 간에 어떻게 할당되어야 하는지를 정의한 일련의 공식 문장들이며, 클라이언트란 개인 사용자나, 부서, 호스트 컴퓨터, 또는 애플리케이션 등이 될 수 있다.
따라서, 도 4와 같이 구성되는 복수개의 정책들 중 각 정책 각각의 항목의 조건과 유입된 패킷이 가지고 있는 112 비트의 정보가 처음으로 일치하는 정책이해당 패킷에 대응되는 정책으로 판별되게 되며, 정책은 네트워크 관리자에 의해 만들어지고, 정책 저장소에 보관되며, 네트워크 운영 중에 그 정책들은 의사 결정을 내리기 위해 네트워크 관리 소프트웨어에 의해 검색되고 사용된다. 도 4에서의 S, D, P, Q 등은 상수로서 사용자가 설정한 해당 정책의 각각의 해당 항목의 설정값 및 허용범위를 설정한 것이다.
도 5 내지 도 10은 본 발명에 따른 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법의 개념을 설명하기 위한 개괄적인 도식도이다.
우선, 도 5와 같이 전체 112 비트의 패킷의 정보를 16 비트씩 구획지어 7개의 구획마다 별도의 테이블을 구성하는 방식을 사용한다. 그러면, 각 구획마다 필요한 모든 가능한 수의 개수는, 즉 65536개로 현실적인 저장 장소에 구성 가능하다. 이제 나누어진 각각의 테이블들로부터 최종적인 정책을 찾아내는 것 만이 문제로 남아있다.
그리고, 각 구획별 테이블에는 도 6과 같이 각 구획에서 발생하는 모든 경우의 수(65536개)에 대응되는 모든 대응되는 고유 정책의 번호(각 정책은 고유 정책 번호를 부여하여 다른 정책과 구분한다)들의 집합을 항목으로 정의한다. 이 패킷에 대응되는 정책은 이들 7개 구획에서 각각 대응되는 7개의 정책 번호 집합들 중 공통적으로 포함되어 있는 정책들 중 가장 순위가 빠른 것을 찾아내는 것이다. 여기서, 바로 7개의 정책 번호 집합들 중에서 공통된 정책을 찾아내고자 한다면 역시 검색 속도는 정책의 수에 의존하게 되므로 정책의 수에 무관해야 한다는 조건을 어기게 된다.
따라서, 7개의 구획에서 나오는 정책 집합들에 대한 모든 가능한 경우의 교집합의 수가 미리 정의되어 있어야 하는데, 이 수 역시 경우에 따라서는 시스템에 구성하기 불가능한 만큼의 경우의 수가 나오게 되므로 7개의 구획에 대한 한번의 모든 가능한 교집합의 산출은 무의미하다.
그러므로, 도 7과 같이 7개의 구획을 각기 쌍으로 지워 2개씩의 구획에 대한 모든 가능한 교집합을 구성해나간다면 현실적으로 시스템에서 다룰 수 있는 수 만큼의 경우의 수가 나온다.
도 7은 사용자에 의해 설정된 정책에 따라 생성되는 정책 집합 테이블의 생성 과정을 하나의 과정으로 표현한 것으로서, 임의의 패킷은 모두 7 + 4 + 2 + 1 = 14번의 검사로 최종 대응 정책을 찾을 수 있다. 즉, 도 8에서와 같이 각 구획에 대응되는 모든 가능한 정책들의 집합 테이블을 2차로 구성한다. 2차 테이블의 내용은 쌍으로 이루어진 각 구획에서 나오는 모든 가능한 정책들의 집합의 모든 가능한 교집합이다. 2차 테이블은 7개의 구획들로부터 파생되므로 4개의 테이블이 형성된다. 이들 4개의 테이블에서 교집합의 교집합을 의미하는 3차 테이블 2개를 도 9와 같이 생성시킨다. 그리고, 최종적으로 3차 테이블 2개의 교집합 중에서 첫번째 순위 정책 번호의 테이블을 4차 테이블으로 도 10과 같이 생성시킨다.
그 후, 이들 테이블의 생성은 정책들의 변경이 있을 때 마다 수행하는데 기존 테이블을 폐기하고 새로운 테이블을 생성할 때 패킷의 흐름을 차단하고 작업을 수행한다면 새로운 테이블들을 반영하기 까지 너무나 많은 패킷들을 잃어버릴 수있으므로 기존 테이블을 폐기하고 새로운 테이블을 생성할 경우를 도 11 내지 도 12를 참조하여 살펴보면 다음과 같다.
먼저, 각 정책이 담고 있는 패킷 정보의 조건들은 범위로 주어지므로 각 범위의 시작점과 끝점을 전체 0부터 65535까지의 값들을 표기한 선상에 표기하여, 도 11a와 같이 여러 정책들의 범위가 중첩된 정책 지도를 형성한다. 이때에는 정책들의 개수 만큼 단일 루프를 수행하면 되므로 많은 시간이 절약된다.
그리고, 0부터 65535까지의 해당 구획이 가질 수 있는 모든 값들을 토대로 지도를 읽어 내려가면서 도 11b와 같이 지도상의 정책 번호들을 대응되는 정책 집합으로 정의하여 수록해 나간다. 이때에는 생성되는 정책 집합들이 중복되는지 검사하여 서로 다른 정책 집합에 서로 다른 고유번호를 부여하여 1차 테이블에 수록한다.
또한, 새로운 테이블이 생성되고 있는 동안에 다른 패킷들의 처리를 방해하지 않기 위해 기존의 테이블들이 있는 메모리와는 전혀 다른 메모리상에 새로운 테이블들을 생성시키고, 생성이 완료되었으면 도 12와 같이 기존 테이블들이 있는 메모리를 신규 테이블으로 순간적으로 대체한다. 이와같은 메모리가 복사되는 순간에는 패킷의 차단이 이루어지나 이 시간은 매우 짧으므로(약, 1밀리 초 정도) 전체 트래픽 전달에 미치는 영향은 매우 미미하다.
도 13은 본 발명의 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법을 설명하기 위한 흐름도이다.
먼저, 사용자에 의해 설정된 수의 정책에 따라 패킷의 정보와 비교 대상이되는 정보를 가진 정책집합 테이블을 일정 비트씩 구획지어 설정된 구획마다 별도의 테이블을 구성하고, 구획마다 별도로 설정된 정책집합 테이블을 짝을 이루어 정책 집합들의 모든 가능한 교집합을 구성하여 정책집합 테이블을 생성한다.
좀 더 구체적으로 정책집합 테이블 생성시에는 설정된 수의 정책에 따라 1차 정책집합 테이블을 7개의 구획으로 나누어 생성하고, 1차 정책집합 테이블에서 7개의 구획을 2개씩 짝을 이루어 짝을 이룬 구획에 대한 정책집합의 교집합으로 2차 정책집합 테이블을 생성한다. 이때, 7개의 구획으로 나누어진 각 구획별 1차 정책집합 테이블에는 각 구획에서 발생하는 모든 경우의 수(변수값)에 대응되는 고유 정책의 번호(인덱스값)들의 집합을 항목으로 정의한다(S1~S2).
그 후, 2차 정책집합 테이블으로 생성한 4개의 테이블을 2개씩 짝을 이루어 짝을 이룬 테이블에 대한 정책집합의 교집합으로 3차 정책집합 테이블을 생성한 다음 3차 정책집합 테이블으로 생성한 2개 테이블의 교집합 중에서 최우선 순위 정책집합 구성원으로 4차 테이블을 생성한다(S3~S4).
즉, 1차 내지 4차 정책집합 테이블들은 단계별로 2개씩 짝으로 이루어진 각 구획에서 나오는 모든 가능한 정책들의 집합의 모든 가능한 교집합으로 구성한다.
이어서, 패킷이 전송되면 전송되는 패킷에서 정책을 구성하고 있는 정보와 비교 대상이 되는 정보를 설정 구획별로 추출하여 정책집합 테이블 설정시에 설정된 정책집합 테이블들의 단계별 정책집합 테이블을 기준으로 해당 인덱스값을 조회하여 전송되는 패킷에 대응하는 최종 대응 정책을 판별한다.
좀 더 구체적으로 정책 판별시에는 정책을 구성하는 정보에 대응되는 패킷정보를 추출하여 7개의 구획으로 나누어진 1차 정책집합 테이블에서 각각 패킷의 16 비트 정보에 해당되는 인덱스값을 조회하고, 7개의 구획으로 나누어져 1차 정책집합 테이블에서 조회한 16 비트 정보에 해당되는 인덱스값을 2 구획씩 짝을 지어 2차 정책집합 테이블 조회를 위한 각각의 변수값을 산출한다(S5~S7).
그 후, 4개의 구획으로 나누어진 2차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회한 다음 2차 정책집합 테이블에서 조회한 인덱스값을 2 구획씩 짝을 지어 3차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하고, 2개의 구획으로 나누어진 3차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회한다(S8~S10). 이어서, 3차 정책집합 테이블에서 조회한 각각의 인덱스값에 해당하는 변수값을 산출하고, 4차 정책집합 테이블에서 변수값에 해당하는 최종 정책을 판별한다(S11~S12). 이때, 정책을 구성하는 정보에 대응되는 패킷 정보는, 32 비트의 발신지 IP 주소를 16 비트씩으로 나누어 추출한 발신지 IP 주소와, 32 비트의수신지 IP 주소를 16 비트씩으로 나누어 추출한 수신지 IP 주소와, 16 비트의 발신지 포트와, 16 비트의 목적지 포트 및 인터페이스, 프로토콜, TCP 플래그를 포함한 16비트 정보를 의미한다.
또한, 변수값 산출 단계에서 상기 변수값(a)은 하기의 수학식(1)을 이용하여 산출한다.
식 중, a는 변수값, n은 2개씩 짝을 이룬 정책집합 테이블에서 두번째 테이블의 인덱스의 총 갯수,은 2개씩 짝을 이룬 정책집합 테이블에서 첫번째 테이블의 인덱스값,은 2개씩 짝을 이룬 정책집합 테이블에서 두번째 테이블의 인덱스값을 의미한다.
도 14 내지 도 20은 사용자에 의해 설정된 정책이 A, B, C, D인 경우에 적용되는 정책 집합 테이블의 생성 과정을 구체적으로 도시한 바람직한 실시예이다.
우선, 도 14와 같이 사용자에 의해 설정된 정책이 A, B, C, D인 경우에 전체 112 비트의 패킷 정보를 16 비트씩 구획지어 7개의 구획으로 나누고, 7개의 구획 마다 별도의 1차 정책집합 테이블을 생성한다. 이때, 각 구획마다 필요한 모든 가능한 수의 개수는으로 65536가 된다. 즉, 도 15와 같이 65536개의 변수값에 해당하는 고유 정책의 번호인 인덱스 값들의 집합을 항목으로 정의하고, 인덱스 값에 해당하는 정책집합 구성원을 사용자에 의해 설정된 정책으로 구성하여 7개의 1차 정책집합 테이블 #1 ~ #7을 형성한다.
그 후, 1차 정책집합 테이블에서 7개의 테이블을 2개씩 짝을 이루어 짝을 이룬 구획에 대한 정책집합의 교집합으로 2차 정책집합 테이블 #1 ~ #3을 생성한다. 도 16를 참조하여 구체적으로 살펴보면, 1차 정책집합 테이블 #1과 1차 정책집합 테이블 #2의 교집합을 구하되, 1차 정책집합 테이블 #1의 인덱스값에 해당하는 0과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 변수값(a) 즉, 2차정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 0이 되며, 변수값(a) 0에 해당하는 2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 0의 집합 구성원 A,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 집합 구성원 A,B,D의 공통 부분인 A,D가 된다. 또한, 집합 구성원 A,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값을 0으로 정의한다.
마찬가지로, 1차 정책집합 테이블 #1의 인덱스값에 해당하는 0과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 1이 되며, 변수값(a) 1에 해당하는 2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 0의 집합 구성원 A,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 집합 구성원 A,B,C,D의 공통 부분인 A,D가 되므로 집합 구성원 A,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 0이 된다. 1차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 2가 되며, 변수값(a) 2에 해당하는2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 1의 집합 구성원 A,C,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 집합 구성원 A,B,D의 공통 부분인 A,D가 되므로 집합 구성원 A,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 0이 된다. 또한, 1차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 3이 되며, 변수값(a) 3에 해당하는 2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 1의 집합 구성원 A,C,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 집합 구성원 A,B,C,D의 공통 부분인 A,C,D가 된다. 따라서, 집합 구성원 A,C,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값을 1로 정의한다. 1차 정책집합 테이블 #1의 인덱스값에 해당하는 2과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 4가 되며, 변수값(a) 4에 해당하는 2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 2의 집합 구성원 A,B,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 집합 구성원 A,B,D의 공통 부분인 A,B,D가 된다. 따라서, 집합 구성원 A,B,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값을 2로 정의한다. 마지막으로 1차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 5가 되며, 변수값(a) 5에 해당하는 2차 정책집합 테이블 #1의 집합 구성원은 1차 정책집합 테이블 #1의 인덱스값에 해당하는 2의 집합 구성원 A,B,D와 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 집합 구성원 A,B,C,D의 공통 부분인 A,B,D가 되므로 집합 구성원 A,B,D에 대응되는 2차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 2가 된다.
이에 의하여, 1차 정책집합 테이블 #1과 1차 정책집합 테이블 #2의 교집합인 2차 정책집합 테이블 #1을 생성한다.
앞에서와 마찬가지 방법으로 1차 정책집합 테이블 #3과 1차 정책집합 테이블 #4의 교집합인 2차 정책집합 테이블 #2를 도 17과 같이 생성한다. 또한, 1차 정책집합 테이블 #5과 1차 정책집합 테이블 #6의 교집합인 2차 정책집합 테이블 #3을 도 18과 같이 생성한다. 1차 정책집합 테이블 #7은 짝을 이루는 테이블이 없으므로 그대로 2차 정책집합 테이블 #4로 사용한다.
그 후, 2차 정책집합 테이블 #1 ~ #4로 생성한 4개의 테이블을 2개씩 짝을이루어 짝을 이룬 테이블에 대한 정책집합의 교집합으로 3차 정책집합 테이블 #1 ~ #2를 생성한다. 도 19를 참조하여 구체적으로 3차 정책집합 테이블 #1 ~ #2의 생성 과정을 살펴보면, 2차 정책집합 테이블 생성 과정과 마찬가지로 2차 정책집합 테이블 #1과 2차 정책집합 테이블 #4의 교집합을 구하되, 2차 정책집합 테이블 #1의 인덱스값에 해당하는 0과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 0의 변수값(a) 즉, 3차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 0이 되며, 변수값(a) 0에 해당하는 3차 정책집합 테이블 #1의 집합 구성원은 2차 정책집합 테이블 #1의 인덱스값에 해당하는 0의 집합 구성원 A,D와 2차 정책집합 테이블 #2의 인덱스값에 해당하는 0의 집합 구성원 D의 공통 부분인 D가 된다. 또한, 집합 구성원 D에 대응되는 3차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값을 0으로 정의한다.
2차 정책집합 테이블 #1의 인덱스값에 해당하는 0과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 1의 변수값(a) 즉, 3차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 1이 되며, 변수값(a) 1에 해당하는 3차 정책집합 테이블 #1의 집합 구성원은 2차 정책집합 테이블 #1의 인덱스값에 해당하는 0의 집합 구성원 A,D와 2차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 집합 구성원 A,C,D의 공통 부분인 A,D가 된다. 또한, 집합 구성원 A,D에 대응되는 3차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값을 1로 정의한다.
2차 정책집합 테이블 #1의 인덱스값에 해당하는 0과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 2의 변수값(a) 즉, 3차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면 2가 되며, 변수값(a) 2에 해당하는 3차 정책집합 테이블 #1의 집합 구성원은 2차 정책집합 테이블 #1의 인덱스값에 해당하는 0의 집합 구성원 A,D와 2차 정책집합 테이블 #2의 인덱스값에 해당하는 2의 집합 구성원 B,D의 공통 부분인 D가 되므로 집합 구성원 D에 대응되는 3차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 0이 된다.
2차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 0의 3차 정책집합 테이블 #1의 변수값(a)은 3이 되며, 그들의 집합 구성원의 공통 부분은 D가 되므로 집합 구성원 D에 대응되는 3차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 이미 설정되어 있는 0이 된다. 또, 2차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 1의 3차 정책집합 테이블 #1의 변수값(a)은 4가 되며, 그들의 집합 구성원의 공통 부분은 A,C,D가 되므로 집합 구성원 A,C,D에 대응되는 3차 정책집합 테이블 #1의 고유 정책 번호인 인덱스값은 2로 정의한다.또, 2차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 2의 3차 정책집합 테이블 #1의 변수값(a)은 5가 되며, 그들의 집합 구성원의 공통 부분은 D가 되므로 집합 구성원 D에 대응되는 3차 정책집합 테이블 #1의 인덱스값은 0이 된다. 2차 정책집합 테이블 #1의 인덱스값에 해당하는 2과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 0의 3차 정책집합 테이블 #1의 변수값(a)은 6이 되며, 그들의 집합 구성원의 공통 부분은 D가 되므로 집합 구성원 D에 대응되는 3차 정책집합 테이블 #1의 인덱스값은 0이 된다. 2차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 2차 정책집합 테이블 #4의 인덱스값에 해당하는 1의 3차 정책집합 테이블 #1의 변수값(a)은 7이 되며, 그들의 집합 구성원의 공통 부분은 A,D가 되므로 집합 구성원 A,D에 대응되는 3차 정책집합 테이블 #1의 인덱스값은 1이 된다. 2차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 2차 정책집합 테이블 #4의 인덱스값에 해당하는 2의 3차 정책집합 테이블 #1의 변수값(a)은 8이 되며, 그들의 집합 구성원의 공통 부분은 B,D가 되므로 집합 구성원 B,D에 대응되는 3차 정책집합 테이블 #1의 인덱스값은 3으로 설정한다.
따라서, 2차 정책집합 테이블 #1과 2차 정책집합 테이블 #4의 교집합인 3차 정책집합 테이블 #1을 생성한다.
그 후, 2차 정책집합 테이블 #2과 2차 정책집합 테이블 #3의 교집합인 3차 정책집합 테이블 #2를 생성한다.
여기서, 짝을 이루는 2차 정책집합 테이블들은 사용자에 의해 설정되는 방식으로 구현되며, 본 발명의 바람직한 실시예에서는 2차 정책집합 테이블 #1과 2차 정책집합 테이블 #4의 교집합인 3차 정책집합 테이블 #1을 생성하고, 2차 정책집합 테이블 #2과 2차 정책집합 테이블 #3의 교집합인 3차 정책집합 테이블 #2를 생성하였으나 2차 정책집합 테이블 #1과 2차 정책집합 테이블 #2의 교집합인 3차 정책집합 테이블 #1을 생성하고, 2차 정책집합 테이블 #3과 2차 정책집합 테이블 #4의 교집합인 3차 정책집합 테이블 #2을 생성하는 등의 다양한 변경은 얼마든지 가능하다.
이어서, 3차 정책집합 테이블으로 생성한 2개 테이블의 교집합 중에서 최우선 순위 정책집합 구성원으로 4차 테이블을 생성한다. 도 20을 참조하여 구체적으로 살펴보면, 3차 정책집합 테이블 #1과 3차 정책집합 테이블 #2의 교집합인 4차 정책집합 테이블을 생성하되, 3차 정책집합 테이블 #1의 인덱스 수 4개와 3차 정책집합 테이블 #2의 인덱스 수 6개의 곱으로 총 24개의 변수값을 가진 4차 정책집합 테이블을 형성한다.
4차 정책집합 테이블의 생성은 앞에서와 마찬가지 방식으로 생성되지만 2개 테이블의 교집합 중에서 최우선 순위 정책집합 구성원으로 4차 테이블을 생성한 다는 점이 1차 ~ 3차 정책집합 테이블의 생성과정과 상이하다. 예를들어, 3차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 3차 정책집합 테이블 #2의 인덱스값에 해당하는 2의 4차 정책집합 테이블 생성과정을 살펴보면, 3차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 3차 정책집합 테이블 #2의 인덱스값에 해당하는 2의 변수값(a)은 수학식(1)에 따라 14가 되고, 그들 집합 구성원의 공통 부분은 C,D가 된다. 그러나, 본 발명에서는 집합 구성원의 공통 부분 중에서 최우선 순위 정책집합 구성원인 C만으로 4차 정책집합 테이블을 생성한다.
3차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 3차 정책집합 테이블 #2의 인덱스값에 해당하는 4의 4차 정책집합 테이블 생성과정도 마찬가지 방식으로 생성하여 3차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 3차 정책집합 테이블 #2의 인덱스값에 해당하는 4의 변수값(a)은 16이 되고, 그들 집합 구성원의 공통 부분은 A,D가 되지만 A만으로 4차 정책집합 테이블을 생성한다. 이러한 방식으로 3차 정책집합 테이블 #1과 3차 정책집합 테이블 #2의 교집합인 4차 정책집합 테이블 생성을 완료한다.
따라서, 1차 내지 4차 정책집합 테이블들은 단계별로 2개씩 짝으로 이루어진 각 구획에서 나오는 모든 가능한 정책들의 집합의 모든 가능한 교집합으로 구성한다.
도 21 내지 도 24는 패킷이 전송되는 경우 도 14 내지 도 20에서와 같이 정책이 A, B, C, D인 경우에 생성되는 정책 집합 테이블들로부터 패킷에 대응하는 최종적인 정책을 찾아내는 정책 판별 과정을 도시한 바람직한 실시예이다.
우선, 패킷이 전송되면 전송되는 패킷에서 정책을 구성하고 있는 정보와 비교 대상이 되는 정보를 16 비트씩 설정 구획별로 추출하여 정책집합 테이블 설정시에 설정된 정책집합 테이블들의 단계별 정책집합 테이블을 기준으로 해당 인덱스값을 조회하여 전송되는 패킷에 대응하는 최종 대응 정책을 판별한다.
좀 더 구체적으로 정책 판별시에는 정책을 구성하는 정보에 대응되는 패킷 정보를 추출하여 7개의 구획으로 나누어진 1차 정책집합 테이블에서 각각 패킷의 16 비트 정보에 해당되는 인덱스값을 조회한다. 정책을 구성하는 정보에 대응되는 패킷 정보는, 32 비트의 발신지 IP 주소를 16 비트씩으로 나누어 추출한 발신지 IP 주소, 32 비트의수신지 IP 주소를 16 비트씩으로 나누어 추출한 수신지 IP 주소, 16 비트의 발신지 포트, 16 비트의 목적지 포트 및 인터페이스, 프로토콜, TCP 플래그를 포함한 16비트 정보이다. 본 발명의 바람직한 실시예에서는 도 21과 같은 패킷이 전송되므로 도 22를 참조하여 살펴보면, 발신지 IP 주소 16 비트를 추출하여 이에 해당하는 1.1의 값인= 257번 인덱스값을 1차 정책집합 테이블 #1에서 조회하여 1을 얻는다. 그 후, 발신지 IP 주소 16 비트를 추출하여 이에 해당하는 1.2의 값인= 258번 인덱스값을 1차 정책집합 테이블 #2에서 조회하여 1을 얻고, 수신지 IP 주소 16 비트를 추출하여 이에 해당하는 20.20의 값인=5140번 인덱스값을 1차 정책집합 테이블 #3에서 조회하여 1을 얻고, 수신지 IP 주소 16 비트를 추출하여 이에 해당하는 20.30의 값인=5150번 인덱스값을 1차 정책집합 테이블 #4에서 조회하여 0을 얻고, 발신지 포트 16 비트를 추출하여 이에 해당하는 1500번 인덱스값을 1차 정책집합 테이블 #5에서 조회하여 2를 얻고, 수신지 포트 16 비트를 추출하여 이에 해당하는 80번 인덱스값을 1차 정책집합 테이블 #6에서 조회하여 1을 얻고, 인터페이스, 프로토콜, TCP 플래그를 포함한 16비트 정보를 추출하여 이에 해당하는 1668번 인덱스값을 1차 정책집합 테이블 #7에서 조회하여 1을 얻는다. 이어서, 7개의 구획으로 나누어져 1차 정책집합 테이블에서 조회한 16 비트 정보에 해당되는 인덱스값을 2 구획씩 짝을 지어 2차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하고 변수값에 해당되는 인덱스값을 검색하되, 도 23을 참조하여 살펴보면, 1차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 1차 정책집합 테이블 #2의 인덱스값에 해당하는 1의 변수값(a) 즉, 2차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면=3이 되며, 변수값 3에 해당하는 인덱스값은 1이 된다. 또한, 1차 정책집합 테이블 #3의 인덱스값에 해당하는 1과 1차 정책집합 테이블 #4의 인덱스값에 해당하는 0의 변수값(a) 즉, 2차 정책집합 테이블 #2의 변수값(a)을 수학식(1)을 이용하여 산출하면=2가 되며, 변수값 2에 해당하는 인덱스값은 0이 된다. 또, 1차 정책집합 테이블 #5의 인덱스값에 해당하는 2와 1차 정책집합 테이블 #6의 인덱스값에 해당하는 1의 변수값(a) 즉, 2차 정책집합테이블 #3의 변수값(a)을 수학식(1)을 이용하여 산출하면=5가 되며, 변수값 5에 해당하는 인덱스값은 4가 된다. 1차 정책집합 테이블 #7의 1668번 인덱스값 1은 그대로 2차 정책집합 테이블의 인덱스값으로 사용한다.
그 후, 2차 정책집합 테이블에서 조회한 인덱스값을 2 구획씩 짝을 지어 3차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하고, 2개의 구획으로 나누어진 3차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회한다. 도 24를 참조하여 구체적으로 살펴보면, 2차 정책집합 테이블 #1의 인덱스값에 해당하는 1과 2차 정책집합 테이블 #4의 인덱스값에 해당하는 1의 변수값(a) 즉, 3차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면=4가 되며, 변수값 4에 해당하는 인덱스값은 2가 된다. 또한, 2차 정책집합 테이블 #2의 인덱스값에 해당하는 0과 2차 정책집합 테이블 #3의 인덱스값에 해당하는 4의 변수값(a) 즉, 3차 정책집합 테이블 #2의 변수값(a)을 수학식(1)을 이용하여 산출하면=4가 되며, 변수값 4에 해당하는 인덱스값은 2가 된다.
이어서, 3차 정책집합 테이블 #1, #2에서 조회한 각각의 인덱스값에 해당하는 변수값을 산출하고, 4차 정책집합 테이블에서 변수값에 해당하는 최종 정책을 판별한다. 즉, 3차 정책집합 테이블 #1의 인덱스값에 해당하는 2와 3차 정책집합 테이블 #2의 인덱스값에 해당하는 2의 변수값(a) 즉, 4차 정책집합 테이블 #1의 변수값(a)을 수학식(1)을 이용하여 산출하면=14가 되며, 변수값 14에 해당하는 정책은 C가 된다.
따라서, 1차 ~ 4차 정책집합 테이블을 조회하여 도 21에 예시된 패킷에 일치하는 도 14의 C 정책을 최종 정책으로 판별한다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술적 사상을 일탈하지 않는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 첨부한 도면과 명세서의 상세한 설명에 기재된 내용으로 한정되는 것은 아니다.
상술한 바와 같이 본 발명에 의하면, 사용자가 설정한 정책의 수 및 동시 접속 사용자 수에 관계없이 유입되는 패킷이 가지고 있는 정보와 일치하는 정책을 고속으로 판별하여 정책 판별에 소요되는 시간을 최소화함으로써 방화벽으로 인한 네트워크의 성능 저하를 방지하는 효과가 있다.
또한, 본 발명은 고속 트래픽 분류 알고리즘을 이용한 방화벽을 사용하여 사용자가 설정한 정책의 수 및 동시 접속 사용자 수와 전혀 무관하게 고속의 네트워크 성능을 유지하도록 하는 탁월한 효과를 기대할 수 있다.

Claims (10)

  1. 패킷 차단방식 방화벽 시스템에서 복수개의 정책들 중 각 정책 각각의 항목의 조건과 유입된 패킷이 가지고 있는 정보가 처음으로 일치하는 정책을 해당 패킷에 대응되는 정책으로 판별하는 정책 판별 방법에 있어서,
    사용자에 의해 설정된 수의 정책에 따라 패킷의 정보와 비교 대상이 되는 정보를 가진 정책집합 테이블을 일정 비트씩 구획지어 설정된 구획마다 별도의 테이블을 구성하고, 구획마다 별도로 설정된 정책집합 테이블을 짝을 이루어 정책 집합들의 모든 가능한 교집합을 구성해나가는 정책집합 테이블 설정 단계와;
    전송되는 패킷에서 정책을 구성하고 있는 정보와 비교 대상이 되는 정보를 설정 구획별로 추출하여 상기 정책 설정 단계에서 설정된 정책집합 테이블들의 단계별 정책집합 테이블을 기준으로 해당 인덱스값을 조회하여 전송되는 패킷에 대응하는 최종 대응 정책을 판별하는 정책 판별 단계를 구비하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  2. 제 1 항에 있어서, 상기 정책집합 테이블 설정 단계는 설정된 수의 정책에 따라 1차 정책집합 테이블을 7개의 구획으로 나누어 생성하는 단계와;
    상기 1차 정책집합 테이블에서 7개의 구획을 2개씩 짝을 이루어 짝을 이룬 테이블에 대한 정책집합의 교집합으로 2차 정책집합 테이블을 생성하는 단계와;
    상기 2차 정책집합 테이블으로 생성한 4개의 테이블을 짝을 이루어 짝을 이룬 테이블에 대한 정책집합의 교집합으로 3차 정책집합 테이블을 생성하는 단계; 및
    상기 3차 정책집합 테이블으로 생성한 2개 테이블의 교집합 중에서 최우선 순위 정책집합 구성원으로 4차 테이블을 생성하는 단계를 포함하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  3. 제 2 항에 있어서, 상기 7개의 구획으로 나누어진 각 구획별 1차 정책집합 테이블에는 각 구획에서 발생하는 모든 경우의 수(변수값)에 대응되는 고유 정책의 번호(인덱스값)들의 집합을 항목으로 정의하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  4. 제 2 항에 있어서, 상기 1차 내지 4차 정책집합 테이블들은 짝으로 이루어진 각 구획에서 나오는 모든 가능한 정책들의 집합의 모든 가능한 교집합으로 구성하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  5. 제 2 항에 있어서, 상기 정책집합 테이블 설정단계에서 기존 테이블을 폐기하고 새로운 테이블을 생성할 경우에는 각 정책이 담고 있는 패킷 정보의 조건 범위의 시작점과 끝점을 전체 0부터 65535까지의 값들을 표기한 선상에 표기하여 여러 정책들의 범위가 중첩된 정책 지도를 형성하는 단계와;
    상기 0부터 65535까지의 해당 구획이 가질 수 있는 모든 값들을 토대로 지도상의 정책 번호들을 대응되는 정책 집합으로 정의하여 1차 정책집합 테이블을 생성하는 단계를 더 포함하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  6. 제 5 항에 있어서, 상기 1차 정책집합 테이블을 생성하는 단계는 상기 정책 집합들이 중복되는지 검사하여 서로 다른 정책 집합에 서로 다른 고유번호를 부여하여 1차 정책집합 테이블을 생성하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  7. 제 2 항에 있어서, 상기 정책집합 테이블 설정단계에서 기존 테이블을 폐기하고 새로운 테이블을 생성할 경우에는 기존의 테이블들이 있는 메모리와는 전혀 다른 메모리상에 새로운 테이블들을 생성시키고, 신규 테이블의 생성이 완료되면 기존 테이블들이 있는 메모리를 신규 테이블으로 순간적으로 대체하도록 하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  8. 제 1 항에 있어서, 상기 정책 판별 단계는 정책을 구성하는 정보에 대응되는 패킷 정보를 추출하여 7개의 구획으로 나누어진 1차 정책집합 테이블에서 각각 패킷의 16 비트 정보에 해당되는 인덱스값을 조회하는 단계와;
    상기 7개의 구획으로 나누어져 1차 정책집합 테이블에서 조회한 16 비트 정보에 해당되는 인덱스값을 2 구획씩 짝을 지어 2차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하는 단계와;
    4 구획으로 나누어진 2차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회하는 단계와;
    상기 2차 정책집합 테이블에서 조회한 인덱스값을 2 구획씩 짝을 지어 3차 정책집합 테이블 조회를 위한 각각의 변수값을 산출하는 단계와;
    2 구획으로 나누어진 3차 정책집합 테이블에서 각각의 변수값에 해당하는 인덱스값을 조회하는 단계와;
    상기 3차 정책집합 테이블에서 조회한 각각의 인덱스값에 해당하는 변수값을 산출하는 단계; 및
    4차 정책집합 테이블에서 상기 변수값에 해당하는 최종 정책을 판별하는 단계를 포함하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  9. 제 8 항에 있어서, 상기 정책을 구성하는 정보에 대응되는 패킷 정보는, 32 비트의 발신지 IP 주소를 16 비트씩으로 나누어 추출한 발신지 IP 주소, 32 비트의수신지 IP 주소를 16 비트씩으로 나누어 추출한 수신지 IP 주소, 16 비트의 발신지 포트, 16 비트의 목적지 포트 및 인터페이스, 프로토콜, TCP 플래그를 포함한 16비트 정보인 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
  10. 제 8 항에 있어서, 상기 변수값 산출 단계에서 상기 변수값(a)은 하기의 공식을 이용하여 산출하는 것을 특징으로 하는 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법.
    식 중, a는 변수값, n은 2개씩 짝을 이룬 정책집합 테이블에서 두번째 테이블의 인덱스의 총 갯수,은 2개씩 짝을 이룬 정책집합 테이블에서 첫번째 테이블의 인덱스값,은 2개씩 짝을 이룬 정책집합 테이블에서 두번째 테이블의 인덱스값을 의미한다.
KR10-2001-0020524A 2001-04-17 2001-04-17 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법 KR100398281B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0020524A KR100398281B1 (ko) 2001-04-17 2001-04-17 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법
US09/969,790 US6976089B2 (en) 2001-04-17 2001-10-04 Method for high speed discrimination of policy in packet filtering type firewall system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0020524A KR100398281B1 (ko) 2001-04-17 2001-04-17 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법

Publications (2)

Publication Number Publication Date
KR20010068051A KR20010068051A (ko) 2001-07-13
KR100398281B1 true KR100398281B1 (ko) 2003-09-19

Family

ID=19708367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0020524A KR100398281B1 (ko) 2001-04-17 2001-04-17 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법

Country Status (2)

Country Link
US (1) US6976089B2 (ko)
KR (1) KR100398281B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100432166B1 (ko) * 2001-12-26 2004-05-17 한국전자통신연구원 글로벌 침입탐지 시스템에서 보안정책전달을 위한메시지전송수단과, 그에 의한 보안정책전달 및 처리방법

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058817B1 (en) 1999-07-02 2006-06-06 The Chase Manhattan Bank System and method for single sign on process for websites with multiple applications and services
WO2001033477A2 (en) 1999-11-04 2001-05-10 Jpmorgan Chase Bank System and method for automated financial project management
US8571975B1 (en) 1999-11-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for sending money via E-mail over the internet
US10275780B1 (en) 1999-11-24 2019-04-30 Jpmorgan Chase Bank, N.A. Method and apparatus for sending a rebate via electronic mail over the internet
US7426530B1 (en) 2000-06-12 2008-09-16 Jpmorgan Chase Bank, N.A. System and method for providing customers with seamless entry to a remote server
US10185936B2 (en) 2000-06-22 2019-01-22 Jpmorgan Chase Bank, N.A. Method and system for processing internet payments
US8335855B2 (en) 2001-09-19 2012-12-18 Jpmorgan Chase Bank, N.A. System and method for portal infrastructure tracking
US8849716B1 (en) 2001-04-20 2014-09-30 Jpmorgan Chase Bank, N.A. System and method for preventing identity theft or misuse by restricting access
US7689506B2 (en) 2001-06-07 2010-03-30 Jpmorgan Chase Bank, N.A. System and method for rapid updating of credit information
US7266839B2 (en) 2001-07-12 2007-09-04 J P Morgan Chase Bank System and method for providing discriminated content to network users
US7103576B2 (en) 2001-09-21 2006-09-05 First Usa Bank, Na System for providing cardless payment
CA2466071C (en) 2001-11-01 2016-04-12 Bank One, Delaware, N.A. System and method for establishing or modifying an account with user selectable terms
US7987501B2 (en) 2001-12-04 2011-07-26 Jpmorgan Chase Bank, N.A. System and method for single session sign-on
US7941533B2 (en) 2002-02-19 2011-05-10 Jpmorgan Chase Bank, N.A. System and method for single sign-on session management without central server
US7471630B2 (en) * 2002-05-08 2008-12-30 Verizon Business Global Llc Systems and methods for performing selective flow control
US7876681B2 (en) 2002-05-24 2011-01-25 Verizon Business Global Llc Systems and methods for controlling network-bound traffic
JP4361714B2 (ja) * 2002-05-31 2009-11-11 富士通株式会社 ネットワーク中継装置
US7058660B2 (en) 2002-10-02 2006-06-06 Bank One Corporation System and method for network-based project management
US8117639B2 (en) * 2002-10-10 2012-02-14 Rocksteady Technologies, Llc System and method for providing access control
US7587512B2 (en) 2002-10-16 2009-09-08 Eric White System and method for dynamic bandwidth provisioning
US8301493B2 (en) 2002-11-05 2012-10-30 Jpmorgan Chase Bank, N.A. System and method for providing incentives to consumers to share information
US9003048B2 (en) * 2003-04-01 2015-04-07 Microsoft Technology Licensing, Llc Network zones
US20040230677A1 (en) * 2003-05-16 2004-11-18 O'hara Roger John System and method for securely monitoring and managing network devices
US7624438B2 (en) 2003-08-20 2009-11-24 Eric White System and method for providing a secure connection between networked computers
US7451483B2 (en) * 2003-10-09 2008-11-11 International Business Machines Corporation VLAN router with firewall supporting multiple security layers
JP4152412B2 (ja) * 2003-10-10 2008-09-17 富士通株式会社 統計情報採取方法及び装置
US7408932B2 (en) 2003-10-20 2008-08-05 Intel Corporation Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing
US8190893B2 (en) 2003-10-27 2012-05-29 Jp Morgan Chase Bank Portable security transaction protocol
US7610621B2 (en) 2004-03-10 2009-10-27 Eric White System and method for behavior-based firewall modeling
US8543710B2 (en) 2004-03-10 2013-09-24 Rpx Corporation Method and system for controlling network access
US7665130B2 (en) * 2004-03-10 2010-02-16 Eric White System and method for double-capture/double-redirect to a different location
US7525958B2 (en) * 2004-04-08 2009-04-28 Intel Corporation Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
US7623464B2 (en) * 2004-07-09 2009-11-24 Cisco Technology, Inc. Rapid protocol failure detection
AU2005328336B2 (en) 2004-12-22 2011-09-15 Wake Forest University Method, systems, and computer program products for implementing function-parallel network firewall
US7903546B2 (en) * 2005-01-14 2011-03-08 Cisco Technology, Inc. Detecting unavailable network connections
WO2006105093A2 (en) * 2005-03-28 2006-10-05 Wake Forest University Methods, systems, and computer program products for network firewall policy optimization
US8185877B1 (en) 2005-06-22 2012-05-22 Jpmorgan Chase Bank, N.A. System and method for testing applications
US8583926B1 (en) 2005-09-19 2013-11-12 Jpmorgan Chase Bank, N.A. System and method for anti-phishing authentication
EP1954666A1 (de) * 2005-11-23 2008-08-13 Basf Se Verfahren zur herstellung von carbonsäurevinylestern
EP3336707A1 (en) 2006-05-05 2018-06-20 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US8793490B1 (en) 2006-07-14 2014-07-29 Jpmorgan Chase Bank, N.A. Systems and methods for multifactor authentication
US20080282338A1 (en) * 2007-05-09 2008-11-13 Beer Kevin J System and method for preventing the reception and transmission of malicious or objectionable content transmitted through a network
US8473735B1 (en) 2007-05-17 2013-06-25 Jpmorgan Chase Systems and methods for managing digital certificates
US8046492B1 (en) * 2007-11-06 2011-10-25 Juniper Networks, Inc. Offset independent filtering
KR20090065183A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 셀트 문법 형식의 셀이눅스 보안정책 자동 생성 장치 및방법
US8321682B1 (en) 2008-01-24 2012-11-27 Jpmorgan Chase Bank, N.A. System and method for generating and managing administrator passwords
US8813220B2 (en) * 2008-08-20 2014-08-19 The Boeing Company Methods and systems for internet protocol (IP) packet header collection and storage
US8726382B2 (en) * 2008-08-20 2014-05-13 The Boeing Company Methods and systems for automated detection and tracking of network attacks
US8762515B2 (en) * 2008-08-20 2014-06-24 The Boeing Company Methods and systems for collection, tracking, and display of near real time multicast data
US8490149B1 (en) * 2008-08-20 2013-07-16 Juniper Networks, Inc. Secure session handling in a device after a policy update
US9608826B2 (en) 2009-06-29 2017-03-28 Jpmorgan Chase Bank, N.A. System and method for partner key management
US8495725B2 (en) * 2009-08-28 2013-07-23 Great Wall Systems Methods, systems, and computer readable media for adaptive packet filtering
US9407663B1 (en) * 2011-09-28 2016-08-02 Emc Corporation Method and apparatus for man-in-the-middle agent-assisted client filtering
US9106513B2 (en) * 2012-03-23 2015-08-11 Microsoft Technology Licensing, Llc Unified communication aware networks
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US9419957B1 (en) 2013-03-15 2016-08-16 Jpmorgan Chase Bank, N.A. Confidence-based authentication
US9515938B2 (en) 2013-10-24 2016-12-06 Microsoft Technology Licensing, Llc Service policies for communication sessions
US10148726B1 (en) 2014-01-24 2018-12-04 Jpmorgan Chase Bank, N.A. Initiating operating system commands based on browser cookies
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
KR102312019B1 (ko) * 2020-10-20 2021-10-12 현대오토에버 주식회사 방화벽 제어 장치 및 이를 포함하는 방화벽 정책 관리 시스템
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
CN112351027A (zh) * 2020-11-04 2021-02-09 杭州安恒信息技术股份有限公司 基于机器学习的web防护方法、系统、设备及介质
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781550A (en) * 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
KR20000054521A (ko) * 2000-06-09 2000-09-05 김상돈 해킹 로봇 프로그램의 공격 차단 시스템 및 그 방법
KR20010105116A (ko) * 2000-05-19 2001-11-28 김강호 리눅스 기반의 네트워크 통합 보안 시스템 및 그의 방법과이를 장착한 반도체 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
DE69601149T2 (de) * 1995-07-03 1999-08-05 Sun Microsystems Inc Systen und Verfahren zum Implementieren einer hierarchischen Politik für die Administration eines Computersystems
US5951651A (en) * 1997-07-23 1999-09-14 Lucent Technologies Inc. Packet filter system using BITMAP vector of filter rules for routing packet through network
WO1999066385A2 (en) * 1998-06-19 1999-12-23 Sun Microsystems, Inc. Scalable proxy servers with plug in filters
US6691168B1 (en) * 1998-12-31 2004-02-10 Pmc-Sierra Method and apparatus for high-speed network rule processing
US6529508B1 (en) * 1999-02-01 2003-03-04 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
US6707817B1 (en) * 1999-03-17 2004-03-16 Broadcom Corporation Method for handling IP multicast packets in network switch

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781550A (en) * 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
KR20010105116A (ko) * 2000-05-19 2001-11-28 김강호 리눅스 기반의 네트워크 통합 보안 시스템 및 그의 방법과이를 장착한 반도체 장치
KR20000054521A (ko) * 2000-06-09 2000-09-05 김상돈 해킹 로봇 프로그램의 공격 차단 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100432166B1 (ko) * 2001-12-26 2004-05-17 한국전자통신연구원 글로벌 침입탐지 시스템에서 보안정책전달을 위한메시지전송수단과, 그에 의한 보안정책전달 및 처리방법

Also Published As

Publication number Publication date
US6976089B2 (en) 2005-12-13
US20020165949A1 (en) 2002-11-07
KR20010068051A (ko) 2001-07-13

Similar Documents

Publication Publication Date Title
KR100398281B1 (ko) 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법
US6947983B2 (en) Method and system for exploiting likelihood in filter rule enforcement
US9866540B2 (en) System and method for rule matching in a processor
US9871781B2 (en) Systems and methods for path maximum transmission unit discovery
CN101707617B (zh) 报文过滤方法、装置及网络设备
US6212184B1 (en) Fast scaleable methods and devices for layer four switching
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US20080095149A1 (en) Flexible packet field processor
US7180895B2 (en) System and method for classifying network packets with packet content
US9356844B2 (en) Efficient application recognition in network traffic
KR100997182B1 (ko) 플로우 정보 제한장치 및 방법
US8555374B2 (en) High performance packet processing using a general purpose processor
US8239341B2 (en) Method and apparatus for pattern matching
KR20010072661A (ko) 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법
JP2009510815A (ja) サーチ前のパケットのリアセンブル方法及びシステム
US9647947B2 (en) Block mask register key processing by compiling data structures to traverse rules and creating a new rule set
CN103916294A (zh) 协议类型的识别方法和装置
CN110855576A (zh) 应用识别方法及装置
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
US7346669B2 (en) Method, apparatus and system for processing message bundles on a network
US7735128B2 (en) Method of storing pattern matching policy and method of controlling alert message
US7508825B2 (en) Data packet classification
KR100770643B1 (ko) Tcam을 이용한 고성능 패킷 분류 방법 및 그 장치
US20220294764A1 (en) Systems and methods for operating a networking device
WO2012064175A1 (en) A method to optimize path management in virtual machine environment

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

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130109

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160905

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 16