KR101794116B1 - 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출 - Google Patents

하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출 Download PDF

Info

Publication number
KR101794116B1
KR101794116B1 KR1020157027779A KR20157027779A KR101794116B1 KR 101794116 B1 KR101794116 B1 KR 101794116B1 KR 1020157027779 A KR1020157027779 A KR 1020157027779A KR 20157027779 A KR20157027779 A KR 20157027779A KR 101794116 B1 KR101794116 B1 KR 101794116B1
Authority
KR
South Korea
Prior art keywords
hardware
performance data
data
hardware performance
features
Prior art date
Application number
KR1020157027779A
Other languages
English (en)
Other versions
KR20160008509A (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
Priority claimed from PCT/US2013/068451 external-priority patent/WO2014149080A1/en
Application filed by 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 filed Critical 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕
Publication of KR20160008509A publication Critical patent/KR20160008509A/ko
Application granted granted Critical
Publication of KR101794116B1 publication Critical patent/KR101794116B1/ko

Links

Images

Classifications

    • 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
    • G06F15/18
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N99/005
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Virology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)

Abstract

제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터와 관련된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하는 단계, 및 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터로부터 제 1 프로세스에 대응하는 획득된 현재 하드웨어 성능 데이터의 일탈의 정도의 결정에 기초하여, 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계를 포함하는 방법을 비롯해, 디바이스들, 시스템들, 장치들, 방법들, 물품들, 매체들 및 다른 구현들이 개시된다.

Description

하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출{UNSUPERVISED DETECTION OF ANOMALOUS PROCESSES USING HARDWARE FEATURES}
[0001] 본 출원은, "UNSUPERVISED ANOMALY-BASED MALWARE DETECTION USING HARDWARE FEATURES"란 명칭으로 2014년 3월 14일 출원된 국제 출원 번호 PCT/US2014/027375호의 이익 및 우선권을 주장하며, 이 국제 출원은, 2013년 12월 20일에 출원되고 발명의 명칭이 "UNSUPERVISED ANOMALY-BASED MALWARE DETECTION USING HARDWARE FEATURES"인 미국 예비 특허 출원 번호 61/919,560, 미국 수신국에 2013년 11월 5일에 출원되고 발명의 명칭이 "DETECTION OF ANOMALOUS PROGRAM EXECUTION USING HARDWARE-BASED MICRO-ARCHITECTURAL DATA"인 미국 특허 출원 번호 PCT/US2013/068451, 2013년 3월 18일에 출원되고 발명의 명칭이 "SYSTEMS AND METHODS TO DETECT ANOMALOUS PROGRAM EXECUTION USING PROCESSOR MICROARCHITECTURAL EVENTS"인 미국 예비 미국 출원 번호 61/803,029의 이익 및 우선권을 주장하고, 상기 특허 모두의 내용들은 그 전체가 인용에 의해 본원에 포함된다.
[0002] 본 발명은 FA 8750-10-2-0253 하에서 DARPA(Defense Advanced Research Projects Agency)에 의해 수여된 정부 지원으로 이루어졌다. 정부는 본 발명의 특정 권리들을 가진다.
[0003] 멀웨어(malware) 감염들 같은 악의적인 프로세스들은 수년 동안 조직들 및 사용자들을 괴롭혔다. 이들 악의적인 프로세스들은 본래 악명 또는 재미를 얻기 위하여 생성되었지만, 오늘날 멀웨어 개발은 주로 경제적 이득들에 의해 동기화된다. 미국에서 개인 정보, 신용 카드들, 민감한 머신들에 로그인들 등에 대한 액티브 지하 시장들의 보고들이 있다. 또한, 멀웨어 프로세스들 같은 악의적인 프로세스들은 스파이 목적들(산업 스파이든 아니든) 및/또는 사보타주(sabotage)를 위하여 특정 컴퓨터들을 타겟화하도록 개발되었다.
[0004] 안티-바이러스 소프트웨어의 존재에도 불구하고, 멀웨어 위협(및 다른 타입들의 악의적인 프로세스들로부터의 위협)은 계속되고 성장하고 있다. 불행하게, 간단히 안티-바이러스 시스템을 디스에이블링하는 것을 포함하는 상업 안티-바이러스 소프트웨어를 전복시키기 위한 다수의 방식들이 있다. 게다가, 멀웨어는 멀웨어의 정적 검출을 어렵게 하는 새로운 변형들로 변형될 수 있다.
[0005] 본원에 개시된 디바이스들, 시스템들, 장치, 방법들, 물건들, 미디어 및 다른 구현들은 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터와 관련된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하는 단계, 및 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터로부터 제 1 프로세스에 대응하는 획득된 현재 하드웨어 성능 데이터의 일탈의 정도의 결정에 기초하여, 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계를 포함하는 방법을 포함한다.
[0006] 방법의 실시예들은 다음 특징들 중 하나 또는 그 초과를 포함하는 본 개시에 설명된 특징들 중 적어도 몇몇을 포함할 수 있다.
[0007] 하드웨어 성능 데이터를 획득하는 단계는, 다양한 시간 인스턴스들에서 하드웨어 성능 데이터를 획득하는 단계를 포함할 수 있다. 다양한 시간 인스턴스들에서 하드웨어 성능 데이터를 획득하는 단계는, 예를 들어 현재 하드웨어 성능 데이터를 송신하기 위해 하드웨어 디바이스에 의해 개시되는 데이터 푸쉬 동작, 및/또는 현재 하드웨어 성능 데이터가 하드웨어 디바이스에 의해 송신되게 하는, 안티바이러스 엔진에 의해 개시되는 데이터 풀 동작 중 하나 또는 그 초과를 수행하는 단계를 포함할 수 있다.
[0008] 현재 하드웨어 성능 데이터를 획득하는 단계는, 유효도를 나타내는 각각의 계산된 하나 또는 그 초과의 스코어들에 기초하여, 복수의 하드웨어 성능 특징들로부터 하나 또는 그 초과의 특징들을 선택하는 단계 ―하나 또는 그 초과의 특징들 중 대응하는 하나의 특징에 대한 하드웨어 성능 데이터의 대응하는 서브세트는 선택된 하나 또는 그 초과의 특징들에 대해 획득된 하드웨어 성능 데이터가 악의적인 프로세스에 의해 영향을 받는지를 나타낼 수 있음―, 및 선택된 하나 또는 그 초과의 특징들에 대해서만 현재 하드웨어 성능 데이터로부터 성능 데이터를 획득하는 단계를 포함할 수 있다.
[0009] 하나 또는 그 초과의 스코어들을 컴퓨팅하는 단계는, 하나 또는 그 초과의 피셔(Fisher) 스코어들을 컴퓨팅하는 단계를 포함할 수 있다.
[0010] 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계는, 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한 현재 하드웨어 성능 데이터가 제 1 프로세스에 대한 사전 기록된 하드웨어 성능 데이터로부터 일탈되는지를 결정하기 위해, 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터를 이용하여 트레이닝된 하나 또는 그 초과의 머신 학습 절차들을 현재 하드웨어 성능 데이터에 적용하는 단계를 포함할 수 있다.
[0011] 하나 또는 그 초과의 기계 학습 절차들은 예를 들어 비선형 방사 기저 함수(RBF:radial basis function) 커널을 구현하는 지원 벡터 머신, k 최근접 이웃 절차, 판단 트리 절차, 랜덤 포레스트 절차, 인공 신경 네트워크 절차, 텐서(tensor) 밀도 절차, 또는 은닉 마르코프 모델 절차 중 하나 또는 그 초과를 포함할 수 있다.
[0012] 방법은 변환된 데이터를 생성하기 위해 변환 함수를 적어도 현재 하드웨어 성능 데이터에 적용하는 단계를 더 포함할 수 있다. 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계는, 생성된 변환된 데이터를 사용하여 계산된 사전 기록된 하드웨어 성능 데이터로부터 현재 하드웨어 성능 데이터의 일탈의 정도에 기초하여 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계를 포함할 수 있다.
[0013] 변환된 데이터를 생성하기 위해 변환 함수를 적어도 현재 하드웨어 성능 데이터에 적용하는 단계는,
Figure 112017006843654-pct00001
에 따라, 이벤트
Figure 112017006843654-pct00002
에 대한 하드웨어 성능 데이터 값(
Figure 112017006843654-pct00003
)으로부터 이벤트
Figure 112017006843654-pct00004
에 대해 정규화된 하드웨어 성능 값(
Figure 112017006843654-pct00005
)을 유도하는 단계를 포함할 수 있고,
여기서,
Figure 112017006843654-pct00006
Figure 112017006843654-pct00007
는 각각, 이벤트
Figure 112017006843654-pct00008
에 대한 최소 및 최대 값들이며,
Figure 112017006843654-pct00009
는 이벤트
Figure 112017006843654-pct00010
에 대한 거듭제곱 파라미터이다.
[0014] 하드웨어 성능 데이터는 예를 들어 프로세서 로드 밀도 데이터, 브랜치 예측 성능 데이터, 또는 명령 캐시 미스들에 관한 데이터 중 하나 또는 그 초과를 포함할 수 있다.
[0015] 방법은 제 1 프로세스의 정상 거동을 나타내는 적어도 사전 기록된 하드웨어 성능 데이터에 대한 업데이트들을 획득하는 단계를 더 포함할 수 있다. 업데이트들을 획득하는 단계는, 현재 하드웨어 성능 데이터를 제공하는 하드웨어 디바이스와 통신하는 안티바이러스 엔진에 업데이트들에 대한 암호화된 데이터를 다운로딩하는 단계, 업데이트들에 대한 다운로딩된 암호화된 데이터를 안티바이러스 엔진에서 복호화하는 단계, 및 가장 최근의 업데이트의 리버전 번호를 나타내는, 안티바이러스 엔진에 의해 유지되는 리버전 카운터를 업데이트하는 단계를 포함할 수 있다.
[0016] 몇몇 변형들에서, 제 1 프로세스를 실행하는 하드웨어 디바이스, 및 하드웨어 디바이스와 통신하는 안티바이러스 엔진을 포함하는 시스템이 개시된다. 안티바이러스 엔진은, 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하고 ― 제 1 프로세스는 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터와 관련됨―, 그리고 제 1 프로세스의 정상 거동을 나타내는 사전 기록된 하드웨어 성능 데이터로부터 제 1 프로세스에 대응하는 획득된 현재 하드웨어 성능 데이터의 일탈의 정도의 결정에 기초하여, 악의적인 프로세스가 제 1 프로세스의 성능에 영향을 미치는지를 결정하도록 구성된다.
[0017] 시스템의 실시예들은 방법과 관련하여 위에서 설명된 특징들 중 적어도 일부뿐만 아니라, 다음의 특징들 중 하나 또는 그 초과도 포함하여, 본 개시에서 설명되는 특징들 중 적어도 일부를 포함할 수 있다.
[0018] 현재 하드웨어 성능 데이터를 획득하도록 구성된 안티바이러스 엔진은, 유효도를 나타내는 각각의 계산된 하나 또는 그 초과의 스코어들에 기초하여, 복수의 하드웨어 성능 특징들로부터 하나 또는 그 초과의 특징들을 선택하고 ― 하나 또는 그 초과의 특징들 중 대응하는 하나의 특징에 대한 하드웨어 성능 데이터의 대응하는 서브세트는 선택된 하나 또는 그 초과의 특징들에 대해 획득된 하드웨어 성능 데이터가 악성 프로세스에 의해 영향을 받음을 나타낼 수 있음 ―, 그리고 선택된 하나 또는 그 초과의 특징들에 대해서만 현재 하드웨어 성능 데이터로부터 성능 데이터를 획득하도록 구성될 수 있다.
[0019] 악성 프로세스가 제 1 프로세스의 성능에 영향을 주고 있는지 여부를 결정하도록 구성된 안티바이러스 엔진은, 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한 현재 하드웨어 성능 데이터가 제 1 프로세스에 대한 사전 기록된 하드웨어 성능 데이터에서 벗어나는지 여부를 결정하기 위해, 제 1 프로세스의 정상 행동을 나타내는 사전 기록된 하드웨어 성능 데이터를 이용하여 트레이닝된 하나 또는 그 초과의 머신 학습 프로시저들을 현재 하드웨어 성능 데이터에 적용하도록 구성될 수 있다.
[0020] 안티바이러스 엔진은, 변환된 데이터를 생성하기 위해 적어도 현재 하드웨어 성능 데이터에 변환 함수를 적용하도록 추가로 구성될 수도 있다. 악성 프로세스가 제 1 프로세스의 성능에 영향을 주고 있는지 여부를 결정하도록 구성된 안티바이러스 엔진은, 생성된 변환된 데이터를 사용하여 계산된 사전 기록된 하드웨어 성능 데이터로부터의 현재 하드웨어 성능 데이터의 편차 정도에 기초하여 악성 프로세스가 제 1 프로세스의 성능에 영향을 주고 있는지 여부를 결정하도록 구성될 수 있다.
[0021] 일부 변형들에서, 적어도 하나의 프로그램 가능한 디바이스 상에서 실행되는 한 세트의 명령들을 저장하는 컴퓨터 판독 가능 매체가 제공된다. 한 세트의 명령들은 실행될 때, 제 1 프로세스의 정상 행동을 나타내는 사전 기록된 하드웨어 성능 데이터와 연관된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한 하드웨어 성능 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하는 동작, 및 제 1 프로세스의 정상 행동을 나타내는 사전 기록된 하드웨어 성능 데이터로부터 제 1 프로세스에 대응하는 획득된 현재 하드웨어 성능 데이터의 편차 정도의 결정에 기초하여, 악성 프로세스가 제 1 프로세스의 성능에 영향을 주고 있는지 여부를 결정하는 동작을 포함하는 동작들을 야기한다.
[0022] 컴퓨터 판독 가능 매체의 실시예들은 방법 및 시스템과 관련하여 위에서 설명된 특징들 중 적어도 일부를 포함하여, 본 개시에서 설명되는 특징들 중 적어도 일부를 포함할 수도 있다.
[0023] 일부 변형들에서는, 장치가 제공된다. 장치는 제 1 프로세스의 정상 행동을 나타내는 사전 기록된 하드웨어 성능 데이터와 연관된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한 하드웨어 성능 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하기 위한 수단, 및 제 1 프로세스의 정상 행동을 나타내는 사전 기록된 하드웨어 성능 데이터로부터 제 1 프로세스에 대응하는 획득된 현재 하드웨어 성능 데이터의 편차 정도의 결정에 기초하여, 악성 프로세스가 제 1 프로세스의 성능에 영향을 주고 있는지 여부를 결정하기 위한 수단을 포함한다.
[0024] 장치의 실시예들은 방법, 시스템 및 컴퓨터 판독 가능 매체와 관련하여 위에서 설명된 특징들 중 적어도 일부를 포함하여, 본 개시에서 설명되는 특징들 중 적어도 일부를 포함할 수도 있다.
[0025] 달리 정의되지 않는 한, 본 명세서에서 사용되는 모든 기술 및 과학 용어들은 일반적으로 또는 종래에 이해되는 것과 동일한 의미를 갖는다. 본 명세서에서 사용되는 바와 같이, 단수 표현들은 그 표현의 문법상의 대상의 하나를 또는 하나보다 많은 것을(즉, 적어도 하나를) 의미한다. 예로서, "엘리먼트"는 하나의 엘리먼트 또는 하나보다 많은 엘리먼트를 의미한다. 본 명세서에서 사용되는 바와 같이 양, 시간 듀레이션 등과 같은 측정 가능한 값을 의미할 때, "약" 그리고/또는 "대략"은 명시된 값으로부터의 ±20% 또는 ±10%, ±5%, 또는 +0.1%의 편차들을 포괄하는 것으로 여겨지는데, 시스템들, 디바이스들, 회로들, 방법들, 및 본 명세서에서 설명되는 다른 구현들과 관련하여 이러한 편차들이 적절하기 때문이다. 본 명세서에서 사용되는 바와 같이 양, 시간 듀레이션, (주파수와 같은) 물리적 속성 등과 같은 측정 가능한 값을 의미할 때, "실질적으로"는 또한 명시된 값으로부터의 ±20% 또는 ±10%, ±5%, 또는 +0.1%의 편차들을 포괄하는 것으로 여겨지는데, 시스템들, 디바이스들, 회로들, 방법들, 및 본 명세서에서 설명되는 다른 구현들과 관련하여 이러한 편차들이 적절하기 때문이다.
[0026] 청구항들을 포함하여 본 명세서에서 사용되는 바와 같이, "~ 중 적어도 하나" 또는 "~ 중 하나 또는 그 초과"로 서문이 쓰여진 항목들의 리스트에 사용되는 "또는" 혹은 "및"은 기재된 항목들의 임의의 결합이 사용될 수 있음을 나타낸다. 예를 들어, "A, B 또는 C 중 적어도 하나"의 리스트는 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 및/또는 ABC(즉, A와 B와 C) 결합들 중 임의의 결합을 포함한다. 더욱이, A, B, 또는 C 항목들의 1회보다 많은 발생 또는 사용이 가능할 경우에, A, B, 및/또는 C의 여러 번의 사용들이 고려되는 결합들의 일부를 형성할 수도 있다. 예를 들어, "A, B, 또는 C 중 적어도 하나"의 리스트는 또한 AA, AAB, AAA, BB 등을 포함할 수도 있다.
[0027] 청구항들을 포함하여 본 명세서에서 사용되는 바와 같이, 달리 언급되지 않는 한, 기능, 동작 또는 특징이 항목 및/또는 조건"에 기초한다"는 서술은, 기능, 동작, 기능이 언급된 항목 및/또는 조건에 기초하고, 언급된 항목 및/또는 조건 외에도 하나 또는 그 초과의 항목들 및/또는 조건들에 기초할 수도 있음을 의미한다.
[0028] 첨부 도면들에서 그리고 아래 설명에 하나 또는 그 초과의 구현들의 세부사항들이 제시된다. 추가 특징들, 양상들 및 이점들이 설명, 도면들 및 청구항들로부터 명백해질 것이다.
[0029] 이제 다음 도면들을 참조로 이러한 그리고 다른 양상들이 상세히 설명될 것이다.
[0030] 도 1은 다중-스테이지 멀웨어 감염 프로세스를 나타내는 도면이다.
[0031] 도 2는 악성 프로세스가 존재하며 피해자 프로세스의 성능에 영향을 주고 있는지 여부를 결정하기 위한 시스템의 예시적인 구현의 개략도이다.
[0032] 도 3은 프로세스들의 정상 행동으로부터 그 프로세스들의 편차의 결정을 가능하게 하도록 모니터링될 수 있는 일부 예시적인 이벤트들 또는 특징들을 기재하는 표이다.
[0033] 도 4는 이벤트들을 서로 다른 익스플로잇 프로세스 스테이지들에 대한 그 이벤트들의 F-스코어들로 기재하는 표이다.
[0034] 도 5는 합법 프로그램들의 클린 및 감염 실행 동안 취해지는 다양한 이벤트 측정들에 대한 "박스-앤-위스커" 그래프들을 포함한다.
[0035] 도 6은 변환 함수들이 적용된 다양한 이벤트 측정들에 대한 "박스-앤-위스커" 그래프들을 포함한다.
[0036] 도 7은 AV 엔진이 구현되는 예시적인 시스템의 개략도이다.
[0037] 도 8은 악성 프로세스들을 검출하기 위한 예시적인 프로시저의 흐름도이다.
[0038] 도 9a-b는 비-시간 및 시간 특징 세트들에 대한 ROC 곡선들을 포함한다.
[0039] 도 10은 인터넷 익스플로러에 대한 비-시간 및 시간 모델들을 사용하는 서로 다른 이벤트 세트들에 대한 곡선-아래-영역(AUC) 스코어들에 관해 검출 결과들을 나타내는 그래프이다.
[0040] 도 11a-b는 다양한 시나리오들에 대한 AUC 스코어들의 표들을 포함한다.
[0041] 도 12는 다양한 멀웨어 익스플로잇 스테이지들에 대한 대응하는 검출 AUC 스코어들과 함께 서로 다른 샘플링 레이트들에 대한 실행 시간 둔화를 제공하는 그래프이다.
[0042] 도 13a는 예시적인 보안 업데이트 페이로드의 개략도이다.
[0043] 도 13b은 보안 업데이트 페이로드를 수신하고 AV 엔진의 구성을 업데이트하기 위한 예시적인 프로시저의 흐름도이다.
[0044] 다양한 도면들에서 동일한 참조 부호들은 동일한 엘리먼트들을 표시한다.
[0045] 적법한(legitimate)(즉, 비-악성(non-malicious)) 프로그램들 및 프로세스들의 정상 동작(normal behavior)으로부터의 편차(deviation)를 결정함으로써, 실행 프로그램들/프로세스들의 비정상 동작(anomalous behavior)의 자율 검출(unsupervised detection)을 위한, 방법들, 시스템들, 디바이스들, 장치, 컴퓨터 프로그램 물건들, 매체들, 및 다른 실행예들(implementations)이 본원에서 설명된다. 일부 실행예들에서, 하드웨어 성능 카운터 데이터(예를 들면, 하드웨어-기반 성능 카운터들)를 포함하는 하드웨어 성능 데이터는, 하드웨어 디바이스(이를테면, 적법한 프로세스들 및 프로그램들이 실행중인 프로세서/컴퓨팅-기반 디바이스)로부터 획득되고, 데이터는 기계-학습 절차들(예를 들면, 분류 절차들)을 사용하여 분석되어서, 수집된 하드웨어 성능 데이터가 그러한 적법한 프로그램들 또는 프로세스들의 정상 실행으로부터 야기된, 이전에 획득된, 정상적인 하드웨어 성능 데이터로부터 벗어난지 여부를 결정한다.
[0046] 본원에서 제공되는 설명은, 적법한 프로그램들, 어플리케이션 및 프로세스들의 비정상 동작을 야기하는 멀웨어-타입 악성 프로세스들(malware-type malicious processes)에 초점을 맞추지만, 이 설명은 또한 다른 타입들의 악성 프로세스들에도 적용된다.
[0047] 전형적인 멀웨어 감염(malware infection)은 2단계 프로세스, 즉 익스플로이테이션(exploitation) 및 탈취(take-over)로서 이해될 수 있다. 익스플로이테이션 단계 동안에, 악성 프로세스가 희생 프로그램 실행의 제어를 장악한다(hijacks). 그 후 익스플로이테이션에 이어, 키로거(keylogger)와 같은 페이로드(payload)를 다운로드 및 설치하기 위한 보다 정교한 절차들이 뒤따른다. 보다 구체적으로, 도 1을 참조하면, 다-단계 멀웨어 감염 프로세스(100)를 도시하는 다이어그램이 도시된다. 프로세스(100)를 구현할 때, 상대(adversary)(102)가 도 1에 도시된 익스플로이트(exploit)(110)와 같은 익스플로이트를 먼저 크래프팅하고 (도 1에서 동작 '1'로 마킹된) 상대에게 알려져 있는 특정 취약점(vulnerability)을 타겟팅하도록 희생자에게 익스플로이트를 전달한다. 취약점은, 몇몇 실시예들에서, 메모리 손상 버그(memory corruption bug)일 수 있으며, 익스플로이트는 이메일로부터의 문서 첨부 또는 웹페이지로부터 희생자에게 전송될 수 있다. 희생자가 익스플로이트에 접근할 때, ROP(보안 시설들(security features)의 우회(circumvention)를 가능하게 하는 컴퓨터 보안 익스플로이트 기법인 리턴-오리엔트 프로그래밍(Return-Oriented Programming)), 및 익스플로이트(110)의 스테이지 1 "셸코드들(shellcodes)"로 일반적으로 공지되어 있는 2개의 익스플로이트 서브프로그램들이 (도 1에서 동작 '2'로 마킹된) 취약한 프로그램의 메모리 내로 로딩된다. 익스플로이트(110)는 그 후 ROP 셸코드(도 1의 동작 '3')에 대한 제어를 전달하기 위해(transfer) 취약성을 이용한다.
[0048] 비신뢰적인 데이터가 코드로서 실행되는 것을 방지하기 위해, 몇몇 현대식 프로세서들은 데이터 실행 방지(DEP: Data Execution Prevention) 모듈을 제공하여서, 데이터 페이지들로부터 코드가 실행되는 것을 방지한다. DEP 모듈에 대한 문제점은, DEP 모듈이 프로그램 자체에 의해 토글링될(toggled) 수 있다는 점이다(이러한 특징은 JIT 컴파일화(compilation)를 지원하는데 필요하다). 따라서, DEP를 피하기 위해, ROP-스테이지 셸코드는, 익스플로이트(110)의 후속 스테이지 1 셸코드를 포함하는 데이터 페이지에 대한 DEP를 불능케하는(disables) 함수에 대한 호출을 크래프팅하기 위해 본래 프로그램 바이너리(program binary) 내의 명령들을 재사용할 수 있다. ROP 셸코드는 그 후, (도 1의 동작 '4'로 도시된 바와 같은) 후속 스테이지로 실행을 방향전환한다(redirect). 스테이지 1 셸코드는 전형적으로, 보다 자유롭게 실행될 수 있는 (스테이지 2 페이로드(120)로서 도 1에 도시된) 보다 큰 (그리고 일반적으로 악성인(pernicious)) 페이로드를 다운로딩하도록 구성된, 비교적 작은 (수 바이트 내지 약 300 바이트 2) 코드 스터브(code stub)이다. 비밀(stealth)을 유지하기 위해, 스테이지 2 페이로드(120)는 (도 1의 동작 '5'로 도시된 바와 같은) 메모리에 다운로딩된다. 스테이지 2 페이로드(120)는, 특정 악성 태스크(malicious task)를 수행하기 위해, 상대(102)가 사용자 기계 상에서 실행하기 원하는 코드를 포함한다. 이러한 페이로드의 기능성의 범위, 일반적으로 백도어(backdoor), 키로거(keylogger), 또는 정찰(reconnaissance) 프로그램은 사실상 비제한적이다. 페이로드가 다운로딩된 후, 스테이지 1 셸코드는, 임의의 물리적 파일들을 필요로 하지 않는 비밀 라이브러리 주입 기법인, 예를 들면, 반사 DLL 주입(도 1의 동작 '6'으로 도시된 바와 같음)을 사용하여 실행가능한 것으로, 그러한 페이로드를 실행시킨다. 이때까지, 희생자 시스템은 (도 1의 동작 '7'로 지시된 바와 같이) 절충된다(compromised).
[0049] 익스플로이트(110)의 스테이지 1 셸코드 및 스테이지 2 페이로드(120)는, 주로 스테이지 1 셸코드에 대한 동작상 제약들(operational constraints)로 인해, 크기, 디자인, 기능의 면에서 일반적으로 상이하다. 익스플로이트(110) 내에 초기 셸코드를 전달할 때, 익스플로이트 라이터들(exploit writers)은 전형적으로, 가능한 한 작은 메모리를 사용하려고 하며, 그에 따라 프로그램이 익스플로이트 라이터들의 익스플로이트 코드를 메모리에 의도치 않게 오버라이팅하지 않는 것을 보장한다. 성공을 위한 우수한 가능성을 갖기 위해, 이러한 코드는 작고 신속할 필요가 있으며, 그에 따라 몇몇 실행예들에서, 매우 제한적인 포지션-독립적인 메모리 어드레싱 스타일로 어셈블리에 라이팅된다. 이러한 제약들은 매우 큰 셸코드들을 라이팅하도록 공격자들의 능력을 제한할 수 있다. 반대로, 스테이지 2 페이로드(120)는 이러한 모든 제약들을 갖지 않으며, 임의의 정규 프로그램과 같이 개발될 수 있다. 이는, OS들이 작은 어셈블리 루틴들을 사용하여, 부트스트랩(bootstrap)한 뒤, 컴파일링된 코드로 스위칭하는 방법과 유사하다.
[0050] 전술된 전략 및 구조는, 다수의 멀웨어 프로세스들, 특히 상당히 최근의 웹 익스플로이트 키트들로 생성된 것들을 나타낸다. 이러한 멀웨어 익스플로이트들은 메모리로부터 그리고 호스트 희생 프로그램의 프로세스 콘텍스트에서 실행된다. 또한, 이들은 어떠한 파일들도 디스크에 라이팅되지 않고 어떠한 새로운 프로세스들도 생성되지 않도록 보장함으로써, 디스크 및 프로세스 비밀을 유지시키며, 그에 따라 다수의 파일-기반 멀웨어 검출 기법들을 피할 수 있다.
[0051] 익스플로이테이션 스테이지 동안 멀웨어를 검출하는 것은, 완화들을 위한 보다 많은 리드 타임을 제공할 수 있을뿐 아니라, 페이로드들의 후속 시그니처-기반 검출의 정확성을 개선시키기 위해 초기의 위협적인 예측 변수(early threat predictor)로서의 역할을 할 수 있다. 본원에서 설명된 실행예들과 같은, 이상(anomaly)-기반 검출을 위한 안티-멀웨어 실행예들은, 익스플로이테이션 스테이지 동안 멀웨어가 본래 프로그램 흐름을 변경시켜서, 희생 프로그램에 관하여 독특한 비-고유 코드를 실행시킨다는 관찰에 기반한다. 그러한 이상 코드 실행(unusual code execution)은 일반적으로, 프로그램의 동적인 실행 특성들에 대한 작은 변화들(perturbations)을 야기할 것이며, 이러한 작은 변화들이 관찰가능한 경우, 이러한 작은 변화들은 멀웨어 익스플로이트들의 검출을 위한 근거를 형성할 수 있다. 익스플로이트들이 희생 프로그램들에서의 실행 흐름을 조작하기 때문에, 시그니처-기반 검출 패러다임은 익스플로이테이션들을 검출하는데 적합하지 않을 수 있음에 주목해야 한다. 예를 들면, 시그니처-기반 검출기는, 멀웨어가 IE 내에 있기 때문에, IE가 멀웨어로 감염될 때조차도 IE가 실행중임을 아마도 정확하게 보고할(report) 것이다.
[0052] 일부 실시예들에서, 익스플로이트들에 의해 야기된 편차들은, 특히 예를 들면, 인터넷 익스플로러, Adobe PDF Reader와 같이 다양한 사용에 따라 취약한 프로그램에서, 상당히 작고 비신뢰적일 수 있는 것이 가능하다(하기에서 보다 상세히 설명되는 바와 같이, 본원에서 설명된 실행예들의 테스팅 및 실험에서, 인터넷 익스플로러 8 및 Adobe PDF Reader 9이 사용되었음). 예를 들면, Intel x86 칩들 상에서 실행되는 제품 Windows 머신 상에서, 하드웨어 성능 카운터들로부터의 실행 측정들의 분포들은, 많은 값들이 제로에 접근하여서 클러스터링되는 상태에서, 양적으로(positively) 왜곡될 수 있음을, 테스팅 및 실험이 나타내었다. 이는 익스플로이트 코드에 의해 야기된 미세한 편차들이 직접적으로 효과적으로 분별될 수 없음을 암시한다. 그러나, 심하게 왜곡된 분포들로부터의 편차들을 식별하는 문제는, 예를 들면 거듭제곱 변환(power transform)(하기에서 보다 상세히 논의되는 바와 같음)을 사용하여, 다수의 샘플들의 일시적인 집합과 함께, 작은 차이들을 증폭시킴으로써 경감될 수 있으며, 그에 따라 보다 큰 프로그램 실행의 상황(context) 내에서 익스플로이트의 실행을 구별할 수 있다.
[0053] 따라서, 일부 실시예들에서, 제 1 프로세스를 실행하는 하드웨어 디바이스를 포함하는 시스템, 및 안티바이러스 엔진이 하드웨어 디바이스와 통신하는 상태에서, 악성 소프트웨어 및/또는 펌웨어(바이러스들, 웜들, 루트키트들, 등과 같은 멀웨어를 포함함)를 검출, 방지 및/또는 제거하기 위한 안티바이러스 엔진을 포함하는, 방법들, 시스템들, 디바이스들, 장치, 물건들, 매체들, 및 다른 실행예들이 개시된다. 안티바이러스 엔진은 하드웨어 성능 카운터 데이터를 포함하는, 제 1 프로세스를 실행하는 하드웨어 디바이스를 위한 현재의 하드웨어 성능 데이터를 획득하도록 구성되며, 제 1 프로세스는 제 1 프로세스의 정상 동작을 나타내는 사전-기록된 하드웨어 성능 데이터와 연관된다. 안티바이러스 엔진은, 악성 프로세스가, 제 1 프로세스의 정상 동작을 나타내는 사전-기록된 하드웨어 성능 데이터로부터, 제 1 프로세스에 대응하는, 획득된 현재의 하드웨어 성능 데이터의 편차의 크기(extent)에 대한 결정에 기초하여, 제 1 프로세스의 성능에 영향을 미치는지 여부를 결정하도록 추가로 구성된다.
[0054] 따라서, 도 2를 참조하면, 악의적 프로세스가 존재하는지 그리고 희생 프로세스의 성능에 영향을 미치고 있는지를 결정하도록 구성되는 시스템(200)의 예시적인 구현에 대한 개략도가 도시된다. 시스템(200)은, 일부 실시예들에서, 성능 카운터 샘플링 유닛(또한 "샘플러"로 지칭됨)(212), 모니터링될 하드웨어 디바이스 상에서 통상적으로 실행되는 다양한 프로세스들에 대한 통상적 동작에 대응하는 표현적 베이스라인 하드웨어 성능 데이터를 저장/유지하고 또한 샘플링 유닛(212)에 의해 수집되는 하드웨어 성능 데이터(예를 들어, 벡터들로 조직화됨)를 저장할 수 있는 하드웨어 성능 데이터베이스(214), 및 특정 프로세스가 악의적 프로세스에 의해 감염되었는지(그리고 그에 따라 영향받는지)를 결정하기 위해, 수집된 하드웨어 성능 데이터를 분석하도록 구성되는 분류기(216)(다수의 개별적인, 그리고 가능하게는 독립적인 분류기들(216a-n)을 포함할 수 있음)를 포함하는 안티바이러스(AV) 엔진(210)을 포함한다 (일부 실시예들에서, 분류기(216)는 또한 모니터링되는 희생 프로세스의 성능에 영향을 미치는 악의적 프로세스를 더 구체적으로 식별하도록 구성될 수 있다). AV 엔진(210)은 일반적으로, 도 2에 도시된 프로세서 디바이스들(220 및/또는 222)과 같은 하나 이상의 하드웨어 디바이스들과 통신한다. 아래에서 더 상세히 논의될 바와 같이, AV(210)는 완전히 소프트웨어로, 완전히 하드웨어로 (예를 들어, 하드웨어 디바이스, 예를 들어, 모니터링되고 있는 합법적 프로세스들/프로그램들을 구동하는 프로세서 상에서 구현되는 전용 회로들), 또는 (예를 들어, 합법적 프로세스들/프로그램들을 구동하는 하드웨어 디바이스 상에서) 전용 하드웨어 회로로서 실현되는 AV 구현(예를 들어, 샘플링 유닛)의 적어도 일부에 의한 하드웨어/소프트웨어 조합으로 구현될 수 있다.
[0055] 샘플링 유닛(212)은, 예를 들어, 하드웨어 성능 카운터 데이터를 포함하는 하드웨어 성능 데이터를, 제어기 디바이스들과 같은 디바이스들, 예를 들어, 디바이스들(220 및 222)과 같은 프로세서 디바이스들, 또는 FPGA(field programmable gate array), ASIC(application specific integrated circuit), DSP 프로세서 등과 같은 모듈들을 이용하여 구현되는 제어기 디바이스들을 포함하는 임의의 다른 타입의 제어기 디바이스들을 포함할 수 있는 하나 이상의 하드웨어-디바이스들로부터 획득하도록 구성된다. 일반적으로, 하드웨어-기반 제어기 디바이스들은, 다양한 이벤트들, 예를 들어, 디바이스들(220 및 222) 중 하나 상에서 프로세스들 및 프로그램들의 실행 동안 발생하는 사이클들, 명령들, 캐시 손실들 등을 카운팅하도록 구성될 수 있는 하드웨어-관련 성능 카운터들을 포함한다. 합법적 프로그램들 또는 프로세스들, 예를 들어, Internet Explorer, Adobe Reader 등은, 디바이스들(220 및 222) 상에서 구현되는 하드웨어-관련 성능 카운터들에 의해 반영되는 자신들의 성능들을 가질 수 있고, 디바이스들(220 및 222)에 영향을 미치는 멀웨어에 의한 착취로 인해 자신들의 정상적 성능으로부터 벗어날 수 있다. 예를 들어, Intel For x86 프로세서 디바이스는 네개(4)의 구성가능한 성능 카운터들을 구현하고, 듀얼 ARM Cortex-A9 코어들을 갖는 OMAP4460 프로세서는 여섯개(6)의 구성가능한 성능 카운터들을 포함한다. AV 엔진(210)은, 공지된 제어기 설계들로부터 하드웨어 성능 데이터(예를 들어, 성능 카운터 데이터)를 획득하도록 구성되고, 따라서 AV 엔진(210)은, AV 엔진에 의해 모니터링되고 있는 하드웨어에 특정한 공지된 성능 카운터들로부터 하드웨어 성능 데이터를 획득하도록 구성될 수 있다. 즉, 특정 아키텍쳐에 대응하는 성능 카운터들로부터 하드웨어 성능 데이터를 획득하기 위해, 모니터링될 하드웨어의 특정 아키텍쳐에 대한 지식이 요구될 수 있다. Intel x86 프로세서 아키텍쳐 상에서 사용되는 하드웨어 성능 카운터들의 예들은,
· 0x0440 -- L1D_CACHE_LD.E_STATE;
· 0x0324 -- L2_RQSTS.LOADS;
· 0x03b1 -- UOPS_EXECUTED.PORT (1 또는 2); 및
· 0x7f88 -- BR_INST_EXEC.ANY
를 포함한다.
[0056] 하드웨어 성능 데이터가 획득될 수 있는, ARM Cortex-A9 코어 아키텍쳐 상의 통상적 카운터들(특징 이벤트 넘버 할당들)의 예들은, 이벤트 넘버들,
· 0x06 - 아키텍쳐 식으로 실행되는 메모리-판독 명령(데이터를 명시적으로 판독하는 모든 명령에 대해 카운터가 증분함);
· 0x07 - 아키텍쳐 식으로 실행되는 메모리-기록 명령(카운터가, 데이터를 명시적으로 기록한 모든 명령에 대해 카운터가 증분함);
· 0x0C - 예외를 제외하고, 아키텍쳐 식으로 실행되는 PC의 소프트웨어 변화(그의 조건 코드를 실패한 조건부 명령에 대해 카운터가 증분하지 않음);
· 0x0D - 아키텍쳐 식으로 실행된 즉시 브랜치(아키텍쳐 식으로 실행되는 모든 즉시 브랜치 명령들에 대해 카운터가 증분함);
· 0x0F - 아키텍쳐 식으로 실행되는 미할당된 액세스(미할당된 어드레스에 대한 액세스인 각각의 명령을 카운터가 카운팅함); 및
· 0x12 - 프로세서의 브랜치 예측 자원들에 의해 예측될 수 있는 프로그램 플로우에서 브랜치 또는 다른 변화를 카운터가 카운팅함
을 포함한다.
[0057] ARM Cortex-A9 코어 아키텍쳐 상에서 구현될 수 있는 또는 이용가능한 하드웨어 성능 카운터들에 대한 추가적인 정보는, 예를 들어, "ARM® Architecture Reference Manual, Arm®v7-A and ARM®v7-R edition, Errata markup"에서 제공되고, 상기 문헌의 내용은 그 전체가 인용에 의해 본원에 통합된다.
[0058] 일부 실시예들에서, 샘플링 유닛(212)은, 데이터 푸쉬 절차들을 통해 및/또는 데이터 풀 절차들을 통해 모니터링되는 하드웨어의 카운터들로부터 하드웨어 성능 데이터(마이크로-아키텍쳐 성능 카운터 데이터를 포함함)를 획득하도록 구성될 수 있다. 예를 들어, 데이터를 풀링하는 경우, AV 엔진(210)은 데이터 수집을 개시하여, 예를 들어, 카운터들의 실행을 인터럽팅함으로써 그리고/또는 인터럽트 없이 카운터들에 질의함으로써, 하드웨어 타겟들(예를 들어, 모니터링되고 있는 하드웨어에서 구현되는 특정 하드웨어 성능 카운터들)이 액세스되게 한다. 일부 실시예들에서, AV 엔진(210)은, 예를 들어, 샘플링 모듈(212)을 통해, 매 N 사이클들마다 한번 하드웨어를 인터럽트하도록 구성될 수 있거나(여기서, N은 미리 결정된 상수일 수 있거나, 랜덤 또는 의사랜덤 발생기에 기초하는 가변적 수일 수 있음), 다양한 성능/이벤트 카운터들 뿐만 아니라 다른 값들(예를 들어, 현재 실행하는 프로세스의 PID)을 샘플링할 수 있다. 인터럽트-기반 절차를 이용하여 샘플링 동작들을 수행하는 경우, 샘플링 유닛(212)은, 제어 신호들을 전송하거나 그렇지 않으면 실행 하드웨어가 인터럽트되도록 구성될 수 있고, 성능 카운터들 및/또는 다른 저장 하드웨어에 액세스하고 그리고 AV 엔진(210)에 의한 추가적인 프로세싱을 위해 인터럽트된 하드웨어의 카운터들 상에 저장된 값들을 리트리브하도록 구성될 수 있다. 일부 실시예들에서, 하드웨어 및/또는 카운터들의 인터럽트 시에, 인터럽트된 하드웨어는 먼저, 다양한 자신의 성능 카운터들에 의해 유지되는 데이터를 중앙 저장 위치에(예를 들어, 상태 스택에) 저장할 수 있고, 그 다음, 중앙 저장 위치에 저장된 데이터는 샘플링 유닛(212)에 의해 액세스 및 리트리브될 수 있다. 데이터-푸쉬 샘플링 모드를 구현하는 경우, 성능 카운터들(및/또는 모니터링되고 있는 하드웨어 상의 다른 샘플링 포인트들)에 의해 유지되는 데이터는, 모니터링되고 있는 하드웨어의 실행을 인터럽트 또는 성능 카운터들의 실행을 인터럽트하거나 인터럽트함이 없이, 정기적 인터벌 또는 부정기적 인터벌로 AV 엔진(210)에 (예를 들어, 샘플링 유닛(212)에) 통신될 수 있다. 따라서, 이러한 실시예들에서, 모니터링되는 하드웨어 디바이스는 하드웨어 성능 데이터를 AV 엔진(210)에 전송하는 것을 개시하도록 구성된다. 예를 들어, 데이터 푸쉬 모드에서, 모니터링되는 하드웨어 디바이스는, 요청을 (예를 들어, 샘플링 유닛(212)으로부터) 수신할 필요없이 하드웨어 성능 데이터를 전송하도록 구성될 수 있다.
[0059] 따라서, AV 엔진(210)의 샘플링 유닛(212)에 의해 구현되는 샘플링 동작들은, 모니터링되고 있는 하드웨어 상에서 실행되는 하나 이상의 프로세스들에 대해 모니터링되는 다양한 하드웨어 성능 카운터들 (및/또는 다른 입력 포인트들)의 출력에 대한 시간-기반 데이터를 획득할 수 있다. 하드웨어 성능 데이터에 추가하여, 프로세스의 ID(예를 들어, PID)와 같은 정보가 또한 레코딩되어, 하드웨어 성능 데이터를 프로세스와 연관/상관시키는 것을 가능하게 하고, 이러한 프로세스의 실행은 획득된 하드웨어 성능 데이터를 초래한다. 도한 프로세스들의 ID들을 레코딩하고 이들을 획득된 하드웨어 성능 데이터와 연관/상관시킴으로써, 본 명세서에서 설명되는 구현들은, 상이한 하드웨어 디바이스들에 걸친 프로세스의 실행으로부터 도출되는 하드웨어 성능 데이터를 추적할 수 있다. 예를 들어, 모니터링되고 있는 시스템이 다수의 프로세서 코어들(각각 자기 자신의 성능 카운터들의 세트를 가짐)을 포함하고, 프로세스들/스레드들이 보류되고 다른 코어들 상에서 실행을 재개할 수 있는 상황들에서, 획득된 하드웨어 성능 데이터와 함께 프로세스들의 PID들을 유지하는 것은, 프로세스들이 다른 하드웨어 디바이스들로 실행을 스위칭할 때 프로세스들의 동작을 추적하는 것을 가능하게 할 수 있다.
[0060] 거동이 모니터링되는 다양한 프로그램들을 실행하는데 사용되는 프로세서들이 하드웨어 성능 데이터를 수집하기 위해 하드웨어 성능 카운터들(HPC들) 및/또는 다른 메커니즘들을 사용하여 많은 이벤트들을 모니터링하는 것을 가능하게 하지만, 프로그램들의 실행을 특징화하는데 있어서, 이러한 모니터링되는 이벤트들 전부가 동일하게 유용하지는 않다. 따라서, 일부 실시예들에서, 예를 들면, 희생자 프로세스의 거동/성능이 자신의 정상 거동/성능들로부터 벗어났는지 여부를 결정하기 위해 단지 제한된 세트의 모니터링된 이벤트들이 사용될 필요가 있다. 도 3은 프로세스들의 정상 거동으로부터의 프로세스들의 편차의 결정을 용이하게 하기 위해 (예를 들면, HPC들을 사용하여) 모니터링될 수 있는 일부 예시적인 이벤트들을 열거한 테이블(300)을 제공한다. 테이블(300)에 열거된 예시적인 이벤트들은, 임의의 실행되는 프로그램에서 명령들의 실행 믹스의 표시를 제공하는 아키텍처 이벤트들, 및 일반적으로 시스템의 특정 하드웨어 구성에 종속하는 마이크로-아키텍처 이벤트들을 포함한다.
[0061] 일부 실시예들에서, 프로세서는 임의의 정해진 시간에서 소수의 이벤트들(예를 들면, 4 개의 이벤트들)만을 모니터링할 수 있다. 따라서, 그러한 실시예들에서, 그 프로그램/프로세스의 감염된 실행으로부터 프로그램/프로세스의 클린 실행을 가장 효과적으로 구별할 수 있는 모니터링을 위해 이용 가능한 이벤트들의 서브세트를 선택할 필요가 있을 수 있다. 이러한 서브세트의 선택은 (예를 들면, 프로그램들/프로세스들의 실행을 특징화하는데 유용한, 예를 들면, 프로세서의 HPC들을 통해 모니터링될 수 있는 때때로 수백 개의 가능한 이벤트들로부터 이벤트들의 초기 세트를 식별하여) 프로그램들의 실행을 특징화하는데 유용한 것으로 이전에 식별된 그러한 이벤트들로부터 이루어질 수 있다. 일부 실시예들에서, 피셔 스코어들(F-스코어)은, 특징이 그 프로그램/프로세스의 감염된 실행 동안에 획득된 측정들로부터, 모니터링되는 프로그램/프로세스의 클린 실행 동안에 획득된 하드웨어 성능 데이터(또한 "측정들"로 지칭됨) 사이를 얼마나 효율적으로 구별할 수 있는지의 수량 측정을 제공하는데 사용될 수 있다. 더 양호한 구별 거듭제곱을 갖는 특징은 상이한 클래스들로부터의 샘플들에 대한 표준 편차들과 평균들 사이의 더 큰 구분을 가질 것이다. F-스코어는 이러한 정도의 구분의 척도를 제공한다. F-스코어가 더 클수록, 특징이 더 구별적인 거듭제곱을 가질 가능성이 있다. F-스코어가 특징들 사이의 상호 정보/종속성을 설명하지 않을 수 있지만, 그럼에도 불구하고 F-스코어는, 그러한 특징에 대한 하드웨어 성능 데이터가 모니터링되는 프로그램/프로세스의 가능한 감염된 실행(즉, 활성화된 멀웨어에 의해 영향을 받는 실행)을 나타내는지를 결정하는데 사용될 수 있는 가능하게는 가장 유용한 특징들의 서브세트의 선택을 안내한다.
[0062] 따라서, 일부 구현들에서, (정당한 프로그램 또는 프로세스의 샘플링된/모니터링된 거동이 자신의 정상 거동에서 벗어났는지를 결정하는데 이후에 사용되는) 데이터 샘플들을 획득하기 위해 어떠한 이벤트들이 모니터링되는지를 식별하기 위해, 다양한 후보 이벤트들에 대한 대응하는 F-스코어들이 계산된다. 도 4의 테이블(400)에 예시된 바와 같이, 일부 실시예들에서, F-스코어들은 멀웨어 코드 실행의 상이한 스테이지들(예를 들면, 도 1에 도시된 스테이지들)에 대해 계산되고, 따라서 예를 들면, 멀웨어 코드 실행 스테이지 마다 2 개의 이벤트 카테고리들(예를 들면, 아키텍처 이벤트들 및 마이크로-아키텍처 이벤트들) 각각 뿐만 아니라 조합된 2 개의 카테고리들에 대해 여덟(8) 개의 상위 랭크된 이벤트들로 쇼트리스트 이벤트들을 감소시킬 수 있다. 따라서, 도 4에 도시된 바와 같이, 테이블(400)의 각각의 행은 멀웨어 코드 실행의 특정 스테이지에서 이벤트들의 특정 카테고리에 대한 다양한 이벤트들을 랭크하고, 따라서 감염된 희생자 프로그램/프로세스의 실행으로부터 희생자 프로그램/프로세스에 대한 클린 실행을 구별하기 위해 어떠한 이벤트들이 가장 유용할 것인지를 결정하는 것을 가능하게 한다. 예를 들면, 행(410)은 일부 멀웨어 코드 실행의 ROP 스테이지 동안에 그러한 이벤트들에 대한 계산된 F-스코어들에 따른 아키텍처 이벤트들의 랭킹이다. 일부 실시예들에서, 각각의 행으로부터 상위 네(4) 개의 이벤트들은, 우리가 특정 프로그램 또는 프로세스(예를 들면, IE 브라우저)의 베이스라인 특성 모델들을 구축하는데 사용될 아홉(9) 개의 후보 이벤트 세트들을 생성하도록 선택될 수 있다. 예를 들면, 테이블(400)의 행(410)에 도시된 바와 같이, ROP 스테이지에 대해, 4-상위 랭크된 아키텍처 이벤트들은, 이러한 예에서, RET, CALL_D, STORE 및 ARITH 이벤트들을 포함할 수 있다. 그후, 이벤트들의 하나의 세트로 구성된 각각의 모델은, 멀웨어 코드 실행의 다양한 스테이지들의 검출 시에 그의 효율에 대해 평가될 수 있다.
[0063] 데이터 샘플링은, 일부 실시예들에서, 하나의 시간 기점에서 4 개의 이벤트 카운트들의 동시의 측정들을 포함하는 하드웨어 성능 데이터 샘플을 획득함으로써 수행될 수 있다. 따라서, 그러한 실시예들에서, 4 개의 카운터 값들은, 예를 들면, 오프라인 감도 분석에 기초하여 결정된 카테고리들/라벨들을 통해 각각의 기점 동안에 획득될 수 있다. 각각의 샘플의 측정들은 벡터 서브공간으로 변환될 수 있어서, 각각의 분류 벡터는 4 개의 특징 벡터로서 표현된다. 각각의 벡터는, 이러한 특징 추출 프로세스를 사용하여, 샘플 입도에 대해 가장 작은 시간-슬라이스에서 취해진 측정들을 나타낸다. 이러한 특징들은 비시간적인 모델들을 구축하는데 사용될 수 있다. 멀웨어 쉘코드가 통상적으로 수시간 기점들에 걸쳐 실행되기 때문에, 공격될 수 있는 측정들에서 시간적인 관계들이 존재할 수 있다. 임의의 잠재적인 시간적인 정보를 모델링하기 위해, 각각의 샘플 벡터의 차원은, N 개의 연속적인 샘플들을 그룹화하고, 4N 개의 특징들로 벡터를 형성하기 위해 각각의 이벤트의 측정들을 결합함으로써 확장될 수 있다. 일부 구현들에서, 값 N(기점들에서 기간을 나타냄, 그 기간에 걸쳐 측정들이 취해짐)은 16 개의 특징들을 각각 포함하는 샘플 벡터들을 생성하기 위해 4(즉, N=4)로 설정될 수 있어서, 각각의 샘플 벡터는 4 개의 시간 기점들에 걸친 측정들을 효과적으로 나타낸다. 수시간 기점들에 걸쳐 샘플들을 그룹화함으로써, 이들 이벤트 측정들의 합성은 시간적인 모델들(프로그램들/프로세스들의 정상 거동으로부터의 가능한 편차를 결정하기 위해 모니터링되는 프로그램들/프로세스들의 시간적인 거동을 반영함)을 구축하는데 사용될 수 있다. 측정이 샘플링되는 입도에 따라, ROP 쉘코드의 실행이 단지 하나의 샘플의 스팬 내에 발생한다는 것이 주목된다.
[0064] 선택된 특징들의 서브세트에 대해서조차, 자신의 특징들이 감염된 것으로부터 클린 하드웨어 성능 데이터를 더 양호하게 구별할 수 있는 것으로 결정되기 때문에, 이벤트 변칙들이 사소하게 검출 가능하지 않은, 본원에 설명된 구현들의 실험 및 테스팅이 도시되었다. 예를 들면, 도 5는, 멀웨어 코드의 상이한 스테이지들의 실행으로 취해진 측정들이 공격이 없는 환경으로부터의 클린 측정들을 구별할 수 있는 방법의 정도를 나타내는, 다양한 마이크로-아키텍처 특징들에 대한 마이크로-아키텍처 측정들의 범위 및 변동의 시각적 게이지를 제공하는 "상자 그림(box-and-whisker)" 500a-d 그래프들을 포함한다. 감염된 것으로부터 클린 프로그램들/프로세스들의 하드웨어 성능에서의 명확한 차이들을 확인하는데 있어서 어려움은 2 개의 핵심적인 이유들, 즉, (1) 많은 값들이 제로 근처에 모이는 경우에 측정 분포들 대부분이 위치적으로 왜곡됨, 및 (2) 만약 존재하는 경우에, 공격 코드로 인한 베이스라인 이벤트 특성들로부터의 편차들이 용이하게 확인되지 않음으로부터 기인한다.
[0065] 따라서, 일부 실시예들에서, 하드웨어 성능 데이터는, 값들을 양으로 스케일링하기 위해, 예를 들면, 측정들에 대한 랭크-보존 거듭제곱 변환을 사용하여 프로세싱될 수 있다. 예를 들면, 통계 분야에서, 거듭제곱 변환은 비정상적으로 분포된 데이터를 대략적으로 정상 분포를 갖는 것으로 변환하기 위해 데이터에 일반적으로 적용되는 일군의 함수들이다. 결과적으로, 획득된 하드웨어 성능 데이터에 적용되는 거듭제곱 변환 함수는 멀웨어 코드 실행을 통해 야기된 실행중인 프로그램/프로세스의 베이스라인 특성들로부터의 작은 편차들을 확대하는 것을 가능하게 한다. 일부 실시예들에서, 각각의 이벤트 타입에 대해, 성능 카운터 값들의 정규화된 중앙값이 대략 0.5가 되도록 적절한 거듭제곱 파라미터 λ가 결정 또는 유도된다. 모든 그에 대응하는 측정들을 스케일링하기 위해 각각의 이벤트 i에 대해 파라미터들 λi이 결정 및 유지된다. normalizedi로 표기된, 이벤트 i에 대한 각각의 정규화 및 스케일링된 이벤트 측정은 다음과 같은 미가공 값(rawi)으로부터 변환되고,
Figure 112015096824481-pct00011
(1)
여기서 mini 및 maxi는 이벤트 i에 대한 최소 및 최대값들이다.
[0066] 이러한 거듭제곱 변환을 사용하여, 이벤트들의 분포들이 플로팅될 수 있어서, 예를 들면, 도 6에 예시된 플롯들(600)이 발생되고, 도 6에서 다양한 이벤트들에 대한 베이스라인 분포들로부터의 편차들은 변환 함수들을 사용하지 않고서 획득된 분포들에 대한 것보다 더 많이 확인 가능하다. 따라서, 하드웨어 성능 데이터에 대한 거듭제곱 변환 함수와 같은 변환 함수의 적용은 다양한 이벤트 타입들에 대한 멀웨어 코드 실행의 상이한 스테이지들로 인해 베이스라인 특성들로부터 편차들을 더 명확하게 설명하는 것을 가능하게 한다. 일부 이벤트들(가령, MISP_RET 및 STORE)은 특히 스테이지1 공격 쉘코드에 대해 비교적 더 큰 편차들을 보여준다. 이러한 이벤트들은 멀웨어 코드 실행의 존재를 나타내는데 있어서 더 큰 구별적인 거듭제곱을 소유할 가능성이 있다. 시각적으로 상관된 특정 이벤트들이 또한 존재한다. 예를 들면, RET 및 CALL은 유사한 분포들을 나타낸다. 부가적으로, 특정 유도/계산된 이벤트들(가령, %MISP_BR)과 그들의 구성성분 이벤트들 사이의 강한 상관이 관찰될 수 있다.
[0067] 일부 실시예들에서, 정당한 프로그램들 또는 프로세스들의 정상 거동으로부터의 관찰된 편차의 확대 또는 증폭을 가능하게 하기 위해 획득된 샘플 데이터에 대해 수행되는 프로세싱은 샘플링 유닛(212)의 부분으로서, 데이터베이스(214)의 부분으로서, 분류기(216) 유닛의 부분으로서, 또는 본원에 설명된 프로세싱을 수행하도록 전용화된 별개의 유닛으로서 구현될 수 있다.
[0068] 몇몇 실시예들에서, 샘플링 유닛(212)은, 하드웨어 디바이스가 모니터링되고 있을 시에 적어도 부분적으로 실현될 수도 있다. 예를 들어, 샘플링 유닛(212)은, FPGA, ASIC 등과 같은 특수화된 하드웨어-기반 제어기 상의 하드웨어 실현으로서 구현될 수도 있다. 몇몇 실시예들에서, 샘플링 유닛(212)은, 머신 상에서 실행하고 있고 비-악성 프로세스들의 일반적인 성능에 영향을 주고 있는 악성 프로세스들을 검출하기 위하여 AV 엔진(210)에 의해 모니터링되고 있는 프로세서-기반 디바이스를 포함하는 머신 상에서 실행하는 소프트웨어 구현으로서 적어도 부분적으로 실현될 수도 있다. 예를 들어, 프로세서-디바이스의 다수의 범용 코어들 중 하나는, AV 엔진의 적어도 일부의 소프트웨어 실현을 실행하도록 할당될 수도 있다. 몇몇 실시예들에서, 샘플링 유닛은, 모니터링되는 프로세스들/프로그램들이 실행하고 있는 프로세서(들)로부터의 하드웨어 성능 데이터의 수집을 야기하도록 구성된 소프트웨어 구현으로서 실현될 수도 있다.
[0069] 언급된 바와 같이, 도 2에 도시된 AV 엔진(210)은 또한, 모니터링/관측되고 있는 하드웨어로부터 획득된 하드웨어 성능 데이터 뿐만 아니라, 모니터링되고 있는 하드웨어 디바이스 상에서 실행할 수도 있는 다양한 프로세스들(예를 들어, 비-악성 프로세스들)에 대한 일반적인 거동을 대표하는 데이터(예를 들어, 다양한 하드웨어 성능 이벤트들에 대한 시계열(time series) 트레이스들)를 포함하는 (예를 들어, 원격 서버들과 같은 원격 노드들로부터 획득된) 미리 결정된 데이터 세트들을 저장하도록 구성된 하드웨어 성능 데이터베이스(214)를 포함한다. 몇몇 실시예들에서, AV 엔진(210)은, 모니터링되고 있는 프로세스들에 대한 새로운 또는 변경된 하드웨어 성능 데이터(예를 들어, 하드웨어 성능 카운터 데이터)를 포함하도록 주기적으로(규칙적인 또는 불규칙적인 간격들로) 업데이트될 수도 있다.
[0070] 몇몇 실시예들에서, 데이터베이스(214)는, 하드웨어 디바이스가 모니터링되고 있을 시에 적어도 부분적으로 실현될 수도 있다. 몇몇 실시예들에서, 하드웨어 성능 데이터베이스(214)는, AV 엔진(210)에 의해 모니터링되고 있는 프로세서-기반 디바이스를 포함하는 머신 상에서 실행하는 소프트웨어 구현으로서 적어도 부분적으로 실현될 수도 있다(예를 들어, 데이터베이스(214)의 소프트웨어 실현을 실행하기 위해 프로세서-디바이스의 다수의 범용 코어들 중 하나를 할당하거나, 그렇지 않으면 AV 구현의 데이터베이스(214)를 구동하기 위해 프로세서-디바이스를 사용함). 몇몇 실시예들에서, 데이터베이스(214)는, 모니터링되고 있는 하드웨어 디바이스와 통신하는 원격 머신 상에서 하드웨어 및/또는 소프트웨어로 구현될 수도 있다.
[0071] 계속 도 2를 참조하면, 몇몇 실시예들에서 (머신-습득 엔진으로 또한 지칭되는) 분류기(216)를 이용하여 악성 프로세스가 빅팀(또는 잠재적인 빅팀) 프로세스의 성능에 영향을 주고 있는지의 결정이 수행된다. 몇몇 실시예들에서, 분류기(216)는 또한, 특정한 악성 프로세스들을 식별하도록 구성될 수도 있다.
[0072] 몇몇 구현들에서, AV 엔진(210)의 분류기(216)와 같은 분류기는, 트레이닝 입력 데이터 및 입력 데이터의 대응하는 출력을 반복적으로 분석하고(예를 들어, 악성 프로세스가 빅팀 프로세스의 일반적인 거동으로부터의 일탈을 초래하고 있다는 결정, 및/또는 악성 프로세스의 식별), 모니터링되고 있는 하드웨어 디바이스로부터 수집된 후속 하드웨어 성능 데이터 입력들이 분류기의 습득된 거동과 일치하는 출력들을 생성하게 하는 기능들 또는 모델들을 도출하도록 구성될 수도 있다. 그러한 분류기는, 악성 프로세스들을 식별하고 그리고/또는 정당한(빅팀) 프로세스들의 일반적인 성능 및 거동으로부터의 일탈들을 결정하도록 구성되어야 한다.
[0073] 일반적으로, 머신 습득 분류기들은, 데이터 아이템들을 조사하며, 각각의 데이터 아이템이 N개의 그룹들(클래스들) 중 어느 것에 속하는지를 결정하도록 구성된다. 분류 절차들은 확률들, 예를 들어, 데이터 아이템이 각각의 클래스에 속하는 우도들의 벡터를 생성할 수 있다. 비일반적인-기반 프로세스 검출에서, 2개의 클래스들, 즉 일반적인 거동 및 비일반적인 거동(잠재적으로는, 멀웨어에 의해 야기된 부당이용으로부터 초래됨)이 정의될 수도 있다. 결과로서, 분류기들로부터의 출력은, 악성 프로세스에 의해 영향받는(예를 들어, 부당 이용되는) 데이터 아이템의 우도를 표현하는 확률들을 포함할 수도 있다.
[0074] 특정한 분류기가 (AV 엔진(210)에 의해 수집된 시계열 하드웨어 성능 데이터와 같은) 시계열 데이터를 프로세싱/분류하도록 적응되지 않는 상황들에서, 이러한 어려움은, 상이한 시간 인스턴스들에서 발생했던 (예를 들어, 하드웨어의 특정한 위치, 예컨대 특정한 카운터에서 발생한 하드웨어 성능 이벤트들에 대응하는) 입력 데이터를 분류기로의 입력으로서 제시된 특성들의 단일 벡터로 배열함으로써 극복된다. 언급된 바와 같이, 이러한 접근법 하에서, 시간-기반 데이터는 (예를 들어, 샘플링 유닛(212) 또는 데이터베이스(214)에 의해) 데이터의 벡터로 통합될 수도 있으며, 여기서, 각각의 벡터 포인트는, 상이한 시간 인스턴스에서 발생했던 특정한 카운터 또는 위치에 대한 하드웨어 성능 데이터 샘플에 대응한다. 부가적으로 및/또는 대안적으로, 시간-의존적인 데이터의 시퀀스들을 핸들링하도록 일반적으로 구성되지 않는 분류기들을 사용하여 시간-의존적인 데이터(하드웨어 성능 데이터)를 프로세싱하기 위한 다른 접근법은, 상이한 시간 인스턴스들에서 특정한 프로세스에 대해 취해진 분류기 데이터 포인트들에 대해 별개로 프로세싱하며, 전체 프로세스를 분류하기 위해 분류기의 결과들을 어그리게이팅하는 것이다. 몇몇 실시예들에서, 상이한 어그리게이션 동작들은 분류기의 결과들에 적용될 수도 있으며, 최상의 분류 결과들을 산출하기 위하여 (예를 들어, 테스팅 및 실험을 통해) 결정된 어그리게이션 동작은 장래의 어그리게이션 동작들을 수행하기 위해 사용될 수도 있다. 예를 들어, 사용될 수도 있는 하나의 어그리게이션 동작은 간단한 평균 동작이다. 사용될 수도 있는 다른 어그리게이션 동작은, 예를 들어, 다양한 이용가능한 클래스들 각각에 속할 가능성이 동등하게 있는 데이터 포인트들이 제로 가중치를 부여받는 반면, 높은 확률들을 갖는 데이터 포인트들이 비교적 큰 가중치들을 부여받는 가중된 평균 동작이다.
[0075] 실행중인 프로세스들에 대응하는 수집된 하드웨어 성능 데이터 포인트들을 프로세싱/분석하는데 사용될 수도 있는 분류기들의 타입들은 2개의 메인 분류기 카테고리들, 즉 선형 분류기들 및 비-선형 분류기들에 속한다. 선형 분류 절차들은, 초평면에 의해 n-차원 데이터 포인트들을 분리시키기를 시도하도록 구성되며, 즉 평면의 일 측 상의 포인트들은 클래스 X의 포인트들이고, 다른 측 상의 포인트들은 클래스 Y의 포인트들이다. 비-선형 분류기들은 일반적으로, 이러한 타입의 선형 분리에 의존하지 않는다. 따라서, 분류를 도출하기 위한 임의의 동작이 적용될 수도 있다.
[0076] 몇몇 실시예들에서, 하나 또는 그 초과의 분류 절차들은, 샘플링 유닛에 의해 수집된 현재의 하드웨어 성능 데이터에 직접 적용될 수도 있다(또는, 하나 또는 그 초과의 분류 절차들은, 현재의 하드웨어 성능 데이터에 적용되는 변환 기능과 같은 몇몇 포스트-샘플링 동작으로부터 초래하는 데이터에 적용될 수도 있음). 분류기(들)는, 분류기(들)로의 입력으로서 제시되는 현재의 하드웨어 성능 데이터로부터, 그 입력 데이터가 일반적인(클린) 하드웨어 성능 데이터로부터 일탈하는 감염된 하드웨어 성능 데이터에 잠재적으로 대응하는지를 결정한다.
[0077] 더 상세하게, 멀웨어 부당이용들의 비-일반적인-기반 검출에 대한 하드웨어 성능 카운터(HPC) 측정들(또는 다른 하드웨어 성능 측정들)의 사용은, 보호될 각각의 프로그램/프로세스에 대한 베이스라인 특징들(예를 들어, 감염된 성능 데이터로부터 클린 성능 데이터를 식별하는 것을 가능하게 할시에 효율적이도록 결정되는 도 4의 표(400)에 리스트된 이벤트들과 같은 다양한 이벤트들에 대한 베이스라인 데이터)을 설명하도록 분류 모델을 요구한다. 그러한 프로그램 특징들은 정보가 비교적 풍부하며, 따라서, 이용가능한 많은 수의 프로그램들/프로세스들이 주어지면, 모델들을 수동적으로 구축하는 것이 어렵다. 대신, 감시되지 않은 머신 습득 기술들은 데이터 내의 가능한 숨겨진 구조들을 동적으로 습득하기 위해 사용될 수도 있다. 그러한 숨겨진 구조들(또한, 모델들로 지칭됨)은 부당이용 동안 일탈들을 검출하는데 사용될 수 있다. 일-클래스 접근법은, 분류기가 클린 환경으로부터 취해진 측정들을 이용하여 단독으로 트레이닝될 수 있기 때문에 일반적으로 매우 유용하다. 이것은, 실제로 구현 및 수집하기에 어려운, 부당이용된 코드에 의해 영향받은 측정들을 수집할 필요성을 제거한다. 몇몇 실시예들에서, 특징들은, 비-선형 RBF(Radial Basis Function) 커널을 사용하는 oc-SVM(one-class Support Vector Machine) 분류기를 이용하여 모델링될 수 있다. 몇몇 실시예들에서, 다음을 포함하는 다른 타입들의 분류기들이 사용될 수도 있다.
● KNN(K-Nearest Neighbors) - KNN 분류기는, 트레이닝 데이터 포인트들을 그들의 라벨들과 함께, k-차원 공간에서 포인트들/데이터를 조직화하기 위해 사용되는 k-차원 트리("k-d-트리"로 지칭됨)와 같은 공간 데이터 구조에 삽입함으로써 트레이닝된다. 데이터 포인트를 분류하기 위해, (유클리드 공간에서) 그 포인트의 k개의 가장 인접한 이웃들은 공간 데이터 구조를 사용하여 발견된다. 데이터 포인트가 특정한 클래스를 갖는 확률은, 얼마나 많은 데이터 포인트의 이웃들이 그 클래스를 갖는지 및 그들이 서로 얼마나 떨어져 있는지에 의해 결정된다.
● 결정 트리 - 데이터 포인트들을 분류하기 위한 다른 방식은 결정 트리로 지칭되는 비-공간 트리를 사용하는 것이다. 이러한 트리는, 특정한 차원 상의 그룹들로 트레이닝 데이터를 귀납적으로 분할함으로써 구축된다. 차원 및 분할된 포인트들은, 각각의 그룹에 대한 엔트로피를 최소화시키도록 선택된다. 이들 결정들은 또한, 몇몇 랜덤화를 통합할 수 있어서, 트리의 품질을 감소시키지만, 오버트레이닝을 방지하는 것을 돕는다. 몇몇 최소 엔트로피가 충족되거나, 또는 최대 깊이에 히트(hit)된 이후, 분기가 종료하며, 그의 그룹의 라벨들의 믹스를 그에 저장한다. 새로운 데이터 포인트를 분류하기 위해, 결정 트리는, 새로운 포인트의 그룹(리프 노드(leaf node))을 발견하기 위해 트리를 횡단하고, 저장된 믹스를 리턴한다.
● 랜덤 포레스트 - 분류기의 정확도를 증가시키기 위한 일 방식은, 많은 상이한 분류기들을 사용하고 결과들을 결합시키는 것이다. 랜덤 포레스트에서, 다수의 결정 트리들은 몇몇 랜덤화를 사용하여 구축된다. 새로운 데이터 포인트를 분류할 경우, 포레스트 내의 모든 트리들의 결과들은 동등하게 가중되어, 결과를 생성한다.
● ANN(Artificial Neural Network) - 신경 네트워크 머신은, 다양한 가중치들을 이용하여 서로 접속되는 뉴런들을 포함함으로써 생물학적 두뇌들을 모델링하기를 시도한다. 접속들 사이의 가중값들은 변경될 수 있으며, 따라서, 신경 네트워크가 그것이 수신하는 트레이닝 데이터에 응답하여 적응(또는 습득)할 수 있게 한다. 피드-포워드 신경 넷들에서, 입력 값들은 하나의 에지에서 공급되며, 무사이클(cycle-less) 네트워크를 통해 출력 노드들로 전파된다. 몇몇 실시예들에서, 각각의 차원에 대해 하나의 입력 뉴런, 및 2개의 출력 노드들(예를 들어, 하나는 멀웨어가 구동중인 확률을 표시하고, 하나는 어떠한 멀웨어도 구동중이지 않은 확률을 표시함)이 정의된다.
● 텐서 밀도 - 이러한 분류기는 입력 공간을 상이한 버켓들로 분리화(discretize)시킨다. 각각의 버켓은 트레이닝 데이터 세트에 클래스들의 믹스를 포함한다. 데이터 포인트는, 그의 빈을 발견하고 저장된 믹스를 리턴함으로써 분류된다. 일반적으로, 텐서 밀도 분류기는 O(1) 룩업 시간을 사용하며, 따라서, 시간-효율적인 것으로 고려된다.
[0078] 몇몇 실시예들에서, 분류기들은 최적합 곡선들, 히든 Markov 모델에 기초하는 분류 프로시저 및/또는 다른 타입들의 기계 학습 기법들을 유도하기 위해 회귀(regression) 기법들을 이용하여 구현될 수 있다. 히든 Markov 모델-기반 분류기가 이용되는 실시예들에서, 프로세싱되는 데이터(예를 들어, 하드웨어 성능 데이터)의 패턴들은 자기-유사성 분석을 이용하여 식별될 수 있고, 패턴들의 트랜지션들은 데이터가 분류되는 히든 Markov 모델을 구축하기 위해 이용될 수 있다. 몇몇 실시예들에서, 단지 감소된 컴퓨테이셔널 요건들을 갖는 데이터를 정확하게 분류할 수 있는 커널 방법들과 같은 선형 분류 기법들이 또한 이용될 수 있다.
[0079] 몇몇 실시예들에서, 분류 프로시저들은 모니터링되는 빅팀 프로세스(들)에 대응하는 획득된 현재 하드웨어 성능 데이터 및 빅팀 프로세스(들)의 정상 동작을 표현하는 사전에 레코딩된 하드웨어 성능 데이터로부터(또는 본원에 설명되는 변환 기능 프로세싱과 같은 몇몇 포스트-샘플링 프로세싱으로부터 발생하는 데이터로부터) 컴퓨팅되는 스코어들(scores)/메트릭들/측정들(measures)에 적용될 수 있다. 이러한 컴퓨팅된 스코어들은 빅팀 프로세스의 현재 동작과 빅팀 프로세스의 정상 동작 사이의 차를 표현할 수 있다.
[0080] 기술된 바와 같이, 도 2의 AV 엔진(210)과 같은 AV 엔진은 전적으로 하드웨어(예를 들어, 모니터링될 하드웨어 디바이스 상의 모듈로서 구현됨)로, 전적으로 소프트웨어로(예를 들어, 모니터링될 하드웨어를 포함하는 컴퓨팅 시스템 상에서 실행되는 소프트웨어 애플리케이션으로서), 또는 하나의 컴포넌트(예를 들어, 도 2의 샘플링 유닛(212)이 하드웨어로 구현되는 하드웨어-소프트웨어 결합 구현으로서 실현될 수 있지만, 데이터베이스 및 분류기 유닛들(214 및 216)은, 예를 들어, 소프트웨어(로컬 또는 원격 기계 상에서 실행되거나, 모니터링되는 하드웨어 디바이스 상에서 실행될 수 있음)를 통해 구현된다. 소프트웨어에 의해 적어도 부분적으로 구현되는 경우, 소프트웨어 컴포넌트(들)는 데이터(예를 들어, 샘플링 유닛에 의해 획득된 하드웨어 성능 데이터)를 수신하기 위해 그리고/또는 데이터 또는 제어 신호들을 하드웨어-기반 컴포넌트로 송신하기 위해 (예를 들어, 인터페이싱 프로시저들을 이용하여) 하드웨어 컴포넌트와 통신하도록 구성될 수 있다.
[0081] 도 7을 참조하면, (도 2의 AV 엔진(210)과 같은) AV 엔진이 구현되는 예시적 시스템(700)이 도시된다. 시스템(700)은 제어기 디바이스(710)를 포함할 수 있고, 제어기 디바이스(710)는 개인용 컴퓨터, 특수화된 컴퓨팅 디바이스(프로그래머블 디바이스 또는 그 외의 것) 등일 수 있고, 제어기 디바이스(710)는, 몇몇 구현들에서, 프로세서-기반 디바이스 또는 유닛, 이를테면, CPU(central processor unit)(712)를 포함한다. 몇몇 실시예들에서, 제어기 디바이스(710)는 FPGA(field programmable gate array), ASIC(application-specific integrated circuit), DSP 프로세서 등과 같은 모듈들을 이용하여 적어도 부분적으로 실현될 수 있다.
[0082] 기술된 바와 같이, 몇몇 실시예들에서, AV 엔진의 적어도 일부분은 모니터링될 하드웨어 디바이스 상에서 직접적으로 하드웨어로 구현될 수 있고 그리고/또는 전용(및/또는 보안) 제어기 디바이스 상에서 실행되는 소프트웨어로 구현될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, CPU(712)는 멀티-코어 프로세서일 수 있고, AV 엔진의 하드웨어 부분은 CPU(712)의 코어들(713) 중 하나 또는 둘 이상 상에서 실현될 수 있고, AV 엔진의 기능들 중 하나 또는 둘 이상을 수행(예를 들어, 하드웨어 성능 데이터를 수집)하도록 (예를 들어, 프리-제조 또는 포스트-제조 프로그래밍을 통해) 구성될 수 있다. 모니터링될 하드웨어 디바이스가 주문형 제어기 디바이스(예를 들어, 주문형 집적 회로로서 구현됨)인 경우, AV의 하드웨어-부분은, 예를 들어, 네트워크-온-칩, 온-칩/오프-칩 FPGA 또는 오프-칩 ASIC 코-프로세서 상에 있는 특수 목적의 멀웨어 검출 유닛들으로서 제어기의 제조 시간에 실현될 수 있다. 이러한 선택들은 유연성 및 영역-효율성 및 에너지-효율성에 관해 상이한 트레이드-오프들을 표현한다. 안전 보호를 하드웨어 레벨로 이동시키는 것은 몇몇 문제들을 해결하며, 몇몇 관심있는 기회들을 제공한다. 예를 들어, 커널이 절충되는 경우에도, 안전 시스템은 소프트웨어에 의해 디스에이블될 수 없다는 것이 보장된다. 둘째로, 안전 시스템이 운영 시스템 아래에서 실행되기 때문에, 안전 시스템은 커널 익스플로잇(kernel exploit)들 및 커널에 대한 다른 공격들로부터 보호할 수 있다. 셋째로, (AV 엔진의 적어도 몇몇 부분들을 수용하기 위해) 하드웨어 그 자체가 수정되기 때문에, 임의적 상태 및 동적 모니터링 능력들이 부가될 수 있다. 이것은 소프트웨어 동작으로의 안전 시스템의 광대한 뷰잉 능력들을 제공한다.
[0083] 도 7에 추가로 도시된 바와 같이, CPU(712) 및/또는 제어기 기능을 구현하기 위한 다른 주문형 하드웨어와 더불어, 시스템(700)은 메인 메모리, 캐시 메모리 및 버스 인터페이스 회로들(도 7에 도시되지 않음)을 포함한다. 예를 들어, 제어기 디바이스(710)는 대용량 저장 엘리먼트(714), 이를테면, 시스템과 연관된 하드 드라이브 또는 플래시 드라이브를 포함할 수 있다. 컴퓨팅 시스템(700)은 키보드 또는 키패드 또는 몇몇 다른 사용자 입력 인터페이스(716) 및 사용자가 이들에 액세스할 수 있는 곳에 배치될 수 있는 모니터(720), 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display) 모니터 등을 더 포함할 수 있다.
[0084] 제어기 디바이스(710)는, 예를 들어, CPU(712) 및/또는 프로세스들이 실행되는(또는 실행될 수 있는) 몇몇 다른 주문형 디바이스 상의 하나 또는 둘 이상의 프로세스들 또는 프로그램들(예를 들어, 멀웨이의 실행에 의해 절충될 수 있는 정당한(legitimate) 프로세스들)의 실행으로부터 발행하는 현재 하드웨어 성능 데이터를 획득하기 위해 동작들의 구현을 가능하게 하고, 획득된 하드웨어 성능 데이터에 기초하여, 현재 하드웨어 성능 데이터가 실행 프로세스들 중 하나 또는 둘 이상의 실행 프로세스들의 정상 하드웨어 성능 동작(미리 획득된 베이스라인 하드웨어 성능 데이터에 의해 표현됨)으로부터 이탈(deviate)하는지 여부를 결정하도록 구성된다. 몇몇 실시예들에서, 실행되는 하나 또는 둘 이상의 프로세스들의 정상 동작으로부터의 이탈(deviation)을 야기하는 하나 또는 둘 이상의 멀웨이들의 아이덴티티들은 수집 또는 획득된 현재 하드웨어 성능 데이터에 기초하여 결정될 수 있다. 따라서, 저장 디바이스(714)는 몇몇 실시예들(예를 들어, AV가 소프트웨어로 적어도 부분적으로 구현되는 실시예들)에서, 예를 들어, 제어기 디바이스(710)의 프로세서-기반 구현 상에서 실행될 때, 디바이스로 하여금, 하드웨어 성능 데이터를 획득하고, 제어기 디바이스(710) 상에서 실행되는 정당한 프로세스들의 정상 하드웨어 성능 동작으로부터의 이탈을 결정하기 위한 프로시저들을 포함하여, 설명된 프로시저들의 구현을 가능하게 하기 위한 동작들을 수행하게 하는 컴퓨터 프로그램 물건을 포함할 수 있다.
[0085] 제어기 디바이스(710)는 입력/출력 기능을 인에이블하기 위한 주변 디바이스들을 더 포함할 수 있다. 이러한 주변 디바이스들은, 예를 들어, CD-ROM 드라이브 및/또는 플래시 드라이브(예를 들어, 이동식(removable) 플래시 드라이브), 또는 연결된 시스템으로 관련 컨텐츠를 다운로드하기 위한 네트워크 연결(예를 들어, USB 포트 및/또는 무선 트랜시버를 이용하여 구현됨)을 포함할 수 있다. 이러한 주변 디바이스들은 또한, 각각의 시스템/디바이스의 일반적 동작을 가능하게 하기 위한 컴퓨터 명령들을 포함하는 소프트웨어를 다운로드하기 위해 이용될 수 있다. 기술된 바와 같이, 대안적으로 그리고/또는 추가적으로, 몇몇 실시예들에서, 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array), ASIC(application-specific integrated circuit), DSP 프로세서 등은 시스템(700)의 구현에서 이용될 수 있다. 제어기 디바이스(710)와 포함될 수 있는 다른 모듈들은 스피커들, 사운드 카드, 사용자가 시스템(700)으로의 입력을 제공할 수 있게 하는 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼이다. 제어기 디바이스(710)는 운영 시스템, 예를 들어, Windows XP® Microsoft Corporation 운영 시스템, Unix, Ubuntu 운영 시스템 등을 포함할 수 있다.
[0086] 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로 또한 알려져 있음)은 프로그래머블 프로세서에 대한 기계 명령들을 포함하며, 하이-레벨 프로시저 및/또는 객체-지향 프로그래밍 언어로 그리고/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에서 이용되는 바와 같이, "기계 판독가능한 매체"라는 용어는, 기계 판독가능한 신호로서 기계 명령들을 수신하는 비-일시적 기계 판독가능한 매체를 포함하는, 기계 명령들 및/또는 데이터를 프로그래머블 프로세서에 제공하기 위해 이용되는 임의의 비-일시적 컴퓨터 프로그램 물건, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, PLD(Programmable Logic Device)들)를 지칭한다. 비-일시적 컴퓨터 판독가능한 매체들은, 매체들, 이를테면, 자기 매체들(이를테면, 하드 디스크들, 플로피 디스크들 등), 광 매체들(이를테면, 컴팩트 디스크들, 디지털 비디오 디스크들, 블루-레이 디스크들 등), 반도체 매체들(이를테면, 플래시 메모리, EPROM(electrically programmable read only memory), EEPROM(electrically erasable programmable read only Memory) 등), 송신 동안 어떠한 영속성의 외관(semblance of permanence)도 결여되지 않거나 플릿(fleet)되지 않는 임의의 적합한 매체들, 및/또는 임의의 적합한 유형 매체들을 포함할 수 있다.
[0087] 본원에 설명된 청구 대상의 전부 또는 그 일부는, (예를 들어, 데이터 서버로서) 백-엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나, 프론트-엔드 컴포넌트(예를 들어, 사용자가 본원에 설명된 청구 대상의 실시예와 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터) 또는 이러한 백-엔드, 미들웨어 또는 프론트-엔드 컴포넌트들의 임의의 결합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들어, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크("LAN"), 광역 네트워크 ("WAN") 및 인터넷을 포함한다.
[0088] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이며, 전형적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트 및 서버의 관계는 일반적으로, 각각의 컴퓨터들 상에서 실행되고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
[0089] 이제 도 8을 참조하면, 악성 프로세스가 희생자 프로세스에 영향을 미치고 있는지를 결정하기 위한 예시적인 프로시저(800)의 흐름도가 도시된다. 프로시저(800)는, 제 1 프로세스의 노멀 행동을 표현하는 미리-레코딩된 하드웨어 성능 데이터와 연관된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 카운터 데이터를 포함하는 현재의 하드웨어 성능 데이터를 획득하는 것(810)을 포함한다. 유의된 바와 같이, 몇몇 실시예들에서, 하드웨어 성능 데이터를 획득하는 것은, 정당한 프로세스들(예를 들어, 인터넷 익스플로러, 어도비 PDF 리더 등)을 러닝하는 하드웨어-디바이스의 파트로서 하드웨어로 적어도 부분적으로 구현될 수 있는 샘플링 유닛에 의해 수행될 수 있고, (예를 들어, 하드웨어 성능 카운터들에 의해 측정되는) 하드웨어 성능 데이터에 의해 표현되는 바와 같은 그것의 행동이 모니터링될 것이다. 몇몇 실시예들에서, 하드웨어 성능 데이터는, 규칙적인 또는 불규칙적인 간격들로(예를 들어, 의사 랜덤 프로세스에 의해 결정되는 길이의 간격들로) 주기적으로 획득될 수 있고, (예를 들어, 프로세스들을 러닝하는 하드웨어 디바이스의 인터럽션으로 또는 그러한 인터럽션 없이, 하드웨어 성능 데이터의 수집을 개시하는 샘플링 유닛에 의한) 데이터-풀 프로세스를 통해, 또는 데이터 푸시 프로세스(예를 들어, AV 엔진에 대한 하드웨어 성능 데이터의 주기적인 통신을 개시하는 하드웨어 디바이스)를 통해 획득될 수 있다. 몇몇 실시예들에서, 예를 들어, 이벤트들/피처들에 대해, 하드웨어 성능 데이터의 서브세트만이 수집될 수 있고, 그것의 대응하는 하드웨어 성능 측정들은 일반적으로, 감염된 프로세스들/프로그램들과 클린 프로세스들/프로그램들에 대해 수집된 성능 데이터 사이의 차이를 나타낼 수 있다. 그러한 서브세트의 선택은 다양한 피처들 또는 이벤트들에 대한 컴퓨팅된 메트릭들(예를 들어, F-스코어들)에 기초할 수 있다.
[0090] 획득된 현재의 하드웨어 성능 데이터를 사용하여, 제 1 프로세스의 노멀 행동을 표현하는 미리-레코딩된 하드웨어 성능 데이터로부터의 제 1 프로세스에 대응하는 획득된 현재의 하드웨어 성능 데이터의 편차의 정도의 결정에 기초하여, 악성 프로세스(예를 들어, 멀웨어)가 제 1 프로세스(예를 들어, 희생자 프로세스)의 성능에 영향을 미치고 있는지에 대해 결정이 행해진다(820). 몇몇 실시예들에서, 희생자 프로세스의 노멀 행동으로부터 편차를 야기하는 악성 프로세스(들)의 아이덴티티 또는 타입에 대해 더 구체적인 결정이 행해질 수 있다. 유의된 바와 같이, 프로세스의 실행으로부터 기인하는 하드웨어 성능 데이터가, 그것이 프로세스의 노멀 하드웨어 성능 데이터로부터 벗어나는 것인지에 대한 결정은, 예를 들어, 모니터링될 다양한 정당한 프로세스들 또는 프로그램들에 대해 획득된 클린(비-감염된) 하드웨어 성능 데이터를 사용하여 트레이닝되었던 (도 2에서 예시된 하나 또는 그 초과의 분류기들(216a-n)과 같은) 하나 또는 그 초과의 분류기들을 포함할 수 있는 머신 학습 시스템을 사용하여 수행될 수 있다. 몇몇 실시예들에서, 그러한 하나 또는 그 초과의 분류기들은, 예를 들어, 비-선형 RBF(radial basis 기능) 커널을 구현하는 서포트 벡터 머신, k-최근접 이웃 프로시저, 판정 트리 프로시저, 랜덤 포레스트 프로시저, 인공 신경망 프로시저, 텐서 밀도 프로시저, 및/또는 은닉 마코프 모델 프로시저 중 하나 또는 그 초과를 포함할 수 있다.
[0091] 모니터링되고 있는 정당한 프로그램/프로세스의 노멀 행동에 악성 프로세스가 영향을 미쳤는지를 결정하기 위해, 그리고/또는 그 악성 프로세스를 식별하기 위해, 본원에서 설명되는 시스템들, 프로시저들, 및 다른 구현들의 유효성을 결정하기 위해, 본원에서 설명되는 시스템들, 프로시저들, 및 다른 구현들이, 다음의 실험적인 셋업을 사용하여 테스트되었다.
[0092] 본원에서 설명되는 시스템들, 프로시저들, 및 다른 구현들의 유효성을 결정하기 위해 사용되었던 익스플로잇들은, 인터넷 익스플로러(IE) 8, 및 그것의 웹 플러그-인들 중 2개, 즉, 어도비 플래시 11.3.300.257 및 어도비 리더 9.3.4 상의 보안 취약점들을 타겟팅하는 익스플로잇들 CVE-2012-4792, CVE-2012-1535, 및 CVE-2010-2883을 포함하였다. 익스플로잇들은, 널리-사용되는 침투 테스팅 툴 메타스플로잇을 사용하여 생성되었다. 메타스플로잇은, 그것이 채용하는 익스플로이테이션 기법들이 실세계 익스플로잇들의 멀티-스테이지 성질을 표현하기 때문에 사용되었다. 상이한 ROP 셸코드를 사용하여 상이한 취약점들이 타게팅되었고, 익스플로잇들에서 사용되는 스테이지1 셸코드 및 스테이지2 최종 페이로드가 변화되었다. 생성된 익스플로잇들에서의 다양성이 아래의 표 1에서 요약된다.
Figure 112015096824481-pct00012
[0093] 윈도우즈 드라이버는, N개의 명령들마다 한번씩 인터럽트하고, HPC들로부터 이벤트 카운트들을 수집하도록, 인텔 i7 2.7 GHz 아이비브릿지 프로세서 상의 성능 모니터링 유닛을 구성하도록 개발되었다. 측정들이 프로세스들에 기초하여 필터링/트래킹될 수 있도록, 현재 실행하는 프로그램들/프로세스들의 프로세스 ID들(PID들)이 또한 수집되었다. 측정들은, 윈도우즈 XP SP3에 설치되고 메모리의 512MB로 단일-코어를 러닝하는 VM웨어 가상 머신(VM) 환경으로부터 수집되었다. VM에서의 가상화된 HPC들로, 이러한 프로세서는, 동시에, 2개의 고정된 이벤트들(클록 사이클들, 리타이어링된 명령) 그리고 4개의 이벤트들의 제한까지의 카운팅을 가능하게 한다. HPC들은 사용자 모드에서만 이벤트 카운팅들을 업데이트하도록 구성되었다.
[0094] 초기 스터디에 대한 실험 정확도를 보장하기 위해, 메모리 버퍼로부터의 측정들이 판독되었고, TCP 네트워크 소켓들을 통해, 다른 VM에 배치되었던 레코더로 전달되었다. 이러한 레코더는, 분석을 위해 사용되었던 로컬 파일에서의 측정들의 스트림을 세이빙하도록 구성되었다.
[0095] 본원에서 설명되는 시스템들, 프로세스들, 및 구현에 대한 테스팅 및 실험 동안에, (N개의 명령들의) 다양한 샘플링 간격이 사용되었다. 초기에, 512,000개의 명령들마다 1회의 샘플링 레이트가 사용되었고, 이는, 그것이, 너무 큰 오버헤드를 발생시키지 않으면서, 합리적인 양의 측정들을 제공하기 때문이다. 각각의 샘플은, 식별 PID 및 익스플로잇 스테이지 라벨과 함게, 하나의 샘플링 시간 에포크로부터의 이벤트 카운팅들을 포함한다.
[0096] 인터넷 익스플로러 8에 대한 클린 무-익스플로잇 측정들을 획득하기 위해, 예를 들어, 플래시, 자바, PDF, 실버라이트, 윈도우즈 미디어 플레이어 익스텐션들 등과 같은, 인터넷 익스플로러(IE)에 대한 상이한 대중적인 웹 플러그인들을 사용하는 웹사이트들이, 로컬 머신 상에서 러닝하는 IE 8 브라우저를 사용하여 액세스되었다. 특히, 열다섯(15)개의 상이한 사이트들이 액세스되었고, 플러그인 다운로드 및 설치 기능들이 시뮬레이팅되었다. 어도비 PDF에 대한 클린 무-익스플로잇 측정들을 획득하기 위해, 400개의 랜덤 PDF들이 웹으로부터 다운로딩되었다.
[0097] 감염된 측정들을 수집하기 위해, 클린 데이터를 수집하기 위해 사용되었던 것과 동을힌 브라우저가, IE-특정 익스플로잇들이 활성화된 동안에, 다양한 웹 페이지들에 액세스(즉, 브라우징)하기 위해 사용되었다. PDF 익스플로잇 특정을 위해, 400개의 랜덤 도큐먼트들의 상이한 세트가 생성되었고, 이들 도큐먼트들에 익스플로잇들을 삽입하기 위해, 메타스플로잇이 사용되었다. 클린 및 언클린 PDF들 양자 모두는 동일한 분포의 파일 타입들을 가졌었다(예를 들어, 자바스크립트의 동일한 양) 일반적으로, 동일한 입력 세트들이 상이한 측정들을 위해 사용되었고, VM 환경은, 후속 런으로부터 수집된 샘플들이 이전의 런으로부터 오염되지 않는 것을 보장하기 위해, 익스플로잇의 각각의 런 사이에서, 그것의 런-이전 상태로 복원된다. 희생자 프로그램들로, 테스팅 및 실험 동안에, 하나의 방식으로만 로딩되고 있는 익스플로잇들로부터 기인하는 측정 바이어스를 감소시키기 위해, 3개의 상이한 로딩 메커니즘, 즉, a) 프로그램을 론칭하고, 생성된 익스플로잇 페이지의 URL 링크를 로딩하는 것, b) 이미 러닝하는 프로그램 인스턴스로 익스프로잇 페이지를 로딩하는 것, 및 c) 숏컷 파일에 익스플로잇 URL을 세이빙하고, 프로그램에 링크 숏컷을 론칭하는 것이 교번하여 사용되었다. (VM과 상호작용하는 네트워크들의) 상이한 네트워크 레이턴시들이 측정들을 혼란시키지 않는 것을 보장하기 위해, VM 환경은, 내부-구성된 스퀴드 4 프록시에 연결하고, 네트워크 연결에 대한 대역폭 제한들을 변화시키도록 구성되었다. 대역폭 제한들은, 익스플로잇 코드 실행 및 클린 런들 양자 모두에 대한 측정들을 수집하면서 변화되었다.
[0098] 모델들의 분류 성능을 시각화하기 위해, 악성으로서 잘못 분류된 클린 샘플들의 퍼센티지(폴스 포지티브 레이트)에 대한 올바르게 식별된 악성 샘플들의 퍼센티지(즉, 트루 포지티브 레이트)를 플롯팅하는 ROC(Receiver Operating Characteristic) 커브들이 구성되었다. 게다가, 악성 샘플들의 검출에서 모델들 사이의 상대적인 성능을 대조하기 위해, 각각의 모델에 대한 ROC 커브 아래의 영역이 컴퓨팅될 수 있고 비교될 수 있다. 통상적으로 AUC(Area Under Curve) 스코어라고 호칭되는 이러한 영역은, 모델이, 변화하는 임계치들에 대해 클린 및 악성 샘플들을 얼마나 잘 구별할 수 있는지에 대한 양적인 측정을 제공한다. AUC 스코어가 높을수록, 모델의 검출 성능이 더 우수하다.
[0099] 따라서, oc-SVM 모델들이 트레이닝 데이터에 먼저 구축되었고, 그 후에, 9개의 이벤트 세트들에 대해 비-템포럴(non-temporal) 및 템포럴 모델 접근법들을 사용하여 데이터를 테스트하는 것으로 평가되었다. 도 9a는, 인터넷 익스플로러에 대한 비-템포럴 4-피처 모델들에 대한 ROC 커브들을 예시하는 그래프들(900a-c)(각각의 그래프에 대해 표시된 피처 세트는 도 4의 테이블(400)에서 제공된 피처 세트에 대응한다)을 포함하는 한편, 도 9b는 인터넷 익스플로러에 대한 템포럴 16-피처 모델들에 대한 ROC 커브들의 그래프들(910a-c)을 포함한다. 도 10은, 인터넷 익스플로러에 대한 비-템포럴 및 템포럴 모델들을 사용하여, 상이한 이벤트 세트들에 대한 AUC 스코어들에 관하여 전체 검출 결과들을 제시하는 그래프(1000)를 포함한다.
[00100] 평가 및 테스팅 결과들은, 모델들이 일반적으로 스테이지1 셸코드의 검출을 최상으로 수행함을 표시한다. 이러한 결과들은, 스테이지1 셸코드가 양성(즉, 비감염) 코드의 베이스라인 아키텍처적 그리고 마이크로-아키텍처적 특징들로부터의 가장 큰 편차들을 나타냄을 제안한다. 스테이지1 셸코드에 대한 99.5%의 최상의 검출 정확도(best-case detection accuracy)가 AM-1 모델을 이용하여 달성될 수 있다. 다른 한편, 모델들은 ROP 셸코드에 대해 더 작은 검출 능력들을 보여준다. 모델들은 ROP 셸코드의 검출을 잘 수행하지 못하는데, 아마도 512k 명령들에서의 샘플링 세분성이 베이스라인 모델들에서의 편차들을 캡처하기에 너무 클 수 있기 때문이다. 스테이지1 및 스테이지2 셸코드가 여러 시간 에포크들 내에서 실행되는 동안, ROP 셸코드는 실행을 완료하기 위해 평균적으로 2182 명령들을 취하여 측정되었다. 이는 겨우 134 명령들(예를 들어, 플래시 ROP 익스플로잇에 대해) 내지 6016 명령들(예를 들어, PDF ROP 익스플로잇에 대해)의 범위이다. 일정한 샘플링 세분성 때문에, ROP 셸코드 실행 동안의 측정치들을 포함하는 샘플은 일반적으로 또한, 정상 코드 실행으로부터의 샘플들을 포함한다.
[00101] 테스팅 및 평가 결과들은 (도 9a, 9b, 및 10의 그래프들에서 또한 반영되는 바와 같이) 추가로, 모든 이벤트 세트들에 대한 모델들의 검출 정확도가 시간적 정보의 사용으로 개선됨을 보여준다. 각각의 샘플 벡터에 더 많은 시간적 정보를 포함시킴으로써, (비-시간적 접근방식에서 이미 관찰가능할 수 있는) 편차들이 확대된다. 하나의 이벤트 세트 M-2에 대해, 모델들을 빌드하는 시간적 접근방식은 AUC 스코어를 비-시간적인 것으로부터 59%까지만큼 개선한다.
[00102] 본 명세서에서 설명된 구현들에 대해 수행된 테스팅 및 평가 결과들에 의해 추가로 보여지는 바와 같이, 아키텍처적 이벤트들만을 이용하여 빌드된 모델들이 일반적으로, 오로지 마이크로-아키텍처적 이벤트들로 빌드된 모델들보다 더 양호하게 수행되었다. 가장 차별적인 아키텍처적 그리고 마이크로-아키텍처적 이벤트들 양쪽 모두를 함께 선택하고 모델링함으로써, 더 높은 검출 레이트들, 예를 들어, 이벤트 세트 AM-1에 대해 99.5%의 AUC 스코어까지 달성될 수 있다.
[00103] 본 명세서에서 설명된 구현들에 대해 수행된 부가적인 테스팅에서, 측정치들은 하나의 가상 머신(VM)으로부터 수집되고, 다른 VM의 레코더에 전달되어, 저장 및 프로세싱된다. 샘플링 및 온라인 분류가 상이한 VM들 상에서 수행되는 이러한 교차-원격-VM 시나리오(cross-remote-VM scenario)는, R-1코어(R-1core)로 지칭된다. 온라인 분류 및 측정치 수집 양쪽 모두가 동일한 VM에 배치되는 시나리오에서 검출 정확도에 대한 영향을 평가하기 위해, 1 및 2 코어들을 이용한 2개의 부가적인 로컬-VM 시나리오들을 이용하여 모델 세트 AM-1에 대해 실험이 실행되었다. 이러한 2개의 시나리오들은 각각 L-1코어 및 L-2코어로 지칭된다. 3개의 상이한 시나리오들에 대한 검출 AUC 스코어들은 도 11a의 표(1100)에서 제공된다. 온라인 분류 검출기가 샘플링 드라이버와 함께 로컬적으로 배치될 때, 검출 성능이 악화됨이 관찰될 수 있다. 이는, 온라인 검출기가 연속적으로 실행되고 샘플들의 스트림에서 취해지는 동안 이벤트 카운트들에 도입되는 가능한 노이즈에 기인할 수 있다.
[00104] 앞서-설명된 실험 결과들이 512k 명령들의 샘플링 레이트를 이용하여 획득되는 동안, 검출 능률에 대한 영향이 또한, 샘플링 세분성들의 범위에 대해 조사되었다. 더욱이, 하드웨어-기반 HPC들이 이벤트 카운트들의 모니터링에서 거의 0의 오버헤드를 초래하지만, 검출기의 소프트웨어-단독 구현은 여전히, 실행 프로그램들이 이벤트 카운트들을 샘플링하기 위해 주기적으로 인터럽트될 것을 요구한다. 이는 의도하지 않게, 이러한 샘플링 오버헤드로 인해 프로그램들의 전체적인 실행 시간의 감속을 초래한다. 따라서, 이러한 검출 패러다임의 소프트웨어-단독 구현의 배치를 조사하기 위해, 샘플링 성능 오버헤드는 상이한 샘플링 레이트들에 대해 평가되었다.
[00105] 샘플링 성능 오버헤드를 측정하기 위해, 샘플링 세분성이 변화되고, SPEC 2006 벤치마크 슈트로부터의 프로그램들에서의 결과적인 감속이 측정되었다. 샘플링 세분성이 모델의 검출 정확도에 대해 갖는 영향을 연구하기 위해, 이벤트 세트 AM-1을 이용한 실험들이 또한 반복되었다. 다양한 멀웨어 익스플로잇 스테이지들에 대한 대응하는 검출 AUC 스코어들을 이용한 상이한 샘플링 레이트들에 걸친 실행 시간 감속이 도 12의 그래프(1200)에 표시된다. 검출 성능은 일반적으로 코서-그레인 샘플링(coarser-grained sampling)을 이용시 악화된다는 것이 도 12로부터 확인될 수 있다. 이는, 이용된 부정확 샘플링 기법의 결과이다. 예를 들어, 명령들의 스팬 동안 획득된 측정치들이 특정 프로세스 PID에 속하는 것으로 라벨링될 수 있지만, 이러한 샘플에서의 측정치들은 또한, 이러한 샘플의 스팬 동안 콘텍스트-스위칭 인 및 콘텍스트-스위칭 아웃되는 다른 프로세스들에 속하는 측정치들을 또한 포함할 수 있다. 이러한 "노이즈" 영향은, 코서-그레인 샘플링 레이트를 이용시 더 현저해지며, 검출 성능의 악화를 야기한다. 그럼에도 불구하고, 코서-그레인 레이트들에서의 샘플링 오버헤드의 감소가 검출 성능의 감소를 앞지른다는 것이 유의된다.
[00106] 도 11b의 표(1110)는, 이벤트 세트들 AM-0, 1, 2를 이용하여 빌드된 모델들을 이용하여 어도비 PDF 프로그램에 대해 획득된 AUC 검출 성능 결과들을 제공한다. 인터넷 익스플로러에 대한 모델들과 비교하여, ROP 및 스테이지1 셸코드의 검출은 일반적으로, AM-1 이벤트 세트의 시간적 모델링에 대해 획득된 0.999의 AUC 스코어로, 어도비 PDF 리더에 대해 개선된다. PDF 리더에 대한 이러한 검출 기법의 개선된 성능은, IE와 비교하여 그것이 핸들링하는 덜 다양한 범위의 입력들이 주어진다면, 그것의 베이스라인 특징들이 더 안정적임을 제안한다.
[00107] 따라서, 본 명세서에서 설명된 시스템들, 프로세스들, 및 구현들은, 멀웨어 셸코드의 코드 실행을 통해 현저해지는 빅텀 프로세스들의 아키텍처적 그리고 마이크로-아키텍처적 거동의 모니터링을 통해 멀웨어의 변칙적 실행을 효과적으로 검출할 수 있다. 이는, 애드버서리(공격자)가 타겟 시스템들을 회피하기 위해 공격 명령 시퀀스들을 정교하게 하는데 있어서 완전한 자유를 갖는 동안, 애드버서리는, 본 명세서에서 설명된 검출 접근방식을 회피하기 위해 공격 코드에 의해 드러나는 이벤트들을 직접적으로 수정할 수 없다는 사실에 부분적으로 기초한다. 애드버서리는, 양성/정상으로서 수용될 이벤트 거동들의 조합을 나타내도록 공격 코드를 주의깊게 "조작(massage)"하기 위해, 미미크리 공격(mimicry attack)을 하려고 시도할 수 있다. 셸코드의 이벤트 특징들에 걸친 이러한 2차 정도(second-order degree)의 제어는, 애드버서리의 회피 노력들에 어려움을 부가한다.
[00108] 그럼에도 불구하고, 공격자/애드버서리에 의한 이러한 공격 회피 노력들을 좌절시키기 위해, 본 명세서에서 설명된 시스템들, 프로시저들, 및 다른 구현들을 더 강인하게 만들기 위해 여러 부가적인 방어 전략들 및 접근방식들이 취해질 수 있다. 하나의 이러한 부가적인 전략은, 쇼트리스트 이벤트들의 상이한 서브세트들을 이용하여 다수의 모델들을 트레이닝함으로써, 랜덤화들을 모델들에 도입하는 것이다. 시간에 걸쳐 활용하기 위한 모델들의 선택이 또한 랜덤화될 수 있다. 이용될 수 있는 다른 랜덤화 엘리먼트는, 시간적 모델들에 대한 각각의 샘플을 위해 이용할 연속적인 샘플들의 수를 변경하는 것이다. 이러한 방식으로, 공격자는 공격자의 공격 셸코드의 실행 동안 어느 모델이 이용되는지를 모를 것이다. 공격자의 익스플로잇이, 넓은 범위의 타겟들에 걸쳐 휴대적이고 기능적이도록 하기 위해, 공격자는, 예를 들어 더 넓은 범위의 이벤트들에 대해 노-오피 패딩(no-op padding) 및 명령 대체 미미크리 공격들을 이용하여 자신의 셸코드를 수정해야 할 것이다. 이러한 접근방식을 이용하여 도입된 다양성을 이해하기 위하여, 모델들을 위해 선택될 수 있는 이벤트들의 풀에 10개의(10) 상이한 이벤트들이 존재하고 그리고 연속적인 샘플들의 수가 3 내지 6의 범위로부터 변화될 수 있음을 가정한다. 이러한 2개의 자유도들을 이용시, 구성될 수 있는 가능한 상이한 모델들의 수는
Figure 112015096824481-pct00013
이다. 풀에 더 많은 이벤트들이 존재하는 경우, 가능성들의 수는 상당히 증가된다. 그 다음으로, 이벤트들의 풀이 10에서 20으로 증가되는 것은,
Figure 112015096824481-pct00014
, 즉, 23-배 증가를 초래할 것이다.
[00109] 본 명세서에서 설명된 시스템들, 프로시저들, 및 다른 구현들에 의해, 공격자의 멀웨어의 검출을 회피하기 위한 공격자에 의한 시도들을 추가로 좌절시키기 위해 이용될 수 있는 다른 전략은, 멀티플렉싱 전략이다. 특히, 더 높은 샘플링 오버헤드의 비용으로, 샘플링이 더 미세한 샘플링 세분성으로 수행될 수 있고, 그리고 다음과 같이 모니터링을 멀티플렉싱함으로써 (현재의 4개 대신) 더 많은 이벤트들이 측정될 수 있다. 예를 들어, 2개의 시간 에포크들에 걸쳐 8개의 이벤트들의 동시적인 모니터링은, 하나의 에포크에서 4개의 이벤트들을 그리고 다른 에포크에서 다른 4개의 이벤트들을 모니터링함으로써 근사화될 수 있다. 이는, 모델들에서 이용되는 입력 벡터들에 대해 더 많은 차원수를 제공하고, 따라서, 증가된 수의 모니터링되는 이벤트 측정들 모두를 변칙적이지 않은 것으로 보이게 하기 위해 애드버서리에 의해 필요한 노력들을 증가시킨다.
[00110] 멀웨어 회피 시도들을 저지하기 위한 또한 추가의 전략은 "심층 방어(Defense-in-Depth)" 접근방식이다. 이러한 접근방식에서, HPC 현상들(HPC manifestations)에 기초하는 멀웨어 변칙 검출기가, 멀웨어의 다른 피쳐들(예를 들어, 구문 및 의미 구조들(syntactic and semantic structures), 시스템-호 레벨에서의 실행 거동, 기능 레벨에서의 실행 거동 등)을 모니터링하는 다른 변칙-기반 검출기들과 함께 배치된다. 이러한 설정에서, 공격이 성공적이도록, 공격자는 공격 코드를, 각각의 변칙 검출 모델에 대해 정상상태를 따르는 것으로 형상화하도록 강요받는다.
[00111] 게다가, 본원에 설명된 시스템들, 절차들, 및 다른 구현들의 성능을 추가로 개선시키기 위해 이용될 수 있는 추가적인 아키텍쳐 강화방안들이 존재한다. 도입될 수 있는 하나의 아키텍쳐 개선은 더 많은 성능 카운터들을 이용하는 것이다. 본원에 설명된 시스템들, 절차들, 및 다른 구현들과 관련하여 수행된 테스팅 및 실험은, 부가적인 이벤트들이 양성 코드 실행과 악성 코드 실행을 더 잘 구별하도록 도울 수 있다는 것을 나타냈다. 따라서, 모니터링될 수 있는 성능 카운터들의 세트를 동시에 확장하는 것은 검출 충실도를 잠재적으로 증가시킬 수 있다. 명령 및 데이터 작업 세트 변화들을 관찰하기 위한 저가의 하드웨어 메커니즘들, 및 기본적인 블록 레벨 실행 주파수들은 악성코드 탐지 정확도들을 추가로 개선시킬 수 있다. 도입될 수 있는 다른 아키텍쳐 강화는 인터럽트가 없는 주기적인 액세스에 더욱 많이 의존하는 것이다. 일부 실시예들에서, 성능 카운터들을 판독하는 것은 호스트 프로세스가 인터럽트되도록 요구한다. 이는, 프로그램들에 대한 고가의 인터럽트-처리 비용들 및 과도한 샘플링 오버헤드로 유도한다. 인터럽트들을 발생시키지 않고 지정된 메모리 영역에 주기적으로 성능 카운터 측정들을 저장하기 위한 능력으로 성능 모니터링 유닛들이 구현된다면, 이러한 영역으로부터의 샘플들에 액세스하는 것은 샘플링 오버헤드를 즉시 제거할 수 있다. 중요하게, 이는 "노이즈" 효과를 감소시키기 위해 더욱 미세한 입자들을 모니터링하는 것을 허용하고, 그리고 더 나은 검출을 위한 더 큰 기회(greater scope)를 남긴다. 도입될 수 있는 또 다른 아키텍쳐 강화방안은, 비공개 이벤트들을 이용하여 모니터링되는 프로세스들/프로그램들의 거동을 시험하여, 예를 들어, 공격자가 인지할 수 없는 성능 카운터들로부터의 데이터 마이크로-아키텍쳐 데이터를 수집하여, 이에 따라 공격이 이러한 성능 카운터들을 시도 및 우회하도록 설계할 수 없게 하는 것이다. 이 이벤트들을 비밀로 유지하는 것은 공격자가 우회 공격들을 수행하는 것에 대한 어려움을 증가시킨다.
[00112] 하드웨어 성능 데이터를 수집(및/또는 저장)하고 그리고 악성코드의 가능한 실행으로 인한 합법적인 프로세스들의 정상적인 거동으로부터의 일탈이 존재하는지 여부를 결정하기 위해 수집된 하드웨어 성능 데이터를 분석하도록(그리고 가능하게는 더욱 구체적으로, 악성코드 실행을 식별하도록) 구성되는 것에 더해, AV 엔진, 예를 들어, 도 2의 AV 엔진(210)은 또한, 일부 실시예들에서, 위협이 검출된다면(예를 들어, 하드웨어를 셧 다운하거나 또는 악성코드 거동이 보고된다면) 특정 액션들을 취하도록 구성될 수 있다. 더욱 구체적으로, AV 엔진(210)과 같은 AV 엔진에 의해 구현될 수 있는 광범위한 보안 정책들이 존재한다. 몇몇 실현가능한 보안 정책들은 이하를 포함한다:
· 제 1-스테이지 악성코드 예측변수(malware predictor)로서 AV 엔진을 이용하는 것 ― AV 엔진이 프로그램이 악의적인 것으로 의심할 때, 그 프로그램 상에서 더욱 정교한 거동 분석을 실행할 수 있다. 하드웨어 분석은 '고속으로 (at speed)' 발생하고 그리고 서명을 생성하기 위해 악성코드 프로세스 분석가들에 의해 이용되는 거동 분석보다 현저하게 더 빠르다. 이러한 사전-필터링은 '굿웨어(goodware)'를 위한 비용이 많이 드는 거동 프로세싱을 회피할 수 있다.
· 민감한 계산을 이주시키는 것(migrating) ― 공용 클라우드들과 같은 멀티-테넌트 설정시에, 시스템상에서의 액티브 스레드가 공격받고 있다고 AV 엔진이 의심할 때, AV 엔진은 민감한 계산을 이동시킬 수 있다. 일부 시나리오들에서, AV 시스템은 의심되는 공격받은 프로세스를 단순히 종료(kill)하는 것이 허용될 수 있다.
· 범죄 과학 수사를 위해 AV 엔진들을 이용하는 것 ― 범죄 과학 수사를 위해 데이터를 로깅하는 것은, 이것이 용의자 프로세스와 환경 사이의 모든 상호작용들에 로깅하는 것을 종종 수반하기 때문에, 고가이다. 이러한 오버헤드들을 이주시키기 위해, 범죄 과학 수사들에 필요한 정보는, 오직 AV 엔진이 악성코드 프로세스의 가능한 실행의 결정을 행할 때에만 로깅될 수 있다.
[00113] 따라서, AV 엔진의 출력에 기초하여 취해질 수 있는 광범위한 스펙트럼의 액션들이 존재한다. AV 엔진을 구현하기 위해 본원에 설명된 시스템들, 절차들, 및 다른 구현들은, 앞서-설명된 보안 정책들을 구현하기에 충분히 유연해야만 한다. 개념적으로, 이는, 일부 실시예들에서, AV 엔진이 임의의 주어진 코어 상에서 계산을 인터럽트할 수 있어야만 하고 그리고 그 머신에 대한 정책 페이로드를 실행시킬 수 있어야만 한다는 것을 의미한다. 이는, AV 엔진이 비-마스커블 프로세서-간 인터럽트를 발생할 수 있게 하도록 요구한다. 선택적으로, 일부 실시예들에서, AV 엔진은, 시스템이 다른 공동-상주하는 민감한 계산을 이주하기 시작할 수 있도록, 의심 프로세스를 검출했던 OS 또는 감시 소프트웨어에 통신할 수 있다. 일부 실시예들에서, AV 엔진은 또한 가장 높은 특권 모드에서 구동하도록 구성될 수 있다.
[00114] 언급된 바와 같이, 일부 실시예들에서, 도 2의 AV 엔진(210)과 같은 AV 엔진은, 새로운 클린 기본 하드웨어 성능 데이터가 이용가능하게 됨에 따라, 또는 새로운 분류 기법들이 구현될 때, (로컬 컴퓨팅 디바이스(들) 상에서 구동할 수 있는 현재의 또는 새로운 프로세스들에 대한) 새로운 클린 기본 하드웨어 성능 데이터로 업데이트되도록 구성될 수 있다. AV 업데이트는 공격자들이 AV를 손상시키는 것을 방지하기 위한 방법으로 구현되어야만 한다.
[00115] 일반적으로, 보안 업데이트들은, 예를 들어, 분류기(classifier), 보안 정책들을 특정하는 액션 프로그램, 어떤 분류기들과 함께 어떤 성능 특징들이 이용되어야만 하는지 결정하는 구성 파일, 하나 또는 그 초과의 합법적인 프로세스들 또는 프로그램들에 대한 클린 하드웨어 성능 데이터, 및/또는 업데이트 리비전 번호 중 하나 또는 그 초과를 포함할 수 있다. 이러한 데이터는, 하드웨어 설정을 위해 적응된 기법들/절차들을 이용하여 안전하게 AV 엔진에 전달될 수 있다. 페이로드에 적용된 다양한 암호화 레벨들을 포함하는, 안티바이러스 엔진에 전송될 예시의 보안 업데이트 페이로드(1300)의 개략적인 도면이 도 13a에 도시된다. (암호화된 페이로드(1300)와 같은) 보안 업데이트 페이로드를 수신하고 그리고 AV 엔진의 구성을 업데이트하기 위해 AV 엔진에 의해 일반적으로 수행되는 예시의 절차(1350)가 도 13b에 도시된다. 도 13b에 나타낸 바와 같이, 절차(1350)는, 페이로드를 수신하는 것(1355), 및 (AV 엔진이 구현되는) 하드웨어에 내장된 "verif" 키로 페이로드를 암호해제하는 것(1360)을 포함한다. 그후, "verif"의 결과 해쉬가 하드웨어에 내장된 verif 키의 예상 해쉬와 일치하는지 여부에 대한 결정이 행해진다(1365). 일치하지 않으면, 절차(1350)는 종료한다(1370). "verif" 키의 해쉬의 일치가 존재한다면, SHA-2 해쉬 함수와 페이로드의 무결성(integrity)에 대한 결정이 행해진다(1375). 무결성이 확인되면, 페이로드는 AES 키로 암호해제되며(1385)(그렇지 않으면, 절차는 종료하며(1380)), 페이로드에 표시된 업데이트 리비전 번호가 하드웨어 디바이스에서 유지되는 리비전 번호 표시자와 일치하는지의 (1390에서의) 결정에 따라, 페이로드에서의 업데이트들이 적용된다(1395).
[00116] 절차(1350)의 동작(1390)과 관련하여 나타낸 바와 같이, 일부 실시예들에서, AV 엔진이 적어도 부분적으로 구현되는 하드웨어 디바이스는 마지막 업데이트의 리비전 번호를 유지하고, 그리고 리비전 번호는 모든 각각의 업데이트에 대해 증분된다. 이는, 시스템이 새로운 악성코드 프로세스들을 발견하는 것을 공격자가 방지하게 할 수 있는 AV 시스템을 공격자가 롤링 백(rolling back)하는 것을 방지/억제하기 위한 것이다. AV 엔진은 하드웨어 카운터에 유지되는 리비전 번호보다 더 오래된 리비전 번호로의 업데이트들을 거절함으로써 이러한 보호를 제안할 수 있다.
[00117] 특정 실시예들이 상세하게 본원에 개시되었지만, 이는 오직 설명을 위해서만 예시에 의해 행해지며 후술하는 첨부된 청구항들의 범위와 관련하여 제한하는 것으로 의도되지 않는다. 몇몇 다른 양상들, 이점들, 및 변형들은 이하 제공되는 청구항들의 범위 내에 있는 것으로 고려된다. 제시된 청구항들은 본원에 개시된 실시예들 및 특징들의 적어도 일부를 나타낸다. 다른 청구되지 않은 실시예들 및 특징들도 또한 고려된다.

Claims (21)

  1. 하드웨어 특징들을 사용하는 비감시된 이상(anomaly)-기반 멀웨어(malware) 검출을 위한 방법으로서,
    제 1 프로세스의 정상 거동을 나타내는 기록된 하드웨어 성능 데이터와 관련된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 시간-변화 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하는 단계;
    적어도 하드웨어 성능 데이터와 관련된 하나 이상의 특징들의 유효도에 기초하여 상기 획득된 현재 하드웨어 성능 데이터로부터 하드웨어 성능 데이터의 세트를 식별하는 단계;
    상기 하드웨어 성능 데이터의 식별된 세트를 어그리게이팅하는(aggregate) 단계;
    하나 이상의 변환 함수들에 기초하여 상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하는 단계; 및
    상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터로부터 상기 제 1 프로세스에 대응하는 상기 하드웨어 성능 데이터의 변환된 세트의 일탈의 정도의 결정에 기초하여, 이상(anomalous) 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계
    를 포함하고,
    상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하는 단계는,
    Figure 112017078268801-pct00041
    에 따라, 이벤트
    Figure 112017078268801-pct00042
    에 대한 하드웨어 성능 데이터 값(
    Figure 112017078268801-pct00043
    )으로부터 이벤트
    Figure 112017078268801-pct00044
    에 대해 정규화된 하드웨어 성능 값(
    Figure 112017078268801-pct00045
    )을 유도하는 단계를 포함하며,
    여기서,
    Figure 112017078268801-pct00046
    Figure 112017078268801-pct00047
    는 각각, 이벤트
    Figure 112017078268801-pct00048
    에 대한 최소 및 최대 값들이며,
    Figure 112017078268801-pct00049
    는 이벤트
    Figure 112017078268801-pct00050
    에 대한 거듭제곱 파라미터인,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 하드웨어 성능 데이터는 다양한 시간 인스턴스들에서 획득되고,
    상기 방법은,
    상기 현재 하드웨어 성능 데이터를 송신하기 위해 상기 하드웨어 디바이스에 의해 개시되는 데이터 푸쉬(push) 동작, 또는 상기 현재 하드웨어 성능 데이터가 상기 하드웨어 디바이스에 의해 송신되게 하는, 안티바이러스 엔진에 의해 개시되는 데이터 풀 동작 중 하나 이상을 수행하는 단계
    를 더 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  4. 제 1 항에 있어서,
    상기 하드웨어 성능 데이터의 세트를 식별하는 단계는,
    상기 하드웨어 성능 데이터의 식별된 세트의 유효도를 나타내는 각각의 계산된 하나 이상의 스코어들에 기초하여, 상기 하나 이상의 특징들을 선택하는 단계 ― 상기 유효도는 상기 선택된 하나 이상의 특징들에 대해 획득된 상기 하드웨어 성능 데이터가 상기 이상 프로세스에 의해 영향을 받는 것을 나타냄 ―; 및
    상기 선택된 하나 이상의 특징들에 대해서만 상기 현재 하드웨어 성능 데이터로부터 성능 데이터를 획득하는 단계를 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  5. 제 4 항에 있어서,
    상기 하나 이상의 스코어들을 계산하는 것은, 하나 이상의 피셔(Fisher) 스코어들을 계산하는 것을 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  6. 제 1 항에 있어서,
    상기 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 단계는,
    상기 제 1 프로세스를 실행하는 상기 하드웨어 디바이스에 대한 상기 하드웨어 성능 데이터의 변환된 세트가 상기 제 1 프로세스에 대한 상기 기록된 하드웨어 성능 데이터로부터 일탈되는지를 결정하기 위해, 상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터를 이용하여 트레이닝된 하나 이상의 머신(machine) 학습 절차들을 상기 하드웨어 성능 데이터의 변환된 세트에 적용하는 단계를 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  7. 제 6 항에 있어서,
    상기 하나 이상의 머신 학습 절차들은: 비선형 방사 기저 함수(RBF; radial basis function) 커널을 구현하는 지원 벡터 머신, k-최근접 이웃 절차, 판단 트리(tree) 절차, 랜덤 포레스트(random forest) 절차, 인공 신경 네트워크 절차, 텐서(tensor) 밀도 절차, 지원 벡터 머신(SVM; Support Vector Machine) 또는 은닉 마르코프(Markov) 모델 절차 중 하나 이상을 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    상기 하드웨어 성능 데이터는: 프로세서 로드 밀도 데이터, 브랜치(branch) 예측 성능 데이터, 또는 명령 캐시 미스(cache miss)들에 관한 데이터 중 하나 이상을 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  11. 제 1 항에 있어서,
    상기 제 1 프로세스의 정상 거동을 나타내는 적어도 상기 기록된 하드웨어 성능 데이터에 대한 업데이트들을 획득하는 단계
    를 더 포함하며, 상기 업데이트들을 획득하는 단계는,
    상기 현재 하드웨어 성능 데이터를 제공하는 상기 하드웨어 디바이스와 통신하는 안티바이러스 엔진에 상기 업데이트들에 대한 암호화된 데이터를 다운로딩하는 단계;
    상기 업데이트들에 대한 상기 다운로딩된 암호화된 데이터를 상기 안티바이러스 엔진에서 복호화하는 단계; 및
    가장 최근의 업데이트의 리비전 번호를 나타내는, 상기 안티바이러스 엔진에 의해 유지되는 리버전 카운터를 업데이트하는 단계를 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
  12. 하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 시스템으로서,
    제 1 프로세스를 실행하는 하드웨어 디바이스; 및
    상기 하드웨어 디바이스와 통신하는 안티바이러스 엔진
    을 포함하며, 상기 안티바이러스 엔진은,
    상기 제 1 프로세스를 실행하는 상기 하드웨어 디바이스에 대한, 하드웨어 성능 시간-변화 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하고 ― 상기 제 1 프로세스는 상기 제 1 프로세스의 정상 거동을 나타내는 기록된 하드웨어 성능 데이터와 관련됨 ―;
    적어도 하드웨어 성능 데이터와 관련된 하나 이상의 특징들의 유효도에 기초하여 상기 획득된 현재 하드웨어 성능 데이터로부터 하드웨어 성능 데이터의 세트를 식별하며;
    상기 하드웨어 성능 데이터의 식별된 세트를 어그리게이팅하고;
    하나 이상의 변환 함수들에 기초하여 상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하며; 그리고
    상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터로부터 상기 제 1 프로세스에 대응하는 상기 하드웨어 성능 데이터의 변환된 세트의 일탈의 정도의 결정에 기초하여, 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하도록 구성되고,
    상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하도록 구성된 안티바이러스 엔진은,
    Figure 112017078268801-pct00051
    에 따라, 이벤트
    Figure 112017078268801-pct00052
    에 대한 하드웨어 성능 데이터 값(
    Figure 112017078268801-pct00053
    )으로부터 이벤트
    Figure 112017078268801-pct00054
    에 대해 정규화된 하드웨어 성능 값(
    Figure 112017078268801-pct00055
    )을 유도하도록 추가로 구성되며,
    여기서,
    Figure 112017078268801-pct00056
    Figure 112017078268801-pct00057
    는 각각, 이벤트
    Figure 112017078268801-pct00058
    에 대한 최소 및 최대 값들이며,
    Figure 112017078268801-pct00059
    는 이벤트
    Figure 112017078268801-pct00060
    에 대한 거듭제곱 파라미터인,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 시스템.
  13. 제 12 항에 있어서,
    상기 하드웨어 성능 데이터의 세트를 식별하도록 구성된 안티바이러스 엔진은,
    상기 하드웨어 성능 데이터의 식별된 세트의 유효도를 나타내는 각각의 계산된 하나 이상의 스코어들에 기초하여, 하나 이상의 특징들을 선택하고 ― 상기 유효도는 상기 선택된 하나 이상의 특징들에 대해 획득된 상기 하드웨어 성능 데이터가 상기 이상 프로세스에 의해 영향을 받는 것을 나타냄 ―; 그리고
    상기 선택된 하나 이상의 특징들에 대해서만 상기 현재 하드웨어 성능 데이터로부터 성능 데이터를 획득하도록 구성되는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 시스템.
  14. 제 12 항에 있어서,
    상기 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하도록 구성된 안티바이러스 엔진은,
    상기 제 1 프로세스를 실행하는 상기 하드웨어 디바이스에 대한 상기 하드웨어 성능 데이터의 변환된 세트가 상기 제 1 프로세스에 대한 상기 기록된 하드웨어 성능 데이터로부터 일탈되는지를 결정하기 위해, 상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터를 이용하여 트레이닝된 하나 이상의 머신 학습 절차들을 상기 하드웨어 성능 데이터의 변환된 세트에 적용하도록 구성되는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 시스템.
  15. 제 14 항에 있어서,
    상기 하나 이상의 머신 학습 절차들은: 비선형 방사 기저 함수(RBF) 커널을 구현하는 지원 벡터 머신, k-최근접 이웃 절차, 판단 트리 절차, 랜덤 포레스트 절차, 인공 신경 네트워크 절차, 텐서 밀도 절차, 지원 벡터 머신(SVM) 또는 은닉 마르코프 모델 절차 중 하나 이상을 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 시스템.
  16. 삭제
  17. 실행될 때 동작들을 유발하는, 적어도 하나의 프로그램 가능한 디바이스에서 실행가능한 명령들의 세트를 저장하는 컴퓨터 판독 가능 저장 매체로서,
    상기 동작들은,
    제 1 프로세스의 정상 거동을 나타내는 기록된 하드웨어 성능 데이터와 관련된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 시간-변화 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하는 것;
    적어도 하드웨어 성능 데이터와 관련된 하나 이상의 특징들의 유효도에 기초하여 상기 획득된 현재 하드웨어 성능 데이터로부터 하드웨어 성능 데이터의 세트를 식별하는 것;
    상기 하드웨어 성능 데이터의 식별된 세트를 어그리게이팅하는 것;
    하나 이상의 변환 함수들에 기초하여 상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하는 것; 및
    상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터로부터 상기 제 1 프로세스에 대응하는 상기 하드웨어 성능 데이터의 변환된 세트의 일탈의 정도의 결정에 기초하여, 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 것을 포함하고,
    상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하는 것은,
    Figure 112017078268801-pct00061
    에 따라, 이벤트
    Figure 112017078268801-pct00062
    에 대한 하드웨어 성능 데이터 값(
    Figure 112017078268801-pct00063
    )으로부터 이벤트
    Figure 112017078268801-pct00064
    에 대해 정규화된 하드웨어 성능 값(
    Figure 112017078268801-pct00065
    )을 유도하는 것을 포함하며,
    여기서,
    Figure 112017078268801-pct00066
    Figure 112017078268801-pct00067
    는 각각, 이벤트
    Figure 112017078268801-pct00068
    에 대한 최소 및 최대 값들이며,
    Figure 112017078268801-pct00069
    는 이벤트
    Figure 112017078268801-pct00070
    에 대한 거듭제곱 파라미터인,
    컴퓨터 판독 가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 현재 하드웨어 성능 데이터를 획득하는 것은,
    상기 하드웨어 성능 데이터의 식별된 세트의 유효도를 나타내는 각각의 계산된 하나 이상의 스코어들에 기초하여, 하나 이상의 특징들을 선택하는 것 ― 상기 유효도는 상기 선택된 하나 이상의 특징들에 대해 획득된 상기 하드웨어 성능 데이터가 상기 이상 프로세스에 의해 영향을 받는 것을 나타냄 ―; 및
    상기 선택된 하나 이상의 특징들에 대해서만 상기 현재 하드웨어 성능 데이터로부터 성능 데이터를 획득하는 것을 포함하는,
    컴퓨터 판독 가능 저장 매체.
  19. 제 17 항에 있어서,
    상기 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하는 것은,
    상기 제 1 프로세스를 실행하는 상기 하드웨어 디바이스에 대한 상기 하드웨어 성능 데이터의 변환된 세트가 상기 제 1 프로세스에 대한 상기 기록된 하드웨어 성능 데이터로부터 일탈되는지를 결정하기 위해, 상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터를 이용하여 트레이닝된 하나 이상의 머신 학습 절차들을 상기 하드웨어 성능 데이터의 변환된 세트에 적용하는 것을 포함하는,
    컴퓨터 판독 가능 저장 매체.
  20. 하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 장치로서,
    제 1 프로세스의 정상 거동을 나타내는 기록된 하드웨어 성능 데이터와 관련된 제 1 프로세스를 실행하는 하드웨어 디바이스에 대한, 하드웨어 성능 시간-변화 카운터 데이터를 포함하는 현재 하드웨어 성능 데이터를 획득하기 위한 수단;
    적어도 하드웨어 성능 데이터와 관련된 하나 이상의 특징들의 유효도에 기초하여 상기 획득된 현재 하드웨어 성능 데이터로부터 하드웨어 성능 데이터의 세트를 식별하기 위한 수단;
    상기 하드웨어 성능 데이터의 식별된 세트를 어그리게이팅하기 위한 수단;
    하나 이상의 변환 함수들에 기초하여 상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하기 위한 수단; 및
    상기 제 1 프로세스의 정상 거동을 나타내는 상기 기록된 하드웨어 성능 데이터로부터 상기 제 1 프로세스에 대응하는 상기 하드웨어 성능 데이터의 변환된 세트의 일탈의 정도의 결정에 기초하여, 이상 프로세스가 상기 제 1 프로세스의 성능에 영향을 미치는지를 결정하기 위한 수단
    을 포함하고,
    상기 하드웨어 성능 데이터의 어그리게이팅된 세트를 변환하기 위한 수단은,
    Figure 112017078268801-pct00071
    에 따라, 이벤트
    Figure 112017078268801-pct00072
    에 대한 하드웨어 성능 데이터 값(
    Figure 112017078268801-pct00073
    )으로부터 이벤트
    Figure 112017078268801-pct00074
    에 대해 정규화된 하드웨어 성능 값(
    Figure 112017078268801-pct00075
    )을 유도하며,
    여기서,
    Figure 112017078268801-pct00076
    Figure 112017078268801-pct00077
    는 각각, 이벤트
    Figure 112017078268801-pct00078
    에 대한 최소 및 최대 값들이며,
    Figure 112017078268801-pct00079
    는 이벤트
    Figure 112017078268801-pct00080
    에 대한 거듭제곱 파라미터인,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 장치.
  21. 제 1 항에 있어서,
    상기 이상 프로세스는 멀웨어-타입 악성 프로세스를 포함하는,
    하드웨어 특징들을 사용하는 비감시된 이상-기반 멀웨어 검출을 위한 방법.
KR1020157027779A 2013-03-18 2014-03-14 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출 KR101794116B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361803029P 2013-03-18 2013-03-18
US61/803,029 2013-03-18
PCT/US2013/068451 WO2014149080A1 (en) 2013-03-18 2013-11-05 Detection of anomalous program execution using hardware-based micro-architectural data
USPCT/US2013/068451 2013-11-05
US201361919560P 2013-12-20 2013-12-20
US61/919,560 2013-12-20
PCT/US2014/027375 WO2014152469A1 (en) 2013-03-18 2014-03-14 Unsupervised anomaly-based malware detection using hardware features

Publications (2)

Publication Number Publication Date
KR20160008509A KR20160008509A (ko) 2016-01-22
KR101794116B1 true KR101794116B1 (ko) 2017-11-06

Family

ID=51581219

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157027779A KR101794116B1 (ko) 2013-03-18 2014-03-14 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출

Country Status (4)

Country Link
US (2) US9996694B2 (ko)
KR (1) KR101794116B1 (ko)
CN (1) CN105247532B (ko)
WO (1) WO2014152469A1 (ko)

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554505B2 (en) 2012-09-28 2020-02-04 Intel Corporation Managing data center resources to achieve a quality of service
CN105229612B (zh) 2013-03-18 2018-06-26 纽约市哥伦比亚大学理事会 使用基于硬件的微体系结构数据的异常程序执行的检测
US10055587B2 (en) 2013-12-23 2018-08-21 The Trustees Of Columbia University In The City Of New York Implementations to facilitate hardware trust and security
US10896421B2 (en) 2014-04-02 2021-01-19 Brighterion, Inc. Smart retail analytics and commercial messaging
US20180053114A1 (en) 2014-10-23 2018-02-22 Brighterion, Inc. Artificial intelligence for context classifier
US9973520B2 (en) 2014-07-15 2018-05-15 Cisco Technology, Inc. Explaining causes of network anomalies
US10230747B2 (en) * 2014-07-15 2019-03-12 Cisco Technology, Inc. Explaining network anomalies using decision trees
US20160055427A1 (en) 2014-10-15 2016-02-25 Brighterion, Inc. Method for providing data science, artificial intelligence and machine learning as-a-service
US20150066771A1 (en) 2014-08-08 2015-03-05 Brighterion, Inc. Fast access vectors in real-time behavioral profiling
US20150032589A1 (en) 2014-08-08 2015-01-29 Brighterion, Inc. Artificial intelligence fraud management solution
US11080709B2 (en) 2014-10-15 2021-08-03 Brighterion, Inc. Method of reducing financial losses in multiple payment channels upon a recognition of fraud first appearing in any one payment channel
US20160078367A1 (en) 2014-10-15 2016-03-17 Brighterion, Inc. Data clean-up method for improving predictive model training
US20160063502A1 (en) 2014-10-15 2016-03-03 Brighterion, Inc. Method for improving operating profits with better automated decision making with artificial intelligence
US10546099B2 (en) 2014-10-15 2020-01-28 Brighterion, Inc. Method of personalizing, individualizing, and automating the management of healthcare fraud-waste-abuse to unique individual healthcare providers
US10290001B2 (en) 2014-10-28 2019-05-14 Brighterion, Inc. Data breach detection
WO2016108961A1 (en) * 2014-12-30 2016-07-07 Battelle Memorial Institute Anomaly detection for vehicular networks for intrusion and malfunction detection
US10044750B2 (en) 2015-01-16 2018-08-07 Microsoft Technology Licensing, Llc Code labeling based on tokenized code samples
US9544321B2 (en) 2015-01-30 2017-01-10 Securonix, Inc. Anomaly detection using adaptive behavioral profiles
US10708296B2 (en) 2015-03-16 2020-07-07 Threattrack Security, Inc. Malware detection based on training using automatic feature pruning with anomaly detection of execution graphs
US20180130006A1 (en) 2015-03-31 2018-05-10 Brighterion, Inc. Addrressable smart agent data technology to detect unauthorized transaction activity
US9842209B2 (en) * 2015-05-08 2017-12-12 Mcafee, Llc Hardened event counters for anomaly detection
US9723016B2 (en) 2015-05-14 2017-08-01 International Business Machines Corporation Detecting web exploit kits by tree-based structural similarity search
EP3311303A1 (en) * 2015-06-17 2018-04-25 Tiscali S.p.A. A method to rank documents by a computer, using additive ensembles of regression trees and cache optimisation, and search engine using such a method
US9825989B1 (en) * 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10437998B2 (en) 2015-10-26 2019-10-08 Mcafee, Llc Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection
US10657255B2 (en) * 2015-12-17 2020-05-19 International Business Machines Corporation Detecting malicious code based on conditional branch asymmetry
US10007787B2 (en) 2015-12-28 2018-06-26 International Business Machines Corporation Runtime return-oriented programming detection
CN105989288B (zh) * 2015-12-31 2019-04-16 武汉安天信息技术有限责任公司 一种基于深度学习的恶意代码样本分类方法及***
EP3404572B1 (en) 2016-02-24 2020-09-23 Nippon Telegraph And Telephone Corporation Attack code detection device, attack code detection method, and attack code detection program
EP3436790B1 (en) 2016-03-30 2021-06-30 3D Signals Ltd. Acoustic monitoring of machinery
TWI599905B (zh) * 2016-05-23 2017-09-21 緯創資通股份有限公司 惡意碼的防護方法、系統及監控裝置
US10025687B2 (en) 2016-05-25 2018-07-17 International Business Machines Corporation Event rate change based hardware performance data collection
US10282546B1 (en) * 2016-06-21 2019-05-07 Symatec Corporation Systems and methods for detecting malware based on event dependencies
US10831893B2 (en) * 2016-07-14 2020-11-10 Mcafee, Llc Mitigation of ransomware
US11120106B2 (en) 2016-07-30 2021-09-14 Endgame, Inc. Hardware—assisted system and method for detecting and analyzing system calls made to an operating system kernel
US10733301B2 (en) * 2016-08-24 2020-08-04 Microsoft Technology Licensing, Llc Computing device protection based on device attributes and device risk factor
US10666618B2 (en) * 2016-09-15 2020-05-26 Paypal, Inc. Enhanced security techniques for remote reverse shell prevention
US10216933B1 (en) * 2016-09-16 2019-02-26 Symantec Corporation Systems and methods for determining whether malicious files are targeted
US20180107823A1 (en) * 2016-10-14 2018-04-19 Qualcomm Incorporated Programmable Hardware Security Counters
US10482248B2 (en) * 2016-11-09 2019-11-19 Cylance Inc. Shellcode detection
US10839076B2 (en) 2016-12-21 2020-11-17 3D Signals Ltd. Detection of cyber machinery attacks
US10257220B2 (en) 2017-01-30 2019-04-09 Xm Cyber Ltd. Verifying success of compromising a network node during penetration testing of a networked system
US10068095B1 (en) 2017-05-15 2018-09-04 XM Cyber Ltd Systems and methods for selecting a termination rule for a penetration testing campaign
US10686822B2 (en) 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for selecting a lateral movement strategy for a penetration testing campaign
AU2018212708A1 (en) 2017-01-30 2019-08-08 Xm Cyber Ltd. Penetration testing of a networked system
US10999308B2 (en) 2017-01-30 2021-05-04 Xm Cyber Ltd. Setting-up penetration testing campaigns
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
US10642981B2 (en) * 2017-02-20 2020-05-05 Wuxi Research Institute Of Applied Technologies Tsinghua University Checking method, checking device and checking system for processor
US10572671B2 (en) 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10581802B2 (en) 2017-03-16 2020-03-03 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for advertising network security capabilities
US10454776B2 (en) 2017-04-20 2019-10-22 Cisco Technologies, Inc. Dynamic computer network classification using machine learning
FR3065945B1 (fr) * 2017-05-04 2021-04-16 Thales Sa Procede et dispositif electronique de surveillance d'une application logicielle avionique, programme d'ordinateur et systeme avionique associes
US10534917B2 (en) * 2017-06-20 2020-01-14 Xm Cyber Ltd. Testing for risk of macro vulnerability
US10592383B2 (en) * 2017-06-29 2020-03-17 Intel Corporation Technologies for monitoring health of a process on a compute device
US10574684B2 (en) 2017-07-09 2020-02-25 Xm Cyber Ltd. Locally detecting phishing weakness
US11151251B2 (en) 2017-07-13 2021-10-19 Endgame, Inc. System and method for validating in-memory integrity of executable files to identify malicious activity
US11151247B2 (en) * 2017-07-13 2021-10-19 Endgame, Inc. System and method for detecting malware injected into memory of a computing device
CN107545194B (zh) * 2017-08-01 2019-07-16 华南理工大学 片上网络中应对硬件木马的检测及防御方法
US10412112B2 (en) 2017-08-31 2019-09-10 Xm Cyber Ltd. Time-tagged pre-defined scenarios for penetration testing
US10447721B2 (en) 2017-09-13 2019-10-15 Xm Cyber Ltd. Systems and methods for using multiple lateral movement strategies in penetration testing
US20190102564A1 (en) * 2017-10-02 2019-04-04 Board Of Trustees Of The University Of Arkansas Automated Security Patch and Vulnerability Remediation Tool for Electric Utilities
EP3711279A1 (en) 2017-11-15 2020-09-23 XM Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
KR102408348B1 (ko) * 2017-12-21 2022-06-14 삼성전자주식회사 단말 장치 및 단말 장치의 제어 방법
US10855698B2 (en) * 2017-12-22 2020-12-01 Cisco Technology, Inc. Leveraging endpoint and network environment inferences for malware traffic classification
CN108345794A (zh) * 2017-12-29 2018-07-31 北京物资学院 恶意软件的检测方法及装置
CA3088604A1 (en) * 2018-01-08 2019-07-11 Digital Immunity, Inc. Systems and methods for detecting and mitigating code injection attacks
US10440044B1 (en) 2018-04-08 2019-10-08 Xm Cyber Ltd. Identifying communicating network nodes in the same local network
US20190342297A1 (en) * 2018-05-01 2019-11-07 Brighterion, Inc. Securing internet-of-things with smart-agent technology
US11709939B2 (en) * 2018-05-04 2023-07-25 New York University Anomaly detection in real-time multi-threaded processes on embedded systems and devices using hardware performance counters and/or stack traces
CN108629181A (zh) * 2018-05-11 2018-10-09 湖南大学 基于行为的Cache攻击检测方法
US10997289B2 (en) 2018-05-21 2021-05-04 International Business Machines Corporation Identifying malicious executing code of an enclave
US11520900B2 (en) * 2018-08-22 2022-12-06 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for a text mining approach for predicting exploitation of vulnerabilities
US11297073B2 (en) 2018-08-31 2022-04-05 Sophos Limited Forensic query of local event streams in an enterprise network
GB2592132B (en) * 2018-08-31 2023-01-04 Sophos Ltd Enterprise network threat detection
CN109255241B (zh) * 2018-08-31 2022-04-22 国鼎网络空间安全技术有限公司 基于机器学习的Android权限提升漏洞检测方法及***
CN109190703B (zh) * 2018-09-05 2021-08-24 辽宁大学 基于dnn的多态蠕虫特征码自动提取方法
US10382473B1 (en) 2018-09-12 2019-08-13 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
CN110908876B (zh) * 2018-09-18 2023-03-28 阿里巴巴集团控股有限公司 一种硬件性能数据的获取方法及装置
US10469521B1 (en) 2018-11-04 2019-11-05 Xm Cyber Ltd. Using information about exportable data in penetration testing
US11537875B2 (en) 2018-11-09 2022-12-27 International Business Machines Corporation Detecting and reducing bias in machine learning models
US10574687B1 (en) 2018-12-13 2020-02-25 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
US11216556B2 (en) * 2018-12-17 2022-01-04 Intel Corporation Side channel attack prevention by maintaining architectural state consistency
US11194902B2 (en) * 2018-12-27 2021-12-07 Intel Corporation Side-channel attack detection using hardware performance counters
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
US10916259B2 (en) 2019-01-06 2021-02-09 3D Signals Ltd. Extracting overall equipment effectiveness by analysis of a vibro-acoustic signal
WO2020161532A1 (en) 2019-02-06 2020-08-13 Xm Cyber Ltd. Taking privilege escalation into account in penetration testing campaigns
US11348023B2 (en) 2019-02-21 2022-05-31 Cisco Technology, Inc. Identifying locations and causes of network faults
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
US20220147614A1 (en) * 2019-03-05 2022-05-12 Siemens Industry Software Inc. Machine learning-based anomaly detections for embedded software applications
US11036852B2 (en) * 2019-03-14 2021-06-15 LGS Innovations LLC System and method for software diversification
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
EP3739513A1 (en) 2019-05-13 2020-11-18 Fujitsu Limited Surface defect identification method and apparatus
US20200372183A1 (en) * 2019-05-21 2020-11-26 Hewlett Packard Enterprise Development Lp Digitally Signing Software Packages With Hash Values
TR201908288A2 (tr) * 2019-05-30 2019-06-21 Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi Anomali̇ i̇çeren durumlar i̇çi̇n düzeltme notu oluşturulmasini sağlayan bi̇r si̇stem
US11074345B2 (en) 2019-05-30 2021-07-27 Ut-Battelle, Llc Rootkit detection system
TWI687783B (zh) * 2019-06-17 2020-03-11 臺灣塑膠工業股份有限公司 設備異常偵測方法及系統
US11914703B2 (en) * 2019-07-03 2024-02-27 Nxp B.V. Method and data processing system for detecting a malicious component on an integrated circuit
US10637883B1 (en) 2019-07-04 2020-04-28 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11561959B2 (en) 2019-07-15 2023-01-24 Huawei Cloud Computing Technologies Co., Ltd. Method and system for automatic anomaly detection in data
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11483326B2 (en) * 2019-08-30 2022-10-25 Palo Alto Networks, Inc. Context informed abnormal endpoint behavior detection
US11533329B2 (en) 2019-09-27 2022-12-20 Keysight Technologies, Inc. Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
CN111178435B (zh) * 2019-12-30 2022-03-22 山东英信计算机技术有限公司 一种分类模型训练方法、***、电子设备及存储介质
CN111259948A (zh) * 2020-01-13 2020-06-09 中孚安全技术有限公司 一种基于融合机器学习算法的用户安全行为基线分析方法
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US10846407B1 (en) * 2020-02-11 2020-11-24 Calypso Ai Corp Machine learning model robustness characterization
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
US10979315B1 (en) * 2020-07-04 2021-04-13 Auctioniq, Llc Machine learning feedback loop for maximizing efficiency in transaction flow
US11861513B2 (en) 2020-07-13 2024-01-02 International Business Machines Corporation Methods for detecting and monitoring bias in a software application using artificial intelligence and devices thereof
US11616798B2 (en) * 2020-08-21 2023-03-28 Palo Alto Networks, Inc. Malicious traffic detection with anomaly detection modeling
KR102400971B1 (ko) * 2020-08-24 2022-05-23 울산과학기술원 텐서를 메모리 노드들에 배치하는 방법 및 상기 방법을 수행하는 장치
KR102253362B1 (ko) * 2020-09-22 2021-05-20 쿠팡 주식회사 전자 장치 및 이를 이용한 정보 제공 방법
RU2757265C1 (ru) * 2020-09-24 2021-10-12 Акционерное общество "Лаборатория Касперского" Система и способ оценки приложения на вредоносность
US11886587B2 (en) 2020-10-13 2024-01-30 Kyndryl, Inc Malware detection by distributed telemetry data analysis
US11392115B2 (en) 2020-10-22 2022-07-19 Cisco Technology, Inc. Zero-trust architecture for industrial automation
US11775641B2 (en) * 2020-11-06 2023-10-03 Vmware, Inc. Systems and methods for classifying malware based on feature reuse
US11615782B2 (en) * 2020-11-12 2023-03-28 Sony Interactive Entertainment Inc. Semi-sorted batching with variable length input for efficient training
US11934840B2 (en) * 2020-12-17 2024-03-19 Hewlett Packard Enterprise Development Lp Classification of hardware components
US11790087B2 (en) * 2020-12-23 2023-10-17 Intel Corporation Method and apparatus to identify hardware performance counter events for detecting and classifying malware or workload using artificial intelligence
US11157614B1 (en) * 2021-01-27 2021-10-26 Malwarebytes Inc. Prevention of false positive detection of malware
US11966319B2 (en) * 2021-02-23 2024-04-23 Mellanox Technologies, Ltd. Identifying anomalies in a data center using composite metrics and/or machine learning
US11934531B2 (en) 2021-02-25 2024-03-19 Bank Of America Corporation System and method for automatically identifying software vulnerabilities using named entity recognition
US11977626B2 (en) 2021-03-09 2024-05-07 Nec Corporation Securing machine learning models against adversarial samples through backdoor misclassification
US11645252B2 (en) 2021-07-23 2023-05-09 Bank Of America Corporation System and method for efficiently validating time-series data using a hash-based representation of the data
US11640389B2 (en) 2021-07-23 2023-05-02 Bank Of America Corporation Hash-based identification of data corruption issues in time-series data
US11765604B2 (en) 2021-12-16 2023-09-19 T-Mobile Usa, Inc. Providing configuration updates to wireless telecommunication networks
EP4235469A1 (en) 2022-02-25 2023-08-30 Commissariat À L'Énergie Atomique Et Aux Énergies Alternatives A system for detecting malwares in a resources constrained device
US20230315848A1 (en) * 2022-03-29 2023-10-05 Acronis International Gmbh Forensic analysis on consistent system footprints
US12019746B1 (en) * 2022-06-28 2024-06-25 Ut-Battelle, Llc Adaptive malware binary rewriting
US20240089091A1 (en) * 2022-09-13 2024-03-14 Capital One Services, Llc Secure cryptographic transfer using multiparty computation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294768A1 (en) * 2006-01-31 2007-12-20 Deutsche Telekom Ag Method and system for detecting malicious behavioral patterns in a computer, using machine learning
US20090300765A1 (en) * 2008-05-27 2009-12-03 Deutsche Telekom Ag Unknown malcode detection using classifiers with optimal training sets
US20110041179A1 (en) * 2009-08-11 2011-02-17 F-Secure Oyj Malware detection
US20110247071A1 (en) * 2010-04-06 2011-10-06 Triumfant, Inc. Automated Malware Detection and Remediation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US20030070087A1 (en) 2001-10-05 2003-04-10 Dmitry Gryaznov System and method for automatic updating of multiple anti-virus programs
US7590880B1 (en) 2004-09-13 2009-09-15 National Semiconductor Corporation Circuitry and method for detecting and protecting against over-clocking attacks
WO2007050667A2 (en) 2005-10-25 2007-05-03 The Trustees Of Columbia University In The City Of New York Methods, media and systems for detecting anomalous program executions
IL181041A0 (en) 2007-01-29 2007-07-04 Deutsche Telekom Ag Improved method and system for detecting malicious behavioral patterns in a computer, using machine learning
US7512570B2 (en) * 2006-05-30 2009-03-31 Zaracom Technologies Inc. Artificial intelligence analyzer and generator
US8229726B1 (en) * 2006-10-05 2012-07-24 Oracle America, Inc. System for application level analysis of hardware simulations
US7861305B2 (en) 2007-02-07 2010-12-28 International Business Machines Corporation Method and system for hardware based program flow monitor for embedded software
EP2141626A1 (en) 2008-07-04 2010-01-06 Koninklijke KPN N.V. Malware detection uses time-based CPU utilization metric
US7657941B1 (en) 2008-12-26 2010-02-02 Kaspersky Lab, Zao Hardware-based anti-virus system
US8661536B2 (en) 2010-03-17 2014-02-25 Microsoft Corporation Side channel attack analysis
US8819225B2 (en) 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US9369433B1 (en) 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
US8539269B2 (en) 2011-03-31 2013-09-17 Intel Corporation Apparatus and method for high current protection
US8997233B2 (en) 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US9330256B2 (en) 2013-02-01 2016-05-03 Qualcomm Incorporated Location based process-monitoring
CN105229612B (zh) 2013-03-18 2018-06-26 纽约市哥伦比亚大学理事会 使用基于硬件的微体系结构数据的异常程序执行的检测

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294768A1 (en) * 2006-01-31 2007-12-20 Deutsche Telekom Ag Method and system for detecting malicious behavioral patterns in a computer, using machine learning
US20090300765A1 (en) * 2008-05-27 2009-12-03 Deutsche Telekom Ag Unknown malcode detection using classifiers with optimal training sets
US20110041179A1 (en) * 2009-08-11 2011-02-17 F-Secure Oyj Malware detection
US20110247071A1 (en) * 2010-04-06 2011-10-06 Triumfant, Inc. Automated Malware Detection and Remediation

Also Published As

Publication number Publication date
US9996694B2 (en) 2018-06-12
WO2014152469A1 (en) 2014-09-25
CN105247532B (zh) 2019-05-31
US20180268142A1 (en) 2018-09-20
CN105247532A (zh) 2016-01-13
US20160275289A1 (en) 2016-09-22
KR20160008509A (ko) 2016-01-22

Similar Documents

Publication Publication Date Title
KR101794116B1 (ko) 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
KR102160659B1 (ko) 하드웨어-기반 마이크로-아키텍처 데이터를 이용한 이상 프로그램 실행의 검출
Aslan et al. A comprehensive review on malware detection approaches
Rhode et al. Early-stage malware prediction using recurrent neural networks
Ye et al. A survey on malware detection using data mining techniques
Demme et al. On the feasibility of online malware detection with performance counters
Gandotra et al. Malware analysis and classification: A survey
Hasan et al. RansHunt: A support vector machines based ransomware analysis framework with integrated feature set
Landage et al. Malware and malware detection techniques: A survey
Nissim et al. Detecting unknown computer worm activity via support vector machines and active learning
Bayazit et al. Malware detection in android systems with traditional machine learning models: a survey
Kumara et al. Automated multi-level malware detection system based on reconstructed semantic view of executables using machine learning techniques at VMM
An et al. Behavioral anomaly detection of malware on home routers
Banin et al. Multinomial malware classification via low-level features
Tajoddin et al. RAMD: registry-based anomaly malware detection using one-class ensemble classifiers
WO2009097610A1 (en) A vmm-based intrusion detection system
WO2022101909A1 (en) Methods and systems for trusted unknown malware detection and classification in linux cloud environments
Torres et al. Can data-only exploits be detected at runtime using hardware events? A case study of the Heartbleed vulnerability
Rani et al. A survey on machine learning-based ransomware detection
Shalaginov et al. Automated intelligent multinomial classification of malware species using dynamic behavioural analysis
Chenet et al. A survey on hardware-based malware detection approaches
Baychev et al. Spearphishing malware: Do we really know the unknown?
Kadiyala et al. LAMBDA: Lightweight assessment of malware for emBeddeD architectures
Jawhar A Survey on Malware Attacks Analysis and Detected
Poudyal Multi-level analysis of Malware using Machine Learning

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)