Processing

Please wait...

Settings

Settings

Goto Application

1. KR1020190101374 - 고속 분석을 위한 네트워크 트래픽 준비 시스템

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ KO ]
고속 분석을 위한 네트워크 트래픽 준비 시스템
기 술 분 야
 본 발명은 분석을 위한 네트워크 트래픽을 준비하는 시스템 및 방법에 관한 것이며, 특히 분석을 위한 네트워크 흐름들을 준비하는 시스템 및 방법에 관한 것이다.
배경기술
 네트워크 트래픽은 여러 가지 이유로 분석되는 것이 필요하다.
 참고문헌["Flow-based Compromise Detection" (by Rick Hofstede, ISBN: 978-90-365-4066-7; 2016, "논문(the thesis)")으로 칭해짐]은 패킷 기반 분석과는 다른 네트워크 트래픽을 분석하는 한 가지 방법을 기술한다. 이 논문은 흐름-기반 네트워크 분석과, 네트워크에 접속된 연산 장치의 위해(compromise)를 탐지하기 위한 몇 가지 애플리케이션을 기술한다. 흐름-기반 네트워크 분석은 흐름 이출 기록의 형태로 네트워크 행동과 관련된 정보로서 흐름의 준비 및 이출을 관련시킨다.
 프로세스가 작동하기 위해서는 패킷을 분석하여 이출 흐름으로서 이출에 적합한 정보를 추출한다. 이출 흐름은 복수의 패킷으로부터의 데이터를 특징으로 한다. 이출은 IPFIX 또는 Netflow를 포함하지만 이에 제한되지 않는 이출 흐름 프로토콜에 따라 수행된다. 두 프로토콜 모두 유용하지만, IPFIX는 패킷을 전송하도록 설계된 장치 또는 네트워크 프로브로부터 흐름 이출을 지원하도록 개발되었다. 그러나 프로토콜은 단일 장치가 패킷을 캡처하고 분석하여 이출 흐름을 유도하도록 요구하지 않는다.
 IPFIX를 예로 들면, 흐름 정보는 정보 요소 또는 IE의 형태로 이출된다. 상이한 IE가 취할 수 있는 포맷과 포함된 정보 타입은 IANA에 의해 유지되는 표준과 관련된다. 허용 가능한 흐름 이출 요소(IE 또는 필드)의 몇 가지 예의 표가 하기에 있다. [표 1]은 흐름의 허용 가능한 IANA 요소의 비-제한적 예를 보여준다.
 
표 1
흐름의 IANA 요소
기업 ID 요소 ID 명칭 설명
0 152 flowStartMilliseconds 흐름의 첫 번째 패킷의 타임스탬프.
0 153 flowEndMilliseconds 흐름의 마지막 패킷의 타임스탬프.
0 8 sourceIPv4Address 패킷 헤더의 IPv4 소스 어드레스.
0 12 destinationIPv4Address 패킷 헤더의 IPv4 목적지 어드레스.
0 7 sourceTransportPort 전송 헤더의 소스 포트.
0 11 destionationTransportPort 전송 헤더의 목적지 포트.
0 4 protocolIdentifier 패킷 헤더의 IP 프로토콜 번호.
0 2 packetDeltaCount 흐름에 대한 패킷 수.
0 1 octetDeltaCount 흐름에 대한 옥텟 수.
16982 102 HTTPDomain HTTP 요청의 도메인
 흐름은 IPFIX 또는 Netflow 이출 프로토콜에 따라 "특정 흐름에 속하는 모든 패킷이 공통 속성 세트를 갖도록, 특정 시간 간격 동안 네트워크의 관측 지점을 통과하는 IP 패킷의 세트"로 선택적으로 규정될 수 있다. 이러한 이출 프로토콜은 다음과 같은 공통 속성을 규정한다: 소스 및 목적지 IP 어드레스 및 포트 번호와 같은 패킷 헤더 필드, 패킷 내용에 기초하여 해석된 정보 및 메타-정보. 일단 흐름이 종료되면 흐름이 이출된다.
 공통 속성은 선택적으로 속성당 하나의 컬럼을 가지고 일반적인 데이터베이스에 로우(rows)로서 저장될 수 있다. 패킷 분석은 선택적으로 상기 논문과 관련하여 기술된 대로 수행될 수 있다.
발명의 상세한 설명
 본 발명은 네트워크 흐름을 복수의 요소로 분해한 후 태깅함으로써 분석을 위한 네트워크 흐름을 준비하는 시스템 및 방법에 관한 것이다. 태깅된 요소는 선택적으로, IPFIX 또는 Netflow 표준을 포함하지만 이에 제한되지 않는 임의의 타입의 네트워크 흐름 표준에 따른 임의의 타입의 요소의 조합을 포함할 수 있거나, 또는 선택적으로 이러한 요소로부터, 예를 들어 선택적으로 외부(비-흐름) 정보를 추가하거나 네트워크 흐름 표준 요소(들)에 대한 어떤 타입의 계산을 수행함으로써 유도될 수 있다.
 예를 들어 네트워크 흐름 외부의 정보에 따라 또는 네트워크 흐름 표준 요소(들)에 대해 어떤 타입의 계산을 수행함으로써, 하나 이상의 네트워크 흐름 표준 요소로부터 유도되는 태깅된 요소는 본 명세서에서 단순 태깅된 요소로 결정된다. 태깅된 요소는 네트워크 흐름 표준 요소(들)로부터 획득되지만 그 자체로는 단일 네트워크 흐름 표준 요소가 아니다.
 이러한 단순 태깅된 요소의 비-제한적인 예는 이출된 네트워크 흐름 및 룩업 테이블의 IP 어드레스로부터 유도되는 지리적 위치 태깅된 요소이다. 룩업 테이블은 IP 어드레스를 지리적 위치와 일치시키며, 네트워크 흐름 표준 요소로 간주되지 않는다. 단순 태깅된 요소의 다른 비-제한적인 예는 시간 경과 또는 지속 구간이며, 이는 선택적으로 흐름 시작 시간 및 흐름 종료 시간 네트워크 흐름 표준 요소들로부터 계산될 수 있다. 단순 태깅된 요소의 다른 비-제한적인 예는 특정 IP 어드레스로부터의 트래픽의 빈도를 계산하는 것이다. 이러한 태깅된 요소의 또 다른 비-제한적인 예는 선택적으로 특정 IP 어드레스 또는 특정 IP 어드레스의 특정 포트에 전송되고 이로부터 수신되는 데이터의 양으로부터 유도되는 트래픽 비율이다. 이러한 태깅된 요소의 또 다른 비-제한적인 예는 네트워크 흐름의 소스 IP 어드레스 및 목적지 포트의 조합으로부터 선택적으로 유도되는 포트/IP 어드레스 요소이다.
 선택적으로, 태깅된 요소는 하나 이상의 프로세싱된 네트워크 흐름 표준 요소(즉, 하나 이상의 단순 태깅된 요소)로부터 결정되며, 본 명세서에서 복합 태깅된 요소로 지칭된다. 복합 요소는 선택적으로 복수의 단순 태깅된 요소들의 조합을 포함할 수 있다. 부가적으로 또는 대안적으로, 복합 요소는, 선택적으로 네트워크 흐름 외부의 정보를 더한 단순 태깅된 요소부터, 단순 태깅된 요소에 대해 어떤 타입의 계산을 수행함으로써, 또는 네트워크 흐름 표준 요소를 단순 태깅된 요소와 조합함으로써(선택적으로 네트워크 흐름 외부의 정보 또는 어떤 타입의 계산을 더 포함함으로써) 유도될 수 있다.
 그러한 복합 태깅된 요소의 비-제한적인 예는 선택적으로 지리적 위치와 관련된 다른 단순 태깅된 요소를 더한 단순 태깅된 요소의 상술한 시간 경과 또는 지속 구간의 조합으로부터 유도될 수 있다. 이러한 복합 태깅된 요소의 다른 비-제한적인 예는 선택적으로 특정 지리적 위치에 대한 트래픽의 양을 (빈도, 바이트 또는 그 조합으로) 계수하는 것으로부터 유도될 수 있다.
 태깅된 요소들은 선택적으로 더 복잡한 태깅된 요소들을 만들기 위한 빌딩 블록들로도 사용될 수 있으며, 이는 또한 본 명세서에서 복합 요소들로 지칭된다. 예를 들어, 전술된 트래픽 비율은 선택적으로 분석되어 어떤 부분이 특정 포트로부터 왔는지 또는 목적지 IP 어드레스의 특정 포트에 전송되는지를 결정할 수 있다. 이러한 분석은 선택적으로 복수의 복합 태깅된 요소들을 조합하거나 또는 복합 태깅된 요소를 단순 태깅된 요소와 조합함으로써 수행될 수 있다. 따라서, 태깅된 요소들은 매우 유연한 방식으로 사용될 수 있고 선택적으로 새로운 이러한 태깅된 요소들을 생성하도록 조합될 수 있다.
 본 발명의 적어도 일부의 실시 형태에 따르면, 네트워크 흐름을 분석하는 방법은 네트워크 흐름을 수신하고, 네트워크 흐름을 분석하고, 태깅된 요소들을 컬럼별로 작성하는 단계를 포함한다. 선택적으로 네트워크 흐름은 로우별로 분석된다. 이것은 프로세스의 효율성을 증가시킨다. 바람직하게는, 상기 방법은 네트워크 흐름을 분석하여 더 단순한 태깅된 요소들을 먼저 결정한 다음에 복합 태깅된 요소들을 결정하는 단계를 포함한다. 상기 방법은 특정 태깅된 요소를 요구하는 태깅 프로세스가 특정 태깅된 요소가 결정된 후에 수행되도록 조정되는 것이 바람직하다. 선택적으로, 이러한 조정은 각 타입의 태깅된 요소들(단순, 복합 또는 복잡 여부)을 네트워크 흐름에 대한 이러한 태깅된 요소들의 기록의 컬럼에 맵핑함으로써 수행된다. 단순 태깅된 요소들이 먼저 작성할 컬럼들에 맵핑되는 것이 바람직하고, 복합 태깅된 요소들은 적어도, 복합 태깅된 요소들이 의존하는 단순한 요소들을 함유하는 컬럼들 이후에 작성되는 컬럼들에만 맵핑되는 것이 바람직하다. 자체적으로 적어도 하나의 복합 태깅된 요소를 요구하는 복합 태깅된 요소들은 적어도 요구되는 복합 태깅된 요소(들)를 함유하는 컬럼들 다음에 작성되는 컬럼들 등에 맵핑되는 것이 바람직하다.
 달리 규정되지 않는 한, 본 명세서에서 사용되는 모든 기술 및 과학 용어는 본 발명이 속하는 기술 분야의 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 본 명세서에 제공되는 자료, 방법 및 실시예는 단지 예시적인 것이며 제한하려는 것은 아니다.
 본 발명의 방법 및 시스템의 구현은 특정 선택된 작업 또는 단계를 수동, 자동 또는 이들의 조합으로 수행하거나 완료하는 것을 수반한다. 또한, 본 발명의 방법 및 시스템의 바람직한 실시 형태의 실제 계측 및 장비에 따라, 몇몇 선택된 단계는 하드웨어에 의해 또는 임의의 펌웨어의 임의의 운영 체계 상의 소프트웨어에 의해 또는 그 조합에 의해 구현될 수 있다. 예를 들어, 하드웨어로서, 본 발명의 선택된 단계는 칩 또는 회로로서 구현될 수 있다. 소프트웨어로서, 본 발명의 선택된 단계는 임의의 적합한 운영 체계를 사용하여 컴퓨터에 의해 실행되는 복수의 소프트웨어 명령으로서 구현될 수 있다. 어느 경우이든, 본 발명의 방법 및 시스템의 선택된 단계는 복수의 명령을 실행하기 위한 컴퓨팅 플랫폼과 같은 데이터 프로세서에 의해 수행되는 것으로 기술될 수 있다.
 본 발명이 "컴퓨터 네트워크(computer network)" 상의 "컴퓨터"와 관련하여 기술되었지만, 선택적으로 데이터 프로세서 및 하나 이상의 명령을 실행하는 기능을 특징으로 하는 임의의 장치가 컴퓨터 또는 연산 장치로서 기술될 수 있으며, 임의의 타입의 개인용 컴퓨터(PC), 서버, 셀룰러 전화, IP 전화, 스마트 폰, PDA(개인 휴대 정보 단말기), 씬 클라이언트(thin client), 이동 통신 장치, 스마트워치, 헤드 장착 디스플레이 또는 외부에서 통신할 수 있는 기타 웨어러블, 가상 또는 클라우드 기반 프로세서 또는 호출기를 포함하지만 이에 제한되지 않음을 유념해야 한다. 서로 통신하는 그러한 둘 이상의 임의의 장치는 선택적으로 "컴퓨터 네트워크"를 포함할 수 있다.
도면의 간단한 설명
 본 발명은 첨부된 도면을 참조하여 단지 예시적으로 본 명세서에 기술된다. 지금부터 도면을 상세히 참조하면, 도시된 세부 사항은 단지 예시적일 뿐이고 본 발명의 바람직한 실시 형태에 대한 설명을 목적으로 하기 위한 것일 뿐이며, 본 발명의 원리 및 개념적 측면에 대한 가장 유용하고 용이하게 이해되는 설명이 되는 것으로 여겨지는 것을 제공하기 위해 제시됨을 강조한다. 이와 관련하여, 본 발명의 기본적인 이해를 위해 필요한 것보다 본 발명의 구조적 세부 사항을 더욱 상세하게 나타내려는 시도는 없으며, 도면과 함께 취해진 설명은 본 발명의 여러 형태가 실제로 구현될 수 있는 방법을 당업자에게 명백하게 한다.
도 1은 본 발명의 적어도 일부의 실시 형태에 따른 흐름들을 수집하고 분석하기 위한 예시적이고 비-제한적인 예시 시스템을 도시한다.
도 2는 본 발명의 적어도 일부의 실시 형태에 따른 흐름들을 수집하고 준비하기 위한 예시적이고 비-제한적인 예시 시스템을 도시한다.
도 3은 본 발명의 적어도 일부의 실시 형태에 따른 흐름 이출, 수집 및 분석을 위한 예시적이고 비-제한적인 예시 프로세스를 도시한다.
도 4는 본 발명의 적어도 일부의 실시 형태에 따른 흐름 분석들을 위한 예시적이고 비-제한적인 예시 세부 프로세스를 도시한다.
도 5는 본 발명의 적어도 일부의 실시 형태에 따른 흐름 데이터 전처리에 대한 예시적이고 비-제한적인 예시 세부 프로세스를 도시한다.
도 6은 본 발명의 적어도 일부의 실시 형태에 따른 흐름 데이터 프로세싱을 위한 예시적이고 비-제한적인 예시 세부 프로세스를 도시한다.
도 7은 본 발명의 적어도 일부의 실시 형태에 따른 흐름 요소 태깅을 위한 예시적이고 비-제한적인 예시 세부 프로세스를 도시한다.
발명을 실시하기 위한 구체적인 내용
 본 발명의 적어도 일부의 실시 형태에 따르면, 태깅을 통한 분석을 위해 네트워크 흐름들을 준비하는 시스템 및 방법이 제공된다. 성공적인 태깅을 위한 흐름들에 관한 선험적 지식에 대한 요구 사항이 없으며, 태깅은 흐름의 의미 또는 암시에 대한 판단을 필요로 하지 않는다. 대신 태깅은 네트워크 흐름을 유용한 정보로 빠르게 분해하기 위한 강력하고, 재현 가능하고 효율적인 프로세스를 제공한다.
 이제 도면으로 돌아가서, 도 1은 본 발명의 적어도 일부의 실시 형태에 따른 흐름들을 수집하고 분석하기 위한 예시적이고 비-제한적인 예시 시스템을 도시한다. 도 1에 도시된 바와 같이, 흐름 데이터가 수집되는 하나 이상의 네트워크를 특징으로 하는 시스템(100)이 제공된다. 전술한 바와 같이, 흐름 데이터는 네트워크 또는 복수의 네트워크를 통한 패킷 흐름에 관한 데이터와 관련된다. 도시된 바와 같이, 선택적으로 흐름 이출기(4)(flow exporter)로 알려진 기기에 접속될 수 있는 원격 네트워크(1)(network)가 제공된다. 흐름 이출기(4)는 선택적으로 전용 기기 또는 장치일 수 있다. 대안적으로, 흐름 이출기(4)는 흐름 이출기 외에 다른 기능들을 갖는 서버 또는 다른 연산 장치일 수 있다.
 전술한 바와 같이, 흐름 이출기는 선택적으로 및 바람직하게 패킷 데이터의 수집, 및 이어서 패킷 데이터를 이출 흐름으로 구성한 다음 이출되는 것을 특징으로 한다. 흐름 이출은 선택적으로, IPFIX 및/또는 NetFlow를 포함하지만 이에 제한되지 않는 하나 이상의 상이한 프로토콜에 따라 발생한다. IPFIX 프로토콜은 현재 RFC 7011로 알려져 있으며, NetFlow 프로토콜은 RFC 3954로 알려져 있다. 흐름 데이터는 흐름 이출기(2)가 이러한 흐름 이출 프로토콜들 중 하나를 사용하여 준비하는 메타데이터 요약이다. 흐름 데이터는 모든 패킷 데이터가 필요하지 않도록 구성되는 것이 바람직하며, 예를 들어 선택적으로 흐름 데이터는 패킷 헤더로부터 또는 다른 패킷 행동 정량화 가능한 패킷 특성 또는 분석으로부터 유도될 수 있다.
 흐름 이출기(2) 뿐만 아니라 흐름 이출기(4)는 선택적으로 그 다음 이러한 데이터를 준비하여 이를 흐름 수집기 및 분석 애플리케이션(7)에 전송할 수 있으며, 흐름 수집기 및 분석 애플리케이션(7)은 선택적으로 및 바람직하게 연산 장치(102)에 의해 작동된다. 이제 연산 장치(102)의 상대적 위치에 의존하여, 연산 장치(102), 원격 네트워크(1) 및 선택적으로 예를 들어 로컬 네트워크(3) 사이에서 상이한 접속들이 선택적으로 이루어질 수 있다. 이들 접속은 선택적으로 인터넷(5)을 포함하지만 이에 제한되지 않는 임의의 네트워크를 통해 이루어질 수 있다.
 시스템(100)에 대해 여기에 도시된 실시예에서, 흐름 이출기(4)는 인터넷(5)을 통해 라우터(6)에 통신한다. 흐름 이출기(2)는 로컬 네트워크(3)로부터 흐름을 수신하고 거기에 함유된 데이터를 처리한다. 흐름 이출기(2) 및 흐름 이출기(4)는, 선택적으로 임의의 타입의 네트워크 기기가, 인터넷(5)을 통한 임의의 타입의 통신을 선택적으로 포함하는, 이들 상이한 네트워크들로부터 이들 상이한 흐름들을 접속하는데 사용될 수 있지만, 궁극적으로 라우터(6)를 거쳐 연산 장치(102)를 통해 통신할 수 있다.
 도시된 바와 같이, 흐름 접속기 및 분석 애플리케이션(7)은 다음에 흐름을 수집하고 선택적으로 어떤 타입의 분석을 수행할 수 있다. 이것은 다이어그램 C에서 더욱 상세히 기술된다.
 도 2는, 본 발명의 적어도 일부의 실시 형태에 따른 흐름들을 수집하고 준비하기 위한 예시적이고 비-제한적인 예시 시스템을 도시하며, 흐름의 분석 및 준비에 관한 부가적인 세부 사항을 제공하는 예시 시스템(200)을 포함한다. 이 도면에서, 일부 연산 장치가 설명의 용이성을 위해 생략되었지만, 선택적으로 흐름 이출기(8), 흐름 수집기(10) 및 분석 애플리케이션(11)은 각각 선택적으로 네트워크 장치 또는 기기로서 및/또는 임의의 타입의 소프트웨어를 동작시키는 서버로서 구현될 수 있더라도 그러한 장치는 설명의 용이함을 위해 이 경우 선택적으로 도시되지 않을 수도 있음을 유념해야 한다.
 다시, 흐름 이출기(8)는 흐름들을 준비하고 흐름 이출기 프로토콜에 따라 흐름들을 이출하며, 흐름 이출기 프로토콜은 다시 선택적으로 NetFlow, IPFIX 또는 임의의 다른 적합한 흐름 이출 프로토콜일 수 있다. 그 다음, 흐름들은 선택적으로 예를 들어 인터넷일 수 있는 네트워크(9)를 통해 흐름 수집기(10)에 이출된다.
 흐름 수집기(10)는 도시되지 않은 복수의 흐름 이출기(8)로부터 흐름들을 선택적으로 수집한 다음, 수집된 흐름들을 분석 애플리케이션(11)에 전송할 수 있다.
 흐름 수집기(10)는 선택적으로 하나 이상의 흐름 이출기(8)와 동일한 호스트 시스템 상에 상주할 수도 있고 그렇지 않을 수도 있다. 따라서, 이 경우에 예를 들어, 흐름 수집기(10)는 선택적으로 흐름 이출기(8)와는 상이한 호스트 시스템 및/또는 상이한 네트워크 상에 있을 수 있다. 흐름 수집기(10)는 선택적으로 동일한 호스트 시스템상에서 또는 심지어 분석 애플리케이션(11)과 동일한 연산 장치에 의해 동작될 수 있거나, 또는 선택적으로 상이한 호스트 시스템 상에 존재할 수 있고 및/또는 분석 애플리케이션(11)과는 상이한 연산 장치에 의해 동작될 수 있다. 다시, 더욱 세부사항이 흐름 수집 분석 프로세스와 관련하여 다이어그램 C에서 상세히 도시된다.
 도 3은 이제 다이어그램 C에 관한 것인데, 본 발명의 적어도 일부의 실시 형태에 따른 흐름 이출, 수집 및 분석을 위한 선택적 프로세스를 도시한다. 도시된 바와 같이, 복수의 흐름 이출기(12)가 네트워크(13)를 통해 흐름 수집기(14)로 흐름을 이출하는 것이 바람직하다. 이전 도면들에 관해 다시 기술하면, 선택적으로 여기에 도시된 구성요소들 각각은 독립형 네트워크 기기 또는 장치로서 구현될 수 있거나, 또는 선택적으로 서버 또는 서버 그룹의 일부로서, 선택적으로 펌웨어로서 또는 소프트웨어로서 구현될 수 있다. 이러한 연산 장치들은 도시되지 않았지만, 다이어그램의 내재하는 부분인 것으로 가정되며, 사실상 당업자에 의해 쉽게 추가되고 이해될 것이다.
 다시 도 3으로 돌아가서, 흐름들은 흐름 수집기 또는 흐름 수집 지점(14)에 의해 수집되고, 선택적으로 또는 바람직하게 흐름 데이터 저장장치(15)에 배치된다. 흐름 데이터 저장장치(15)는 선택적으로 일시적이거나 영구형 데이터 저장장치일 수 있다. 흐름 데이터 분석 구성요소(16)는 그 다음 선택적으로 및 바람직하게 임의의 타입의 분석을 수행하기 위해, 흐름 데이터 저장장치(15)로부터의 흐름들을 검색한다. 분석 결과는 선택적으로 결과 프로세싱 구성요소(17)에 의해 프로세싱될 수 있다.
 흐름 데이터 저장장치(15)는 선택적으로, 하드 디스크, SAN 저장장치, RAM 디스크, 임의의 타입의 메모리 구조들, 큐(queue) 등을 포함하지만 이에 제한되지 않는 임의의 타입의 저장 장치에 따라 구현될 수 있다. 결과 프로세싱 구성요소(17)에 전송되는 흐름 데이터 분석(16)의 결과들은 선택적으로 비정상 행동, 네트워크 라우팅 업데이트, 네트워크 모델 생성 또는 업데이트, 낮은 예측 등에 대해 보내지는 경보를 포함할 수 있지만 이에 제한되지 않는다. 그러나, 흐름 데이터 분석(16)은 선택적으로 분석의 의미에 대해 불가지론적일 수 있어서, 예를 들어 흐름 데이터 분석(16)이 선택적으로 특정 흐름이 컴퓨터 시스템의 일부에 대한 무단 접근을 가리키는지 여부, 악성 코드의 존재(또는 부재) 등을 결정하지 못할 수도 있다. 선택적으로, 흐름 데이터 분석(16)은 모든 결과를 결과 프로세싱 구성요소(17)에 보내지 않고, 오히려 가장 유익한 정보이고 및/또는 네트워크, 네트워크 모델 또는 시스템의 어떤 타입의 상태 변화를 나타내고 및/또는 미리 결정된 규칙에 따라 선택적으로 설정된 어떤 타입의 경보를 나타낼 수 있는 결과들을 선택하는데, 이것들은 결과 프로세싱 구성요소(17)가 더욱 상세히 조사할 필요가 있는 결과를 가리킬 수 있다.
 결과 프로세싱 구성요소(17)는 선택적으로, 하나 이상의 악성 코드 검출 애플리케이션, 무단 접근 검출 애플리케이션 또는 이상 검출 애플리케이션, 또는 컴퓨터 시스템의 동작이 어떤 식으로든 위해된 모든 타입의 위해 검출을 포함할 수 있지만 이에 제한되지 않는다.
 도 4는 도 3에서 항목 "D"로 지칭된 D로 또한 도시하며, 흐름 데이터 분석(16)과 관련하여 더욱 상세히 제공한다. 도 4는 예시적인 상세한 데이터 분석 프로세스에 관한 것이다. 다시 도시된 바와 같이, 데이터를 수집하는 흐름 데이터 수집 또는 수집기(18)가 제공된다. 선택적으로, 이 경우, 이것은 다수의 구성요소로부터의 흐름 데이터의 수집을 나타내는 기능적인 구성요소일 수 있고, 선택적으로 전처리를 실시할 수도 있고 전처리를 실시하지 않을 수도 있다.
 단계(19)에서, 분석 프로세스가 시작되고, 이것은 예를 들어 선택적으로 임의의 타입의 전처리 또는 데이터 수집을 포함할 수 있다. 단계(20)에서, 새로운 흐름 데이터가 이용 가능한지 여부가 결정된다. 새로운 흐름 데이터가 이용 가능하지 않다면, 프로세스는 단계(26)로 직접 가서, 분석 프로세스가 종료되고, 임의의 비정상적인 또는 다른 중요한 결과가 이전에 기술된 결과 프로세싱 단계(27)에 전송되는 것이 바람직하다. 선택적으로 및 바람직하게는 중요하고 비정상적인 것으로 칭해지거나 변화를 나타내거나, 또는 선택적으로 하나 이상의 규칙에 따라 트리거될 수 있는 결과만을 포함한다.
 그러나, 단계(20)에서 새로운 흐름 데이터가 이용 가능할 때, 프로세스는 흐름 데이터의 전처리와 함께 단계(21)로 계속된다. 이 전처리 단계는 도면 E와 관련하여 더욱 상세히 기술된다. 전처리 단계는 흐름 데이터 컬럼의 형태로 더 많은 메타데이터를 흐름 데이터에 추가하는 것이 바람직하다. 전처리 및 태깅은 적어도 일부 실시 형태에서 본 발명에 중요한데, 이는, 조사되는 데이터가 요구되는 연산 자원의 양을 감소시키고 및/또는 구현하기가 보다 쉬울 수 있는 방식으로 이들 연산 자원을 분배하는 방식으로 사전-분석되거나 전처리될 수 있는 방법, 및 적어도 더 유연하며 상이한 기기 및/또는 연산 장치 또는 시스템 내의 구성요소가 프로세싱 방법의 및/또는 임의의 타입의 분석의 상이한 양태를 취할 수 있게 하는 방법에 관련되기 때문이다.
 전처리가 수행된 후, 단계(22)에서, 흐름 데이터가 분석된다. 흐름 데이터를 분석한 후, 단계(23)에서 후처리된다. 공개 가능한 결과가 단계(24)에서 발견되면, 그 결과는 단계(25)에 공개된다. 어느 경우든 공개 가능한 결과가 있는지 여부와 공개 후에 공개 가능한 결과가 있는 경우, 분석 프로세스는 전술된 바와 같이 단계(26)에서 종료되었다.
 도 5는 흐름 데이터의 전처리를 더욱 상세히 기술하는 도면 E에 관한 것이다. 따라서, 단계(28)에 도시된 도 5에서, 수신된 데이터의 타입을 결정하고 데이터가 프로세싱하기 쉽다는 것을 확인하기 위해 데이터의 분석이 수행된다. 단계(29)에서 전처리 과정이 실제로 시작된다. 단계(30)에서, 전처리 모듈의 순서가 결정된다. 이는 선택적으로 데이터의 하나 이상의 특성에 따라 및/또는 이전에 구현될 수 있었던 하나 이상의 규칙에 따라 적어도 부분적으로 결정될 수 있다. 이러한 규칙은 또한 선택적으로 하나 이상의 데이터 특성에 의해 트리거될 수도 있다.
 전처리를 위해, 흐름 데이터 분석시 특정 전처리 작업을 각각 갖는 하나 이상의 모듈이 있다고 가정한다. 모듈은 특정 태그들의 존재 여부에 따라 달라질 수 있기 때문에, 수행될 수 있는 태깅의 양을 최대화하도록 모듈 실행 순서를 스케줄링하는 것이 중요하다. 이러한 스케줄링은 또한 무한 루프의 순환 의존성을 방지한다. 따라서, 예를 들어, 한 모듈이 다른 모듈의 결과에 의존하는 경우, 분명히, 다른 모듈의 결과에 의존하는 모듈은 결과를 제공할 모듈의 다음에 구현되어야 한다.
 스케줄링이 충분히 진행되는 경우 및/또는 충분한 정보가 제공되는 경우, 병렬 실행이 스케줄링될 수 있다. 스케줄링은 단계(30)에서 수행되는 것이 바람직하다.
 단계(31)에서, 전용 전처리 모듈(특정한 단순 또는 복합 태깅된 요소에 전용)인 것이 바람직한 전처리를 위한 각각의 모듈이 결정된 순서로 선택된다. 이전에 주지된 바와 같이, 결정된 순서는 각 모듈에 의해 요구되는 정보와 관련되는 것이 바람직하다. 예를 들어 모듈이 표준 네트워크 흐름 요소만 요구하는 경우, 선택적으로 먼저 작동할 수 있다. 이미 태깅된 요소를 요구하는 모듈은 요구된 태깅된 요소가 준비된 후에 나중에 동작하는 것이 바람직하다.
 다음 단계(32)에서, 흐름 데이터는 선택된 모듈을 사용하여 전처리된다. 이 프로세스는 도면 F에 더욱 상세히 도시된다. 단계(33)에서, 각각의 모듈이 흐름 데이터를 전처리하는 전처리를 위해 실제로 구현되었는지 여부가 결정된다. 그렇지 않다면, 흐름은 단계(31)로 되돌아간다. 그렇고, 모든 모듈이 실제로 구현되었다면, 다음에 단계(34)에서, 전처리 프로세스가 종료되고, 단계(35)에서, 분석 프로세스가 계속되는 것이 바람직하다.
 이제 도 6으로 돌아가면, 각 모듈에 의한 전처리 단계에 관한 방법이 도면 F에 더욱 상세히 도시된다. 따라서 도시된 바와 같이, 전처리 활동 단계(36)에서, 태깅 프로세스에서 모듈의 실행은 단계(37)에서 시작한다. 먼저, 이 모듈에 필요한 모든 컬럼이 단계(38)에서 이용 가능한지가 결정된다. 각 모듈은 선택적으로 메타데이터 또는 태그를 추가하거나 업데이트하기 위해 적어도 하나의 컬럼을 필요로 한다. 컬럼이 없는 경우 또는 전제 조건으로서, 태그는 타임스탬프 또는 시퀀스 번호 또는 이 특정 세트의 흐름 데이터 맥락을 필요로 하지 않는 어떤 것들로 구성될 수 있다.
 이용 가능한 태깅 가능한 컬럼이 없는 경우, 이 모듈의 실행은 단계(45)에서 종료되고 다른 모듈로 전처리가 계속되거나 단계(46)에서 다른 단계로 실행이 계속된다. 요구되는 컬럼들이 이용 가능한 경우, 해당 컬럼들의 각 로우에 대해 무한 루프가 시작된다. 따라서 더욱 상세히 계속하면, 단계(38)에서, 태깅 가능한 컬럼이 이용 가능한지가 결정되고, 다시 이용 가능한 태깅 가능한 컬럼이 없으면, 태깅 프로세스가 단계(45)에서 종료하는 것을 보여준다. 그러나, 이것은 단지 선택적으로 이 특정 모듈에 대한 프로세스일 수 있으며, 실제로 그 순서의 관점에서 특정 모듈을 재스케줄링하거나, 그 프로세스에서 나중에 실행하거나, 또는 실제로 모듈이 결과를 기다리고 있는 경우 다른 프로세스에서 실행해야 할 수도 있다.
 선택적으로 및 바람직하게는, 시스템이 충분히 유연하여, 특정 모듈이 순서를 벗어나 실행되는 것으로 나타나면, 모듈은 선택적으로 전처리의 후속 반복시 상이한 순서 부분으로 실행되어, 모듈을 두 번 이상 재스케줄링하는 것을 회피할 수 있다. 물론 이것은 모든 경우에 가능하지 않을 수도 있으며, 이 경우 모든 모듈이 실제로 실행될 것을 확실히 하도록 모듈 재스케쥴링이 선택적으로 발생할 수 있다.
 태깅 가능한 컬럼이 이용 가능하다고 결정되었으면, 단계(39)에서 로우 데이터가 이용 가능한지 여부가 결정된다. 로우 데이터가 이용 가능한 경우, 단계(40)에서 각 로우에서 컬럼이 판독되는 것이 바람직하다. 본 발명의 적어도 일부의 실시 형태에 따르면, 전처리 방법은 로우에 의해서가 아니라 컬럼에 의해 동작하기 때문에, 각 컬럼의 각 셀은 다음 컬럼이 고려되기 전에 완전히 판독되며, 각 로우를 개별 엔티티로서 판독하는 것이 아니다. 후자의 경우 각 셀과 각 로우는 서로 다른 컬럼에 대응하게 되어 다수의 컬럼으로부터의 셀들은 다음 로우가 고려되기 전에 로우마다 판독된다. 그러나 이 경우 셀이 하나의 컬럼에서 나오기 때문에, 다수의 로우로부터의 셀은 다음 컬럼을 고려하기 전에 고려된다.
 다음으로, 단계(41)에서, 태그 데이터가 결정된다. 태그 데이터에 대한 결정 프로세스는 도면 G와 관련하여 더욱 상세히 기술된다. 단계(42)에서, 새로운 결과 컬럼이 생성될 필요가 있다면, 생성되고, 단계(43)에서 초기화된다.
 태그 데이터는 단계(44)에서 작성된 다음, 프로세스는 단계(39)로 다시 진행되어 컬럼이 완전히 종료될 때까지 계속된다. 그 후, 각 컬럼은 종료되고, 태깅 프로세스는, 단계(45)에 도시된 바와 같이, 태깅 프로세스가 종료될 때까지 선택적으로 상이한 모듈로 또는 선택적으로 상이한 컬럼으로 계속될 수 있다. 단계(46)에서, 전처리 프로세스는 다음 모듈로 계속되는 것이 바람직하다.
 태그 값의 결정은 선택적으로 하나 이상의 컬럼의 룩업 테이블을 통해, 데이터베이스를 사용하여 계산 또는 논리 유도/추론 및/또는 보다 복잡한 알고리즘을 통해 수행될 수 있다. 태깅 프로세스는 로우의 또는 로우 조합의 값의 임의의 맥락의 유의성에 대한 어떠한 결론도 내리지 않는 것이 바람직하다. 태깅 프로세스는 각각의 적격한 로우를 무차별적으로 프로세싱하고, 전체를 프로세싱하지 않고 태그를 추가하는 것이 바람직하다.
 전술한 바와 같이, 태그 데이터가 새로운 컬럼(42)에 작성될 필요가 있다면, 그 컬럼은 단계(43)에서 생성 또는 초기화될 필요가 있다.
 도 7은, 태깅된 데이터를 형성하도록 프로세싱될 때, 네트워크 흐름 데이터의 비-제한적인 예와 관련하여, 본 발명의 적어도 일부의 실시 형태에 따른 흐름 요소 태깅을 위한 예시적이고 비-제한적인 예시 세부 프로세스를 도시한다. 데이터는 비-제한적이고 예시적인 예로서 주어진다. 데이터는 흐름 수집기에 의해 수신되고 특정 타입의 흐름 메타데이터(47)의 컬럼으로서 중간 저장장치에 저장된다. 이 예에는 흐름 데이터 속성의 몇 가지 일반적이지만 비-제한적인 예들이 있다.
 태깅을 시작하는 제 1 모듈(48)은 '목적지 IP 어드레스(Destination IP Address)'의 컬럼을 보고 특정 테이블에서 룩업을 수행하여 해당 IP 어드레스의 등록된 물리적 위치를 결정한다. 이 데이터는 단순 태깅된 요소의 예로서 '목적지 지리적 위치(Destination Geolocation)'라고 칭해지는 새로운 컬럼에 작성된다.
 태깅을 다시 시작하는 제 2 모듈(49)은 컬럼 '목적지 IP 어드레스'를 사용하지만 이것은 또한 IP 어드레스를 얼마나 자주 방문했는지 추적하는 내부 데이터베이스를 사용한다. 이것은 내부 데이터베이스의 값을 증가시키고, 그 값을 데이터베이스에 저장하고, 단순 태깅된 요소의 다른 예로서 '빈도(Frequency)'라고 칭해지는 새로운 컬럼에 데이터를 작성한다.
 제 3 모듈(50)은 컬럼 '전송된 바이트(Bytes sent)' 및 컬럼 '수신된 바이트(Bytes received)'를 사용하고, 그 다음, 수식(전송된/수신된) x 1000000을 사용하여 트래픽 비율을 계산하고 이 값을 단순 태깅된 요소의 다른 예로서 새로운 컬럼 '트래픽 비율(Traffic ratio)'에 넣는다.
 제 4 모듈(51)은 컬럼 '소스 IP 어드레스(Source IP Address)' 및 컬럼 '목적지 포트(Destination Port)' 및 내부 데이터베이스를 사용하여 그 소스 IP 어드레스의 이전 활동으로부터 비정상적인 이상치인 조합의 측정을 결정한다. 해당 측정치는 복합 태깅된 요소의 예로서 새로운 컬럼 '비정상(Anomalous)'에 작성된다.
 제 5 모듈(52)은 '목적지 포트' 및 '트래픽 비율'을 사용하여 컬럼 '비정상'에 이미 존재하는 값을 더하거나 뺀다. 결과는 복합 태깅된 요소의 예로서 기존 컬럼 '비정상' 또는 선택적으로 새로운 컬럼에서 업데이트된다.
 명확성을 위해 별도의 실시 형태의 맥락에서 기술된 본 발명의 특정 특징은 또한 단일 실시 형태에서 조합하여 제공될 수 있음을 알 수 있다. 반대로, 간략화를 위해, 단일 실시 형태의 맥락에서 기술된 본 발명의 다양한 특징은 또한 개별적으로 또는 임의의 적절한 부분 조합으로 제공될 수 있다.
 본 발명이 특정 실시 형태와 관련하여 기술되었지만, 많은 대안, 수정 및 변형이 당업자에게 명백하다는 것이 분명하다. 따라서, 첨부된 청구 범위의 사상 및 넓은 범위 내에 있는 그러한 모든 대안, 수정 및 변형을 포함하고자 한다. 본 명세서에서 언급된 모든 간행물, 특허 및 특허 출원은 각각의 개별 간행물, 특허 또는 특허 출원이 구체적으로 및 개별적으로 본 명세서에 참조로 포함되는 것으로 표시된 것과 동일한 정도로 본 명세서에 참조로서 전체적으로 포함된다. 또한, 본 출원에서 임의의 참조 문헌의 인용 또는 식별은 그러한 참조가 본 발명의 선행 기술로서 이용 가능하다는 인정으로 해석되어서는 안된다.