KR102424186B1 - 룰 병합 방법 및 장치 - Google Patents

룰 병합 방법 및 장치 Download PDF

Info

Publication number
KR102424186B1
KR102424186B1 KR1020160104623A KR20160104623A KR102424186B1 KR 102424186 B1 KR102424186 B1 KR 102424186B1 KR 1020160104623 A KR1020160104623 A KR 1020160104623A KR 20160104623 A KR20160104623 A KR 20160104623A KR 102424186 B1 KR102424186 B1 KR 102424186B1
Authority
KR
South Korea
Prior art keywords
rule
merging
attribute
relationship
rules
Prior art date
Application number
KR1020160104623A
Other languages
English (en)
Other versions
KR20180020391A (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 KR1020160104623A priority Critical patent/KR102424186B1/ko
Publication of KR20180020391A publication Critical patent/KR20180020391A/ko
Application granted granted Critical
Publication of KR102424186B1 publication Critical patent/KR102424186B1/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/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

방화벽 시스템과 같이 룰 기반으로 동작하는 장치 또는 시스템에서, 복수의 룰 간 기 정의된 속성 관계 분석을 통해 병합하는 방법이 제공된다. 본 발명에 따른 룰 병합 방법은 병합 대상 룰을 가리키는 데이터를 제공 받는 단계, 기 설정된 기준에 따라, 기 저장된 룰 중에서 상기 병합 대상 룰과 병합될 후보 룰을 선출하는 단계, 상기 병합 대상 룰의 속성 및 상기 병합 대상 룰의 속성과 대응되는 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계, 상기 합산된 속성 쌍의 개수를 기반으로 하여 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 단계 및 병합이 가능하다고 판단된 경우, 상기 병합 대상 룰과 상기 후보 룰을 병합하는 단계를 포함할 수 있다.

Description

룰 병합 방법 및 장치{Method and Apparatus for Merging Rules}
본 발명은 룰 병합 방법 및 장치에 관한 것이다. 보다 자세하게는, 방화벽과 같은 룰 기반 시스템에서 복수의 속성을 갖는 룰의 중복을 제거함으로써 시스템의 성능을 향상시키는 방법 및 장치에 관한 것이다.
현재의 인터넷과 네트워크 환경은 내외부적으로 다양한 보안 위협에 노출돼 있으며, 크고 작은 보안 사고로 인한 피해사례 또한 급증하고 있다. 이에 따라 네트워크 보안은 여전히 정보 보안의 큰 화두로 떠오르고 있다. 네트워크 보안을 고려할 때 가장 먼저 고려되는 것은 바로 방화벽(Firewall)이다. 방화벽은 기업 내 네트워크망과 같은 인트라넷(Intra-net)과 인터넷이라는 외부 공개망의 접점에 위치한 네트워크 보안의 일차 저지선으로, 외부로부터 들어오는 패킷을 필터링하여 불필요한 패킷 및 트래픽을 차단하는 역할을 한다.
방화벽에 등록 가능한 룰의 개수는 물리적으로 제한되어 있기 때문에 방화벽의 제한된 리소스 바탕으로 다수의 룰을 등록하기 위해서는 등록된 룰 간의 효율적인 병합이 필수이다. 또한, 방화벽에 등록된 룰의 개수가 증가할수록 중복되거나 서로 상충되는 룰 또한 증가하여 방화벽의 관리가 어려워지고, 방화벽은 들어오는 패킷마다 다양한 룰의 만족 여부를 검사하므로 네트워크의 성능이 저하될 수 있다. 따라서, 방화벽에 등록된 복수의 룰을 병합하여 방화벽을 최적화 하는 것은 매우 중요한 문제이다.
방화벽의 룰을 병합하는 종래의 기술은 패킷 필터링에 요구되는 기본적인 속성인 송신지 주소(Source Address), 목적지 주소(Destination Address), 프로토콜(Protocol), 송신지 포트(Source Port), 목적지 포트(Destination Port), 액션(Action) 총 6 가지의 속성을 기준으로 룰을 병합한다.
그러나, 다양한 보안 위협에 대응하기 위해서 현재의 방화벽은 위의 6 가지 기본 속성 외에도 사용자, 사용 기간, 사용자 권한, 단말의 종류 등 훨씬 더 복잡하고 다양한 속성을 고려하여 세밀한 패킷 제어를 수행하여야 한다. 또한, 방화벽이 설치된 환경, 네트워크의 목적 등에 따라 룰에 포함되는 속성의 종류는 변경되거나 추가될 수 있다. 따라서, 고정된 6 가지 속성만을 기준으로 룰을 병합하는 종래의 기술은 현재의 방화벽의 룰을 통합하는데 적용될 수 없으며, 룰에 포함되는 다양한 속성을 고려할 수 있고 속성 종류의 변동에 관계없이 적용될 수 있는 룰 병합 방법이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 룰 기반으로 동작하는 장치 또는 시스템에서 다양한 속성을 포함하는 룰을 병합할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 형식적 정합성 검증을 통해 병합 대상 룰과 병합 가능성이 높은 룰을 후보 룰을 선출할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 병합 대상 룰과 후보 룰에 대해 기 정의된 속성 관계 기반으로 상관 관계를 분석함으로써 병합 가능 여부를 판단할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 룰 병합 방법은, 병합 대상 룰을 가리키는 데이터를 제공 받는 단계, 기 설정된 기준에 따라, 기 저장된 룰 중에서 상기 병합 대상 룰과 병합될 후보 룰을 선출하는 단계, 상기 병합 대상 룰의 속성 및 상기 병합 대상 룰의 속성과 대응되는 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계, 상기 합산된 속성 쌍의 개수를 기반으로 하여 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 단계 및 병합이 가능하다고 판단된 경우, 상기 병합 대상 룰과 상기 후보 룰을 병합하는 단계를 포함할 수 있다.
일 실시예에서, 상기 병합 대상 룰 및 상기 후보 룰은, 각각 필수 속성 및 선택 속성을 가지고, 상기 후보 룰을 선출하는 단계는, 상기 기 저장된 룰 중에서 상기 병합 대상 룰과 상기 필수 속성의 개수가 동일한 룰 중에서 상기 후보 룰을 선출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 병합 가능 여부를 판단하는 단계는, 상기 합산된 속성 쌍의 개수와, 상기 병합 대상 룰의 속성의 개수가 상이한 경우 병합이 불가능하다고 판단하는 단계를 포함할 수 있다.
일 실시예에서 상기 복수의 속성 관계는, 확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되, 상기 병합 가능 여부를 판단하는 단계는, 상기 동일 관계를 갖는 속성 쌍의 개수가 0 보다 크거나 같은 경우, 상기 동일 관계를 제외한 속성 관계를 갖는 속성 쌍 전부가 포함되는 관계 또는 포함하는 관계를 갖는 경우 병합이 가능하다고 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계는, 상기 기 저장된 룰의 개수를 기반으로 오차 범위를 조정하는 단계 및 상기 오차 범위를 반영하여, 상기 속성 쌍 각각이 상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는지 판정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계는, 상기 속성에 대한 기 설정된 오차 범위 값을 얻는 단계, 상기 병합 대상 룰의 속성 값에 상기 오차 범위 값을 반영하는 단계 및 상기 오차 범위 값이 반영된 병합 대상 룰의 속성과 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계를 포함할 수 있다.
일 실시예에서, 상기 병합하는 단계는, 상기 병합 대상 룰과 상기 후보 룰이 병합된 룰을 상기 병합 대상 룰로 재설정하는 단계 및 상기 후보 룰을 선출하는 단계, 상기 속성 쌍의 개수를 합산하는 단계, 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 단계 및 병합이 가능하다고 판단된 경우 상기 병합 대상 룰과 상기 후보 룰을 병합하는 단계를 재수행하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 룰 병합 장치는, 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 병합 대상 룰을 가리키는 데이터를 제공 받는 오퍼레이션, 기 설정된 기준에 따라, 기 저장된 룰 중에서 상기 병합 대상 룰과 병합될 후보 룰을 선출하는 오퍼레이션, 상기 병합 대상 룰의 속성 및 상기 병합 대상 룰의 속성과 대응되는 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 오퍼레이션, 상기 합산된 속성 쌍의 개수를 기반으로 하여 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 오퍼레이션 및 병합이 가능하다고 판단된 경우, 상기 병합 대상 룰과 상기 후보 룰을 병합하는 오퍼레이션을 포함할 수 있다.
상술한 본 발명에 따르면, 룰 기반으로 동작하는 시스템에서 복수의 룰을 병합하여 룰의 개수를 줄임으로써 시스템을 최적화하는 효과가 있다.
또한, 룰 기반으로 동작하는 장치 또는 시스템에서 룰에 포함된 속성의 다양성 및 변동에 관계없이 룰을 병합할 수 있는 방법을 제공함으로써 다양한 장치 또는 시스템에 범용적으로 적용될 수 있다.
또한, 형식적 정합성 검증을 통해 기 저장된 룰 중에서 병합 대상 룰과 병합 가능성이 높은 후보 룰을 선출함으로써 룰 병합의 효율성을 향상시킬 수 있다.
또한, 병합 대상 룰과 후보 룰에 대하여 기 정의된 속성 관계 기반으로 속성 레벨에서 병합 가능 여부를 판단함으로써 병합 가능성 판단의 정확성을 향상시킬 수 있다.
또한, 병합 대상 룰과 후보 룰에 대해 기 정의된 속성 관계 판단에 있어서, 오차 범위를 이용하여 속성 관계 판단의 엄격도를 조절함으로써 룰 병합의 효율성을 보다 향상시킬 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 방화벽 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 룰 병합 장치의 하드웨어 구성도이다.
도 3은 본 발명의 다른 실시예에 따른 룰 병합 장치의 기능 블록도이다.
도 4는 본 발명의 또 다른 실시예에 따른 룰 병합 방법의 순서도이다.
도 5는 도 4에 도시된 후보 룰 선출 단계의 상세 순서도이다.
도 6a 및 도 6b는 룰 공간을 설명하기 위한 도면이다.
도 7a 내지 도 7g는 병합 대상 룰과 후보 룰의 병합이 가능한 경우의 예시도이다.
도 8a 내지 도 8d는 병합 대상 룰과 후보 룰의 병합이 불가능한 경우의 예시도이다.
도 9 내지 도 11은 도 4에 도시된 병합 가능 여부 판단 단계의 상세 순서도이다.
도 12 및 도 13은 도 9에 도시된 병합 가능 여부 판단 단계에 대한 의사코드의 예시도이다.
도 14는 본 발명의 몇몇 실시예에서 이용될 수 있는 연속적인 병합을 수행하는 방법을 설명하기 위한 도면이다.
도 15a 내지 도 15c는 본 발명의 몇몇 실시예에서 이용될 수 있는 속성 관계 판단의 엄격도를 조절하는 방법을 설명하기 위한 도면이다.
도 16a 및 도 16b는 본 발명의 몇몇 실시예에서 이용될 수 있는 속성의 계층성 기반으로 속성 관계를 판단하는 방법을 설명하기 위한 도면이다.
도 17a 및 도 17b는 본 발명의 또 다른 실시예에 따라 비정형 데이터 형태의 룰이 제공되는 경우 룰을 병합하는 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
설명의 편의를 위하여, 본 발명의 다양한 실시예에 따른 룰 병합 방법 및 장치는 룰 기반으로 동작하는 방화벽을 이용하여 설명될 것이다. 그러나 본 발명의 범위는 룰 기반으로 동작하는 방화벽에 제한되지 않으며, 룰 기반으로 동작하는 방법, 장치 및 시스템이라면 본 발명의 범위에 포함될 수 있다. 예를 들어, 본 발명은 룰 기반으로 동작하는 감시 시스템에도 적용될 수 있다. 상기 감시 시스템이 지역, 시간, 객체의 종류를 속성으로 하는 다양한 룰을 등록하여 감시를 수행한다고 가정할 때, 등록된 다양한 룰 또한 본 발명에 따른 룰 병합 방법을 이용하여 병합될 수 있다.
또한, 본 발명에서 이용되는 룰은 다양한 속성의 집합으로 표현될 수 있는 규칙을 의미한다. 더 자세하게는, 상기 룰(Rule)은 속성(Attribute), 상기 속성에 대응되는 값(Value) 및 상기 속성의 값이 룰을 만족하는지 판단하는 조건(Condition)을 포함할 수 있다. 아울러, 상기 룰은 본 발명의 기술분야에서 정책(Policy), 이벤트(Event) 등 다른 형태의 용어로 사용될 수 있으나 동일한 대상을 지칭함에 유의한다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 방화벽 시스템의 구성도이다.
도 1을 참조하면, 상기 방화벽 시스템은 인트라넷(100)을 구성하는 복수의 컴퓨팅 장치(110, 130, 150)와 방화벽(170) 및 룰 병합 장치(200)를 포함할 수 있다. 특히, 도 1에 도시된 인트라넷(100)은 기업의 내부 네트워크망을 의미하는 것으로 기업에서 네트워크에 연결된 복수의 컴퓨팅 장치를 사용하는 복수의 사용자(111, 131, 151)가 외부 네트워크의 서비스 사용에 대해 허가 신청하는 경우를 예로써 도시하였다.
기업의 인트라넷에 연결된 컴퓨팅 장치(110, 130, 150)를 이용하는 사용자(111, 131, 151)는 인터넷과 같은 외부의 네트워크에서 제공하는 서비스를 이용하기 위해 사용 허가 신청할 수 있고, 사용자의 신청 내용에는 이용하려는 서비스의 IP 주소, 포트, 프로토콜, 사용자, 사용 기간, 단말의 종류 등의 정보가 포함될 수 있다. 사용자(111, 131, 151)의 신청 내용은 룰을 가리키는 데이터를 의미할 수 있으며, 상기 데이터는 룰 형태의 데이터로 변환되어 룰 병합 장치(200)에 저장될 수 있다.
본 발명에 따른 룰 병합 장치(200)는 다양한 속성을 가진 룰을 병합시키는 장치이다. 특히, 방화벽 시스템에 적용되는 경우 룰 병합 장치(200)는 방화벽(170) 내의 룰 또는 방화벽(170)에 제공되는 룰의 중복을 제거함으로써 방화벽(170)을 최적화시킬 수 있다. 도 1에서 룰 병합 장치(200)는 방화벽(170)과 물리적으로 독립된 장치로 도시되어 있으나 꼭 이에 국한되는 것은 아니고, 동일한 장치 내에서 서로 다른 로직(Logic)의 형태로 구현될 수도 있다.
룰 병합 장치(200)와 방화벽(170)을 별도로 구현하는 경우, 룰 병합 장치(200)는 방화벽(170)과 별도로 사용자 신청 룰을 관리할 수도 있다. 룰 병합 장치(200)는 사용자(111, 131, 151)가 신청한 룰을 별도로 저장하고, 사용자가 신청한 룰을 병합하여 중복을 제거한 뒤 방화벽(170)에 중복이 제거된 룰을 제공할 수도 있다. 또한, 벤더(Vendor)가 다른 복수의 방화벽을 이용하는 경우, 룰 병합 장치(200)는 벤더 별 방화벽의 특성을 고려하여 변환된 룰을 제공할 수도 있다. 예를 들어, 룰 병합 장치(200)는 병합된 룰을 벤더 별 방화벽이 요구하는 룰의 형식에 맞게 변환하여 제공할 수 있다.
방화벽(170)은 외부 네트워크로부터 유입되는 패킷을 필터링하는 장치이다. 보다 자세하게, 방화벽(170)은 외부로부터 유입되는 패킷이 방화벽에 등록된 룰을 만족시키지 검사하고 만족하는 경우 정해진 액션에 따라 해당 패킷을 드랍하거나 허용함으로써 패킷 및 트래픽을 제어한다. 방화벽(170)은 IPCOP, IPFIRE 등과 같이 소프트웨어를 이용하여 구현될 수 있고 성능 향상을 위해 하드웨어를 이용하여 구현될 수도 있다.
한편, 컴퓨팅 장치(110, 130, 150)는 노트북, 데스크톱(desktop), 랩탑(laptop) 등을 포함하고, 스마트폰(Smart Phone)과 같은 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
다음으로 도 2 및 도 3 참조하여 본 발명의 다른 실시예에 따른 룰 병합 장치의 세부 구성 및 동작에 대하여 설명한다.
도 2는 본 발명의 다른 실시예에 따른 룰 병합 장치의 하드웨어 구성도이다.
도 2를 참조하면, 룰 병합 장치(200)는 하나 이상의 프로세서(210), 네트워크 인터페이스(270), 프로세서(200)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(230)와, 룰 병합 소프트웨어(231) 및 사용자 신청 룰(291)을 저장하는 스토리지(290)를 포함할 수 있다. 다만, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(210)는 룰 병합 장치(200)의 각 구성의 전반적인 동작을 제어한다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(210)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 룰 병합 장치(200)는 하나 이상의 프로세서를 구비할 수 있다.
네트워크 인터페이스(270)는 룰 병합 장치(200)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(270)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(270)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
네트워크 인터페이스(270)는 네트워크를 통해 도 1에 도시된 복수의 컴퓨팅 장치(110, 130, 150)로부터 사용자 신청 룰(291)을 수신할 수 있다.
메모리(230)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(230)는 본 발명의 실시예들에 따른 룰 병합 방법을 실행하기 위하여 스토리지(290)로부터 하나 이상의 프로그램(291)을 로드할 수 있다. 도 2에서 메모리(230)의 예시로 RAM이 도시되었다.
스토리지(290)는 상기 하나 이상의 프로그램(231) 및 사용자 신청 룰(291)을 비임시적으로 저장할 수 있다. 도 2에서 상기 하나 이상의 프로그램(231)의 예시로 룰 병합 소프트웨어(231)가 도시되었다.
스토리지(290)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
룰 병합 소프트웨어(231)는 상기 컴퓨터 프로그램은, 병합 대상 룰을 가리키는 데이터를 제공 받는 오퍼레이션, 기 설정된 기준에 따라, 기 저장된 룰 중에서 상기 병합 대상 룰과 병합될 후보 룰을 선출하는 오퍼레이션, 상기 병합 대상 룰의 속성 및 상기 병합 대상 룰의 속성과 대응되는 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 오퍼레이션, 상기 합산된 속성 쌍의 개수를 기반으로 하여 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 오퍼레이션 및 병합이 가능하다고 판단된 경우, 상기 병합 대상 룰과 상기 후보 룰을 병합하는 오퍼레이션을 수행할 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 룰 병합 장치의 기능 블록도이다.
도 3을 참조하면, 룰 병합 장치(200)는 룰 제공부(310), 후보 룰 선출부(330), 병합 가능성 판단부(350) 및 룰 병합부(370)를 포함할 수 있다. 다만, 도 3에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 3에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
또한, 상기 룰 병합 장치(200)의 각 기능은 도 2에 도시된 룰 병합 장치의 프로세서(210)에 의해 수행될 수 있다.
각 구성요소를 살펴보면, 룰 제공부(310)는 필수 속성을 포함하는 병합 대상 룰을 제공 받는다. 상기 병합 대상 룰은 사용자로부터 제공될 수 있고, 기 저장된 룰의 최적화를 위하여 기 저장된 룰 중 임의의 룰을 선택하여 제공 받을 수도 있다.
후보 룰 선출부(330)는 병합 대상 룰과 병합을 수행할 후보 룰을 선출한다. 후보 룰은 기 저장된 복수의 룰 중에서 병합 가능성이 높은 룰을 의미하고 후보 룰은 병합 대상 룰과의 형식적 정합성 검증을 통과한 룰로 선정될 수 있다. 형식적 정합성을 검증하는 방법은 도 5를 참조하여 후술한다.
병합 가능성 판단부(350)는 형식적 정합성이 검증된 후보 룰이 병합 대상 룰과 실질적으로 병합이 가능한지 판단한다. 병합 가능성 판단 방법은 이하 도 6 내지 도 13을 참조하여 후술한다.
마지막으로 룰 병합부(370)는 병합 가능성 판단부(350)에서 병합이 가능하다고 판단된 경우 병합 대상 룰과 후보 룰을 병합한다. 병합하는 방법은 병합 대상 룰과 후보 룰이 완전히 중복되는 경우 하나의 룰을 삭제하는 방식 또는 병합된 신규 룰을 생성하는 방식으로 수행될 수 있다. 또한, 병합 대상 룰과 후보 룰의 일부만 중복되는 경우는 병합 대상 룰과 후보 룰을 포함하는 신규 룰을 생성하거나, 병합 대상 룰을 삭제하고 기 저장된 후보 룰의 속성 값을 두 가지 룰을 모두 포함하도록 갱신함으로써 수행될 수 있다. 이와 같이 룰을 병합하는 방법은 다양할 수 있으며, 이는 구현 방식의 차이에 불과할 수 있다.
도 3의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
지금부터, 도 4 내지 도 13을 참조하여 본 발명의 또 다른 실시예에 따른 룰 병합 방법에 대하여 상세히 설명한다. 이후, 이해의 편의를 돕기 위해, 상기 룰 병합 방법에 포함되는 각 동작의 주체는 그 기재가 생략될 수도 있음을 유의한다.
도 4는 본 발명의 또 다른 실시예에 따른 룰 병합 방법의 순서도이다.
도 4를 참조하면, 룰 병합 장치(200)의 룰 제공부(310)는 병합 대상 룰을 가리키는 데이터를 제공 받을 수 있다(S410). 룰의 구성 요소인 속성은 룰의 만족 여부를 판단하기 위해 필요한 데이터를 종류 별로 추상화한 레이블이다. 시스템마다 적용되는 룰은 달라지므로 룰의 속성 또한 적용되는 시스템에 따라 다르게 정의될 수 있다. 예를 들어, 방화벽 시스템의 경우, 룰을 구성하는 속성은 송신지 주소, 송신지 포트, 사용자, 사용 기간, 액션 등을 속성으로 정의될 수 있고, 감시 시스템의 경우 지역, 시간, 객체의 종류 등이 속성으로 정의될 수 있다.
룰을 구성하는 복수의 속성은 필수 속성과 선택 속성으로 구분될 수 있다. 필수 속성은 룰 병합을 위해 필수적으로 속성 관계 분석이 요구되는 속성을 의미하고, 선택 속성이란 복수의 속성 중 필수 속성이 아닌 속성을 의미한다. 여기서, 속성 관계 분석이란 병합 대상 룰의 속성과 대응되는 후보 룰의 속성으로 구성된 속성 쌍이 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는지 분석하는 것을 의미한다. 해당 속성이 필수 속성인지 여부는 시스템에 따라 기 설정되어 있을 수 있고, 방화벽 시스템의 경우 관리자가 필수 속성을 미리 설정해 놓을 수 있다.
다음으로, 병합 대상 룰이 제공되면 룰 병합 장치(200)의 후보 룰 선출부(330)는 기 저장된 룰에서 병합 대상 룰과 병합될 후보 룰을 선출한다(S430). 상기 후보 룰은 전술한 바와 같이 병합 대상 룰과 병합될 가능성이 높은 룰로써 형식적 정합성 검증을 통해 선출될 수 있다. 후보 룰을 선출하는 방법은 도 5를 참조하여 후술한다.
도 5에 도시된 방법에 따라 후보 룰이 선출되면 룰 병합 장치(200)의 병합 가능성 판단부(350)는 병합 대상 룰과 선출된 후보 룰과의 병합 가능 여부를 판단한다(S450). 상기 병합 가능 여부의 판단 방법 또한 도 6 내지 도 13을 참조하여 후술한다.
룰 병합 가능 여부의 판단 결과, 병합이 가능하다고 판단된 경우 룰 병합 장치(200)의 룰 병합부(370)는 병합 대상 룰과 후보 룰을 병합할 수 있다(S470, S490). 룰 병합이 불가능하다고 판단된 경우 룰 병합 장치(200)는 룰 병합 단계(S490)를 수행하지 않고 룰 병합 과정을 종료할 수도 있고, 다른 후보 룰을 선출함으로써 룰 병합 과정을 다시 수행할 수도 있다.
한편, 전술한 바와 같이 본 발명에 따른 룰 병합 방법은 새로운 룰의 제공이 없더라도 수행될 수 있음에 유의해야 한다. 본 발명에 따른 룰 병합 방법은 새로운 룰의 제공이 없더라도 기 저장된 룰 중에서 하나의 룰을 병합 대상 룰로 선택함으로써 동일한 방식으로 병합을 수행할 수 있다. 이하 도 5를 참조하여 후보 룰을 선출하는 단계에 대하여 상세히 설명한다.
도 5를 참조하면, 룰 병합 장치(200)의 후보 룰 선출부(330)는 필수 속성의 개수 및 필수 속성의 종류 기준으로 후보 룰을 선출하기 위한 형식적 정합성 검증을 수행할 수 있다. 필수 속성의 개수 및 필수 속성의 종류가 동일한 경우, 병합 가능성 판단부(350)가 룰 병합 가능 여부를 판단하기 위한 속성 관계 분석을 수행할 수 있기 때문이다.
보다 자세히 설명하면, 후보 룰 선출부(330)는 기 저장된 룰 중에서 병합 대상 룰과 필수 속성의 개수가 동일한 룰을 1차 후보 룰로 선출할 수 있다(S530). 필수 속성의 개수가 동일한 후보 룰을 빠르게 선택하기 위해 다양한 방식으로 구현될 수 있다. 기 저장된 룰을 필수 속성의 개수로 정렬하여 관리할 수 있고, 데이터베이스가 구축되어 있는 경우, 쿼리(Query)를 통해 1차 후보 룰을 선정할 수도 있다.
한편, 구현 방식에 따라 제공되지 않은 필수 속성의 경우 기본 값이 부여될 수도 있다. 예를 들어, 사용자가 특정 웹 사이트에서 제공하는 인터넷 서비스 이용하기 위해 상기 웹 사이트의 주소 및 포트 등을 제공하고 사용 기간을 제공하지 않았더라도, 보안 정책 상 기본으로 설정된 기간이 속성 값으로 제공될 수 있다. 이러한 경우, 병합 대상 룰의 필수 속성 개수를 결정할 때 기본 값이 부여된 필수 속성을 포함하여 계수할 수도 있다. 이와 반대로, 기본 값이 null과 같이 의미가 없는 값으로 부여된 경우는 해당 속성을 제외하고 계수할 수도 있으며, 이는 구현 방식의 차이에 불과하다.
기 저장된 룰 중에서 속성의 개수가 동일한 룰을 1차 후보 룰로 선출한 뒤, 룰 병합 장치(200)의 후보 룰 선출부(230)는 추가로 병합 대상 룰의 속성과 선출된 후보 룰의 속성이 종류가 동일한지 비교를 수행하여 최종 후보 룰을 선출할 수 있다(S550). 실질적으로 병합 가능 여부를 판단하기 위해 수행되는 속성 관계 분석은 동일한 종류의 속성 간에 수행될 수 있기 때문이다. 이와 같이 본 발명에 따른 룰 병합 방법은 일차적으로 형식적 정합성 검증을 통해 기 저장된 룰 중에서 병합 가능성이 높은 후보 룰을 선출함으로써 룰 병합의 효율성을 향상시킬 수 있다.
한편, 본 발명에 따른 후보 룰을 선출 방법의 형식적 정합성 검증은 필수 속성의 개수 및 종류를 기준으로 하므로 선택 속성의 유무 및 선택 속성의 개수의 차이에 따라 병합 가능한 두 룰의 전체 속성의 개수는 달라질 수도 있음에 유의하여야 한다. 단, 모든 속성을 필수 속성으로 지정한 경우는 병합 가능한 두 룰의 전체 속성의 개수는 동일할 것이다.
다음으로 도 6 내지 도 13을 참조하여 룰 병합 장치(200)의 병합 가능성 판단부(250)가 룰 병합 여부를 판단하는 방법에 대하여 상세히 설명한다.
먼저, 설명의 편의를 위해 도 6 내지 도 8을 참고하여 룰의 병합이 가능한 경우와 불가능한 경우의 예에 대하여 설명한다. 도 6a는 방화벽(170)에 적용될 수 있는 룰의 예시도이고, 도 6b는 도 6a에 도시된 룰을 룰 공간(Rule Space)으로 매핑한 도면이다.
도 6a에 도시된 룰은 송신지 주소가 '202.131.30.*' 이고 HTTP 포트인 '80'번 포트로부터 들어오는 모든 패킷을 '거부'하는 룰을 보여주고 있다. 실제로 방화벽 시스템에 적용되는 룰을 훨씬 더 복잡할 수 있으나, 설명의 편의를 위해 액션 속성을 제외하고 두 개의 속성만이 존재한다고 가정한다.
복수의 속성을 갖는 룰은 각 속성을 하나의 축으로 하는 룰 공간으로 매핑될 수 있다. 상기 룰 공간은 룰의 속성의 개수만큼의 차원을 갖는 공간으로 룰 공간에 도시된 도형은 룰이 적용되는 범위를 나타낸다.
도 6a에 도시된 룰은 액션 속성을 제외하고 두 개의 속성을 갖고 있으므로, 도 6b에 도시된 바와 같이 2 차원으로 이루어진 룰 공간에 매핑될 수 있다. 보다 자세히 말하면, 송신지 주소의 속성이 X 축이고 송신지 포트가 Y 축이라고 할 때 도 6a에 도시된 룰의 송신지 주소는 '202.131.30.*' 이므로 '202.131.30.1' 부터 '202.131.30.255' 에 대응되는 좌표 값에 매핑될 수 있고, 송신지 포트의 값은 '80' 이므로 Y 축에 '80' 에 대응되는 좌표에 매핑되어 직사각형 영역을 형성할 수 있다. 상기 직사각형 영역이 도 6a에 도시된 룰이 적용되는 범위를 의미한다.
도 7a 내지 도 7g는 룰 공간을 활용하여 룰 병합이 가능한 다양한 경우를 도시하고 있다. 설명의 편의를 위해 7a 내지 도 7g의 룰도 액션 속성을 제외하고 두 개의 속성을 갖는다고 가정하였으며, 도 6b에 도시된 2 차원 좌표계는 생략하고 도시하였다. 도 7a 내지 도 7g에 도시된 각 사각형 영역은 룰이 적용되는 영역을 의미하고 빗금 친 부분은 병합 대상 룰과 후보 룰이 서로 중첩되는 영역을 의미한다. 또한, 왼편의 사각형은 병합 대상 룰 및 후보 룰을 의미하고 오른편의 사각형은 병합된 룰을 의미한다.
먼저, 도 7a는 병합 대상 룰과 후보 룰의 적용 범위가 완전히 일치하는 경우를 도시한다. 두 룰의 속성 간 상관 관계를 살펴보면, 두 룰의 적용 범위가 완전히 일치하는 경우는 두 룰을 구성하는 각 속성 값의 범위가 동일한 관계에 있는 경우를 의미한다. 도 7a에 도시된 경우, 두 룰의 적용 범위가 일치하므로 오른편에 도시된 바와 같이 병합 대상 룰 또는 후보 룰을 삭제함으로써 간단하게 병합이 가능하다.
다음으로, 도 7b, 도 7c 및 도 7d에 도시된 경우는 병합 대상 룰의 적용 범위가 후보 룰의 적용 범위에 포함되거나 그 반대의 경우를 도시한다. 두 룰의 속성 간 상관 관계를 살펴보면, 도 7b 및 도 7c에 도시된 경우는 병합 대상 룰의 속성 값의 범위가 후보 룰의 속성 값의 범위에 완전히 포함되는 관계에 있는 경우이고, 도 7d의 경우 병합 대상 룰의 속성 중 하나의 속성 값의 범위는 동일한 관계에 있으나 다른 속성 값의 범위는 후보 룰의 속성 값의 범위에 포함되는 관계에 있는 경우이다. 도 7b, 도 7c 및 도 7d에 도시된 경우도 룰의 적용 범위가 더 작은 룰을 삭제함으로써 병합 대상 룰과 후보 룰의 병합이 가능하다.
도 7e 및 도 7f에 도시된 경우는 병합 대상 룰의 적용 범위가 서로 연속되는 경우를 도시한다. 자세히 말하면, 둘 룰의 속성 중 하나의 속성 값의 범위는 동일한 관계에 있으나 다른 속성 값의 범위는 후보 룰의 속성 값과 연속되는 관계에 있는 경우를 의미한다. 도 7e 및 도 7f에 도시된 경우는 두 룰의 적용 범위를 모두 포함할 수 있도록 후보 룰의 속성 값을 갱신하거나 새로운 룰을 정의하고 나머지 룰을 삭제함으로써 병합이 가능하다.
마지막으로 도 7g는 병합 대상 룰의 적용 범위와 후보 룰의 적용 범위가 일부 중첩되는 경우를 도시한다. 즉, 병합 대상 룰의 속성 중 하나의 속성 값의 범위는 동일한 관계에 있으나 다른 속성 값의 범위가 후보 룰의 속성 값의 범위와 중첩되는 관계에 있는 경우를 의미한다. 도 7g에 도시된 경우 또한 도 7e 및 도 7f과 같은 방식으로 병합이 가능하다.
다음으로 도 8a 내지 도 8d를 참조하여 병합이 불가능한 경우를 설명한다.
도 8a 내지 도 8d의 경우 또한 빗금 친 부분은 룰의 적용 범위가 중첩되는 영역을 의미하고, 왼편의 사각형 영역은 병합 대상 룰 및 후보 룰이 적용되는 영역을 의미하고 오른편의 사각형 영역은 병합되는 경우 생성되는 룰이 적용되는 영역을 의미한다. 또한, 음영 처리된 부분은 병합 대상 룰과 후보 룰의 적용 범위에 포함되지 않았으나 병합된 룰의 적용 범위에는 포함되는 영역을 의미한다.
특히, 음영 처리된 영역은 잠재적 보안 결합을 의미하거나 시스템의 사용에 과도한 제한이 있음을 의미할 수 있다. 자세히 말하면, 병합 대상 룰과 후보 룰의 액션 속성이 '허용(Allow)'인 경우 병합된 룰은 음영 처리된 영역에 해당하는 패킷까지 허용하기 때문에 병합된 룰을 적용한 방화벽 시스템의 경우 잠재적인 보안 결합이 발생할 수 있다. 이와 반대로, 병합 대상 룰과 후보 룰의 액션 속성이 '거부(Deny)'인 경우 병합된 룰은 음영 처리된 영역에 해당하는 패킷까지 거부하므로 병합된 룰을 적용한 방화벽 시스템은 허용되어야 하는 패킷까지 거부하게 되어 시스템 이용에 문제가 발생할 수 있다. 따라서, 병합된 룰에 상기 음영 처리된 영역이 나타나는 경우는 두 룰의 병합이 원칙적으로 불가능한 경우를 의미한다.
도 8a를 참조하면, 도 8a는 병합 대상 룰과 후보 룰의 적용 범위가 상이한 경우를 도시한다. 두 룰의 속성 간 상관 관계를 살펴보면, 두 룰의 속성 중 1 개의 속성 값의 범위는 동일 또는 포함하는 관계 등에 있으나 다른 속성 값의 범위는 서로 상이한 관계에 있는 경우이다. 이와 같은 경우는 병합된 룰에서 음영 처리된 영역이 나타나므로 병합 대상 룰과 후보 룰의 병합이 수행될 수 없다.
다음으로 도 8b 및 도 8c는 병합 대상 룰과 후보 룰의 적용 범위가 일부 중첩되는 경우를 도시한다. 두 룰의 속성 별 관계를 살펴보면, 도 8b의 경우 병합 대상 룰의 속성 중 하나의 속성 값의 범위는 후보 룰의 속성 값의 범위에 포함되는 관계에 있고, 다른 속성 값의 범위는 후보 룰의 속성 값의 범위를 포함하는 관계에 있는 경우이다. 그러나 도 8c의 경우는 병합 대상 룰의 속성 값의 범위와 후보 룰의 속성 값의 범위 모두 일부 중첩되는 관계에 있는 경우이다. 도 8b 및 도 8c에 도시된 경우 또한 병합된 룰에서 음영 처리된 영역이 나타나므로 룰의 병합이 수행될 수 없다.
마지막으로 도 8d는 병합 대상 룰과 후보 룰의 범위가 연속되는 경우를 도시한다. 그러나, 속성 별 관계를 살펴보면 병합 대상 룰의 속성 중 하나의 속성 값의 범위는 후보 룰의 속성 값을 포함하는 관계에 있고, 다른 속성 값의 범위는 후보 룰의 속성 값과 연속되는 관계에 있다. 이와 같은 경우도 병합된 룰에서 음영 처리된 영역이 나타나므로 병합이 수행될 수 없다.
지금까지 도 6 내지 도 8에 도시된 룰 공간을 활용하여 병합 대상 룰과 후보 룰의 병합이 가능한 경우와 불가능한 경우에 대하여 설명하였다. 도 7 및 도 8에 도시된 룰 공간은 병합 대상 룰과 후보 룰의 병합이 가능한 경우 및 병합 가능 여부에 대한 판단 방법을 암시한다. 다시 말하면, 도 7 및 도 8을 통해 병합 대상 룰과 후보 룰이 병합 가능한 경우는 두 룰의 적용 범위가 동일하거나 포함되는 경우 서로 연속되는 경우인 것을 알 수 있으며, 병합 가능한 경우에 해당하는지는 병합 대상 룰과 후보 룰의 속성 관계를 분석하여 판단할 수 있음을 알 수 있다. 또한, 룰 공간에서 병합 대상 룰과 후보 룰이 병합 가능한 경우에 속하기 위해서는 두 룰의 속성 값의 범위가 동일하거나, 일부 중첩하거나, 연속되거나, 어느 한쪽에 포함되는 관계를 가져야 함을 알 수 있다.
상술한 내용을 전제로 이하 도 9 내지 도 11을 참조하여 병합 가능 여부 판단에 대한 보다 정제된 방법에 대하여 설명한다.
도 9를 참조하면, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 병합 대상 룰의 속성과 대응되는 후보 룰의 속성으로 구성된 속성 쌍의 속성 관계를 기 정의된 속성 관계 기반으로 분석한다(S910). 즉, 병합 가능성 판단부(350)는 보다 정확하게 병합 가능 여부를 판단하기 위해 속성 레벨에서 병합 대상 룰과 선출된 후보 룰의 관계를 분석한다. 이하, 설명의 편의를 위해 병합 대상 룰은 M 개의 필수 속성을 갖는다고 가정한다. 선출된 후보 룰은 동일한 속성 개수를 갖는 룰이 선출되므로 후보 룰의 필수 속성 개수 또한 M 개가 된다.
상기 정의된 속성 관계는 확장 관계(Extended Relation), 동일 관계(Equivalent Relation), 포함되는 관계(Included Relation) 및 포함하는 관계(Inclusive Relation)를 포함할 수 있다. 위 4 가지 속성 관계는 도 7 및 도 8에 도시된 경우를 종합하여 추출된 것으로 병합 가능 여부를 판단하는데 이용될 수 있는 기본적인 속성 관계를 나열한 것이다. 예를 들어, 도 7d에 도시된 경우는 1 개의 속성 쌍은 동일 관계를 갖고 병합 대상 룰 기준으로 다른 1 개의 속성 쌍은 포함되는 관계를 갖는다. 또한 도 7g에 도시된 경우는 1 개의 속성 쌍은 동일 관계를 갖고 1 개의 속성 쌍은 확장 관계를 갖는다.
각 속성 관계에 대하여 부연 설명하면, 확장 관계는 룰의 속성 값이 범위 또는 영역으로 표현 가능한 경우 병합 대상 룰의 속성 값의 범위와 후보 룰의 속성 값의 범위가 부분적으로 중첩되거나 연속되는 관계를 의미한다. 예를 들어, 사용 기간 속성이 사용 신청일부터 만료일까지의 기간으로 표현된다고 가정할 때, 후보 룰의 사용 기간이 '2016. 07. 01 ~ 2016. 07. 08' 일이고 병합 대상 룰의 사용 기간이 '2016. 07. 07 ~ 2016. 07. 14' 일인 경우, 두 룰의 사용 기간 속성 쌍은 '2016. 07. 07 ~ 2016. 07. 08' 일 기간이 부분적으로 중첩되므로 확장 관계를 갖게 된다.
동일 관계는 병합 대상 룰의 속성 값과 후보 룰의 속성 값이 동일한 관계를 의미하고, 상기 동일 관계는 그 특성상 속성 값이 범위 또는 영역으로 표현되지 않는 경우에도 성립될 수 있다.
포함되는 관계는 룰의 속성 값이 범위 또는 영역으로 표현 가능한 경우 기준이 되는 속성 값이 비교 대상이 되는 룰의 속성 값에 포함되는 경우를 의미한다. 사용 기간 속성에 대한 예를 다시 들면, 후보 룰의 사용 기간 값이 '2016. 07. 01 ~ 2016. 07. 08' 일까지이고 병합 대상 룰의 사용 기간이 '2016. 07. 01 ~ 2016. 07. 14' 일인 경우, 후보 룰을 기준으로 후보 룰의 사용 기간은 병합 대상 룰의 사용 기간에 포함된다. 따라서 두 룰의 사용 기간 속성 쌍은 포함되는 관계를 갖게 된다. 단, 기준 속성을 병합 대상 룰로 변경하는 경우는 두 룰의 사용 기간 속성 쌍은 포함하는 관계를 갖는다고 볼 수 있다.
마지막으로, 포함하는 관계는 포함되는 관계와 반대의 경우로 룰의 속성 값이 범위 또는 영역으로 표현 가능한 경우 기준이 되는 속성 값이 비교 대상이 되는 룰의 속성 값을 포함하는 경우를 의미한다.
포함되는 관계 이외에 포함하는 관계를 추가로 정의한 이유는 룰이 복수의 속성을 가질 수 있기 때문이다. 즉, 병합이 가능한 경우 중 하나로 병합 대상 룰이 후보 룰에 완전히 포함되는 경우를 판단할 때 두 룰이 하나의 속성만으로 이루어진 경우, 어느 룰을 기준으로 포함 여부를 판단하더라도 하나의 룰은 다른 룰에 포함되게 된다. 그러나, 도 8b에 도시된 경우와 같이 복수의 속성을 가진 룰 사이에서 병합 대상 룰의 속성 중 일부는 후보 룰의 속성 값의 범위에 포함되고, 병합 대상 룰의 속성 중 다른 일부는 후보 룰의 속성 값의 범위를 포함하는 경우는 병합 대상 룰이 후보 룰을 완전히 포함하거나 포함되는 경우가 아니므로 포함하는 관계와 포함되는 관계를 구분할 필요가 있다. 포함하는 관계 및 포함되는 관계를 판단함에 있어서는 기준 룰을 병합 대상 룰 또는 후보 룰 중 하나로 고정하여 판단하여야 함에 유의해야 한다.
정리하면, 기 정의된 속성 관계 기반으로 두 룰의 속성 관계를 분석하는 단계(S910)는 두 룰의 속성 관계가 확장 관계, 동일 관계, 포함하는 관계 및 포함되는 관계에 해당되는지 분석한다. 본 발명에서 제시하는 4 가지 속성 관계는 속성 값의 범위가 범위 또는 영역으로 표현되는 경우 속성의 다양성에 관계없이 공통으로 정의될 수 있는 속성 관계이다. 따라서 본 발명에 따른 룰 병합 방법은 다양한 속성을 가진 룰 기반으로 동작하는 다양한 장치 또는 시스템에 범용적으로 적용될 수 있다.
병합 대상 룰과 후보 룰의 속성 관계를 기 정의된 속성 관계 기반으로 분석한 뒤, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 정의된 속성 관계를 갖는 속성 쌍의 개수를 합산한다(S930). 다시 말하면, 병합 대상 룰과 후보 룰에 대하여 확장 관계, 동일 관계, 포함하는 관계 및 포함되는 관계를 갖는 속성 쌍의 수를 각 속성 관계 별로 합산한다. 구현 방식에 따라, 상기 속성 쌍의 개수를 합산하는 단계(S930)는 상기 상관 관계를 분석하는 단계(S910)와 동시 또는 이시에 수행될 수 있다.
속성 쌍의 개수를 합산 한 다음 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 정의된 속성 관계를 갖는 속성 쌍의 개수의 합(Ex_CNT + Eq_CNT + S_CNT + D_CNT)이 병합 대상 룰의 속성의 개수 M 과 동일한지 비교한다(S950). 여기서, Ex_CNT, Eq_CNT, S_CNT 및 D_CNT는 각각 확장 관계, 동일 관계, 포함하는 관계 및 포함되는 관계를 갖는 속성 쌍의 개수를 의미한다. 병합 대상 룰과 후보 룰의 각 속성 쌍 중 하나라도 기 정의된 속성 관계를 갖지 않는 경우는 병합이 불가능하기 때문이다. 참고로, 상기 비교 단계(S950) 또한 속성 쌍의 개수를 합산하는 단계(S930)와 동시 또는 이시에 수행될 수 있으며, 이는 구현 방식의 차이에 불과하다.
병합 대상 룰과 후보 룰이 모두 기 정의된 속성 관계를 갖는 경우, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 합산된 속성 쌍의 개수 기반으로 병합 대상 룰과 후보 룰이 병합 가능한 경우에 해당하는지 판단하고(S970), 병합이 가능한 경우 룰 병합 장치(200)의 룰 병합부(370)는 병합 대상 룰과 후보 룰의 병합을 수행한다. 병합 가능한 경우에 해당하는지 판단하는 단계(S970) 에 대한 자세한 설명은 이하 도 10 내지 도 11을 참조하여 후술한다.
도 10a 및 도 10b는 속성 관계 기반으로 병합 가능 여부를 판단하는 기본 방법을 도시한다.
도 7e 내지 도 7f, 도 8c 및 도 8d를 참조하면, 병합 가능한 경우를 도시하는 도 7e 내지 도 7f에 도시된 경우는 병합 대상 룰과 후보 룰의 1 개의 속성 쌍이 확장 관계를 갖고 다른 모든 속성 쌍이 동일 관계를 갖는 경우 병합이 가능하다는 것을 보여 준다. 이와 반대로, 병합이 불가능한 8c 및 도 8d에 도시된 경우는 병합 대상 룰과 후보 룰의 1 개의 속성 쌍이 확장 관계를 갖고, 다른 속성 쌍이 동일 관계를 제외한 속성 관계를 갖는 경우는 병합이 불가능하다는 것을 보여준다. 이와 같은 사실로부터 확장 관계를 갖는 병합 대상 룰과 후보 룰의 속성 쌍의 개수가 1 보다 큰 경우는 병합이 불가능하다고 판단할 수 있다(S1010).
또한, 병합 가능한 경우를 도시하는 도 7a 및 도 7d를 참조하면, 병합 대상 룰과 후보 룰의 일부 속성 쌍이 동일 관계를 갖는 경우, 나머지 속성 쌍은 모두 포함하는 관계 또는 포함되는 관계를 가져야 병합이 가능한 것을 알 수 있다. 또는, 동일 관계를 갖는 속성 쌍이 없더라도, 모든 속성 쌍이 포함하는 관계 또는 포함되는 관계를 갖는 경우 병합이 가능한 것을 알 수 있다. 따라서, 병합 가능성 판단부(350)는 먼저 동일 관계를 갖는 속성 쌍의 개수를 파악하고(S1030), 동일 관계를 제외한 속성 관계를 갖는 속성 쌍 전부가 포함되는 관계 또는 포함하는 관계를 갖는지 확인하여 병합 가능 여부를 판단할 수 있다(S1050).
이하, 도 11a 및 11b를 참조하여 속성 관계 기반으로 병합 가능 여부를 판단하는 보다 정제된 방법에 대하여 설명한다.
도 7에 도시된 병합 가능한 경우를 속성 관계 기반으로 분석하면 병합 가능한 경우를 총 4 가지로 분류할 수 있다. 먼저 병합 대상 룰의 필수 속성의 개수가 1 개인 경우와 복수인 경우로 나눌 수 있고, 복수의 필수 속성을 포함하는 룰의 경우 다시 3 가지 경우로 분류할 수 있다.
먼저, 첫 번째 경우는 병합 대상 룰과 후보 룰이 1 개의 필수 속성(M = 1)을 갖는 경우이다. 이 경우는 병합 대상 룰과 후보 룰의 속성 관계가 기 정의된 속성 관계 중 어느 한 가지를 갖기만 하면 병합이 가능하다. 두 룰의 필수 속성의 개수가 1 개인 경우 기 정의된 속성 관계 중 어느 한 가지에 해당된다면 룰 공간에서 두 룰의 적용 범위는 동일하거나, 어느 한 쪽에 포함되거나, 일부가 중첩되거나, 연속되기 때문이다.
두 번째 경우는 병합 대상 룰이 복수의 필수 속성(M >= 2)을 갖고 모든 속성 쌍이 확장 관계를 제외한 속성 관계를 갖는 경우이다. 전술한 바와 같이 확장 관계를 갖는 속성 쌍의 개수가 1 보다 큰 경우는 병합이 불가능하고, 모든 속성 쌍이 동일 관계, 포함하는 관계 또는 포함되는 관계를 갖는 경우 룰 공간에서 두 룰의 적용 범위는 동일하거나 어느 한 쪽에 포함되기 때문이다.
세 번째 경우는 병합 대상 룰이 복수의 필수 속성(M >= 2)을 갖고 M-1 개의 속성 쌍이 동일 관계를 갖고 나머지 1 개의 속성 쌍은 기 정의된 속성 쌍 중 하나를 갖는 경우이다. 만약 나머지 1 개의 속성 쌍도 동일 관계라면 두 번째 경우에 해당한다고 볼 수 있다.
네 번째 경우는 병합 대상 룰이 복수의 필수 속성(M >= 2)을 갖고 동일 관계를 갖는 속성 쌍의 개수가 N 인 경우, M-N 개의 속성 쌍이 포함하는 관계 또는 포함되는 관계를 갖는 경우이다. 이 경우 또한, 룰 공간에서 두 룰의 적용 범위가 어느 한 쪽을 포함하는 관계가 되므로 병합이 가능하다.
도 11a 및 도 11b는 전술한 4 가지 경우에 해당하는지 여부를 판단하는 방법의 순서도이다.
도 11a를 참조하면, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 병합 대상 룰의 필수 속성의 개수 M이 1인 경우 병합 가능한 첫 번째 경우에 해당하므로 병합이 가능하다고 판단할 수 있다(S1110). 여기서, 병합 대상 룰과 후보 룰의 속성 쌍이 기 정의된 속성 관계를 갖는지 판단하지 않은 이유는 S950 단계에서 이미 모든 속성 쌍이 기 정의된 속성 관계를 갖는지 판단하였으므로 중복된 판단을 배제한 것이다.
다음으로 도 11b를 참조하면, 복수의 필수 속성을 갖는 경우 룰 병합 장치(200)의 병합 가능성 판단부(350)는 확장 관계를 제외한 속성 관계를 갖는 각 속성 쌍의 개수(Eq_CNT, S_CNT, D_CNT)가 병합 대상 룰의 필수 속성의 개수 M 과 같은지 확인하여 두 번째 병합 가능한 경우에 해당하는지 판단할 수 있다(S1130).
두 번째 경우에도 해당하지 않는 경우, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 동일 관계를 갖는 속성 쌍의 개수가 M-1 개에 해당하는지 판단하여 세 번째 병합 가능한 경우에 해당하는지 판단할 수 있다(S1150). 나머지 속성 쌍이 기 정의된 속성 관계를 갖는지 판단하지 않은 이유는 S950 단계에서 이미 모든 속성 쌍이 기 정의된 속성 관계를 갖는지 판단하였기 때문이다.
세 번째 경우에도 해당하지 않는 경우, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 동일 관계를 갖는 속성 쌍의 개수가 N(1<= N < M)일 때 동일 관계를 갖지 않는 나머지 M-N 개의 속성 쌍이 포함하는 관계 및 포함되는 관계를 갖는지 확인하여 네 번째 병합 가능한 경우에 해당하는지 판단할 수 있다(S1170). 또한, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 위 4 가지 경우에 포함되지 않는 경우 병합 대상 룰과 후보 룰은 최종적으로 병합이 불가능하다고 판단할 수 있다.
한편, 병합 가능성 판단부(350)는 기 정의된 속성 관계를 갖는 속성 쌍의 개수 외에도 다른 요인을 이용하여 병합 가능 여부를 판단할 수 있다. 예를 들어, 병합 가능성 판단부(350)는 기 정의된 속성 관계를 갖는 속성 쌍의 개수 외에도 속성 쌍이 갖는 속성 관계의 종류를 이용하여 병합 가능 여부를 판단할 수 있다.
속성 관계의 종류를 이용하는 경우를 부연하여 설명하면, 병합 가능성 판단부(350)는 먼저 모든 속성 쌍이 기 정의된 속성 관계를 갖는지 판단하고, 도출된 속성 관계의 종류가 3 이상인 경우는 병합이 불가능하다고 판단할 수 있다. 또한 도출된 속성 관계의 종류가 1 인 경우, 병합 가능성 판단부(350)는 확장 관계가 아닌 경우 병합이 가능하다고 판단하고, 도출된 속성 관계가 확장 관계인 경우는 병합 대상 룰의 필수 속성의 개수가 1인 경우만 병합이 가능하다고 판단할 수 있다.
마지막으로 속성 관계의 종류가 2 인 경우, 병합 가능성 판단부(350)는 동일 관계가 도출되지 않은 경우는 병합이 불가능하다고 판단하고, 동일 관계와 포함하는 관계 또는 포함되는 관계가 도출된 경우는 병합이 가능하다고 판단할 수 있다. 또한, 동일 관계와 확장 관계가 도출된 경우는 확장 관계를 갖는 속성 쌍의 수가 1 개인 경우만 병합이 가능하다고 판단할 수 있다. 이와 같이 룰 병합 장치(200)의 병합 가능성 판단부(350)는 속성 쌍의 개수 외에도 속성 관계의 종류라는 다른 요인을 추가적으로 고려하여 병합 가능 여부를 판단할 수 있다.
지금까지, 룰 병합 장치(200)의 병합 가능성 판단부(350)가 합산된 속성 쌍의 개수를 이용하여 병합 대상 룰과 후보 룰이 병합 가능한지 판단하는 방법에 대하여 설명하였다. 상술한 방법에 따르면, 병합 가능성 판단부(350)는 병합 대상 룰과 후보 룰의 병합 가능 여부를 기 정의된 속성 관계 기반으로 속성 레벨에서 판단함으로써 두 룰의 병합 가능성을 보다 정확하게 판단할 수 있다.
다음으로, 도 12 및 도 13을 참고하여 상술한 속성 관계 분석 단계(S910), 속성 쌍의 개수 합산 단계(S930), 속성 쌍의 개수와 병합 대상 룰의 속성 개수 비교 단계(S950) 및 병합 가능한 경우에 해당하는지 판단하는 단계(S970)를 수행하는 의사코드(Pseudo-code)를 설명한다.
먼저, 도 12를 참조하면, 카운트 변수(Ex_CNT, Eq_CNT, S_CNT, D_CNT)는 각각 확장 관계, 동일 관계, 포함하는 관계 및 포함되는 관계를 갖는 속성 쌍의 개수를 산출하는 변수이다. 의사 코드에서 변수(Ex_CNT, Eq_CNT, S_CNT, D_CNT)는 정확한 계수를 위해 0 으로 초기화된다. 또한 병합 대상 룰(R)과 후보 룰(R')의 각 속성 쌍에 대하여 확장 관계(Extended), 동일 관계(Equivalent), 포함하는 관계(Inclusive) 및 포함되는 관계(Included)에 해당하는지 판단하고 각 속성 관계를 갖는 속성 쌍의 개수를 합산하기 위해 조건문인 IF 구문과 반복문인 FOR 구문이 활용된다. 병합 대상 룰과 후보 룰의 속성 쌍의 개수는 FOR 구문 내에서 카운트 변수를 이용하여 합산될 수 있고, 4 가지 속성 관계를 갖지 않는 속성 쌍이 하나라도 있는 경우는 병합이 불가능하다는 결과 메시지를 출력하고 반복문을 종료할 수 있다.
다음으로 도 13의 의사코드는 병합 가능한 경우에 해당하는지 판별하는 코드이다. 상기 의사코드는 IF 구문을 활용하여 병합 가능한 4 가지 경우에 해당하는지 검사한 뒤, 4 가지 경우 중 어느 하나의 경우에 해당하는 경우 플래그 변수(Opt_flag)를 설정한다. 또한, 상기 의사코드는 IF 구문을 활용하여 플래그 변수(Opt_flag)의 값이 참인 경우 룰의 병합을 수행한다.
지금까지 도 12 및 도 13은 속성 쌍의 개수를 합산하고 병합 가능 여부를 판단하는 단계에 대한 의사코드를 설명하였다. 단, 도 12 및 도 13에 도시된 의사 코드는 본 발명의 개념을 구체화한 하나의 구현 예에 불과하며, 본 발명의 개념은 다양한 방식으로 구현될 수 있음에 유의해야 한다.
지금까지 도 4 내지 도 13을 참고하여 본 발명에 따른 룰 병합 방법에 대하여 설명하였다. 이하, 본 발명에 따른 룰 병합 방법 및 장치의 다양한 실시예에 대하여 설명한다.
먼저, 도 14는 본 발명에 따른 룰 병합 방법을 이용하여 연속적으로 병합을 수행하는 실시예를 도시한다.
도 14를 참조하면, 도 14의 사각형(1400, 1401, 1411, 1421) 영역은 룰 공간에 매핑된 룰의 적용 범위를 의미한다. 먼저 룰(1400)이 병합 대상 룰이라고 가정할 때, 본 발명에 따른 룰 병합 방법을 이용하면 룰(1401)과 병합이 수행될 수 있다. 룰(1400)과 룰(1401)이 병합되면 룰(1410)이 생성되고, 병합된 룰(1410)은 본 발명에 따른 룰 병합 방법을 다시 수행하여 룰(1411)과 병합될 수 있다.
참고로, 룰 병합 장치(200)의 후보 룰 선출부(330)가 룰(1400)과 룰(1401)의 병합 과정에서 복수의 룰을 후보 룰로 선출하는 경우 룰(1410)과 병합 가능한 룰(1411)을 찾기 위해서 다시 후보 룰을 선출하는 과정을 수행하지 않을 수 있다. 왜냐하면 병합된 룰(1410)은 병합 대상 룰(1400)과 필수 속성의 개수 및 필수 속성의 종류가 동일하므로 이전 병합 과정에서 복수의 후보 룰을 선출하는 경우 상기 복수의 후보 룰에 포함될 수 있기 때문이다. 즉, 룰 병합 장치(200)의 후보 룰 선출부(330)는 이전 병합 단계에서 선출한 복수의 후보 룰을 다음 병합 단계에서 재활용하여 연속적인 병합을 보다 효율적으로 수행할 수 있다.
룰(1410)과 룰(1411)이 병합되면 룰(1420)이 생성되면, 병합된 룰(1420)과 룰(1421)을 다시 병합하여 최종적으로 룰(1430)을 생성할 수 있다. 이와 같이, 룰 병합 장치(200)는 본 발명에 따른 룰 병합 방법을 연속적으로 수행하여 룰의 개수를 효과적으로 줄일 수 있다.
다음으로 도 15a 내지 도 15c를 참조하여 속성 값의 오차 범위를 이용하여 속성 관계 판단의 엄격도를 완화함으로써 룰 병합의 효율을 향상시키는 방법에 대하여 설명한다.
도 15a 내지 도 15c에서 사각형 영역은 룰 공간에 도시된 병합 대상 룰과 후보 룰 및 병합된 룰의 적용 범위를 의미하고, 빗금 친 영역은 병합 대상 룰과 후보 룰의 적용 범위가 중첩되는 영역을 의미한다. 또한, 왼편에 도시된 화살표는 허용되는 오차 범위를 의미한다. 설명의 편의를 위해, 각 룰은 2 개의 필수 속성으로 구성된다고 가정한다.
전술한 룰 병합 방법의 속성 관계 분석 방법에 의하면, 기 정의된 속성 관계인 동일 관계, 확장 관계, 포함되는 관계 및 포함하는 관계는 판단 기준이 매우 엄격하다. 여기서 판단 기준이 엄격하다는 것은 도 8a 내지 도 8d에 도시된 바와 같이 병합되는 경우 잠재적 보안 결함이 발생할 수 있는 음영 영역을 허용하지 않는다는 것을 의미한다. 그러나, 때로는 잠재적 보안 결함이 전반적인 보안 수준에 큰 영향을 미치지 않는 경우가 있을 수 있다. 따라서, 본 발명에 따른 룰 병합 방법은 오차 범위를 반영하여 두 룰의 속성 관계를 판단함으로써 속성 관계 판단 기준의 엄격도를 완화할 수 있다.
먼저, 도 15a를 참조하면, 왼편에 도시된 병합 대상 룰과 후보 룰의 2 개의 속성 쌍은 1 개의 동일 관계만을 갖는다. 따라서 속성 관계를 엄격하게 판단하는 경우 병합 대상 룰과 후보 룰은 병합될 수 없는 경우로 판단된다. 그러나, 중간에 도시된 바와 같이 오차 범위를 반영하여 병합 대상 룰의 속성 값의 범위를 확장하는 경우 병합 대상 룰과 후보 룰은 1 개의 동일 관계와 1 개의 확장 관계를 가지므로, 병합이 가능한 세 번째 경우에 해당할 수 있다. 따라서, 오른편에 도시된 바와 같이 룰 병합 장치(200)의 룰 병합부(370)는 병합 대상 룰과 후보 룰을 하나의 룰로 병합할 수 있다.
여기서, 상기 오차 범위는 보안 관리자가 보안 수준과 방화벽의 성능을 고려하여 설정된 값이 될 수 있다. 예를 들어, 기업 인트라넷을 관리하는 관리자는 인트라넷 환경을 고려하여 병합 대상 룰의 사용 기간 속성 값과 후보 룰의 사용 기간 속성 값이 일주일 차이가 나더라도 두 룰의 병합이 전체 보안 수준에 큰 위협이 되지 않는다고 판단할 수 있다. 이러한 경우 관리자는 사용 기간 속성의 오차 범위를 일주일로 설정할 수 있다. 이와 반대로, 관리자는 룰의 송신지 주소 속성은 약간의 차이만 있더라도 실제 송신지가 달라지는 것이므로 보안 수준에 위협이 된다고 판단할 수 있다. 이러한 경우 상기 관리자는 송신지 주소 속성의 오차 범위를 0으로 설정하여 잠재적 보안 위협이 발생하지 않도록 할 수 있다.
다음으로, 도 15b를 참조하면, 왼편에 도시된 병합 대상 룰과 후보 룰의 속성 쌍은 병합 대상 룰 기준으로 1 개의 포함하는 관계와 1 개의 포함되는 관계를 갖기 때문에 병합이 불가능하다. 그러나, 중간에 도시된 바와 같이 오차 범위를 반영하여 병합 대상 룰의 속성 값의 범위를 확장하는 경우 병합 대상 룰과 후보 룰의 속성 쌍은 2 개의 포함하는 관계를 가질 수 있다. 따라서, 병합 대상 룰과 후보 룰은 병합 가능한 두 번째 경우에 해당하여 오른편에 도시된 바와 같이 병합될 수 있다.
마지막으로, 도 15c를 참조하면, 왼편에 도시된 병합 대상 룰과 후보 룰의 속성 쌍은 병합 대상 룰 기준으로 1 개의 확장 관계와 1 개의 포함하는 관계를 갖기 때문에 병합이 불가능하다. 그러나, 중간에 도시된 바와 같이 오차 범위를 반영하여 후보 룰의 속성 값의 범위를 확장하는 경우 병합 대상 룰과 후보 룰의 속성 쌍은 1 개의 확장 관계와 1개의 동일 관계를 가질 수 있다. 따라서, 병합 대상 룰과 후보 룰은 병합 가능한 세 번째 경우에 해당하여 오른편에 도시된 바와 같이 병합될 수 있다.
이외에도, 병합 가능성 판단부(350)는 동일 관계의 오차 범위를 조절하여 확장 관계를 갖는 속성 쌍이 동일 관계를 갖는 것으로 판단하여 병합 가능성을 증가시킬 수도 있다. 예를 들어, 기업 내 사용자가 7일 이내에 복수의 룰을 신청한 경우, 사용 기간 속성의 값은 사용 신청일이 시작일로 설정될 수 있으므로 확장 관계를 갖게 된다. 이때, 동일 관계의 오차 범위가 7일로 신청된 경우 병합 가능성 판단부(350)는 상기 복수의 룰에 대해 사용 기간 속성 쌍은 동일 관계를 갖는다고 판단할 수 있다. 이 경우, 다른 속성 쌍이 확장 관계를 갖더라도 병합이 가능할 수 있기 때문에 병합 가능성이 증가될 수 있으며, 7일 이내에 신청된 복수의 룰은 방화벽에서 최적화될 수 있다.
또는, 사용 신청일 다르나 사용 만료일이 같은 룰에 대하여도, 병합 가능성 판단부(350)는 오차 범위를 고려하여 사용 기간 속성이 동일 관계를 갖는 것으로 판단하여 병합 가능성을 증가시킬 수도 있다. 이 경우, 사용 만료일이 같은 복수의 룰이 방화벽에서 최적화될 수 있다.
한편, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 저장된 룰의 개수를 기반으로 오차 범위를 조정할 수 있다. 오차 범위가 커질수록 룰 병합의 효율이 향상되어 저장된 룰의 개수를 더 줄일 수 있기 때문이다. 자세히 말하면, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 저장된 룰의 개수가 많을수록 오차 범위가 넓게 설정되도록 오차 범위를 조정하고, 넓게 설정된 오차 범위를 반영하여 병합 대상 룰과 후보 룰의 속성 쌍이 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는지 판정할 수 있다. 즉, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 저장된 룰의 개수에 따라 오차 범위를 조절함으로써 적정한 룰의 개수가 유지되도록 동작할 수 있다. 이와 반대로, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 기 저장된 룰의 개수가 적어질수록 오차 범위를 더 좁게 설정할 수도 있다.
참고로, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 상술한 바와 같이 동일한 속성에 대해 오차 범위를 설정하여 속성 관계를 판단하는 것 외에도 일부 필수 속성을 속성 관계 판단에서 배제함으로써 룰 병합의 효율을 향상시킬 수 있다. 예를 들어, 병합 대상 룰의 사용자, 사용 기간, 송신지 주소 및 액션 속성 값이 각각 '홍길동A', '2015. 07. 01 ~ 2016. 07. 01', '202.131.30.11' 및 '허용'이고, 대응되는 후보 룰의 속성 값이 '홍길동B', '2016. 07. 01 ~ 2017. 07. 01', '202.131.30.11' 및 '허용'이라고 하면, 사용자 속성 값이 상이하므로 두 룰은 병합될 수 없다. 그러나, 사용자 속성을 속성 관계 판단에서 배제하는 경우 병합 가능성 판단부(350)는 액션 속성 값이 동일하고, 송신지 주소 속성 쌍에 대해서는 동일 관계, 사용 기간 속성 쌍에 대해서는 확장 관계를 가지므로 병합 가능한 세 번째 경우에 해당하여 병합 가능하다고 판단할 수 있다.
즉, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 일부 필수 속성을 배제하고 속성 관계 판단을 수행함으로써 속성 관계 판단의 엄격도를 완화할 수 있다. 단, 병합 가능성 판단부(350)는 일부 필수 속성을 배제하는 것이 아니라, 일부 필수 속성 값이 상이하더라도 동일 관계, 포함하는 관계 또는 포함되는 관계 중 어느 하나의 관계를 갖는 것으로 판단하여 속성 관계 판단의 엄격도를 완화할 수 있으며, 이는 구현 방식의 차이에 불과하다.
지금까지 도 15a 내지 도 15c를 참조하여 속성 값의 오차 범위를 고려함으로써 속성 관계 판단의 엄격도를 완화하는 방법을 설명하였다. 상술한 엄격도 완화 방법에 따르면, 병합 가능한 병합 대상 룰과 후보 룰의 속성 관계를 유연하게 판단함으로써 엄격하게 속성 관계를 판단하는 경우 병합이 불가능한 일부 룰을 병합이 가능한 룰로 판단할 수 있다. 따라서, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 속성 관계 판단의 엄격도를 완화함으로써 룰 병합의 효율을 향상시킬 수 있다. 다음으로, 범위 또는 영역으로 표현되는 않는 속성에 대한 속성 관계 판단의 엄격도를 완화하는 방법을 도 16a 및 도 16b를 참조하여 설명한다.
본 발명에 따른 룰 병합 방법에서 룰의 속성 관계 분석은 전술한 바와 같이 동일 관계, 확장 관계, 포함하는 관계 및 포함되는 관계를 기준으로 판단한다. 여기서 확장 관계, 포함하는 관계 및 포함되는 관계는 '송신지 주소', '사용 기간'과 같이 룰의 속성의 값이 범위 또는 영역으로 표현되는 경우 형성될 수 있는 관계이다. 따라서, '사용자'와 같이 룰의 속성의 값이 범위 또는 영역으로 표현되지 않는 경우 동일 관계를 갖지 않는 두 룰의 속성 쌍은 기 정의된 속성 관계를 갖지 않기 때문에 룰 병합을 수행할 수 없다. 이는, 범위 또는 영역으로 표현되지 않는 속성의 개수가 많아질수록 룰 병합의 효율이 저하될 수 있다는 문제를 야기한다.
이와 같은 문제를 해결하기 위해 속성이 갖는 계층성을 활용하여 속성 관계를 판단함으로써 확장 관계, 포함하는 관계 및 포함되는 관계를 활용할 수 있다. 속성의 계층적 구조를 활용한다는 것은 속성이 가질 수 있는 계층적 정보를 기반으로 속성 관계를 판단하는 것을 의미한다. 예를 들어 '사용자' 속성의 경우 기업 내 조직도를 참고하여 동일 부서 내 사용자를 동일 관계로 판단할 수 있다. 이하 설명의 편의를 위해 룰의 '사용자' 속성을 예를 들어 설명한다.
도 16a에 도시된 바와 같이 사용자 속성에 대하여 확장 관계 등의 속성 관계를 판단하기 위해 사용자가 포함되는 계층적 정보인 조직도를 참조할 수 있다. 도 16b는 병합 대상 룰(1610)과 후보 룰(1630)을 도시한다. 병합 대상 룰(1610)과 후보 룰(1630)을 살펴보면, 사용자 속성을 제외한 다른 속성 쌍은 동일 관계를 가지고 있음을 파악할 수 있다. 즉, 병합 대상 룰(1610)과 후보 룰(1630)은 사용자 속성의 속성 관계에 따라 병합 여부가 결정되는 룰이다.
이때, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 병합 대상 룰(1610)의 사용자 속성 값인 '홍길동A'와 후보 룰(1630)의 사용자 속성 값인 '홍길동B'를 조직도 상의 상위 개념인 '부서#1'에 대응시킨 뒤 두 룰의 사용자 속성 쌍이 동일 관계를 갖는다고 판단할 수 있다. 또는 구현 방식에 따라 '부서#1'이 '홍길동A'와 '홍길동B'로 구성된 경우 병합 가능성 판단부(350)는 상기 사용자 속성 쌍의 값이 연속된 것으로 보아 확장 관계를 갖는다고 판단할 수 있다. 따라서, 룰 병합 장치(200)의 병합 가능성 판단부(350)는 병합 대상 룰(1610)과 후보 룰(1630)이 병합 가능하다고 판단할 수 있으며, 룰 병합부(370)는 병합 대상 룰(1610)과 후보 룰(1630)을 병합할 수 있다. 참고로, 룰 병합부(370)는 병합된 룰의 사용자 속성을 '부서#1'로 지정할 수 있을 것이다.
한편, 병합 가능성 판단부(350)가 사용자 속성의 속성 관계를 판단하기 위해 도 16a에 도시된 조직도 외에도 다양한 계층적 정보를 참조할 수 있다. 예를 들면, 사용자의 직책이나 역할 등의 정보를 계층적으로 구축한 뒤 속성 관계 판단에 참조할 수 있다.
또한, 병합 가능성 판단부(350)는 속성 값이 범위 영역으로 표현되는 속성의 경우도 계층적 정보를 활용하여 속성 관계를 판단할 수 있다. 예를 들어, 송신지 주소와 같은 경우 IP 주소의 계층을 활용하여 속성 관계를 판단할 수 있다. 즉, IP 주소의 계층적 개념을 활용하여 두 룰의 송신지 주소의 속성 값을 IP 클래스로 변환하거나 마스크를 적용하여 네트워크 주소로 변환한 뒤 속성 관계를 판단할 수도 있다. 속성 값을 상위 계층의 값으로 변환하여 속성 관계를 판단하는 경우, 두 룰의 속성 값이 서로 다르더라도 상위 계층의 값이 동일하다면 동일 관계로 판단될 수 있으므로, 이와 같은 방식은 속성 관계 판단의 엄격도를 완화시켜 룰 병합의 효율을 향상시키는 효과가 있다.
참고로, 병합 가능성 판단부(350)는 범위 또는 영역 개념을 갖지 않는 속성 값을 범위 개념을 갖는 속성 값으로 변환하여 속성 관계를 판단할 수도 있다. 예를 들어, 사용자 속성의 경우 사원번호와 같이 숫자 형식으로 표현될 수 있는 고유 식별자 값으로 변환한 뒤 속성 관계를 판단할 수도 있다. 이러한 경우 병합 가능성 판단부(350)는 두 룰의 사용자 속성이 연속되는 사원번호를 갖는 경우 확장 관계를 갖는다고 판단할 수 있다.
사원번호와 같은 고유 식별자가 존재하지 않는 경우 병합 가능성 판단부(350)는 해시(Hash) 등의 방법을 이용하여 고유 식별자를 부여할 수 있다. 또한, 병합 가능성 판단부(350)는 구현 방식에 따라 계층적 개념을 이용하여 속성 관계 판단의 엄격도를 완화하기 위해 URL(Uniform Resource Locator)과 같이 계층적 개념이 반영된 고유 식별자를 생성하여 부여할 수도 있다.
지금까지 도 16a 및 도 16b를 참조하여 범위 또는 영역으로 표현 불가능한 속성을 속성의 계층성을 이용하거나 범위로 표현될 수 있는 속성 값으로 변환하여 속성 관계를 판단하는 방법에 대하여 설명하였다. 상술한 방법에 따르면, 범위 또는 영역으로 표현 불가능한 속성도 동일 관계 외의 다른 속성 관계를 가질 수 있으므로 병합 가능한 경우가 증가될 수 있다. 따라서, 상술한 방법에 따르면 두 룰의 속성 관계 판단의 엄격도가 완화되고 이에 따라 룰 병합의 효율성이 더 향상될 수 있다.
다음으로, 도 17a 및 도 17b를 참조하여 본 발명의 또 다른 실시예에 따라 비정형 데이터 형태의 룰이 제공되는 경우 룰을 병합하는 방법에 대하여 설명한다.
지금까지 설명한 본 발명에 따른 룰 병합 방법 및 장치에서 병합되는 룰은 정형 데이터 형식의 속성을 갖는다고 가정하였다. 정형 데이터(Structured Data)는 문자 그대로 정형화된 데이터로, 일정한 형식을 갖추고 고정된 필드에 저장될 수 있는 데이터를 의미한다. 예를 들어, 고정된 날짜 형식을 갖는 사용 기간, 숫자로 구성된 포트 번호 등 관계형 데이터베이스에 저장될 수 있는 데이터는 정형 데이터로 볼 수 있다. 이와 반대로, 비정형 데이터(Unstructured Data)는 일정한 형식이 없는 데이터를 의미한다. 예를 들어, 형식이 없는 텍스트, 동영상 데이터 등은 비정형 데이터로 볼 수 있다.
그러나, 사용자 편의성을 극대화하기 위해 본 발명에 따른 룰 병합 장치(200)는 텍스트로 구성된 비정형 데이터를 제공 받을 수 있도록 확장될 수 있다. 도 17a를 참고하면, 본 발명에 따른 룰 병합 장치는 비정형 데이터 형태의 룰을 정형 데이터 형태의 룰로 변환하기 위해 비정형 데이터 처리부(1710)를 포함할 수 있다.
비정형 데이터 처리부(1710)는 비정형 데이터를 분석하여 룰의 속성과 관련된 데이터를 추출하고, 추출된 데이터를 속성 별로 분류할 수 있다. 또한 비정형 데이터 처리부(1710)는 비정형 데이터를 분석하기 위해 룰의 속성과 관련된 시소러스(Thesaurus) 또는 온톨로지(Ontology)를 참조할 수 있다. 상기 시소러스는 용어의 사용법과 용어들 사이의 관계에 대한 정보를 제공하는 어휘 도구를 말한다. 용어의 관계성은 일반적으로 상위 개념(BT: Broader Term), 하위 개념(NT: Narrower Term), 용례 혹은 동의어(UF: Use For Or Synonymous), 관계어(RT: Related Term), 대체어(USE) 등으로 분류되는데, 시소러스는 이러한 관계성을 이용하여 용어의 의미를 확대하기 위해 구성된 데이터 구조이다. 온톨로지는 특정 분야에 속하는 개념과 개념 사이의 관계를 기술하는 정형 어휘의 집합이다. 한편, 비정형 데이터 처리부(1710)는 비정형 데이터를 분석하여 룰의 속성과 관련된 데이터를 추출하기 위해 해당 기술 분야에서 널리 알려진 하나 이상의 알고리즘을 이용하여 구현될 수 있다.
시소러스 정의부(1730)는 룰의 각 속성에 대한 시소러스 또는 온톨로지를 구축하고 비정형 데이터 처리부(1710)에 상기 시소러스 또는 온톨로지를 비정형 데이터 처리부(1710)에 제공할 수 있다.
도 17b를 참조하면, 방화벽 시스템에서 사용자는 텍스트 형식으로 네이버 서비스에 대한 사용 허가 신청(1750)을 할 수 있다. 룰 병합 장치(200)의 비정형 데이터 처리부(1710)는 텍스트 형식의 사용 허가 신청(1750)을 정형 데이터 형태의 룰(1770)로 변환할 수 있다. 자세히 말하면, 자연 처리부(1710)는 방화벽의 룰 속성인 사용 기간, 송신 주소 등과 관련된 시소러스 또는 온톨로지를 참조하여 텍스트 형식의 사용 허가 신청 데이터(1750)로부터 '오늘부터 1년 간', '네이버 웹 페이지', '허가' 등의 키워드를 추출하고, 각 키워드를 속성 별로 분류할 수 있다. 또한, 비정형 데이터 처리부(1710)는 추출된 키워드를 개별 속성의 형식에 맞게 변환할 수 있다. 예를 들어, 비정형 데이터 처리부(1710)는 추출된 키워드 중 '오늘부터 1년 간'을 사용 기간 속성으로 분류한 뒤 사용 허가를 신청한 날이 2016년 7월 1인인 경우 상기 사용 기간 속성으로 분류된 키워드를 날짜 형식('2016/07/01 ~ 2017/07/01')으로 변환할 수 있고, '네이버 웹 페이지'는 수신지 주소 속성으로 분류한 뒤 DNS(Domain Name Server)를 이용하여 IP 주소 형식('202.131.30.11')으로 변환할 수 있다.
또한, 비정형 데이터 처리부(1710)는 제공된 비정형 데이터를 분석할 수 없거나, 분석된 키워드를 관련된 속성의 형식으로 변환할 수 없는 경우 시소러스 및 온톨로지를 참조하여 사용자에게 해당 부분에 대한 보정을 요청할 수도 있다.
비정형 데이터 처리부(1710)에 의해 정형화 데이터 형태의 룰로 변환이 된 경우, 변환된 룰은 룰 병합 장치(200)의 룰 제공부(310)로 제공되어 룰 병합이 수행될 수 있다. 룰 병합 장치(200)가 룰 병합을 수행하는 방법은 전술한 바와 같으므로 생략한다.
지금까지, 도 17a 및 도 17b를 참조하여 비정형 데이터 형태의 룰이 제공된 경우 룰을 수행하는 방법에 대하여 설명하였다. 상술한 방법에 따르면, 본 발명은 비정형 데이터 처리부(1710)를 추가하여 비정형 데이터 형태의 룰을 처리할 수 있도록 확장될 수 있으며, 이에 따라 본 발명을 이용하는 사용자 편의성을 극대화할 수 있다.
지금까지 도 4 내지 도 17을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
또한, 도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (15)

  1. 병합 대상 룰을 가리키는 데이터를 제공 받는 단계;
    기 설정된 기준에 따라, 기 저장된 룰 중에서 상기 병합 대상 룰과 병합될 후보 룰을 선출하는 단계;
    상기 후보 룰의 속성의 값과 상기 병합 대상 룰의 속성의 값 사이에 기 정의된 복수의 속성 관계 중 어느 하나가 성립하는 속성의 개수를 합산 함으로써, 상기 후보 룰 각각의 속성 쌍 개수를 결정하는 단계;
    상기 후보 룰의 속성 쌍 개수를 이용하여, 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 단계; 및
    병합이 가능하다고 판단된 경우, 상기 병합 대상 룰과 상기 후보 룰을 병합하는 단계를 포함하는,
    룰 병합 방법.
  2. 제1 항에 있어서,
    상기 병합 대상 룰 및 상기 후보 룰은, 각각 필수 속성 및 선택 속성을 가지고,
    상기 후보 룰을 선출하는 단계는,
    상기 기 저장된 룰 중에서 상기 병합 대상 룰과 상기 필수 속성의 개수가 동일한 룰을 상기 후보 룰로 선출하는 단계를 포함하는,
    룰 병합 방법.
  3. 제2 항에 있어서,
    상기 기 저장된 룰 중에서 상기 병합 대상 룰과 상기 필수 속성의 개수가 동일한 룰을 상기 후보 룰로 선출하는 단계는,
    상기 병합 대상 룰과 필수 속성의 종류가 동일한 룰을 상기 후보 룰로 선출하는 단계를 포함하는,
    룰 병합 방법.
  4. 제2 항에 있어서,
    상기 필수 속성은,
    사용자, 사용 기간을 포함하는,
    룰 병합 방법.
  5. 제1 항에 있어서,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 합산된 속성 쌍의 개수와 상기 병합 대상 룰의 속성의 개수가 상이한 경우 병합이 불가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  6. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 동일 관계를 갖는 속성 쌍의 개수가 0 보다 크거나 같은 경우, 상기 동일 관계를 제외한 속성 관계를 갖는 속성 쌍 전부가 포함되는 관계 또는 포함하는 관계를 갖는 경우 병합이 가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  7. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 합산된 속성 쌍의 개수와 상기 병합 대상 룰의 속성의 개수가 동일하고, 상기 병합 대상 룰의 속성의 개수가 1 인 경우, 병합이 가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  8. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 병합 대상 룰의 속성의 개수가 1 보다 크고, 상기 동일 관계, 상기 포함되는 관계 또는 상기 포함하는 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수가 상기 병합 대상 룰의 속성의 개수와 같은 경우 병합이 가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  9. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 합산된 속성 쌍의 개수와 상기 병합 대상 룰의 속성의 개수가 동일하고, 상기 병합 대상 룰의 속성의 개수가 1 보다 크고, 상기 동일 관계를 갖는 속성 쌍의 개수가 상기 병합 대상 룰의 속성 개수에서 1 을 제한 값과 같은 경우 병합이 가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  10. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 병합 대상 룰의 속성의 개수가 1 보다 크고, 상기 동일 관계를 갖는 속성 쌍의 개수가 N 이고, 상기 포함하는 관계 또는 상기 포함되는 관계를 갖는 속성 쌍의 개수가 상기 병합 대상 룰의 속성의 개수에서 상기 N 을 제한 값과 같은 경우 병합이 가능하다고 판단하는 단계를 포함하되,
    상기 N 은 1 보다 크거나 같고 상기 병합 대상 룰의 속성의 개수보다 작은 값인,
    룰 병합 방법.
  11. 제1 항에 있어서,
    상기 복수의 속성 관계는,
    확장(Extended) 관계, 동일(Equivalent) 관계, 포함되는(Included) 관계 및 포함하는(Inclusive) 관계를 포함하되,
    상기 병합 가능 여부를 판단하는 단계는,
    상기 확장 관계를 갖는 속성 쌍의 개수가 1 보다 큰 경우 병합이 불가능하다고 판단하는 단계를 포함하는,
    룰 병합 방법.
  12. 제1 항에 있어서,
    상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계는,
    상기 기 저장된 룰의 개수 기반으로 오차 범위를 조정하는 단계; 및
    상기 오차 범위를 반영하여, 상기 속성 쌍 각각이 상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는지 판정하는 단계를 포함하는,
    룰 병합 방법.
  13. 제12 항에 있어서,
    상기 기 저장된 룰의 개수 기반으로 오차 범위를 조정하는 단계는,
    상기 기 저장된 룰의 개수가 많을수록 허용 오차 범위가 넓게 설정되도록 상기 오차 범위를 조정하는 단계를 포함하는,
    룰 병합 방법.
  14. 제1 항에 있어서,
    상기 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계는,
    상기 속성에 대한 기 설정된 오차 범위 값을 얻는 단계;
    상기 병합 대상 룰의 속성 값에 상기 오차 범위 값을 반영하는 단계; 및
    상기 오차 범위 값이 반영된 병합 대상 룰의 속성과 상기 후보 룰의 속성으로 구성된 속성 쌍 중에서, 기 정의된 복수의 속성 관계 중 어느 하나의 속성 관계를 갖는 속성 쌍의 개수를 합산하는 단계를 포함하는,
    룰 병합 방법.
  15. 제1 항에 있어서,
    상기 병합하는 단계는,
    상기 병합 대상 룰과 상기 후보 룰이 병합된 룰을 상기 병합 대상 룰로 재설정하는 단계; 및
    상기 후보 룰을 선출하는 단계, 상기 속성 쌍의 개수를 합산하는 단계, 상기 병합 대상 룰과 상기 후보 룰의 병합 가능 여부를 판단하는 단계 및 병합이 가능하다고 판단된 경우 상기 병합 대상 룰과 상기 후보 룰을 병합하는 단계를 재수행하는 단계를 포함하는,
    룰 병합 방법.
KR1020160104623A 2016-08-18 2016-08-18 룰 병합 방법 및 장치 KR102424186B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160104623A KR102424186B1 (ko) 2016-08-18 2016-08-18 룰 병합 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160104623A KR102424186B1 (ko) 2016-08-18 2016-08-18 룰 병합 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180020391A KR20180020391A (ko) 2018-02-28
KR102424186B1 true KR102424186B1 (ko) 2022-07-21

Family

ID=61401122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160104623A KR102424186B1 (ko) 2016-08-18 2016-08-18 룰 병합 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102424186B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101951208B1 (ko) * 2018-09-28 2019-02-25 주식회사 루터스시스템 방화벽에이전트를 이용해 네트워크 트래픽을 감시하는 방화벽 시스템
NL2023811B1 (en) * 2019-09-11 2021-05-17 Microsoft Technology Licensing Llc Validating and providing accessible electronic messages

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215518A1 (en) * 2005-02-24 2008-09-04 Nec Corporation Filtering Rule Analysis Method and System
US20100037289A1 (en) * 2008-04-29 2010-02-11 Secure Computing Corporation Merge rule wizard

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215518A1 (en) * 2005-02-24 2008-09-04 Nec Corporation Filtering Rule Analysis Method and System
US20100037289A1 (en) * 2008-04-29 2010-02-11 Secure Computing Corporation Merge rule wizard

Also Published As

Publication number Publication date
KR20180020391A (ko) 2018-02-28

Similar Documents

Publication Publication Date Title
US9438620B2 (en) Control flow graph representation and classification
US9652512B2 (en) Secure matching supporting fuzzy data
US10922357B1 (en) Automatically mapping natural language commands to service APIs
US10891950B2 (en) Graph based prediction for next action in conversation flow
US20230262096A1 (en) Hardening of cloud security policies
US10592470B2 (en) Discovery of calling application for control of file hydration behavior
US11362997B2 (en) Real-time policy rule evaluation with multistage processing
US11416631B2 (en) Dynamic monitoring of movement of data
US20220188437A1 (en) Data Access Monitoring and Control
US11005890B2 (en) Secure software defined storage
CN116137908A (zh) 动态确定端到端链路的信任级别
US20220309167A1 (en) Cluster security based on virtual machine content
US11636386B2 (en) Determining data representative of bias within a model
WO2022242595A1 (en) Detecting resource redundancy and conflicts in heterogeneous computing environment
KR102424186B1 (ko) 룰 병합 방법 및 장치
US11100233B2 (en) Optimizing operating system vulnerability analysis
US8522248B1 (en) Monitoring delegated operations in information management systems
US11243756B1 (en) Extensible resource compliance management
US11803646B2 (en) Vulnerability scanning
Breivold et al. Architecting for the cloud: A systematic review
US20230344840A1 (en) Method, apparatus, system, and non-transitory computer readable medium for identifying and prioritizing network security events
US11601399B2 (en) System and method for detecting forbidden network accesses based on zone connectivity mapping
US20230370426A1 (en) Sensitive Data Identification In Real-Time for Data Streaming
WO2023071649A1 (en) Natural language processing for restricting user access to systems
US11895121B1 (en) Efficient identification and remediation of excessive privileges of identity and access management roles and policies

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