KR102301721B1 - 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션 - Google Patents

다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션 Download PDF

Info

Publication number
KR102301721B1
KR102301721B1 KR1020187015228A KR20187015228A KR102301721B1 KR 102301721 B1 KR102301721 B1 KR 102301721B1 KR 1020187015228 A KR1020187015228 A KR 1020187015228A KR 20187015228 A KR20187015228 A KR 20187015228A KR 102301721 B1 KR102301721 B1 KR 102301721B1
Authority
KR
South Korea
Prior art keywords
tool
computer system
guest
response
security
Prior art date
Application number
KR1020187015228A
Other languages
English (en)
Other versions
KR20180097527A (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 KR20180097527A publication Critical patent/KR20180097527A/ko
Application granted granted Critical
Publication of KR102301721B1 publication Critical patent/KR102301721B1/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
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • 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/0272Virtual private networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

악성 소프트웨어 및 침입과 같은 컴퓨터 보안 위협으로부터 다수의 클라이언트 시스템들(예를 들어, 기업 네트워크)을 보호할 수 있는 시스템과 방법을 설명한다. 일부 실시예들에서, 각각의 보호되는 클라이언트는 라이브 인트로스펙션 엔진과 온디맨드형 인트로스펙션 엔진을 작동시킨다. 상기 라이브 인트로스펙션 엔진은 각각의 클라이언트 시스템 상에 노출된 보호되는 가상 머신 내에서 특정 이벤트의 발생을 탐지하고 원격 보안 서버에 상기 발생을 통신한다. 차례로, 클라이언트에 의해 실행될 포렌식 툴을 표시함으로써, 서버는 클라이언트 시스템으로부터 이벤트의 포렌식 분석을 요청할 수 있다. 포렌식 툴은 클라이언트가 액세스할 수 있는 중앙 저장소에 저장될 수 있다. 분석 요청을 수신하는 것에 응답으로, 상기 온디맨드형 인트로스펙션 엔진은 포렌식 툴을 검색하고 실행할 수 있고, 포렌식 분석의 결과는 보안 서버로 통신될 수 있다. 상기 서버는 정보를 이용하여 각각의 클라이언트가 악성 소프트웨어 또는 침입자에 의해 공격을 받고 있는지 여부를 결정할 수 있다.

Description

다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션
본 출원은 2015년 12월 19일에 출원된 미합중국 가특허출원 번호 제62/269,952호(발명의 명칭 "다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션(Dual Memory Introspection for Securing Multiple Network Endpoints)")의 출원일에 대한 우선권을 주장하며 그 전체 내용은 본 명세서에서 참조로서 포함된다.
본 발명은 컴퓨터 보안 시스템들 및 방법들에 대한 것이며, 구체적으로는 컴퓨터 보안 위협들로부터 하드웨어 가상화 환경을 보호하기 위한 시스템들과 방법들에 대한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 웜, 루트킷(rootkit), 및 스파이웨어와 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터와 민감한 정보의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다.
컴퓨터 보안 소프트웨어는 악성 소프트웨어로부터 컴퓨터 시스템들을 보호하기 위해 사용될 수 있다. 그러나 기업 네트워크 및 클라우드 컴퓨팅 시스템과 같은 분산 컴퓨팅 시스템에서, 종래의 보안 소프트웨어는 일반적으로 공격에 잘 대응하지 못한다. 심지어 보안 소프트웨어가 공격을 탐지할 수 있는 경우에도, 분석 및 리미디에이션(remediation, 교정)은 예를 들어 패치를 적용하고, 손실된 데이터를 복구하는 것 등은 영향을 받은 클라이언트 시스템에 인간 작업자가 파견될 것을 계속 필요로 할 수 있다. 또한, 일단 새로운 위협이 탐지되고 분석되면, 보안 소프트웨어의 업데이트 버전을 모든 보호되는 컴퓨터 시스템에 즉시 배포해야 한다.
대안적인 컴퓨터 보안 시스템은 중앙 서버 컴퓨터 상에서 실행되어, 통신 네트워크를 통해 보안 클라이언트로부터 관련 데이터를 수신할 수 있다. 상기 서버는 수신된 데이터에 따라 각각의 클라이언트가 멀웨어에 감염되었는지 여부를 결정할 수 있고, 각각의 클라이언트에게 결정을 전달할 수 있다. 이러한 구성은 신흥 위협을 처리할 준비를 잘 갖추고 있지만, 이들은 상당한 서버 측 컴퓨팅 파워(computational power)를 필요로 한다.
컴퓨터 보안 작동은 하드웨어 가상화의 출현으로 인해 더 복잡해졌다. 점점 더 많은 재화와 서비스가 온라인으로 교환되고 작업이 점진적으로 비국지화(de-localized) 됨에 따라, IAAS(infrastructure as a service, 서비스로서의 인프라스트럭쳐)는 컴퓨터 하드웨어를 소유하는 것에 대한 실행 가능한 대안이 되었다. 컴퓨팅 활동의 상당 부분은 현재 가상 머신을 사용하여 수행된다. 서버 팜(server farm) 및 클라우드 컴퓨팅과 같은 일반적인 어플리케이션에서는, 수백의 가상 머신이 단일 하드웨어 플랫폼 상에서 동시에 실행될 수 있다. 이러한 가상 머신 모두는 멀웨어 보호가 필요할 수 있다.
끊임없이 변화하는 악성 소프트웨어의 특성 및 모바일 근무인력(mobile workforce)이라는 도전에 적응하기 위해서는 혁신적인 컴퓨터 보안 시스템 및 프로토콜, 그리고 특히 다수의 분산 클라이언트 전체에 걸쳐 컴퓨터 보안 작동의 효율적인 관리를 가능하게 하는 시스템 및 방법의 개발이 필요하다.
본 발명의 일 태양에 따르면, 클라이언트 컴퓨터 시스템은 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형(on-demand) 인트로스펙션 엔진을 실행하도록 구성된 하드웨어 프로세서를 포함한다. 상기 하이퍼바이저는, 게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되되, 상기 온디맨드형 인트로스펙션 엔진은 상기 보안 VM 내에서 실행되고, 상기 라이브 인트로스펙션 엔진은 상기 게스트 VM 및 보안 VM 외부에서 실행된다. 상기 라이브 인트로스펙션 엔진은, 상기 게스트 VM 내 이벤트의 발생을 탐지하는 것에 응답으로, 통신 네트워크를 통해 상기 이벤트의 표시자를 원격 서버 컴퓨터 시스템으로 전송하도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 라이브 인트로스펙션 엔진이 상기 이벤트의 상기 표시자를 상기 원격 서버 컴퓨터 시스템으로 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 분석 요청을 수신하되, 상기 분석 요청은 상기 클라이언트 컴퓨터 시스템을 포함하는 복수의 클라이언트들에 보안 툴을 배포하도록 구성된 원격 툴 저장소(repository, 리포지토리)에 위치하는 보안 툴을 나타내고, 상기 보안 툴은 상기 이벤트의 발생을 분석하도록 구성된 소프트웨어를 포함하고, 상기 보안 툴은 상기 이벤트의 이벤트 유형에 따라 상기 원격 서버 컴퓨터 시스템에 의해 선택되도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 분석 요청을 수신하는 것에 응답으로, 상기 분석 요청에 따라 상기 보안 툴을 식별하고, 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하되, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크를 통해 상기 중앙 툴 저장소에 접속하는 것을 포함하도록 추가적으로 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 보안 툴을 선택적으로 검색하는 것에 응답으로, 상기 보안 툴을 실행하고, 그리고 상기 보안 툴의 실행 결과를 상기 원격 서버 컴퓨터 시스템에 전송하도록 추가적으로 구성된다.
본 발명의 다른 태양에 따르면, 서버 컴퓨터는 복수의 클라이언트 시스템들과 컴퓨터 보안 트랜잭션(transaction)을 수행하도록 구성된다. 상기 서버 컴퓨터 시스템은, 상기 복수의 클라이언트 시스템들의 클라이언트 시스템으로부터 이벤트 표시자를 수신하는 것에 응답으로(상기 이벤트 표시자는 상기 클라이언트 시스템 상에서 실행되는 게스트 가상 머신(virtual machine, VM) 내 이벤트의 발생을 나타냄), 상기 복수의 클라이언트 시스템들에 보안 툴을 배포하도록 구성된 원격 툴 저장소에 위치하는 보안 툴을 선택하되(상기 보안 툴은 상기 이벤트의 발생을 분석하도록 구성된 소프트웨어를 포함함), 상기 보안 툴을 선택하는 것은 상기 이벤트의 이벤트 유형에 따라 수행도록 구성된 하드웨어 프로세서를 포함한다. 상기 하드웨어 프로세서는, 상기 보안 툴을 선택하는 것에 응답으로, 통신 네트워크를 통해 분석 요청을 상기 클라이언트 시스템으로 전송하되, 상기 분석 요청은 상기 보안 툴의 식별자를 포함하고; 그리고 응답으로, 상기 클라이언트 시스템으로부터 상기 클라이언트 시스템 상에서 상기 보안 툴을 실행한 결과를 수신하도록 추가적으로 구성된다. 상기 클라이언트 시스템은 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형 인트로스펙션 엔진을 실행하도록 구성된다. 상기 하이퍼바이저는 게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되되, 상기 온디맨드형 인트로스펙션 엔진은 상기 보안 VM 내에서 실행되고, 상기 라이브 인트로스펙션 엔진은 상기 게스트 VM 및 보안 VM 외부에서 실행된다. 상기 라이브 인트로스펙션 엔진은, 상기 이벤트의 발생을 탐지하는 것에 응답으로, 상기 이벤트 표시자를 서버 컴퓨터 시스템으로 전송하도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 분석 요청을 수신하는 것에 응답으로, 상기 분석 요청에 따라 상기 보안 툴을 식별하도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 보안 툴을 식별하는 것에 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하되, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크를 통해 상기 클라이언트 시스템이 상기 원격 툴 저장소에 접속하는 것을 포함하도록 추가적으로 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 보안 툴을 검색하는 것에 응답으로, 결과를 생성하도록 보안 툴을 실행하도록 추가적으로 구성된다.
본 발명의 다른 태양에 따르면, 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는 클라이언트 컴퓨터 시스템의 하드웨어 프로세서 상에서 실행될 때, 상기 클라이언트 컴퓨터 시스템으로 하여금 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형 인트로스펙션 엔진을 형성하도록 유발하는 명령들의 세트를 포함한다. 상기 하이퍼바이저는, 게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되되, 상기 온디맨드형 인트로스펙션 엔진은 상기 보안 VM 내에서 실행되고, 상기 라이브 인트로스펙션 엔진은 상기 게스트 VM 및 보안 VM 외부에서 실행된다. 상기 라이브 인트로스펙션 엔진은, 상기 게스트 VM 내 이벤트의 발생을 탐지하는 것에 응답으로, 통신 네트워크를 통해 상기 이벤트의 표시자를 원격 서버 컴퓨터 시스템으로 전송하도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 라이브 인트로스펙션 엔진이 상기 이벤트의 상기 표시자를 상기 원격 서버 컴퓨터 시스템으로 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 분석 요청을 수신하되, 상기 분석 요청은 상기 클라이언트 컴퓨터 시스템을 포함하는 복수의 클라이언트들에 보안 툴을 배포하도록 구성된 원격 툴 저장소(repository, 리포지토리)에 위치하는 보안 툴을 나타내고, 상기 보안 툴은 상기 이벤트의 발생을 분석하도록 구성된 소프트웨어를 포함하고, 상기 보안 툴은 상기 이벤트의 이벤트 유형에 따라 상기 원격 서버 컴퓨터 시스템에 의해 선택되도록 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 분석 요청을 수신하는 것에 응답으로, 상기 분석 요청에 따라 상기 보안 툴을 식별하고, 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하되, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크를 통해 상기 중앙 툴 저장소에 접속하는 것을 포함하도록 추가적으로 구성된다. 상기 온디맨드형 인트로스펙션 엔진은, 상기 보안 툴을 선택적으로 검색하는 것에 응답으로, 상기 보안 툴을 실행하고, 그리고 상기 보안 툴의 실행 결과를 상기 원격 서버 컴퓨터 시스템에 전송하도록 추가적으로 구성된다.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따라서 컴퓨터 보안 위협에 대해서 보호되는 다수의 클라이언트 시스템의 예시적인 구성을 보여주는 도면.
도 2a는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적인 하드웨어 구성을 보여주는 도면.
도 2b는 본 발명의 일부 실시예에 따른 보안 서버 컴퓨터 시스템의 예시적인 하드웨어 구성을 보여주는 도면.
도 3a는 본 발명의 일부 실시예에 따른, 보호되는 클라이언트 시스템 상에서 실행되는 하이파이저에 의해 노출되는 가상 머신의 예시적 세트 및 인트로스펙션 엔진의 예시적 쌍을 보여주는 도면.
도 3b는 본 발명의 일부 실시예에 따른, 보안 구성 요소의 선택적 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른, 클라이언트 시스템 상에 컴퓨터 보안을 설정하기 위한 설치기 어플리케이션에 의해 수행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른, 클라이언트 시스템과 보안 서버 사이에 가상 사설 네트워크(virtual private network, VPN) 보안 연결을 설정하는 것을 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른, 멀웨어 탐지 동안 발생하는, 클라이언트 시스템과 보안 서버 사이의 예시적 데이터 교환을 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따른, 라이브 인트로스펙션 엔진에 의해 수행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 8은 본 발명의 일부 실시예에 따른, 온디맨드형 인트로스펙션 엔진에 의해 수행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 9는 본 발명의 일부 실시예에 따른, 보안 서버에 의해 수행되는 예시적 단계들의 시퀀스를 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 컴퓨터 보안은 데이터 및/또는 하드웨어로의 의도되지 않았거나 인가 받지 않은 접근에 대해서, 데이터 및/또는 하드웨어의 의도되지 않았거나 인가 받지 않은 수정에 대해서, 그리고 데이터 및/또는 하드웨어의 파괴에 대해서 사용자와 장치를 보호하는 것을 포함한다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 라이브러리들)일 수 있다. 달리 특정되지 않는다면, 게스트 소프트웨어는 가상 머신 내에서 실행된다. 프로그램은, 이들이 각각의 가상 머신의 가상 프로세서 상에서 실행될 때, 가상 머신 내에서 실행되는 것으로 생각된다. 달리 특정되지 않는다면, 페이지는 호스트 시스템의 물리적 메모리에 개별적으로 매핑될 수 있는 가상 메모리의 최소 유닛을 나타낸다. 달리 특정되지 않는다면, 클라이언트 시스템의 스냅샷은 각 클라이언트 시스템에 의해 사용되는 메모리 섹션의 콘텐트의 사본을 포함한다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory medium)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예를 들어서, 하나 이상의 마이크로프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 본 발명의 일부 실시예에 따라서 컴퓨터 보안 위협에 대해서 다수의 클라이언트 시스템들(12a-d)을 보호하기 위한 예시적인 구성을 보여준다. 예시적 클라이언트 시스템들(12a-d)은 개인용 컴퓨터 시스템, 모바일 컴퓨팅 플랫폼(랩탑 컴퓨터, 태블릿, 모바일 전화기), 엔터테인먼트 장치(TV, 게임 컨솔), 웨어러블 장치(스마트워치, 피트니스 밴드), 가전 제품 및 프로세서 및 메모리를 포함하는 임의의 다른 전자 장치를 포함하고, 하드웨어 가상화 플랫폼을 작동시킬 수 있다. 클라이언트 시스템의 또 다른 예시적인 카테고리는 웹 서버 및/또는 가상 데스크탑 인프라스트럭쳐와 같은 클라우드 기반 어플리케이션을 실행하는 데이터센터 서버 및 하드웨어 가상화 플랫폼을 포함한다.
클라이언트 시스템들(12a-d)은, 홈 네트워크, 기업 네트워크, 인터넷 등과 같은 통신 네트워크(11)를 통해 상호연결된다. 네트워크(11)는 적어도 하나의 스위치 및/또는 라우터를 포함한다. 네트워크(11)의 일부는 근거리 통신망(local area network, LAN) 및/또는 전기 통신망(예를 들면, 4G 이동 전화 네트워크(mobile telephony network), 무선 LAN)을 포함할 수 있다.
일부 실시예들에서, 보안 서버(14)는 이하에서 상술하는 바와 같이, 네트워크(11)를 통해 클라이언트 시스템들(12a-d)에 통신가능하게 연결되고, 클라이언트 시스템들(12a-d)과 협력하여 컴퓨터 보안 위협을 막는다. 서버(14)는 일반적으로 서로 물리적으로 근접할 수도 있고 그렇지 않을 수도 있는 상호연결된 컴퓨팅 시스템의 세트를 기술한다. 일부 실시예들에서, 서버(14)는 클라이언트 시스템들(12a-d)로부터 이벤트 통지를 수신하고, 응답으로, 이벤트의 유형에 따라, 각각의 클라이언트 시스템에 의해 사용될 포렌식 분석(forensic analysis), 위협 완화 프로토콜(threat mitigation protocol) 및/또는 클린업(clean-up) 툴의 유형을 선택하도록 구성된다. 예시적인 포렌식 분석은 예를 들어서, 각각의 이벤트의 원인 및/또는 콘텍스트에 관한 특정 데이터를 얻는 것을 포함한다. 위협 완화 프로토콜은 각각의 이벤트에 의해 표시된 악성 소프트웨어의 유형에 따라 선택될 수 있고, 각각의 클라이언트 상에 특정 클린업 및/또는 손상 제어 코드를 다운로드하거나 및/또는 실행하는 것을 포함할 수 있다.
일부 실시예들에서, 보안 서버(14)는 클라이언트 데이터베이스(17)와 인터페이스하도록 추가적으로 구성된다. 예시적인 클라이언트 데이터베이스(17)에서, 각각의 엔트리는 보호되는 클라이언트 시스템(12a-d) 및/또는 각각의 보호되는 클라이언트 시스템 상에서 실행되는 가상 머신과 연관되며, 상기 각각의 클라이언트 시스템/가상 머신에 의해 보고되는 포렌식 리포트/및 또는 트리거 이벤트의 로그를 포함할 수 있다(하기 참조). 데이터베이스(17)의 예시적인 엔트리는 상기 각각의 클라이언트 시스템/가상 머신에 대한 시스템 프로파일 데이터(예를 들면, OS 버전, 설치된 어플리케이션, 다양한 설정, 소유자, 컨택 정보 등)를 추가로 포함할 수 있다. 클라이언트 데이터베이스(17)의 또 다른 예시적인 엔트리는 상기 각각의 클라이언트 시스템과 연관된 클라이언트-특정 보안 정책을 나타내는 파라미터 값의 세트를 포함할 수 있다. 이러한 설정은 인간 작업자에 의해 지정되거나 또는 규칙의 세트에 따라서 자동으로 설정될 수 있다. 본 발명의 일부 실시예들에서, 클라이언트 특정 정책 및/또는 보안 설정은 각각의 클라이언트 상에서, 또는 다른 보호되는 클라이언트 상에서 발생하는 이벤트에 응답하여 동적으로 달라진다.
일부 실시예들에서, 클라이언트 시스템들(12a-d)은 네트워크(11)를 통해 중앙 툴 저장소(central tool repository, 중앙 툴 리포지토리)(15)에 추가적으로 연결된다. 툴 저장소(15)는 코드 (컴퓨터 프로그램) 및/또는 데이터의 형태로 리소스 및 보안 툴을 저장하는 물리적 머신 또는 컴퓨터 판독가능 매체를 포함할 수 있다. 클라이언트 시스템들(12a-d)은, 이하에서 상술하는 바와 같이, 저장소(15)에 연결되어 보안 서버(14)로부터 수신된 지시에 따라 툴 및 데이터를 선택적으로 검색할 수 있다. 툴 저장소(15)는 다수의 클라이언트가 사용할 수 있으므로, 본 발명의 바람직한 실시예에서, 저장소(15)는 임의의 특정 클라이언트 시스템 상에 위치하지 않는다. 따라서 저장소(15)에 연결되는 것은 각각의 클라이언트 시스템의 네트워크 어댑터를 통해 저장소(15)로/저장소(15)로부터 통신을 전송하거나 및/또는 수신하는 것을 포함한다. 이러한 통신은 중간에 네트워크 스위치 또는 라우터를 통과할 수 있다.
저장소(15)에 저장된 보안 툴은 포렌식, 안티 멀웨어, 및/또는 위협 완화 툴을 포함할 수 있다. 저장소 데이터는 조사 중인 이벤트의 유형에 따라, 또는 로컬 하드웨어/소프트웨어 구성에 따라 각각의 툴을 구성하거나 조정(tuning, 튜닝)하기 위한 파라미터 값을 추가적으로 포함할 수 있다. 안티 멀웨어 툴은 클라이언트 시스템들(12a-d) 상에서 실행되는 악성 소프트웨어의 탐지를 가능하게 하고, 멀웨어 식별 서명의 데이터베이스 및/또는 휴리스틱 규칙 세트의 인코딩을 포함할 수 있다. 위협 완화 툴은 클라이언트 시스템 상에서 실행되는 악성 소프트웨어 에이전트를 제거하도록 또는 그렇지 않으면 불능화하도록 프로그래밍 된 클린업 툴을 포함할 수 있다. 다른 예시적인 위협 완화 툴은, 예를 들면 감염된 클라이언트 시스템이 이들의 네트워크 어댑터를 사용하는 방식을 제어함으로써, 감염된 클라이언트 시스템이 또 다른 클라이언트 시스템에 악성 소프트웨어를 전송하는 것을 막도록 프로그래밍된다.
포렌식 툴은 클라이언트 시스템들(12a-d) 상에서 발생하는 보안 관련 이벤트의 분석을 가능하게 한다. 포렌식 툴의 일부 예들에는, 상기 각각의 클라이언트 시스템 상에서 실행되는 가상 머신의, 또는 클라이언트 시스템의 메모리 스냅샷을 얻을 수 있도록 프로그래밍된, 스냅샷 생성 도구가 포함된다. 상기 스냅샷은 상기 각각의 클라이언트 시스템 상에서 현재 실행 중인 또 다른 어플리케이션과, 또는 운영 체제(operating system, OS)와 관련된 메모리 데이터를 포함할 수 있다. OS 커널의 스냅샷은 특히 커널 코드 및 데이터 섹션의 사본, 다양한 메모리 내 커널 드라이버(코드 및/또는 데이터 섹션), 메모리 내 커널 쓰레드 및 이에 대응되는 스택, OS 커널 데이터 구조 - 로드된 모듈의 리스트, 프로세스의 리스트 등과 같은 것을 포함할 수 있다. 어플리케이션의 예시적인 스냅샷은 어플리케이션의 메모리 이미지의 사본(이의 코드 및 데이터 섹션, 어플리케이션의 쓰레드에 의해 사용되는 메모리 내 스택, 각각의 어플리케이션의 히프(heap) 메모리 페이지 등 포함)을 포함한다.
일부 실시예들에서, 메모리 스냅샷을 찍는 것은 각각의 메모리 섹션의 콘텐트를 복사할 수 있도록 게스트 VM(32)의 실행을 중단시키는 것을 포함한다. 선택적인 실시예는 스냅샷을 찍지 않고 "라이브(live)" 메모리 포렌식을 수행한다. 이러한 실시예에서, 하이퍼바이저(30)는 게스트 VM(32)에 의해 사용되는 물리적 메모리 페이지의 세트를 보안 VM(33)에 의해 사용되는 가상 메모리 페이지에 맵핑(map)할 수 있다. 그리고 보안 VM(33)은, 예를 들면 특정 이벤트에 응답하여, 게스트 VM(32)의 실행을 중단시키거나 각각의 콘텐트를 복사 및 전송하지 않고, 각각의 메모리 페이지의 콘텐트를 검사할 수 있다. "라이브" 메모리 포렌식 툴의 일 예시로는 Volatility Foundation의 Volatility® framework가 있다.
포렌식 툴의 또 다른 예시는, 클라이언트 시스템 상에 현재 설치된 그리고/또는 실행 중인 소프트웨어 엔터티를 열거하도록 구성된 어플리케이션 인벤토리 툴(application inventory tool)이다. 포렌식 툴의 또 다른 예시는, 구성 설정의 세트(예를 들어, 다양한 OS 파라미터, 하드웨어 설정, 보안 설정, 방화벽 설정 등의 현재 값)를 얻도록 프로그래밍된 구성 그래버(configuration grabber)이다. 다른 예시적인 포렌식 툴은 시스템 및/또는 어플리케이션 이벤트 로그, 또는 시스템 크래쉬 데이터(예를 들어, Windows® crash minidumps(크래쉬 미니덤프))를 수집하도록 프로그래밍된다.
도 2a는 도 1의 시스템들(12a-d)과 같은, 클라이언트 시스템(12)의 예시적인 하드웨어 구성을 보여준다. 단순성을 위하여, 도시된 클라이언트 시스템은 컴퓨터 시스템이지만; 모바일 전화기, 시계 등과 같은 다른 클라이언트 시스템의 하드웨어 구성은 도시된 구성과는 다소 다를 수 있다. 클라이언트 시스템(12)은 하드웨어 프로세서(16) 및 메모리 유닛(18)을 포함하는 물리적 장치들의 세트를 포함한다. 일부 실시예들에서, 프로세서(12)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 반도체 기판에 형성된 멀티-코어 집적 회로, 마이크로프로세서 등)를 포함한다. 일부 실시예들에서, 이러한 연산들은 프로세서 명령들(예를 들어, 머신 코드 또는 다른 유형의 인코딩)의 시퀀스 형태로 프로세서(12)에 전달된다. 메모리 유닛(18)은 프로세서(16)에 의해 액세스되거나 생성되는 명령들 및/또는 데이터를 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, DRAM, SRAM)를 포함할 수 있다.
장치의 유형 및 성능에 따라, 클라이언트 시스템(12)은 사용자가 클라이언트 시스템(12)에 데이터 및/또는 명령들을 입력할 수 있게 하는 키보드, 마우스, 터치스크린 등과 같은 입력 장치(20)들 세트를 추가적으로 포함할 수 있다. 모니터 또는 액정 디스플레이와 같은 출력 장치(22)들 세트는, 예를 들면 그래픽 사용자 인터페이스(graphical user interface)를 통해 사용자에게 정보를 전달할 수 있다. 저장 장치(24)는 프로세서 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(24)는 자기 디스크 및 광 디스크 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(26)들 세트는 클라이언트 시스템(12)이 통신 네트워크(11) 및/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다. 컨트롤러 허브(28)는 프로세서(16)와 장치(18, 20, 22, 24 및 26)들 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 일반적으로 나타낸다. 예를 들어, 컨트롤러 허브(28)는 특히 메모리 관리 유닛(memory management unit, MMU), 입력/출력(I/O) 컨트롤러, 및 인터럽트 컨트롤러(interrupt controller)를 포함할 수 있다. 다른 예에서, 컨트롤러 허브(28)는 프로세서(16)를 메모리(18)에 연결시키는 노스브리지, 및/또는 프로세서(16)를 장치들(20, 22, 24 및 26)에 연결시키는 사우스브리지를 포함할 수 있다. 일부 실시예들에서, 컨트롤러 허브(28)는 부분적으로 또는 전체적으로 프로세서(16)와 일체화될 수 있고, 예를 들어 MMU는 프로세서(16)와 공통의 반도체 기판을 공유할 수 있다.
도 2b는 보안 서버(14)의 예시적인 하드웨어 구성을 보여준다. 서버(14)는 하드웨어 프로세서(116), 서버 메모리(118), 서버 저장 장치(124)들의 세트 및 네트워크 어댑터(126)들의 세트(이들은 모두 컨트롤러 허브(128)에 의하여 연결됨)를 포함한다. 장치들(116, 118, 124 및 126)의 작동은 전술한 장치들(16, 18, 24 및 26)의 작동과 유사할 수 있다. 예를 들어서, 서버 프로세서(116)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 집적 회로를 포함할 수 있다. 서버 메모리(118)는 연산(computation)들을 실행하는 도중에 프로세서(116)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 비일시적 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다. 네트워크 어댑터(126)들은 보안 서버(14)로 하여금 통신 네트워크(11)에 연결하도록 할 수 있다.
일부 실시예들에서, 클라이언트 시스템(12)은, 예를 들어 도 3a 및 도 3b에 도시된 바와 같이, 가상 머신들의 세트를 노출시키도록 구성된다. 가상 머신(virtual machine, VM)은 하드웨어 가상화 기술 분야에 알려져 있는 임의의 다양한 기술을 사용하여 실제 물리적 머신/컴퓨터 시스템을 모방(emulate, 에뮬레이트)한다. 일부 예시적인 구성에서, 하이퍼바이저(30)는 클라이언트 시스템(12) 상에서 실행되고, 하이퍼바이저(30)는 가상 프로세서와 가상 메모리 관리 유닛과 같은 복수의 가상화된 장치들을 생성하거나 가능하게 하고, 그리고 그러한 가상화된 장치들을 클라이언트 시스템(12)의 실제의 물리적인 장치들을 모방하고, 소프트웨어에 제공하도록 구성된다. 그러한 작동들은 통상적으로 본 기술분야에서 가상 머신 노출로 알려져 있다. 하이퍼바이저(30)는 또한 각각의 VM이 독립적으로 작동하고 클라이언트 시스템(12)에서 동시에 실행되는 다른 VM들을 인식하지 못하도록 하면서, 다수의 가상 머신들이 호스트 시스템(12)의 하드웨어 리소스들을 공유하게 할 수 있다. 유명한 하이퍼바이저의 예로는, 특히 VMware Inc.의 VMware® vSphere® 및 오픈 소스 Xen® 하이퍼바이저가 있다.
도 3a 및 도 3b에 도시된 예시적인 구성에서, 게스트 VM(32)은 게스트 운영 시스템(34) 및 어플리케이션(36)을 실행한다. 도 3a 및 도 3b에는 하나의 게스트 VM만이 도시되어 있지만, 가상 데스크탑 인프라스트럭쳐(virtual desktop infrastructure, VDI)와 서버 팜(server farming)과 같은 어플리케이션에서, 클라이언트 시스템(12)은 다수의 그러한 VM들(예를 들면 수백)을 동시에 실행할 수 있다. 각각의 게스트 VM은 적어도 하나의 가상화 프로세서를 포함하고, 특히 가상화된 컨트롤러뿐만 아니라 가상화된 입력, 출력, 저장, 및 네트워크 장치와 같은 다른 가상화된 장치들을 추가적으로 포함할 수 있다. 각각의 가상화된 프로세서는 하드웨어 프로세서(16)의 기능의 적어도 일부의 모방(emulation)을 포함하고, 실행을 위하여 프로세서 명령들을 수신하도록 구성된다. 실행을 위하여 가상 프로세서를 이용하는 소프트웨어는 각각의 가상 머신 내에서 실행되는 것으로 생각된다. 예를 들어, 도 3a 및 도 3b의 예에서, 게스트 OS(34) 및 어플리케이션(36)은 게스트 VM(32) 내에서 실행되는 것으로 생각된다. 대조적으로, 하이퍼바이저(30)는 게스트 VM(32)의 밖에서 또는 아래에서 실행되는 것으로 생각된다.
OS(34)는 어플리케이션(36)과 게스트 VM(32)의 가상화된 하드웨어 사이의 인터페이스를 제공한다. 운영 시스템(34)은 특히, Microsoft Windows®, MacOS®, Linux®, iOS®, 또는 Android®와 같은 널리 이용가능한 임의의 운영 시스템을 포함할 수 있다. 어플리케이션(36)은 특히, 워드 프로세싱, 이미지 프로세싱, 미디어 플레이어, 데이터베이스, 캘린더, 개인 연락처 관리, 브라우저, 게임, 보이스 커뮤니케이션, 및 데이터 통신 어플리케이션들과 같은 임의의 컴퓨터 프로그램을 일반적으로 나타낸다.
일부 실시예들에서, 하이퍼바이저(30)는 게스트 VM(32)과 동시에 실행할 수 있는 보안 VM(33)을 추가로 노출시켜, 멀웨어 및 침입과 같은 컴퓨터 보안 위협에 대해서 게스트 VM(32)을 보호한다. 단일 보안 VM은 각각의 클라이언트 시스템 상에서 실행되는 다수의 게스트 VM들을 보호할 수 있다. 게스트 VM(32) 및 보안 VM(33)의 가상 환경은 게스트 VM(32) 내에서 실행되는 악성 소프트웨어가 보안 VM(33) 내에서 실행되는 소프트웨어를 감염시키거나 또는 그렇지 않으면 간섭하지 않도록 서로 격리될 수 있다. 예를 들어서, 보안 VM(33)의 가상 프로세서들이 클라이언트 시스템(12) 상에서 실행되는 다른 가상 머신들의 가상 프로세스들과 구별되고; 보안 VM(33) 및 게스트 VM(32)에 대한 메모리 변환은 페이지 테이블의 특징적 세트를 사용한다. 보안 VM(33)은 이하에서 상술하는 바와 같이, 보안 서버(14)와 협동하도록 구성될 수 있다. 보안 VM(33)의 일부 실시예들은 경량의 최소 운영 시스템(예를 들면, Linux® OS의 커스터마이징된 버전), 온디맨드형 인트로스펙션 엔진(42) 및 네트워크 필터(44)를 포함한다. 선택적 실시예에서, 네트워크 필터(44)는 보안 VM(33) 밖에서, 예를 들면 하이퍼바이저(30)의 프로세서 권한 레벨(processor privilege level)(예를 들어, 루트 레벨, 링 -1)에서 실행된다.
일부 실시예들에서, 하이퍼바이저(30)는 가상화된 장치들의 서브세트만을 게스트 VM(32)에 노출시킬 수 있고, 보안 VM(33)에게 클라이언트 시스템(12)의 일부 하드웨어 장치들의 직접적이고 독점적인 사용권을 줄 수 있다. 그러한 일 예에서, 게스트 VM(32)은 입력 장치(20)들과 출력 장치(22)들의 독점적 사용권을 가질 수 있고, 가상화된 네트워크 어댑터(들)은 없을 수 있다. 반면, 보안 VM(33)은 네트워크 어댑터(들)(26)의 직접적이고 독점적인 사용권을 가질 수 있다. 그러한 일 실시예에서, 게스트 VM(32)으로의 및/또는 게스트 VM(32)으로부터의 모든 통신은 보안 VM(33)을 통해 송신/수신될 수 있다. 하이퍼바이저(30)는, 예를 들면, 메모리 공유 메커니즘을 사용하여 게스트 VM(32)과 보안 VM(33) 사이에서 네트워크 패킷을 능동적으로 라우팅할 수 있다. 보안 VM(33)은 게스트 VM(32)과 원격 파티 사이의 통신을 선택적으로 허용하거나 막기 위해 필터(44)를 추가적으로 사용할 수 있다. 그러한 구성들은 예를 들어서, Intel®의 VT-d® 기술을 이용하여 실행될 수 있다.
일부 실시예들에서, 클라이언트 시스템(12) 상에서 실행되는 보안 소프트웨어는, 보호되는 게스트 VM(32) 밖에서 실행되는 라이브 인트로스펙션 엔진(40)을 더 포함한다. 본 명세서에서 "인트로스펙션(introspection)"이라는 용어는 각 VM 바깥 위치로부터 타겟 VM 내에서 실행되는 소프트웨어에 관한 정보를 수집하기 위한 활동을 나타내기 위해 사용된다. 인트로스펙션의 예들에는 특히, 각각의 VM 내에서 실행되는 소프트웨어가 특정 작업(예를 들면, 특정 프로세서 명령 실행, 특정 하드웨어 리소스 액세스, OS의 특정 서비스 사용, 특정 메모리 위치 액세스 등)을 수행하는지 여부를 결정하는 것이 포함된다. 인트로스펙션의 다른 예들은, 각각의 VM 내에서 실행되는 다양한 소프트웨어 객체에 의해 사용되는 메모리 주소를 결정하는 것, 및/또는 그러한 주소에 의해 표시되는 메모리 위치로의 액세스를 제어하는 것을 포함한다.
엔진(40)은, 예를 들어 라이브러리로서 하이퍼바이저(30)에 통합되거나 또는 하이퍼바이저(30)와 구별되고 독립적인 컴퓨터 프로그램으로서 전달될 수 있지만 하이퍼바이저(30)의 프로세서 권한 레벨(예를 들어, 루트 모드, 링 -1)에서 실행될 수 있다. 선택적인 실시예에서, 라이브 인트로스펙션 엔진은 게스트 VM(32)와는 구별되는 별개의 가상 머신에서 실행될 수 있다. 엔진(40)은 별도의 스케줄된 실행 쓰레드를 가지는 프로세스일 수 있고 또는 이하에서 설명되는 바와 같이 특정 이벤트들에 의해 트리거될 때 실행되는 스케줄되지 않은 코드 객체들의 집합으로서 작동할 수 있다.
엔진(40)은 복수의 실행 가능 엔터티들(예를 들면, 프로세스, 쓰레드, 어플리케이션)의 행동을 모니터링하도록 구성된다. 이는 각각의 소프트웨어의 실행 동안 다양한 이벤트의 발생을 탐지하고, 그러한 이벤트를 보안 서버(14)에 선택적으로 보고하는 것을 포함할 수 있다. 이러한 방식으로 예를 들면 특정 OS 기능 호출, 시스템 호출 등의 다양한 유형의 이벤트가 탐지될 수 있다. 탐지되는 이벤트의 다른 예들로는 특히 OS(34)의 기능을 수정하려는 시도(코드 패칭 또는 후킹으로 본 기술분야에 통상적으로 알려진 코드 조작(code manipulation)), 어느 소프트웨어 엔터티를 다른 소프트웨어 엔터티에 삽입(injection)하려는 시도, 디지털 서명되지 않은 소프트웨어 구성 요소를 개시(launch)하려는 시도, 및 디지털 서명 확인을 우회하려는 시도를 포함한다. 탐지되는 이벤트의 다른 유형들로는 파일 열기, 파일 생성, 파일에 쓰기, 파일 삭제, 파일 복사, 프로세스 생성, 프로세스 종료, 실행을 위한 쓰레드 스케줄링, 동기적 이벤트로 인한 쓰레드의 중단(예를 들어서, 상호 배제(mutual exclusion)), 히프(heap) 생성, 히프로부터 메모리 할당, 실행 스택의 크기 확장, 메모리 접근 허가 변경, 스왑-인 작업(예를 들어서, 디스크에서 메모리로) 수행, 스왑-아웃 작업(예를 들어서, 메모리에서 디스크로) 수행, 실행가능 모듈 로딩(예를 들어서, 공유 라이브러리 - DLL), 레지스트리 키 열기, 레지스트리 키 이름변경, 새 하드웨어 장치의 연결 탐지, 새 네트워크 연결 설정, 네트워크 패킷 수신, 쓰레드의 실행 권한 상승, 및 파일과 관련된 임의 접근 제어(discretionary access control, DAC) 허가 변경을 포함할 수 있다.
이러한 이벤트들을 탐지하는 여러가지 방법들이 본 기술분야에 알려져 있다. 이들은 특정 OS 기능을 후킹하는 것, 배정 테이블(dispatch table)을 수정하는 것 등을 포함한다. 하드웨어 가상화 플랫폼에서, 보안 관련 이벤트를 탐지하는 방법의 특별 카테고리는 메모리 접근 허가 위반을 탐지하는 데 의존한다. 대부분의 현대의 컴퓨터 시스템들은 가상 메모리와 함께 작동하고, 전용 데이터 구조들, 예를 들어 페이지 테이블을 이용하여 메모리 주소 변환(translation)을 관리하도록 구성된다. 하드웨어 가상화를 지원하도록 구성된 시스템들은 각각의 노출된 VM에 의해 보여지는 게스트-물리적 메모리로부터 클라이언트 시스템(12)의 실질적 물리적 메모리(18)로의 주소 변환의 제2 계층(second layer)을 일반적으로 사용한다. 제2 주소 변환은 통상적으로, 제2 레벨 주소 변환(second level address translation, SLAT)으로 알려진, 프로세서(16)에 의하여 제어되고, 하드웨어 가속되는, 전용 데이터 구조 및 메커니즘(hardware-accelerated, dedicated data structures and mechanisms)을 사용하여 달성된다. 유명한 SLAT 구현은 Intel® 플랫폼에서 확장된 페이지 테이블(extended page table, EPT)과 AMD® 플랫폼에서 빠른 가상화 인덱싱(rapid virtualization indexing, RVI)/내포된 페이지 테이블(nested page table, NPT)을 포함한다. SLAT은 일반적으로 읽기/쓰기/실행과 같은 각각의 메모리 페이지에 대한 메모리 접근 허가를 설정하는 것을 가능하게 한다.
일부 실시예들에서, 라이브 인트로스펙션 엔진(40)은 전술한 바와 같이 SLAT 메커니즘을 사용하여 특정 메모리 페이지의 접근 허가를 설정하기 위해 하이퍼바이저(30)와 협력한다. 이러한 일 실시예에서, 특정 메모리 페이지는 특정 OS 기능에 속한 코드를 호스팅한다. 각각의 페이지가 실행불가로 표시되면, 상기 각각의 OS 기능을 실행하려는 시도가 있을 때, 허가 위반이 트리거된다. 상기 위반은 각각의 OS 기능을 실행하려는 시도가 발생했다는 표시자로서 인트로스펙션 엔진(40)에 의해 해석될 수 있다.
프로세서(16)는 현재 접근 허가를 위반하는 방식으로 소프트웨어가 각각의 페이지에 접근하려고 시도할 때, 프로세서 이벤트(예를 들어, 예외, 오류 등)를 촉발(trigger, 트리거)하도록 구성될 수 있다. 프로세서 이벤트의 한 유형은 VM 종료 이벤트(VM exit event)(Intel® 플랫폼의 VMExit)를 포함하며, 여기서 프로세서(16)는 메모리 접근 허가 위반에 대응하여, 각각의 VM 내에서 코드를 실행하는 것으로부터 각각의 VM 밖에서 핸들러 루틴을 실행하는 것으로 전환한다. 프로세서 이벤트의 또 다른 카테고리는 가상화 예외(virtualization exception)(Intel® 플랫폼의 #VE)를 포함하고, 여기서 프로세서(16)는 각각의 VM 내에서 핸들러 루틴을 실행하는 것으로 전환한다.
도 3a의 예시적인 구성에서, 이벤트 핸들러(46a)는 모니터링되는 게스트 VM 밖에서, 하이퍼바이저(30)의 프로세서 권한 레벨에서 실행된다. 이러한 실시예들은 VM 종료 이벤트에 의존하여 게스트 VM(32) 내 이벤트의 발생에 관하여 라이브 인트로스펙션 엔진(40)에 알릴 수 있다. 대조적으로, 도 3b에서, 이벤트 핸들러(46b)는 모니터링되는 VM 내에서, 예를 들면, 게스트 OS(34)의 프로세서 권한 레벨(예를 들어, 링 0, 커널 모드)에서 실행된다. 이러한 구성은 VM 내 이벤트를 탐지하기 위해 가상화 예외에 의존할 수 있다. 핸들러(46b)는 (예를 들어, 메모리의 공유 섹션을 사용하는)프로세스간 통신 메커니즘을 사용하여 이벤트 정보를 인트로스펙션 엔진(40)으로 보낼 수 있다. 도 3b에 도시된 바와 같은 구성은 도 3a에 도시된 구성보다 정보 수집에 있어 보다 효율적일 수 있는데, 이는 핸들러(46b)가 모니터링되는 VM 내에서 실행되고 따라서 각각의 탐지된 이벤트의 시맨틱(semantic)을 결정하는데 게스트 OS(34)의 기능 및 메커니즘을 사용할 수 있기 때문이다. 그러나 게스트 VM(32) 내에서 실행됨으로써 핸들러(46b)는 핸들러(46a) 보다 악성 소프트웨어에 더 취약할 수 있다.
보안 이벤트를 분석하기 위해 단지 라이브 인트로스펙션 엔진(40)에만 의존하거나 또는 보호되는 VM 내에서 실행되는 소프트웨어에 의존하는 대신, 본 발명의 일부 실시예들은 둘째로, 온디맨드형 인트로스펙션 엔진(on-demand introspection engine)(42)을 추가적으로 전개한다. 라이브 인트로스펙션 엔진(40)은 모니터링되는 게스트 VM 내 다양한 이벤트들의 발생을 탐지할 수 있으나, 그러한 이벤트들의 정교한 포렌식 분석은 수행하지 않을 수도 있는데, 이는 그러한 분석이 너무 많은 컴퓨팅 비용을 소요하고 사용자 경험에 부정적인 영향을 미치기 때문이다. 대신에, 온디맨드형 인트로스펙션 엔진(42)은 각각의 포렌식 분석을 수행하도록 호출(invoke)될 수 있지만, 그러한 포렌식 분석은 라이브 인트로스펙션 엔진(40)에 의해 탐지된 이벤트의 서브세트에 대해서만 선택적으로 트리거될 수 있다. 일부 실시예들에서, 이벤트의 포렌식 분석을 수행하도록 하는 판정은 보안 서버(14)에 의해 취해지고, 각각의 클라이언트 시스템(12)으로 통신된다.
일부 실시예들에서, 라이브 인트로스펙션 엔진(40) 및 온디맨드형 인트로스펙션 엔진(42)은, 예를 들어 하이퍼바이저(30)를 통해 수행되는 시그널링 및 메모리의 공유 섹션을 통해, 서로 통신할 수 있다. 예를 들어서, 포렌식 활동을 수행하는 동안, 온디맨드형 인트로스펙션 엔진(42)은 라이브 인트로스펙션 엔진(40)의 현재 상태를 판독하고 사용할 수 있다. 차례로, 라이브 인트로스펙션 엔진은 온디맨드형 인트로스펙션 엔진으로부터, 예를 들어 포렌식 활동이 현재 수행되고 있음을 알리는 시그널로, 통지를 수신할 수 있다.
도 4는 본 발명의 일부 실시예에 따른, 클라이언트 시스템(12) 상에 컴퓨터 보안을 설정(set up)하기 위해 수행되는 예시적 단계들의 시퀀스를 보여준다. 컴퓨터 보안 위협에 대해 기업 네트워크를 보호하는 전형적인 시나리오에서, 네트워크 관리자는 보호가 필요한 각각의 클라이언트 시스템들(12a-d) 상에 보안 어플리케이션을 설치할 수 있다. 상기 보안 어플리케이션은 하이퍼바이저(30), 인트로스펙션 엔진들(40-42), 이벤트 핸들러들(46a-b) 등과 같은 다양한 구성 요소를 포함할 수 있다. 도시된 단계들의 시퀀스는, 예를 들면 각각의 보안 어플리케이션의 설치자 유틸리티에 의해 수행될 수 있다. 하드웨어 가상화 환경이 없는 경우에 설치되면, 보안 소프트웨어는 먼저 강한 프로세서 권한 레벨(예를 들어, 루트 모드, 링 -1)에서 프로세서(16)를 인수하고, 하이퍼바이저(30)를 설치할 수 있다. 하이퍼바이저(30)는 그러고 나서 게스트 VM(32)를 노출시키고, 각각의 클라이언트 시스템 상에서 이전에 실행 중인 모든 소프트웨어를 게스트 VM(32) 내에서 실행하도록 이동시킬 수 있다. 하이퍼바이저(30)는 추가로 보안 VM(33)을 설정하고, VM들(32-33) 사이에서 각각의 클라이언트 시스템의 하드웨어를 공유하는 방법을 구성할 수 있다. 그리고 설치기는 보안 VM(33) 내에서 실행되는 소프트웨어 뿐만 아니라 라이브 인트로스펙션 엔진(40)을 설치하고 개시(launch)할 수 있다.
일부 실시예들에서, 하이퍼바이저(30) 및/또는 보안 VM(33)은 보안 VM(33)이 신뢰할 수 있는 소프트웨어를 실행하는 것이 확실하도록 하기 위해 보안 부트 메커니즘(secure boot mechanism) 또는 본 기술분야에 알려져 있는 다른 형태의 인증(authentication)을 사용하여 개시될 수 있다. 보안 VM(33)을 설정하는 것(단계 204) 및/또는 보안 VM(33) 내에서 실행되는 다른 소프트웨어를 설정하는 것은 보안 서버(14)와의, 또는 다른 인증 엔터티와의 인증 교환(예를 들어, 해쉬 확인)을 포함할 수 있다. 예시적인 일 실시예에서, 상기 보안 부트는 Intel® 플랫폼의 신뢰 플랫폼 모듈(Tusted Platform Module, TPM)과 같은 클라이언트 시스템(12)의 보안 저장 하드웨어 구성 요소를 사용할 수 있고, 또 Intel®의 신뢰 실행 기술(Trusted Execution Technology, TXT)과 같은 무결성 보증 메커니즘(integrity attestation mechanism)을 사용할 수 있다.
일부 실시예들에서, 단계(206)는 보안 서버(14)로부터 보안 VM(33)으로 원격 관리 접근을 설정한다. 이러한 접근은 보안 서버(14)로 하여금(자동으로 또는 인간 작업자의 도움으로), 예를 들어 온디맨드형 인트로스펙션 엔진(42)이 특정한 종류의 포렌식 분석을 수행하도록 지시하거나, 또는 특정 시퀀스의 클린업 단계를 수행하도록 지시하기 위해 보호되는 클라이언트 시스템에 직접적으로 명령 및 지시를 전송하도록 할 수 있다. 원격 관리 접근을 설정하는 것은, 예를 들면, 보안 쉘(secure shell, SSH) 또는 가상 사설 네트워크(virtual private network, VPN) 프로토콜을 통해 서버(14)와 보안 VM(33) 사이에 터널(즉, 점대점 보안 통신 채널)을 설정하는 것을 포함할 수 있다. 도 5는 그러한 예시적 교환을 보여준다. 터널 요청(48)은 클라이언트 시스템(12) 또는 서버(14)에 의해 발행될 수 있다. 요청(48)은 교환 프로토콜의 표시자 및 암호화 키의 세트를 포함할 수 있다. 응답으로, 통신 상대는 그들 사이에서 네트워크 패킷을 라우팅하고 암호화하는 특정 방식을 포함하는 보안 터널(49)을 설정한다. 일부 실시예들에서, 하이퍼바이저(30)는 보안 서버(14)로부터 수신된 네트워크 패킷을 보안 VM(33)으로 직접 라우팅한다.
도 6은 본 발명의 일부 실시예에 따른, 보안 서버(14)와 보호되는 클라이언트 시스템 사이의 예시적인 데이터 교환을 보여준다. 클라이언트 시스템(12)은 게스트 VM(32) 내의 소프트웨어의 실행 중에 이벤트가 발생했다는 것을 서버(14)에 알리기 위해 이벤트 표시자(50)를 보낼 수 있다. 이벤트 표시자(50)는 각각의 이벤트의 이벤트 유형의 표시자, 이벤트의 타임 스탬프(timestamp), 각각의 클라이언트 시스템(12) 및/또는 게스트 VM(32)의 식별자(클라이언트 ID)를 포함할 수 있다.
응답으로, 서버(14)는 분석 요청(52)을 클라이언트 시스템(12)에 보낼 수 있으며, 요청(52)은 온디맨드형 인트로스펙션 엔진(42)로 하여금 클라이언트 시스템(12) 상에서 특정 포렌식 활동을 수행하도록 지시할 수 있다. 분석 요청(52)은 데이터 수집/이벤트 분석을 수행하기 위해 엔진(42)에 의해 사용될 포렌식 툴의 표시자, 및/또는 또 다른 종류의 보안 리소스의 표시자를 포함할 수 있다. 일부 실시예들에서, 분석 요청(52)은 다른 클라이언트 시스템으로부터 이벤트 표시자를 수신하는 것에 응답으로 클라이언트 시스템으로 보내질 수 있다.
일부 실시예들에서, 요청된 포렌식 활동을 수행하는 것에 응답으로, 온디맨드형 인트로스펙션 엔진(42)은 포렌식 리포트(54)를 서버(14)에 전송하며, 리포트(54)는 각각의 포렌식 활동을 수행한 결과를 포함한다. 리포트(54)는 예를 들어 소프트웨어 객체의 리스트, 메모리 주소의 리스트, 보안 또는 하드웨어 설정의 리스트 등을 포함할 수 있다.
포렌식 리포트(54)를 수신하는 것에 응답으로, 서버(14)는 각각의 클라이언트 시스템/게스트 VM이 특정 종류의 컴퓨터 보안 위협에 취약한지, 예를 들어 각각의 클라이언트 시스템/게스트 VM이 악성 소프트웨어에 감염되었는지 여부를 결정할 수 있다. 맞다면, 서버(14)는 보안 경고(56)를 각각의 클라이언트 시스템(12)에 전송할 수 있다. 서버(14)의 일부 실시예는, 예를 들어 네트워크 필터(44)를 구성하기 위한 파라미터 값의 세트 또는 클린업 툴의 표시자를 포함하는, 완화 표시자(mitigation indicator)(58)를 추가로 전송한다.
도 7은 본 발명의 일부 실시예에 따른, 라이브 인트로스펙션 엔진(40)에 의해 수행되는 예시적 단계들의 시퀀스를 보여준다. 엔진(40)은 적어도 2 종류의 메세지/통지에 주목(listen for)하도록 구성될 수 있다: 게스트 VM(32) 내 이벤트의 발생에 관한 이벤트 핸들러들(46a-b)로부터의 통지, 및 보안 VM(33)으로부터의 통지(예를 들어, 온디맨드형 인트로스펙션 엔진(42)으로부터 엔진(40)으로, 포렌식 활동이 현재 일어나고 있다는 신호를 보내는 것). 이벤트 통지를 수신할 때, 단계(226)에서, 엔진(40)은 그러한 이벤트 통지의 예비 분석을 수행할 수 있다. 일부 실시예들에서, 이러한 예비 분석은 사용자 경험에 대한 영향을 가능한 한 낮게 유지하기 위해 최소의 컴퓨팅 비용을 수반한다. 예를 들어서, 단계(226)는 비교적 단순한 룰 세트를 사용하여 이벤트 통지를 필터링 할 수 있다. 특정 종류의 이벤트만이 보안 서버(14)에 보고될 수 있다(단계 228-230). 예시적인 일 실시예에서, 보안 서버(14)에 통신되는 이벤트는, 특히 OS 커널을 후킹하거나 또는 패치하려는 시도, 알려지지 않은 모듈의 삽입, 및 특정 메모리 영역으로부터 코드를 실행하려는 시도를 포함한다. 탐지된 이벤트가 보고할 만한 이벤트의 카테고리에 속하지 않는 경우, 엔진(40)의 일부 실시예들은 각각의 이벤트를 모방하고, 이어서 게스트 VM(32)의 실행을 재개한다.
탐지된 이벤트가 보안 VM(33)으로부터의 통지를 포함하는 경우(단계 232), 일부 실시예들은, 예를 들면 클라이언트 시스템(12)이 진행 중인 포렌식 또는 위협 완화 활동으로 인해 일시적 감속을 경험할 수 있음을 사용자에게 알릴 수 있도록, 클라이언트 시스템(12)의 출력 장치 상에 경고 메세지를 디스플레이할 수 있다. 추가의 단계(236)에서, 라이브 인트로스펙션 엔진(40)의 일부 실시예들은 포렌식/완화 활동을 수행하기 위해 온디맨드형 인트로스펙션 엔진(42)과 협동하고 온디맨드형 인트로스펙션 엔진(42)을 보조할 수 있다. 그러한 협동의 예는 온디맨드형 인트로스펙션 엔진(42)이 라이브 인트로스펙션 엔진(40)의 현재 상태의 정보를 얻는 것(interrogate)을 포함한다.
도 8은 본 발명의 일부 실시예에 따른, 온디맨드형 인트로스펙션 엔진(42)에 의해 수행되는 예시적 단계들의 시퀀스를 보여준다. 단계들(250-252)의 시퀀스에서, 엔진(42)은 서버(14)로부터, 예를 들면 서버(14)와 보안 VM(33) 사이에 수립된 보안 터널(49)을 통해, 분석 요청에 주목할 수 있다(도 5 참조). 일부 실시예들에서, 하이퍼바이저(30)는 분석 요청(52)을 수신하는 것에 응답으로 게스트 VM(32)을 실행하는 것에서 보안 VM(33) 및 온디맨드형 인트로스펙션 엔진(42)을 실행하는 것으로 자동으로 전환할 수 있다.
요청(52)은 포렌식 활동에서 사용할 툴 및/또는 보안 리소스들의 세트를 나타낼 수 있다. 예를 들어, 분석 요청(52)은 툴 저장소(15)로부터 각각의 툴을 선택적으로 검색할 수 있게 하는 위치 표시자(예컨대, 메모리 주소, 네트워크 경로)를 포함할 수 있다. 단계(256)에서, 엔진(42)은 통신 네트워크(11)를 통해 그러한 툴/리소스에 접근할 수 있다. 툴/리소스에 액세스(access, 접근)하는 것은 툴 저장소(15)로부터 클라이언트 시스템(12)의 로컬 저장 장치(24)로 각각의 툴/리소스를 다운로드하는 것을 포함할 수 있다(도 2a). 바람직한 실시예에서, 툴/리소스에 액세스하는 것은 온디맨드형 엔진(42)이 각각의 툴/리소스를 이들의 원격 위치로부터 마운팅하는 것을 포함한다. 본 명세서에서 마운팅(mounting)은 보안 VM(33)의 로컬 파일 시스템과 원격 리소스(툴 저장소(15)에 의해 호스팅됨) 사이에 연결을 생성하여 보안 VM(33)이 상기 로컬 파일 시스템을 통해 각각의 리소스에 액세스할 수 있게 하는 것을 나타낸다. 예를 들어, Linux® 파일 시스템에서, 마운팅은 "마운트(mount)" 명령을 통해 이루어지고, 상기 연결은 마운트 지점을 포함한다.
일부 실시예들에서, 서버(14)는 각각의 툴/리소스에 액세스 및/또는 마운트하기 위해 터널(49)을 통해 엔진(42)에 명시적으로 지시할 수 있다. 툴/리소스에 액세스하는 것에 응답으로, 단계들(258-260-262)의 시퀀스에서, 엔진(42)은 요청된 포렌식 활동을 수행하고, 포렌식 리포트(54)를 서버(14)에 보내고, 각각의 툴/리소스를 언마운트(unmount)하거나 그렇지 않으면 폐기할 수 있다. 포렌식 분석의 끝에서 툴/리소스를 폐기하는 것은, 포렌식 분석의 특징적 세션들 사이에서 악성 소프트웨어의 전파를 방지하고, 클라이언트 시스템들(12a-c)이 툴 저장소(15)에서 항상 각 리소스의 최신 버전을 사용할 수 있도록 확실시한다는 점에서 유익할 수 있다.
도 9는 본 발명의 일부 실시예에 따른, 보안 서버(14)에 의해 수행되는 예시적 단계들의 시퀀스를 보여준다. 서버(14)는 클라이언트 시스템들(12a-d)로부터 수신된 통신에 주목하도록 구성될 수 있다(단계들 280-282). 이러한 통신이 이벤트 표시자(즉, 보호되는 클라이언트 시스템 상에서 이벤트가 발생했다는 통지)를 포함하는 경우, 일부 실시예들은 각각의 이벤트를 로그(log, 기록)하고(단계 286), 이벤트 표시자(50)에 따라 포렌식 분석을 요청할지 말지 여부와, 요청할 분석의 종류를 결정한다. 이러한 일 실시예에서, 이벤트 표시자(50)가 코드 삽입(code injection)이 발생했다는 것을 나타내면, 서버(14)는 "어플리케이션 스냅샷" 및/또는 Volatility® 메모리 포렌식 툴을 사용하여 분석을 요청할 수 있다. 일부 실시예들에서, 특정 유형의 이벤트는 다수의 툴 및 리소스를 사용하여 복잡한 분석에 대한 요청을 발생시킨다.
결정은 현재 통지에 의해 표시된 이벤트 유형에 따라 및/또는 각각의 클라이언트 시스템/게스트 VM에 대해 현재 유효한 보안 정책에 따라 취해질 수 있다. 따라서 결정 프로세스는 이벤트 히스토리 및/또는 클라이언트 특정 정책에 대해 클라이언트 데이터베이스(17)를 쿼리(query, 질의)하는 것을 포함할 수 있다(단계 290). 다른 결정 기준은 각각의 클라이언트 시스템의 하드웨어 구성(예를 들면, 클라이언트 시스템(12)이 특정 종류의 프로세서, 네트워크 어댑터 등과 같은 특정 하드웨어 구성 요소를 가지고 있는지 여부)을 포함할 수 있다. 다른 기준은 게스트 VM(32) 내에서 실행되는 운영 시스템의 유형 및 어플리케이션(36)의 유형(웹서버, 데이터베이스 프로세싱 등)과 같은 소프트웨어적 측면을 포함할 수 있다. 이러한 결정 전략은 어떤 소프트웨어가 특정 컴퓨터 보안 위협에 취약하다는 지식에 의존한다. 결정 프로세스는 휴리스틱 규칙의 세트, 결정 트리(decision tree), 또는 본 기술분야에 알려져 있는 임의의 다른 수단을 사용할 수 있다. 예시적인 일 실시예는 이벤트 유형 및 다양한 정책 특징값과 같은 데이터를 입력(input)으로 수신하고, 포렌식 분석을 요청할지 말지 여부를 나타내는 결정 표시자(예를 들어, 예/아니오)를 출력하는 인공신경망(artificial neural network)을 사용할 수 있다.
일부 실시예들에서, 포렌식 분석을 요청할지 말지 여부 및/또는 요청할 분석의 유형에 관한 결정은 동일한 클라이언트 시스템 상에서 발생하는 이벤트의 히스토리를 더 고려할 수 있다. 그러한 실시예들은 시간상 특정 순간에 발생하는 상호연관된 이벤트를 허용하고, 이와 같이 다수의 소프트웨어 엔터티에 걸쳐 악성 페이로드(malicious payload)를 배포하는 정교한 멀웨어(예를 들어, 어떤 동작은 제1 엔터티에 의해 수행되고 다른 동작은 상기 제1 엔터티의 자식 엔터티에 의해 수행되거나 또는 상기 제1 엔터티에 의해 삽입된 코드를 포함하는 제2 엔터티에 의해 수행됨)를 탐지 할 수 있게 한다.
일부 실시예들에서, 상기 결정 프로세스는 이벤트 통지(50)의 발신자(sender)와는 구별되는 클라이언트 시스템 상에서 발생하는 이벤트의 히스토리를 고려할 수 있다. 이러한 일 실시예에서, 서버(14)는 특정 유형의 이벤트가 다른 클라이언트 시스템 상에서 최근에 발생하였는지 여부에 관한 정보에 대한 이벤트 로그를 쿼리(질의)할 수 있다. 그러한 활동이 폭발적으로 일어난 것은(burst, 버스트), 클라이언트 시스템들 간에 퍼지는 멀웨어의 파장(제로 데이 위협(zero-day threat)) 또는 다수의 클라이언트 시스템에 의해 수행되는 합동 공격(coordinated attack)의 신호일 수 있다.
통지된 이벤트가 포렌식 분석을 보장할 때(단계 292), 단계(294)는 요구된 포렌식 분석을 수행하기 위해서 각각의 클라이언트 시스템에 의해 사용될 리소스 및/또는 포렌식 툴을 선택한다. 선택은 규칙들의 세트, 결정 트리 등에 따라 행해질 수 있다. 일 실시예에서, 코드 삽입이 발생했다는 통지를 수신하는 것에 응답으로, 서버(14)는 "어플리케이션 스냅샷" 툴을 사용하여 분석을 요청할 수 있다. 일부 실시예들에서, 특정 유형의 이벤트는 다수의 툴 및 리소스를 사용하여 복잡한 분석에 대한 요청을 발생시킨다.
클라이언트 시스템(12)으로부터 수신된 통신이 포렌식 리포트(54)를 포함하는 경우(단계 298), 서버(14)는 각각의 리포트를 분석하고(단계 300), 동일하거나 또는 다른 클라이언트 시스템으로부터의 다른 리포트로 리포트(54)를 가능한 한 확증하고, 클라이언트 시스템들(12a-c) 중 어느 것이 컴퓨터 보안 위협에 취약한지(예를 들어, 악성 엔터티에 의한 공격을 받을 가능성이 있는지) 여부를 결정할 수 있다. "예"인 경우, 서버(14)는 관리자에게 경고를 보내거나 그리고/또는 영향을 받는 클라이언트 시스템에 보안 경고(56)를 보낼 수 있다. 추가의 단계(306)에서, 서버(14)는 예를 들면 보안 터널(49)을 통해 각각의 클라이언트 시스템에 완화 표시자(58)를 보낼 수 있다. 완화 표시자(58)는 명령, 지시, 및/또는 클린업 툴의 세트의 표시자를 포함할 수 있다.
전술한 예시적인 실시예들에서(도 7, 도 8, 및 도 9), 포렌식 분석을 요청할지 여부 및/또는 요청할 분석의 유형에 관한 결정은 보안 서버(14)에 의해 취해진다. 선택적인 실시예에서, 온디맨드형 인트로스펙션 엔진(42)은 라이브 인트로스펙션 엔진(40)으로부터 분석 요청(52) 및 이벤트 표시자(50)를 직접 수신한다(예를 들어서, 하이퍼바이저(30)에 의해 관리되는 프로세스간 통신 메커니즘을 통해). 그리고 온디맨드형 인트로스펙션 엔진(42)은 이벤트 표시자(50) 및/또는 전술한 바와 같은 다른 기준에 따라서 사용할 포렌식 툴/리소스의 세트를 선택할 수 있다. 따라서, 그러한 실시예들에서 각각의 리소스에 액세스(예를 들면, 마운트)하기 위한 결정은 보호되는 클라이언트 시스템에서 취해진다.
본 발명의 일부 실시예들은 클라이언트 시스템(12)과 보안 서버(14) 사이 또는 클라이언트 시스템(12)과 통신 네트워크(11)에 연결된 다른 엔터티들 사이의 통신을 조절하기 위해 네트워크 필터(44)를 사용함으로써 컴퓨터 보안을 더욱 강화시킨다. 일 예에서, 보안 VM(33)은 클라이언트 시스템(12)의 네트워크 어댑터(들)(26)의 독점적인 사용권을 가지도록 구성될 수 있다. 하이퍼바이저(30)는 그러고 나서 보안 VM(33)의 네트워크 필터(44)를 통해 게스트 VM(32)으로/으로부터의 모든 통신을 라우팅할 수 있다. 일부 실시예들에서, 서버(14)가 클라이언트 시스템(12)이 악성 엔터티에 의한 공격에 취약하거나 공격을 받을 것 같다고 결정할 때, 서버(14)는 네트워크 필터(44)로 하여금 게스트 VM(32)으로/으로부터의 모든 통신을 차단하도록 지시하여, 게스트 VM(32)이 로컬 네트워크를 통해 다른 클라이언트 시스템과 연결하는 것을 막거나 또는 게스트 VM(32)이 인터넷에 액세스하는 것을 방지할 수 있다. 선택적인 실시예에서, 네트워크 필터(44)는 온디맨드형 인트로스펙션 엔진(42)이 포렌식 활동을 수행하는 동안 게스트 VM(32)과 또 다른 엔터티 사이의 통신을 차단하거나 그렇지 않으면 조절할 수 있다.
본 발명의 일부 실시예들은 멀웨어, 스파이웨어, 애드웨어 및 인가받지 않은 침입과 같은 컴퓨터 보안 위협에 대해서 비교적 많은 수의 클라이언트 시스템들(예를 들어, 기업 네트워크)을 보호하는 것을 가능하게 한다. 일부 실시예들은 또한 중앙 지점으로부터, 예를 들어서 보호되는 클라이언트 시스템과 통신가능하게 연결된 보안 서버로부터, 쉽고 신뢰할 수 있는 보안 관리를 가능하게 한다. 이러한 집중화(centralization)는 수백의 가상 머신이 단일 하드웨어 플랫폼에서 동시에 작동할 수 있는, 웹서버 팜(webserver farming) 및 가상 데스크탑 인프라스트럭쳐 관리와 같은 클라우드 컴퓨팅 어플리케이션에 특히 유리할 수 있다.
일부 실시예들에서, 각각의 보호되는 클라이언트는 라이브 인트로스펙션 엔진과 온디맨드형 인트로스펙션 엔진을 작동시킨다. 상기 라이브 인트로스펙션 엔진은 각각의 클라이언트 시스템 상에 노출된 보호되는 가상 머신 내에서 특정 이벤트의 발생을 탐지하고 원격 보안 서버에 상기 발생을 통신한다. 그 결과, 상기 서버는 보고된 이벤트의 이벤트 유형에 따라서, 그리고/또는 각각의 클라이언트의 하드웨어 및/또는 소프트웨어 특징(particularity)에 따라서 툴 저장소로부터 포렌식 툴을 선택할 수 있다. 상기 온디맨드형 인트로스펙션 엔진은 포렌식 툴을 검색하고 이를 실행하여 상기 이벤트의 포렌식 분석을 수행할 수 있다(예를 들어, 각각의 이벤트의 콘텍스트(context)를 알아내기 위해). 그러고 나서 상기 포렌식 분석의 결과는 보안 서버로 통신 될 수 있고, 보안 서버는 정보를 이용하여 각각의 클라이언트가 악성 소프트웨어 또는 침입자(intruder)에 의해 공격을 받고 있는지 여부를 결정할 수 있다.
본 발명의 일부 실시예들은 많은 수의 클라이언트를 보호하기 위한 전형적인 컴퓨터 보안 솔루션이 공격에 잘 반응하지 않는다는 통찰에 의존한다. 기존의 솔루션이 공격을 탐지할 수 있는 경우에도, 분석 및 리미디에이션은 특히 랜섬웨어 및 악성 침입과 같은 정교한 위협의 경우, 영향을 받은 클라이언트 시스템에 인간 작업자가 파견될 것을 필요로 할 수 있다. 대조적으로 본 발명의 일부 실시예들에서, 커스터마이징된 데이터 수집/사실 발견(포렌식 분석) 및 위협 완화(예를 들어, 멀웨어 클린업)는 보안 서버의 직접적인 지시 하에, 클라이언트 머신 상에서 자동으로 수행된다. 본 발명의 예시적인 일 실시예는 보호되는 클라이언트와 보안 서버 사이에 보안 점대점 통신 채널을 수립하여, 인간 작업자로 하여금 원격으로 각각의 클라이언트를 구성할 수 있게 하고 원격 터미널로부터 각각의 클라이언트 상에서 포렌식/클린업 작업까지도 수행할 수 있게 한다.
다수의 클라이언트들로부터 이벤트 탐지 및 포렌식 분석 결과를 종합함으로써, 일부 실시예들은 이전에 알려지지 않은 멀웨어(본 기술분야에서 제로 데이 공격(zero-day attack)으로도 알려져 있음)의 신속한 탐지를 가능하게 한다. 종래의 서버 측 위협 탐지는 실질적인 서버 측 컴퓨팅 파워(computing power)를 요구한다. 전형적인 클라이언트-서버 탐지 시나리오와는 대조적으로, 본 발명의 일부 실시예들에서는 이벤트 필터링 및 포렌식 분석과 같이 일부 비용이 높은 보안 관련 동작이 클라이언트 시스템 자체에 의해 수행된다. 따라서 일부 실시예들은 다수의 클라이언트 머신의 분산된 컴퓨팅 파워를 사용하여, 대부분의 컴퓨팅 부담(computational burden)을 보안 서버로 오프로딩(offloading)하는 대신에 일부 비용이 높은 위협 탐지 및 분석 작업을 수행한다.
본 발명의 일부 실시예들은 컴퓨터 시스템에서 발생하는 모든 이벤트들이 본질적으로 유익하거나 컴퓨터 보안 위협을 나타내는 것은 아니라는 관찰에도 또한 의존한다. 동일 유형의 이벤트(예를 들어, URL 액세스, 디스크 파일 열기 등)는 일부 시나리오에서는 악성을 나타낼 수 있는 반면 다른 시나리오에서는 완전히 양성(benign)일 수 있다. 그러한 일 예에서, 이벤트가 별개로 취해질 때는 악성을 나타내지 않을 수 있지만, 이벤트들의 특정 시퀀스의 일부로서 발생할 때에는 멀웨어를 나타내는 것일 수 있다. 예를 들어서, 디스크 파일에 쓰기는 별개로 취해질 때는 양성 작업(operation)일 수 있다(즉, 많은 프로세스들 및 어플리케이션들이 합법적으로 디스크에 접근함). 그러나, 쓰기를 수행하는 엔터티가 다른 엔터티로부터 삽입된 코드의 수신자인 경우에는, 상기 쓰기 이벤트는 의심스러울 수 있다. 본 발명의 일부 실시예들에서, 상기 라이브 인트로스펙션 엔진은 다양한 기준에 따라서 탐지된 이벤트를 사전 필터링(pre-filter)하고, 그러한 이벤트들의 선택된 서브세트만을 보안 서버에 보고한다. 이러한 전략은 서버에 가해지는 컴퓨팅 부담을 더 감소시킨다.
종래의 컴퓨터 보안 어플리케이션에서, 클라이언트 측 보안 툴(예를 들어, 안티 멀웨어 루틴, 서명 데이터베이스 등)은 클라이언트 컴퓨터 시스템 상에 위치하며, 주기적인 소프트웨어 업데이트에 의해 최신으로 유지된다. 대조적으로, 본 발명의 일부 실시예들에서, 보안 툴은 중앙 집중식 저장소(centralized repository)(예를 들어, 기업 네트워크상의 전용 서버)에 보관된다. 클라이언트 시스템은 보안 서버에 의해 지시될 때, 요청에 따라, 필요한 툴만을 검색할 수 있고, 이에 따라 부피가 큰 소프트웨어 업데이트와 시간 소비적 네트워크 관리가 필요하지 않다. 바람직한 실시예에서, 클라이언트 시스템은 원격 중앙집중식 툴 저장소(remote centralized tool repository)를 클라이언트의 파일 시스템에 설치(mounting)함으로써 보안 툴에 원격으로 액세스한다.
보호되는 클라이언트 또는 보안 서버와 대조적으로, 보안 툴의 대부분을 중앙 저장소에 보관하는 것은, 클라이언트가 각각의 보안 툴의 최신 버전에 액세스할 수 있게 한다. 이러한 구성의 또 다른 중요한 이점은 클라이언트 측 및 서버 측 소프트웨어가 종래의 보안 시스템 보다 실질적으로 작아지게 할 수 있다는 것이다. 이러한 경량 구성 요소(예를 들어, 하이퍼바이저(30), 라이브 및 온디맨드형 인트로스펙션 엔진들(40-42))은 클라이언트를 개발, 유지 및 전개하는 것이 더 쉽다. 또한 이들은 포렌식 및/또는 위협 완화 툴을 포함하는 올인원 보안 솔루션 보다도 적은 업데이트를 요구한다. 또한, 경량 구성 요소는 악성 소프트웨어 및 해커에게 상대적으로 적은 공격 표면을 노출한다.
상기의 실시예들이 본 발명의 범위를 벗어나지 않는다면 다양한 방법으로 변경될 수 있음은 통상의 기술자에게 당연한 것이다. 따라서 본 발명의 범위는 이하의 청구항과 그들의 법적 균등물에 의해서 결정되어야 한다.

Claims (40)

  1. 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형(on-demand) 인트로스펙션 엔진을 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함하는 클라이언트 컴퓨터 시스템으로서,
    상기 하이퍼바이저는:
    게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되고;
    상기 라이브 인트로스펙션 엔진은:
    상기 게스트 VM 및 보안 VM 외부에서 상기 하이퍼바이저의 프로세서 권한 레벨에서 실행되고;
    상기 클라이언트 컴퓨터 시스템의 메모리의 섹션을 위하여 정의된 접근 허가 위반을 탐지하되, 이 때 상기 섹션은 상기 게스트 VM에 의하여 사용되고;
    응답으로, 상기 위반에 따라서 상기 게스트 VM 내에서 이벤트의 발생을 추론하고, 통신 네트워크 상에서 상기 이벤트의 표시자를 원격 서버 컴퓨터 시스템으로 전송하도록 구성되고; 그리고
    상기 온디맨드형 인트로스펙션 엔진은:
    - 상기 보안 VM 내에서 실행되고;
    - 상기 라이브 인트로스펙션 엔진이 상기 이벤트의 상기 표시자를 상기 원격 서버 컴퓨터 시스템으로 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 분석 요청을 수신하고, 상기 분석 요청은 상기 클라이언트 컴퓨터 시스템을 포함하는 복수의 클라이언트들에 보안 툴을 배포하도록 구성된 원격 툴 저장소(repository, 리포지토리)에 위치하는 보안 툴을 나타내고, 상기 보안 툴은 멀웨어를 나타내는 데이터를 수집하도록 구성되고, 상기 보안 툴은 상기 이벤트의 이벤트 유형에 따라 상기 원격 서버 컴퓨터 시스템에 의해 선택되고,
    - 상기 분석 요청을 수신하는 것에 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하고, 상기 보안 툴은 상기 분석 요청에 따라서 식별되고, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크 상에서 상기 툴 저장소에 연결되는 것을 포함하고,
    - 상기 보안 툴을 선택적으로 검색하는 것에 응답으로, 상기 보안 툴을 실행하되, 상기 보안 툴을 실행하는 것은 상기 클라이언트 컴퓨터 시스템의 상기 메모리의 다른 섹션을 식별하는 것(상기 다른 섹션은 상기 게스트 VM에 의하여 사용됨)과 상기 다른 섹션의 콘텐트에 따라서 상기 멀웨어를 나타내는 데이터를 결정하는 것을 포함하고,
    - 상기 보안 툴을 실행하는 것에 응답으로, 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하고,
    - 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 상기 원격 툴 저장소에 위치하고 있는 완화 툴(mitigation tool)의 표시자를 수신하고, 상기 완화 툴은 상기 클라이언트 컴퓨터 시스템 상에서 실행되는 악성 소프트웨어를 불능화하도록 구성된 소프트웨어를 포함하고; 그리고
    - 상기 완화 툴의 표시자를 수신하는 것에 응답으로, 상기 완화 툴을 검색하고 실행하도록 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 라이브 인트로스펙션 엔진은:
    상기 위반을 탐지하는 것에 응답으로, 상기 위반에 따라서 상기 이벤트의 이벤트 유형을 결정하고,
    상기 이벤트 유형에 따라서 이벤트 적격 조건이 만족되는지 여부를 결정하고; 그리고
    응답으로, 상기 이벤트 적격 조건이 만족될 때에만 상기 원격 서버 컴퓨터 시스템에 상기 이벤트의 상기 표시자를 전송하도록 추가적으로 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 원격 툴 저장소로부터 상기 보안 툴을 검색하는 것은 상기 원격 툴 저장소를 상기 보안 VM의 파일 시스템에 마운트(mounting)하는 것을 포함하는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  7. 제1항에 있어서,
    상기 보안 VM은 네트워크 필터를 추가로 포함하고, 상기 하이퍼바이저는 상기 네트워크 필터를 통해 상기 게스트 VM과 원격 파티(remote party) 사이에서 네트워크 트래픽을 라우팅하도록 추가적으로 구성되며, 상기 네트워크 필터는 상기 원격 서버 컴퓨터 시스템으로부터 보안 경고를 수신하는 것에 응답으로, 상기 게스트 VM과 상기 원격 파티 사이에서 네트워크 트래픽을 제한하도록 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  8. 삭제
  9. 제1항에 있어서,
    상기 멀웨어를 나타내는 데이터는, 상기 게스트 VM 내에서 실행되는 어플리케이션의 메모리 스냅샷 또는 상기 게스트 VM의 운영 시스템의 커널의 메모리 스냅샷을 포함하는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  10. 제1항에 있어서,
    상기 멀웨어를 나타내는 데이터는 상기 게스트 VM 내에서 실행되는 소프트웨어 엔터티들의 리스트를 포함하는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  11. 제1항에 있어서,
    상기 멀웨어를 나타내는 데이터는 상기 클라이언트 컴퓨터 시스템의 하드웨어 구성의 표시자를 포함하는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  12. 제1항에 있어서,
    상기 하이퍼바이저는 상기 원격 서버 컴퓨터 시스템과 상기 보안 VM 사이에 보안 점대점 통신 채널(secure point-to-point communication channel)을 설정하도록 구성되고; 그리고
    상기 온디맨드형 인트로스펙션 엔진은 상기 분석 요청을 수신하고, 상기 멀웨어를 나타내는 데이터를 상기 보안 점대점 통신 채널을 통해 전송하도록 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 클라이언트 컴퓨터 시스템의 하드웨어 프로세서 상에서 실행될 때, 상기 클라이언트 컴퓨터 시스템으로 하여금 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형 인트로스펙션 엔진을 형성하도록 유발하는 명령들의 세트를 포함하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)로서,
    상기 하이퍼바이저는:
    게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되고;
    상기 라이브 인트로스펙션 엔진은:
    상기 게스트 VM 및 보안 VM 외부에서 상기 하이퍼바이저의 프로세서 권한 레벨에서 실행되고;
    상기 클라이언트 컴퓨터 시스템의 메모리의 섹션을 위하여 정의된 접근 허가 위반을 탐지하되, 이 때 상기 섹션은 상기 게스트 VM에 의하여 사용되고;
    응답으로, 상기 위반에 따라서 상기 게스트 VM 내에서 이벤트의 발생을 추론하고, 통신 네트워크 상에서 상기 이벤트의 표시자를 원격 서버 컴퓨터 시스템으로 전송하도록 구성되고; 그리고
    상기 온디맨드형 인트로스펙션 엔진은:
    - 상기 보안 VM 내에서 실행되고;
    - 상기 라이브 인트로스펙션 엔진이 상기 이벤트의 상기 표시자를 상기 원격 서버 컴퓨터 시스템으로 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 분석 요청을 수신하고, 상기 분석 요청은 상기 클라이언트 컴퓨터 시스템을 포함하는 복수의 클라이언트들에 보안 툴을 배포하도록 구성된 원격 툴 저장소(repository, 리포지토리)에 위치하는 보안 툴을 나타내고, 상기 보안 툴은 멀웨어를 나타내는 데이터를 수집하도록 구성되고, 상기 보안 툴은 상기 이벤트의 이벤트 유형에 따라 상기 원격 서버 컴퓨터 시스템에 의해 선택되고;
    - 상기 분석 요청을 수신하는 것에 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하고, 상기 보안 툴은 상기 분석 요청에 따라서 식별되고, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크 상에서 상기 툴 저장소에 연결되는 것을 포함하고,
    - 상기 보안 툴을 선택적으로 검색하는 것에 응답으로, 상기 보안 툴을 실행하되, 상기 보안 툴을 실행하는 것은 상기 클라이언트 컴퓨터 시스템의 상기 메모리의 다른 섹션을 식별하는 것(상기 다른 섹션은 상기 게스트 VM에 의하여 사용됨)과 상기 다른 섹션의 콘텐트에 따라서 상기 멀웨어를 나타내는 데이터를 결정하는 것을 포함하고,
    - 상기 보안 툴을 실행하는 것에 응답으로, 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하고,
    - 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 상기 원격 툴 저장소에 위치하고 있는 완화 툴(mitigation tool)의 표시자를 수신하고, 상기 완화 툴은 상기 클라이언트 컴퓨터 시스템 상에서 실행되는 악성 소프트웨어를 불능화하도록 구성된 소프트웨어를 포함하고; 그리고
    - 상기 완화 툴의 표시자를 수신하는 것에 응답으로, 상기 완화 툴을 검색하고 실행하도록 구성되는 것 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  26. 제1항에 있어서,
    상기 보안 VM은 네트워크 필터를 추가로 포함하고, 상기 하이퍼바이저는 상기 네트워크 필터를 통해 상기 게스트 VM과 원격 파티(remote party) 사이에서 네트워크 트래픽을 라우팅하도록 추가적으로 구성되며, 상기 네트워크 필터는 상기 분석 요청을 수신하는 것에 응답으로, 상기 게스트 VM과 상기 원격 파티 사이에서 네트워크 트래픽을 상기 보안 툴의 실행 기간 동안에 제한하도록 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  27. 제1항에 있어서,
    상기 온디맨드형 인트로스펙션 엔진은,
    상기 보안 툴을 실행하는 것에 응답으로, 상기 클라이언트 컴퓨터 시스템의 메모리로부터 상기 보안 툴을 제거하고,
    상기 보안 툴을 제거하는 것에 응답으로, 상기 서버 컴퓨터 시스템으로부터 다른 분석 요청을 수신하고(상기 다른 분석 요청은 상기 툴 저장소로부터의 다른 보안 툴을 나타냄),
    상기 다른 분석 요청을 수신하는 것에 응답으로, 상기 툴 저장소로부터 상기 다른 보안 툴을 선택적으로 검색하고,
    상기 다른 보안 툴을 검색하는 것에 응답으로, 멀웨어를 나타내는 데이터의 다른 세트를 결정하기 위하여 상기 보안 툴을 실행하며,
    멀웨어를 나타내는 데이터의 상기 다른 세트를 상기 서버 컴퓨터 시스템으로 전송하도록 추가적으로 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  28. 제1항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서는, 상기 분석 요청을 수신하는 것에 응답으로, 상기 클라이언트 컴퓨터 시스템의 출력 장치에 통지를 표시하도록 추가적으로 구성되고, 상기 통지는 상기 게스트 VM의 일시적 감속을 나타내는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  29. 제1항에 있어서,
    상기 이벤트는 코드 삽입, 메모리 할당, 라이브러리 로딩, 프로세스 개시 및 메모리 접근 허가 변화를 포함하는 그룹으로부터 선택되는 항목으로 구성되는 것을 특징으로 하는 클라이언트 컴퓨터 시스템.
  30. 하이퍼바이저, 라이브 인트로스펙션 엔진, 및 온디맨드형(on-demand) 인트로스펙션 엔진을 실행하기 위하여 클라이언트 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 컴퓨터 보안 방법으로서,
    상기 하이퍼바이저는, 게스트 가상 머신(virtual machine, VM) 및 상기 게스트 VM과는 구별되는 보안 VM을 노출시키도록 구성되고;
    상기 라이브 인트로스펙션 엔진은, 상기 게스트 VM 및 보안 VM 외부에서 상기 하이퍼바이저의 프로세서 권한 레벨에서 실행되고;
    상기 온디맨드형 인트로스펙션 엔진은, 상기 보안 VM 내에서 실행되고;
    상기 라이브 인트로스펙션 엔진을 실행시키는 것은:
    상기 클라이언트 컴퓨터 시스템의 메모리의 섹션을 위하여 정의된 접근 허가 위반을 탐지하는 것(상기 섹션은 상기 게스트 VM에 의하여 사용됨);
    응답으로, 상기 위반에 따라서 상기 게스트 VM 내에서 이벤트의 발생을 추론하는 것; 및
    통신 네트워크 상에서 상기 이벤트의 표시자를 원격 서버 컴퓨터 시스템으로 전송하는 것을 포함하고,
    상기 온디맨드형 인트로스펙션 엔진을 실행하는 것은:
    - 상기 라이브 인트로스펙션 엔진이 상기 이벤트의 상기 표시자를 상기 원격 서버 컴퓨터 시스템으로 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 분석 요청을 수신하는 것(상기 분석 요청은 상기 클라이언트 컴퓨터 시스템을 포함하는 복수의 클라이언트들에 보안 툴을 배포하도록 구성된 원격 툴 저장소(repository, 리포지토리)에 위치하는 보안 툴을 나타내고, 상기 보안 툴은 멀웨어를 나타내는 데이터를 수집하도록 구성되고, 상기 보안 툴은 상기 이벤트의 이벤트 유형에 따라 상기 원격 서버 컴퓨터 시스템에 의해 선택됨),
    - 상기 분석 요청을 수신하는 것에 응답으로, 상기 툴 저장소로부터 상기 보안 툴을 선택적으로 검색하는 것(상기 보안 툴은 상기 분석 요청에 따라서 식별되고, 상기 보안 툴을 검색하는 것은 상기 통신 네트워크 상에서 상기 툴 저장소에 연결되는 것을 포함함),
    - 상기 보안 툴을 선택적으로 검색하는 것에 응답으로, 상기 보안 툴을 실행하는 것(이 때, 상기 보안 툴을 실행하는 것은 상기 클라이언트 컴퓨터 시스템의 상기 메모리의 다른 섹션을 식별하는 것[상기 다른 섹션은 상기 게스트 VM에 의하여 사용됨]과, 상기 다른 섹션의 콘텐트에 따라서 상기 멀웨어를 나타내는 데이터를 결정하는 것을 포함함),
    - 상기 보안 툴을 실행하는 것에 응답으로, 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하는 것,
    - 상기 멀웨어를 나타내는 데이터를 상기 원격 서버 컴퓨터 시스템에 전송하는 것에 응답으로, 상기 원격 서버 컴퓨터 시스템으로부터 상기 원격 툴 저장소에 위치하고 있는 완화 툴(mitigation tool)의 표시자를 수신하는 것(상기 완화 툴은 상기 클라이언트 컴퓨터 시스템 상에서 실행되는 악성 소프트웨어를 불능화하도록 구성된 소프트웨어를 포함함); 및
    - 상기 완화 툴의 표시자를 수신하는 것에 응답으로, 상기 완화 툴을 검색하고 실행하는 것을 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  31. 제30항에 있어서,
    상기 라이브 인트로스펙션 엔진을 실행시키는 것은:
    상기 위반을 탐지하는 것에 응답으로, 상기 위반에 따라서 상기 이벤트의 이벤트 유형을 결정하는 것,
    상기 이벤트 유형에 따라서 이벤트 적격 조건이 만족되는지 여부를 결정하는 것; 및
    응답으로, 상기 이벤트 적격 조건이 만족될 때에만 상기 원격 서버 컴퓨터 시스템에 상기 이벤트의 상기 표시자를 전송하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  32. 제30항에 있어서,
    상기 원격 툴 저장소로부터 상기 보안 툴을 검색하는 것은 상기 원격 툴 저장소를 상기 보안 VM의 파일 시스템에 마운트(mounting)하는 것을 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  33. 제30항에 있어서,
    상기 보안 VM은 네트워크 필터를 추가로 포함하고, 상기 하이퍼바이저는 상기 네트워크 필터를 통해 상기 게스트 VM과 원격 파티(remote party) 사이에서 네트워크 트래픽을 라우팅하도록 추가적으로 구성되며,
    상기 온디맨드형 인트로스펙션 엔진을 실행시키는 것은, 상기 원격 서버 컴퓨터 시스템으로부터 보안 경고를 수신하는 것에 응답으로, 상기 게스트 VM과 상기 원격 파티 사이에서 네트워크 트래픽을 제한하도록 상기 네트워크 필터를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  34. 제30항에 있어서,
    상기 멀웨어를 나타내는 데이터는, 상기 게스트 VM 내에서 실행되는 어플리케이션의 메모리 스냅샷 또는 상기 게스트 VM의 운영 시스템의 커널의 메모리 스냅샷을 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  35. 제30항에 있어서,
    상기 멀웨어를 나타내는 데이터는 상기 게스트 VM 내에서 실행되는 소프트웨어 엔터티들의 리스트를 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  36. 제30항에 있어서,
    상기 멀웨어를 나타내는 데이터는 상기 클라이언트 컴퓨터 시스템의 하드웨어 구성의 표시자를 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  37. 제30항에 있어서,
    상기 보안 VM은 네트워크 필터를 추가로 포함하고, 상기 하이퍼바이저는 상기 네트워크 필터를 통해 상기 게스트 VM과 원격 파티(remote party) 사이에서 네트워크 트래픽을 라우팅하도록 추가적으로 구성되며,
    상기 온디맨드형 인트로스펙션 엔진을 실행시키는 것은, 상기 분석 요청을 수신하는 것에 응답으로, 상기 게스트 VM과 상기 원격 파티 사이에서 네트워크 트래픽을 상기 보안 툴의 실행 기간 동안에 제한하기 위하여 상기 네트워크 필터를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  38. 제30항에 있어서,
    상기 온디맨드형 인트로스펙션 엔진을 실행시키는 것은,
    상기 보안 툴을 실행하는 것에 응답으로, 상기 클라이언트 컴퓨터 시스템의 메모리로부터 상기 보안 툴을 제거하는 것,
    상기 보안 툴을 제거하는 것에 응답으로, 상기 서버 컴퓨터 시스템으로부터 다른 분석 요청을 수신하는 것(상기 다른 분석 요청은 상기 툴 저장소로부터의 다른 보안 툴을 나타냄),
    상기 다른 분석 요청을 수신하는 것에 응답으로, 상기 툴 저장소로부터 상기 다른 보안 툴을 선택적으로 검색하는 것,
    상기 다른 보안 툴을 검색하는 것에 응답으로, 멀웨어를 나타내는 데이터의 다른 세트를 결정하기 위하여 상기 보안 툴을 실행하는 것, 및
    멀웨어를 나타내는 데이터의 상기 다른 세트를 상기 서버 컴퓨터 시스템으로 전송하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 보안 방법.
  39. 제30항에 있어서,
    상기 온디맨드형 인트로스펙션 엔진을 실행시키는 것은,
    상기 분석 요청을 수신하는 것에 응답으로, 상기 클라이언트 컴퓨터 시스템의 출력 장치에 통지를 표시하는 것을 추가적으로 포함하고, 상기 통지는 상기 게스트 VM의 일시적 감속을 나타내는 것을 특징으로 하는 컴퓨터 보안 방법.
  40. 제30항에 있어서,
    상기 이벤트는 코드 삽입, 메모리 할당, 라이브러리 로딩, 프로세스 개시 및 메모리 접근 허가 변화를 포함하는 그룹으로부터 선택되는 항목으로 구성되는 것을 특징으로 하는 컴퓨터 보안 방법.

KR1020187015228A 2015-12-19 2016-12-19 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션 KR102301721B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562269952P 2015-12-19 2015-12-19
US62/269,952 2015-12-19
PCT/EP2016/081697 WO2017103254A1 (en) 2015-12-19 2016-12-19 Dual memory introspection for securing multiple network endpoints

Publications (2)

Publication Number Publication Date
KR20180097527A KR20180097527A (ko) 2018-08-31
KR102301721B1 true KR102301721B1 (ko) 2021-09-15

Family

ID=57777593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015228A KR102301721B1 (ko) 2015-12-19 2016-12-19 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션

Country Status (13)

Country Link
US (1) US10630643B2 (ko)
EP (1) EP3391274B1 (ko)
JP (1) JP6772270B2 (ko)
KR (1) KR102301721B1 (ko)
CN (1) CN108369625B (ko)
AU (1) AU2016369460B2 (ko)
CA (1) CA3006003C (ko)
ES (1) ES2762988T3 (ko)
HK (1) HK1254985A1 (ko)
IL (1) IL259344B (ko)
RU (1) RU2714607C2 (ko)
SG (1) SG11201804327TA (ko)
WO (1) WO2017103254A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3616114B1 (en) * 2017-04-26 2024-01-24 Cylance Inc. Endpoint detection and response system with endpoint-based artifact storage
US10503910B2 (en) * 2017-06-06 2019-12-10 Sap Se Security testing framework including virtualized server-side platform
US10505966B2 (en) * 2017-06-06 2019-12-10 Sap Se Cross-site request forgery (CSRF) vulnerability detection
US10764169B2 (en) 2017-10-09 2020-09-01 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing virtual network components deployed in virtual private clouds (VPCs)
US10693909B2 (en) 2018-01-19 2020-06-23 International Business Machines Corporation Securing an endpoint in a computer network
US11038770B2 (en) * 2018-02-01 2021-06-15 Keysight Technologies, Inc. Methods, systems, and computer readable media for managing deployment and maintenance of network tools
US10812349B2 (en) 2018-02-17 2020-10-20 Keysight Technologies, Inc. Methods, systems and computer readable media for triggering on-demand dynamic activation of cloud-based network visibility tools
US11347861B2 (en) 2018-04-10 2022-05-31 Raytheon Company Controlling security state of commercial off the shelf (COTS) system
KR102462128B1 (ko) * 2018-07-18 2022-11-03 비트데펜더 아이피알 매니지먼트 엘티디 컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법
US11178159B2 (en) 2018-09-07 2021-11-16 Raytheon Company Cross-domain solution using network-connected hardware root-of-trust device
US11423150B2 (en) 2018-09-07 2022-08-23 Raytheon Company System and method for booting processors with encrypted boot image
US10878101B2 (en) 2018-09-07 2020-12-29 Raytheon Company Trusted booting by hardware root of trust (HRoT) device
EP3948608B1 (en) 2019-04-01 2023-04-26 Raytheon Company Adaptive, multi-layer enterprise data protection & resiliency platform
WO2020205497A1 (en) 2019-04-01 2020-10-08 Raytheon Company Root of trust assisted access control of secure encrypted drives
US10951509B1 (en) 2019-06-07 2021-03-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing intent-driven microapps for execution on communications network testing devices
US11249787B2 (en) * 2019-10-01 2022-02-15 Bank Of America Corporation Method and system for data collection using hypervisor
US11489745B2 (en) 2019-10-15 2022-11-01 Keysight Technologies, Inc. Methods, systems and computer readable media for providing a declarative network monitoring environment
US11379588B2 (en) 2019-12-20 2022-07-05 Raytheon Company System validation by hardware root of trust (HRoT) device and system management mode (SMM)
US11615181B2 (en) 2021-03-30 2023-03-28 Netapp, Inc. Methods for managing verification and validation of third-party code and devices thereof
US11586725B2 (en) * 2021-03-30 2023-02-21 Netapp, Inc. Methods for managing verification and validation of third-party code and devices thereof
US11681520B2 (en) * 2021-04-20 2023-06-20 International Business Machines Corporation Software upgrading using dynamic link library injection
US20230061511A1 (en) * 2021-08-30 2023-03-02 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution
CN115794604B (zh) * 2022-10-14 2024-04-19 寒武纪行歌(南京)科技有限公司 数据生成方法、装置、设备、介质及程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100115621A1 (en) * 2008-11-03 2010-05-06 Stuart Gresley Staniford Systems and Methods for Detecting Malicious Network Content
US20100251363A1 (en) * 2009-03-24 2010-09-30 Rade Todorovic Modified file tracking on virtual machines
US20130067558A1 (en) * 2011-03-01 2013-03-14 Honeywell International Inc. Assured pipeline threat detection

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960170A (en) * 1997-03-18 1999-09-28 Trend Micro, Inc. Event triggered iterative virus detection
JP2001222414A (ja) * 2000-02-09 2001-08-17 Dainippon Printing Co Ltd Dtpツール自動更新システム
KR100551421B1 (ko) 2002-12-28 2006-02-09 주식회사 팬택앤큐리텔 바이러스치료기능을 가진 이동통신 시스템
US7496961B2 (en) * 2003-10-15 2009-02-24 Intel Corporation Methods and apparatus to provide network traffic support and physical security support
JP4624181B2 (ja) * 2004-07-28 2011-02-02 株式会社エヌ・ティ・ティ・データ 不正アクセス対策制御装置および不正アクセス対策制御プログラム
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US20080320594A1 (en) 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US8719936B2 (en) * 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US7979260B1 (en) * 2008-03-31 2011-07-12 Symantec Corporation Simulating PXE booting for virtualized machines
US8443363B1 (en) * 2008-05-30 2013-05-14 Symantec Corporation Coordinated virtualization activities
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
JP4589996B2 (ja) * 2008-10-14 2010-12-01 株式会社セキュアウェア データ処理方法、データ処理装置、コンピュータプログラム、及び記録媒体
US8544089B2 (en) * 2009-08-17 2013-09-24 Fatskunk, Inc. Auditing a device
JP5725529B2 (ja) * 2010-07-21 2015-05-27 日本電気株式会社 Web脆弱性補修システム、Web脆弱性補修方法、及びプログラム
RU2444056C1 (ru) * 2010-11-01 2012-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ ускорения решения проблем за счет накопления статистической информации
US20120144489A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
CN102122330B (zh) * 2011-01-24 2014-12-03 中国人民解放军国防科学技术大学 基于虚拟机的“In-VM”恶意代码检测系统
US8566899B2 (en) * 2011-03-16 2013-10-22 Symantec Corporation Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US20120254993A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US8601583B1 (en) * 2011-04-14 2013-12-03 Trend Micro Incorporated Certification of virtual machine images in cloud computing environments
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US8099596B1 (en) * 2011-06-30 2012-01-17 Kaspersky Lab Zao System and method for malware protection using virtualization
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
US20130312096A1 (en) 2012-05-18 2013-11-21 Vmware, Inc. On-demand data scan in a virtual machine
US9003408B2 (en) * 2012-09-28 2015-04-07 Adventium Enterprises Providing virtual machine services by isolated virtual machines
CN103500304B (zh) * 2013-10-13 2016-06-29 西安电子科技大学 基于Xen的虚拟机个性化安全监控系统及监控方法
CN104169939B (zh) * 2013-11-12 2017-02-15 华为技术有限公司 一种实现虚拟化安全的方法和系统
RU2568282C2 (ru) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде
US9798882B2 (en) * 2014-06-06 2017-10-24 Crowdstrike, Inc. Real-time model of states of monitored devices
FR3022371A1 (fr) * 2014-06-11 2015-12-18 Orange Procede de supervision de la securite d'une machine virtuelle dans une architecture d'informatique dans le nuage
US9009836B1 (en) * 2014-07-17 2015-04-14 Kaspersky Lab Zao Security architecture for virtual machines
JP2014225302A (ja) * 2014-09-08 2014-12-04 富士通株式会社 ウイルス検出プログラム、ウイルス検出方法、及びコンピュータ
US9608909B1 (en) * 2015-06-08 2017-03-28 Cisco Technology, Inc. Technique for mitigating effects of slow or stuck virtual machines in fibre channel communications networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100115621A1 (en) * 2008-11-03 2010-05-06 Stuart Gresley Staniford Systems and Methods for Detecting Malicious Network Content
US20100251363A1 (en) * 2009-03-24 2010-09-30 Rade Todorovic Modified file tracking on virtual machines
US20130067558A1 (en) * 2011-03-01 2013-03-14 Honeywell International Inc. Assured pipeline threat detection

Also Published As

Publication number Publication date
RU2018126207A3 (ko) 2020-01-24
JP2018538633A (ja) 2018-12-27
CN108369625B (zh) 2022-03-04
EP3391274B1 (en) 2019-10-02
IL259344B (en) 2021-06-30
CA3006003A1 (en) 2017-06-22
IL259344A (en) 2018-07-31
WO2017103254A1 (en) 2017-06-22
SG11201804327TA (en) 2018-07-30
AU2016369460B2 (en) 2021-07-01
JP6772270B2 (ja) 2020-10-21
US10630643B2 (en) 2020-04-21
RU2714607C2 (ru) 2020-02-18
KR20180097527A (ko) 2018-08-31
HK1254985A1 (zh) 2019-08-02
EP3391274A1 (en) 2018-10-24
US20170180318A1 (en) 2017-06-22
AU2016369460A1 (en) 2018-06-07
RU2018126207A (ru) 2020-01-20
CN108369625A (zh) 2018-08-03
ES2762988T3 (es) 2020-05-26
CA3006003C (en) 2021-11-23

Similar Documents

Publication Publication Date Title
KR102301721B1 (ko) 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션
EP3430556B1 (en) System and method for process hollowing detection
US8910238B2 (en) Hypervisor-based enterprise endpoint protection
US20210165887A1 (en) Techniques for securing execution environments by quarantining software containers
AU2014330136B2 (en) Complex scoring for malware detection
AU2014393471B2 (en) Systems and methods for using a reputation indicator to facilitate malware scanning
EP3017392B1 (en) Process evaluation for malware detection in virtual machines
US9251343B1 (en) Detecting bootkits resident on compromised computers
WO2019158915A1 (en) Managing virtual machine security resources
AU2014330136A1 (en) Complex scoring for malware detection
US10826919B2 (en) Methods and cloud-based systems for protecting devices from malwares
US11706251B2 (en) Simulating user interactions for malware analysis
EP3314499B1 (en) Temporary process deprivileging
RU2583709C2 (ru) Система и способ устранения последствий заражения виртуальных машин

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant