KR102040990B1 - 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출 - Google Patents

응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출 Download PDF

Info

Publication number
KR102040990B1
KR102040990B1 KR1020130081342A KR20130081342A KR102040990B1 KR 102040990 B1 KR102040990 B1 KR 102040990B1 KR 1020130081342 A KR1020130081342 A KR 1020130081342A KR 20130081342 A KR20130081342 A KR 20130081342A KR 102040990 B1 KR102040990 B1 KR 102040990B1
Authority
KR
South Korea
Prior art keywords
packet
packet information
information
destination
network
Prior art date
Application number
KR1020130081342A
Other languages
English (en)
Other versions
KR20140034045A (ko
Inventor
애론 알. 데이비스
티모시 엠. 올드리치
Original Assignee
더 보잉 컴파니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 더 보잉 컴파니 filed Critical 더 보잉 컴파니
Publication of KR20140034045A publication Critical patent/KR20140034045A/ko
Application granted granted Critical
Publication of KR102040990B1 publication Critical patent/KR102040990B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Cardiology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 응답이 없는 아웃고잉 네트워크 트래픽을 분석해서 감염된 네트워크 장치들을 검출하기 위한 하나 이상의 시스템, 방법, 루틴, 및/또는 기술을 설명한다. 컴퓨터로 구현되는 방법은 제1 패킷 정보를 입력으로서 수신하는 루틴을 실행하는 단계를 포함할 수 있다. 본 방법은 제1 패킷 정보가 네트워크 통신의 개시(initiation)와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 루틴을 실행하는 단계를 포함할 수 있다. 본 방법은 제1 패킷 정보가 잠재적인 무응답 패킷이라고 결정되면 제1 패킷 정보를 하나 이상의 데이터 저장소에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 실행하는 단계를 포함할 수 있다. 본 방법은 제1 패킷 정보가 제2 패킷 정보의 분석을 기초로 하여 무응답 패킷이 아니라고 결정되면 제1 패킷 정보의 제거를 야기하고 및/또는 제1 패킷 정보의 추적을 종료하는 루틴을 실행하는 단계를 포함할 수 있다.

Description

응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출{DETECTION OF INFECTED NETWORK DEVICES VIA ANALYSIS OF RESPONSELESS OUTGOING NETWORK TRAFFIC}
본 발명은 네트워크 보안에 관한 것이며, 더욱 구체적으로는, 응답이 없는(responseless, 이하, '무응답'이라고도 함) 아웃고잉 네트워크 트래픽(outgoing network traffic)을 분석해서 감염된 네트워크 장치를 검출하기 위한 하나 이상의 시스템, 방법, 루틴(routine), 및/또는 기술에 관한 것이다.
컴퓨터의 이용이 널리 퍼짐에 따라서, 몇몇 잘못 인도된(misguided) 개인들 및/또는 독립체들(entities)은 의심하지 않는(unsuspecting) 사용자들 또는 독립체들의 컴퓨터들로 멀웨어(malware)를 퍼뜨리기 위해 다양한 기술들을 채용해 왔다. 멀웨어라 함은 일반적으로 컴퓨터 바이러스, 스파이 프로그램(spy program), 신청하지 않은 광고, 광고 실행문(executable), 원하지 않는 콘텐츠 등을 포함하는 악의적인(malicious), 해로운(harmful), 및/또는 원하지 않는(undesirable) 실행문 및/또는 데이터를 지칭한다. 안티-멀웨어(Anti-malware) 프로그램들은 멀웨어를 검출 및/또는 제거하도록 설계된다. 검출은 전형적으로 바이러스 정의 파일(virus definition file)들처럼 주기적으로 갱신되는 멀웨어 정의 파일들을 이용하여 사용자의 컴퓨터상에서 파일들 및 폴더들을 스캐닝(scanning)함으로써 수행된다. 멀웨어 정의 파일은 멀웨어를 시사하는 패턴들을 나타낼 수 있다. 사용자의 컴퓨터상에서의 파일들을 멀웨어 정의 파일들과 비교함으로써, 일부 멀웨어들이 검출될 수 있다. 만일, 주어진 파일에서 멀웨어가 검출되면, 그 파일은 주의(attention)를 위해서 플래그될(flagged) 수 있고, 및/또는 치료되거나(repaired) 삭제될 수 있다.
본 명세서의 이하의 부분에서 도면을 참조하여 제시되는 바와 같은 본 발명의 몇몇 태양들과 종래의 시스템들과의 비교를 통해서, 종래의 전형적인 접근법들의 추가적인 한계들 및 단점들이 통상의 기술자에게 명백하게 될 것이다.
본 발명은 네트워크 및/또는 장치 보안을 위한 방법, 네트워크 및/또는 장치 보안을 위한 데이터 처리 시스템, 및 네트워크 및/또는 장치 보안을 위한 컴퓨터 판독가능 매체를 제공하는 것을 목적으로 한다.
본 발명은 응답이 없는 아웃고잉 네트워크 트래픽을 분석해서 감염된 네트워크 장치들의 검출하기 위한 하나 이상의 시스템, 방법, 루틴, 및/또는 기술을 설명한다. 본 발명의 시스템들, 방법들, 루틴들, 및/또는 기술들은 공격자들에 의해 이용되는 다양한 기술들을 검출하기 위해 설계 및/또는 적용될 수 있다. 본 발명의 하나 이상의 실시 예는 장치 및/또는 네트워크에서 멀웨어를 검출하기 위하여, 아무런 응답 패킷을 수신하지 않거나 또는 실질적인 응답을 가지지 않은 패킷(즉, 응답이 없는 패킷들)을 수신하는 아웃고잉 네트워크 패킷(outgoing network packet)들을 분석하는 것을 설명할 수 있다.
본 발명의 하나 이상의 실시 예는 네트워크 및/또는 장치 보안을 위해 컴퓨터로 구현되는 방법을 설명한다. 본 방법은 하나 이상의 컴퓨터(예컨대, 하나 이상의 방화벽)에서 실행될 수 있으며, 하나 이상의 컴퓨터에서 실행되는 다수의 루틴들을 포함할 수 있다. 본 방법은 제1 패킷 정보를 입력으로서 수신하는 루틴을 포함할 수 있다. 본 방법은 제1 패킷 정보가 네트워크 통신의 개시(initiation)와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 루틴을 포함할 수 있다. 본 방법은, 제1 패킷 정보가 네트워크 통신의 개시와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키고 제1 패킷 정보가 잠재적인 무응답 패킷인 것으로 결정되면, 제1 패킷 정보를 하나 이상의 데이터 저장소(data store)에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 포함할 수 있다. 본 방법은 제2 패킷 정보를 입력으로서 수신하는 루틴을 포함할 수 있다. 본 방법은 제2 패킷 정보가 아웃고잉 네트워크 패킷에 응답하는 인커밍 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제2 패킷 정보를 분석하는 루틴을 포함할 수 있다. 본 방법은, 제2 패킷 정보가 아웃고잉 네트워크 패킷에 응답하는 인커밍 네트워크 패킷을 식별시키고 제1 패킷 정보가 제2 패킷 정보를 기초로 하여 무응답 패킷이 아닌 것으로 결정되면, 제1 패킷 정보를 하나 이상의 데이터 저장소에서 삭제하는 것을 야기하고 및/또는 추적을 종료하는 루틴을 포함할 수 있다.
몇몇 실시 예들에서, 제1 패킷 정보 및 제2 패킷 정보는 각각 패킷 헤더 정보일 수 있다. 몇몇 실시 예들에서, 제1 패킷 정보 및 제2 패킷 정보는 각각 일정 시간 기간에 대해 하나 이상의 패킷들에 공통되는 패킷 헤더 정보를 포함하는 정규화된 패킷 헤더 정보일 수 있다. 몇몇 실시 예들에서, 제1 패킷 정보가 네트워크 통신의 개시와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 단계는, 제1 패킷 정보가 SYN 패킷인 아웃고잉 TCP 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 본 방법은 제1 패킷 정보가 걸러져야 하는지 여부를 결정하기 위하여 제1 패킷 정보를 필터 설정 데이터와 비교함으로써, 제1 패킷 정보를 분석하는 루틴을 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 하나 이상의 데이터 저장소에서 저장되었거나 및/또는 추적되었던 이전의 아웃고잉 네트워크 패킷의 재전송인 네트워크 패킷을 제1 패킷 정보가 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 루틴을 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 에러(error)를 나타내는 패킷인 네트워크 패킷을 제2 패킷 정보가 식별시키는지 여부를 결정하기 위하여 제2 패킷 정보를 분석하는 루틴을 포함할 수 있다. 몇몇 실시 예들에서, 특정 시간 기간 동안 하나 이상의 데이터 저장소에 존재해 온 패킷 정보를 하나 이상의 데이터 저장소에서 삭제하는 것을 야기하고 및/또는 추적을 종료하는 루틴을 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 일정 시간 기간 내에서 아무런 유효한 응답 패킷을 수신하지 않은 아웃고잉 네트워크 패킷과 관련된 패킷 정보를 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 본 방법은 또한 패킷 정보를 분석하고 네트워크 또는 장치에 멀웨어가 존재할 수 있다는 것을 나타내는 하나 이상의 이벤트(event)를 생성하는 루틴을 포함할 수 있다.
본 발명의 하나 이상의 실시 예는 네트워크 및/또는 장치 보안을 위해 컴퓨터로 구현되는 방법을 설명한다. 본 방법은 하나 이상의 컴퓨터(예컨대, 하나 이상의 방화벽)에서 실행될 수 있으며, 하나 이상의 컴퓨터에서 실행되는 다수의 루틴들을 포함할 수 있다. 본 방법은 네트워크 트래픽으로부터 패킷 정보의 복수의 조각(piece)들을 입력으로서 수신하는 루틴을 포함할 수 있다. 본 방법은 일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 루틴을 포함할 수 있다. 본 방법은 아무런 응답 패킷을 수신하지 않은 아웃고잉 네트워크 패킷들과 관련된 패킷 정보를 하나 이상의 데이터 저장소에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 포함할 수 있다. 몇몇 실시 예들에서, 일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 단계는, Dead-SYN 패킷들인 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 본 방법은 네트워크 트래픽에 이상(anomalies)이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 포함할 수 있다. 본 방법은 또한 네트워크 트래픽에 이상이 있는지 여부에 대한 결정을 기초로 하여 하나 이상의 이벤트(event)를 생성할 수 있고, 상기 하나 이상의 이벤트는 네트워크 또는 장치에 멀웨어(malware)가 존재할 수 있다는 것을 나타낸다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하는 단계는 지능형 지속 위협(Advanced Persistent Threats: APTs)을 나타내는 이상을 검출하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 아무런 응답 패킷을 수신하지 않은 복수의 아웃고잉 네트워크 패킷들을 특정 소스 장치(source device)가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스(source) 및 목적지(destination)와 시간 표시(time indication)를 포함할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 동일한 소스 및 목적지를 가진 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계, 및 동일한 소스 및 목적지를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 그룹에 포함된 패킷 정보의 조각들의 수는 시간 기간 설정을 패킷 정보의 각각의 조각의 시간 표시와 비교함으로써 결정될 수 있고, 그래서 결정된 일정 시간 기간 동안 패킷 정보의 다수의 조각들이 수신된다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 복수의 소스 장치들이 동일한 멀웨어로 감염되었는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 각각의 목적지에 대해, 각각의 고유(unique) 소스에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계, 및 하나의 목적지에 대해, 각각의 고유 소스를 가진 패킷 정보의 조각들의 수가 임계값(threshold)을 초과하는지 여부를 결정하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 소스 장치가 복수의 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 각각의 소스에 대해, 각각의 고유 목적지에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계, 및 하나의 소스에 대해, 각각의 고유 목적지를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 반복해서(on a reoccurring basis) 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함할 수 있다. 그룹 내 패킷 정보의 조각들 각각은 동일한 소스 및 목적지를 가질 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 각각의 목적지에 대해, 그룹 내 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계, 및 하나의 목적지에 대해, 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 특정 시간 기간에 대해 이전(previous) 시간 기간에 대한 평균과 거의 동일한 평균 횟수로 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 하나의 목적지에 대하여, 소스당 상기 하나의 목적지를 가진 그룹 내의 패킷 정보의 조각들의 평균 수를 결정하는 단계; 상기 평균 수를 패킷 정보의 이전 그룹의 이전 평균 수와 비교하는 단계; 및 상기 평균 수와 이전 평균 수가 거의 동일한지 여부를 결정하는 단계를 더 포함할 수 있다. 그룹에 포함된 패킷 정보의 조각들의 수는 시간 기간 설정을 패킷 정보의 각각의 조각의 시간 표시와 비교함으로써 결정될 수 있고, 그래서 결정된 일정 시간 기간 동안 패킷 정보의 다수의 조각들이 수신된다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 아무런 응답 패킷도 수신하지 않는 아웃고잉 네트워크 패킷들의 반복되는 클러스터(repeating cluster)들을 특정 소스 장치가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함할 수 있다. 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 패킷 정보의 그룹을 분석하고, 각각의 소스에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계, 및 패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계를 포함할 수 있다.
몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 반복되는 클러스터들에서 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함할 수 있다. 몇몇 실시 예들에서, 본 방법은 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 포함할 수 있다. 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있을 수 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 패킷 정보의 그룹을 분석하고, 각각의 소스/목적지 쌍(pair)에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계, 및 패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계를 포함할 수 있다.
본 발명의 하나 이상의 실시 예는 네트워크 및/또는 장치 보안을 위한 데이터 처리 시스템을 설명한다. 본 시스템은, 하나 이상의 네트워크와 통신하는 하나 이상의 통신 유닛, 컴퓨터 코드를 저장하는 하나 이상의 메모리 유닛, 및 하나 이상의 통신 유닛과 하나 이상의 메모리 유닛에 연결된 하나 이상의 프로세서 유닛을 포함할 수 있다. 하나 이상의 프로세서 유닛은, 네트워크 트래픽으로부터 패킷 정보의 복수의 조각들을 입력으로서 수신하도록, 일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위해 패킷 정보의 조각들을 분석하도록, 및 아무런 응답 패킷을 수신하지 않은 아웃고잉 네트워크 패킷들과 관련된 패킷 정보를 하나 이상의 데이터 저장소에 저장하는 것 및/또는 추적하는 것을 야기하도록, 데이터 처리 시스템을 적용하기 위하여 하나 이상의 메모리 유닛에 저장된 컴퓨터 코드를 실행할 수 있다. 하나 이상의 프로세서 유닛은, 네트워크 트래픽에 이상이 있는지 여부를 결정하고 네트워크 트래픽에 이상이 있는지 여부에 대한 결정을 기초로 하여 하나 이상의 이벤트를 생성하기 위해 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하도록, 데이터 처리 시스템을 적용하기 위하여 하나 이상의 메모리 유닛에 저장된 컴퓨터 코드를 실행할 수 있고, 상기 하나 이상의 이벤트는 네트워크 또는 장치에 멀웨어가 존재할 수 있다는 것을 나타낸다. 몇몇 실시 예들에서, 데이터 처리 시스템은 방화벽일 수 있다.
본 발명의 상술한 및 다른 이점들, 태양들, 및 신규한 특징들뿐 아니라 도시된 실시 예의 세부사항들은 이하의 설명 및 도면들로부터 더욱 완전히 이해될 것이다. 상술한 일반적인 설명들은 예시적인 것이며 설명을 위한 것일 뿐, 청구항처럼 본 발명을 한정하는 것이 아니라는 점이 이해되어야 한다.
도 1은 네트워크 셋업의 예시적인 구성요소들, 커넥션들, 및 상호작용들을 도시하는 블록도의 도면을 도시하고, 본 발명의 하나 이상의 실시 예는 이러한 네트워크 셋업에서 유용할 수 있다.
도 2는 본 발명의 하나 이상의 실시 예에 따라서, 무응답(responseless) 패킷 경고 모듈 및 네트워크 셋업의 예시적인 구성요소들, 커넥션들, 및 상호작용들을 도시하는 블록도의 도면을 도시한다.
도 3은 본 발명의 하나 이상의 실시 예에 따라서, 무응답 패킷 추출기에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다.
도 4는 본 발명의 하나 이상의 실시 예에 따라서, 리스트 클린업 모듈에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다.
도 5는 본 발명의 하나 이상의 실시 예에 따라서, 양(quantity) 검출기 모듈에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다.
도 6은 본 발명의 하나 이상의 실시 예에 따라서, 목적지 모듈에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다.
도 7a는 본 발명의 하나 이상의 실시 예에 따라서, 클러스터 검출기 모듈에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다.
도 7b는 본 발명의 하나 이상의 실시 예와 관련하여 도시되는 바와 같이, 소스에 의해 시도되는 예시적인 커넥션들을 시간의 경과에 따라 도시하는 그래프의 도면을 도시한다.
도 8은 본 발명의 하나 이상의 실시 예에 따라서, 본 발명의 방법들, 루틴들, 및 해결책들 중의 하나 이상을 부분적으로 또는 전체적으로 실행할 수 있는 예시적인 데이터 처리 시스템의 도면을 도시한다.
여러 특징 및 이점들이 이하의 본 발명의 공개에서 기술되며, 첨부 도면들을 예로 이용하여 여러 실시 예들이 설명된다.
다양한 기술들이 멀웨어 공격들을 검출하는 것 및/또는 방지하는 것을 지향하지만, 이 해결책들은 공격자(attacker)들 또는 해커(hacker)들에 의해 이용되는 다양한 기술들을 처리하기 위하여 효과적이지 않은 것으로 판명되었다. 공격자에 의해서 이용되는 하나의 예시적인 기술에 따르면, 때때로 지능형 지속 위협(Advanced Persistent Threats)(이하에서, "APT" 또는 "APTs"라고 함)로 지칭되는 멀웨어는 몇몇 침입 메커니즘(entry mechanism)에 의해서 타겟 머신(target machine)을 감염시키고, 공격자를 위한 액션(action)들을 수행할 수 있는 소프트웨어 프로그램을 설치한다. 설치된 후에, APT는 전형적으로 정기적으로 되풀이하여(on a regular and recurring basis) 컴퓨터 네트워크를 통하여 호스트(host) 또는 호스트의 목록으로 "호출(call out)" 또는 "비콘(beacon)"하기 시작할 수 있다. 이러한 호출 또는 비콘의 목적은 대부분의 인커밍 트래픽(incoming traffic)을 방지하고 대부분의 아웃고잉 트래픽을 허용하는 경향이 있는 기업 또는 개인 방화벽들을 바이패스(bypass)하는 것일 수 있다. 소프트웨어 프로그램은 공격자로 하여금 다른 컴퓨팅 시스템을 조사하는 것(surveying), 감염된(infected) 장치로부터 데이터를 수집하는 것(collecting), 및/또는 정보를 공격자에게 도로 유출시키는 것(exfiltrating)과 같이, 공격자를 위한 액션들을 수행하도록 희생(victim) 장치를 제어하고 명령하는 것을 가능하게 할 수 있다. 이러한 비코닝(beaconing) 기술을 유효하게 만들기 위해서, 예컨대 공격자에 의해서 제어되는 서버 또는 IP 주소는 감염 전에 멀웨어 프로그램에 의해서 지정되고 저장될 수 있어서, 멀웨어 프로그램은 나가는 데이터(outbound data)를 전송함으로써 공격자와 통신할 수 있다. 이러한 서버 또는 IP 주소, 혹은 서버들 또는 IP 주소들의 목록은 미래에 공격자에 의해서 갱신될 수 있다. 멀웨어 프로그램이 의도된 바와 같이 기능하기 위하여, 이것은 규칙적인 간격으로 공격자-제어(attacker-controlled) 서버 또는 서버들의 그룹(흔히 Command & Control 서버 또는 C&C 서버로 지칭됨)에 도달할 필요가 있고, 그래서 제어(control)가 설정될 수 있고, 및/또는 멀웨어에 대한 갱신들이 검색될 수 있다. 오랜 시간 기간동안, 서버가 보안 회사에 의해서 위태로워지거나(compromised) 셧다운(shutdown)되는 것을 방지하기 위하여 C&C 서버(들)를 오프라인(off-line)으로 유지시킬 수 있다. 그러므로, C&C 서버(들)가 온라인(online)이 아닐 것이기 때문에, 비콘 시도(beacon attempt)의 대부분은 성공하지 못할 수 있고, 요청들은 에러를 가지고 돌아오거나 전혀 돌아오지 않을 것이다. 이러한 비콘 시도는 일반적으로 무응답인(responsesless) 것(예컨대, 응답이 없는 아웃고잉 패킷(outgoing packet)들 및/또는 네트워크 트래픽)으로 지칭될 수 있다.
본 발명은 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통해서 감염된 네트워크 장치를 검출하기 위한 하나 이상의 시스템, 방법, 루틴, 및/또는 기술을 설명한다. 본 발명의 시스템, 방법, 루틴, 및/또는 기술은 공격자에 의해 이용되는 다양한 기술들을 검출하도록 설계 및/또는 적용될 수 있는데, 검출은 악명높은 악의적인 IP 주소들에 대한 지식 또는 인식된 위협들에 대한 지문(fingerprint) 또는 서명(signature)을 요하지 않으면서 수행될 수 있다. 본 발명의 시스템, 방법, 루틴, 및/또는 기술은 공격자에 의해 이용되는 다양한 기술들을 검출하도록 설계 및/또는 적용될 수 있는데, 검출은 멀웨어 감염이 존재하는지 여부를 결정하기 위하여 상당한 양의 인간 상호작용(human interaction) 또는 수동 검사(manual inspection)를 요하지 않으면서 수행될 수 있다. 본 발명의 시스템, 방법, 루틴, 및/또는 기술은 공격자에 의해 이용되는 다양한 기술들을 검출하도록 설계 및/또는 적용될 수 있는데, 검출은 감염들의 특정 카테고리들에서 흔한 거동 패턴(behavioral pattern)을 분석함으로써 수행될 수 있다. 본 발명의 시스템, 방법, 루틴, 및/또는 기술은 공격자에 의해 이용되는 다양한 기술들을 검출하도록 설계 및/또는 적용될 수 있는데, 검출은 멀웨어 "비코닝(beaconing)" 시기(즉, 감염(infection)과 멀웨어의 활성화(activation) 사이의 시간) 동안 수행될 수 있다.
본 발명의 하나 이상의 실시 예는 장치 및/또는 네트워크상에서 멀웨어를 검출하기 위하여, 아무런 응답 패킷을 수신하지 않거나 또는 아무런 실질적인 응답을 가지지 않은 패킷(즉, 응답이 없는 패킷)을 수신하는 아웃고잉 네트워크 패킷들을 분석하는 것을 설명할 수 있다. 응답이 없는 패킷(responseless packet)이라는 용어는, 아무런 응답 패킷을 수신하지 않거나 또는 아무런 실질적인 응답을 가지지 않은 패킷, 예컨대 단순히 커넥션 에러(connection error)를 나타내는 패킷을 수신하는 아웃고잉 네트워크 패킷을 지칭할 수 있다. 일 예로서, "Dead-SYN"이라는 용어는 아무런 대응하는 응답 패킷을 수신하지 않는 TCP SYN(synchronization) 패킷(예컨대, SYN-ACK 패킷)을 지칭할 수 있다. 다른 예로서, 리셋(reset) 또는 RST 패킷은 컨넥션 에러를 나타내는 TCP 패킷을 지칭할 수 있고, 유효한 응답 패킷을 나타내지 않을 수 있다. 본 발명의 하나 이상의 실시 예는 장치 및/또는 네트워크상에서 멀웨어, 예컨대 지능형 지속 위협(APTs)을 검출하기 위해서, 무응답 패킷 추적(responseless packet tracking)(예컨대, Dead-SYN 추적)의 이용을 설명할 수 있다. 본 발명의 하나 이상의 실시 예는 무응답 패킷들(예컨대, Dead-SYN 패킷)의 양(quantity), 주기성(periodicity), 클러스터링(clustering) 및/또는 타겟 목적지(target destination)를 분석하는 것을 설명할 수 있다. 본 발명의 하나 이상의 실시 예는 멀웨어의 존재를 나타낼 수 있는 하나 이상의 상태에 대해 오퍼레이터(operator), 프로그램, 서비스, 또는 다른 개체에 경고하는 것을 설명할 수 있다. 본 발명의 하나 이상의 실시 예는 잘못된 양성 경고(false positive alert)들의 수를 제한하기 위하여 필터(filter)들 및/또는 제어 파라미터들을 이용하는 것을 설명할 수 있다.
본 발명에 대한 설명은 다양한 통신 프로토콜들에 적용될 수 있는데, 예를 들어, 개시하는 나가는 패킷 또는 개시하는 나가는 트래픽을 보내고 이에 대한 반응으로 어느 정도의 실질적인 응답(substantive response)을 기대하는 임의의 통신 프로토콜에 적용될 수 있다는 점이 이해되어야 한다. 예시적인 통신 프로토콜은 TCP, UDP, 다른 라우팅 프로토콜(routing protocol)들, 또는 임의의 다른 통신 프로토콜일 수 있다. 본 발명에 대한 다양한 설명이 공개 내용을 명확하게 설명하기 위하여 구체적인 프로토콜의 예, 예컨대 TCP 프로토콜(및 Dead-SYN 추적)의 예를 설명하더라도, 본 명세서에서 제공되는 설명은 임의의 다른 통신 프로토콜 및 무응답 패킷에 적용될 수 있다는 점이 이해되어야 한다.
도 1은 네트워크 셋업(network setup, 100)의 예시적인 구성요소들, 커넥션(connection)들, 및 상호작용(interaction)들을 도시하는 블록도의 도면을 도시하고, 본 발명의 하나 이상의 실시 예는 이러한 네트워크 셋업에서 유용할 수 있다. 네트워크 셋업(100)은 도 1에서 도시된 것보다 적거나 추가적인 구성요소들, 커넥션들, 및 상호작용들을 포함할 수 있다는 점이 이해되어야 한다. 도 1은 구성요소들, 커넥션들, 및 상호작용들로 이루어진 더 큰 네트워크일 수 있는 것의 일부에 초점을 맞추고 있다. 네트워크 셋업(100)은 네트워크(102), 방화벽(firewall, 104), 다수의 내부 장치들(예컨대, 내부 장치들(106, 108, 110, 111)), 및 다수의 외부 장치들(예컨대, 외부 장치들(112, 114, 116))을 포함할 수 있다. 네트워크(102)는 데이터 처리 시스템들과 같은 다양한 장치들과 아마도 다른 장치들 간의 통신 링크(communication link)들을 제공하기 위해서 이용되는 매체일 수 있다. 네트워크(102)는 무선 또는 유선 통신 링크와 같은 커넥션을 포함할 수 있다. 몇몇 예들에서, 네트워크(102)는 서로 통신하기 위해서 TCP IP(Transmission Control Protocol Internet Protocol) 슈트(suite)의 프로토콜들을 이용하는 네트워크들 및 게이트웨이(gateway)들의 전 세계적인 집합을 나타낸다. 몇몇 예들에서, 네트워크(102)는 인트라넷(intranet), LAN(local area network), 또는 WAN(wide area network)을 포함할 수 있다.
도 1에서 도시된 예에서, 참조번호 120은 "내부(internal)"에 있는 네트워크 셋업(100)의 일부를 나타내는데, 이는 네트워크(102)상의 악의적인 활동을 검출하는 것을 꾀하고 내부 장치들(106, 108, 110, 111)이 멀웨어, 바이러스 등을 가지지 않도록 꾀하는 방화벽 또는 몇몇 다른 장치 또는 프로그램 뒤에 존재하는 것을 의미한다. 일 예로서, 방화벽(104)은 기업 방화벽(corporate firewall)일 수 있고, 내부 부분(internal portion, 120)은 기업의 내부 네트워크에 존재하는 장치들의 전부 또는 일부일 수 있다. 내부 장치들(106, 108, 110, 111)은 데이터 처리 시스템, 서버, 프린터, 컴퓨터, 랩톱, 스마트폰, PDA, 또는 네트워크와 통신할 수 있는 임의의 다른 종류의 장치 등일 수 있다. 외부 장치들(112, 114, 116)은 내부 장치들(106, 108, 110, 111)과 같은 내부 장치들을 공격하기 위해서 설계 및/또는 프로그램된 데이터 처리 시스템들, 서버, 컴퓨터 등일 수 있다.
본 발명의 하나 이상의 실시 예는 내부 장치들(106, 108, 110, 111)과 네트워크(102) 사이에 위치한 장치상에서 작동될 수 있다. 예를 들어, 본 발명의 하나 이상의 실시 예는 방화벽(104)에서 작동될 수 있다. 방화벽(104)은, 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통하여 감염된 네트워크 장치들을 검출하기 위한 하나 이상의 시스템, 방법, 루틴, 및/또는 기술을 구현할 수 있는 컴퓨터 코드를 실행하도록 프로그램될 수 있는 하나 이상의 데이터 처리 시스템들일 수 있다. 몇몇 실시 예들에서, 본 발명의 시스템들, 방법들, 루틴들, 및/또는 기술들 중의 하나 이상은 하드웨어로서 예컨대 방화벽(104)과 같은 하나 이상의 장치들 내에 배치되는 것으로 설계될 수 있다. 몇몇 실시 예들에서, 본 발명의 시스템들, 방법들, 루틴들, 및/또는 기술들 중의 하나 이상은 하드웨어 및 소프트웨어의 조합으로서 설계될 수 있다. 몇몇 실시 예들에서, 본 발명의 시스템들, 방법들, 루틴들, 및/또는 기술들은 하나 이상의 방화벽 장치를 이용해서 구현될 수 있다. 예를 들어, 하나 이상의 방화벽 장치들은 더 큰 유닛(larger unit)으로서 함께 작동할 수 있다.
도 2는 네트워크 셋업(200)의 예시적인 구성요소들, 커넥션들, 및 상호작용들을 도시하는 블록도의 도면을 도시하는데, 본 발명의 하나 이상의 실시 예는 이러한 네트워크 셋업에서 유용할 수 있다. 도 2는 네트워크 트래픽(network traffic, 202)의 표현, 패킷 헤더 캡쳐 엔진(packet header capture engine, 204), 패킷 헤더 리스트(packet headers list, 206), 무응답 패킷 경고 모듈(responseless packet alert module, 208), 및 이벤트 리스트(event list, 210)를 도시한다. 네트워크 트래픽(202)은 원시패킷(raw packet)들, 예컨대 도 1의 네트워크(102)와 같은 네트워크를 통해서 흐르는 원시패킷들의 흐름을 포함할 수 있다. 패킷 헤더 캡쳐 엔진(204)은 네트워크 트래픽(202)으로부터 원시패킷들을 모니터링 및/또는 분석할 수 있고, 패킷들의 헤더들을 추출 및/또는 캡쳐할 수 있다. 패킷 헤더들은 소스 정보(예컨대, 소스 IP 주소(Src), 소스 포트 번호(SrcPort)) 및 목적지 정보(예컨대, 목적지 IP 주소(Dst), 목적지 포트 번호(DstPort))와 같은 라우팅(routing) 정보를 포함하는 패킷에 대한 정보를 포함할 수 있다. 본 발명의 몇몇 실시 예들에서, "목적지(destination)"는 단지 하나의 목적지(예컨대, 하나의 컴퓨터, IP 주소 등) 이상을 지칭할 수 있다는 점이 이해되어야 한다. 예를 들어, 목적지는 일반적으로 특정 목적지들의 하나 이상의 그룹들, 예컨대 네트워크 또는 IP 주소들 등의 범위들을 지칭할 수 있다. 그래서, 본 명세서에서 설명된 다양한 실시 예들이 목적지를 논한다고 하더라도, 다양한 실시 예들 또는 대안적인 실시 예들은 본 명세서에서 설명된 기술들을 목적지들의 하나 이상의 그룹에 적용할 수 있는 것으로 고려된다는 점이 이해되어야 한다.
몇몇 실시 예들에서, 패킷 캡쳐 엔진(204)은 헤더들을 "정규화(normalize)"할 수 있는데, 이는 일정 시간 기간(a period of time)에 대해, 예를 들어 1분에 대해 네트워크 트래픽(202)에서 보이는 모든 동일한 헤더들을 그룹핑(group)할 수 있다는 것을 의미한다. 패킷 헤더 캡쳐 엔진(204)은 당해 시간 기간 내에서 최초 패킷의 시간(시작시간) 및 당해 시간 기간 내에서 마지막 패킷의 시간(종료시간)을 저장할 수 있다. 패킷 헤더 캡쳐 엔진(204)은 예를 들어, 패킷 헤더 리스트(206)에 패킷 헤더들을 저장할 수 있다. 패킷 헤더 리스트는 데이터베이스 또는 정보의 로우(row)들을 포함할 수 있는 임의의 다른 데이터 저장소일 수 있다. 만일 헤더 캡쳐 엔진(204)이 헤더들을 정규화한다면, 헤더 리스트(206)의 하나의 로우(row)에서 일정 시간 기간에 대해, 그 시간 기간 동안 동일한 헤더가 보인 횟수의 카운트(count)를 포함하여, 동일한 헤더들의 각각의 그룹을 저장할 수 있다. 헤더 캡쳐 엔진(204)은 또한 헤더들의 각각의 그룹의 시작시간 및 종료시간을 저장할 수 있다. 이러한 관점에서, 패킷 헤더 정보는 정보를 여전히 보존하면서도 더 적은 로우(row)들의 헤더 리스트로 압축될 수 있다.
패킷 헤더 리스트(206)는 무응답 패킷 경고 모듈(208)로의 입력으로서 제공될 수 있다. 도 2에서 도시된 예는 분석을 위해서 네트워크 트래픽이 어떻게 캡쳐되고(captured), 축적되고(accumulated), 및/또는 저장될(stored) 수 있는지에 대한 단지 하나의 예라는 점이 이해되어야 한다. 본 발명의 다른 실시 예들에서, 무응답 패킷 경고 모듈(208)은 패킷 정보의 다른 형태를 입력으로서 받아들일 수 있다. 예를 들어, 무응답 패킷 경고 모듈(208)은 완전한 원시패킷 캡쳐, 트래픽 및/또는 패킷 스트림(stream) 정보, 및/또는 다른 포맷(format)의 패킷 정보를 분석하도록 적용될 수 있다. 다른 예로서, 무응답 패킷 경고 모듈(208)은 정규화된 헤더들을 분석하는 것 대신 각각의 패킷 헤더를 분석할 수 있다. 이 예들에서, 헤더 리스트(206)는 시작시간 및 종료시간 대신 각각의 헤더에 대한 정확한 또는 근사적 도착 시간을 저장할 수 있다. 본 명세서에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들의 명확한 설명을 제공하기 위하여, 본 공개는 무응답 패킷 경고 모듈(208)을 위한 패킷 정보의 소스로서 예를 들어 헤더 리스트(206)로부터 정규화된 헤더들에 초점을 맞출 것이다. 하지만, 본 명세서에서 설명된 다양한 시스템들, 방법들, 루틴들, 및/또는 기술들이 패킷 정보의 다른 소스들에도 적용될 수 있다는 점이 이해되어야 한다.
무응답 패킷 경고 모듈(208)은 다수의 구성요소들, 루틴들, 알고리즘들, 코드, 설정 데이터 등을 포함할 수 있다. 무응답 패킷 경고 모듈(208)은 무응답 패킷 추출기(responseless packet extractor, 212), 필터 설정(config) 파일(214), 추적된 커넥션 리스트(tracked connections list, 216), 리스트 클린업 모듈(list cleanup module, 218), 양 검출기 모듈(quantity detector module, 220), 목적지 검출기 모듈(destination detector module, 222), 및 클러스터 검출기 모듈(cluster detector module, 224) 등을 포함할 수 있다. 무응답 패킷 추출기(212)는 헤더 리스트(206)로부터 헤더 항목들(header entries)을 판독하고 분석하도록 프로그램되고, 및/또는 적용될 수 있다. 네트워크 트래픽은 하나 이상의 다양한 통신 프로토콜을 이용할 수 있고, 무응답 패킷 추출기(212)는 사용되고 있는 프로토콜과 관련이 있는 패킷 헤더 항목들을 판독하고 분석할 수 있다. 몇몇 실시 예들에서, 네트워크 트래픽은 TCP 프로토콜을 이용할 수 있고, 이 경우에 무응답 패킷 추출기(212)는 TCP 패킷 헤더 항목들을 판독하고 분석할 수 있다. 무응답 패킷 추출기(212)는 무응답 패킷들, 예를 들어 Dead-SYN 패킷들을 검출하고, 추출하고, 및/또는 이들의 저장을 개시하거나 초래할 수 있다. 무응답 패킷 경고 모듈(208)은 필터 설정(filter config) 데이터(214), 예를 들어 하나 이상의 필터 설정(config) 파일을 입력으로서 이용하거나 받아들일 수 있다. 무응답 패킷 경고 모듈(208)은 추적된 커넥션 리스트(216)로 데이터 및/또는 명령어(command)들을 전달할 수 있고, 추적된 통신 리스트는 무응답 패킷 추출기(212)로부터의 통신의 결과로서 그 데이터 저장소에 데이터를 추가하거나 및/또는 그 데이터 저장소로부터 데이터를 삭제할 수 있다.
추적된 커넥션 리스트(216)는 데이터베이스 또는 다른 데이터 저장소, 예를 들어 용이하게 검색될 수 있는 데이터 저장소일 수 있다. 추적된 커넥션 리스트에서 각각의 항목(entry) 또는 로우(row)는 고유한 "튜플(tuple)"을 포함할 수 있다. 튜플은 데이터의 복수의 조각들을 포함하는 패킷에 대한 정보를 지칭할 수 있다. 일 예로서, 튜플은 시작시간 및 종료시간(헤더 캡쳐 엔진(204)에 의해 결정되는 것과 같은 것), 그리고 소스 정보(예컨대, 소스 IP 주소(Src), 소스 포트(SrcPort)), 목적지 정보(예컨대, 목적지 IP 주소(Dst), 목적지 포트(DstPort)), 만일 프로토콜이 플래그(flag)를 이용한다면 하나 이상의 플래그(예컨대, TCP-Flag), 및 시작시간에 시작해서 종료시간에 종료하는 시간 기간에 대하여 헤더 캡쳐 엔진(204)에 의해 보이는 동일한 헤더들의 양과 같은 패킷 헤더로부터의 정보를 포함할 수 있다. 본 발명의 몇몇 실시 예들에서, "목적지(destination)"는 단지 하나의 목적지(예컨대, 하나의 컴퓨터, IP 주소 등) 이상을 지칭할 수 있다는 점이 이해되어야 한다. 예를 들어, 목적지는 일반적으로 특정 목적지들의 하나 이상의 그룹들, 예컨대 네트워크 또는 IP 주소들 등의 범위들을 지칭할 수 있다. 그래서, 본 명세서에서 설명된 다양한 실시 예들이 목적지를 논한다고 하더라도, 다양한 실시 예들 또는 대안적인 실시 예들은 본 명세서에서 설명된 기술들을 목적지들의 하나 이상의 그룹에 적용할 수 있는 것으로 고려된다는 점이 이해되어야 한다. 추적된 커넥션 리스트는 리스트 클린업 모듈(218)과 통신할 수 있다. 리스트 클린업 모듈은 추적된 커넥션 리스트에서 항목들을 유지하기 위해 추적된 커넥션 리스트와 통신할 수 있는데, 예를 들어 일정 시간 기간 동안 리스트에 존재한 항목들을 삭제할 수 있다.
다수의 독립적 검출기 프로세스(detector process)들이 추적된 커넥션 리스트(216)와 통신할 수 있고, 추적된 커넥션 리스트(216)에 저장된 정보를 이용할 수 있다. 검출기 프로세스들의 예는 양 검출기(220), 목적지 검출기(222), 및 클러스터 검출기(224)이다. 이 세 개의 프로세스들은 본 명세서에서 상세하게 설명되며, 본 공개는 유사한 방식으로 기능하는 다른 검출기 프로세스들도 예상한다. 각각의 검출기 프로세스는 추적된 통신 리스트(216)로부터의 항목들을 입력으로서 받아들인다. 각각의 항목은 상술한 바와 같은 튜플일 수 있다. 각각의 검출기 프로세스는 하나 이상의 이벤트, 예를 들어 분석을 위해서 다른 개체로 전달될 수 있는 이벤트를 출력할 수 있다. 이 이벤트들은 관심이 있는 네트워크 트래픽에서 이상이 검출되었다는 것을 나타낼 수 있다. 예를 들어, 오퍼레이터는 수동으로(manually) 이벤트의 로그(log)를 검사할 수 있고, 문제가 되는 소프트웨어(offending software)를 삭제하거나 장치가 악의적인 액션을 수행하는 것을 방지하도록 조치를 취할 수 있다. 다른 예로서, 이벤트들은 소프트웨어 패키지, 이벤트 코릴레이션 툴(event correlation tool), 이벤트 로깅 메카니즘(event logging mechanism), 또는 다른 외부 개체에 의해서 분석될 수 있고, 이 개체들은 관심이 있는 상황들을 검출할 수 있고, 및/또는 위협 레벨(threat level)을 이벤트들에 할당할 수 있다.
도 3은 본 발명의 하나 이상의 실시 예에 따라서, 무응답 패킷 추출기(300)에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다. 무응답 패킷 추출기(300)는 도 2의 무응답 패킷 추출기(212)와 유사할 수 있다. 무응답 패킷 추출기(300)는 도 2의 패킷 헤더 리스트(206) 및 추적된 커넥션 리스트(216)와 각각 유사할 수 있는 패킷 헤더 리스트(302) 및 추적된 커넥션 리스트(304)와 통신할 수 있다.
무응답 패킷 추출기(300)는 헤더 리스트(302)로부터 정규화된 헤더 항목들을 판독하고 분석하도록 프로그램되고, 및/또는 적용될 수 있다. 몇몇 실시 예들에서, 무응답 패킷 추출기(300)는 정규화된 패킷 헤더 항목들(예컨대, TCP 패킷 헤더 항목들)을 판독하고 분석할 수 있다. 무응답 패킷 추출기(300)는 무응답 패킷들, 예를 들어 Dead-SYN 패킷들을 검출하고, 추출하고, 및/또는 이들의 저장을 개시하거나 초래하기 위하여 다수의 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 이용할 수 있다. 단계 306에서, 정규화된 헤더 또는 레코드(record)는 헤더 리스트(302)에서 현재 항목 또는 로우(row)로부터 판독되거나 검색될 수 있다. 이 레코드는 패킷을 식별시키는 정보의 고유한 세트를 포함할 수 있다. 몇몇 예들에서, 정보는 이하의: 소스 정보(예컨대, Src, SrcPort), 목적지 정보(예컨대, Dst, DstPort), 만일 프로토콜이 플래그를 이용한다면 하나 이상의 플래그(예컨대, TCP Flag), 시작시간, 종료시간, 및 시간 기간 내에서(즉, 시작시간과 종료시간 사이에서) 나타나고 있는 동일한 패킷 헤더들의 양을 포함한다. 다른 예들에서, 예를 들어, 헤더들이 시간 기간에 대하여 집계되는(aggregated) 대신에 개별적으로 캡쳐되는 경우에, 정규화된 헤더 정보는 시작시간 및 종료시간 대신에 단일한 시간을 포함할 수 있다. 패킷을 고유하게 식별시키는 이러한 정보의 조각들은 "정규화된(normalized)" 필드(field)들이라고 지칭될 수 있다. 정규화된 필드들은 헤더 리스트(302)에서의 각각의 패킷에 대해 저장될 수 있고, 추적된 커넥션 리스트(304)에서 각각의 커넥션에 대해 저장될 수 있다. 예를 들어, 추적된 커넥션 리스트에서 사용된 바와 같은 커넥션이라는 용어는 정규화된 패킷과 유사한 정보를 지칭할 수 있다. 하지만, 커넥션이라는 용어는 정규화된 패킷이 완전한 네트워크 트랜잭션(transaction) 또는 핸드쉐이크(handshake), 예컨대 TCP 핸드쉐이크의 조각이라는 것을 시사한다.
본 공개에 의해 고려되는 통신 프로토콜의 타입의 제한으로서 의도된 것이 아니라 본 명세서에서의 기술을 완전히 설명하는 것을 돕기 위해 의도된 네트워크 트랜잭션 또는 핸드쉐이크의 일 예로서, TCP 핸드쉐이크가 논의된다. 일반적으로, TCP 프로토콜은 네트워크, 예컨대 인터넷을 통하여 커넥션을 수립하기 위해 3-웨이(3-way) 핸드쉐이크를 요한다. TCP의 3-웨이 핸드쉐이킹(three way handshaking) 기술은 SYN, SYN-ACK, ACK로서 지칭될 수 있는데, 두 개의 컴퓨터 사이에서 TCP 세션을 교섭하고(negotiate) 시작하기 위해서 TCP에 의해서 전송될 세 개의 메시지가 존재하기 때문이다. TCP 핸드쉐이킹 메카니즘은 통신하려고 시도하는 두 개의 컴퓨터들이 데이터, 예컨대 SSH 및 HTTP 웹브라우저 요청들을 전송하기 전에 네트워크 TCP 소켓(socket) 커넥션의 파라미터들을 교섭할 수 있도록 설계된다. TCP 프로토콜에 따라서 전송되는 제1 메시지는 SYN 메시지 또는 패킷인데, 이것은 소스(src)로부터 목적지(dst)로 전송된다. TCP 프로토콜에 따라서 전송되는 제2 메시지는 SYN-ACK 메시지 또는 패킷인데, 이것은 목적지(dst)로부터 소스(src)로 전송된다. TCP 프로토콜에 따라서 전송되는 제3 메시지는 ACK 메시지 또는 패킷인데, 이것은 소스(src)로부터 목적지(dst)로 전송된다. 무응답 패킷 추출기(300)는, 거의 모든 TCP 트랜잭션이 SYN 메시지 또는 패킷을 가지고 시작한다는 것을 인식하도록 프로그램되고 및/또는 적용될 수 있으며, 적절한 커넥션이 형성되도록 하기 위하여 src는 dst로부터 몇몇 응답을 수신해야 한다. TCP 프로토콜에 따라서, 응답 패킷이 SYN-ACK가 아닌 다른 임의의 메시지 타입인 것이 가능할 수 있다. 그러므로, 무응답 패킷 추출기(300)는 응답 데이터의 타입에 대해 유연할 수 있도록 프로그램되고 및/또는 적용될 수 있다.
단계 308에서, 무응답 패킷 추출기(300)는 패킷(예컨대, TCP 패킷)이 개시통신(initial communication)(예컨대, SYN 메시지 또는 패킷)인지 여부를 결정하기 위하여, 예컨대 헤더의 플래그 또는 플래그 필드(예컨대, TCP Flag)를 분석함으로써 단계 306에서 판독된 정규화된 헤더를 분석할 수 있다. 만일, 패킷이 개시통신(예컨대, SYN 메시지)이면, 무응답 패킷 추출기(300)는 이 패킷을 트랜잭션 또는 통신의 시작 또는 개시로서 이해할(interpret) 수 있다. 이 패킷이 트랜잭션 또는 네트워크 통신의 개시(initiation)와 관련이 있다면 그리고 패킷 정보가 후술하는 바와 같이 잠재적 무응답 패킷(potentially responseless packet)인 것으로 결정되면, 패킷 추출기(300)는 이 패킷의 패킷 정보의 저장 및/또는 추적을 초래할 수 있다. 만일, 패킷이 개시통신(예컨대, SYN 메시지)이면, 단계 310에서, 무응답 패킷 추출기(300)는 패킷을 걸러내야 할지(filter out) 여부를 결정할 수 있는데, 이는 패킷이 추적되지 않을 것이라는 것을 의미한다. 패킷들은 다양한 이유로 다양한 방식에 의해서 걸러질 수 있다. 예를 들어, 신뢰되는(trusted) 목적지와의 커넥션을 개시하려고 시도하고 있는 패킷들이 걸러질 수 있다. 단계 310에서, 무응답 패킷 추출기(300)는 예컨대 설정 파일 또는 설정 데이터베이스로부터 설정 데이터(312)를 이용할 수 있다. 필터 설정 데이터는 사용자가 생성한 것(user-created) 및/또는 사용자가 제공한 것(user-provided)일 수 있고, 이것은 특정 패킷들이 걸러져야 한다는 것을 나타내는 필드 등의 리스트를 포함할 수 있다. 예를 들어, 필터 설정 데이터는 걸러져야 하는 소스들, 목적지들 및/또는 소스/목적지 조합들의 리스트를 포함할 수 있다. 다른 예로서, 필터 설정 데이터는 시간, 시간 기간, 또는 걸러져야 하는 패킷들을 나타내는 다른 시간-기반 측정기준들(time-based metrics)을 포함할 수 있다. 이러한 시간-기반 필터링(filtering)은, 예를 들어 사용자들 또는 관리자들이 예컨대 유지보수(maintenance) 또는 계획정지(planned outage)를 위해 일정 시간 기간 동안 네트워크 또는 기계가 다운(down)될 것임을 알고 있다면, 유용할 수 있다. 단계 310에서, 무응답 패킷 추출기(300)는 단계 306에서 판독된 정규화된 헤더를 필터 설정 데이터(312)와 비교할 수 있고, 만일 패킷이 걸러져야 한다는 것을 파일이 나타내면 무응답 패킷 추출기(300)는 커넥션을 추적하지 않고 헤더 리스트(302)에서 다음 로우(row) 또는 정규화된 헤더로 넘어간다(단계 314).
만일 헤더/패킷(예컨대, TCP SYN 헤더/패킷)이 단계 310에서 걸러지지 않은 경우에, 단계 316에서, 재전송 프로토콜(retransmission protocol)(예컨대, TCP 재전송 프로토콜)에 의해서 개시통신 패킷이 야기되었다고 무응답 패킷 추출기(300)가 결정하면 개시통신 패킷(예컨대, TCP SYN 메시지)이 삭제된다(즉, 추적되지 않는다). 일 예로서, TCP 프로토콜에 따라서, TCP SYN 메시지는 패킷이 무응답이거나(unresponsive) 데드(dead)인 것으로 결정되기 전에 네 번 시도될 수 있다. 개시 SYN 메시지 후에 잇따른 SYN 메시지 시도들은 재전송이라고 지칭될 수 있다. 그러므로, 단계 316에서, 만일 개시통신 패킷(예컨대, SYN 메시지)이, 예컨대 동일한 헤더 정보(예컨대, src, dst, src-port, dst-port 등)를 가지고 일정 시간 기간 내에 잇따른(subsequent) 개시통신 패킷이라면, 이것은 재전송인 것으로 결정될 수 있다. 몇몇 실시 예들에서, 무응답 패킷 추출기(300)는 유사한 개시통신 패킷이 최근에 검출되었는지 여부를 결정하기 위하여 추적된 커넥션 리스트(304)와 통신할 수 있다. 몇몇 실시 예들에서, 무응답 패킷 추출기(300)는 패킷 그 자체, 예컨대 패킷의 헤더에서의 정보로부터 패킷이 재전송이라는 것을 결정할 수 있다. 재전송 메시지를 삭제하는 것(즉, 추적하지 않는 것)은 동일한 TCP 커넥션들의 중복 추적을 방지할 수 있다.
단계 318에서, 만일 개시통신 패킷 또는 메시지(예컨대, TCP SYN 패킷 또는 메시지)가 걸러지지 않았거나 삭제되었다면, 추적된 커넥션 리스트(304)가 예를 들어 정규화된 헤더 당 하나의 항목 또는 로우(row)를 이용해서 잠재적 무응답 패킷으로서 정규화된 헤더 정보를 저장하고, 보관하고, 및/또는 추적할 수 있도록, 정규화된 헤더가 추적된 커넥션 리스트(304)로 전송될 수 있다. 예를 들어, 만일 정규화된 헤더가 시작시간 및 종료시간 사이에서 보인 유사한 헤더들의 수(즉, 카운트(count))를 나타내는 필드를 포함하는 경우에, 카운트가 1 이상이면 무응답 패킷 추출기(300)는 정규화된 헤더 정보를 저장하거나 보관할 수 있다. 이러한 관점에서, 잠재적 무응답 패킷들, 예컨대 Dead-SYN 패킷들이 추적된 커넥션 리스트에 추가될 수 있다. 만일 추적된 커넥션 리스트에 추가된 커넥션이 예를 들어 커넥션에 대해 응답 또는 답장(reply)이 보였다고 결정하는 임의의 다른 루틴, 단계 등에 의해서 추후에 삭제되지 않는다면, 커넥션은 멀웨어를 나타낼 수 있는 무응답 패킷으로 플래그될(flagged) 수 있다. 추적된 커넥션 리스트로부터 커넥션들을 삭제할 수 있는 루틴, 단계들, 구성요소들, 및/또는 규칙들 등은 이하에서 설명될 것이다. 단계 318 이후에, 무응답 패킷 추출기(300)는 헤더 리스트(302)에서 다음 로우(row) 또는 정규화된 헤더로 넘어간다(단계 314).
단계 308에서, 무응답 패킷 추출기(300)는 패킷(예컨대, TCP 패킷)이 개시통신 패킷(예컨대, SYN 메시지 또는 패킷)인지 여부를 결정하기 위하여, 예컨대 헤더의 플래그 또는 플래그 필드(예컨대, TCP Flag field)를 분석함으로써 단계 306에서 판독된 정규화된 헤더를 분석할 수 있다. 만일 패킷이 개시통신 패킷(예컨대, SYN 메시지)이 아니면, 무응답 패킷 추출기(300)는 패킷을 추가로 분석할 수 있다. 단계 320 및 단계 322에서, 무응답 패킷 추출기(300)는 단계 306에서 판독된 패킷 헤더가, 추적된 커넥션 리스트(304)에서 추적되고 있는 교신에 대한 응답 또는 답장 패킷인지 여부를 결정할 수 있다. 만일 패킷이 응답 또는 답장이라면, 이전에 분석된 개시통신 패킷(예컨대, TCP SYN 패킷)은 무응답 패킷이 아니고 멀웨어로서 플래그되지 않을 수 있다. 단계 320에서, 무응답 패킷 추출기(300)는 항목 또는 커넥션이, 인스턴트 헤더(instant header)(Src-to-Dst)와 비교하여 필수적으로 리버스된(reversed) 헤더(Dst-to-Src) 정보를 포함하는 데이터베이스에 이미 존재하는지 여부를 결정하기 위하여 추적된 커넥션 리스트(304)와 통신할 수 있다. 만일, 특정 Src 및 Dst를 가진 TCP SYN 패킷이 통신 프로토콜(예컨대, TCP 프로토콜)에 따라서 전송된다면, 개시통신 패킷에 대한 응답 패킷(예컨대, SYN 패킷)은 개시통신 패킷의 Dst와 동일한 Src 및 개시통신 패킷의 Src와 동일한 Dst를 가지는 것으로 예상될 수 있다. 만일 현재 패킷(immediate packet)과 저장된 패킷의 헤더 정보가 이러한 리버스된 방식으로 일치한다면, 현재 패킷은 추적된 커넥션 리스트(304)에 미리 저장되어 있는 커넥션에 대한 응답 패킷일 수 있다. 만일 현재 패킷과 저장된 패킷의 헤더 정보가 일치하지 않는다면, 패킷은 무시되고(즉, 추적되지 않고), 무응답 패킷 추출기(300)는 헤더 리스트(302)에서 다음 로우(row) 또는 정규화된 헤더로 넘어간다(단계 314).
단계 322에서, 무응답 패킷 추출기(300)는 응답 패킷이 실질적인 응답을 포함하지 않는다는 것을 나타내는 플래그(예컨대, TCP Flag) 또는 다른 데이터를 응답 패킷이 포함하는지 여부를 결정할 수 있다. 일 예로서, 플래그는 컨넥션 에러(예컨대, TCP 프로토콜에서의 RST(reset) 플래그)를 나타낼 수 있다. TCP 프로토콜에 따라서, 커넥션이 거절되었음을 나타내기 위해 리셋 패킷이 이용된다. 만일 패킷이 실질적인 응답을 포함한다면(예컨대, 컨넥션 에러가 아니라면), 무응답 패킷 추출기(300)는 예컨대 추적된 커넥션 리스트(304)와 통신함으로써 패킷 또는 헤더(Src-to-Dst)를 추적되는 것으로부터 삭제할 수 있다(단계 324). 응답 패킷이 목적지로부터 수신되었고 응답 패킷이 실질적(즉, 리셋 패킷 또는 거절된 커넥션을 나타내는 패킷이 아님)이었기 때문에 무응답 패킷 추출기(300)는 패킷을 추적되는 것으로부터 삭제할 수 있다. 패킷이 무응답 패킷(예컨대, Dead-SYN)이 아니라고 결정되었기 때문에 무응답 패킷 추출기(300)는 패킷을 추적되는 것으로부터 삭제할 수 있다. 그러므로, 패킷은 잠재적인(potential) 멀웨어로서 플래그되지 않을 것이다. 추적된 커넥션 리스트(304)로부터 패킷을 삭제한 후에, 무응답 패킷 추출기(300)는 헤더 리스트(302)에서 다음 로우(row) 또는 정규화된 헤더로 넘어갈 수 있다(단계 314). 단계 322에서, 만일 무응답 패킷 추출기(300)가 패킷이 실질적인 패킷이 아니라고, 예컨대 리셋 패킷 또는 컨넥션 에러를 나타내는 패킷이라고 결정하면, 패킷은 무시되고(즉, 해당 패킷은 추적된 커넥션 리스트로부터 삭제되지 않고) 무응답 패킷 추출기(300)는 헤더 리스트(302)에서 다음 로우(row) 또는 정규화된 헤더로 넘어갈 수 있다(단계 314). 이러한 관점에서, 무응답 패킷 추출기(300)는 커넥션-에러 또는 리셋 패킷을 아무런 응답이 전혀 돌아오지 않는 것으로 취급할 수 있다.
도 4는 본 발명의 하나 이상의 실시 예에 따라서, 리스트 클린업 모듈(400)에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다. 리스트 클린업 모듈(400)은 도 2의 리스트 클린업 모듈(218)과 유사할 수 있다. 리스트 클린업 모듈(400)은 도 2의 추적된 커넥션 리스트(216)와 유사할 수 있는 추적된 커넥션 리스트(404)와 통신할 수 있다.
리스트 클린업 모듈(400)은 추적된 커넥션 리스트(404)에서 항목들을 유지하기(maintain) 위하여 추적된 커넥션 리스트(404)와 통신할 수 있는데, 예를 들어 일정 시간 기간 동안 리스트에 존재해왔고 더 이상 추적을 요하지 않는 항목들을 추적된 통신 리스트(404)가 삭제하도록 추적된 커넥션 리스트(404)와 통신할 수 있다. 리스트 클린업 모듈(400)은 추적된 커넥션 리스트(404)에서 항목들을 유지하기 위하여 다수의 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 이용할 수 있다. 단계 406에서, 리스트 클린업 모듈(400)은 추적된 통신 리스트(404)에서 항목 또는 로우(row)(예컨대, 현재의 항목 또는 로우(row))를 선택하고 판독할 수 있다. 단계 408에서, 리스트 클린업 모듈(400)은 커넥션이 더 이상 추적되지 않아야 할 정도로 충분히 오랫동안 리스트에서 존재해왔는지 여부를 결정할 수 있다. 리스트 클린업 모듈(400)은 패킷 헤더에서의 시간 필드(예컨대, 종료시간)를 하나 이상의 타임 리미트(time limit), 예컨대 최대 보관 타임 리미트와 비교할 수 있다. 예를 들어, 만일 정규화된 헤더가 시작시간과 종료시간을 포함한다면, 종료시간은 추적된 커넥션이 보인 가장 최근 시간을 나타낼 수 있기 때문에, 리스트 클린업 모듈(400)은 타임 리미트를 종료시간과 비교할 수 있다. 타임 리미트는 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 타임 리미트 설정 데이터(410)에서 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 특정된 것일 수 있다. 타임 리미트(들)는 다양한 값들, 예컨대 날(day), 주(week), 및/또는 달(month) 등으로 설정될 수 있다. 단계 408을 참조하면, 추적된 커넥션이 타임 리미트(들)를 초과하지 않는 경우에, 리스트 클린업 모듈(400)은 추적된 커넥션 리스트(404)와 관련하여 아무런 액션도 개시하지 않을 수 있고, 단계 406으로 돌아갈 수 있고, 추적된 커넥션 리스트(404)에서 다음 항목 또는 로우(row)를 선택 및/또는 판독할 수 있다.
리스트 클린업 모듈(400)은 다양한 이유로 추적된 커넥션 리스트에서 항목들을 삭제할 수 있다. 예를 들어, 타임 리미트는, 일정 시간 기간 후에 플래그된(flagged) 커넥션이 적어도 취급될 것이라면 그때까지 그것이 취급되거나 다루어질 것이라는 결정을 나타낼 수 있다. 다른 예로서, 본 발명의 하나 이상의 실시 예를 구현하기 위해 사용된 시스템(들)은 제한된 리소스들, 예컨대 데이터 스토리지(data storage)를 가질 수 있다. 커넥션들을 삭제하기 위한 타임 리미트들은 추적된 커넥션 리스트가 너무 많은 리소스들 및/또는 너무 많은 스토리지 공간을 소비하는 것을 방지하기 위한 합리적인 방식일 수 있다.
단계 412에서, 만일 추적된 커넥션이 타임 리미트(들)보다 더 오래되었으면, 리스트 클린업 모듈(400)은 추적된 통신 리스트(404)가 커넥션을 삭제할 수 있도록 추적된 커넥션 리스트(404)와 통신할 수 있다. 이후, 리스트 클린업 모듈(400)은 개시될 수 있고, 단계 406으로 돌아갈 수 있고, 추적된 커넥션 리스트(404)에서 다음 항목 또는 로우(row)를 선택 및/또는 판독할 수 있다.
도 5는 본 발명의 하나 이상의 실시 예에 따라서, 양 검출기((quantity detector, 500)에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다. 양 검출기(500)는 도 2의 양 검출기(220)와 유사할 수 있다. 양 검출기(500)는 도 2의 추적된 커넥션 리스트(216)와 유사할 수 있는 추적된 커넥션 리스트(504)와 통신할 수 있다. 양 검출기(500)는 추적된 커넥션 리스트(504)에 저장된 정보를 이용할 수 있다.
양 검출기(500)는 추적된 통신 리스트(504)로부터 항목들을 입력으로서 받아들일 수 있다. 각각의 항목은 튜플을 포함할 수 있다. 일 예로서, 튜플은 시작시간 및 종료시간, 그리고 시작시간에 시작해서 종료시간에 종료하는 시간 기간 동안 헤더 캡쳐 엔진에 의해 보이는 바와 같은 소스 정보(예컨대, 소스 IP 주소(Src), 소스 포트(SrcPort)) 및 목적지 정보(예컨대, 목적지 IP 주소(Dst), 목적지 포트(DstPort))와 같은 고유한 패킷 헤더 정보를 포함할 수 있다. 본 발명의 몇몇 실시 예들에서, "목적지(destination)"는 단지 하나의 목적지(예컨대, 하나의 컴퓨터, IP 주소 등) 이상을 지칭할 수 있다는 점이 이해되어야 한다. 예를 들어, 목적지는 일반적으로 특정 목적지들의 하나 이상의 그룹들, 예컨대 네트워크 또는 IP 주소들 등의 범위들을 지칭할 수 있다. 그래서, 본 명세서에서 설명된 다양한 실시 예들이 목적지를 논한다고 하더라도, 다양한 실시 예들 또는 대안적인 실시 예들은 본 명세서에서 설명된 기술들을 목적지들의 하나 이상의 그룹에 적용할 수 있는 것으로 고려된다는 점이 이해되어야 한다. 양 검출기(500)는 하나 이상의 이벤트(단계 530 및 이벤트 리스트(502) 참조), 예컨대 분석 및/또는 액션을 위해 다른 개체로 전달될 수 있는 이벤트를 출력할 수 있다. 이 이벤트들은 관심이 있는 네트워크 트래픽에서 이상이 검출되었다는 것을 나타낼 수 있다. 멀웨어 해커들은 검출(detection)을 피하기 위하여 자신들의 목적지 서버들을 지속적으로 변경할 수 있다: 그러므로, 양 검출기(500)는 예컨대 멀웨어임을 나타낼 수 있는 거동의 상이한 타입들을 검출하기 위하여 추적된 커넥션 리스트에서 데이터와 관련하여 다수의 상이한 체크(check)들 및/또는 비교들을 이용할 수 있다.
양 검출기(500)는 커넥션들이 멀웨어 및/또는 감염된 장치들을 잠재적으로 나타내는지 여부를 결정하기 위하여 다양한 무응답 추적된 커넥션을 분석하기 위해 다수의 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 이용할 수 있다. 단계 506에서, 양 검출기(500)는 추적된 커넥션 리스트(504)로부터 다수의 항목들 또는 로우들을 선택 및/또는 판독할 수 있다. 예를 들어, 양 검출기(500)는 일정 시간 기간 내에서 고유 소스 및 목적지(예컨대, 고유한 Src, Dst, SrcPort, 및 DstPort)를 가진 모든 항목들을 판독할 수 있다. 이 시간 기간은 도 2의 헤더 캡쳐 엔진(204)에 의해 이용되는 것과는 다른 시간 기간일 수 있다. 양 검출기(500)에 의해 사용되는 시간 기간은 추적된 커넥션 리스트(504)에서 여러 항목들 또는 로우(row)들에 걸쳐(span) 있을 수 있다.
양 검출기(500)에 의해 사용되는 시간 시간은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 시간 기간 설정 데이터(508)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 정의된 것일 수 있다. 양 검출기(500)에 의해 사용되는 시간 기간은 잘못된 양성 이벤트(false-positive event) 생성을 최소한으로 제공하도록 조절될 수 있다. 추적된 커넥션에 대한 답장 또는 응답 패킷이 수신되기 위하여 시간이 걸릴 것이기 때문에 양 검출기(500)에 의해 사용되는 시간 기간이 이용될 수 있다. 양 검출기(500)에 의해 사용되는 시간 기간은 추적된 커넥션 리스트로부터 임의의 "논-데드(non-dead)" 패킷들(실질적인 응답을 수신한 패킷들)을 삭제할 시간이 무응답 패킷 추출기(300)에게 허용되도록 이용될 수 있다. 양 검출기(500)에 의해 사용되는 시간 기간은 상술한 바와 같은 재전송 프로토콜을 처리하기 위해 이용될 수 있는데, 이것은 여러 분(minute)이 걸릴 수 있다(예컨대, TCP 프로토콜에 대해 3분). 양 검출기(500)는 재전송 프로토콜을 위한 버퍼(buffer)가 종료하는 것을 가능하게 하는 시간 기간, 예컨대 TCP 프로토콜에 대해 5분을 이용할 수 있다. 양 검출기(500)는, 무응답 패킷들의 합당한 수가 추적된 커넥션 리스트(504)에서 쌓일 수 있도록, 예컨대 트렌드(trend)들 및/또는 재발생(reoccurrence)들이 검출될 수 있도록 충분히 긴 시간 기간을 이용할 수 있다. 너무 짧은 시간 기간은 불규칙하거나(spotty) 또는 간헐적인(intermittent) 이상의 검출을 초래할 수 있다.
본 발명의 몇몇 실시 예들에서, 양 검출기(500)는 둘 이상의 시간 기간들을 이용할 수 있다. 하나의 시간 기간은 예컨대 문제점을 신속하게 검출하기 위하여 상대적으로 짧을 수 있고, 다른 시간 기간은 예컨대 이상 및/또는 잠재적으로 감염된 장치들을 더욱 정확하게(즉, 더 높은 정도의 확신 및/또는 정확성을 가지고) 검출하기 위하여 더 길 수 있다. 일 예로서, 더 짧은 시간 기간은 60분일 수 있고, 더 긴 시간 기간은 이틀일 수 있다. 사용자 및/또는 관리자가 관심이 있을 수 있는 타겟 상황들에 대하여 및/또는 결과들을 최적화하기 위하여 다양한 다른 시간 기간들이 이용될 수 있다. 둘 이상의 시간 기간들은 여러 가지 이유로 유용할 수 있다. 예를 들어, 다양한 타입의 멀웨어들은 상이한 비코닝 거동(beaconing behavior)들을 보일 수 있다(예컨대, 더 짧거나 더 긴 비코닝 사이클(beaconing cycle)). 양 검출기(500)는 다양한 비코닝 거동들에 따라 보내지는 패킷들을 캡쳐하는 것을 시도하기 위하여 다양한 시간 기간들을 이용할 수 있다.
단계 510에서, 일단 고유 소스 및 목적지(예컨대, 고유한 Src, Dst, SrcPort, DstPort 필드들)를 가진 패킷들 또는 헤더들의 세트가 타임 프레임(time frame)(또는 복수의 타임 프레임들) 내에서 선택되면, 양 검출기(500)는 고유 소스/목적지 튜플들(예컨대, Src, Dst, DstPort 튜플들)의 수를 카운트(count)할 수 있다. 이러한 카운트는 하나의 주어진 소스 장치가 복수의 무응답 패킷들(즉, SYN 시도들에 대해 답장이 없는(no-replied))을 동일한 목적지 장치 및/또는 서비스로 생성한 상황들을 검출하기 위해 이용될 수 있다. 단계 516에서, 카운트가 임계값을 초과하는지 여부를 결정하기 위하여 카운트는 임계값과 비교된다. 임계값은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 임계값 설정 데이터(522)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 설정된 것일 수 있다. 단계 516에서, 만일 카운트가 임계값보다 작으면, 아무런 액션도 취해지지 않고(단계 528), 양 검출기(500)는 고유한 튜플의 다음 세트를 선택하기 위하여 단계 506으로 돌아간다. 만일 카운트가 임계값보다 더 크면, 양 검출기(500)는 이벤트를 생성할 수 있고(단계 530), 이벤트를 이벤트 리스트(502)로 전송할 수 있다. 이후, 양 검출기(500)는 고유한 튜플들의 다음 세트를 선택하기 위하여 단계 506으로 돌아갈 수 있다.
양 검출기(500) 및 다양한 임계값 설정 데이터(예컨대, 설정 데이터(522, 524, 526)) 및 다양한 임계값 비교들(예컨대, 단계 516, 518, 520)과 관련하여, 상술한 바와 같이 복수의 시간 기간들이 이용되는 경우에, 추가적인 임계값들이 이용될 수 있고, 및/또는 추가적인 임계값 비교 단계들이 부가될 수 있다는 점이 이해되어야 한다. 예를 들어, 다양한 임계값 비교 단계들(예컨대, 단계 516, 518, 520)에서, 임계값 비교 단계들은 각각의 시간 기간 동안 상이한 비교를 수행할 수 있고, 각각의 시간 기간 동안 상이한 임계값을 참조할 수 있다. 이러한 관점에서, 양 검출기(500)는 이러한 다양한 임계값들, 임계값 비교들, 및 시간 기간들에 대응하는 하나 이상의 이벤트를 생성할 수 있다.
단계 512에서, 일단 고유 소스/목적지(예컨대, 고유한 Src, Dst, SrcPort, DstPort 필드들)를 가진 패킷들 또는 헤더들의 세트가 하나의 타임 프레임(또는 복수의 타임 프레임들) 내에서 선택되면, 양 검출기(500)는 각각의 고유 목적지 장치 또는 서비스(예컨대, 고유한 Dst/DstPort 튜플)에 대해 상이한 소스 장치들의 수를 카운트할 수 있다. 이러한 카운트는, 복수의 소스 장치들이 동일한 멀웨어로 감염되어 모두 동일한 C&C 서버와 통신하려고 시도하고 있는 상황을 검출하는 데 이용될 수 있다. 단계 518에서, 카운트가 임계값을 초과하는지 여부를 결정하기 위하여 카운트는 임계값과 비교된다. 임계값은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 임계값 설정 데이터(524)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 설정된 것일 수 있다. 단계 518에서, 만일 카운트가 임계값보다 작으면, 아무런 액션도 취해지지 않고(단계 528), 양 검출기(500)는 고유한 튜플의 다음 세트를 선택하기 위하여 단계 506으로 돌아간다. 만일 카운트가 임계값보다 더 크면, 양 검출기(500)는 이벤트를 생성할 수 있고(단계 530), 이벤트를 이벤트 리스트(502)로 전송할 수 있다. 이후, 양 검출기(500)는 고유한 튜플들의 다음 세트를 선택하기 위하여 단계 506으로 돌아갈 수 있다.
단계 514에서, 일단 고유 소스/목적지(예컨대, 고유한 Src, Dst, SrcPort, DstPort 필드들)를 가진 패킷들 또는 헤더들의 세트가 하나의 타임 프레임(또는 복수의 타임 프레임들) 내에서 선택되면, 양 검출기(500)는 각각의 소스 장치가 통신하려고 시도해서 실패한 상이한 목적지 장치들 또는 서비스들(예컨대, 고유한 Dst/DstPort 튜플들)의 수를 카운트할 수 있다. 이러한 카운트는, 하나의 소스 장치가 복수의 목적지 장치들과 통신하려고 시도해서 지속적으로 실패하고 있는 상황을 검출하는 데 이용될 수 있다. 이러한 상황은 APT 멀웨어의 공통된 거동(common behavior)을 나타낼 수 있다. 단계 520에서, 카운트가 임계값을 초과하는지 여부를 결정하기 위하여 카운트는 임계값과 비교된다. 임계값은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 임계값 설정 데이터(526)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 설정된 것일 수 있다. 단계 520에서, 만일 카운트가 임계값보다 작으면, 아무런 액션도 취해지지 않고(단계 528), 양 검출기(500)는 고유한 튜플의 다음 세트를 선택하기 위하여 단계 506으로 돌아간다. 만일 카운트가 임계값보다 더 크면, 양 검출기(500)는 이벤트를 생성할 수 있고(단계 530), 이벤트를 이벤트 리스트(502)로 전송할 수 있다. 이후, 양 검출기(500)는 고유한 튜플들의 다음 세트를 선택하기 위하여 단계 506으로 돌아갈 수 있다.
도 6은 본 발명의 하나 이상의 실시 예에 따라서, 목적지 모듈(600)에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다. 목적지 검출기(600)는 도 2의 목적지 검출기(222)와 유사할 수 있다. 목적지 검출기(600)는 도 2의 추적된 커넥션 리스트(216)와 유사할 수 있는 추적된 커넥션 리스트(604)와 통신할 수 있다. 목적지 검출기(600)는 추적된 커넥션 리스트(604)에 저장된 정보를 이용할 수 있다.
목적지 검출기(600)는 추적된 통신 리스트(604)로부터의 항목들을 입력으로서 받아들일 수 있다. 각각의 항목은 튜플을 포함할 수 있다. 일 예로서, 튜플은 시작시간 및 종료시간, 그리고 시작시간에 시작해서 종료시간에 종료하는 시간 기간 동안 헤더 캡쳐 엔진에 의해 보이는 바와 같은 소스 정보(예컨대, 소스 IP 주소(Src), 소스 포트(SrcPort)) 및 목적지 정보(예컨대, 목적지 IP 주소(Dst), 목적지 포트(DstPort))와 같은 고유한 패킷 헤더 정보를 포함할 수 있다. 본 발명의 몇몇 실시 예들에서, "목적지(destination)"는 단지 하나의 목적지(예컨대, 하나의 컴퓨터, IP 주소 등) 이상을 지칭할 수 있다는 점이 이해되어야 한다. 예를 들어, 목적지는 일반적으로 특정 목적지들의 하나 이상의 그룹들, 예컨대 네트워크 또는 IP 주소들 등의 범위들을 지칭할 수 있다. 그래서, 본 명세서에서 설명된 다양한 실시 예들이 목적지를 논한다고 하더라도, 다양한 실시 예들 또는 대안적인 실시 예들은 본 명세서에서 설명된 기술들을 목적지들의 하나 이상의 그룹에 적용할 수 있는 것으로 고려된다는 점이 이해되어야 한다. 목적지 검출기(600)는 하나 이상의 이벤트(단계 620, 632 및 이벤트 리스트(602) 참조), 예컨대 분석 및/또는 액션을 위해 다른 개체로 전달될 수 있는 이벤트를 출력할 수 있다. 이 이벤트들은 관심이 있는 네트워크 트래픽에서 이상이 검출되었다는 것을 나타낼 수 있다.
목적지 검출기(600)는 커넥션들이 멀웨어 및/또는 감염된 장치들을 잠재적으로 나타내는지 여부를 결정하기 위하여 다양한 무응답 추적된 커넥션을 분석하기 위해 다수의 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 이용할 수 있다. 단계 606에서, 목적지 검출기(600)는 추적된 커넥션 리스트(604)로부터 다수의 항목들 또는 로우들을 선택 및/또는 판독할 수 있다. 예를 들어, 목적지 검출기(600)는 일정 시간 기간 내에서 고유 소스/목적지(예컨대, 고유한 Src, Dst, SrcPort, 및 DstPort)를 가진 모든 항목들을 판독할 수 있다. 이 시간 기간은 도 2의 헤더 캡쳐 엔진(204)에 의해 이용되는 것과는 다른 시간 기간일 수 있다. 목적지 검출기(600)에 의해 사용되는 시간 기간은 추적된 커넥션 리스트(604)에서 여러 항목들 또는 로우(row)들에 걸쳐 있을 수 있다.
목적지 검출기(600)에 의해 사용되는 시간 시간은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 시간 기간 설정 데이터(608)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 정의된 것일 수 있다. 목적지 검출기(600)에 의해 사용되는 시간 기간은, 예를 들어 도 5의 양 검출기(500)에 의해 사용되는 시간 기간(들)보다 더 긴 시간 기간에 대해 목적지 검출기(600)가 패킷들에서의 이상을 검출할 수 있도록 조절될 수 있다. 목적지 검출기(600)에 사용되는 시간 기간은 잘못된 양성 이벤트(false-positive event) 생성을 최소한으로 제공하도록 조절될 수 있는데, 예를 들어 통신 트렌드의 더욱 분명한 관측(view)을 가능하게 하기에 충분히 긴 시간 기간일 수 있다. 일 예로서, 멀웨어 프로그램, 예컨대, APT 프로그램은 동일한 목적지 서버와 통신하기를 시도할 수 있고, 때때로 규칙적인 간격으로 동일한 수의 시도들을 만들 수 있다. 부가적으로, 몇몇 해커들은 많은 목적지 서버들을 유지할 수 있고, 몇몇 멀웨어 프로그램들은 특정 서버로의 연결 시도들 사이에 긴 시간 기간을 기다릴 수 있다. 목적지 검출기(600)에 의해 사용되는 시간 기간은 시간 기간이 더 긴 시간 기간 동안 특정(particular) 목적지에 대한 트렌드, 예컨대 소스가 특정 목적지에 접촉하길 시도한 평균 횟수(예컨대, 2주일 동안 15번 시도)를 알아차리기에 충분히 길도록 조절될 수 있다.
본 발명의 몇몇 실시 예들에서, 목적지 검출기(600)는 둘 이상의 시간 기간들을 이용할 수 있다. 복수의 시간 기간들은 겹칠(overlapping) 수 있고, 예를 들어 1주(one-week)의 시간 기간, 4주(four-week)의 시간 기간, 및 8주(eight-week)의 시간 기간일 수 있다. 목적지 검출기(600)는 다양한 타입의 멀웨어 및/또는 다양한 타입의 비코닝 거동을 검출하는 것을 시도하기 위하여 복수의 시간 기간들을 이용할 수 있다. 복수의 시간 기간들을 이용하는 실시 예들에서, 임계값 설정 데이터(616)는 각각의 시간 기간에 대해 설정 데이터의 구별되는 세트들, 예컨대 설정 데이터베이스에서 상이한 설정 파일들 또는 상이한 데이터를 포함할 수 있다.
단계 610에서, 일단 고유 소스/목적지(예컨대, 고유한 Src, Dst, SrcPort, DstPort 필드들)를 가진 패킷들 또는 헤더들의 세트가 하나의 타임 프레임(또는 복수의 타임 프레임들) 내에서 선택되면, 목적지 검출기(600)는 각각의 목적지(예컨대, Dst, DstPort 튜플)가 세트에서 발생하는 횟수를 카운트할 수 있다. 이러한 카운트는 복수의 소스들이 공통의 목적지, 예컨대, 잠재적인(potential) APT C&C 서버와 커넥션을 수립하려고 시도하는 상황을 검출하는 데 이용될 수 있다. 단계 612에서, 세트로부터의 각각의 고유 목적지(예컨대, Dst/DstPort 튜플)가 분석된다. 단계 612로의 서브-단계(sub-step)로서 단계 614에서, 세트로부터의 각각의 고유 목적지(예컨대, Dst/DstPort 튜플)에 대하여, 카운트가 임계값을 초과하는지 여부를 결정하기 위하여 이러한 목적지가 발생하는 횟수의 카운트가 임계값과 비교된다. 임계값은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 임계값 설정 데이터(616)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 정의된 것일 수 있다. 단계 614에서, 만일 카운트가 임계값보다 작으면, 아무런 액션도 취해지지 않고(단계 618), 목적지 검출기(600)는 고유한 튜플의 다음 세트를 선택하기 위하여 단계 606으로 돌아갈 수 있다. 만일 카운트가 임계값보다 더 크면, 목적지 검출기(600)는 이벤트를 생성할 수 있고(단계 620), 이벤트를 이벤트 리스트(602)로 전송할 수 있다. 이벤트는 특정 목적지(예컨대, Dst/DstPort 조합)가 잠재적인 멀웨어(예컨대, APT) C&C 서버 또는 장치와 관련이 있다는 것을 가리킬 수 있다. 이후, 목적지 검출기(600)는 고유한 튜플들의 다음 세트를 선택하기 위하여 단계 606으로 돌아갈 수 있다.
단계 622에서, 단계 614에서 식별된 특정 목적지(예컨대, Dst/DstPort 튜플)가 되풀이하여 발생하는(recurring) 멀웨어(예컨대, APT) C&C 서버 또는 장치인지 여부를 결정하는 하나 이상의 루틴이 시작될 수 있다. 단계 622에서, 목적지 검출기(600)는, 특정 목적지(예컨대, Dst/DstPort 튜플)가 소스 장치당(per) 무응답 패킷(예컨대, Dead-SYN 패킷)의 타겟이었던 평균 횟수를 계산할 수 있다. 이 계산은 목적지와 접속하려는 소스의 시도들이 시간 기간 동안 얼마나 빈번하게 발생하는지의 추정값(estimate)을 제공할 수 있다. 단계 624에서, 단계 622의 계산의 결과는 하나 이상의 이전 시간 기간에 대해 수행된 동일한 계산(즉, 소스당(per) 평균 목적지)의 결과와 비교될 수 있다. 단계 626에서, 현재 시간 기간 및 과거 시간 기간(들)으로부터의 평균들이 가까우면, 예컨대 서로의 1 표준편차 내이면, 이것은 소스들이 동일한 목적지, 예컨대, 잠재적인 C&C 서버로 접속하기 위해 정기적으로 되풀이하여 시도하고 있다는 것을 나타낼 수 있다(예컨대, 현재의 2주, 과거의 2주에 대해서 15번 시도 등). 이것은 규칙적인 간격으로 비콘을 시도하는 멀웨어에서의 되풀이하여 반복되고 있는 코드를 나타낼 수 있다. 단계 630에서, 목적지 검출기(600)는 현재의 목적지(예컨대, Dst/DstPort 튜플)를 갖는 무응답 패킷들(예컨대, Dead-SYN 패킷들)을 가지는 모든 소스 장치들을 검색 및/또는 생성하기 위하여 추적된 커넥션 리스트(604)와 통신할 수 있다. 이후, 목적지 검출기(600)는 각각의 소스에 대한 이벤트를 생성할 수 있고, 이 이벤트들을 이벤트 리스트(602)로 전송할 수 있다. 각각의 소스에 대한 이벤트는 소스가 멀웨어, 예컨대 목적지와 관련이 있는 C&C 서버와 통신하려고 시도하고 있는 APT 멀웨어에 감염되어 있을 개연성을 예컨대 높은 확률로 가리킬 수 있다.
단계 626에서, 만일 현재 시간 기간 및 과거 시간 기간(들)으로부터의 평균들이 가깝지 않으면, 예컨대 서로의 1 표준편차 이내가 아니면, 목적지 검출기(600)는 어떠한 이벤트도 생성하지 않을 수 있고, 고유한 튜플들의 다음 세트를 선택하기 위하여 단계 606으로 돌아갈 수 있다.
도 7a는 본 발명의 하나 이상의 실시 예에 따라서, 클러스터 검출기 모듈(700)에서 발견될 수 있는 예시적인 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 도시하는 블록도의 도면을 도시한다. 클러스터 검출기(700)는 도 2의 클러스터 검출기(224)와 유사할 수 있다. 클러스터 검출기(700)는 도 2의 추적된 커넥션 리스트(216)와 유사할 수 있는 추적된 커넥션 리스트(704)와 통신할 수 있다. 클러스터 검출기(700)는 추적된 커넥션 리스트(704)에 저장된 정보를 이용할 수 있다.
클러스터 검출기(700)는 추적된 통신 리스트(704)로부터의 항목들을 입력으로서 받아들일 수 있다. 각각의 항목은 튜플을 포함할 수 있다. 일 예로서, 튜플은 시작시간 및 종료시간, 그리고 시작시간에 시작해서 종료시간에 종료하는 시간 기간 동안 헤더 캡쳐 엔진에 의해 보이는 바와 같은 소스 정보(예컨대, 소스 IP 주소(Src), 소스 포트(SrcPort)) 및 목적지 정보(예컨대, 목적지 IP 주소(Dst), 목적지 포트(DstPort))와 같은 고유한 패킷 헤더 정보를 포함할 수 있다. 본 발명의 몇몇 실시 예들에서, "목적지(destination)"는 단지 하나의 목적지(예컨대, 하나의 컴퓨터, IP 주소 등) 이상을 지칭할 수 있다는 점이 이해되어야 한다. 예를 들어, 목적지는 일반적으로 특정 목적지들의 하나 이상의 그룹들, 예컨대 네트워크 또는 IP 주소들 등의 범위들을 지칭할 수 있다. 그래서, 본 명세서에서 설명된 다양한 실시 예들이 목적지를 논한다고 하더라도, 다양한 실시 예들 또는 대안적인 실시 예들은 본 명세서에서 설명된 기술들을 목적지들의 하나 이상의 그룹에 적용할 수 있는 것으로 고려된다는 점이 이해되어야 한다. 클러스터 검출기(700)는 하나 이상의 이벤트(단계 720, 736 및 이벤트 리스트(702) 참조), 예컨대 분석 및/또는 액션을 위해 다른 개체로 전달될 수 있는 이벤트를 출력할 수 있다. 이 이벤트들은 관심이 있는 네트워크 트래픽에서 이상이 검출되었다는 것을 나타낼 수 있다.
클러스터 검출기(700)는 커넥션들이 멀웨어 및/또는 감염된 장치들을 잠재적으로 나타내는지 여부를 결정하기 위하여 다양한 응답이 없는 추적된 커넥션을 분석하기 위해 다수의 구성요소들, 루틴들, 알고리즘들, 설정 데이터 등을 이용할 수 있다. 예를 들어, 클러스터 검출기(700)는 소스들에 의해 행해지는 무응답 커넥션 시도들의 클러스터들 간의 주기성을 검출할 수 있다. 단계 706에서, 클러스터 검출기(700)는 추적된 커넥션 리스트(704)로부터 다수의 항목들 또는 로우(row)들을 선택 및/또는 판독할 수 있다. 예를 들어, 클러스터 검출기(700)는 시간 기간 내의 모든 항목들을 판독할 수 있고, 소스에 따라 항목들을 그룹핑할(group) 수 있다. 이 시간 기간은 도 2의 헤더 캡쳐 엔진(204)에 의해 이용된 것이 아닌 다른 시간 기간일 수 있다. 클러스터 검출기(700)에 의해 사용되는 이러한 시간 기간(단계 706에서)은 추적된 커넥션 리스트(704)에서 여러 항목들 또는 로우(row)들에 걸쳐 있을 수 있다.
클러스터 검출기(700)에 의해 사용되는 시간 기간(단계 706에서)은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 시간 기간 설정 데이터(708)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 정의된 것일 수 있다. 클러스터 검출기(700)에 의해 사용되는 시간 기간(단계 706에서)은, 예를 들어 도 5의 양 검출기(500)에 의해 사용되는 시간 기간(들)보다 더 긴 시간 기간에 대해 클러스터 검출기(700)가 패킷들에서의 이상을 검출할 수 있도록 조절될 수 있다. 클러스터 검출기(700)에 의해 사용되는 시간 기간(단계 706에서)은 예를 들어 도 6의 목적지 검출기(600)에 의해 사용되는 시간 기간(들)보다 더 짧을 수 있다. 클러스터 검출기(700)에 의해 사용되는 시간 기간은 특정 소스와 관련하여 되풀이하여 발생하는 거동이 검출될 수 있도록 조절될 수 있다. 예를 들어, 감염된 장치상에서 작동하는 멀웨어는 짧은 시간 기간 내에서 (예컨대, 여러 개의 상이한 목적지 서버들과) 여러 개의 커넥션들을 만들도록 시도할 수 있고(즉, 커넥션들은 시간내에 함께 클러스터링될 수 있음), 이후 멀웨어는 커넥션들의 다른 클러스터를 시도하기 전에 상대적으로 긴 시간 기간 동안 기다릴 수 있다. 다시 말해, 멀웨어(예컨대, APT 멀웨어)는 규칙적으로 되풀이되는 간격으로 C&C 서버들로 비콘들(또는 비콘들의 클러스터들)을 보낼 수 있다.
본 발명의 몇몇 실시 예들에서, 클러스터 검출기(700)는 예컨대 잘못된 양성 이벤트(false-positive event) 생성을 최소화하기 위해 둘 이상의 시간 기간들을 이용할 수 있다. 복수의 시간 기간들은 겹칠 수 있고, 예를 들어 2주(one-week)의 시간 기간, 4주(four-week)의 시간 기간, 및 6주(six-week)의 시간 기간일 수 있다. 클러스터 검출기(700)는 다양한 타입의 멀웨어 및/또는 다양한 타입의 비코닝 거동을 검출하는 것을 시도하기 위하여 복수의 시간 기간들을 이용할 수 있다. 복수의 시간 기간들을 이용하는 실시 예들에서, 임계값 설정 데이터(708 및/또는 724)는 각각의 시간 기간에 대해 설정 데이터의 구별되는 세트들, 예컨대 설정 데이터베이스에서 상이한 설정 파일들 또는 상이한 데이터를 포함할 수 있다.
단계 710에서, 각각의 고유 소스에 대해, 공통 소스를 가진 세트(단계 706)로부터의 모든 항목들 또는 패킷들이 분석된다. 단계 710에 대한 서브-단계로서, 단계 712에서, 각각의 소스에 대해 모든 패킷들이 시간 클러스터(time cluster)들로 그룹핑될(grouped) 수 있다. 도 7b는 시간의 경과에 따라서 소스에 의해 시도되는 예시적인 커넥션들을 보이는 그래프(750)의 도면을 도시한다. 도 7b에서 알 수 있는 바와 같이, 제1 클러스터링(752)은 10:00:00 표시의 약간 뒤에 발생했고, 제2 클러스터링(754)은 10:57:36 표시 주변에서 발생했다. 도 7a를 참조하면, 클러스터 검출기(700)는 상대적으로 근접한(relatively close) 다양한 커넥션 시도들을 여러 개의 이산(discreet) 데이터 포인트들 대신 하나의 클러스터로서 함께 인식하도록 프로그램 및/또는 설계될 수 있다. 클러스터 검출기(700)는 상대적으로 근접한 다양한 커넥션 시도들을 단일한 데이터 포인트로 함께 결합시키도록 프로그램 및/또는 설계될 수 있다(예컨대, 도 7b에서 두 개의 데이터 포인트들(752, 754)). 이후, 예컨대 정확한 커넥션 시간들이 아니라 커넥션 시도들의 클러스터들을 비교할 때 패턴들이 더욱 두드러질 수 있기 때문에, 클러스터 검출기(700)는 클러스터 데이터 포인트들을 이용해서 오퍼레이션들, 루틴들 등을 수행할 수 있다.
단계 714에서, 클러스터 검출기(700)는 커넥션 시도들의 클러스터들 간의 시간을 측정할 수 있다. 단계 716에서, 클러스터 검출기(700)는 클러스터들 간의 시간이 반복되는 패턴으로 또는 규칙적인 간격으로 형성되는 것으로 보이는지 여부를 결정할 수 있다. 예를 들어, 단계 716에서, 클러스터 검출기(700)는 커넥션 시도 클러스터들 간의 시간들이 가까운지, 예컨대 서로의 1 표준편차 내에 있는지 여부를 결정할 수 있다. 단계 716에서, 클러스터들 간의 시간이 패턴을 형성하는 것으로 보이지 않는다면, 클러스터 검출기(700)는 이벤트 생성과 관련해서 아무런 액션도 취하지 않고(단계 718), 각각의 소스에 대하여 이터레이션(iteration)을 반복하기 위해 단계 710로 돌아간다. 만일, 클러스터들 간의 시간이 패턴을 형성하는 것으로 보인다면, 클러스터 검출기(700)는 적절한 이벤트를 생성할 수 있고(단계 720), 이벤트를 이벤트 리스트(702)로 전송할 수 있다. 이벤트는 특정 소스가 멀웨어, 예컨대 되풀이하여(on a recurring basis) C&C 서버로 비코닝되고 있을 수 있는 APT 멀웨어에 감염되어 있을 수 있다는 것을 나타낼 수 있다. 이후, 클러스터 검출기(700)는 각각의 소스에 대해 이터레이션을 반복하기 위해 단계 710로 돌아갈 수 있다.
단계 722에서, 클러스터 검출기(700)는 단계 706에서 시작하는 루틴(들)과 유사한 하나 이상의 루틴을 시작할 수 있다. 예를 들어, 단계 722에서 시작하는 루틴(들)은 유사한 클러스터링 및 검출 단계들을 이용할 수 있다. 단계 722에서 시작하는 루틴(들)은 단계 706에서 시작한 루틴(들)과는 다른 입력 데이터 세트들을 이용할 수 있고, 그래서 (단계 736에서) 생성된 이벤트(들)는 상이할 수 있다. 단계 722에서, 클러스터 검출기(700)는 추적된 커넥션 리스트(704)로부터 다수의 항목들 또는 로우(row)들을 선택 및/또는 판독할 수 있다. 예를 들어, 클러스터 검출기(700)는 시간 기간 내의 모든 항목들을 판독할 수 있고, 소스/목적지 튜플(예컨대, Src/Dst/DstPort 튜플)에 따라서 항목들을 그룹핑할 수 있다. 클러스터 검출기(700)에 의해서 사용되는 이러한 시간 기간(단계 722에서)은 추적된 커넥션 리스트(704)에서 여러 항목들 또는 로우(row)들에 걸쳐 있을 수 있다. 클러스터 검출기(700)에 의해서 사용되는 이러한 시간 기간(단계 722에서)은 예를 들어 설정 파일 또는 설정 데이터베이스로부터 예컨대 시간 기간 설정 데이터(724)에 의하여 사용자에 의해 제공된 것이거나 및/또는 사용자에 의해 정의된 것일 수 있다. 이러한 시간 기간은 시간 기간 설정 데이터(708)와 관련된 시간 기간과 유사할 수 있다; 하지만, 상이할 수도 있고, 및/또는 독립적으로 구성될 수도 있다. 단계 726에서, 각각의 고유 소스/목적지(예컨대, Src/Dst/DstPort 튜플)에 대해, 공통의 소스/목적지를 가진 세트(단계 722)로부터의 모든 항목들 또는 패킷들이 분석된다. 이후, 단계들 728, 730, 732, 734, 736은 단계들 712, 714, 716, 718, 720과 유사한 방식으로 실행된다. 단계 736에서 생성되는 이벤트(들)는 특정 소스가 멀웨어(예컨대, APT 멀웨어)로 감염되어 있을 수 있다는 것을 나타낼 수 있고, 또한 소스가 어느 C&C 서버 또는 장치로 비코닝하고 있는지를 정확하게 나타낼 수 있다. C&C 서버를 아는 것은 Src 장치상에 어떠한 멀웨어 프로그램 또는 APT 멀웨어 프로그램이 존재하고 있는지를 정확하게 결정하는 데 도움이 될 수 있다.
응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통하여 감염된 네트워크 장치들을 검출하는 것의 이점과 관련하여, 다음은 본 발명의 하나 이상의 실시 예의 추가적 이점들을 설명한다. 설명된 이점들은 제한이나 요구조건들이 아니라는 점이 이해되어야 하며, 몇몇 실시 예들은 설명된 이점들 중의 하나 이상을 생략할 수 있다.
본 발명의 하나 이상의 실시 예는 네트워크 보안 툴(tool)들의 더 큰 슈트(suite) 또는 패키지(package) 내에서 작동할 수 있도록 적용될 수 있다. 본 명세서에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 예컨대 워닝 이벤트(warning event)들 등을 생성하기 위한 하나의 소스로서 네트워크 보안 패키지 내에서 하나 이상의 툴들을 형성할 수 있다. 네트워크 보안 패키지는 또한 워닝 이벤트들을 분석할 수 있는 하나 이상의 이벤트 코릴레이터(correlator) 등을 포함할 수 있다.
본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 악명높은 악의적인 IP 주소들에 대한 지식 또는 인식된 위협들에 대한 지문 또는 서명을 요하지 않으면서 멀웨어를 검출하는 것을 가능하게 한다. 상술한 시스템들, 방법들, 루틴들, 및/또는 기술들은 멀웨어 프로그램의 코드를 분석하지 않고 패킷 거동을 분석함으로써 멀웨어를 검출할 수 있기 때문에, 광범위한 악의적 코드, 예컨대 서명 및/또는 지문 파일들이 아직 알려지지 않은 새로운 멀웨어 프로그램들을 검출할 수 있다. 그러므로, 본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 광범위한 규칙 또는 서명 기반 비교 접근법들에 의존하는 다양한 기술들의 이점을 제공할 수 있다.
본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은, 보안 전문가가 전체 패킷 스트림을 분석할 수 있으면서 엄청난 양(예컨대, 몇몇 샘플 구현들에서 하루 당 160억 패킷들을 초과함)의 데이터에서 패턴을 인식할 수 있다면 보안 전문가가 수행할 가능성이 있는 분석을 자동화할 수 있다. 본 명세서에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 보안 전문가가 잠재적으로 감염된 장치들을 신속하게 식별하도록 도울 수 있고, 그래서 시간을 최적화할 수 있다. 게다가, 위협에 대한 사전 지식(즉, 서명 등)이 요구되지 않기 때문에, 보안 전문가는 특별한 타입의 지식을 가지고 시스템을 "준비시키는 것(prime)"이 필요하지 않을 수 있고, 그래서 시스템은 셋업(set up)하기 위해 시간과 노력이 덜 들 수 있다. 게다가, 보안 전문가들은 검출하기 위한 정보 또는 시간을 사전에 가지고 있지 않은 위협들을 검출할 수 있다.
본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 상당한 비용 절감을 가능하게 하는데, 예컨대 위협들을 검출하기 위해서 더 적은 인력이 요구될 수 있기 때문이다. 본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 개인들 및 독립체들이 민감한 정보, 예컨대 지적 재산 및 기밀(confidential) 정보의 손실을 방지하는 것을 도울 수 있다. 해로운 멀웨어의 조기 검출은 개인 또는 독립체로 하여금 조기 치료 단계를 취하는 것을 가능하게 하고, 이는 큰 단체의 경우에 수백만 달러를 절약할 수 있다.
상이한 도시된 실시 예들의 흐름도들 및 블록도들에서 도시된 예시적인 방법들 및 루틴들을 포함하여, 본 공개에서 설명된 시스템들, 방법들, 루틴들, 및/또는 기술들은 데이터 처리 시스템이 본 명세서에서 설명된 방법들, 루틴들, 기술들, 및 해결책들을 수행 및/또는 실행하도록 적용되게 하기 위해 프로그램된 데이터 처리 시스템에 의해 실행되는 소프트웨어로서 구현될 수 있다. 본 명세서에서 참조되는 블록도 또는 흐름도 도면에서 각각의 블록 또는 기호는 하나 이상의 데이터 처리 시스템들에 의해서 특정 기능 또는 기능들을 구현하기 위한 하나 이상의 실행가능한 명령어를 포함하는 컴퓨터 이용가능(usable) 또는 판독가능(readable) 프로그램 코드의 모듈, 세그먼트(segment), 또는 일부를 나타낼 수 있다. 본 발명의 몇몇 대안적인 구현들에서, 블록도 또는 흐름도의 블록들 또는 기호들에서 도시된 기능 또는 기능들은 도면들에서 언급된 순서와 다르게 이루어질 수 있다. 예를 들어, 몇몇 경우들에서, 연속하여 도시된 두 개의 블록들 또는 기호들은 실질적으로 동시에 실행될 수 있고, 또는 블록들은 때때로 관여되는 기능에 따라서 역순으로 실행될 수 있다. 본 발명의 상이한 실시 예들은, 명령어들을 실행하는 컴퓨터 또는 임의의 장치 또는 시스템과 관련하여 또는 이에 의해서 사용하기 위한 프로그램 코드를 제공하는 컴퓨터 프로그램 제품으로부터 액세스가능한(accessible) 영구 스토리지 및/또는 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체에 저장된 컴퓨터 코드의 형태를 취할 수 있다. 컴퓨터 코드의 일부 또는 전부는 데이터 처리 시스템이 코드를 실행하기 전에 데이터 처리 시스템의 메모리로 로딩될(loaded) 수 있다.
이제 도 8을 참조하면, 본 발명의 방법들, 루틴들, 및 해결책들 중의 하나 이상을 부분적으로 또는 전체적으로 실행할 수 있는 예시적인 데이터 처리 시스템(data processing system, 800)의 도면이 도시된다. 본 발명의 몇몇 실시 예들에서, 하나 이상의 데이터 처리 시스템, 예컨대 데이터 처리 시스템(800)은 본 명세서에서 설명된 방법들, 루틴들, 기술들, 및 해결책들을 구현하기 위해 이용될 수 있다. 도 8의 예에서, 데이터 처리 시스템(800)은 구성요소들, 예컨대 프로세서 유닛(processor unit, 804), 메모리(memory, 806), 영구 스토리지(persistent storage, 808), 통신 유닛(communications unit, 810), 입력/출력(I/O) 유닛(input/output unit, 812), 및 디스플레이(display, 814) 간의 통신을 제공하는 통신 패브릭(communications fabric, 802)을 포함할 수 있다. 하나의 구체적인 실시 예에서, 데이터 처리 시스템(800)은 모니터, 키보드, 마우스, 및 아마도 다른 주변 장치들과 연결되어 있는 퍼스널 컴퓨터(PC) 또는 다른 컴퓨터 아키텍처일 수 있다. 다른 구체적인 실시 예에서, 데이터 처리 시스템은 예컨대 도 1에서 도시된 바와 같이 방화벽(104)일 수 있다.
프로세서 유닛(804)은 메모리(806)로 로딩될 수 있는 명령어들(예컨대, 소프트웨어 프로그램)을 실행하도록 기능할 수 있다. 프로세서 유닛(804)은 특정 구현에 따라서 하나 이상의 프로세서들의 세트일 수 있고 또는 멀티프로세서 코어(multiprocessor core)일 수 있다. 게다가, 프로세서 유닛(804)은, 단일한 칩(chip) 상에서 메인(main) 프로세서가 보조(secondary) 프로세서와 함께 존재하는 하나 이상의 이종(heterogeneous) 프로세서 시스템들을 이용해서 구현될 수 있다. 다른 예시적인 예로서, 프로세서 유닛(804)은 동일한 타입의 복수의 프로세서들을 포함하는 대칭 멀티-프로세서(symmetric multi-processor) 시스템일 수 있다.
이 예들에서, 메모리(806)는 예를 들어 RAM(random access memory), 또는 임의의 다른 적절한 휘발성 또는 비휘발성 저장 장치일 수 있다.
영구 스토리지(808)는 특정 구현에 따라서 다양한 형태를 취할 수 있다. 예를 들어, 영구 스토리지(808)는 하나 이상의 구성요소 또는 장치를 포함할 수 있다. 예를 들어, 영구 스토리지(808)는 하드 드라이브, 플래시 메모리, 재기록가능(rewritable) 광학적 디스크, 재기록가능 자기 테이프, 또는 이들의 임의의 조합일 수 있다. 영구 스토리지(808)에 의해 사용되는 매체는 또한 착탈가능할(removable) 수 있다. 예를 들어, 착탈가능한 하드 드라이브가 이용될 수 있다.
운영 시스템을 위한 명령어들은 영구 스토리지(808)상에 위치할 수 있다. 하나의 구체적인 실시 예에서, 운영 시스템은 다수의 공지된 운영 시스템들의 몇몇 버전일 수 있다. 애플리케이션들 및/또는 프로그램들을 위한 명령어들 또한 영구 스토리지(808) 상에 위치할 수 있다. 이 명령어들은 프로세서 유닛(804)에 의한 실행을 위해 메모리(806)로 로딩될 수 있다. 예를 들어, 본 명세서에서 설명된 상이한 실시 예들의 프로세스들은 메모리(806)와 같은 메모리로 로딩될 수 있는 컴퓨터 구현 명령어를 이용해서 프로세서 유닛(804)에 의해 수행될 수 있다. 이 명령어들은 프로세서 유닛(804)에서 프로세서에 의해 판독되고 실행될 수 있는 프로그램 코드, 컴퓨터 이용가능 프로그램 코드 또는 컴퓨터 판독가능 프로그램 코드로 지칭될 수 있다. 상이한 실시 예들에서 프로그램 코드는 예컨대 CD 또는 DVD의 일부로서 메모리(806), 영구 스토리지(808) 및/또는 다른 컴퓨터 판독가능 매체와 같은 상이한 물리적 또는 유형의(tangible) 컴퓨터 판독가능 매체 상에서 구체화될 수 있다.
애플리케이션들 및/또는 프로그램들을 위한 명령어들은 데이터 처리 시스템(800)에 영구적으로 포함되지는 않는 컴퓨터 판독가능 매체(818) 상에 위치할 수 있다. 예를 들어, 프로그램 코드(program code, 816)는 컴퓨터 판독가능 매체(computer readable media, 818) 상에서 함수의 형태로 위치할 수 있고, 프로세서 유닛(804)에 의한 실행을 위해 데이터 처리 시스템(800)으로 전송되거나 로딩될 수 있다. 프로그램 코드(816) 및 컴퓨터 판독가능 매체(818)는 컴퓨터 프로그램 제품(computer program product, 820)을 형성할 수 있다. 일 실시 예에서, 컴퓨터 판독가능 매체(818)는 영구 스토리지(808)의 일부인 하드 드라이브와 같이 저장 장치 상으로의 전송을 위해 예컨대 드라이브(drive) 또는 다른 장치로 삽입되거나 배치되는 광학 또는 자기 디스크와 같은 유형의 형태로 존재할 수 있다. 드라이브 또는 다른 장치는 예컨대 통신 패브릭(802) 또는 입력/출력 유닛(812)을 통하여 데이터 처리 시스템(800)의 다른 구성요소들과 통신하거나 연결될 수 있다. 다른 유형의 형태에 있어서, 컴퓨터 판독가능 매체(818)는 데이터 처리 시스템(800)에 연결되는 하드 드라이브 또는 플래시 메모리와 같은 영구 스토리지일 수 있다.
본 공개의 목적을 위해서, 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체는 일반적으로 시스템과 관련하여 또는 이에 의해서 사용하기 위한 (소프트웨어 프로그램과 같은) 데이터, 예컨대 명령어들을 실행하는 것을 포함, 저장, 전송, 전파, 또는 전달할 수 있는 임의의 유형의 장치일 수 있다. 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체는 예컨대 제한 없이 전자적, 자기적, 광학적, 전자기적, 적외선의, 또는 반도체 시스템 또는 전파 매체(propagation medium)일 수 있다. 컴퓨터 판독가능 매체의 비제한적(non-limiting) 예들은 반도체 또는 솔리드 스테이트(solid state) 메모리 자기 테이프, 착탈가능한 컴퓨터 디스켓, RAM(random access memory), ROM(read only memory), 강성(rigid) 자기 디스크, 및 광학적 디스크를 포함한다. 광학적 디스크는 CD ROM(compact disk read only memory), CD R/W(compact disk read write), 및 DVD를 포함할 수 있다. 게다가, 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 또는 이용가능 프로그램 코드가 컴퓨터상에서 실행될 때 이러한 컴퓨터 판독가능 또는 이용가능 프로그램 코드의 실행이 컴퓨터로 하여금 특정 루틴들, 프로시저(procedure)들, 단계들 등을 실행하도록 하는 컴퓨터 판독가능 또는 이용가능 프로그램 코드를 포함하거나 저장할 수 있다. 컴퓨터 판독가능 매체의 유형의 형태는 또한 컴퓨터 기록가능한 저장 매체라고 지칭될 수 있다.
디스플레이(814)는 예컨대 CRT, LCD, 또는 LED 모니터, LED 광(light), 또는 다른 타입의 디스플레이를 통하여 사용자에게 정보를 디스플레이하기 위한 메카니즘을 제공할 수 있다.
입력/출력(I/O) 유닛(812)은 데이터 처리 시스템(800)에 연결될 수 있는 다른 장치들과의 데이터의 입력 및 출력을 가능하게 한다. 예를 들어, 입력/출력 유닛(812)은 키보드, 터치 스크린, 마우스, 및/또는 다른 포인팅 장치들을 통해서 사용자 입력을 위한 연결을 제공할 수 있다. 게다가, 입력/출력 유닛(812)은 프린터에 출력을 보낼 수 있다. 입력/출력 장치들은 직접 또는 매개하는(intervening) I/O 컨트롤러들을 통해서 시스템에 연결될 수 있다. 상이한 통신 어댑터(adapter)들 또한 시스템에 연결되어, 데이터 처리 시스템으로 하여금 매개하는 사설 또는 공공 네트워크들을 통해서 다른 데이터 처리 시스템들 또는 원격 프린터들 또는 저장 장치들과 연결될 수 있도록 한다. 모뎀 및 네트워크 어댑터와 같은 비제한적 예들은 통신 어댑터의 현재 이용가능한 타입들의 단지 일부이다. 프로그램 코드(816)는 입력/출력 유닛(812)으로의 커넥션을 통해서 컴퓨터 판독가능 매체(818)로부터 데이터 처리 시스템(800)으로 전송될 수 있다. 커넥션은 예시적인 예들에서 물리적이거나 무선일 수 있다. 컴퓨터 판독가능 매체는 또한 프로그램 코드를 포함하는 무선 전송 또는 통신 링크와 같은 비유형적(non-tangible) 매체의 형태를 취할 수 있다.
데이터 처리 시스템(800)을 위해 도시된 상이한 구성요소들은 상이한 실시 예들이 구현될 수 있는 방식에 대한 구조적 제한을 제공하기 위하여 의도된 것이 아니다. 상이한 유익한 실시 예들은 데이터 처리 시스템(800)을 위해 도시된 것들에 부가하여 또는 대신하여 구성요소들을 포함하는 데이터 처리 시스템에서 구현될 수 있다. 도 8에 도시된 다른 구성요소들은 도시된 예시적인 예들로부터 변경될 수 있다. 예를 들어, 버스(bus) 시스템이 통신 패브릭(802)을 구현하기 위해 이용될 수 있으며, 시스템 버스 또는 입력/출력 버스와 같은 하나 이상의 버스로 이루어질 수 있다. 버스 시스템은 버스 시스템에 부착된 상이한 구성요소들 또는 장치들 간에 데이터의 전송을 제공하는 임의의 적절한 타입의 아키텍쳐를 이용해서 구현될 수 있다. 게다가, 통신 유닛은 모뎀 또는 네트워크 어댑터와 같이 데이터를 전송하거나 수신하기 위해 사용되는 하나 이상의 장치들을 포함할 수 있다. 게다가, 메모리는, 예컨대 통신 패브릭(802)에 존재할 수 있는 메모리 컨트롤러 허브(memory controller hub) 및 인터페이스에서 발견되는 것과 같은 메모리(506) 및/또는 캐시(cache)일 수 있다.
통신 유닛(810)은 다른 데이터 처리 시스템들 또는 장치들과의 통신을 제공할 수 있다. 이 예들에서, 통신 유닛(810)은 NIC(network interface card)일 수 있다. 통신 유닛(810)은 물리적 및/또는 무선의 통신 링크 중의 어느 하나 또는 둘 다를 이용해서 통신을 제공할 수 있다. 통신 유닛(810)은 데이터의 입력 및 출력을 가능하게 할 수 있다. 통신 유닛(810)은 데이터(예컨대, 패킷들, 헤더들 등)의 캡쳐 또는 다른 장치로부터의 데이터의 전송을 용이하게 할 수 있다.
컴퓨터 판독가능 매체는 또한 프로그램 코드를 포함하는 무선 전송 또는 통신 링크와 같은 비유형적 매체의 형태를 취할 수 있다.
상이한 유익한 실시 예들의 설명이 도시 및 설명의 목적을 위해서 제시되었으며, 공개된 형태의 실시 예들로 한정 또는 제한하려는 의도는 아니다. 많은 변경들 및 변형들이 당해 기술분야의 통상의 기술자들에게 명백할 것이다. 다양한 실시 예들은 이하의 내용을 포함할 수 있다:
A1. 네트워크 및/또는 장치 보안을 위해 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽으로부터 패킷 정보의 복수의 조각들을 입력으로서 수신하는 루틴(routine)을 하나 이상의 컴퓨터에서 실행하는 단계; 일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및 아무런 응답 패킷을 수신하지 않은 아웃고잉 네트워크 패킷들과 관련된 패킷 정보를 하나 이상의 데이터 저장소에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계;를 포함하는, 컴퓨터로 구현되는 방법.
A2. A1에 따른 컴퓨터로 구현되는 방법으로서, 일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 단계는, Dead-SYN 패킷들인 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
A3. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상(anomalies)이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및 네트워크 트래픽에 이상이 있는지 여부에 대한 결정을 기초로 하여 하나 이상의 이벤트(event)를 생성하는 단계;를 더 포함하고, 상기 하나 이상의 이벤트는 네트워크 또는 장치에 멀웨어가 존재할 수 있다는 것을 나타내는, 컴퓨터로 구현되는 방법.
A4. A1에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하는 단계는, 지능형 지속 위협(APTs)을 나타내는 이상을 검출하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
A5. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 아무런 응답 패킷을 수신하지 않는 복수의 아웃고잉 네트워크 패킷들을 특정 소스 장치(source device)가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A6. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 동일한 소스 및 목적지를 가진 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및 동일한 소스 및 목적지를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A7. A6에 따른 컴퓨터로 구현되는 방법으로서, 그룹에 포함된 패킷 정보의 조각들의 수는 시간 기간 설정을 패킷 정보의 각각의 조각의 시간 표시와 비교함으로써 결정되고, 그래서 결정된 일정 시간 기간 동안 패킷 정보의 다수의 조각들이 수신되는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A8. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 복수의 소스 장치들이 동일한 멀웨어로 감염되었는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A9. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 각각의 목적지에 대해, 각각의 고유 소스에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및 하나의 목적지에 대해, 각각의 고유 소스를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A10. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 소스 장치가 복수의 목적지들과 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A11. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 각각의 소스에 대해, 각각의 고유 목적지에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및 하나의 소스에 대해, 각각의 고유 목적지를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A12. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 반복해서(on a reoccurring basis) 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A13. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 그룹 내의 패킷 정보의 조각들 각각은 동일한 소스 및 목적지를 가지고, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 각각의 목적지에 대해, 그룹 내의 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및 하나의 목적지에 대해, 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A14. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 특정 시간 기간에 대해 이전(previous) 시간 기간에 대한 평균과 거의 동일한 평균 횟수로 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A15. A13에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 하나의 목적지에 대하여, 소스당 상기 하나의 목적지를 가진 그룹 내의 패킷 정보의 조각들의 평균 수를 결정하는 단계; 상기 평균 수를 패킷 정보의 이전 그룹의 이전 평균 수와 비교하는 단계; 및 상기 평균 수와 이전 평균 수가 거의 동일한지 여부를 결정하는 단계;를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A16. A13에 따른 컴퓨터로 구현되는 방법으로서, 그룹에 포함된 패킷 정보의 조각들의 수는 시간 기간 설정을 패킷 정보의 각각의 조각의 시간 표시와 비교함으로써 결정되고, 그래서 결정된 일정 시간 기간 동안 패킷 정보의 다수의 조각들이 수신되는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A17. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 아무런 응답 패킷도 수신하지 않은 아웃고잉 네트워크 패킷들의 반복되는 클러스터들을 특정 소스 장치가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A18. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 패킷 정보의 그룹을 분석하고, 각각의 소스에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계; 및 패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A19. A3에 따른 컴퓨터로 구현되는 방법으로서, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는, 특정 소스 장치가 반복되는 클러스터들에서 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
A20. A3에 따른 컴퓨터로 구현되는 방법으로서, 패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고, 패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며, 네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 단계는: 패킷 정보의 그룹을 분석하고, 각각의 소스/목적지 쌍에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계; 및 패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B1. 네트워크 및/또는 장치 보안을 위해 컴퓨터로 구현되는 방법으로서, 제1 패킷 정보를 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 제1 패킷 정보가 네트워크 통신의 개시와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및 제1 패킷 정보가 네트워크 통신의 개시와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키고 제1 패킷 정보가 잠재적인 무응답 패킷인 것으로 결정되면, 제1 패킷 정보를 하나 이상의 데이터 저장소에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B2. B1에 따른 컴퓨터로 구현되는 방법으로서, 제2 패킷 정보를 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 제2 패킷 정보가 아웃고잉 네트워크 패킷에 응답하는 인커밍 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제2 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및 제2 패킷 정보가 아웃고잉 네트워크 패킷에 응답하는 인커밍 네트워크 패킷을 식별시키고 제1 패킷 정보가 제2 패킷 정보를 기초로 하여 무응답 패킷이 아닌 것으로 결정되면, 제1 패킷 정보를 하나 이상의 데이터 저장소에서 삭제하는 것을 야기하고 및/또는 추적을 종료하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B3. B2에 따른 컴퓨터로 구현되는 방법으로서, 제1 패킷 정보 및 제2 패킷 정보는 각각 패킷 헤더 정보인 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B4. B2에 따른 컴퓨터로 구현되는 방법으로서, 제1 패킷 정보 및 제2 패킷 정보는 각각 일정 시간 기간에 대해 하나 이상의 패킷들에 공통된 패킷 헤더 정보를 포함하는 정규화된 패킷 헤더 정보인 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B5. B2에 따른 컴퓨터로 구현되는 방법으로서, 제1 패킷 정보가 네트워크 통신의 개시와 관련이 있는 아웃고잉 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 단계는, 제1 패킷 정보가 SYN 패킷인 아웃고잉 TCP 네트워크 패킷을 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B6. B3에 따른 컴퓨터로 구현되는 방법으로서, 제1 패킷 정보가 걸러져야 하는지 여부를 결정하기 위하여 제1 패킷 정보를 필터 설정 데이터와 비교함으로써, 제1 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B7. B3에 따른 컴퓨터로 구현되는 방법으로서, 하나 이상의 데이터 저장소에 저장되었거나 및/또는 추적되었던 이전의 아웃고잉 네트워크 패킷의 재전송인 네트워크 패킷을 제1 패킷 정보가 식별시키는지 여부를 결정하기 위하여 제1 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B8. B3에 따른 컴퓨터로 구현되는 방법으로서, 에러를 나타내는 패킷인 네트워크 패킷을 제2 패킷 정보가 식별시키는지 여부를 결정하기 위하여 제2 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B9. B3에 따른 컴퓨터로 구현되는 방법으로서, 특정 시간 기간 동안 하나 이상의 데이터 저장소에 존재해 온 패킷 정보를 하나 이상의 데이터 저장소에서 삭제하는 것을 야기하고 및/또는 추적을 종료하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
B10. B3에 따른 컴퓨터로 구현되는 방법으로서, 일정 시간 기간 내에서 아무런 유효한 응답 패킷을 수신하지 않은 아웃고잉 네트워크 패킷과 관련된 패킷 정보를 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및 패킷 정보를 분석하고 네트워크 또는 장치에 멀웨어가 존재할 수 있다는 것을 나타내는 하나 이상의 이벤트를 생성하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계;를 더 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
추가적인 상이한 유익한 실시 예들이 다른 유익한 실시 예들과 비교하여 상이한 이점들을 제공할 수 있다. 선택된 실시 예 또는 실시 예들은 실용적인 애플리케이션의 실시 예들의 원리를 가장 잘 설명하기 위하여 선택 및 기술되었고, 당해 기술분야의 통상의 기술자들이 심사숙고된 특정 사용에 적합한 다양한 변경들을 가진 다양한 실시 예들에 대해 본 공개를 이해할 수 있도록 선택 및 기술되었다.

Claims (15)

  1. 아웃고잉 네트워크 트래픽으로부터 패킷 정보의 복수의 조각들을 입력으로서 수신하는 루틴(routine)을 하나 이상의 컴퓨터에서 실행하는 단계 ― 패킷 정보는 일정 시간 기간(a period of time) 내에 수신되는 동일한 패킷 헤더들이 함께 그룹핑되도록 정규화(normalize)된 패킷 헤더들을 포함함 ―;
    일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷(outgoing network packet)들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계;
    아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들과 관련된 패킷 정보를 추적된 커넥션 리스트(tracked connection list)에 저장하는 것 및/또는 추적하는 것을 야기하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계;
    현재 패킷(immediate packet)의 헤더 정보와 비교하여 리버스되어(reversed) 있는 정규화된 헤더 정보를 포함하는 항목(entry)이 상기 추적된 커넥션 리스트에 존재하는지 여부를 결정하는 단계 ― 현재 패킷의 헤더 정보는 소스 IP 주소 대 목적지 IP 주소 커넥션(Src-to-Dst)을 나타내고, 리버스되어 있는 정규화된 헤더 정보는 목적지 IP 주소 대 소스 IP 주소 커넥션(Dst-to-Srt)을 나타냄 ―;
    현재 패킷의 헤더 정보와 비교하여 리버스되어 있는 정규화된 헤더 정보를 포함하는 항목이 상기 추적된 커넥션 리스트에 존재한다고 결정된 경우에, 현재 패킷이 실질적인 응답(substantive response)을 포함하는지 여부를 결정하는 단계; 및
    현재 패킷이 실질적인 응답을 포함한다고 결정된 경우에, 상기 추적된 커넥션 리스트로부터 상기 현재 패킷과 연관된 패킷 정보를 삭제하는 단계;
    를 포함하는 것을 특징으로 하는, 네트워크 및/또는 장치 보안을 위해 컴퓨터로 구현되는 방법.
  2. 제 1 항에 있어서,
    일정 시간 기간 동안 아무런 응답 패킷을 수신하지 않는 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, Dead-SYN 패킷들인 아웃고잉 네트워크 패킷들을 식별하기 위하여 패킷 정보의 조각들을 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  3. 제 1 항에 있어서,
    네트워크 트래픽에 이상(anomalies)이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계; 및
    네트워크 트래픽에 이상이 있는지 여부에 대한 결정을 기초로 하여 하나 이상의 이벤트(event)를 생성하는 단계;를 더 포함하고,
    상기 하나 이상의 이벤트는 네트워크 또는 장치에 멀웨어(malware)가 존재할 수 있다는 것을 나타내는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  4. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 아무런 응답 패킷을 수신하지 않은 복수의 아웃고잉 네트워크 패킷들을 특정 소스 장치(source device)가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  5. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 복수의 소스 장치들이 동일한 멀웨어로 감염되었는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  6. 제 3 항에 있어서,
    패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고,
    패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스(source) 및 목적지(destination)와 시간 표시를 포함하며,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는:
    각각의 목적지에 대해, 각각의 고유(unique) 소스에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및
    하나의 목적지에 대해, 각각의 고유 소스를 가진 패킷 정보의 조각들의 수가 임계값(threshold)을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  7. 제 3 항에 있어서,
    패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고,
    패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는:
    각각의 소스에 대해, 각각의 고유 목적지에 대한 그룹에서 패킷 정보의 조각들의 수를 결정하기 위하여 패킷 정보의 그룹을 분석하는 단계; 및
    하나의 소스에 대해, 각각의 고유 목적지를 가진 패킷 정보의 조각들의 수가 임계값을 초과하는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  8. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 특정 소스 장치가 반복해서(on a reoccurring basis) 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  9. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 특정 소스 장치가 특정 시간 기간에 대해 이전(previous) 시간 기간에 대한 평균과 거의 동일한 평균 횟수로 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  10. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 아무런 응답 패킷도 수신하지 않은 아웃고잉 네트워크 패킷들의 반복되는 클러스터(repeating cluster)들을 특정 소스 장치가 생성했는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  11. 제 3 항에 있어서,
    패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고,
    패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는:
    패킷 정보의 그룹을 분석하고, 각각의 소스에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계; 및
    패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  12. 제 3 항에 있어서,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는, 특정 소스 장치가 반복되는 클러스터들에서 특정 목적지와 통신하길 시도하고 있는지 여부를 결정하기 위하여 패킷 정보를 분석하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  13. 제 3 항에 있어서,
    패킷 정보의 복수의 조각들을 포함하는 패킷 정보의 그룹을 하나 이상의 데이터 저장소로부터 입력으로서 수신하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계를 더 포함하고,
    패킷 정보의 조각들 각각은 네트워크 패킷과 관련이 있고, 관련 패킷의 소스 및 목적지와 시간 표시를 포함하며,
    네트워크 트래픽에 이상이 있는지 여부를 결정하기 위하여 하나 이상의 데이터 저장소로부터 패킷 정보를 분석하는 루틴을 하나 이상의 컴퓨터에서 실행하는 단계는:
    패킷 정보의 그룹을 분석하고, 각각의 소스/목적지 쌍에 대해, 상대적으로 서로 근접한 시간 표시들을 갖는 패킷 정보의 조각들에 대하여 패킷 클러스터들을 형성하는 단계; 및
    패킷 클러스터들 간의 시간이 반복되고 있는지 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는, 컴퓨터로 구현되는 방법.
  14. 하나 이상의 네트워크와 통신하는 하나 이상의 통신 유닛;
    컴퓨터 코드를 저장하는 하나 이상의 메모리 유닛; 및
    하나 이상의 통신 유닛과 하나 이상의 메모리 유닛에 연결된 하나 이상의 프로세서 유닛;을 포함하고,
    하나 이상의 프로세서 유닛은 청구항 제1항 내지 제13항 중의 어느 한 항의 방법을 수행하도록 데이터 처리 시스템을 적용하기 위하여 하나 이상의 메모리 유닛에 저장된 컴퓨터 코드를 실행하는 것을 특징으로 하는, 네트워크 보안을 위한 데이터 처리 시스템.
  15. 하나 이상의 네트워크와 통신하는 하나 이상의 통신 유닛;
    컴퓨터 코드를 저장하는 하나 이상의 메모리 유닛; 및
    하나 이상의 통신 유닛과 하나 이상의 메모리 유닛에 연결된 하나 이상의 프로세서 유닛;을 포함하고,
    하나 이상의 프로세서 유닛은 청구항 제1항 내지 제13항 중의 어느 한 항의 방법을 수행하도록 데이터 처리 시스템을 적용하기 위하여 하나 이상의 메모리 유닛에 저장된 컴퓨터 코드를 실행하는 것을 특징으로 하는, 장치 보안을 위한 데이터 처리 시스템.
KR1020130081342A 2012-09-11 2013-07-11 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출 KR102040990B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/610,537 2012-09-11
US13/610,537 US9191399B2 (en) 2012-09-11 2012-09-11 Detection of infected network devices via analysis of responseless outgoing network traffic

Publications (2)

Publication Number Publication Date
KR20140034045A KR20140034045A (ko) 2014-03-19
KR102040990B1 true KR102040990B1 (ko) 2019-11-05

Family

ID=48998518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130081342A KR102040990B1 (ko) 2012-09-11 2013-07-11 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출

Country Status (8)

Country Link
US (1) US9191399B2 (ko)
EP (1) EP2706721B1 (ko)
JP (1) JP6714314B2 (ko)
KR (1) KR102040990B1 (ko)
CN (1) CN103685223B (ko)
AU (1) AU2013206740B2 (ko)
CA (1) CA2821126C (ko)
SG (1) SG2013064357A (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9641349B2 (en) 2013-04-22 2017-05-02 Salesforce.Com, Inc. Systems and methods of viral enablement of features by peer-to-peer connection
JP6229504B2 (ja) * 2014-01-09 2017-11-15 富士通株式会社 ネットワーク監視装置、監視方法及びプログラム
US10846257B2 (en) * 2014-04-01 2020-11-24 Endance Technology Limited Intelligent load balancing and high speed intelligent network recorders
US9917851B2 (en) 2014-04-28 2018-03-13 Sophos Limited Intrusion detection using a heartbeat
US10122753B2 (en) * 2014-04-28 2018-11-06 Sophos Limited Using reputation to avoid false malware detections
US20160191549A1 (en) * 2014-10-09 2016-06-30 Glimmerglass Networks, Inc. Rich metadata-based network security monitoring and analysis
US9853988B2 (en) 2014-11-18 2017-12-26 Vectra Networks, Inc. Method and system for detecting threats using metadata vectors
WO2016097757A1 (en) 2014-12-18 2016-06-23 Sophos Limited A method and system for network access control based on traffic monitoring and vulnerability detection using process related information
US20160241574A1 (en) * 2015-02-16 2016-08-18 Taasera, Inc. Systems and methods for determining trustworthiness of the signaling and data exchange between network systems
JP6641819B2 (ja) * 2015-09-15 2020-02-05 富士通株式会社 ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム
CN106921608B (zh) * 2015-12-24 2019-11-22 华为技术有限公司 一种检测终端安全状况方法、装置及系统
US20170300541A1 (en) * 2016-04-15 2017-10-19 Counsyl, Inc. Analytic results management database
US10412099B2 (en) * 2016-06-22 2019-09-10 Paypal, Inc. System security configurations based on assets associated with activities
JP6581053B2 (ja) * 2016-09-01 2019-09-25 日本電信電話株式会社 フロー解析装置、トラフィック解析システム、及びフロー解析方法
US9584381B1 (en) 2016-10-10 2017-02-28 Extrahop Networks, Inc. Dynamic snapshot value by turn for continuous packet capture
US10476673B2 (en) 2017-03-22 2019-11-12 Extrahop Networks, Inc. Managing session secrets for continuous packet capture systems
US20180324061A1 (en) * 2017-05-03 2018-11-08 Extrahop Networks, Inc. Detecting network flow states for network traffic analysis
JP6749873B2 (ja) * 2017-09-01 2020-09-02 日本電信電話株式会社 検知装置、検知方法、および、検知プログラム
JP7301181B2 (ja) * 2017-10-11 2023-06-30 村上 真梨 検出方法、検出プログラムおよび検出装置
JP2019070995A (ja) * 2017-10-11 2019-05-09 村上 真梨 検出方法、検出プログラムおよび検出装置
JP6866271B2 (ja) * 2017-10-18 2021-04-28 日本電信電話株式会社 異常検知装置、異常検知方法、及びプログラム
US9967292B1 (en) 2017-10-25 2018-05-08 Extrahop Networks, Inc. Inline secret sharing
CN109951348B (zh) * 2017-12-21 2022-11-04 北京奇虎科技有限公司 一种验证应用流量的质量的方法、装置及电子设备
US10389574B1 (en) 2018-02-07 2019-08-20 Extrahop Networks, Inc. Ranking alerts based on network monitoring
US10038611B1 (en) 2018-02-08 2018-07-31 Extrahop Networks, Inc. Personalization of alerts based on network monitoring
US10270794B1 (en) 2018-02-09 2019-04-23 Extrahop Networks, Inc. Detection of denial of service attacks
US10411978B1 (en) 2018-08-09 2019-09-10 Extrahop Networks, Inc. Correlating causes and effects associated with network activity
US10594718B1 (en) 2018-08-21 2020-03-17 Extrahop Networks, Inc. Managing incident response operations based on monitored network activity
CN109274677B (zh) * 2018-10-11 2021-04-27 四川长虹电器股份有限公司 基于机器学习的ip分类方法及系统
US10965702B2 (en) * 2019-05-28 2021-03-30 Extrahop Networks, Inc. Detecting injection attacks using passive network monitoring
US11165814B2 (en) 2019-07-29 2021-11-02 Extrahop Networks, Inc. Modifying triage information based on network monitoring
US11388072B2 (en) 2019-08-05 2022-07-12 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US10742530B1 (en) 2019-08-05 2020-08-11 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
CN110535844B (zh) * 2019-08-20 2021-09-28 北京网思科平科技有限公司 一种恶意软件通讯活动检测方法、系统及存储介质
US10742677B1 (en) 2019-09-04 2020-08-11 Extrahop Networks, Inc. Automatic determination of user roles and asset types based on network monitoring
CN110661794B (zh) * 2019-09-20 2021-07-27 秒针信息技术有限公司 流量识别方法、装置、电子设备及可读存储介质
US11165823B2 (en) 2019-12-17 2021-11-02 Extrahop Networks, Inc. Automated preemptive polymorphic deception
US11463466B2 (en) 2020-09-23 2022-10-04 Extrahop Networks, Inc. Monitoring encrypted network traffic
EP4218212A1 (en) 2020-09-23 2023-08-02 ExtraHop Networks, Inc. Monitoring encrypted network traffic
CN112838966A (zh) * 2021-04-22 2021-05-25 北京拓课网络科技有限公司 一种udp链路监控方法、系统及电子设备
RU2769075C1 (ru) * 2021-06-10 2022-03-28 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ активного обнаружения вредоносных сетевых ресурсов
US11349861B1 (en) 2021-06-18 2022-05-31 Extrahop Networks, Inc. Identifying network entities based on beaconing activity
US11296967B1 (en) 2021-09-23 2022-04-05 Extrahop Networks, Inc. Combining passive network analysis and active probing
US11768720B2 (en) * 2021-09-29 2023-09-26 PagerDuty, Inc. Auto pause incident notification
US11843606B2 (en) 2022-03-30 2023-12-12 Extrahop Networks, Inc. Detecting abnormal data access based on data similarity
US11902404B1 (en) * 2022-06-10 2024-02-13 Juniper Networks, Inc. Retaining key parameters after a transmission control protocol (TCP) session flap
CN115865683B (zh) * 2023-03-02 2023-05-23 山东创安交通预警工程有限公司 智慧社区设备管理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126522A1 (en) * 2004-11-08 2006-06-15 Du-Young Oh Detecting malicious codes
JP2008141398A (ja) * 2006-11-30 2008-06-19 Mitsubishi Electric Corp 中継装置および中継装置の制御方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772348B1 (en) * 2000-04-27 2004-08-03 Microsoft Corporation Method and system for retrieving security information for secured transmission of network communication streams
US20110214157A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Securing a network with data flow processing
US20060212572A1 (en) * 2000-10-17 2006-09-21 Yehuda Afek Protecting against malicious traffic
WO2003083660A1 (en) * 2002-03-29 2003-10-09 Global Dataguard, Inc. Adaptive behavioral intrusion detection systems and methods
US7716725B2 (en) * 2002-09-20 2010-05-11 Fortinet, Inc. Firewall interface configuration and processes to enable bi-directional VoIP traversal communications
US7391740B2 (en) * 2003-04-17 2008-06-24 University Of Maryland Method for quantifying reponsiveness of flow aggregates to packet drops in a communication network
US7266754B2 (en) * 2003-08-14 2007-09-04 Cisco Technology, Inc. Detecting network denial of service attacks
JP4051020B2 (ja) * 2003-10-28 2008-02-20 富士通株式会社 ワーム判定プログラム、ワーム判定プログラムを記憶したコンピュータ読み取り可能な記憶媒体、ワーム判定方法およびワーム判定装置
US8204984B1 (en) * 2004-04-01 2012-06-19 Fireeye, Inc. Systems and methods for detecting encrypted bot command and control communication channels
CN100344972C (zh) * 2004-04-16 2007-10-24 中国人民解放军防化指挥工程学院 一种病毒检测系统及检测方法
US7854000B2 (en) * 2004-10-26 2010-12-14 Cisco Technology, Inc. Method and system for addressing attacks on a computer connected to a network
WO2006093557A2 (en) * 2004-12-22 2006-09-08 Wake Forest University Method, systems, and computer program products for implementing function-parallel network firewall
CA2514039A1 (en) * 2005-07-28 2007-01-28 Third Brigade Inc. Tcp normalization engine
WO2007019349A2 (en) * 2005-08-03 2007-02-15 Calyptix Security Systems and methods for dynamically learning network environments to achieve adaptive security
US7832009B2 (en) * 2005-12-28 2010-11-09 Foundry Networks, Llc Techniques for preventing attacks on computer systems and networks
US8255996B2 (en) * 2005-12-30 2012-08-28 Extreme Networks, Inc. Network threat detection and mitigation
US8397284B2 (en) * 2006-01-17 2013-03-12 University Of Maryland Detection of distributed denial of service attacks in autonomous system domains
US7930256B2 (en) * 2006-05-23 2011-04-19 Charles River Analytics, Inc. Security system for and method of detecting and responding to cyber attacks on large network systems
US7953984B1 (en) 2006-06-29 2011-05-31 Trend Micro Incorporated Enhanced malware detection utilizing transparently integrated searching
US8533819B2 (en) * 2006-09-29 2013-09-10 At&T Intellectual Property Ii, L.P. Method and apparatus for detecting compromised host computers
CN101227314A (zh) * 2007-01-18 2008-07-23 国际商业机器公司 用于通过网络安全地更新脆弱系统的装置和方法
US8020207B2 (en) * 2007-01-23 2011-09-13 Alcatel Lucent Containment mechanism for potentially contaminated end systems
US8429742B2 (en) * 2007-04-16 2013-04-23 International Business Machines Corporation Detection of a denial of service attack on an internet server
US20090265777A1 (en) * 2008-04-21 2009-10-22 Zytron Corp. Collaborative and proactive defense of networks and information systems
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
KR101048513B1 (ko) * 2009-10-13 2011-07-12 연세대학교 산학협력단 애드 혹 네트워크에서의 악의적 플러딩 공격에 대한 대처 방법 및 장치
FR2954547B1 (fr) * 2009-12-21 2012-10-12 Alcatel Lucent Procede de detection d?un detournement de ressources informatiques
US8291258B2 (en) * 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
JP2012084994A (ja) * 2010-10-07 2012-04-26 Hitachi Ltd マルウェア検出方法、およびマルウェア検出装置
US8677487B2 (en) * 2011-10-18 2014-03-18 Mcafee, Inc. System and method for detecting a malicious command and control channel
US9792430B2 (en) * 2011-11-03 2017-10-17 Cyphort Inc. Systems and methods for virtualized malware detection
US8990948B2 (en) * 2012-05-01 2015-03-24 Taasera, Inc. Systems and methods for orchestrating runtime operational integrity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126522A1 (en) * 2004-11-08 2006-06-15 Du-Young Oh Detecting malicious codes
JP2008141398A (ja) * 2006-11-30 2008-06-19 Mitsubishi Electric Corp 中継装置および中継装置の制御方法

Also Published As

Publication number Publication date
US20140075536A1 (en) 2014-03-13
JP6714314B2 (ja) 2020-06-24
CN103685223A (zh) 2014-03-26
SG2013064357A (en) 2014-04-28
US9191399B2 (en) 2015-11-17
AU2013206740B2 (en) 2016-09-15
KR20140034045A (ko) 2014-03-19
CA2821126C (en) 2020-05-05
JP2014057307A (ja) 2014-03-27
AU2013206740A1 (en) 2014-03-27
CA2821126A1 (en) 2014-03-11
EP2706721B1 (en) 2019-11-27
CN103685223B (zh) 2018-09-28
EP2706721A2 (en) 2014-03-12
EP2706721A3 (en) 2017-01-04

Similar Documents

Publication Publication Date Title
KR102040990B1 (ko) 응답이 없는 아웃고잉 네트워크 트래픽의 분석을 통한 감염된 네트워크 장치의 검출
US10645110B2 (en) Automated forensics of computer systems using behavioral intelligence
Anderson et al. Deciphering malware’s use of TLS (without decryption)
EP3195124B1 (en) Malicious relay detection on networks
US8578493B1 (en) Botnet beacon detection
US7752665B1 (en) Detecting probes and scans over high-bandwidth, long-term, incomplete network traffic information using limited memory
US9094288B1 (en) Automated discovery, attribution, analysis, and risk assessment of security threats
JP4327698B2 (ja) ネットワーク型ウィルス活動検出プログラム、処理方法およびシステム
US8418247B2 (en) Intrusion detection method and system
JP5518594B2 (ja) 内部ネットワーク管理システム及び内部ネットワーク管理方法及びプログラム
Vaarandi et al. Using security logs for collecting and reporting technical security metrics
Yamada et al. Intrusion detection for encrypted web accesses
Nguyen et al. An efficient approach to reduce alerts generated by multiple IDS products
Bolzoni et al. ATLANTIDES: An Architecture for Alert Verification in Network Intrusion Detection Systems.
Seo et al. Abnormal behavior detection to identify infected systems using the APChain algorithm and behavioral profiling
US9060021B2 (en) DDoS detection using sensor grid
US11463331B1 (en) Identification of beaconing from network communication events of network traffic log
US20230082289A1 (en) Automated fuzzy hash based signature collecting system for malware detection
Liu et al. Discovering anomaly on the basis of flow estimation of alert feature distribution
WO2023094170A1 (en) Method and apparatus for protecting a computing device connected to a network
Singh et al. Intrusion Detection System Based on Real Time Rule Accession and Honeypot
Wahid et al. Detecting an Anomaly Behavior through Enhancing the Mechanism of Packet Filtering

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