KR102189295B1 - 컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들 - Google Patents

컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들 Download PDF

Info

Publication number
KR102189295B1
KR102189295B1 KR1020177034369A KR20177034369A KR102189295B1 KR 102189295 B1 KR102189295 B1 KR 102189295B1 KR 1020177034369 A KR1020177034369 A KR 1020177034369A KR 20177034369 A KR20177034369 A KR 20177034369A KR 102189295 B1 KR102189295 B1 KR 102189295B1
Authority
KR
South Korea
Prior art keywords
classifier
class
classifiers
training
records
Prior art date
Application number
KR1020177034369A
Other languages
English (en)
Other versions
KR20180008517A (ko
Inventor
드라고스-테오도르 가브릴루트
크리스티나 바타마누
도이나 코소반
헨리 루키안
Original Assignee
비트데펜더 아이피알 매니지먼트 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비트데펜더 아이피알 매니지먼트 엘티디 filed Critical 비트데펜더 아이피알 매니지먼트 엘티디
Publication of KR20180008517A publication Critical patent/KR20180008517A/ko
Application granted granted Critical
Publication of KR102189295B1 publication Critical patent/KR102189295B1/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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/033Test or assess software
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴퓨터 보안 시스템이 훈련된 분류자들의 캐스케이드를 이용하여 멀웨어, 스팸, 및/또는 사기 탐지를 포함하는 어플리케이션을 위하여 자동으로 타겟 객체들을 분류할 수 있도록 하는 시스템과 방법을 설명한다. 상기 캐스케이드는 여러 레벨들을 포함하고, 각 레벨은 일련의 분류자들을 포함한다. 분류자들은 이들의 개별 레벨들의 소정의 순서로 훈련된다. 각 분류자는 레코드들의 뭉치를 복수의 레코드 그룹들로 분류하도록 훈련되고 그래서 하나의 그러한 그룹의 상기 레코드들의 실질적 비율(예를 들어서, 최소한 95% 또는 전체)이 동일한 클래스의 멤버이다. 상기 캐스케이드의 연속적 레벨들의 훈련 분류자들 사이에서, 상기 개별 그룹의 일련의 훈련 레코드들은 상기 훈련 뭉치로부터 버려진다. 모르는 타겟 객체를 분류하는 데 사용될 때, 일부 실시예들은 그들의 개별 레벨들의 순서로 상기 분류자들을 채용한다.

Description

컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들
본 발명은 멀웨어 탐지와 같은 컴퓨터 보안 어플리케이션들을 위한 자동화된 분류자를 훈련하기 위한 시스템과 방법에 대한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 웜, 트로이 목마(Trojan horse), 및 루트킷(rootkit)과 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다. 사이버 공격의 빈도와 정밀도(sophistication)는 최근 몇 년 사이에 극적으로 증가하였다. 멀웨어는 실질적으로 모든 컴퓨터 플랫폼과 운영 시스템에 영향을 미치고, 매일 같이 새로운 악성 에이전트들이 발견되고 확인되고 있다.
컴퓨터 보안 소프트웨어는 사용자들과 데이터를 그러한 위협들에 대하여 보호하는데, 예를 들어서, 악성 에이전트들을 탐지하고, 이들을 불능화하거나 그리고/또는 사용자 또는 시스템 관리자에게 경고하는 데 사용될 수 있다. 컴퓨터 보안 소프트웨어는 전형적으로, 모르는 객체가 양성(benign)인지 또는 악성인지를 결정하기 위하여 상기 개별 객체의 특화된 특징의 세트에 따라서 자동화된 분류자들에 의존한다. 그러한 특징들은 구조적이거나 그리고/또는 행동적일 수 있다. 자동화된 분류자들은 여러 기계학습 알고리즘들을 이용하여 멀웨어를 식별하기 위하여 훈련될 수 있다.
자동화된 분류자들의 공통의 문제점은 탐지 비율의 증가가 통상적으로 분류 에러(긍정 오류 및/또는 부정 오류) 수의 증가를 수반한다는 것이다. 긍정 오류(false positive), 예를 들어서, 오류로 악성으로 식별된 정당한 객체(legitimate object)들은, 그러한 라벨링이 사용자의 생산성의 손실이나 데이터 손실로 이어질 수 있으므로 특히 바람직하지 않을 수 있다. 자동화된 분류자들의 훈련 중에 발생할 수 있는 다른 문제는, 컴퓨터 보안 어플리케이션의 경우에는 수백만의 레코드들로 구성될 수 있는 대형 훈련 뭉치(training corpus)를 처리하는데 필요한 실질적인 컴퓨팅 비용이다.
긍정 오류의 최소 비율을 보장하면서 대량의 훈련 데이터를 신속하게 처리할 수 있는 새로운 분류자들과 훈련 방법들을 개발하는 실질적 필요가 존재한다.
본 발명의 일 태양에 따르면, 컴퓨터 시스템은 하드웨어 프로세서와 메모리를 포함한다. 상기 하드웨어 프로세서는 타겟 객체가 컴퓨터 보안 위협을 가하는지 결정하기 위하여 훈련된 분류자들의 캐스케이드를 채용하도록 구성된다. 상기 분류자들의 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류된다. 상기 캐스케이드의 훈련은 소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 분류자를 훈련시켜서 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되는 것을 포함한다. 상기 캐스케이드를 훈련하는 것은 소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 분류자를 훈련시켜서 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 일련의 레코드들을 제거하는 것을 추가적으로 포함하고, 상기 일련의 레코드들은 상기 제1 및 제2 그룹들로부터 선택된다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제3 분류자를 훈련시켜서 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제4 분류자를 훈련시켜서 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택되는 것을 추가적으로 포함한다.
본 발명의 다른 태양에 따르면, 컴퓨터 시스템은 하드웨어 프로세서와 메모리를 포함한다. 상기 하드웨어 프로세서는 컴퓨터 보안 위협들을 탐지하는 데 사용하기 위하여 분류자들의 캐스케이드를 훈련하도록 구성된다. 상기 분류자들의 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류된다. 상기 캐스케이드의 훈련은 소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 분류자를 훈련시켜서 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되는 것을 포함한다. 상기 캐스케이드를 훈련하는 것은 소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 분류자를 훈련시켜서 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 일련의 레코드들을 제거하는 것을 추가적으로 포함하고, 상기 일련의 레코드들은 상기 제1 및 제2 그룹들로부터 선택된다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제3 분류자를 훈련시켜서 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제4 분류자를 훈련시켜서 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택되는 것을 추가적으로 포함한다.
본 발명의 다른 태양에 따르면, 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금 타겟 객체가 컴퓨터 보안 위협을 가하는지를 결정하기 위하여 분류자들의 훈련된 캐스케이드를 채용하도록 하는 명령들을 저장한다. 상기 분류자의 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류된다. 상기 캐스케이드의 훈련은 소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 분류자를 훈련시켜서 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되는 것을 포함한다. 상기 캐스케이드를 훈련하는 것은 소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 분류자를 훈련시켜서 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 일련의 레코드들을 제거하는 것을 추가적으로 포함하고, 상기 일련의 레코드들은 상기 제1 및 제2 그룹들로부터 선택된다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제3 분류자를 훈련시켜서 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택되는 것을 추가적으로 포함한다. 상기 캐스케이드를 훈련하는 것은 상기 일련의 레코드들을 제거하는 것에 응답으로 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제4 분류자를 훈련시켜서 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택되는 것을 추가적으로 포함한다.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따른 예시적 컴퓨터 보안 시스템을 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적 하드웨어 구성을 보여주는 도면.
도 3은 본 발명의 일부 실시예에 따른 분류자 훈련 시스템의 예시적 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 분류자 캐스케이드를 훈련하도록 구성된 도 1의 상기 분류자 훈련 시스템 상에서 실행되는 훈련자(trainer)를 보여주는 도면.
도 5a는 본 발명의 일부 실시예에 따른 캐스케이드의 제1 분류자에 의하여 2개의 구별되는 영역들로 분할된 특징 공간을 보여주는 도면.
도 5b는 상기 특징 공간의 영역들의 다른 세트를 보여주는 도면(이 때 상기 영역들은 본 발명의 일부 실시예에 따라서 상기 캐스케이드의 제2 분류자에 의하여 구별됨).
도 5c는 상기 특징 공간의 영역들의 또 다른 세트를 보여주는 도면(이 때 상기 영역들은 본 발명의 일부 실시예에 따라서 상기 캐스케이드의 제3 훈련된 분류자에 의하여 구별됨).
도 6은 본 발명의 일부 실시예에 따라서 도 4의 상기 훈련자에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 7a는 클라이언트 기반 스캐닝을 실행하는 본 발명의 실시예에서, 클라이언트 시스템과 상기 분류자 훈련 시스템 사이의 예시적 데이터 전송을 보여주는 도면.
도 7b는 클라우드 기반 스캐닝을 실행하는 본 발명의 실시예에서, 클라이언트 시스템, 보안 서버 및 분류자 훈련 시스템 사이의 예시적 데이터 교환을 보여주는 도면.
도 8은 본 발명의 일부 실시예에 따라서 상기 클라이언트 시스템 상에서 실행되는 예시적 보안 어플리케이션을 보여주는 도면.
도 9는 본 발명의 일부 실시예에 따라서 알려지지 않은 타겟 객체의 분류(classification)를 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따라서 알려지지 않은 타겟 객체를 분류하기 위하여 도 8의 상기 보안 어플리케이션에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 11a는 본 발명의 실시예에서 예시적 훈련 뭉치에서 분류자 캐스케이드의 제1 레벨을 훈련하는 것을 보여주는 도면(이때 상기 캐스케이드의 각 레벨은 복수 분류자를 포함함).
도 11b는 레벨 당 복수 분류자들을 가지고 있는 분류자 캐스케이드의 제2 레벨을 훈련하는 것을 보여주는 도면.
도 12는 본 발명의 일부 실시예에 따라서 레벨 당 복수 분류자들을 포함하고 있는 캐스케이드를 훈련하기 위하여 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 13은 레벨 당 복수의 분류자들을 사용하는 본 발명의 실시예에서 알려지지 않은 타겟 객체를 분류하기 위하여 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 제1 수치가 제2 수치보다 크거나 또는 최소한 동등할 때 제1 수치는 제2 수치를 넘는다(exceed). 컴퓨터 보안은 데이터 및/또는 하드웨어로의 의도되지 않았거나 인가 받지 않은 접근에 대해서, 데이터 및/또는 하드웨어의 의도되지 않았거나 인가 받지 않은 수정, 및 데이터 및/또는 하드웨어의 파괴에 대해서 사용자와 장치를 보호하는 것을 포함한다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 코드 객체들)일 수 있다. 달리 특정되지 않는다면, 프로세스는 어플리케이션이나 또는 운영 시스템의 일부와 같은 컴퓨터 프로그램의 인스턴스(instance)이고, 적어도 실행 쓰레드(execution thread)와 이것에 할당된 가상 메모리 공간을 가지는 특징을 가지며, 개별 가상 메모리 공간의 콘텐트는 실행가능 코드(executable code)를 포함한다. 달리 특정되지 않는다면, 분류자는 각각의 분류자가 레코드들의 뭉치들을 레코드들의 특유 그룹(distinct group)으로 분할할 때 레코드들의 뭉치를 완전히 분류해서(각 레코드는 클래스 라벨을 수반) 각 그룹의 모든 레코드들이 동일한 클래스 라벨을 가지게 된다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 매체와 같은 비-일시적 저장 매체(non-transitory storage medium)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 엔코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 본 발명의 일부 실시예에 따른 예시적 컴퓨터 보안 시스템(10)을 보여준다. 컴퓨터 보안 시스템(10)은 분류자 훈련 시스템(20), 일련의 클라이언트 시스템들(30a-b), 및 보안 서버(14)를 포함하고, 모두 네트워크(12)를 통해서 상호 연결된다. 네트워크(12)는 기업 네트워크와 같은 LAN(local area network)뿐만 아니라 인터넷과 같은 광역 네트워크를 포함할 수 있다. 일부 실시예에서, 클라이언트 시스템들(30a-b)은 최종 사용자 컴퓨터들을 나타낼 수 있고, 이들 각각은 프로세서, 메모리 및 저장소를 구비하고, 특히 Windows®, MacOS® 또는 Linux와 같은 운영 시스템을 작동한다. 다른 예시적 클라이언트 시스템들(30a-b)은 모바일 컴퓨팅 장치들(예를 들어서, 랩탑, 태블릿 PC들), 전기통신 장치들(예를 들어서, 스마트폰), 디지털 오락 기구들(TV, 게임 컨솔 등), 웨어러블 컴퓨팅 장치들(예를 들어서, 스마트워치들) 또는 프로세서와 메모리를 가지고 있고 네트워크(12)로 연결될 수 있는 다른 어떠한 전자 장치를 포함한다. 클라이언트 시스템들(30a-b)은 개별 고객들을 나타낼 수 있고 또는 여러 클라이언트 시스템들이 동일한 고객에 속할 수 있다.
시스템(10)은 특히 악성 소프트웨어(멀웨어), 원하지 않는 통신(스팸), 및 전자 사기(예를 들어서, 피싱, 나이지리아 사기(Nigerian fraud) 등)와 같은 다양한 컴퓨터 보안 위협들에 대해서 클라이언트 시스템들(30a-b)의 사용자 뿐만 아니라 클라이언트 시스템들(30a-b)들을 보호할 수 있다. 클라이언트 시스템들(30a-b)은 이하에서 상술되는 바와 같이, 분류자 훈련 시스템(20)에서 훈련되는 분류자들의 캐스케이드를 사용하여 그러한 컴퓨터 보안 위협들을 탐지할 수 있다.
하나의 사용 케이스 시나리오에서, 클라이언트 시스템은 이메일 서버를 나타낼 수 있고, 이 경우에 본 발명의 일부 실시예들은 예를 들어서 개별 메시지들을 의도된 수신자에게 전달하기 전에 악성 아이템들을 제거하거나 격리함으로써 개별 이메일 서버로 하여금 전자 통신에 첨부된 멀웨어 및/또는 스팸을 탐지하도록 그리고 보호 작업을 수행할 수 있도록 할 수 있다. 다른 사용 케이스 시나리오에서, 각각의 클라이언트 시스템들(30a-b)은 악성 소프트웨어를 탐지하기 위하여 개별 클라이언트 시스템들을 스캔하도록 구성된 보안 어플리케이션을 포함할 수 있다. 사기 탐지에 목적을 둔 또 다른 사용 케이스 시나리오에서, 각각의 클라이언트 시스템들(30a-b)은 원격 리소스(remote resource)(예를 들어서, 웹사이트)에 접근하려는 사용자의 의도를 탐지하도록 구성된 보안 어플리케이션을 포함할 수 있다. 상기 보안 어플리케이션은 URL과 같은 상기 리소스의 표시자를 보안 서버(14)에 보내고, 상기 리소스가 사기성인지를 나타내는 라벨을 회신 받을 수 있다. 그러한 실시예에서, 보안 서버(14)는 이하에서 상술되는 바와 같이 분류자 훈련 시스템(20)으로부터 수신된 분류자의 캐스케이드를 이용하여 개별 라벨을 결정할 수 있다.
도 2는 도 1의 클라이언트 시스템들(30a-b)과 같은 클라이언트 시스템(30)의 예시적 하드웨어 구성을 보여준다. 도시된 클라이언트 시스템(30)은 컴퓨터 시스템이지만, 통상의 기술자라면 본 명세서는 태블릿 PC, 모바일 전화기 등과 같은 다른 클라이언트 시스템으로 변경될 수 있다는 것을 이해할 수 있을 것이다. 클라이언트 시스템(30)은 하드웨어 프로세서(24), 메모리 유닛(26), 입력 장치(28)들 세트, 출력 장치(32)들 세트, 저장 장치(34)들 세트 및 네트워크 어댑터(36)들 세트(이들 모두는 컨트롤러 허브(38)에 의하여 연결됨)를 포함하는 물리적 장치들의 세트를 포함한다.
일부 실시예들에서, 프로세서(24)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 마이크로 프로세서, 반도체 기판에 형성된 멀티-코어 집적 회로)를 포함한다. 일부 실시예들에서, 이러한 논리 연산들은 프로세서 명령(예를 들어, 머신 코드 또는 다른 유형의 소프트웨어)의 시퀀스 형태로 메모리 유닛(26)으로부터 프로세서(24)에 전달된다. 메모리 유닛(26)은 명령들을 수행하는 도중에 프로세서(24)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다. 입력 장치(28)는 사용자가 클라이언트 시스템(30)으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(32)는 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 클라이언트 시스템(30)이 사용자에게 데이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(28)와 출력 장치(32)는 터치-스크린 장치들의 경우와 같이, 하드웨어의 공통적인 부품을 공유할 수 있다. 저장 장치(34)는 프로세서 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(34)는 자기 디스크 및 광 디스크 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(36)들 세트는 클라이언트 시스템(30)이 네트워크(12) 및/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다. 컨트롤러 허브(38)는 프로세서(24)와 장치(26, 28, 32, 34 및 36)들 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 일반적으로 나타낸다. 예를 들어, 컨트롤러 허브(38)는 프로세서(24)를 메모리(26)에 연결시키는 노스브리지, 및/또는 프로세서(24)를 장치들(28, 32, 34 및 36)에 연결시키는 사우스브리지를 포함할 수 있다.
도 3은 본 발명의 일부 실시예들에 따른, 분류자 훈련 시스템(20)의 예시적인 하드웨어 구성을 보여준다. 훈련 시스템(20)은 일반적으로 컴퓨터 시스템들의 세트를 나타낸다. 도 3은 명료성을 위하여 단지 하나의 머신을 나타내었다. 복수의 그러한 머신들은 네트워크(12)의 일부를 통하여 (예를 들어서 서버 팜에서) 서로 연결될 수 있다. 일부 실시예들에서, 훈련 시스템(20)은 훈련자 프로세서(124), 훈련자 메모리 유닛(126), 훈련자 저장 장치(134)들 세트 및 훈련자 네트워크 어댑터(136)들 세트(이들 모두는 훈련자 컨트롤러 허브(138)에 의하여 연결됨)를 포함한다. 하드웨어 구성의 일부 상세는 훈련 시스템(20)과 클라이언트 시스템(30) 사이에서 상이할 수 있지만, 장치(124, 126, 134, 136 및 138)의 작동은 상술한 장치들(24, 26, 34, 36 및 38) 각각의 작동과 유사할 수 있다. 예를 들어서, 훈련자 프로세서(124)는 훈련자 메모리 유닛(126)으로부터 수신된 신호들/데이터로 논리적 및/또는 수학적 연산을 수행하고 그 연산의 결과를 유닛(126)에 기록하도록 구성된 하드웨어 마이크로 프로세서를 포함할 수 있다.
도 4는 본 발명의 일부 실시예들에 따라서 분류자의 캐스케이드를 훈련하도록 구성되고 훈련 시스템(20)에서 실행되는 훈련자(42)를 보여주고 있다. 상기 캐스케이드는 특정 순서로 사용되도록 구성된 복수의 분류자들을 포함한다(C1, C2, …Cn). 일부 실시예들에서, 상기 캐스케이드의 각 분류자는 객체들의 여러 특유 그룹들 사이, 예를 들어서, 깨끗한 객체와 멀웨어의 사이, 정당한 이메일과 스팸과의 사이, 또는 멀웨어의 서로 다른 카테고리들 사이를 구별한다. 그러한 분류자는 본 기술분야에서 잘 알려진 다양한 자동화된 분류자들, 예를 들어서, 특히, naive Bayes 분류자들, artificial neural networks (ANNs), 서포트 벡터 머신(support vector machines, SVMs), k-nearest neighbor 분류자들 (KNN), clustering 분류자들 (예를 들어서, k-means 알고리즘 사용), multivariate adaptive regression spline (MARS) 분류자들 및 decision tree 분류자들을 적용하는 것을 포함한다.
본 발명의 실시예에서 사용하기 위한 그러한 표준 분류자를 적용하는 것은 예를 들어서, 일 그룹에서 다수의 레코드들이 동일한 클래스에 속하는 구성을 독려하도록 훈련 알고리즘에서 사용되는 비용 또는 벌칙 기능(cost or penalty function)을 수정하는 것을 포함할 수 있다(이하 설명 참조). 퍼셉트론(perceptron)의 예시적 수정은 일측 퍼셉트론(one-sided perceptron)을 생성하는데, 이것은 레코드들의 뭉치를 두 그룹으로 분리해서는 어느 일 그룹 내의 모든 레코드들이 동일한 클래스 라벨을 가지도록 한다.
분류자의 유형의 선택은 훈련 데이터의 세부(예를 들어서, 상기 데이터가 실질적 노이즈를 가지는지 여부, 상기 데이터가 선형적으로 분리될 수 있는지 여부 등)에 따라서, 또는 어플리케이션의 도메인(예를 들어서, 멀웨어 탐지, 사기 탐지, 스팸 탐지 등)에 따라서 이뤄질 수 있다. 상기 캐스케이드의 모든 분류자가 동일한 유형일 필요는 없다.
상기 분류자들의 캐스케이드의 훈련은 성능 기준(performance criteria)과 후술하는 방법들에 따라서 진행된다. 일부 실시예들에서, 훈련자(42)의 출력(도 4)은 복수의 분류자 파라미터 세트(46a-c)를 포함하고, 그러한 파라미터 세트 각각은 상기 캐스케이드의 분류자 (C1, C2, …Cn)를 예시하는데 사용된다. artificial neural network 분류자(예를 들어서, 퍼셉트론)의 일예에서, 파라미터(46a-c)들은 시냅스 중량(synapse weight)의 세트와 레이어들의 카운트를 포함할 수 있다. support vector machines (SVMs)의 경우에는, 파라미터(46a-c)들은 커널 함수(kernel function)의 선택의 표시자, 및/또는 특징 공간(feature space)에서 2개의 특징적 그룹들의 객체들을 분리하는 하이퍼서피스(hypersurface)의 계수들의 세트를 포함할 수 있다. clustering 분류자의 경우에는, 파라미터(46a-c)들은 클러스터 직경들의 세트와 클러스터 중심들의 세트의 좌표들을 포함할 수 있다. 일부 실시예들에서 각 파라미터 세트(46a-c)들은 분류자 유형의 표시자를 포함한다.
상기 분류자들의 캐스케이드를 훈련하는 것은 훈련 뭉치(training corpus, 40)(도 4)를 처리하는 것을 포함한다. 일부 실시예들에서, 뭉치(40)는 대형 콜렉션의 레코드들(예를 들어서 수백만의 레코드들)을 포함한다. 본 발명의 어플리케이션의 도메인에 따라서, 그러한 레코드 각각은 소프트웨어 객체(예를 들어서, 파일 또는 컴퓨터 프로세스), 전자적 메시지, URL 등을 나타낼 수 있다. 훈련 뭉치(40)는 여러 클래스들, 예를 들어서, 깨끗함 및 악성, 또는 스팸과 정당함(legitimate)으로 사전 분류된다. 그러한 사전 분류는 예를 들어서, 개별 레코드가 속하는 클래스를 표시하는 라벨을 포함하는 뭉치(40)의 각 레코드를 포함할 수 있고, 상기 라벨은 분류자들의 캐스케이드를 훈련하기 전에 결정된다.
일부 실시예에서, 훈련 뭉치(40)의 각 레코드는 특징 벡터(feature vector)로서, 즉 특징 하이퍼스페이스(feature hyperspace)에서 좌표들의 세트로서 표현되고, 이 때 각 좌표는 개별 레코드의 특정 특징의 값을 나타낸다. 그러한 특징들은 본 발명의 어플리케이션의 도메인에 의존할 수 있고, 수치적 및/또는 불린(Boolean) 특징들을 포함할 수 있다. 예시적 레코드 특징들은 정적 속성(static attribute)과 행동적 속성(behavioral attribute)을 포함한다. 멀웨어 탐지의 경우에, 예를 들어서, 레코드의 예시적 정적 속성은, 특히, 파일 이름, 파일 크기, 메모리 주소, 레코드가 묶음(packed)인지 여부의 표시자, 개별 레코드를 묶는데 사용되는 패커(packer)의 식별자, 레코드의 유형의 표시자(예를 들어서, 실행가능한 파일, DLL(dynamic link library) 등), 상기 레코드를 컴파일 하는데 사용되는 컴파일러의 표시자(예를 들어서, C++, .Net, Visual Basic), 상기 레코드에 의하여 로딩되는 라이브러리들의 카운트, 상기 레코드의 엔트로피 수단(entropy measure)을 포함할 수 있다. 행동적 속성들은 객체(예를 들어서, 프로세스)가 실행 중에 특정 행동을 수행하는지를 나타낼 수 있다. 예시적 행동 속성들은, 특히 개별 객체가 상기 디스크에 쓰기를 하는지 여부의 표시자, 상기 개별 객체가 인터넷에 접속을 시도하는지의 표시자, 상기 개별 객체가 원격 위치들로부터 데이터를 다운로드 시도하는지의 표시자, 및 상기 개별 객체가 실행 중에 다른 객체들로 코드를 주입하는지의 표시자를 포함한다. 사기 탐지의 경우에, 예시적 레코드 특징들은, 특히, 웹페이지가 특정 사기를 나타내는 키워드를 포함하는지 여부의 표시자, 웹페이지가 HTTP 양식(form)을 노출하는지의 표시자를 포함한다. 스팸 탐지의 경우에, 예시적 레코드 특징들은 특정의 스팸 지시 키워드의 존재, 메시지가 하이퍼링크들을 포함하는지 여부의 표시자, 개별 메시지가 임의의 첨부물을 포함하는지의 표시자를 포함할 수 있다. 다른 예시적 레코드 특징들은 스팸을 나타내는 특징들을 형성(formatting)하는 특정 메시지를 포함한다.
도 5a, 도 5b, 도 5c는 본 발명의 일부 실시예들에 따른 상기 캐스케이드의 예시적 분류자들의 세트를 훈련하는 것을 도시한다. 도 5a, 도 5b, 도 5c는 예를 들어서 이하에서 후술하는 바와 같이 분류자들의 상기 캐스케이드를 훈련하는 연속적 단계들을 보여줄 수 있다. 일반성을 잃어버림 없이, 상기 레코드들의 도시된 뭉치는 2개의 클래스들을 포함한다(예를 들어서, 원들은 악성 객체들을 나타내고, “X”들은 양성 객체(benign object)들을 나타낼 수 있다). 각 레코드는 특징 f1 및 f2로 연장(span)되는 2차원 특징 공간에서 특징 벡터로 표현된다. 통상의 기술자라면 상술한 시스템들과 방법들이 2개 이상의 클래스의 레코드들을 가지는 뭉치 및/또는 더 높은 차원의 특징 공간들로 확장될 수 있음을 이해할 것이다.
본 발명의 일부 실시예에서, 상기 캐스케이드의 각각의 분류자는 레코드들의 현재 뭉치를 적어도 2개의 특유 그룹(distinct group)으로 분할하도록 훈련되고 상기 그룹들 중 하나 내의 레코드들의 실질적 쉐어는 동일한 클래스 라벨들을 가지는데, 즉 동일 클래스에 속한다. 동일한 클래스 라벨들을 가지는 레코드들은 각각의 그룹 내의 그러한 레코드들의 비율이 소정의 임계치(threshold)를 넘어설 때 실질적 쉐어(substantial share)를 형성한다. 실질적 쉐어에 대응하는 예시적 임계치들은 특히, 50%, 90%, 및 99%를 포함한다. 일부 실시예들에서, 한 그룹 내의 모든 레코드들은 동일한 클래스 라벨을 가질 것이 요구된다. 그러한 상황은 100% 임계치에 대응할 것이다. 더 높은 임계치는 훈련하기에 더 비용이 들지만 오분류 비율이 더 낮은 분류자를 생성할 수 있다. 상기 임계치의 값은 상기 캐스케이드의 분류자들에 따라서 상이할 수 있다.
분류자들의 연산(operation) 및/또는 훈련은 도 5a, 도 5b, 도 5c의 상기 특징 공간 표현(feature space representation)을 사용하면 더 잘 이해될 수 있다. 도 5a에서, 분류자(C1)는 특징 공간을 2개의 영역으로 분할하는 프런티어(frontier, 44a)를 생성함으로써 레코드들의 2개의 그룹들 사이를 구별하도록 훈련되어서, 레코드들의 각각의 특유 그룹은 특징 공간의 특유 영역(예를 들어서 프런티어(44a)의 내외)에 존재하게 된다. 예를 들어서, 예시적 프런티어(44a)는 타원이다. 그러한 프런티어 형상은 예를 들어서 클러스터링 분류자(clustering classifier)에 의해서 생성될 수 있다. 분류자의 다른 선택은 다른 형상의 프런티어를 생성할 수 있을 것이다. 통상의 기술자라면 분류자의 일부 선택예들(예를 들어서, 결정 트리)을 위하여, 그러한 프런티어가 존재하지 않을 수 있거나 또는 도출하기 불가능할 수 있다는 것을 이해할 것이다. 따라서 도 5a, 도 5b, 도 5c의 도면들은 이러한 기재를 단순히 단순화하기 위하여 도시된 것이고 본 발명의 범위를 제한하려는 의도가 아니다.
일부 실시예들에서, 분류자(C1)를 훈련하는 것은 분류 조건들이 만족될 때까지 프런티어(44a)의 파라미터들을 조정하는 것을 포함한다. 상기 타원의 중심 및/또는 직경들과 같은 상기 프런티어의 파라미터들은 분류 파라미터(46a)들로서 내보내질 수 있다(도 4). 프런티어(44a) 내의 레코드들의 실질적 쉐어(전부)는 하나의 클래스(원들로 표시됨)에 속한다. 동일한 라벨들을 가지는 레코드들의 그룹에 의해서 존재하게 되는 특징 공간의 영역은 이하에서는 분류자(C1)의 선호 영역(preferred region(45a))으로 간주될 것이다. 분류자(C1, C2, C3)의 선호 영역들은 도 5a, 도 5b, 도 5c에서 음영 영역으로 각각 도시되었다. 각각의 분류자의 상기 선호 영역 내에 존재하는 상기 레코드들의 클래스는 개별 분류자의 선호 클래스(preferred class)로 간주될 것이다. 도 5a의 예에서, 분류자(C1)의 선호 클래스는 원들이다(예를 들어서, 멀웨어).
도 5b는 상기 캐스케이드의 제2 예시적 훈련된 분류자(C2)를 나타내는 다른 프런티어(44b)에 의한 특징 공간에 분리된 영역들의 다른 세트를 도시한다. 도시된 실시예에서, 프런티어(44b)는 다시 타원(ellipse)이다. 그 파라미터들은 예를 들어서 도 4의 파라미터 세트(46b)에 의해서 표현될 수 있다. 도 5b는 분류자(C2)의 선호 영역(45b)을 추가적으로 보여주고, 상기 선호 영역은 동일한 라벨들을 가지는 레코드들을 주로 포함한다. 도 5b의 실시예에서, 분류자(C2)의 선호 클래스는 X(cross)이다(예를 들어서, 깨끗함, 악성 아님).
도 5c는 상기 캐스케이드의 제3 예시적 훈련된 분류자(C3)의 또 다른 프런티어(44c)와 또 다른 선호 영역(45c)에 의한 특징 공간에 분리된 영역들의 또 다른 세트를 도시한다. 상기 도시된 분류자(C3)는 예를 들어서 퍼셉트론일 수 있다. 선호 영역(45c)은 단지 원들을 포함하는데, 즉 분류자(C3)의 선호 클래스는 원들이다. 일부 실시예들에서, 도 5a, 5b, 5c에서 도시된 바와 같이, 레코드들의 세트는 훈련의 연속적 단계들 사이에서, 예를 들어서, 훈련하는 상기 캐스케이드의 연속적 분류자들 사이에서 훈련 뭉치(40)로부터 제거된다. 상기 뭉치로부터 제거된 상기 레코드들의 세트는 각각의 훈련된 분류자의 선호 영역으로부터 선택된다.
도 6은 본 발명의 일부 실시예들에 따라서 분류자들의 캐스케이드를 훈련하기 위하여 훈련자(42)(도 4)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 훈련 뭉치(40)를 입력(단계 200)한 이후, 단계들(202-220)의 시퀀스는 루프로 반복되고, 상기 캐스케이드의 각각의 연속적 분류자(Ci)에 대해서 그러한 루프가 실행된다.
단계(202)는 이용가능한 유형들의 세트(예를 들어서, SVM, 클러스터링 분류자, 퍼셉트론 등)로부터 훈련을 위하여 분류자의 유형을 선택한다. 분류자의 선택은 성능 요건(훈련 속도, 분류 정확성 등)에 따라서, 그리고/또는 현재 훈련 뭉치의 특징(particularity)에 따라서 행해질 수 있다. 예를 들어서, 현재 훈련 뭉치가 대략적으로 선형으로 분리가능할 때, 단계(202)는 퍼셉트론을 선택할 수 있다. 현재 훈련 뭉치가 레코드들의 집중된 섬(island)을 가질 때, 클러스터링 분류자가 선호될 수 있다. 일부 실시예들에서, 상기 캐스케이드의 모든 분류자들은 동일한 유형이다.
다른 분류자 선택 시나리오들도 가능하다. 예를 들어서, 상기 캐스케이드의 각 단계에서, 일부 실시예들은 여러 분류자 유형들을 시도할 수 있고 기준(criteria)의 세트에 따라서 더 잘 수행하는 분류자 유형을 선택할 수 있다. 그러한 기준은 특히 선호 영역 내의 레코드들의 카운트, 분류의 정확성, 및 오분류 레코드들의 카운트와 관련될 수 있다. 일부 실시예들은 최상의 분류자 유형을 선택하기 위하여 교차 타당성 테스트(cross-validation test)를 적용할 수 있다. 또 다른 시나리오에서, 분류자의 유형은 상기 캐스케이드의 일 단계로부터 다음 단계로 변화된다(예를 들어서 교차 형식, alternating fashion). 그러한 시나리오의 동기는, 훈련 뭉치가 레코드들의 세트를 폐기함으로써 상기 캐스케이드의 일 단계로부터 다음으로 축소될 때, 상기 뭉치의 성질이 상기 캐스케이드의 일 단계로부터 다음으로 대개 선형으로 분리가능한 뭉치로부터 대개 편향된 뭉치(insular corpus)로 변화되는 것(또는 그 반대)이 가능하다는 것이다. 따라서, 분류자의 동일한 유형(예를 들어서, 퍼셉트론)은 상기 캐스케이드의 연속적인 단계들에서와 같이 잘 수행하지 못할 수 있다. 그러한 시나리오에서, 상기 캐스케이드는 예를 들어서 퍼셉트론과 클러스터링 분류자 사이에서, 또는 퍼셉트론과 결정 트리 사이에서 변화(alternating)될 수 있다.
단계들(204-206-208)의 시퀀스는 현재 훈련 뭉치를 분류하기 위하여 캐스케이드의 현재 분류자를 효과적으로 훈련한다. 일부 실시예들에서, 현재 분류자를 훈련하는 것은 훈련 기준의 세트가 만족될 때까지 현재 분류자의 파라미터들을 조정하는 것(단계 204)을 포함한다. 분류자 파라미터들의 조정된 세트는, 복수의 특징 공간의 영역들(예를 들어서 도 5a, 도 5b, 도 5c 참조)을 서로에 대해서 분리하는 하이퍼서피스와 같은 프런티어를 나타낼 수 있다.
한 훈련 기준(단계 206에서 실행)은 상기 영역들 중의 하나에 존재하는 현재 훈련 뭉치의 레코드들의 실질적 쉐어가 동일한 라벨을 가질 것을, 즉 하나의 클래스에 속할 것을 요구한다. 일부 실시예들에서, 각각의 선호 클래스는 상기 캐스케이드의 모든 분류자들에 대하여 동일할 것이 요구된다. 그러한 분류자 캐스케이드들은 개별 선호 클래스의 레코드들에 대하여 필터로서 사용될 수 있다. 선택적 실시예에서, 선호 클래스는 이것이 훈련 뭉치의 클래스를 통하여 순환(cycling)될 수 있도록 선택된다. 예를 들어서, 2개 클래스 뭉치(예를 들어서, 멀웨어와 깨끗함)에서, 분류자들(C1, C3, C5,…)의 선호 클래스는 멀웨어일 수 있고, 분류자들(C2, C4, C6,…)의 선호 클래스는 깨끗함일 수 있다. 다른 실시예들에서, 선호 클래스는 캐스케이드의 한 분류자로부터 다음 것으로 임의로 달라질 수 있고, 또는 현재 훈련 뭉치들의 상세에 따라서 변화될 수 있다.
단계(206)는 현재의 분류자에 의해서 특징지어지는 일 그룹 내의 레코드들의 비율(분율)을 계산하는 것(상기 개별 레코드들은 현재 분류자의 선호 클래스에 속함), 상기 분율이 소정의 임계치를 초과하는지를 테스트하는 것을 포함할 수 있다. 상기 분율이 상기 임계치를 초과하지 않을 때, 실행은 단계(204)로 회귀할 수 있다. 그러한 훈련은 각 영역이 복수의 클래스들로부터 혼합된 레코드들을 호스팅하도록 프런티어가 위치하는 구성에 벌칙을 가하는 피드백 메커니즘과 결합된 잘 알려진 머신 러닝 알고리즘들이나 또는 고유한 분류 알고리즘을 사용하여 달성될 수 있다.
일부 실시예들에서, 단계(208)는 다른 훈련 기준이 만족되는지를 검증한다. 그러한 기준은 각각의 분류자 유형에 대해서 특정적일 수 있다. 예시적 기준은 분류의 질에 관련될 수 있고, 예를 들어서, 현재 훈련 뭉치의 특유 클래스들(distinct classes)이 특징 공간에서 최적으로 분리되는 것을 확실히 할 수 있다. 다른 예시적 기준은 훈련의 속도 및/또는 효율성에 대한 것일 수 있고, 예를 들어서, 훈련 알고리즘들에 대해서 최대 훈련 시간 및/또는 최대 반복 횟수를 부가할 수 있다. 다른 예시적 훈련 기준은 동일한 라벨들을 가지고 상기 영역들 중의 하나 내에 위치하는 레코드들의 수가 최대화되도록 상기 프런티어가 조절되도록 하는 것을 요구할 있다. 다른 훈련 기준은 과적응(over-fitting)의 사인에 대해서 테스트하는 것과 상기 훈련 알고리즘이 솔루션으로 수렴하도록 하는 속도를 평가하는 것을 포함할 수 있다.
훈련 기준이 현재의 분류자에 대해서 만족될 때, 단계(210)에서, 훈련자(42)는 현재 분류자의 파라미터들(예를 들어서, 도 4의 아이템들(46a-c))을 저장한다. 추가적인 단계(214)는 현재 분류자의 선호 클래스를 저장한다.
일부 실시예들에서, 단계(216)는 현재의 분류자가 현재 뭉치를 완전하게 분류했는지 여부, 즉 현재 분류자가 현재 뭉치를 특유 그룹으로 분할해서 각 특유 그룹 내의 모든 레코드들이 동일한 라벨들을 가지는지 여부를 결정한다(예를 들어서 도 5c 참조). 만일 그렇다면, 훈련은 중단된다. 아니라면, 단계들(218-220)의 시퀀스는 레코드들의 세트를 선택하고 상기 세트를 현재의 훈련 뭉치로부터 제거한다. 일부 실시예들에서, 제거를 위하여 선택된 레코드들의 세트는 현재 분류자의 선호 영역으로부터 선택된다. 그러한 일 예에서, 단계(220)는 현재 분류자의 선호 영역 내에 위치하는 현재 뭉치의 모든 레코드들을 제거한다(도 5a, 도 5b, 도 5c 참조).
도 6에 도시된 바와 같이 작동하는 일부 실시예들에서, 상기 캐스케이드의 분류자들의 실제 카운트는, 현재 뭉치의 모든 레코드들이 완전하게 분류되는 훈련 과정의 마지막에서야 알 수 있다. 선택적 실시예에서, 캐스케이드는 고정된, 사전 결정된 숫자의 분류자들을 포함할 수 있고, 훈련은 남아 있는 훈련 뭉치가 완전하게 분류되었는지 여부와 관계없이 모든 분류자들이 훈련될 때까지 진행될 수 있다.
일단 훈련 단계가 완료되면, 상술한 바와 같이 훈련된 분류자들의 캐스케이드는 알려지지 않은 타겟 객체(50)를 분류하기 위하여 사용될 수 있다. 본 발명의 안티 멀웨어 예시적 어플리케이션에서, 그러한 분류는 예를 들어서 타겟 객체(50)가 깨끗한지 또는 악성인지를 결정할 수 있다. 다른 어플리케이션들에서, 그러한 분류는 예를 들어서 상기 타겟 객체가 정당한 것인지 또는 스팸인지 등을 결정할 수 있다. 타겟 객체(50)의 분류는 여러 머신들에서 그리고 다양한 구성에서, 예를 들어서, 다른 보안 작동들과 결합하여 수행될 수 있다.
일부 실시예들에서, 분류는 클라이언트 시스템(30)(클라이언트 기반 스캐닝), 또는 보안 서버(14)(클라우드 기반 스캐닝)에서 행해진다. 도 7a는 컴퓨팅된 분류자 파라미터들(46a-c)이 클라이언트 기반 스캐닝을 위하여 분류자 훈련 시스템(20)으로부터 클라이언트 시스템(30)으로 보내지는 예시적 데이터 전송을 보여준다. 도 7a와 반대로, 도 7b는 파라미터들(46a-c)이 보안 서버(14)로 보내지는 클라우드 기반 스캐닝 구성을 보여준다. 그러한 구성들에서, 클라이언트 시스템(30)은 타겟 객체(50)를 나타내는 타겟 객체 표시자(51)를 보안 서버(14)에 보낼 수 있고, 응답으로, 타겟 객체(50)의 클래스 멤버쉽을 나타내는 타겟 라벨(60)을 서버(14)로부터 수신할 수 있다. 표시자(51)는 상기 타겟 객체 자체, 또는 타겟 객체(50)를 특징짓는 데이터의 서브세트를 포함할 수 있다. 일부 실시예들에서, 타겟 객체 표시자(51)는 타겟 객체(50)의 특징 벡터를 포함한다.
명료성을 위하여, 도 8 내지 10은 단지 클라이언트 기반 스캐닝(즉, 도 7a의 구성에 따라서)만을 설명하였지만, 통상의 기술자라면 상술한 방법은 또한 클라우드 기반 스캐닝에 적용될 수 있다는 것을 이해할 것이다. 또한, 이하의 기술은 안티 멀웨어 어플리케이션들에만 집중을 하게 된다. 그러나, 설명되는 시스템들과 방법들은 최소한의 변형에 의해서 스팸 방지, 사기 방지 등과 같은 다른 보안 어플리케이션들 뿐만 아니라 문서 분류, 데이터 마이닝 등과 같은 보다 일반적인 어플리케이션들로 확장될 수 있다.
도 8은 본 발명의 일부 실시예들에 따라서 클라이언트 시스템(30)에서 실행되는 예시적 보안 어플리케이션(52)을 보여준다. 클라이언트 시스템(30)은 보안 어플리케이션(52)을 포함할 수 있는데, 상기 보안 어플리케이션은 또한 파라미터들(46a-c)로 예시되는 분류자들의 캐스케이드(C1, ….Cn)를 포함한다. 보안 어플리케이션(52)은 타겟 객체(50)를 수신하도록 그리고, 특히 타겟 객체(50)의 클래스 멤버쉽을 표시하는 타겟 라벨(60)을 생성하도록 구성된다(예를 들어서, 깨끗함, 악성). 어플리케이션(52)은 여러 방식으로, 예를 들어서, 컴퓨터 보안 스위트(computer security suite)의 요소로서, 브라우저 플러그인으로서, 메시징 어플리케이션(예를 들어서, 이메일 프로그램)의 요소 등으로서 실행될 수 있다.
일부 실시예들에서, 상기 분류자들의 캐스케이드(C1, ….Cn)는 도 6과 관련하여 상술한 바와 같이 훈련된 캐스케이드의 경우이다. 예를 들어서, 분류자(C1)는 파라미터(46a)로 예시되는 캐스케이드의 제1 훈련된 분류자를 나타내고, 분류자(C2)는 파라미터(46b)로 예시되는 캐스케이드의 제2 훈련된 분류자를 나타내는 식이다. 일부 실시예들에서, 어플리케이션(52)은 이하에서 상술하는 바와 같이, 타겟 객체(50)의 클래스 할당(class assignment)을 발견하도록 소정의 순서(예를 들어서, 개별 분류자들이 훈련되는 순서)로 분류자들(C1, ….Cn)을 적용하도록 구성된다.
도 9 내지 도 10은 본 발명의 일부 실시예들에 따른 타겟 객체(50)의 예시적 분류를 보여준다. 도 9는 도 5a, 도 5b, 도 5c에서 도시된 분류자들의 선호 영역을 보여주고, 이 때 특징 벡터는 제2 분류자의 선호 영역 내에 위치하는 타겟 객체(50)를 나타낸다.
도 10은 본 발명의 일부 실시예들에 따른 보안 어플리케이션(52)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 단계(300)에서, 타겟 객체(50)는 보안 어플리케이션(52)을 위하여 입력(input)으로 선택된다. 안티 멀웨어 실시예에서, 예시적 타겟 객체(50)들은, 특히, 실행가능한 파일, DLL(dynamic link library) 및 클라이언트 시스템(30)의 메모리 섹션의 콘텐트를 포함할 수 있다. 예를 들어서, Microsoft Windows®을 운영하는 클라이언트 시스템의 경우에, 타겟 객체(50)는 특히 WINDIR 폴더로부터의 실행가능한 파일들, WINDIR/system32 폴더로부터의 실행가능 것들(executables), 현재 작동중인 프로세스들의 실행가능한 것들, 상기 현재 작동중인 프로세스들에 의하여 도입된 DLL들, 및 설치된 시스템 서비스들의 실행가능한 것들을 포함할 수 있다. 타겟 객체들의 유사한 리스트들은 Linux®와 같은 다른 운영 시스템들을 운영하는 클라이언트 시스템들(30)을 위하여 컴파일링될 수 있다. 타겟 객체(50)는 클라이언트 시스템(30)에 의하여 사용되거나 또는 이에 통신가능하게 연결된 컴퓨터 판독가능한 매체(예를 들어서, 하드 드라이브들, 광학 디스크들, DRAM 이외에 플래쉬 메모리 장치들, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능한 매체)에 존재할 수 있다. 단계(300)는 타겟 객체(50)의 특징 벡터를 컴퓨팅 하는 것을 추가적으로 포함할 수 있고, 상기 특징 벡터는 특징 공간에서 객체(50)를 나타낸다.
단계(302)에서, 보안 어플리케이션(52)은 타겟 객체(50)를 분류하기 위하여 분류자(C1)를 채용한다. 일부 실시예들에서, 단계(302)는, 예를 들어서, 분류자(C1)의 파라미터(46a)들에 따라서, 특징 공간에서 프런티어를 결정하는 것, 타겟 객체(50)의 특징 벡터가 개별 프런티어의 어느 측에(즉, 어느 분류 영역에) 위치하는 지를 결정하는 것을 포함한다. 단계(304)에서, 보안 어플리케이션(52)은 분류자(C1)가 상기 타겟 객체를 C1의 선호 클래스에 위치시키는지를 결정한다. 일부 실시예들에서, 단계(304)는 타겟 객체(50)의 특징 벡터가 분류자인 C1의 선호 영역 내에 들어가는지를 결정하는 것을 포함할 수 있다. 아닌 경우에, 어플리케이션의 작동은 후술하는 단계(308)로 진행된다. 맞는 경우, 단계(306)에서, 타겟 객체(50)는 분류자(C1)의 선호 클래스에 속하는 것으로 라벨링된다. 도 9에서 도시된 예시적 구성에서, 타겟 객체(50)는 분류자(C1)의 선호 영역 내에 있지 않다.
단계(308)에서, 보안 어플리케이션(52)은 타겟 객체(50)를 분류하기 위하여 캐스케이드의 제2 분류자(C2)를 적용한다. 단계(310)는 분류자(C2)가 타겟 객체를 C2의 선호 클래스에 위치시키는지(예를 들어서, 타겟 객체(50)의 특징 벡터가 분류자(C2)의 선호 영역 내로 들어가는지)를 결정한다. 맞는 경우, 단계(312)에서, 타겟 객체(50)는 분류자(C2)의 선호 클래스에 할당된다. 이 상황은 도 9에서 설명된다.
보안 어플리케이션(52)은 타겟 객체가 상기 분류자들 중 하나의 선호 클래스로 할당될 때까지 상기 캐스케이드의 분류자들(Ci)을 연속적으로 적용한다. 상기 캐스케이드의 어떠한 분류자도 상기 타겟 객체를 이들의 개별 선호 클래스에 속하는 것으로 인식하지 않는 경우, 단계(320)에서, 타겟 객체(50)는 상기 캐스케이드의 마지막 분류자(Cn)의 선호 클래스와는 다른 클래스로 할당된다. 예를 들어서, 2개 클래스의 실시예에서, 상기 마지막 분류자의 선호 클래스가 “깨끗함”일 때, 타겟 객체(50)는 “악성” 클래스로 할당될 수 있고, 그 반대도 마찬가지이다.
위와 같은 기재들은 상기 캐스케이드가 상기 캐스케이드의 각 레벨에 대하여 하나의 분류자를 포함하는 본 발명의 실시예들에 초점을 맞췄다. 후술하는 상기 캐스케이드의 다른 실시예들은 레벨 당 복수의 분류자들을 포함할 수 있다. 단순성을 위하여, 이하의 설명은 훈련 뭉치가, 각각 원들과 X표로 도면에서 표시되는, 두 개의 특유 클래스(A 및 B)(예를 들어서, 악성 및 양성)로 사전 분류되는 것을 고려한다. 그러한 뭉치에서 훈련되는 분류자들의 예시적 캐스케이드는 상기 캐스케이드의 각 레벨, i=1, 2, …., n에 대하여 두 개의 특유 분류자들, Ci (A) 및 Ci (B)를 포함할 수 있다. 통상의 기술자라면 상기의 기재를 다른 유형들의 캐스케이드들 및/또는 훈련 뭉치들에 적용하는 법을 이해할 것이다. 예를 들어서, 캐스케이드는, 각 레벨에서, 적어도 하나의 분류자를 상기 훈련 뭉치의 레코드들의 각 클래스에 대해 포함할 수 있다. 다른 실시예에서, 상기 캐스케이드의 각 레벨은 두 개의 분류자들을 포함할 수 있고, 각각은 상기 훈련 뭉치의 클래스들의 카운트에 무관하게, 특유 클래스의 레코드들을 우선적으로 식별하도록 훈련된다. 또 다른 실시예에서, 상기 분류자들의 카운트는 캐스케이드의 일 레벨과 이와 다른 레벨에서 다를 수 있다.
도 11a는 본 발명의 일부 실시예들에 따른 개별 뭉치에서 훈련되는 2개의 분류자들과 2개 클래스의 훈련 뭉치를 보여준다. 예를 들어서, 도 11a는 상기 캐스케이드의 제1 레벨(i=1)의 훈련을 보여줄 수 있다. 분류자 C1 (A)는 현재의 뭉치를 두 그룹으로 분할해서는 상기 그룹들 중 하나(여기서는 분류자 C1 (A)의 선호 그룹으로 간주)의 레코드들의 실질적 쉐어가 클래스 A에 속하도록 훈련된다. 도 11a의 예에서, 분류자 C1 (A)를 훈련하는 것은 특징 공간의 선호 영역(45d)의 실질적 비율의 레코드들이 클래스 A(원들)에 속하도록 프런티어(44d)의 파라미터들을 조정하는 것을 포함한다. 분류자 C1 (B)는 개별 캐스케이드 레벨의 모든 다른 분류자들과 동일한 뭉치, 즉 C1 (A)를 훈련하는 데 사용되는 것과 동일한 뭉치에서 훈련된다. 분류자 C1 (B)는 현재 뭉치들을 다른 쌍의 레코드 그룹들로 분할해서는, 분류자 C1 (B)의 선호 그룹의 레코드들의 실질적 쉐어가 클래스 B에 속하도록 훈련된다. 분류자 C1 (B)를 훈련하는 것은 특징 공간의 선호 영역(45e)의 실질적 비율의 레코드들이 클래스 B(X표들)에 속하도록 프런티어(44e)의 파라미터들을 조정하는 것을 포함할 수 있다.
도 11b는 상기 캐스케이드의 후속 레벨(예를 들어서, i=2)을 훈련하는 것을 보여준다. 상기 제2 레벨의 분류자들(C2 (A) 및 C2 (B))은 감소된 훈련 뭉치에서 훈련된다. 도시된 예에서, 분류자들(C1 (A) 및 C1 (B))의 선호 그룹들의 모든 레코드들은 분류자들(C2 (A) 및 C2 (B))을 훈련하기 위한 준비에서 상기 훈련 뭉치들로부터 폐기된다. 일반적으로, 분류자들(C1 (A) 및 C1 (B))의 선호 그룹의 서브 세트는 C1 (A) 및 C1 (B)를 훈련하는데 사용되는 뭉치로부터 폐기될 수 있다. 분류자 C2 (A)는 실질적 쉐어가 클래스 A에 속하는 레코드들의 선호 그룹을 식별하도록 훈련된다. 개별 캐스케이드 레벨의 다른 분류자, C2 (B)는 실질적 쉐어가 클래스 B에 속하는 레코드들의 선호 그룹을 식별하도록 훈련된다. 도 11b에서, 분류자들(C2 (A) 및 C2 (B))의 선호 그룹들은 각각 특징 공간의 영역(45f-g)들 내에 위치한다.
도 12는 본 발명의 일부 실시예들에 따라서, 레벨 당 복수의 분류자들을 포함하는 분류자들의 캐스케이드를 훈련하기 위하여 훈련자(42)(도 4)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 훈련 뭉치를 입력한 후(단계 332), 단계들(334-360)의 시퀀스는 루프에서 반복되고, 각 루프는 캐스케이드의 별개 레벨을 훈련하도록 수행된다. 다시 한번, 도시된 예는 레벨 당 두 개의 분류자를 훈련하는 것을 보여주나, 관련 설명은 본 발명의 범위를 벗어남 없이 다른 구성들에 용이하게 적용될 수 있다.
분류자(Ci (A))의 유형을 선택한 이후에(단계 336), 단계들(338-340-342)의 시퀀스에서, 훈련자(42)는 실질적 쉐어(예를 들어서, 99% 이상)가 클래스 A에 속하는 레코드들의 선호 그룹을 식별하기 위하여 분류자(Ci (A))를 훈련한다. 또한, 훈련된 분류자는 일부 품질 기준(quality criteria)을 만족하는 것이 필요할 수 있다. 그러한 기준의 예들로서는, 도 6과 관련된 위의 설명을 참조한다. 훈련 기준이 만족될 때, 단계(344)는 분류자(Ci (A))의 파라미터들을 저장한다.
단계들(346-354)의 시퀀스는, 실질적 쉐어(예를 들어서 99% 이상)가 클래스 B에 속하는 레코드들의 선호 그룹을 구별하도록 분류자(Ci (B))가 훈련되는 것을 제외하고는, 분류자(Ci (B))의 비슷한 훈련을 수행한다. 단계(356)에서, 훈련자(42, trainer)는 캐스케이드의 현재 레벨의 분류자들이 현재 훈련 뭉치를 완전하게 분류했는지를 확인한다. 레벨 당 복수의 분류자가 있는 경우에, 완전한 분류는 클래스 A에 속하는 현재의 훈련 뭉치의 모든 레코드들이 분류자(Ci (A))의 선호 그룹에 있고, 클래스 B에 속하는 현재 훈련 뭉치의 모든 레코드들이 분류자(Ci (B))의 선호 그룹에 있는 상황과 대응될 수 있다. 맞다면, 훈련은 중지된다.
현재 캐스케이드 레벨이 완전한 분류를 달성하지 않을 때, 단계들(358-360)의 시퀀스에서, 훈련자(42)는 분류자들(Ci (A), Ci (B))의 선호 그룹들로부터의 레코드들의 세트를 선택할 수 있고 상기 캐스케이드의 다음 레벨로 진행하기 전에 상기 훈련 뭉치로부터 그러한 레코드들을 제거할 수 있다.
도 13은 상기 캐스케이드가 레벨 당 복수의 훈련된 분류자들을 포함하는 본 발명의 실시예에서, 알려지지 않는 타겟 객체를 분류하도록 훈련된 캐스케이드를 사용하기 위하여 보안 어플리케이션(52)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 단계(372)는 타겟 객체를 선택한다(도 10과 관련하여 위의 기재를 또한 참조). 단계들(374-394)의 시퀀스는 타겟 객체의 성공적 분류가 달성될 때까지 루프로 반복되고, 상기 루프의 각 인스턴스(instance)는 상기 캐스케이드의 연이은 레벨(consecutive level)에 대응한다. 따라서, 일부 실시예들에서, 상기 캐스케이드의 분류자들은 이들이 훈련되는 순서에 따라서, 즉 상기 캐스케이드 내의 이들의 개별 레벨들의 순서를 존중해서 발견을 위하여 사용된다.
단계(376)는 분류자(Ci (A))를 타겟 객체에 적용한다. Ci (A)가 상기 타겟 객체를 그 선호 클래스(클래스 A) 내로 위치시킬 때, 단계(382)는 단계(348)로 나아가기 전에 클래스 A에 속하는 것으로 상기 타겟 객체를 라벨링한다. 단계(384)는 레벨 i의 다른 분류자, 예를 들어서, 분류자(Ci (B))를 타겟 객체에 적용한다. 분류자(Ci (B))가 상기 타겟 객체를 그 선호 클래스(클래스 B) 내로 위치시킬 때, 단계(388)는 클래스 B에 속하는 것으로 상기 타겟 객체를 라벨링한다. 아니라면, 단계(392)는 현재 캐스케이드 레벨의 분류자들이 상기 타겟 객체를 예를 들어서 클래스 A 또는 B 중의 하나에 속하는 것으로 성공적으로 분류했는지를 체크한다. 맞다면 분류는 정지된다. 현재 캐스케이드 레벨의 어떠한 분류자도 타겟 객체를 성공적으로 분류하지 못했을 때, 보안 어플리케이션(52)은 다음 캐스케이드 레벨로 나아간다(단계 374). 상기 캐스케이드가 추가적인 레벨들을 포함하지 않을 때, 단계(394)에서, 어플리케이션(52)은 타겟 객체를 양성으로 라벨링해서 타겟 객체의 긍정 오류 분류를 방지할 수 있다. 선택적 실시예에서, 단계(394)는 상기 타겟 객체를 알지 못함(unknown)으로 라벨링할 수 있다.
단계(390)는 캐스케이드의 현재 레벨의 하나 이상의 분류자가 상기 타겟 객체를 그 선호 클래스에 위치시켰는지를 결정한다(예를 들어서, 도 13에서 단계 380과 단계 386 둘다 “예”를 회신할 때). 아니라면, 보안 어플리케이션(52)은 상술한 단계(392)로 나아간다. 맞다면, 타겟 객체는 양성 또는 알지 못함으로 라벨링되서 긍정 오류 분류를 방지할 수 있다.
상술한 예시적 시스템들과 방법들은 컴퓨터 보안 시스템으로 하여금, 특히 멀웨어 탐지, 스팸 탐지 및 사기 탐지를 포함하는 어플리케이션들을 위하여 훈련된 분류자들의 캐스케이드를 이용하여 타겟 객체를 자동으로 분류할 수 있게 한다. 상기 캐스케이드는 특히, artificial neural networks (ANNs), support vector machines (SVMs), 클러스터링 분류자들(clustering classifiers) 및 결정 트리 분류자들과 같은 여러 분류자 유형을 포함할 수 있다. 가능하게는 대량의 레코드들(예를 들어서, 수백만)로 구성될 수 있는 사전 분류된 훈련 뭉치가 상기 분류자들을 훈련하기 위하여 사용된다. 일부 실시예들에서, 상기 캐스케이드의 개별 분류자들은 소정의 순서로 훈련된다. 분류 단계에서, 상기 캐스케이드의 분류자들은 이들이 훈련된 동일한 순서로 채용될 수 있다.
상기 캐스케이드의 각 분류자는 레코드들의 현재 뭉치를 적어도 2개 그룹들로 분할해서는 상기 그룹들 중 한 그룹 내의 레코드들의 실질적 비율(예를 들어서, 전부)이 동일한 라벨들을 가질 수 있도록, 즉 동일한 클래스에 속하도록 구성될 수 있다. 일부 실시예들에서, 상기 캐스케이드의 다음 레벨로부터의 분류자를 훈련하기 전에, 상기 개별 그룹의 레코드들의 서브세트는 상기 훈련 뭉치로부터 폐기된다.
대규모 고차원 데이터 세트들에서 분류자들을 훈련하는 것과 관련된 문제점들은 본 기술분야에서 잘 정리되어 있다. 그러한 훈련은 컴퓨팅 비용이 크고 통상적으로 오분류 레코드들의 서브세트를 생성한다. 컴퓨터 보안 어플리케이션들에서, 오류 긍정(오류로 위험을 가하는 것으로 식별된 양성 레코드들)은 특히 바람직하지 않은데, 그 이유는 이들이 사용자의 생산성 저하 및/또는 데이터 손실을 가져올 수 있기 때문이다. 예를 들어서, 컴퓨터 보안 어플리케이션은 악성으로 잘못 분류된 양성 파일로의 사용자의 접근을 제한하거나, 또는 심지어 이를 지워버릴 수 있다. 오분류를 줄이는 하나의 종래의 전략은 훈련된 분류자들의 성숙도(정밀성, sophistication)를 증가시키거나 그리고/또는 예를 들어서 그러한 오분류에 벌칙을 가하는 정밀한 코스트 펑션(sophisticated cost function)을 도입함으로써 기존의 훈련 알고리즘을 복잡하게 만드는 것이다.
반대로, 본 발명의 일부 실시예들은 대형 데이터 세트들에서도 훈련하기가 상대적으로 빠른 퍼셉트론과 같은 기초 분류자들을 사용하는 것을 허용한다. 훈련 속도는 멀웨어 진화의 빠른 속도 때문에 매일 대량의 데이터(예를 들어서, 새로운 수백만의 샘플들)를 처리해야만 하는 컴퓨터 보안 어플리케이션들에서 특히 가치 있을 수 있다. 또한, 하나의 정밀한 분류자(a single sophisticated classifier)를 사용하는 대신에, 일부 실시예들은 오분류를 줄이기 위하여 캐스케이드로서 조직된(즉, 소정의 순서로 사용되도록 구성된) 복수의 분류자들을 사용한다. 상기 캐스케이드의 각각의 훈련된 분류자는 특징 공간의 특정 영역에 위치하는 레코드들을 정확하게 라벨링하기 위하여 사용될 수 있고, 상기 영역은 분류자 각각에 특정된다.
일부 실시예에서, 훈련은 상기 캐스케이드의 연속적 훈련 레벨들(training consecutive levels) 사이의 훈련 뭉치로부터 레코드들 세트를 폐기함으로써 추가적으로 가속화된다. 일부 유형들의 분류자들을 훈련하는 비용은 뭉치의 레코드들의 카운트에 크게 의존한다는 점은 본 기술분야에서 잘 알려져 있다(예를 들어서, NlogN 또는 N2 단위(order), 여기서 N은 레코드들의 카운트). 이러한 문제점들은, 통상적으로 매우 큰 훈련 뭉치들을 요구하는 컴퓨터 보안 어플리케이션들에서 특히 극심하다. 본 발명의 일부 실시예들에 따라서 훈련 뭉치의 크기를 점진적으로 감소시키는 것은 컴퓨터 보안을 위한 분류자들의 훈련의 컴퓨팅 비용을 극적으로 감소시킨다. 상기 캐스케이드의 각 레벨을 위하여 하나 이상의 분류자들을 사용하는 것은 훈련 뭉치의 보다 효율적인 가지치기(pruning)를 가능하게 할 수 있다.
부스팅(boosting)으로 일반적으로 알려진, 일부 종래의 훈련 전략들은 훈련 뭉치의 크기를 또한 감소시킨다. 본 기술분야에서 알려진 그러한 일례로서, 훈련에서 분류자에 의하여 반복적으로 오분류된 레코드들의 세트는 개별 분류자의 성능을 개선하기 위하여 훈련 뭉치로부터 폐기된다. 그러한 종래 방법들과는 반대로, 본 발명의 일부 실시예들은 훈련에서 분류자에 의하여 정확하게 분류된 레코드들의 세트를 훈련 뭉치로부터 제거한다.
본 발명의 범위를 벗어나지 않으면서 다양한 방법으로 상기 실시예들이 변경될 수 있음은 통상의 기술자에게 자명할 것이다. 따라서, 본 발명의 범위는 이하의 청구항들과 이들의 법적 균등물에 의하여 결정되어야 한다.

Claims (21)

  1. 하드웨어 프로세서와 메모리를 포함하는 컴퓨터 시스템으로서,
    상기 하드웨어 프로세서는 타겟 객체가 컴퓨터 보안 위협을 가하는지 결정하기 위하여 분류자들의 훈련된 캐스케이드(cascade)를 채용하도록 구성되고, 상기 분류자들의 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류되고, 상기 캐스케이드를 훈련하는 것은,
    소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제1 분류자를 훈련시키는 것(이 때 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되고, 상기 제1 복수의 레코드 그룹들은 상기 제1 분류자의 선호 그룹을 포함함);
    소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제2 분류자를 훈련시키는 것(이 때 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되고, 상기 제2 복수의 레코드 그룹들은 상기 제2 분류자의 선호 그룹을 포함함);
    상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것(이 때, 상기 레코드들의 세트는 상기 제1 및 제2 그룹들로부터 선택됨);
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제3 분류자를 훈련시키는 것(이 때, 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택됨); 및
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제4 분류자를 훈련시키는 것(이 때 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택됨);을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 분류자들의 훈련된 캐스케이드를 채용하는 것은,
    상기 타겟 객체의 클래스 할당을 결정하기 위하여 상기 제1 및 제2 분류자들을 적용하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체의 상기 클래스 할당을 결정하기 위하여, 상기 제3 분류자를 적용하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제2항에 있어서,
    상기 분류자들의 훈련된 캐스케이드를 채용하는 것은,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체를 상기 제1 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 상기 제2 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 “악성 아님”으로 라벨링하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제1항에 있어서,
    레코드들의 상기 제1 쉐어는 상기 제1 그룹의 모든 레코드들이 상기 제1 클래스에 속하도록 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    레코드들의 상기 세트는 상기 제1 및 제2 그룹들의 모든 레코드를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 제1 클래스는 악성 객체들만으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제1항에 있어서,
    상기 제1 클래스는 양성 객체들(benign objects)만으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제1항에 있어서,
    상기 제1 분류자는 퍼셉트론(perceptron), 서포트 벡터 머신(support vector machine, SVM), 클러스터링 분류자(clustering classifier) 및 결정 트리(decision tree)로 구성된 분류자들의 그룹으로부터 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제1항에 있어서,
    상기 타겟 객체는 실행가능한 객체(executable object), 전자 통신, 및 웹페이지로 구성된 객체들의 그룹으로부터 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  10. 하드웨어 프로세서와 메모리를 포함하는 컴퓨터 시스템으로서,
    상기 하드웨어 프로세서는 컴퓨터 보안 위협들을 탐지하는 데 사용하기 위하여 분류자들의 캐스케이드를 훈련하도록 구성되고, 상기 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류되고, 상기 캐스케이드를 훈련시키는 것은,
    소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제1 분류자를 훈련시키는 것(이 때 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되고, 상기 제1 복수의 레코드 그룹들은 상기 제1 분류자의 선호 그룹을 포함함);
    소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제2 분류자를 훈련시키는 것(이 때 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되고, 상기 제2 복수의 레코드 그룹들은 상기 제2 분류자의 선호 그룹을 포함함);
    상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것(이 때, 상기 레코드들의 세트는 상기 제1 및 제2 그룹들로부터 선택됨);
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제3 분류자를 훈련시키는 것(이 때, 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택됨); 및
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제4 분류자를 훈련시키는 것(이 때 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택됨)을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    컴퓨터 보안 위협들을 탐지하는 것은,
    악성으로 평가되는 타겟 객체의 클래스 할당을 결정하기 위하여 상기 제1 및 제2 분류자들을 적용하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체의 상기 클래스 할당을 결정하기 위하여, 상기 제3 분류자를 적용하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제11항에 있어서,
    컴퓨터 보안 위협들을 탐지하는 것은,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체를 상기 제1 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 상기 제2 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 “악성 아님”으로 라벨링하는 것을 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제10항에 있어서,
    레코드들의 상기 제1 쉐어는 상기 제1 그룹의 모든 레코드들이 상기 제1 클래스에 속하도록 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제10항에 있어서,
    레코드들의 상기 세트는 상기 제1 및 제2 그룹들의 모든 레코드를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제10항에 있어서,
    상기 제1 클래스는 악성 객체들만으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제10항에 있어서,
    상기 제1 클래스는 양성 객체들(benign objects)만으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제10항에 있어서,
    상기 제1 분류자는 퍼셉트론(perceptron), 서포트 벡터 머신(support vector machine, SVM), 클러스터링 분류자(clustering classifier) 및 결정 트리(decision tree)로 구성된 분류자들의 그룹으로부터 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  18. 제10항에 있어서,
    상기 컴퓨터 보안 위협들은 악성 소프트웨어, 원하지 않는 통신 및 온라인 사기로 구성된 위협들의 그룹으로부터 선택되는 것을 특징으로 하는 컴퓨터 시스템.
  19. 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금 타겟 객체가 컴퓨터 보안 위협을 가하는지를 결정하기 위하여 분류자들의 훈련된 캐스케이드를 채용하도록 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)로서,
    상기 분류자의 캐스케이드는 레코드들의 훈련 뭉치(training corpus) 상에서 훈련되고, 상기 훈련 뭉치는 레코드들의 적어도 제1 클래스와 제2 클래스로 사전 분류되고, 상기 캐스케이드의 훈련은,
    소정의 제1 임계치(threshold)에 따라서 제1 복수의 레코드 그룹들로 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제1 분류자를 훈련시키는 것(이 때, 상기 제1 복수의 레코드 그룹들의 제1 그룹의 레코드들의 제1 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제1 쉐어는 상기 제1 임계치를 넘도록 선택되고, 상기 제1 복수의 레코드 그룹들은 상기 제1 분류자의 선호 그룹을 포함함);
    소정의 제2 임계치(threshold)에 따라서 제2 복수의 레코드 그룹들로 상기 제1 그룹을 포함하여 상기 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제1 레벨의 제2 분류자를 훈련시키는 것(이 때 상기 제2 복수의 레코드 그룹들의 제2 그룹의 레코드들의 제2 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제2 쉐어는 상기 제2 임계치를 넘도록 선택되고, 상기 제2 복수의 레코드 그룹들은 상기 제2 분류자의 선호 그룹을 포함함);
    상기 제1 및 제2 분류자들을 훈련하는 것에 응답으로, 감소된 훈련 뭉치를 생성하기 위하여 상기 훈련 뭉치로부터 상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것(이 때, 상기 레코드들의 세트는 상기 제1 및 제2 그룹들로부터 선택됨);
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제3 임계치(threshold)에 따라서 제3 복수의 레코드 그룹들로 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제3 분류자를 훈련시키는 것(이 때, 상기 제3 복수의 레코드 그룹들의 제3 그룹의 레코드들의 제3 쉐어(share)가 상기 제1 클래스에 속하게 되고, 상기 제3 쉐어는 상기 제3 임계치를 넘도록 선택됨); 및
    상기 제1 및 제2 분류자들 모두의 상기 선호 그룹들의 레코드들의 세트를 제거하는 것에 응답으로, 소정의 제4 임계치(threshold)에 따라서 제4 복수의 레코드 그룹들로 상기 제3 그룹을 포함하여 상기 감소된 훈련 뭉치를 분할하기 위하여 상기 캐스케이드의 제2 레벨의 제4 분류자를 훈련시키는 것(이 때, 상기 제4 복수의 레코드 그룹들의 제4 그룹의 레코드들의 제4 쉐어(share)가 상기 제2 클래스에 속하게 되고, 상기 제4 쉐어는 상기 제4 임계치를 넘도록 선택됨)을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체
  20. 제19항에 있어서,
    상기 분류자들의 훈련된 캐스케이드를 채용하는 것은,
    상기 타겟 객체의 클래스 할당을 결정하기 위하여 상기 제1 및 제2 분류자들을 적용하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체의 상기 클래스 할당을 결정하기 위하여, 상기 제3 분류자를 적용하는 것을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  21. 제20항에 있어서,
    상기 분류자들의 훈련된 캐스케이드를 채용하는 것은,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속하지 않을 때, 상기 타겟 객체를 상기 제1 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속하지 않을 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 상기 제2 클래스에 할당하는 것과,
    상기 제1 및 제2 분류자들을 적용하는 것에 응답으로, 상기 타겟 객체가 상기 제1 분류자에 따라서 상기 제1 클래스에 속할 때, 그리고 상기 타겟 객체가 상기 제2 분류자에 따라서 상기 제2 클래스에 속할 때, 상기 타겟 객체를 “악성 아님”으로 라벨링하는 것을 추가적으로 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
KR1020177034369A 2015-05-17 2016-05-07 컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들 KR102189295B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562162781P 2015-05-17 2015-05-17
US62/162,781 2015-05-17
US14/714,718 US20160335432A1 (en) 2015-05-17 2015-05-18 Cascading Classifiers For Computer Security Applications
US14/714,718 2015-05-18
PCT/EP2016/060244 WO2016184702A1 (en) 2015-05-17 2016-05-07 Cascading classifiers for computer security applications

Publications (2)

Publication Number Publication Date
KR20180008517A KR20180008517A (ko) 2018-01-24
KR102189295B1 true KR102189295B1 (ko) 2020-12-14

Family

ID=57277212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177034369A KR102189295B1 (ko) 2015-05-17 2016-05-07 컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들

Country Status (12)

Country Link
US (1) US20160335432A1 (ko)
EP (1) EP3298530A1 (ko)
JP (1) JP6563523B2 (ko)
KR (1) KR102189295B1 (ko)
CN (1) CN107636665A (ko)
AU (1) AU2016264813B2 (ko)
CA (1) CA2984383C (ko)
HK (1) HK1244085A1 (ko)
IL (1) IL255328B (ko)
RU (1) RU2680738C1 (ko)
SG (1) SG11201708752PA (ko)
WO (1) WO2016184702A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10127439B2 (en) * 2015-01-15 2018-11-13 Samsung Electronics Co., Ltd. Object recognition method and apparatus
JP6437892B2 (ja) * 2015-07-13 2018-12-12 日本電信電話株式会社 ソフトウェア解析システム、ソフトウェア解析方法およびソフトウェア解析プログラム
US9992211B1 (en) * 2015-08-27 2018-06-05 Symantec Corporation Systems and methods for improving the classification accuracy of trustworthiness classifiers
CN106485146B (zh) * 2015-09-02 2019-08-13 腾讯科技(深圳)有限公司 一种信息处理方法及服务器
US10685008B1 (en) 2016-08-02 2020-06-16 Pindrop Security, Inc. Feature embeddings with relative locality for fast profiling of users on streaming data
US10313348B2 (en) * 2016-09-19 2019-06-04 Fortinet, Inc. Document classification by a hybrid classifier
US10341377B1 (en) * 2016-10-13 2019-07-02 Symantec Corporation Systems and methods for categorizing security incidents
US10242201B1 (en) * 2016-10-13 2019-03-26 Symantec Corporation Systems and methods for predicting security incidents triggered by security software
KR101865110B1 (ko) * 2016-11-21 2018-06-07 재단법인 아산사회복지재단 급성뇌경색 발생시점 추정시스템, 방법 및 프로그램
WO2018115534A1 (es) * 2016-12-19 2018-06-28 Telefonica Digital España, S.L.U. Método y sistema para detectar programas maliciosos integrados en un documento electrónico
US10924502B2 (en) * 2016-12-29 2021-02-16 Noblis, Inc. Network security using inflated files for anomaly detection
US10832168B2 (en) * 2017-01-10 2020-11-10 Crowdstrike, Inc. Computational modeling and classification of data streams
US20200027015A1 (en) * 2017-04-07 2020-01-23 Intel Corporation Systems and methods for providing deeply stacked automated program synthesis
US10581887B1 (en) * 2017-05-31 2020-03-03 Ca, Inc. Employing a relatively simple machine learning classifier to explain evidence that led to a security action decision by a relatively complex machine learning classifier
CN109507893B (zh) * 2017-09-14 2021-10-29 宁波方太厨具有限公司 一种智能家居设备的自学习告警控制方法
CN108199951A (zh) * 2018-01-04 2018-06-22 焦点科技股份有限公司 一种基于多算法融合模型的垃圾邮件过滤方法
US10891374B1 (en) * 2018-03-28 2021-01-12 Ca, Inc. Systems and methods for improving performance of cascade classifiers for protecting against computer malware
CN112204552B (zh) * 2018-05-21 2024-04-16 谷歌有限责任公司 识别恶意软件
US11321632B2 (en) * 2018-11-21 2022-05-03 Paypal, Inc. Machine learning based on post-transaction data
US11373063B2 (en) * 2018-12-10 2022-06-28 International Business Machines Corporation System and method for staged ensemble classification
US11089034B2 (en) * 2018-12-10 2021-08-10 Bitdefender IPR Management Ltd. Systems and methods for behavioral threat detection
US11153332B2 (en) * 2018-12-10 2021-10-19 Bitdefender IPR Management Ltd. Systems and methods for behavioral threat detection
US11899786B2 (en) 2019-04-15 2024-02-13 Crowdstrike, Inc. Detecting security-violation-associated event data
KR20200142374A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 입력 데이터에 근거한 ai 모델 선택 방법 및 그에 따른 방법을 수행하는 디스플레이 장치
US11941502B2 (en) * 2019-09-04 2024-03-26 Optum Services (Ireland) Limited Manifold-anomaly detection with axis parallel
AU2019475423B2 (en) * 2019-11-20 2023-06-08 Paypal, Inc. Techniques for leveraging post-transaction data for prior transactions to allow use of recent transaction data
RU2762528C1 (ru) * 2020-06-19 2021-12-21 Акционерное общество "Лаборатория Касперского" Способ обработки событий информационной безопасности перед передачей на анализ
RU2763115C1 (ru) * 2020-06-19 2021-12-27 Акционерное общество "Лаборатория Касперского" Способ корректировки параметров модели машинного обучения для определения ложных срабатываний и инцидентов информационной безопасности

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244291A1 (en) 2008-03-03 2009-10-01 Videoiq, Inc. Dynamic object classification
US20140090061A1 (en) * 2012-09-26 2014-03-27 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US20150213376A1 (en) 2014-01-30 2015-07-30 Shine Security Ltd. Methods and systems for generating classifiers for software applications

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076473B2 (en) * 2002-04-19 2006-07-11 Mitsubishi Electric Research Labs, Inc. Classification with boosted dyadic kernel discriminants
US7249162B2 (en) * 2003-02-25 2007-07-24 Microsoft Corporation Adaptive junk message filtering system
US20060174343A1 (en) * 2004-11-30 2006-08-03 Sensory Networks, Inc. Apparatus and method for acceleration of security applications through pre-filtering
US7643674B2 (en) * 2005-05-12 2010-01-05 Hewlett-Packard Development Company, L.P. Classification methods, classifier determination methods, classifiers, classifier determination devices, and articles of manufacture
US20070112701A1 (en) * 2005-08-15 2007-05-17 Microsoft Corporation Optimization of cascaded classifiers
US7962428B2 (en) * 2006-11-30 2011-06-14 Siemens Medical Solutions Usa, Inc. System and method for joint optimization of cascaded classifiers for computer aided detection
RU2430411C1 (ru) * 2010-03-02 2011-09-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного программного обеспечения
US8468599B2 (en) * 2010-09-20 2013-06-18 Sonalysts, Inc. System and method for privacy-enhanced cyber data fusion using temporal-behavioral aggregation and analysis
CA2819832C (en) * 2010-12-01 2017-03-14 Sourcefire, Inc. Detecting malicious software through contextual convictions, generic signatures and machine learning techniques
CN102169533A (zh) * 2011-05-11 2011-08-31 华南理工大学 一种商用网页恶意篡改检测方法
US20130097704A1 (en) * 2011-10-13 2013-04-18 Bitdefender IPR Management Ltd. Handling Noise in Training Data for Malware Detection
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
US9349103B2 (en) * 2012-01-09 2016-05-24 DecisionQ Corporation Application of machine learned Bayesian networks to detection of anomalies in complex systems
RU127215U1 (ru) * 2012-06-01 2013-04-20 Общество с ограниченной ответственностью "Секьюрити Стронгхолд" Устройство извлечения устойчивых векторов признаков
WO2013184653A1 (en) * 2012-06-04 2013-12-12 Board Of Regents, The University Of Texas System Method and system for resilient and adaptive detection of malicious websites

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244291A1 (en) 2008-03-03 2009-10-01 Videoiq, Inc. Dynamic object classification
US20140090061A1 (en) * 2012-09-26 2014-03-27 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US20150213376A1 (en) 2014-01-30 2015-07-30 Shine Security Ltd. Methods and systems for generating classifiers for software applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
João Gama et al, "Cascade Generalization", Machine Learning, Vol. 41, pp. 315-343(2000.12.)

Also Published As

Publication number Publication date
CA2984383C (en) 2023-08-15
WO2016184702A1 (en) 2016-11-24
HK1244085A1 (zh) 2018-07-27
CN107636665A (zh) 2018-01-26
CA2984383A1 (en) 2016-11-24
AU2016264813A1 (en) 2017-11-16
JP2018520419A (ja) 2018-07-26
KR20180008517A (ko) 2018-01-24
US20160335432A1 (en) 2016-11-17
EP3298530A1 (en) 2018-03-28
JP6563523B2 (ja) 2019-08-21
IL255328B (en) 2020-01-30
SG11201708752PA (en) 2017-12-28
IL255328A0 (en) 2017-12-31
AU2016264813B2 (en) 2021-06-03
RU2680738C1 (ru) 2019-02-26

Similar Documents

Publication Publication Date Title
KR102189295B1 (ko) 컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들
Mahdavifar et al. Effective and efficient hybrid android malware classification using pseudo-label stacked auto-encoder
US11533240B2 (en) Automatic recommendations for deployments in a data center
US9553889B1 (en) System and method of detecting malicious files on mobile devices
RU2454714C1 (ru) Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
US8401982B1 (en) Using sequencing and timing information of behavior events in machine learning to detect malware
CN110119620B (zh) 训练用于检测恶意容器的机器学习模型的系统和方法
US10853489B2 (en) Data-driven identification of malicious files using machine learning and an ensemble of malware detection procedures
US11379581B2 (en) System and method for detection of malicious files
US20130097704A1 (en) Handling Noise in Training Data for Malware Detection
Darshan et al. Performance evaluation of filter-based feature selection techniques in classifying portable executable files
US20230274003A1 (en) Identifying and correcting vulnerabilities in machine learning models
US20190294792A1 (en) Lightweight malware inference architecture
Bala et al. DroidEnemy: battling adversarial example attacks for Android malware detection
Sanz et al. Mads: malicious android applications detection through string analysis
Wolfe et al. High precision screening for Android malware with dimensionality reduction
EP3798885B1 (en) System and method for detection of malicious files
EP3113065A1 (en) System and method of detecting malicious files on mobile devices
Stamp et al. On ensemble learning
Yusoff et al. Optimizing decision tree in malware classification system by using genetic algorithm
Basole et al. Cluster analysis of malware family relationships
Samaneh et al. Effective and Efficient Hybrid Android Malware Classification Using Pseudo-Label Stacked Auto-Encoder
Firdaus et al. Selecting root exploit features using flying animal-inspired decision
Asmitha et al. Deep learning vs. adversarial noise: a battle in malware image analysis
Kang et al. Resilience against Adversarial Examples: Data-Augmentation Exploiting Generative Adversarial Networks.

Legal Events

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