KR101737726B1 - 네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출 - Google Patents

네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출 Download PDF

Info

Publication number
KR101737726B1
KR101737726B1 KR1020157033703A KR20157033703A KR101737726B1 KR 101737726 B1 KR101737726 B1 KR 101737726B1 KR 1020157033703 A KR1020157033703 A KR 1020157033703A KR 20157033703 A KR20157033703 A KR 20157033703A KR 101737726 B1 KR101737726 B1 KR 101737726B1
Authority
KR
South Korea
Prior art keywords
monitor data
programmable device
environment
operating system
malware
Prior art date
Application number
KR1020157033703A
Other languages
English (en)
Other versions
KR20160004349A (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 KR20160004349A publication Critical patent/KR20160004349A/ko
Application granted granted Critical
Publication of KR101737726B1 publication Critical patent/KR101737726B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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
    • 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
    • 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/1425Traffic logging, e.g. anomaly detection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer

Abstract

기술은 네트워크 트래픽을 은닉하려고 시도하는 은밀화된 멀웨어를 검출하는 것이 가능하다. 보안이 되고 신뢰성 있는 환경 그리고 운영 시스템 환경 이 둘 모두에서 네트워크 트래픽을 모니터링하고 나서, 모니터 데이터를 비교함으로써, 네트워크 트래픽을 은닉하려는 시도들이 검출될 수 있어서, 컴퓨터 시스템상에서 복원 조치들을 수행하는 것이 가능한 것들이 네트워크 트래픽을 은닉하는 멀웨어를 찾아 제거하는 것이 가능하다.

Description

네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출{ROOTKIT DETECTION BY USING HARDWARE RESOURCES TO DETECT INCONSISTENCIES IN NETWORK TRAFFIC}
본원에서 설명되는 실시예들은 일반적으로 멀웨어 검출(malware detection)에 관한 것으로, 특히 안티 멀웨어 소프트웨어(anti malware software)로부터 네트워크 트래픽을 은닉(hide)하려고 하는 멀웨어를 검출하는 것에 관한 것이다.
루트킷(rootkit)들은 정상적인 검출 방법들로부터 특정한 프로세스들 또는 프로그램들의 존재를 은닉하도록 설계되는 잠행 유형(stealthy type)의 악성 소프트웨어(멀웨어)이다. 루트킷들로 인해 전형적으로 손상된 시스템에 계속하여 특권적으로 액세스하는 것이 가능해진다. 공격자가 루트 또는 관리자 액세스를 획득할 때 루트킷 설치는 자동화되거나 활성화될 수 있다. 이 액세스를 획득하는 것은 공지되어 있는 취약성을 이용하는 시스템에 대한 직접적인 공격 결과이거나, 또는 (크래킹(cracking), 특권 상승(privilege escalation) 또는 소셜 엔지니어링(social engineering)에 의한) 패스워드에 액세스하는 것을 획득하는 것에 의한 것이다. 일단 설치되면 루트킷은 전형적으로 자신(또는 다른 프로세스들)을 위해 침입을 은닉할 뿐만 아니라 특권적인 액세스를 유지하려고 시도한다.
루트킷은 자신을 발견하도록 의도된 소프트웨어를 와해시키는 것이 가능할 수 있기 때문에 루트킷을 검출하는 것은 어렵다. 검출 방법들은 대안의, 신뢰성 있는 운영 시스템, 행동 기반 방법들, 서명 스캐닝, 차 스캐닝(difference scanning) 및 메모리 덤프(memory dump) 분석을 사용하는 것을 포함한다. 특히 루트킷이 커널(kernel)에 상주하는 경우에는, 제거하는 것이 복잡하거나 실제로 불가능할 수 있다. 운영 시스템의 재설치는 이 문제에 대한 유일한 이용 가능한 해법일 수 있다. 펌웨어 루트킷들을 처리할 때, 제거하는 데에는 하드웨어 대체물 또는 특수 장비가 필요할 수 있다.
현대의 루트킷들은 반드시 액세스를 상승시키지는 않으나, 흔히 잠행 능력들을 추가함으로써 다른 소프트웨어 페이로드(payload)가 검출되지 않도록 하는데 사용된다. 대부분의 루트킷들은 멀웨어로 분류되는데 왜냐하면 자신들과 번들(bundle)화되어 있는 페이로드들이 악성이기 때문이다. 예를 들어, 페이로드는 사용자 패스워드들, 신용카드 정보, 컴퓨팅 자원들을 은밀히 훔쳐내거나 다른 비인가된 활동들을 수행할 수 있다. 작은 수의 루트킷들은 이 루트킷들의 사용자들에 의해 유틸리티 애플리케이션(utility application)들로 간주될 수 있다: 예를 들어, 루트킷은 CD-ROM 에뮬레이션(emulation) 드라이버를 클로킹(cloaking)하여, 소프트웨어가 합법적으로 구매되었는지를 검증하기 위해 원래의 설치 매체를 물리적 광 드라이브로 삽입할 것을 요구하는 안티 프라이버시(anti-privacy) 조치들을 비디오 게임 사용자들이 무력화(defeat)하는 것이 가능하다.
루트킷들은 컴퓨터 환경의 상이한 특권 레벨들 또는 모드들에서 작동할 수 있다. 사용자 모드 루트킷들은 저 레벨 시스템 프로세스들보다는 오히려, 대부분의 다른 사용자 애플리케이션들과 동일한 모드에서 작동한다. 이것들은 애플리케이션 프로그래밍 인터페이스(application programming interface; API)들의 표준 거동을 인터셉트하고 수정하기 위하여 다수의 가능한 설치 벡터(vector)들을 가진다. 일부는 동적으로 링크되는 라이브러리(.DLL 파일, .dylib 파일, .so 파일 또는 .shlib 파일과 같은)를 다른 프로세스들에 주입하고 이에 의해 임의의 목표 프로세스를 스푸핑(spoofing)하기 위해 이 프로세스 내에서 실행될 수 있다. 충분한 특권들을 가지는 다른 것들은 목표 애플리케이션의 메모리를 단지 중첩기록(overwrite)한다.
커널 모드 루트킷들(링(ring) 0) 및/또는 가상화 계층 내에 상주하는 루트킷들(때로는 링 -1로 칭해진다)은 코드를 추가하거나 커널 및 연관되는 디바이스 드라이버들 모두를 포함하는 코어 운영 시스템의 일부분들을 대체함으로써, 최상위 운영 시스템 특권들을 지닌 채로 작동한다. 대부분의 운영 시스템들은 운영 시스템 자체와 동일한 특권들을 지니고 실행되는 커널 모드 디바이스 드라이버들을 지원한다. 이에 따라, 많은 커널 모드 루트킷들은 로딩 가능 커널 모듈들 또는 디바이스 드라이버들과 같이, 디바이스 드라이버들 또는 로딩 가능 모듈들로 개발된다. 이 계층의 루트킷은 보안에 제한 없이 액세스한다. 커널 루트킷들은 특히 검출 및 제거하는 것이 어려울 수 있는데 왜냐하면 이것들은 운영 시스템 자체와 동일한 보안 레벨에서 동작하고 그러므로 가장 신뢰를 받는 운영 시스템 동작들을 인터셉트하거나 와해시키고 이에 의해 자신들을 잠행과 같은 방식으로 은닉할 수 있기 때문이다. 시스템에 자신들이 존재하는 것을 은닉하는 루트킷들 및 다른 멀웨어는 감염된 운영 환경의 범위 내에서부터 검출 및 제거되는 것이 어렵다.
도 1은 하나의 실시예에 따라 은닉되어 있는 네트워크 트래픽이 있는 컴퓨터들의 네트워크를 도시하는 블록도이다.
도 2는 하나의 실시예에 따라 보안 환경 및 비보안(insecure) 환경에서 모니터링되는 네트워크 트래픽 사이의 차들을 도시하는 차트이다.
도 3은 하나의 실시예에 따라 루트킷들을 검출하기 위한 컴퓨터 시스템을 도시하는 블록도이다.
도 4는 하나의 실시예에 따라 멀웨어를 검출하기 위한 기술을 도시하는 흐름도이다.
도 5는 다른 실시예에 따라 멀웨어를 검출하기 위한 기술을 도시하는 흐름도이다.
도 6은 또 다른 실시예에 따라 멀웨어를 검출하기 위한 기술을 도시하는 흐름도이다.
다음의 설명에서는, 설명의 목적으로, 본 발명의 철저한 이해를 제공하기 위하여 숫자로 명시되는 세부사항들이 제시된다. 그러나, 본 발명이 이 특정한 세부사항들 없이 실시될 수 있음이 당업자에게는 자명할 것이다. 다른 예들에서, 구조 및 디바이스들은 본 발명을 모호하게 하는 것을 방지하기 위하여 블록도 형태로 도시된다. 아래첨자들 또는 접미사들이 없는 숫자들을 언급하는 것은 언급되는 숫자에 대응하는 아래첨자들 및 접미사들의 모든 예를 언급하는 것으로 이해된다. 더욱이, 본 명세서에서 사용되는 언어는 주로 판독 용이성 및 교육 목적들을 위해 선택되었고 본 발명의 특허대상을 기술하거나 한정하도록 선택되지 않았을 수 있으며, 그와 같은 발명의 특허대상을 결정하는 데 필요한 청구항들에 의존한다. 명세서에서 "하나의 실시예" 또는 "실시예"라 함은 실시예들과 관련되어 설명되는 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함되는 것을 의미하고, "하나의 실시예" 또는 "실시예"라는 것이 다수 회 칭해지는 것이 반드시 모두 동일한 실시예를 칭하는 것으로 이해되어서는 안 된다.
본원에서 설명되는 실시예들은 예들이고 실례의 목적들을 위한 것이다. 당업자는 개시되는 특허대상을 구현하기 위해 대안의 기술들이 사용될 수 있음을 인정할 것이다. 예의 실시예들의 요소들은 상이한 배열들로 배열되거나 상이한 예의 실시예들의 요소들과 결합될 수 있다. 예를 들어, 블록들 및 흐름도들의 실행 순서는 바뀔 수 있다. 이 흐름도들의 블록들의 일부는 변경되거나, 제거되거나 또는 결합될 수 있고, 원하는 바에 따라 다른 블록들이 추가될 수 있다.
본원에서 사용되는 바와 같이, 용어 "컴퓨터 시스템"은 단일 컴퓨터 또는 하나의 컴퓨터 시스템상에서 또는 하나의 컴퓨터 시스템에 의해 수행되는 것으로 기술되는 기능을 수행하도록 함께 작업하는 복수의 컴퓨터들을 칭할 수 있다.
점점 더, 사업체들, 정부 관청들 및 기타 등등에 대한 사이버 공격들은 은밀화되고 지속화되고 있다. 결과적으로, 은밀화된 통신들을 검출하는 능력은 지적 재산 및 개인 정보 도난의 위협들을 처리하는 것을 가능하게 하는 데 점점 더 중요해지고 있다.
한 사람의 트랙(track)들을 커버하는 데 있어서 주요한 요소는 운영 시스템 내에 상주하는 소프트웨어로부터 은닉하는 것을 포함한다. 검출을 방지하는 흔한 방법은 안티 바이러스 및 호스트 기반 침입 검출과 같은 소프트웨어로부터 활동들을 은닉할 수 있는 멀웨어를 사용하는 것이다. 현대의 위협들은 운영 시스템 내부에 은닉하는데 더 관심을 기울이지만(루트킷들 및 부트킷(bootkit)들), 은밀화된 네트워크 전송들이 당연한 다음 단계이므로, 멀웨어 통신들을 검출하는 것은 점점 더 유용해지고 가치가 커지고 있다. 부트킷들(부트 프로세스 동안 운영 시스템 개시 전에 가동하는 루트킷들)은 운영 시스템과 네트워크 하드웨어와의 상호 작용을 제어할 수 있다. 이것들은 또한 네트워킹 스택(networking stack), 전형적으로 인터넷 프로토콜(Internet Protocol; IP) 스택을 조작할 수 있다. 이것은 운영 시스템 및 운영 시스템 하에서 운용되는 소프트웨어(침입 검출 또는 다른 보안 소프트웨어를 포함하는)가 악성 네트워크 트래픽을 보는 것을 불가능하게 할 것이다. 루트킷은 또한 펌웨어로부터 활성화될 수 있고, 이것은 검출을 어렵게 만들고 제거하는 것을 현저하게 더 어렵게 만들 것이다.
시장에서는 상이한 방법들을 사용하는 다수의 루트킷 검출 프로그램들이 있다. 신뢰성 있는 정보 및 감염의 잠재성이 있는 정보를 비교하는 방법들이 널리 공지되어 있고 이 방법들은 Sony DRM 루트킷을 검출할 수 있는 Russinovich의 RootkitRevealer에 의한 차 기반(difference based) 검출을 사용하는 것과 같이 많은 안티 루트킷 툴들에서 사용되어 왔다. 다른 예들은 F-Secure의 Blacklight 및 McAfee의 RootkitDetective이고, 이들 모두는 주 검출 방법들 중 하나로서 차등 뷰잉(differential viewing)을 사용한다. 그러나, 기존 안티 루트킷 솔루션들은 네트워크 트래픽을 고려하지 않고, 네트워크 트래픽을 은닉하는 루트킷 또는 부트킷 툴들을 순전히 소프트웨어 기반 차 기반 검출만을 사용하여 검출하는 것이 불가능하지는 않더라도 어려울 것이다.
은닉되어 있는 네트워크 트래픽을 검출하는 가치 및 그와 같은 트래픽을 검출하는 문제에 대한 인식이 아래에서 개시되는 솔루션들로 이어졌다. 다음은 은밀화되고, 지속하는 위협들이 있는 곳에서 본 발명의 중요성을 나타내는 서너 개의 예들이다.
어떠한 방법을 통하든지 간에 로딩된 멀웨어를 고려하자(예를 들어, 웹 사이트에서의 드라이브 바이(drive-by)). 멀웨어는 정보를 수집하고 수집된 정보를 주기적으로 외부 엔티티(entity)로 몰래 빼내도록(exfiltrate) 설계된다. 호스트 기반 또는 네트워크 기반일 수 있는 침입 검출 시스템들이 상기 활동을 의심스러운 것으로 플래그(flag)하기 때문에, 멀웨어 설계자들은 침입 검출 에이전트들이 몰래 빼내기를 검출하는 것을 막도록 시도한다. 네트워크 기반 로깅(logging) 및 침입 검출 시스템들을 방지하기 위해, 멀웨어는 프록시가 사용되지 않을 때 또는 공지되어 있는 개인 IP 어드레스(예를 들어, 192.168.X.X)에 접속될 때에만 정보를 송신하도록 설계될 수 있다. 심지어 외부 엔티티가 현재 알려지지 않고, 침입 검출 시스템들에 의해 악성으로 블랙리스트로 올라와 있지 않을지라도, 외부 엔티티는 이후에 알려질 수 있다. 은밀한 상태로 유지되도록, 멀웨어 설계자들은 루트킷들 또는 부트킷들을 사용하여 호스트 기반 침입 검출 시스템들에 의해 검출되지 않은 외부 엔티티와 통신하기 위하여 네트워크 트래픽을 유지하기 위한 시도를 행할 수 있다. 이것은 실제 전송되고 수신되는 것과 운영 시스템 환경 소프트웨어가 송신 및 수신되는 것으로 기록할 수 있는 것 사이의 네트워크 기록들의 불일치를 발생시키고, 따라서 호스트 기반 침입 검출 시스템들이 검출할 수 있는 것들이 제한된다. 이 결점이 은닉되는 네트워크 트래픽의 문제에 대한 해법의 기회를 제공한다.
다른 예에서, 휴지 에이전트(dormant agent)는 종종 명령 및 제어(command and control; C&C) 시스템에 충돌한다. 상기 시스템은 공지되는 C&C 시스템이 될 수 있고, 이 C&C 시스템과의 통신을 검출하는 것은 멀웨어의 존재를 드러낼 수 있다. 논리적으로 멀웨어가 하는 것은 이 C&C 시스템과의 접촉이 은닉된 채로 유지하는 것이다. 그러나, 이것은 실제 네트워크 트래픽 및 운영 시스템 환경 내의 네트워크 트래픽 모니터들이 검출하는 것 사이의 불일치를 발생시키고 해법에 대한 다른 기회를 제공한다.
본원에서 기술되는 해법들은 은닉되는 시도를 행하는 네트워크 트래픽을 잡아내는 것을 목표로 한다. 이것들은 통상적으로 검출을 시도하는 데 가장 중요한 것들인데, 왜냐하면 은닉되는 것들은 일반적으로 은닉되는 원인이 있기 때문이다. 네트워크 트래픽을 모니터링하기 위해 운영 시스템 환경 내의 소프트웨어를 사용하는 것 외에, 전형적으로 컴퓨터 시스템의 하드웨어 내에 내장되어 있는 신뢰성 있는 환경을 사용하여 네트워크 트래픽 기록들을 비교함으로써, 외부 네트워크 모니터들을 사용할 필요 없이 은닉되어 있는 네트워크 트래픽이 검출될 수 있다. 신뢰성 있는 환경들에서 작성되는 네트워크 트래픽 기록들은 운영 시스템 환경에서 작성되는 네트워크 기록들과 비교되고, 여기서 차들은 일반적으로 은닉되어 있는 네트워크 트래픽이 있음을 나타낸다.
이 해법들의 구성요소들은 호스트 기반 침입 검출 시스템, 하드웨어 모니터들 및 비교 설비와 같이, 운영 시스템 기반 소프트웨어를 포함할 수 있다. 게다가, 일단 검출이 발생했으면, 시스템은 시정 조치를 취하고자 비교 설비에 의해 발생되는 경보들에 따라 행동하는 것이 가능할 수 있다. 이 구성요소들은 아래에서 더 상세하게 설명된다.
기존 안티 루트킷 해법은 네트워크 트래픽에 대한 차등 뷰잉을 수행하지 않고, 기존 검출 기술은 안전한 환경 저작 데이터(environment-authored data)를 사용하지 않는다.
도 1은 아래에서 설명되는 기술들에 의해 검출될 수 있는 네트워크 트래픽을 도시하는 블록도이다. 이 예에서, 컴퓨터(110)는 컴퓨터들(130, 140 및 150)과 네트워크(120)를 통해 통신하고 있지만, 컴퓨터(110) 및 컴퓨터(130) 사이의 트래픽은 이 컴퓨터들을 연결하는 파선들에 의해 표시되는 바와 같이, 컴퓨터(110) 상에 설치된 루트킷 또는 부트킷에 의해 은닉되어 있다. 컴퓨터들(110, 130, 140 및 150)의 각각과 연관되는 IP 어드레스들은 도 2의 차트에서 사용하기 위한 임의의 예의 IP 어드레스들이다. 종래의 안티 멀웨어 호스트 기반 침입 검출 시스템들은, 심지어 자신들이 네트워크 트래픽을 검사하고 있었을지라도, 컴퓨터(110) 및 컴퓨터(130) 사이의 은닉된 통신을 검출하지 않았을 것이다. 도 1에 도시되는 바에 따르면, 컴퓨터(110)가 랩탑 컴퓨터이고 컴퓨터들(130, 140 및 150)이 서버 컴퓨터들일지라도, 모바일 디바이스들 및 비 컴퓨팅 장비 내에 임베딩(embedding)되어 있는 시스템들을 포함하는, 임의의 유형들의 네트워크 접속 또는 접속 가능 컴퓨터들 또는 프로세서 기반 시스템들이 네트워크 트래픽을 생성할 수 있고, 이들 중 일부는 멀웨어에 의해 은닉될 수 있다. 신뢰되는 실행 환경을 제공하는 어떠한 그와 같은 디바이스도 아래에서 설명되는 기술들을 구현할 수 있다. 네트워크(120)는 네트워크 트래픽의 유선 또는 무선 전송을 사용하여, 교환식 및 비 교환식의 근거리 네트워크(local area network)들 및 광대역 네트워크(wide area network)들뿐만 아니라 지점 대 지점(point-to-point) 통신을 포함하는, 임의의 유형의 네트워크일 수 있다. 명료성을 위해 도 1에서는 단일 네트워크(120)가 도시될지라도, 네트워크(120)는 인터넷과 같은 다수의 상호 접속 네트워크들일 수 있고 전형적으로 상호 접속 네트워크들로 구현되며, 이들 중 일부는 사설 네트워크들일 수 있고 이들 중 일부는 공용 네트워크들일 수 있다.
도 2로 전환하여, 2개의 차트들(200 및 250)은 보안 환경이 컴퓨터(110)에 대한 네트워크 트래픽으로 인식하는 것과 호스트 기반 침입 검출 시스템이 인식할 수 있는 것 사이의 차를 도시한다. 차트들(200 및 250)의 컨텐츠는 실례이고 단지 예에 의한 것이다. 차트(200)에서, 행들(210)은 컴퓨터(110)(10.1.2.4인 자체의 예의 IP 어드레스에 의해 식별되는) 및 컴퓨터(130)(10.234.23.14의 자체의 예의 IP 어드레스에 의해 식별되는) 사이의 네트워크 트래픽을 나타낸다. 유사하게, 행들(220)은 컴퓨터(110) 및 컴퓨터(140)(10.4.23.12의 자체의 예의 IP 어드레스에 의해 식별되는) 사이 그리고 컴퓨터(110) 및 컴퓨터(150)(10.9.65.3의 자체의 예의 IP 어드레스에 의해 식별되는) 사이의 네트워크 트래픽을 나타낸다.
도 2의 차트의 행들(210)에 도시되는 바와 같이, 컴퓨터(110)는 3개의 패킷들을 컴퓨터(130)로, 컴퓨터(110) 상의 포트(23452)로부터 컴퓨터(130) 상의 포트(911)로 송신하였다. 패킷들은 프로토콜(17)(사용자 데이터그램 프로토콜(User Datagram Protocol; UDP))을 사용하여 송신되었고 623 바이트들의 데이터를 운반하였다. 컴퓨터(130)는 8개의 UDP 패킷들을 컴퓨터(110)에, 컴퓨터(130) 상의 포트(911)에서 포트(23452)로 송신하여, 7238 바이트들의 데이터를 운반하였다.
도 2의 차트의 행들(220)에 도시되는 바와 같이, 컴퓨터(110)는 컴퓨터(110)의 포트(23,453)로부터 컴퓨터(140)의 포트(8723)로 79 바이트들의 데이터를 운반하는 1개의 내부 게이트웨이 프로토콜(Interior Gateway Protocol; IGP)(프로토콜 9) 패킷을 송신하였다. 유사하게, 컴퓨터는 컴퓨터(110)의 포트(23,453)로부터 컴퓨터(150)의 포트(8823)로 187 바이트들의 데이터를 운반하는 1개의 IGP 패킷을 송신하였다.
이 네트워크 트래픽이 모니터링되고 보안 환경에 의해 기록되므로, 행들(210)에 도시되는 네트워크 트래픽은 보안 환경으로부터 은닉되지 않는다. 그러나, 차트(250)에 도시되는 바와 같이, 트래픽은 또한 네트워크 트래픽을 모니터링하고 기록하는 호스트 기반 침입 검출 시스템에 은닉된다.
차트(250)에 도시되는 바와 같이, 행들(260)은 차트(200)의 행들(220)과 동일하다; 그러나, 차트(200)의 행들(210)과 대응하는 것은 존재하지 않은데 왜냐하면 컴퓨터(110) 내의 멀웨어가 차트(250)의 데이터를 캡처한 호스트 기반 침입 검출 시스템으로부터 상기 네트워크 트래픽을 은닉했기 때문이다.
이 차는 멀웨어의 검출을 가능하게 하는 데 이용 가능하다. 네트워크 트래픽을 은닉하는 멀웨어가 존재하지 않으면, 어떤 이유에서든 간에 멀웨어가 그와 같은 은닉을 합당한 것으로 간주하여, 차트들(200 및 250)은 동일해야만 한다. 그러므로, 차의 존재는 멀웨어가 컴퓨터(110) 상에 존재하는 것을 나타낸다. 이 차가 멀웨어의 성격을 나타내지 않을지라도-멀웨어가 특정 네트워크 트래픽을 은닉하는 것 이외의- 네트워크 트래픽을 은닉하는 멀웨어가 존재한다는 정보는 이 문제를 해결하고 멀웨어를 제거하는 첫번째 걸음이다.
차트들(200 및 250) 내에 포함되는 데이터 및 포맷은 실례이고 단지 예에 의하고, 마찬가지로 상기 차트들에 의해 도시되는 네트워크도 실례이다. 네트워크 트래픽을 모니터링하고 기록하는 데 임의의 원하는 기술이 사용될 수 있다. 본 명세서에서 사용되는 예들이 IP 프로토콜 네트워크 트래픽에 기초할지라도, 본원에서 언급되는 기술들은 프로토콜과는 관계없이, 임의의 유형의 네트워크 트래픽에 대해 사용될 수 있다.
IP 트래픽 정보를 수집하고 보고하는 기술들 중 널리 사용되는 하나는 Cisco Systems에 의해 처음 개발되고, 가장 최근의 버전이 RFC 3954로 발매되었으며 Internet Engineering Task Force에 의해 IP Flow Information Flow Export(IPFIX) 프로토콜로서 표준화된 NetFlow 프로토콜이다. IPFIX는 RFC 5101, 5102 및 5103에서 상세하게 설명되어 있다. 기본적으로, 플로우(flow) 또는 넷플로우(netflow)는 다수의 속성들, 예를 들어, 동일한 소스, 동일한 목적지 및 동일한 IP 프로토콜을 공유하는 관찰 기간 동안 관찰되는 임의의 수의 패킷들이다. 이 패킷들은 미터링(metering) 프로세스에 의해 플로우 기록 또는 메시지 내로 집계(aggregate)될 수 있고, 그 후에 익스포터(exporter) 프로세스는 이 집계 정보를 수집자에게 송신한다. 수집자는 미터링 프로세스 및 익스포터와 상이한 컴퓨터상에 있을 수 있다. 도 2에서의 샘플 데이터는 단지 멀웨어 검출 기술에 유용한 특정한 핵심 정보 필드(field)들만을 보여주는 간소화된 포맷으로 도시된다. 본원에서 설명되는 기술들의 실제 구현들은 플로우 정보를 기록하기 위하여 임의의 원하는 포맷 및 저장 기술을 사용할 수 있고, 다른 정보, 예를 들어, 타임스탬프(timestamp)들 또는 NetFlow 또는 IPFIX 프로토콜들에서 규정되는 임의의 다른 필드들 또는 구현자에 의해 희망될 수 있는 필드들의 임의의 다른 결합을 포함할 수 있다.
도 3은 본원에서 언급되는 기술들 중 일부 또는 모두를 구현하는 데 사용될 수 있는 컴퓨터 시스템(300)을 도시하는 블록도이다. 시스템 유닛(310)은 컴퓨터 시스템(300)의 구성요소들이 실장되거나 그와는 달리 배치될 수 있는 장소를 제공한다. 시스템 유닛(310)은 다양한 칩셋들이 실장되는 마더보드로서 제작되어, 구성요소들 사이의 전기 접속 및 시스템 유닛(310) 전체에 걸쳐 그리고 시스템 유닛(310) 외부로의 신호 및 전력 배분을 원하는 바에 따라 제공할 수 있다. 예를 들어, 컴퓨터 시스템(300)은 네트워크 트래픽을 조사함으로써 안티 멀웨어 시스템이 멀웨어의 가능성을 검출했다는 경보들 또는 다른 표시들을 디스플레이하는 방식을 제공하는 디스플레이(395)와 같은 출력 디바이스를 포함할 수 있다.
시스템 유닛(310)의 다양한 구성요소들은 하나 이상의 프로세서(320)를 포함할 수 있고, 전형적으로 각각의 단일 프로세서 칩은 프로세서들(320) 및 컴퓨터(300)의 다른 구성요소들 사이에 전기 접속을 제공하기 위해 장착 소켓(도 3에서는 도시되지 않음) 내에 장착된다. 도 3에서는 단일 프로세서(320)가 도시될지라도, 각각 멀티 코어 프로세서일 수 있는 임의의 원하는 수의 프로세서들이 사용될 수 있다. 다수의 프로세서 칩들이 현재 시장에서 입수 가능하고, 임의의 원하는 프로세서 칩 또는 칩셋이 사용될 수 있다. 시스템 유닛(310)은 본 명세서에 따른 방법들을 수행하도록 프로그램될 수 있고 이 방법들의 예들은 도 4 내지 도 6에 도시된다.
프로세서(320)는 전형적으로 버스 또는 지점 대 지점 상호접속들을 포함하는 임의의 다른 유형의 상호접속일 수 있는 신호 전송을 위한 링크를 사용하여, 프로세서(320)에 의해 사용되는 메모리(330)에 접속된다. 메모리(330)는 하나 이상의 메모리 모듈(module)들을 포함하고 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read only memory; ROM), 프로그램 가능 판독 전용 메모리(programmable read only memory; PROM), 프로그램 가능 판독-기록 메모리 및 고체 메모리를 포함할 수 있다. 프로세서(320)는 또한 캐시 메모리(cache memory)와 같은 내부 메모리를 포함할 수 있다. 프로세서(320) 상에서 가동되는 운영 시스템은 일반적으로 컴퓨터 시스템(300)의 동작을 제어하여, 서비스들, 애플리케이션들 및 다른 소프트웨어가 컴퓨터(300) 상에서 실행되는 운영 시스템 환경을 제공한다.
도 3에 도시되는 바와 같이, 프로세서(320)는 또한 컴퓨터 시스템(300)에 I/O, 타이머 및 다른 유용한 능력들을 제공하는 I/O 서브시스템(340)에 접속된다. 예를 들어, I/O 서브시스템(340)은 키보드, 마우스, 터치스크린과 같은 선택사양의 디스플레이(395) 및 선택사양의 입력 디바이스(390)를 시스템 유닛(310)에 접속하기 위한 I/O 포트들을 제공할 수 있다. 포트들은 디스플레이(395)와 같은 구성요소들을 위한 특수목적 포트들 또는 키보드 또는 마우스(390)를 접속시키기 위한 범용 직렬 버스(Universal Serial Bus; USB) 포트들과 같은 다목적 포트들 중 하나 또는 그 이상일 수 있다. I/O 서브시스템(340)은 또한 저장 디바이스(380)와 같은 저장 디바이스들과 통신하기 위한 인터페이스를 가지며, 오디오 인터페이스(360)를 통해 오디오 디바이스들에 접속되고, 네트워크 인터페이스(370)를 통해 네트워크(120)에 접속될 수 있다. 저장 디바이스(380)는 제거 가능 매체를 포함하는 고체 저장 요소들을 포함하는 모든 형태들의 광 또는 자기를 포함하나 이로 제한되지 않는 임의의 형태의 비휘발성 저장소를 나타내고 시스템 유닛(310) 내에 포함되거나 시스템 유닛(310) 외부에 있을 수 있다. 저장 디바이스(380)는 컴퓨터(300)를 제어하는 소프트웨어, 컴퓨터(300)에 의해 사용되는 데이터(네트워크 플로우 데이터를 포함하는) 또는 이 둘 모두를 저장하는 데 사용되는 프로그램 저장 디바이스일 수 있다. 명료성을 위해 도 3에서는 단지 단일 저장 디바이스(380)가 도시될지라도, PCT에서의 인터페이스 이용성에 따라, 임의의 수의 저장 디바이스들(380)이 원하는 바대로 제공될 수 있다. I/O 서브시스템(340)은 시스템 유닛(310) 내에 하나 이상의 칩들로서 구현될 수 있다. 일부 실시예들에서, 메모리(330)는 프로세서(320) 대신 I/O 서브시스템(340)에 접속될 수 있다.
게다가, 일부 실시예들은 정보를 보호하기 위한 암호 키들을 저장하기 위해 암호 프로세서(cryptoprocessor)를 제공하는 신뢰 플랫폼 모듈(Trusted Platform Module)(350)에 I/O 서브시스템(340)을 접속시킬 수 있다. 실시예들은 시스템 유닛(310) 내의 하나 이상의 별개의 칩들로서 I/O 서브시스템(340)의 기능을 구현할 수 있다.
도 3에 도시되는 바와 같이, I/O 서브시스템(340)은 보안 신뢰 환경(trusted environment; TE)(345)에 하드웨어 자원들을 제공한다. TE(345)는 컴퓨터(300)를 제어하는 운영 시스템에 의해 제어되지 않는 보안 환경을 제공한다. 다른 실시예들에서, TE(345)는 별개의 칩셋으로서 I/O 서브시스템의 보드 외에 있을 수 있거나, TE 기능으로 제한되는 별개의 코어와 같이 프로세서(320) 내에 통합될 수 있다. TE(345)는 멀웨어, 심지어 프로세서(320) 상에서 부트킷 또는 루트킷으로 가동될 수 있는 멀웨어에 의해 방해될 수 없는 신뢰 환경에서 본원에서 설명되는 네트워크 트래픽 모니터링 기술들의 보안 환경 측을 수행하는 것이 가능한 보안 프로세싱 기능을 포함한다. 전형적으로, TE(345)를 제공하는 판매자들은 TE(345)에서 실행될 수 있는 기능에 대해 제어하는 것을 보장하여, TE(345)에서 가동되도록 신중하게 조사된 신뢰 프로그램들 외의 어떤 것도 실행되는 것을 방지하기 위하여 소유권 또는 암호 기술들을 사용한다. 프로세서(320) 상에서 가동되는 소프트웨어가 원하는 기능, 예를 들어, TE(345)에게 분석을 위해 하드웨어 보호 네트워크 트래픽 모니터링을 개시하거나 TE(345)로부터 프로세서(320)로 데이터를 제공하는 것을 수행하라고 요청하기 위해 특수한 인터페이스들이 제공될 수 있다. TE(345)는 데이터 및 펌웨어 저장을 위해 자기 자신의 내부 메모리를 사용하거나 메모리(330)의 일부를 사용할 수 있다. 대안으로, TE(345)에서 실행되는 펌웨어의 형태의 명령어들은 플래시 메모리와 같이 컴퓨터(300)의 전원이 들어올 때 비휘발성 메모리 디바이스(345)로부터 로딩되고 그 후에 TE(345)에 의해 실행되도록 메모리(330)의 일부로 로딩될 수 있다. 일부 실시예들에서, TE(345)는 원하는 바에 따라 불능화되거나 구동될 수 있다. 이 명령어들은 TE(345)로 하여금 네트워크 모니터링과 본원에서 기술되지 않은 다른 기능을 수행하도록 할 수 있다. 네트워크 모니터링 펌웨어는 운영 시스템 환경 침입 검출 소프트웨어를 제공하는 것과 함께, 보안 환경 판매자에 의해 제공될 수 있거나 침입 검출 시스템 판매자에 의해 제공되고 보안 환경 판매자의 허가를 받아 펌웨어로서 저장될 수 있다. 이 기술들에 대하여 사용될 수 있는 신뢰 환경의 하나의 예는 Intel Corp에 의해 제공되는 특정 칩셋들에서의 매니지어빌리티 엔진(Manageability Engine)이다. 본원에서 일반적으로 하드웨어 기반 TE(345)에 의해 설명될지라도, 보안 환경들은 원하는 바에 따라, 하드웨어, 펌웨어 또는 소프트웨어 또는 이들의 임의의 결합으로 구현될 수 있다.
컴퓨터 시스템(300)은 예를 들어, 스마트폰, 스마트 태블릿, 개인용 디지털 보조장치(personal digital assistant; PDA), 모바일 인터넷 디바이스(mobile Internet device; MID), 컨버터블 태블릿(convertible tablet), 노트북 컴퓨터, 데스크탑 컴퓨터, 서버 또는 스마트 텔레비전과 같이, 임의의 시대의 컴퓨팅 디바이스일 수 있다. 디스플레이(395)는, 만일 존재한다면, 예를 들어, 터치 스크린 또는 액정 디스플레이와 같이, 사용자에게 인터페이스를 제시하는 임의의 시대의 디바이스일 수 있다. 도 3에 도시되는 요소들은 실례이고 단지 예에 의한 것이고, 도 3에 도시되는 요소들은 원하는 바에 따라 결합되거나 다수의 요소들로 분리될 수 있다. 전지구적 위치추적 시스템(Global Positioning System) 송수신기와 같은 지리적 위치추적 로직(logic)뿐만 아니라 예를 들어, IEEE 802.11, IEEE 802.16, WiMax 등과 같은 표준들을 사용하여 모바일 통신들을 처리하는 로직과 같은 다른 요소들 또한 원하는 바에 따라 제공될 수 있다.
도 4 내지 도 6은 하이브리드 운영 시스템 및 보안 환경 네트워크 트래픽 모니터링 기술의 실시예들의 3개의 변형들을 도시하는 흐름도들이다. 도 4의 블록 410에서, TE(345)는 네트워크 트래픽을 모니터링하여, 도 2의 차트(200)에 도시된 바와 같은 플로우 데이터를 수집한다. 네트워크 트래픽 데이터를 모니터링하고 수집하는 기술들은 널리 공지되어 있고 당업자는 TE(345)에서 네트워크 모니터링을 구현하는 데 추가 설명을 필요로 하지 않을 것이다. 수집되는 네트워크 트래픽 데이터는 NetFlow, IPFIX 또는 임의의 다른 바람직한 네트워크 트래픽 모니터링 프로토콜에 따라 저장될 수 있다. 수집되는 네트워크 트래픽 데이터는 저장 디바이스(380) 상에, 또는 시스템 유닛(310) 상의 다른 곳에 또는 컴퓨터(300)에서 외부 디바이스로의 전송을 포함하여, 시스템 유닛(310) 보드 외에 있는 메모리(330) 내에 저장될 수 있다.
블록 420에서, 네트워크 트래픽을 모니터링하는 운영 시스템 환경 침입 검출 시스템 또는 다른 소프트웨어는 유사한 네트워크 트래픽 데이터를 수집할 수 있다. 이 소프트웨어는 두 데이터 세트들의 비교를 용이하게 하기 위해 전형적으로 TE(345)에 의해 사용되는 것과 동일한 포맷 및 프로토콜들을 사용하지만, 원하는 경우 TE(345)에서 사용되는 것들과 상이한 수집 및 저장 기술들을 사용할 수 있다. TE(345) 트래픽 수집에 있어서와 같이, 당업자는 운영 시스템 환경 네트워크 트래픽 모니터링 및 데이터 수집을 구현하는 데 네트워크 모니터링 기술들에 대한 추가 설명을 필요로 하지 않고, 이 기술들은 당업계에 널리 공지되어 있다. 멀웨어가 데이터를 운영 시스템 환경 모니터링으로부터 은닉할 수 있을지라도, 이 은닉은 신뢰되는 그리고 운영 시스템 환경 모두로부터 모니터링된 데이터가 비교되는 블록 430에서 검출될 수 있다.
침입 검출 시스템 및 TE(345) 모두는 지정된 기간들 동안 또는 계속해서 네트워크 트래픽을 모니터링할 수 있다. 계속해서 모니터링하지 않으면, 네트워크 트래픽은 주기적으로 또는 다른 것에 기초하여 미리 결정된 시간 기간들 동안, 모니터링하라는 요청 시에 또는 미리 결정된 네트워크 트래픽 량이 기록될 때까지 모니터링될 수 있다. 유사하게, 비교는 주기적으로, 요청 시에, 또는 어떤 공간이든지 간에 이 공간에 모니터링된 네트워크 트래픽 정보를 저장하도록 할당된 것을 채웠을 때와 같이, 다양한 방식들로 수행될 수 있다.
데이터의 차 비교는 당업계에 널리 공지되어 있어서 본원에서는 당업자에게 더 설명될 필요가 없다. 본 상황에서, 비교는 신뢰 환경 데이터에서는 있지만 운영 시스템 환경 데이터에서 보이지 않는(missing) 네트워크 트래픽 데이터를 찾는다. 일부 상황들에서, 멀웨어 사이트와 연관되는 네트워크 트래픽을 단순히 은닉하거나 걸러내는 대신, 멀웨어는 자신을 덜 의심스럽게 만들기 위해 네트워크 트래픽을 변경할 수 있다. 멀웨어는 적절할 때 소스 또는 목적지 정보를 수정하여, 정확한 소스 또는 목적지 어드레스를 다른 무해한 정보로 대체할 수 있다. 멀웨어는 또한 포트 번호들 또는 프로토콜 유형 정보를 수정할 수 있다. 그와 같은 시나리오에서, 대응하는 신뢰 환경 모니터링으로부터의 데이터는 운영 시스템 환경이 모니터링한 데이터에서 보이지 않을(또는 상이할) 것이고, 운영 시스템 환경이 모니터링한 데이터는 신뢰 환경 데이터에서 보이지 않을(또는 상이할) 것이다. 모니터링된 데이터가 타임스탬프들을 포함하면, 비교는 운영 시스템 환경 내의 데이터의 변경을 검출하는 것이 가능할 수 있다. 하나의 실시예에서, 멀웨어의 존재를 나타내는 데 2개의 데이터 세트들의 단순 비교가 충분할 수 있고, 상세 비교는 이후의 분석을 위해 남을 수 있다. 어느 경우든, 비교는 멀웨어의 존재뿐만 아니라 은닉된 통신들이 있는 컴퓨터(110)(도 1의 예에서, 컴퓨터(130))와 통신하고 있는 사이트의 아이덴티티(identity)를 검출할 수 있다.
비교를 구현하는 것은 TE(345)에게 보안 환경에서 수집된 모니터 데이터를 운영 시스템 환경에서 가동 중인 침입 검출 시스템으로 송신하라고 요청하기 위해 침입 검출 시스템을 제공할 수 있다. 대안으로, TE(345)는 그와 같은 요청을 수신하지 않고 제 2 모니터 데이터를 운영 시스템 환경 내의 침입 검출 시스템으로 송신할 수 있다; 예를 들어, TE(345)는 비교를 위해 제 2 모니터 데이터를 주기적으로 송신할 수 있다.
블록 440에서, 신뢰 환경 데이터가 운영 시스템 환경 데이터와 동일하지 않으면, 이 차는 멀웨어의 존재를 나타낼 수 있다. 블록 450에서 경보가 발생될 수 있다. 이 경보는 신뢰 환경에서 또는 운영 시스템 환경에서 발생될 수 있고, 컴퓨터(110) 상에 디스플레이되는 메시지, 외부 설비로 송신되는(예를 들어, 네트워크를 통해) 경보 메시지 또는 신뢰 환경으로부터 호스트 기반 침입 검출 시스템으로 전송되는 경보와 같이, 임의의 원하는 형태를 취할 수 있다. 여기서는 메시지로서 언급될지라도, 컨텐츠 및 전달 기술은 임의의 편리하거나 원하는 기술일 수 있다. 일부 실시예들에서, 예를 들어, 블록 430의 비교가 추가 분석 없이 단지 모니터링되는 데이터의 차를 검출하는 경우, 경보는 2개의 데이터 세트들을 컴퓨터(110) 상에 있거나 다른 곳에 있을 수 있는 분석 설비로 전송하는 것이 수반될 수 있다. 컴퓨터(110) 상에 있으면, 분석 설비는 TE(345) 또는 운영 시스템 환경 내에 있을 수 있다. 후자는 멀웨어에 의한 가능한 추가 조작의 위험성이 있지만, TE(345)에서보다 구현하기가 더 용이할 수 있다. 분석 설비는 그 후에 차들의 추가 분석과, 그리고 신뢰 환경 데이터에서 표시되는 멀웨어 사이트들의 가능한 인식을 착수할 수 있다.
분석 설비는 2개의 모니터 데이터 세트들을 동시에(실시간 또는 거의 실시간) 또는 비동시에(예를 들어, 스케줄에 기초하거나 주기에 기초하여), 또는 이 둘을 임의로 혼합하여 수신 및 비교할 수 있다.
일부 실시예들에서, 블록 460에서, 경보는 멀웨어의 존재를 검출하는 것에 응답하여 조치가 취해지도록 하는 응답을 트리거할 수 있다. 복원 응답은 다른 기술들을 사용하여 멀웨어의 성격을 식별하는 시도를 행하거나, 멀웨어를 제거함으로써 컴퓨터(100)를 복원하는 시도를 행하거나, 컴퓨터(100)를 격리하거나 또는 컴퓨터(130)와 같이, 은닉된 트래픽에서 식별되는 외부 사이트에 대해 조치를 취하는 것을 포함하여, 임의의 바람직한 행태를 취할 수 있다. 상기 복원 기술들의 성격은 컴퓨터(100) 상에, 외부 시스템 상에, 또는 이 둘 모두에서 조치들이 취해질 수 있는 점을 제외하고, 여기서 설명되지 않는다. 경보에 대한 응답이 취해지는 실시예들에서, 분석 설비는 분석하고 조치를 취하는 것 모두를 행할 수 있거나, 분석 설비는 단지 분석을 수행하고 분석 설비와 상이한 장소에 있을 수 있는 다른 설비에 의해 응답 조치가 취해지도록 남겨둘 수 있다. 이 경보에 응답하여 취해지는 조치는 또한 TE(345)와의 통신 및 TE(345)에 의한 조치들을 포함할 수 있다.
도 5는 도 4의 기술의 변형 구현을 도시하는 흐름도이다. 블록들 510 및 520은 도 4의 블록들 410 및 420에 대응한다. 이 변형에서, 블록 530에 도시되는 바와 같이, 운영 시스템 환경 소프트웨어는 블록 540에서 신뢰 및 보안 환경에서 가동되는 보안 프로그램에 의한 신뢰 환경이 수집한 네트워크 트래픽 데이터와의 비교를 위해, 자체의 모니터링되고 수집된 네트워크 트래픽 데이터를 신뢰 환경으로 익스포팅한다. 그와 같은 변형은 멀웨어가 운영 시스템 환경에서 가동되는 비교 소프트웨어를 조작함으로써 검출을 우회하는 시도를 방지할 것이다. 도 4의 변형에서와같이, 블록 550에서, 데이터가 동일하다고 비교가 표시하면, 비교는 네트워크 트래픽에 기초하여 멀웨어가 존재한다는 것을 표시하지 않는다. 그러나, 모니터링되는 네트워크 트래픽 데이터가 동일하지 않으면, 멀웨어가 존재할 수 있다. 이 변형에서, 블록 560에서, 어떤 이유로 인해 은닉된 네트워크 트래픽에서 나타날 수 있는 공지된 비 악성 사이트들 또는 멀웨어를 표시하지 않는 것으로 공지되어 있는 데이터 세트들 사이의 다른 불일치들을 배제하기 위해 배제 목록이 참조될 수 있다. 신뢰 및 운영 시스템 환경 데이터 세트들의 비교 후에 악성 사이트 정보를 배제하는 것으로 도시될지라도, 변형들은 2개의 데이터 세트들의 비교 전에 배제 목록 상의 데이터를 배제할 수 있다.
본원에서 목록으로 명시될지라도, 배제 목록의 형태는 유형적이지 않고, 비교 또는 비교의 결과로부터 네트워크 트래픽을 배제하는 임의의 원하는 기술이 사용될 수 있다. 예를 들어, 배제 목록은 네트워크 트래픽을 배제하기 위한 규칙들을 포함할 수 있다.
도 5의 변형에서, 신뢰 데이터 및 비신뢰 운영 시스템 환경 데이터의 비교 결과로 인한 경보는 TE(345)의 펌웨어에 의해 발생될 수 있다. 다른 변형들에서, 위에 설명된 바와 같이, 경보는 운영 시스템 환경 또는 외부 설비에 의해 발생될 수 있다.
도 6은 상술한 기술들의 다른 변형의 흐름도이다. 이 변형에서는, 도 4 및 도 5에서 도시되는 변형들에서와 같이, 네트워크 트래픽은 TE(345) 및 운영 시스템 환경 모두에서 블록들 610 및 620에서 모니터링된다. 이 변형에서, 컴퓨터(110)에서 비교를 수행하는 대신, TE(345) 및 운영 시스템 환경 모두로부터의 모니터 데이터는 블록 630에서 외부 설비로 전송된다. 블록 640에서, 외부 설비는 네트워크 트래픽 데이터를 비교할 수 있다. 블록 650에서, 네트워크 트래픽 데이터가 양 환경들로부터 동일하면, 네트워크 트래픽에 영향을 주는 멀웨어는 검출되지 않는다. 데이터 세트들이 동일하지 않으면, 블록 660에서, 적법한 것으로 공지되어 있는 차들을 배제하기 위해 배제 목록이 사용될 수 있다. 차들이 남아 있으면, 선택사양으로 블록 670에서, 컴퓨터(110)는 컴퓨터의 추가 분석이 네트워크 트래픽의 모니터링에 영향을 미치고 있는 멀웨어의 위치를 찾고 이 멀웨어를 제거하는 시도가 가능하도록, 격리될 수 있다(예를 들어, 자체의 네트워크 통신들의 모두를 차단함으로써).
보안 환경에 의해 생성되는 네트워크 트래픽의 신뢰 기록을 운영 시스템 환경에서 생성되는 네트워크 트래픽의 잠재적 멀웨어 손상 기록과 비교하는 간단한 방법에 의해, 운영 시스템 환경에서 가동 중인 침입 검출 시스템들로부터 멀웨어 관련 네트워크 트래픽을 은닉할 수 있는 부트킷들 또는 루트킷들과 같은 멀웨어의 검출을 가능하게 하는 가치 있는 정보가 획득될 수 있다. 비교는 동시 또는 비동시일 수 있고, 분석을 위해 데이터를 외부 설비들로 송신하는 것을 포함할 수 있다. 보안 기술이 모든 보안 문제들을 방지하거나 심지어 검출할 가능성이 없을지라도, 이 기술은 운영 시스템 환경에서 가동 중인 소프트웨어 전용 툴들에 의해 실현 가능하지 않을 수 있는 은밀화되고 지속적인 멀웨어를 처리하기 위한 가치 있는 툴이다.
다음의 예들은 부가적인 실시예들에 관한 것이다.
예 1은 내부에 저장되는 명령어들을 가지는 비일시적 컴퓨터 판독 가능 매체이고, 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템의 운영 시스템에 의해 제어되는 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하고 제 1 모니터 데이터를 생성하고; 운영 시스템에 의해 제어되지 않는 보안 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하여 제 2 모니터 데이터를 생성하고; 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하고; 그리고 제 1 모니터 데이터가 제 2 모니터 데이터와 동일한지를 표시하도록 하는 명령어들을 포함한다.
예 2는 예 1의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 1 모니터 데이터를 운영 시스템에 의해 제어되는 환경으로부터 보안 환경으로 송신하고; 그리고 제 1 모니터 데이터를 보안 환경에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 3은 예 1의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 2 모니터 데이터를 보안 환경으로부터 운영 시스템에 의해 제어되는 환경으로 송신하고; 그리고 제 1 모니터 데이터를 운영 시스템에 의해 제어되는 환경에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 4는 예 1의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 1 모니터 데이터 및 제 2 모니터 데이터를 외부 설비로 송신하고; 그리고 제 1 모니터 데이터를 외부 설비에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 5는 예 1 내지 예 4의 특허 대상을 포함하고, 여기서 내부에 저장되는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템 상에 멀웨어의 존재를 표시하는 경보를 발생시키도록 하는 명령어들을 더 포함한다.
예 6은 예 1 내지 예 4의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금:
배제 목록에 의해 비교를 제한하도록 하는 명령어들을 포함한다.
예 7은 예 1의 특허 대상을 포함하고, 여기서 내부에 저장되는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금 운영 시스템 환경 또는 보안 환경에서 멀웨어 경보를 발생시키도록 하는 명령어들을 더 포함한다.
예 8은 예 7의 특허 대상을 포함하고, 실행될 때 컴퓨터로 하여금 운영 시스템 환경 또는 보안 환경에서 멀웨어 경보를 발생시키는 명령어들은 네트워크를 통해 멀웨어 경보를 송신하기 위한 명령어들을 포함한다.
예 9는 예 1의 특허 대상을 포함하고, 여기서 내부에 저장되는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템을 격리하도록 하는 명령어들을 더 포함한다.
예 10은 멀웨어를 검출하는 방법이고: 컴퓨터 시스템에 대한 운영 시스템에 의해 제어되는 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하여, 제 1 모니터 데이터를 생성하는 단계; 운영 시스템에 의해 제어되지 않는 보안 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하여, 제 2 모니터 데이터를 생성하는 단계; 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하는 단계; 및 제 1 모니터 데이터가 제 2 모니터 데이터와 일치하지 않으면 멀웨어의 존재를 표시하는 단계를 포함한다.
예 11은 예 10의 특허 대상을 포함하고, 여기서 컴퓨터 시스템에 대한 운영 시스템에 의해 제어되는 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하는 것은:
운영 시스템의 제어 하에 실행하는 침입 검출 시스템에서 네트워크 트래픽을 모니터링하는 것을 포함한다.
예 12는 예 10의 특허 대상을 포함하고, 컴퓨터 시스템의 가동 시에 보안 환경에서 실행하기 위한 펌웨어를 로딩하는 단계를 더 포함한다.
예 13은 예 10 내지 예 12 중 임의의 예의 특허 대상을 포함하고, 여기서 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하는 단계는: 제 1 모니터 데이터를 보안 환경으로 송신하는 단계; 및 제 1 모니터 데이터를 보안 환경에서 제 2 모니터 데이터와 비교하는 단계를 포함한다.
예 14는 예 10 내지 예 12 중 임의의 예의 특허 대상을 포함하고: 멀웨어의 존재의 표시에 응답하여 컴퓨터 시스템을 격리하는 단계를 더 포함한다.
예 15는 예 10 내지 예 12의 특허 대상을 포함하고, 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하는 단계는: 제 2 모니터 데이터를 운영 시스템에 의한 제어 하에 실행하는 침입 검출 시스템으로 송신하는 단계; 및 제 1 모니터 데이터를 침입 검출 시스템에 의해 제 2 모니터 데이터와 비교하는 단계를 포함한다.
예 16은 예 10 내지 예 12의 특허 대상을 포함하고, 여기서 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하는 단계는: 제 2 모니터 데이터와의 비교를 위해 제 1 모니터 데이터를 보안 환경으로부터 외부 설비로 송신하는 단계; 및 제 1 모니터 데이터와의 비교를 위해 제 2 모니터 데이터를 침입 검출 시스템으로부터 외부 설비로 송신하는 단계를 포함한다.
예 17은 예 16의 특허 대상을 포함하고, 여기서 멀웨어의 존재를 표시하는 단계는: 외부 설비에 의해 발생되는 경보를 수신하는 단계를 포함한다.
예 18은 예 10의 특허 대상을 포함하고, 여기서 멀웨어의 존재를 표시하는 단계는: 멀웨어의 존재를 표시하는 경보를 디스플레이하는 단계를 포함한다.
예 19는 예 10의 특허 대상을 포함하고, 여기서 제 1 모니터 데이터 및 제 2 모니터 데이터는 네트워크 플로우 데이터를 포함한다.
예 20은 컴퓨터 시스템이고: 프로세서; 프로세서에 의해 실행될 때 프로세서를 제어하고 프로세서 상에서 실행할 다른 소프트웨어에 대한 운영 시스템 환경을 제공하는 명령어들을 포함하는 운영 시스템; 운영 시스템 환경에서 프로세서에 의해 실행될 때 프로세서로 하여금: 컴퓨터 시스템의 네트워크 트래픽을 제 1 모니터 데이터로서 기록하도록 하는 명령어들을 포함하는 침입 검출 소프트웨어; 및 컴퓨터 시스템의 네트워크 트래픽을 제 2 모니터 데이터로서 기록하도록 구성되는 보안 하드웨어 신뢰 환경을 포함하고, 보안 하드웨어 신뢰 환경은 운영 시스템 환경 외부에 있고; 컴퓨터 시스템은: 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하고; 그리고 제 1 모니터 데이터가 제 2 모니터 데이터와 동일하지 않으면 경보를 발생시키도록 구성된다.
예 21은 예 20의 특허 대상을 포함하고, 여기서 제 1 모니터 데이터 및 제 2 모니터 데이터는 네트워크 플로우 데이터를 포함한다.
예 22는 예 20의 특허 대상을 포함하고, 여기서 침입 검출 시스템은 운영 시스템 환경에서 프로세서에 의해 실행될 때 프로세서로 하여금: 보안 환경으로부터 제 2 모니터 데이터를 요청하고; 그리고 제 1 모니터 데이터를 운영 시스템 환경에서 침입 검출 시스템에 의해 제 2 모니터 데이터와 비교하도록 하는 명령어들을 더 포함한다.
예 23은 예 20의 특허 대상을 포함하고, 여기서 침입 검출 소프트웨어는 프로세서로 하여금 네트워크 트래픽을 계속해서 기록하도록 구성된다.
예 24는 예 20의 특허 대상을 포함하고, 여기서 컴퓨터 시스템은 제 1 모니터 데이터 및 제 2 모니터 데이터를 주기적으로 비교하도록 구성된다.
예 25는 컴퓨터 시스템이고: 예 10 내지 예 19 중 임의의 하나의 방법을 수행하기 위한 수단을 포함한다.
예 26은 컴퓨터 시스템이고: 프로세서; 프로세서에 의해 실행될 때 프로세서를 제어하고 프로세서 상에서 실행할 다른 소프트웨어를 위한 운영 시스템 환경을 제공하는 명령어들을 포함하는 운영 시스템; 보안 신뢰 환경; 프로세서 및 보안 신뢰 환경과 결합되는 메모리를 포함하고, 메모리 상에는: 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템의 운영 시스템에 의해 제어되는 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하여, 제 1 모니터 데이터를 생성하고; 운영 시스템에 의해 제어되지 않는 보안 환경에서 컴퓨터 시스템의 네트워크 트래픽을 모니터링하여, 제 2 모니터 데이터를 생성하고; 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하고; 그리고 제 1 모니터 데이터가 제 2 모니터 데이터와 동일한지를 표시하도록 하는 명령어들이 저장된다.
예 27은 예 26의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 1 모니터 데이터를 운영 시스템에 의해 제어되는 환경으로부터 보안 환경으로 송신하고; 그리고 제 1 모니터 데이터를 보안 환경에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 28은 예 26의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 2 모니터 데이터를 보안 환경으로부터 운영 시스템에 의해 제어되는 환경으로 송신하고; 제 1 모니터 데이터를 운영 시스템에 의해 제어되는 환경에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 29는 예 26의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 제 1 모니터 데이터 및 제 2 모니터 데이터를 외부 설비로 송신하고; 그리고 제 1 모니터 데이터를 외부 설비에서 제 2 모니터 데이터와 비교하도록 하는 명령어들을 포함한다.
예 30은 예 26 내지 예 29 중 임의의 예의 특허 대상을 포함하고, 여기서 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템 상에 멀웨어의 존재를 표시하는 경보를 발생시키도록 하는 명령어들을 더 포함한다.
예 31은 예 26 내지 예 29의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 제 1 모니터 데이터를 제 2 모니터 데이터와 비교하도록 하는 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 배제 목록에 의해 비교를 제한하도록 하는 명령어들을 포함한다.
예 32는 예 26의 특허 대상을 포함하고, 여기서 명령어들은 실행될 때 컴퓨터 시스템으로 하여금 운영 시스템 환경 또는 보안 환경에서 멀웨어 경보를 발생시키도록 하는 명령어들을 더 포함한다.
예 33은 예 32의 특허 대상을 포함하고, 여기서 실행될 때 컴퓨터 시스템으로 하여금 운영 시스템 환경 또는 보안 환경에서 멀웨어 경보를 발생시키도록 하는 명령어들은 네트워크를 통해 멀웨어 경보를 송신하기 위한 명령어들을 포함한다.
예 34는 예 26의 특허 대상을 포함하고, 여기서 명령어들은 실행될 때 컴퓨터 시스템으로 하여금: 컴퓨터 시스템을 격리하도록 하는 명령어들을 더 포함한다.
상기 설명은 실례인 것으로 의도되고 한정하는 것으로 의도되지 않는다. 예를 들어, 상술한 실시예들은 서로 결합하여 사용될 수 있다. 상기 설명을 검토하면 당업자에게는 많은 다른 실시예들이 자명할 것이다. 그러므로, 본 발명의 범위는 첨부된 청구항들과 관련하여, 그와 같은 청구항들에게 귀속되는 등가들의 전체 범위들과 함께, 결정되어야 한다.

Claims (25)

  1. 명령어가 저장되어 있는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer readable medium)로서,
    상기 명령어는, 실행될 때 프로그램 가능 디바이스(programmable device)로 하여금,
    상기 프로그램 가능 디바이스의 운영체제에 의해 제어되는 환경에서 상기 프로그램 가능 디바이스의 네트워크 트래픽(network traffic)을 모니터링하여, 제 1 모니터 데이터를 생성하게 하고,
    상기 운영체제에 의해 제어되지 않는, 상기 프로그램 가능 디바이스의 암호로 보안된 하드웨어 환경(cryptographically secured hardware environment)에서 상기 프로그램 가능 디바이스의 네트워크 트래픽을 모니터링하여, 제 2 모니터 데이터를 생성하게 하고,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하게 하고,
    상기 제 1 모니터 데이터가 상기 제 2 모니터 데이터와 동일한지 여부를 표시하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  2. 제 1 항에 있어서,
    실행될 때 상기 프로그램 가능 디바이스로 하여금 상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하게 하는 상기 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    상기 제 1 모니터 데이터를 상기 운영체제에 의해 제어되는 환경으로부터 상기 암호로 보안된 하드웨어 환경으로 송신하게 하고,
    상기 제 1 모니터 데이터를 상기 암호로 보안된 하드웨어 환경에서 상기 제 2 모니터 데이터와 비교하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  3. 제 1 항에 있어서,
    실행될 때 상기 프로그램 가능 디바이스로 하여금 상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하게 하는 상기 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    상기 제 2 모니터 데이터를 상기 암호로 보안된 하드웨어 환경으로부터 상기 운영체제에 의해 제어되는 환경으로 송신하게 하고,
    상기 제 1 모니터 데이터를 상기 운영체제에 의해 제어되는 환경에서 상기 제 2 모니터 데이터와 비교하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  4. 제 1 항에 있어서,
    실행될 때 상기 프로그램 가능 디바이스로 하여금 상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하도록 하는 상기 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    상기 제 1 모니터 데이터 및 상기 제 2 모니터 데이터를 외부 설비로 송신하게 하고,
    상기 제 1 모니터 데이터를 상기 외부 설비에서 상기 제 2 모니터 데이터와 비교하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  5. 제 1 항에 있어서,
    상기 저장되어 있는 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    상기 프로그램 가능 디바이스 상에 멀웨어의 존재를 나타내는 경보를 발생시키게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능 매체.
  6. 제 1 항에 있어서,
    실행될 때 상기 프로그램 가능 디바이스로 하여금 상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하도록 하는 상기 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    배제 목록에 의해 상기 비교를 제한하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  7. 제 1 항에 있어서,
    상기 저장되어 있는 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금, 상기 운영체제의 환경 또는 상기 암호로 보안된 하드웨어 환경에서 멀웨어 경보를 발생시키게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능 매체.
  8. 제 7 항에 있어서,
    실행될 때 상기 프로그램 가능 디바이스로 하여금 상기 운영체제의 환경 또는 상기 암호로 보안된 하드웨어 환경에서 멀웨어 경보를 발생시키게 하는 상기 명령어는, 네트워크를 통해 상기 멀웨어 경보를 송신하기 위한 명령어를 포함하는
    컴퓨터 판독 가능 매체.
  9. 제 1 항에 있어서,
    상기 저장되어 있는 명령어는, 실행될 때 상기 프로그램 가능 디바이스로 하여금,
    상기 프로그램 가능 디바이스를 격리하게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능 매체.
  10. 멀웨어를 검출하는 방법으로서,
    프로그램 가능 디바이스에 대한 운영체제에 의해 제어되는 환경에서 상기 프로그램 가능 디바이스의 네트워크 트래픽을 모니터링하여, 제 1 모니터 데이터를 생성하는 단계와,
    상기 운영체제에 의해 제어되지 않는 암호로 보안된 하드웨어 환경(cryptographically secured hardware environment)에서 상기 프로그램 가능 디바이스의 네트워크 트래픽을 모니터링하여, 제 2 모니터 데이터를 생성하는 단계와,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하는 단계와,
    상기 제 1 모니터 데이터가 상기 제 2 모니터 데이터와 일치하지 않으면 멀웨어의 존재를 표시하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  11. 제 10 항에 있어서,
    상기 프로그램 가능 디바이스에 대한 운영체제에 의해 제어되는 환경에서 상기 프로그램 가능 디바이스의 네트워크 트래픽을 모니터링하는 것은,
    상기 운영체제에 의한 제어 하에 실행하는 침입 검출 시스템에서 네트워크 트래픽을 모니터링하는 것을 포함하는
    멀웨어를 검출하는 방법.
  12. 제 10 항에 있어서,
    상기 프로그램 가능 디바이스의 가동 시에 상기 암호로 보안된 하드웨어 환경에서 실행하기 위한 펌웨어를 로딩(loading)하는 단계를 더 포함하는
    멀웨어를 검출하는 방법.
  13. 제 10 항에 있어서,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하는 단계는,
    상기 제 1 모니터 데이터를 상기 암호로 보안된 하드웨어 환경에 송신하는 단계와,
    상기 제 1 모니터 데이터를 상기 암호로 보안된 하드웨어 환경에서 상기 제 2 모니터 데이터와 비교하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  14. 제 10 항에 있어서,
    멀웨어의 존재의 상기 표시에 응답하여 상기 프로그램 가능 디바이스를 격리하는 단계를 더 포함하는
    멀웨어를 검출하는 방법.
  15. 제 10 항에 있어서,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하는 단계는,
    상기 제 2 모니터 데이터를 상기 운영체제에 의한 제어 하에 실행하는 침입 검출 시스템에 송신하는 단계와,
    상기 제 1 모니터 데이터를 침입 검출 시스템에 의해 상기 제 2 모니터 데이터와 비교하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  16. 제 10 항에 있어서,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하는 단계는,
    상기 제 2 모니터 데이터와의 비교를 위해 상기 제 1 모니터 데이터를 상기 암호로 보안된 하드웨어 환경으로부터 외부 설비로 송신하는 단계와,
    상기 제 1 모니터 데이터와의 비교를 위해 상기 제 2 모니터 데이터를 침입 검출 시스템으로부터 상기 외부 설비로 송신하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  17. 제 16 항에 있어서,
    상기 멀웨어의 존재를 표시하는 단계는,
    상기 외부 설비에 의해 생성되는 경보를 수신하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  18. 제 10 항에 있어서,
    상기 멀웨어의 존재를 표시하는 단계는,
    상기 멀웨어의 존재를 표시하는 경보를 디스플레이하는 단계를 포함하는
    멀웨어를 검출하는 방법.
  19. 제 10 항에 있어서,
    상기 제 1 모니터 데이터 및 상기 제 2 모니터 데이터는 네트워크 플로우 데이터(network flow data)를 포함하는
    멀웨어를 검출하는 방법.
  20. 프로그램 가능 디바이스로서,
    프로세서와,
    상기 프로세서에 의해 실행될 때 상기 프로세서를 제어하고 상기 프로세서 상에서 실행되는 다른 소프트웨어에 대한 운영체제 환경을 제공하는 명령어를 포함하는 운영체제와,
    침입 검출 소프트웨어―상기 침입 검출 소프트웨어는, 상기 운영체제 환경에서 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 프로그램 가능 디바이스의 네트워크 트래픽을 제 1 모니터 데이터로서 기록하도록 하는 명령어를 포함함―와,
    상기 프로그램 가능 디바이스의 네트워크 트래픽을 제 2 모니터 데이터로서 기록하도록 구성되는 암호로 보안된 하드웨어 환경(cryptographically secured hardware environment)―상기 암호로 보안된 하드웨어 환경은 상기 운영체제 환경의 외부에 있음―을 포함하되,
    상기 프로그램 가능 디바이스는,
    상기 제 1 모니터 데이터를 상기 제 2 모니터 데이터와 비교하고,
    상기 제 1 모니터 데이터가 상기 제 2 모니터 데이터와 동일하지 않으면 경보를 생성하도록 구성되는
    프로그램 가능 디바이스.
  21. 제 20 항에 있어서,
    상기 제 1 모니터 데이터 및 상기 제 2 모니터 데이터는 네트워크 플로우 데이터를 포함하는
    프로그램 가능 디바이스.
  22. 제 20 항에 있어서,
    침입 검출 시스템은, 상기 운영체제 환경에서 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    상기 암호로 보안된 하드웨어 환경으로부터 상기 제 2 모니터 데이터를 요청하게 하고,
    상기 제 1 모니터 데이터를 상기 운영체제 환경에서 상기 침입 검출 시스템에 의해 상기 제 2 모니터 데이터와 비교하게 하는 명령어를 더 포함하는
    프로그램 가능 디바이스.
  23. 제 20 항에 있어서,
    상기 침입 검출 소프트웨어는 상기 프로세서로 하여금 네트워크 트래픽을 계속해서 기록하게 하도록 구성되는
    프로그램 가능 디바이스.
  24. 제 20 항에 있어서,
    상기 프로그램 가능 디바이스는 상기 제 1 모니터 데이터 및 상기 제 2 모니터 데이터를 주기적으로 비교하도록 구성되는
    프로그램 가능 디바이스.
  25. 삭제
KR1020157033703A 2013-06-28 2014-06-26 네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출 KR101737726B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/931,705 US9197654B2 (en) 2013-06-28 2013-06-28 Rootkit detection by using HW resources to detect inconsistencies in network traffic
US13/931,705 2013-06-28
PCT/US2014/044227 WO2014210246A1 (en) 2013-06-28 2014-06-26 Rootkit detection by using hardware resources to detect inconsistencies in network traffic

Publications (2)

Publication Number Publication Date
KR20160004349A KR20160004349A (ko) 2016-01-12
KR101737726B1 true KR101737726B1 (ko) 2017-05-29

Family

ID=52117087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157033703A KR101737726B1 (ko) 2013-06-28 2014-06-26 네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출

Country Status (5)

Country Link
US (2) US9197654B2 (ko)
EP (1) EP3014813B1 (ko)
KR (1) KR101737726B1 (ko)
CN (1) CN105409164B (ko)
WO (1) WO2014210246A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109203A (ko) 2018-03-15 2019-09-25 삼성에스디에스 주식회사 컨테이너 루트킷 탐지 장치 및 방법

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
FR3012643B1 (fr) * 2013-10-28 2017-03-17 Oberthur Technologies Systeme de detection d'intrusion dans un dispositif comprenant un premier systeme d'exploitation et un deuxieme systeme d'exploitation
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US10659478B2 (en) * 2014-07-21 2020-05-19 David Paul Heilig Identifying stealth packets in network communications through use of packet headers
US9654498B2 (en) * 2015-05-12 2017-05-16 Assured Information Security, Inc. Detecting deviation from a data packet send-protocol in a computer system
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US10089099B2 (en) 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
DE102015214993A1 (de) * 2015-08-06 2017-02-09 Siemens Aktiengesellschaft Verfahren und Anordnung zur rückwirkungsfreien Übertragung von Daten zwischen Netzwerken
US10291496B1 (en) * 2015-09-29 2019-05-14 Juniper Networks, Inc. Packet capture based capturing of protocol layer state information
US10623424B2 (en) * 2016-02-17 2020-04-14 Ziften Technologies, Inc. Supplementing network flow analysis with endpoint information
US10705829B2 (en) 2016-03-30 2020-07-07 International Business Machines Corporation Software discovery using exclusion
US10528739B2 (en) 2016-04-20 2020-01-07 Sophos Limited Boot security
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10187414B2 (en) 2016-07-20 2019-01-22 Cisco Technology, Inc. Differential malware detection using network and endpoint sensors
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
CN107689975B (zh) * 2016-08-05 2020-07-31 腾讯科技(深圳)有限公司 一种基于云计算的计算机病毒识别方法及系统
US10698672B1 (en) * 2016-10-07 2020-06-30 Wells Fargo Bank, N.A. Universal installer and uninstaller
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
TWI617940B (zh) * 2016-12-01 2018-03-11 財團法人資訊工業策進會 資料保護方法與資料保護系統
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode
CN106980574A (zh) * 2017-03-10 2017-07-25 武汉融卡智能信息科技有限公司 一种tee下全功能测试系统及测试方法
US10476673B2 (en) 2017-03-22 2019-11-12 Extrahop Networks, Inc. Managing session secrets for continuous packet capture systems
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US20190026460A1 (en) * 2017-07-19 2019-01-24 Cisco Technology, Inc. Dynamic creation of isolated scrubbing environments
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US9967292B1 (en) 2017-10-25 2018-05-08 Extrahop Networks, Inc. Inline secret sharing
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
US10389574B1 (en) 2018-02-07 2019-08-20 Extrahop Networks, Inc. Ranking alerts based on network monitoring
US10270794B1 (en) * 2018-02-09 2019-04-23 Extrahop Networks, Inc. Detection of denial of service attacks
RU2706894C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ анализа содержимого зашифрованного сетевого трафика
US10411978B1 (en) 2018-08-09 2019-09-10 Extrahop Networks, Inc. Correlating causes and effects associated with network activity
US10965702B2 (en) * 2019-05-28 2021-03-30 Extrahop Networks, Inc. Detecting injection attacks using passive network monitoring
US10742530B1 (en) 2019-08-05 2020-08-11 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US11388072B2 (en) 2019-08-05 2022-07-12 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US10742677B1 (en) 2019-09-04 2020-08-11 Extrahop Networks, Inc. Automatic determination of user roles and asset types based on network monitoring
US11310256B2 (en) 2020-09-23 2022-04-19 Extrahop Networks, Inc. Monitoring encrypted network traffic
US11463466B2 (en) 2020-09-23 2022-10-04 Extrahop Networks, Inc. Monitoring encrypted network traffic
US11816205B2 (en) * 2020-11-30 2023-11-14 Red Hat, Inc. Detecting and handling attacks on processes executing within a trusted execution environment
US11799879B2 (en) 2021-05-18 2023-10-24 Bank Of America Corporation Real-time anomaly detection for network security
US11588835B2 (en) 2021-05-18 2023-02-21 Bank Of America Corporation Dynamic network security monitoring system
US11792213B2 (en) 2021-05-18 2023-10-17 Bank Of America Corporation Temporal-based anomaly detection for network security
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
US11843606B2 (en) 2022-03-30 2023-12-12 Extrahop Networks, Inc. Detecting abnormal data access based on data similarity
CN115623531B (zh) * 2022-11-29 2023-03-31 浙大城市学院 利用无线射频信号的隐藏监控设备发现和定位方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009084B2 (en) * 2002-10-21 2015-04-14 Rockwell Automation Technologies, Inc. System and methodology providing automation security analysis and network intrusion protection in an industrial environment
US7565690B2 (en) * 2003-08-04 2009-07-21 At&T Intellectual Property I, L.P. Intrusion detection
US20050229250A1 (en) * 2004-02-26 2005-10-13 Ring Sandra E Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations
US7841006B2 (en) * 2005-10-05 2010-11-23 Computer Associates Think, Inc. Discovery of kernel rootkits by detecting hidden information
US7665136B1 (en) * 2005-11-09 2010-02-16 Symantec Corporation Method and apparatus for detecting hidden network communication channels of rootkit tools
US8291473B2 (en) 2007-01-10 2012-10-16 International Business Machines Corporation Methods, systems, and computer program products for modeling a secure production network
US7765374B2 (en) * 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8079030B1 (en) * 2007-03-13 2011-12-13 Symantec Corporation Detecting stealth network communications
US8104088B2 (en) * 2007-05-11 2012-01-24 Microsoft Corporation Trusted operating environment for malware detection
EP2324615B1 (en) * 2008-05-21 2014-04-02 McAfee, Inc. System and method for discovery of network entities
US20100162399A1 (en) * 2008-12-18 2010-06-24 At&T Intellectual Property I, L.P. Methods, apparatus, and computer program products that monitor and protect home and small office networks from botnet and malware activity
US20130247182A1 (en) * 2009-04-21 2013-09-19 Seagen James Levites System, method, and computer program product for identifying hidden or modified data objects
US8443449B1 (en) * 2009-11-09 2013-05-14 Trend Micro, Inc. Silent detection of malware and feedback over a network
FI20096394A0 (fi) * 2009-12-23 2009-12-23 Valtion Teknillinen Tunkeutumisen havaitseminen viestintäverkoissa
US20120102568A1 (en) * 2010-10-26 2012-04-26 Mcafee, Inc. System and method for malware alerting based on analysis of historical network and process activity
US8549648B2 (en) * 2011-03-29 2013-10-01 Mcafee, Inc. Systems and methods for identifying hidden processes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109203A (ko) 2018-03-15 2019-09-25 삼성에스디에스 주식회사 컨테이너 루트킷 탐지 장치 및 방법

Also Published As

Publication number Publication date
US20150007316A1 (en) 2015-01-01
EP3014813A1 (en) 2016-05-04
KR20160004349A (ko) 2016-01-12
WO2014210246A1 (en) 2014-12-31
US20160173512A1 (en) 2016-06-16
CN105409164B (zh) 2020-03-31
US9197654B2 (en) 2015-11-24
US9680849B2 (en) 2017-06-13
EP3014813A4 (en) 2017-03-01
EP3014813B1 (en) 2020-03-25
CN105409164A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
KR101737726B1 (ko) 네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출
JP7046111B2 (ja) マルウェアのランタイム中の自動検出
US10454950B1 (en) Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11055411B2 (en) System and method for protection against ransomware attacks
US9954872B2 (en) System and method for identifying unauthorized activities on a computer system using a data structure model
US9794270B2 (en) Data security and integrity by remote attestation
US10142343B2 (en) Unauthorized access detecting system and unauthorized access detecting method
US9690598B2 (en) Remotely establishing device platform integrity
CN113660224A (zh) 基于网络漏洞扫描的态势感知防御方法、装置及系统
CN113411295A (zh) 基于角色的访问控制态势感知防御方法及系统
CN113660222A (zh) 基于强制访问控制的态势感知防御方法及系统
Sparks et al. A chipset level network backdoor: bypassing host-based firewall & ids
TWI711939B (zh) 用於惡意程式碼檢測之系統及方法
US10757078B2 (en) Systems and methods for providing multi-level network security
Cahill Combatting Advanced Malware Designed to Evade Detection
Farley et al. Roving bugnet: distributed surveillance threat and mitigation
Chen et al. Security software based on Windows NDIS filter drivers
GB2574468A (en) Detecting a remote exploitation attack
Krasavin Keyloggers-content monitoring exploits
Ahmad Advancing Intrusion Detection and Prevention Systems through the Use of Computer Virtualization
Alsadi et al. Contemporary IoT Security Trends

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