KR102676386B1 - 인라인 멀웨어 검출 - Google Patents

인라인 멀웨어 검출 Download PDF

Info

Publication number
KR102676386B1
KR102676386B1 KR1020227001606A KR20227001606A KR102676386B1 KR 102676386 B1 KR102676386 B1 KR 102676386B1 KR 1020227001606 A KR1020227001606 A KR 1020227001606A KR 20227001606 A KR20227001606 A KR 20227001606A KR 102676386 B1 KR102676386 B1 KR 102676386B1
Authority
KR
South Korea
Prior art keywords
gram
file
data device
features
malicious
Prior art date
Application number
KR1020227001606A
Other languages
English (en)
Other versions
KR20220053549A (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 US16/517,465 external-priority patent/US11636208B2/en
Priority claimed from US16/517,463 external-priority patent/US11374946B2/en
Application filed by 팔로 알토 네트웍스, 인크. filed Critical 팔로 알토 네트웍스, 인크.
Publication of KR20220053549A publication Critical patent/KR20220053549A/ko
Application granted granted Critical
Publication of KR102676386B1 publication Critical patent/KR102676386B1/ko

Links

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/561Virus type analysis
    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

악성 파일들의 검출이 개시된다. 하나 이상의 샘플 분류 모델들을 포함한 세트가 네트워킹 디바이스 상에 저장된다. N-그램 분석이 수신 파일과 연관된 수신 패킷들의 시퀀스에 대해 수행된다. n-그램 분석을 수행하는 것은 적어도 하나의 저장된 샘플 분류 모델을 사용하는 것을 포함한다. 수신 패킷들의 시퀀스의 n-그램 분석에 적어도 부분적으로 기초하여 수신 파일이 악성인지의 결정이 이루어진다. 파일이 악성이라고 결정하는 것에 응답하여, 수신 파일의 전파가 방지된다.

Description

인라인 멀웨어 검출
멀웨어는 일반적으로 악성 소프트웨어(예컨대, 다양한 적대적이고, 침입적이며, 및/또는 그 외 원치 않는 소프트웨어를 포함하는)를 나타내기 위해 사용되는 일반적인 용어이다. 멀웨어는 코드, 스크립트들, 활성 콘텐트, 및/또는 다른 소프트웨어의 형태로 있을 수 있다. 멀웨어의 예시적인 사용들은 컴퓨터 및/또는 네트워크 동작들을 방해하는 것, 독점적 정보(예컨대, 아이덴티티, 금융, 및/또는 지적 재산 관련 정보와 같은, 기밀 정보)를 훔치는 것, 및/또는 사설/독점 컴퓨터 시스템들 및/또는 컴퓨터 네트워크들로의 액세스를 얻는 것을 포함한다. 불운하게도, 기술들이 멀웨어를 검출하고 완화하도록 돕기 위해 개발됨에 따라, 비도덕적인 저자들이 이러한 노력들을 피해가기 위한 방식들을 발견한다. 따라서, 멀웨어를 식별하고 완화하기 위한 기술들에 대한 개선들을 위한 진행 중인 요구가 있다.
본 발명의 다양한 실시예들은 다음의 상세한 설명 및 첨부된 도면들에서 개시된다.
도 1은 악성 애플리케이션들이 검출되고 피해를 야기하는 것으로부터 방지되는 환경의 예를 예시한다.
도 2a는 데이터 기기의 실시예를 예시한다.
도 2b는 데이터 기기의 실시예의 논리 구성요소들의 기능 다이어그램이다.
도 3은 샘플들을 분석하기 위해 시스템에 포함될 수 있는 논리 구성요소들의 예를 예시한다.
도 4는 위협 엔진의 예시적인 실시예의 부분들을 예시한다.
도 5는 트리의 일 부분의 예를 예시한다.
도 6은 데이터 기기상에서 인라인 멀웨어 검출을 수행하기 위한 프로세스의 예를 예시한다.
도 7a는 파일에 대한 예시적인 해시 테이블을 예시한다.
도 7b는 샘플에 대한 예시적인 위협 서명을 예시한다.
도 8a는 특징 추출을 수행하기 위한 프로세스의 예를 예시한다.
도 8b는 모델을 생성하기 위한 프로세스의 예를 예시한다.
본 발명은 프로세스로서; 장치; 시스템; 물질의 구성; 컴퓨터 판독 가능한 저장 매체상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서에 결합된 메모리 상에 저장되고 및/또는 그것에 의해 제공된 지시들을 실행하도록 구성된 프로세서와 같은, 프로세서를 포함한, 다양한 방식들로 구현될 수 있다. 이 명세서에서, 이들 구현들, 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술들로서 언급될 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 서술되지 않는다면, 태스크를 수행하도록 구성되는 것으로서 설명된 프로세서 또는 메모리와 같은 구성요소는 주어진 시간에 태스크를 수행하도록 임시로 구성되는 일반적인 구성요소 또는 태스크를 수행하기 위해 제조되는 특정 구성요소로서 구현될 수 있다. 본 출원에서 사용된 바와 같이, 용어 '프로세서'는 컴퓨터 프로그램 지시들과 같은, 데이터를 프로세싱하도록 구성된 하나 이상의 디바이스들, 회로들, 및/또는 프로세싱 코어들을 나타낸다.
본 발명의 하나 이상의 실시예들에 대한 상세한 설명은 이하에서 본 발명의 원리들을 예시하는 첨부된 도면들과 함께 제공된다. 본 발명은 이러한 실시예들과 관련되어 설명되지만, 본 발명은 임의의 실시예에 제한되지 않는다. 본 발명의 범위는 단지 청구항들에 의해서만 제한되며 본 발명은 다수의 대안들, 수정들 및 등가물들을 포함한다. 다수의 특정 세부사항들은 본 발명의 철저한 이해를 제공하기 위해 다음의 설명에서 제시된다. 이들 세부사항들은 예의 목적으로 제공되며 본 발명은 이들 특정 세부사항들 중 일부 또는 모두 없이 청구항들에 따라 실시될 수 있다. 명료함의 목적을 위해, 본 발명에 관련된 기술 분야들에서 알려져 있는 기술적 자료는 본 발명이 불필요하게 모호해지지 않도록 상세하게 설명되지 않았다.
1. 개요
방화벽은 일반적으로 허가된 통신들이 방화벽을 통과하도록 허용하는 동안 허가되지 않은 액세스로부터 네트워크들을 보호한다. 방화벽은 통상적으로 네트워크 액세스를 위한 방화벽 기능을 제공하는 디바이스, 디바이스들의 세트, 또는 디바이스 상에서 실행된 소프트웨어이다. 예를 들어, 방화벽은 디바이스들(예컨대, 컴퓨터들, 스마트폰들, 또는 다른 유형들의 네트워크 통신 가능 디바이스들)의 운영 시스템들로 통합될 수 있다. 방화벽은 또한 컴퓨터 서버들, 게이트웨이들, 네트워크/라우팅 디바이스들(예컨대, 네트워크 라우터들), 및 데이터 기기들(예컨대, 보안 기기들 또는 다른 유형들의 특수 목적 디바이스들)과 같은, 다양한 유형들의 디바이스들 상에서 하나 이상의 소프트웨어 애플리케이션들로 통합되거나 또는 그것으로서 실행될 수 있으며, 다양한 구현들에서, 특정한 동작들이 ASIC 또는 FPGA와 같은, 특수 목적 하드웨어에 구현될 수 있다.
방화벽들은 통상적으로 규칙들의 세트에 기초하여 네트워크 송신을 거부하거나 또는 허용한다. 이들 규칙들의 세트들은 종종 정책들(예컨대, 네트워크 정책들 또는 네트워크 보안 정책들)로서 불리운다. 예를 들어, 방화벽은 원치 않는 외부 트래픽이 보호된 디바이스들에 이르는 것을 방지하기 위해 규칙들 또는 정책들의 세트를 적용함으로써 인바운드 트래픽을 필터링할 수 있다. 방화벽은 또한 규칙들 또는 정책들의 세트를 적용함으로써 아웃바운드 트래픽을 필터링할 수 있다(예컨대, 허용, 차단, 모니터, 통지 또는 로그, 및/또는 다른 동작들은 방화벽 규칙들 또는 방화벽 정책들에서 특정될 수 있으며, 이것은 본 출원에서 설명된 바와 같이, 다양한 기준들에 기초하여 트리거될 수 있다). 방화벽은 또한 규칙들 또는 정책들의 세트를 유사하게 적용함으로써 로컬 네트워크(예컨대, 인트라넷) 트래픽을 필터링할 수 있다.
보안 디바이스들(예컨대, 보안 기기들, 보안 게이트웨이들, 보안 서비스들, 및/또는 다른 보안 디바이스들)은 다양한 보안 기능들(예컨대, 방화벽, 멀웨어-금지, 침입 방지/검출, 데이터 손실 방지(DLP), 및/또는 다른 보안 기능들), 네트워킹 기능들(예컨대, 라우팅, 서비스 품질(QoS), 네트워크 관련 리소스들의 작업부하 균형화, 및/또는 다른 네트워킹 기능들), 및/또는 다른 기능들을 포함할 수 있다. 예를 들어, 라우팅 기능들은 소스 정보(예컨대, IP 어드레스 및 포트), 목적지 정보(예컨대, IP 어드레스 및 포트), 및 프로토콜 정보에 기초할 수 있다.
기본 패킷 필터링 방화벽은 네트워크를 통해 송신된 개개의 패킷들을 검사함으로써 네트워크 통신 트래픽을 필터링한다(예컨대, 무상태형(stateless) 패킷 필터링 방화벽들인, 패킷 필터링 방화벽들 또는 1세대 방화벽들). 무상태형 패킷 필터링 방화벽들은 통상적으로 개개의 패킷들 자체를 검사하며 검사된 패킷들에 기초하여(예컨대, 패킷의 소스 및 목적지 어드레스 정보, 프로토콜 정보, 및 포트 번호의 조합을 사용하여) 규칙들을 적용한다.
애플리케이션 방화벽들은 또한 애플리케이션 계층 필터링(예컨대, TCP/IP 스택의 애플리케이션 레벨 상에서 작동하는, 애플리케이션 계층 필터링 방화벽들 또는 2세대 방화벽들)을 수행할 수 있다. 애플리케이션 계층 필터링 방화벽들 또는 애플리케이션 방화벽들은 일반적으로 특정한 애플리케이션들 및 프로토콜들(예컨대, 하이퍼텍스트 전송 프로토콜(HTTP), 도메인 이름 시스템(DNS) 요청, 파일 전송 프로토콜(FTP)을 사용한 파일 전송, 및 텔넷, DHCP, TCP, UDP, 및 TFTP(GSS)와 같은, 다양한 다른 유형들의 애플리케이션들 및 다른 프로토콜들을 사용한 웹 브라우징)을 식별할 수 있다. 예를 들어, 애플리케이션 방화벽들은 표준 포트를 통해 통신하려고 시도하는 허가되지 않은 프로토콜들(예컨대, 프로토콜이 일반적으로 애플리케이션 방화벽들을 사용하여 식별될 수 있는 비-표준 포트를 사용함으로써 몰래 하려고 시도하는 허가되지 않은/정책 외 프로토콜)을 차단할 수 있다.
상태형(stateful) 방화벽들은 또한 각각의 패킷이 패킷들의 상기 네트워크 송신의 흐름과 연관된 일련의 패킷들의 콘텍스트 내에서 검사되는 상태-기반 패킷 검사를 수행할 수 있다. 이러한 방화벽 기술은 일반적으로 그것이 방화벽을 통과하는 모든 연결들의 레코드들을 유지하고 패킷이 새로운 연결의 시작, 기존의 연결의 부분인지, 또는 유효하지 않은 패킷인지를 결정할 수 있으므로 상태형 패킷으로서 불리운다. 예를 들어, 연결의 상태 자체는 정책 내에서 규칙을 트리거하는 기준들 중 하나일 수 있다.
개선된 또는 차세대 방화벽들은 상기 논의된 바와 같이 무상태형 및 상태형 패킷 필터링 및 애플리케이션 계층 필터링을 수행할 수 있다. 차세대 방화벽들은 또한 부가적인 방화벽 기술들을 수행할 수 있다. 예를 들어, 때때로 개선된 또는 차세대 방화벽들로 불리우는 특정한 더 새로운 방화벽들이 또한 사용자들 및 콘텐트(예컨대, 차세대 방화벽들)를 식별할 수 있다. 특히, 특정한 차세대 방화벽들은 이들 방화벽들이 자동으로 식별할 수 있는 애플리케이션들의 리스트를 수천 개의 애플리케이션들로 확대한다. 이러한 차세대 방화벽들의 예들은 Palo Alto Networks, Inc.로부터 상업적으로 이용 가능하다(예컨대, Palo Alto Networks의 PA 시리즈 방화벽들). 예를 들어, Palo Alto Network의 차세대 방화벽들은 기업들이 다음: 정확한 애플리케이션 식별을 위한 APP-ID, 사용자 식별을 위한 사용자-ID(예컨대, 사용자 또는 사용자 그룹에 의한), 및 실시간 콘텐트 스캐닝을 위한 콘텐트-ID(예컨대, 웹 서핑을 제어하고 데이터 및 파일 전송들을 제한하는)와 같은, 다양한 식별 기술들을 사용하여 애플리케이션들, 사용자들, 및 콘텐트 - 포트들, IP 어드레스들, 및 패킷들이 아닌 - 를 식별하고 제어할 수 있게 한다. 이들 식별 기술들은 기업들이, 종래의 포트-차단 방화벽들에 의해 제공된 종래의 접근법을 따르는 대신에, 비즈니스-관련 개념들을 사용하여 애플리케이션 사용을 안전하게 가능하게 하도록 허용한다. 또한, 차세대 방화벽들을 위한 특수 목적 하드웨어(예컨대, 전용 기기들로서 구현된)는 일반적으로 범용 하드웨어 상에서 실행된 소프트웨어보다 애플리케이션 검사를 위한 더 높은 성능 레벨들을 제공한다(예컨대, 대기시간을 최소화하면서 네트워크 스루풋을 최대화하기 위해 단일-패스 소프트웨어 엔진과 빽빽하게 통합되는 전용, 기능 특정 프로세싱을 사용하는, Palo Alto Networks, Inc.에 의해 제공된 보안 기기들과 같은).
개선된 또는 차세대 방화벽들은 또한 가상화된 방화벽들을 사용하여 구현될 수 있다. 이러한 차세대 방화벽들의 예들은 Palo Alto Networks, Inc.로부터 상업적으로 이용 가능하다(예컨대, 예를 들어, VMware® ESXi™ 및 NSX™, Citrix® Netscaler SDX™, KVM/OpenStack(Centos/RHEL, Ubuntu®을 포함한, 다양한 상업적인 가상화된 환경들을 지원하는, Palo Alto Networks의 VM 시리즈 방화벽들, 및 Amazon Web Services(AWS)). 예를 들어, 가상화된 방화벽들은 물리적 형태 인자 기기들에서 이용 가능한 유사한 또는 정확하게 동일한 차세대 방화벽 및 개선된 위협 방지 특징들을 지원할 수 있어서, 기업들이 그것들의 사설, 공개, 및 하이브리드 클라우드 컴퓨팅 환경들로, 및 그것에 걸쳐 흐르는 애플리케이션들을 안전하게 가능화하도록 허용한다. VM 모니터링, 동적 어드레스 그룹들, 및 REST-기반 API와 같은 자동화 특징들은 기업들이 상기 콘텍스트를 보안 정책들로 동적으로 공급하는 VM 변화들을 능동적으로 모니터링하도록 허용하며, 그에 의해 VM들이 변할 때 발생할 수 있는 정책 래그를 제거한다.
II. 예시적인 환경
도 1은 악성 애플리케이션들("멀웨어")이 검출되고 피해를 야기하는 것을 방지하는 환경의 예를 예시한다. 이하에서 더 상세하게 설명될 바와 같이, 멀웨어 분류들(예컨대, 보안 플랫폼(122)에 의해 이루어지는 바와 같이)은 도 1에 도시된 환경에 포함된 다양한 엔티티들 중에서 다양하게 공유되고 및/또는 개선될 수 있다. 본 출원에서 설명된 기술들을 사용하여, 엔드포인트 클라이언트 디바이스들(104 내지 110)과 같은, 디바이스들이 이러한 멀웨어로부터 보호될 수 있다.
용어 "애플리케이션"은 형태/플랫폼에 관계없이, 프로그램들, 프로그램들의 묶음들, 시현들, 패킷들 등을 총괄하여 나타내기 위해 명세서 전체에 걸쳐 사용된다. "애플리케이션"(또한, 본 출원에서 "샘플"로서 불리운다)은 독립형 파일(예컨대, 파일명 "calculator.apk" 또는 "calculator.exe"를 가진 계산기 애플리케이션)일 수 있으며 또한 또 다른 애플리케이션의 독립적인 구성요소(예컨대, 계산기 앱 내에 내장된 모바일 광고 SDK 또는 라이브러리)일 수 있다.
본 출원에서 사용된 바와 같이 "멀웨어"는 비밀인지 여부(및 불법인지 여부)에 관계없이, 거동들에 참여하는 애플리케이션을 나타내며, 그 사용자는 승인되지 않으며/완전히 알려진 경우 승인되지 않을 것이다. 멀웨어의 예들은 트로이들, 바이러스들, 루트킷들, 스파이웨어, 해킹 툴들, 키로거들 등을 포함한다. 멀웨어의 일 예는 최종 사용자의 위치를 수집하며 원격 서버로 보고하는(매핑 서비스와 같은, 위치-기반 서비스들을 사용자에게 제공하지 않는) 데스크탑 애플리케이션이다. 멀웨어의 또 다른 예는 최종 사용자에게 무료 게임인 것처럼 보이지만, SMS 프리미엄 메시지(예컨대, 각각 $10의 비용이 드는)를 몰래 전송하여, 최종 사용자의 전화 요금을 늘리는 악성 Android Application Package.apk(APK) 파일이다. 멀웨어의 또 다른 예는 사용자의 연락처들을 몰래 수집하고 이들 연락처들을 스패머에게 전송하는 Apple iOS 플래시라이트 애플리케이션이다. 다른 형태들의 멀웨어가 또한 본 출원에서 설명된 기술들을 사용하여 검출되고/좌절당할 수 있다(예컨대, 랜섬웨어). 뿐만 아니라, n-그램들/특징 벡터들/출력 누적 변수들은 본 출원에서 악성 애플리케이션들을 위해 생성되는 것으로 설명되지만, 본 출원에서 설명된 기술들은 또한 다른 종류들의 애플리케이션들을 위한 프로필들(예컨대, 애드웨어 프로필들, 굿웨어 프로필들 등)을 생성하기 위해 다양한 실시예들에서 사용될 수 있다.
본 출원에서 설명된 기술들은 다양한 플랫폼들(예컨대, 데스크탑들, 이동 디바이스들, 게이밍 플랫폼들, 내장형 시스템들 등) 및/또는 다양한 유형들의 애플리케이션들(예컨대, Android .apk 파일들, iOS 애플리케이션들, Windows PE 파일들, Adobe Acrobat PDF 파일들 등)과 함께 사용될 수 있다. 도 1에 도시된 예시적인 환경에서, 클라이언트 디바이스들(104 내지 108)은 기업 네트워크(140)에 존재하는 (각각) 랩탑 컴퓨터, 데스크탑 컴퓨터, 및 태블릿이다. 클라이언트 디바이스(110)는 기업 네트워크(140)의 밖에 존재하는 랩탑 컴퓨터이다.
데이터 기기(102)는 클라이언트 디바이스들(104 및 106)과 같은 클라이언트 디바이스들, 및 기업 네트워크(140)의 밖에 있는(예컨대, 외부 네트워크(118)를 통해 도달 가능한) 노드들 간의 통신들에 관한 정책들을 시행하도록 구성된다. 이러한 정책들의 예들은 트래픽 쉐이핑, 서비스 품질, 및 트래픽의 라우팅을 통제하는 것들이다. 정책들의 다른 예들은 인입하는(및/또는 송출하는) 이메일 접속들, 웹사이트 접촉, 인스턴트 메시징 프로그램들을 통해 교환된 파일들, 및/또는 다른 파일 전달들에서의 위협들을 스캐닝하는 것을 요구하는 것들과 같은 보안 정책들을 포함한다. 몇몇 실시예들에서, 데이터 기기(102)는 또한 기업 네트워크(140)에서 벗어나지 않는 트래픽에 대하여 정책들을 시행하도록 구성된다.
데이터 기기의 실시예가 도 2a에서 도시된다. 도시된 예는 다양한 실시예들에서, 데이터 기기(102)에 포함되는 물리 구성요소들의 표현이다. 구체적으로, 데이터 기기(102)는 고성능 다중-코어 중앙 프로세싱 유닛(CPU)(202) 및 랜덤 액세스 메모리(RAM)(204)를 포함한다. 데이터 기기(102)는 또한 저장장치(210)(하나 이상의 하드 디스크들 또는 고체 상태 저장 유닛들과 같은)를 포함한다. 다양한 실시예들에서, 데이터 기기(102)는 기업 네트워크(140)를 모니터링하고 개시된 기술들을 구현하는데 사용된 정보를 저장한다(RAM(204), 저장장치(210), 및/또는 다른 적절한 위치들에 관계없이). 이러한 정보의 예들은 애플리케이션 식별자들, 콘텐트 식별자들, 사용자 식별자들, 요청된 URL들, IP 어드레스 매핑들, 정책 및 다른 구성 정보, 서명들, 호스트명/URL 범주화 정보, 멀웨어 프로필들, 및 기계 학습 모델들을 포함한다. 데이터 기기(102)는 또한 하나 이상의 선택적 하드웨어 가속화기들을 포함할 수 있다. 예를 들어, 데이터 기기(102)는 암호화 및 복호화 동작들을 수행하도록 구성된 암호 엔진(206), 및 매칭을 수행하고, 네트워크 프로세서들로서 동작하며, 및/또는 다른 태스크들을 수행하도록 구성된 하나 이상의 필드 프로그램 가능한 게이트 어레이들(FPGA들)(208)을 포함할 수 있다.
본 출원에서 데이터 기기(102)에 의해 수행되는 것으로서 설명된 기능은 다양한 방식들로 제공되고/구현될 수 있다. 예를 들어, 데이터 기기(102)는 전용 디바이스 또는 디바이스들의 세트일 수 있다. 데이터 기기(102)에 의해 제공된 기능은 또한 범용 컴퓨터, 컴퓨터 서버, 게이트웨이, 및/또는 네트워크/라우팅 디바이스 상에 통합되거나 또는 그것 상에서 소프트웨어로서 실행될 수 있다. 몇몇 실시예들에서, 데이터 기기(102)에 의해 제공되는 것으로서 설명된 적어도 몇몇 서비스들은 대신에(또는 그 외에) 클라이언트 디바이스 상에서 실행한 소프트웨어에 의해 클라이언트 디바이스(예컨대, 클라이언트 디바이스(104) 또는 클라이언트 디바이스(110))로 제공된다.
데이터 기기(102)가 태스크를 수행하는 것으로 설명될 때마다, 데이터 기기(102)의 단일 구성요소, 구성요소들의 서브세트, 또는 모든 구성요소들은 태스크를 수행하도록 협력할 수 있다. 유사하게, 데이터 기기(102)의 구성요소가 태스크를 수행하는 것으로 설명될 때마다, 서브구성요소는 태스크를 수행할 수 있으며 및/또는 구성요소는 다른 구성요소들과 함께 태스크를 수행할 수 있다. 다양한 실시예들에서, 데이터 기기(102)의 부분들은 하나 이상의 제3 자들에 의해 제공된다. 데이터 기기(102)에 이용 가능한 컴퓨팅 리소스들의 양과 같은 인자들에 의존하여, 데이터 기기(102)의 다양한 논리 구성요소들 및/또는 특징들이 생략될 수 있으며 본 출원에서 설명된 기술들은 그에 따라 적응된다. 유사하게, 부가적인 논리 구성요소들/특징들은 적용 가능한 경우 데이터 기기(102)의 실시예들에 포함될 수 있다. 다양한 실시예들에서 데이터 기기(102)에 포함된 구성요소의 일 예는 애플리케이션을 식별하도록 구성되는 애플리케이션 식별 엔진이다(예컨대, 패킷 흐름 분석에 기초하여 애플리케이션들을 식별하기 위한 다양한 애플리케이션 서명들을 사용하는). 예를 들어, 애플리케이션 식별 에진은 웹 브라우징 - 소셜 네트워킹; 웹 브라우징 - 뉴스; SSH 등과 같은, 세션이 어떤 유형의 트래픽을 수반하는지를 결정할 수 있다.
도 2b는 데이터 기기의 실시예의 논리 구성요소들의 기능 다이어그램이다. 도시된 예는 다양한 실시예들에서 데이터 기기(102)에 포함될 수 있는 논리 구성요소들의 표현이다. 달리 특정되지 않는다면, 데이터 기기(102)의 다양한 논리 구성요소들은 일반적으로, 하나 이상의 스크립트들의 세트(예컨대, 적용 가능한 경우, 자바, 파이썬 등으로 기록된)로서 포함한, 다양한 방식들로 구현 가능하다.
도시된 바와 같이, 데이터 기기(102)는 방화벽을 포함하며, 관리 평면(232) 및 데이터 평면(234)을 포함한다. 관리 평면은 정책들을 구성하고 로그 데이터를 보기 위한 사용자 인터페이스를 제공하는 것에 의해서와 같은, 사용자 상호작용들을 관리할 책임이 있다. 데이터 평면은 패킷 프로세싱 및 세션 핸들링을 수행하는 것에 의해서와 같은, 데이터를 관리할 책임이 있다.
네트워크 프로세서(236)는 클라이언트 디바이스(108)와 같은, 클라이언트 디바이스들로부터 패킷들을 수신하며, 프로세싱을 위해 그것들을 데이터 평면(234)으로 제공하도록 구성된다. 흐름 모듈(238)이 새로운 세션의 부분인 것으로 패킷들을 식별할 때마다, 그것은 새로운 세션 흐름을 생성한다. 뒤이은 패킷들은 흐름 검색에 기초하여 세션에 속하는 것으로 식별될 것이다. 적용 가능하다면, SSL 복호화는 SSL 복호화 엔진(240)에 의해 이용된다. 그렇지 않다면, SSL 복호화 엔진(240)에 의한 프로세싱은 생략된다. 복호화 엔진(240)은 데이터 기기(102)가 SSL/TLS 및 SSH 암호화된 트래픽을 검사하고 제어하도록 도우며, 따라서 그렇지 않다면 암호화된 트래픽에 은닉된 채로 있을 수 있는 위협들을 멈추도록 돕는다. 복호화 엔진(240)은 또한 민감형 콘텐트가 기업 네트워크(140)를 떠나는 것을 방지하도록 도울 수 있다. 복호화는 URL 카테고리, 트래픽 소스, 트래픽 목적지, 사용자, 사용자 그룹, 및 포트와 같은 파라미터들에 기초하여 선택적으로 제어(예컨대, 가능화 또는 불능화)될 수 있다. 복호화 정책들(예컨대, 어떤 세션들을 복호화할지를 특정하는) 외에, 복호화 프로필들이 정책에 의해 제어된 세션들에 대한 다양한 옵션들을 제어하기 위해 할당될 수 있다. 예를 들어, 특정 암호 묶음들 및 암호화 프로토콜 버전들의 사용이 요구될 수 있다.
애플리케이션 식별(APP-ID) 엔진(242)은 세션이 어떤 유형의 트래픽을 수반하는지를 결정하도록 구성된다. 일 예로서, 애플리케이션 식별 엔진(242)은 수신된 데이터에서 GET 요청을 인식하고 세션이 HTTP 디코더를 요구한다는 결론을 내릴 수 있다. 몇몇 경우들, 예컨대 웹 브라우징 세션에서, 식별된 애플리케이션은 변할 수 있으며, 이러한 변화들은 데이터 기기(102)에 의해 주지될 것이다. 예를 들어, 사용자는 처음에 기업 Wiki("웹 브라우징 - 생산성"으로서 방문된 URL에 기초하여 분류된)로 브라우징하며 그 후 다음에 소셜 네트워킹 사이트("웹 브라우징 - 소셜 네트워킹"으로 방문된 URL에 기초하여 분류된)로 브라우징할 수 있다. 상이한 유형들의 프로토콜들이 대응하는 디코더들을 갖는다.
애플리케이션 식별 엔진(242)에 의해 이루어진 결정에 기초하여, 패킷들은, 위협 엔진(244)에 의해, 패킷들(순서 외로 수신될 수 있는)을 정확한 순서로 모으고, 토큰화를 수행하며, 정보를 추출하도록 구성된 적절한 디코더로 전송된다. 위협 엔진(244)은 또한 무엇이 패킷에 일어나야 하는지를 결정하기 위해 서명 매칭을 수행한다. 요구된 대로, SSL 암호화 엔진(246)은 복호화된 데이터를 재-암호화할 수 있다. 패킷들은 (예컨대, 목적지로의) 송신을 위해 포워드 모듈(248)을 사용하여 포워딩된다.
도 2b에 또한 도시된 바와 같이, 정책들(252)이 관리 평면(232)에서 수신되고 저장된다. 정책들은 도메인 및/또는 호스트/서버 이름들을 사용하여 특정될 수 있는, 하나 이상의 규칙들을 포함할 수 있으며, 규칙들은 모니터링된 세션 트래픽 흐름들로부터의 다양한 추출된 파라미터들/정보에 기초하여 가입자/IP 흐름들에 대한 보안 정책 시행을 위해서와 같은, 하나 이상의 서명들 또는 다름 매칭 기준들 또는 휴리스틱스를 이용할 수 있다. 인터페이스(I/F) 전달기(250)는 관리 통신들을 위해 제공된다(예컨대, (REST) API들, 메시지들, 또는 네트워크 프로토콜 통신들 또는 다른 통신 메커니즘들을 통해).
III. 보안 플랫폼
도 1로 돌아가면, 악의적인 개인(시스템(120)을 사용하는)이 멀웨어(130)을 생성하였다고 가정하자. 악의적인 개인은 클라이언트 디바이스(140)와 같은, 클라이언트 디바이스가 멀웨어(130)의 복사를 실행하여, 클라이언트 디바이스를 손상시키며, 예컨대 클라이언트 디바이스가 봇넷(botnet)에서의 보트가 되게 하는 것을 희망한다. 손상된 클라이언트 디바이스는 그 후 적용 가능한 경우, 태스크를 수행하며(예컨대, 암호화폐 채굴, 또는 서비스 공격들의 거부에 참여하는 것), 명령 및 제어(C&C) 서버(150)와 같은 외부 엔티티로 정보를 보고할 뿐만 아니라, C&C 서버(150)로부터 지시들을 수신하도록 지시받을 수 있다.
데이터 기기(102)가 클라이언트 디바이스(140)를 동작시키는 사용자 "Alice"로(예컨대, 시스템(120)에 의해) 전송된 이메일을 가로챘다고 가정하자. 멀웨어(130)의 사본이 시스템(120)에 의해 메시지에 첨부되었다. 유사한 시나리오가 아닌, 대안으로서, 데이터 기기(102)는 (예컨대, 웹사이트로부터) 멀웨어(130)의 클라이언트 디바이스(140)에 의해 시도된 다운로드를 가로챌 수 있다. 어느 하나의 시나리오에서, 데이터 기기(102)는 파일에 대한 서명(예컨대, 멀웨어(130)의 이메일 접속 또는 웹사이트 다운로드)이 데이터 기기(102) 상에 존재하는지를 결정한다. 서명은, 존재한다면, 파일이 안전하다고(예컨대, 화이트리스트된) 알려진 것임을 나타낼 수 있으며, 또한 파일이 악성이라고(예컨대, 블랙리스트된) 알려진 것을 나타낼 수 있다.
다양한 실시예들에서, 데이터 기기(102)는 보안 플랫폼(122)과 협력하여 동작하도록 구성된다. 일 예로서, 보안 플랫폼(122)은 알려진-악성 파일들의 서명들의 세트(예컨대, 가입의 부분으로서)를 데이터 기기(102)로 제공할 수 있다. 멀웨어(130)에 대한 서명이 세트에 포함된다면(예컨대, 멀웨어(130)의 MD5 해시), 데이터 기기(102)는 그에 따라(예컨대, 클라이언트 디바이스(140)로 전송된 이메일 접속의 MD5 해시가 멀웨어(130)의 MD5 해시와 일치함을 검출함으로써) 클라이언트 디바이스(104)로의 멀웨어(130)의 송신을 방지할 수 있다. 보안 플랫폼(122)은 또한 알려진 악성 도메인들 및/또는 IP 어드레스들의 리스트를 데이터 기기(102)로 제공하여, 데이터 기기(102)가 기업 네트워크(140)와 C&C 서버(150)(예컨대, C&C 서버(150)가 악성인 것으로 알려진 경우) 간의 트래픽을 차단하도록 허용할 수 있다. 악성 도메인들(및/또는 IP 어드레스들)의 리스트는 또한 데이터 기기(102)가 그것의 노드들 중 하나가 손상되었을 때를 결정하도록 도울 수 있다. 예를 들어, 클라이언트 디바이스(140)가 C&C 서버(150)를 접촉하려고 시도한다면, 이러한 시도는 클라이언트(104)가 멀웨어에 의해 손상되었다는 강력한 표시자이다(및 클라이언트 디바이스(104)를 기업 네트워크(140) 내에서의 다른 노드들과 통신하는 것으로부터 격리하는 것과 같은, 시정 조치들이 그에 따라 취해져야 한다). 이하에서 더 상세하게 설명될 바와 같이, 보안 플랫폼(122)은 또한 파일들의 인라인 분석을 수행하기 위해 데이터 기기(102)에 의해 사용 가능한 기계 학습 모델들의 세트와 같은 다른 유형들의 정보를 데이터 기기(102)로 제공할 수 있다(예컨대, 가입의 부분으로서).
다양한 실시예들에서, 접속에 대한 어떤 서명도 발견되지 않았다면 다양한 동작들이 데이터 기기(102)에 의해 취해질 수 있다. 제1 예로서, 데이터 기기(102)는 양성(benign)으로서 화이트리스트되지 않은(예컨대, 알려진 양호한 파일들의 서명들에 일치하지 않는) 임의의 접속들의 송신을 차단함으로써, 안전-보장될 수 있다. 이러한 접근법의 단점은 그것들이 사실상 양성일 때 잠재적인 멀웨어로서 불필요하게 차단된 많은 합법적인 접속들이 있을 수 있다는 것이다. 제2 예로서, 데이터 기기(102)는 악성인 것으로서 블랙리스트되지 않은(예컨대, 알려진 불량 파일들의 서명들에 일치하지 않는) 임의의 접속들의 송신을 허용함으로써, 안전 위협적일 수 있다. 이러한 접근법의 단점은 새롭게 생성된 멀웨어(플랫폼(122)에 의해 이전에 보여지지 않은)가 피해를 야기하는 것이 방지되지 않을 것이라는 것이다.
제3 예로서, 데이터 기기(102)는 정적/동적 분석을 위해 파일(예컨대, 멀웨어(130))을 보안 플랫폼(122)으로 제공하고, 그것이 악성인지를 결정하며 및/또는 그 외 그것을 분류하도록 구성될 수 있다. 접속(서명이 이미 존재하지 않는)의 보안 플랫폼(122)에 의한 분석이 수행되는 동안 다양한 동작들이 데이터 기기(102)에 의해 취해질 수 있다. 제1 예로서, 데이터 기기(102)는 보안 플랫폼(122)으로부터 응답이 수신될 때까지 이메일(및 첨부)이 Alice로 전달되는 것을 방지할 수 있다. 플랫폼(122)이 샘플을 철저하게 분석하는데 대략 15분이 걸린다고 가정하면, 이것은 Alice로의 인입 메시지가 15분만큼 지연될 것임을 의미한다. 이 예에서, 첨부가 악성이므로, 이러한 지연은 Alice에게 부정적으로 영향을 주지 않을 것이다. 대안적인 예에서, 누군가가 서명이 또한 존재하지 않는 양성 첨부를 갖고 시간 민감형 메시지를 Alice에게 전송한다고 가정하자. 15분만큼 Alice로의 메시지의 전달을 지연시키는 것은 수용 가능하지 않은 것으로 보여질 가능성이 있을 것이다(예컨대, Alice에 의해). 이하에서 더 상세하게 설명될 바와 같이, 대안적인 접근법은 데이터 기기(102) 상에서 첨부에 대한 적어도 몇몇 실시간 분석을 수행하는 것이다(예컨대, 플랫폼(122)으로부터의 판정(verdict)을 기다리는 동안). 데이터 기기(102)가 첨부가 악성인지 또는 양성인지를 독립적으로 결정할 수 있다면, 그것은 초기 동작을 취할 수 있으며(예컨대, Alice로의 전달을 차단하거나 또는 허용하는), 적용 가능한 경우 판정이 보안 플랫폼(122)으로부터 수신된다면 부가적인 동작들을 조정하고/취할 수 있다.
보안 플랫폼(122)은 저장장치(142)에 수신된 샘플들의 사본들을 저장하며 분석이 시작된다(또는 적용 가능한 경우, 스케줄링된다). 저장장치(142)의 일 예는 아파치 하둡 클러스터(Apache Hadoop Cluste; HDFS)이다. 분석의 결과들(및 애플리케이션들에 관한 부가적인 정보)은 데이터베이스(146)에 저장된다. 애플리케이션이 악성으로 결정되는 경우에, 데이터 기기는 분석 결과에 기초하여 파일 다운로드를 자동으로 차단하도록 구성될 수 있다. 뿐만 아니라, 악성으로 결정된 파일을 다운로드하기 위한 미래 파일 전달 요청들을 자동으로 차단하기 위해 서명이 멀웨어에 대해 생성되고 분배될 수 있다(예컨대, 데이터 기기들(102, 136 및 148)과 같은 데이터 기기들로).
다양한 실시예들에서, 보안 플랫폼(122)은 통상적인 서버-클래스 운영 시스템들(예컨대, Linux)을 구동하는 하나 이상의 전용 상업적으로 이용 가능한 하드웨어 서버들(예컨대, 다중-코어 프로세서(들), 32G+의 RAM, 기가비트 네트워크 인터페이스 어댑터(들), 및 하드 드라이브(들)를 가진)을 포함한다. 보안 플랫폼(122)은 다수의 이러한 서버들, 고체 상태 드라이브들, 및/또는 다른 적용 가능한 고-성능 하드웨어를 포함한 확장 가능한 기반시설에 걸쳐 구현될 수 있다. 보안 플랫폼(122)은 하나 이상의 제3 자들에 의해 제공된 구성요소들을 포함한, 여러 분산형 구성요소들을 포함할 수 있다. 예를 들어, 보안 플랫폼(122)의 부분들 또는 모두는 Amazon Elastic Compute Cloud(EC2) 및/또는 Amazon Simple Storage Service(S3)를 사용하여 구현될 수 있다. 뿐만 아니라, 데이터 기기(102)와 마찬가지로, 보안 플랫폼(122)이 데이터를 저장하거나 또는 데이터를 프로세싱하는 것과 같은, 태스크를 수행하는 것으로 참조될 때마다, 보안 플랫폼(122)의 서브-구성요소 또는 다수의 서브-구성요소들(개별적으로 또는 제3 자 구성요소들과 협력하는지에 관계없이)은 상기 태스크를 수행하기 위해 협력할 수 있다는 것이 이해될 것이다. 일 예로서, 보안 플랫폼(122)은 가상 기계(VM) 서버(124)와 같은 하나 이상의 VM 서버들과 협력하여 정적/동적 분석을 선택적으로 수행할 수 있다.
가상 기계 서버의 예는 VMware ESXi, Citrix XenServer, 또는 Microsoft Hyper-V와 같은, 상업적으로 이용 가능한 가상화 소프트웨어를 구동하는 상업적으로 이용 가능한 서버-클래스 하드웨어(예컨대, 다중-코어 프로세서, 32+ 기가바이트의 RAM, 및 하나 이상의 기가비트 네트워크 인터페이스 어댑터들)를 포함한 물리 기계이다. 몇몇 실시예들에서, 가상 기계 서버는 생략된다. 뿐만 아니라, 가상 기계 서버는 보안 플랫폼(122)을 관리하는 동일한 엔티티의 제어하에 있을 수 있지만, 또한 제3 자에 의해 제공될 수 있다. 일 예로서, 가상 기계 서버는 EC2에 의존할 수 있으며, 보안 플랫폼(122)의 나머지 부분들은 보안 플랫폼(122)의 운용자에 의해 소유되며 그것의 제어 하에서 전용 하드웨어에 의해 제공된다. VM 서버(124)는 클라이언트 디바이스들을 에뮬레이팅하기 위해 하나 이상의 가상 기계들(126 내지 128)을 제공하도록 구성된다. 가상 기계들은 다양한 운영 시스템들 및/또는 그것의 버전들을 실행할 수 있다. 가상 기계들에서 애플리케이션들을 실행하는 것에서 기인한 관찰 거동들이 로그되고 분석된다(예컨대, 애플리케이션이 악성이라는 표시들에 대해). 몇몇 실시예들에서, 로그 분석은 VM 서버(예컨대, VM 서버(124))에 의해 수행된다. 다른 실시예들에서, 분석은 조정기(144)와 같은, 보안 플랫폼(122)의 다른 구성요소들에 의해 적어도 부분적으로 수행된다.
다양한 실시예들에서, 보안 플랫폼(122)은 가입의 부분으로서 데이터 기기(102)에 대한 서명들(및/또는 다른 식별자들)의 리스트를 통해 샘플들의 분석의 이용 가능한 결과들을 만든다. 예를 들어, 보안 플랫폼(122)은 멀웨어 앱들을 식별하는 콘텐트 패키지를 주기적으로 전송할 수 있다(예컨대, 매일, 매시간, 또는 몇몇 다른 간격, 및/또는 하나 이상의 정책들에 의해 구성된 이벤트에 기초하여). 예시적인 콘텐트 패키지는, 패키지 이름, 앱을 고유하게 식별하기 위한 해시 값, 및 각각의 식별된 멀웨어 앱에 대한 멀웨어 이름(및/또는 멀웨어 군 이름)과 같은 정보와 함께, 식별된 멀웨어 앱들의 목록을 포함한다. 가입은 데이터 기기(102)에 의해 가로채며 데이터 기기(102)에 의해 보안 플랫폼(122)으로 전송된 이들 파일들의 분석을 커버할 수 있으며, 또한 보안 플랫폼(122)에 알려진 모든 멀웨어(또는 다른 형태들의 멀웨어(예컨대, PDF 멀웨어)를 제외한 이동 멀웨어와 같은, 그것의 서브세트들)의 서명들을 커버할 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 플랫폼(122)은 또한 데이터 기기(102)가 멀웨어를 검출하도록 도울 수 있는(예컨대, 해시-기반 서명 매칭이 아닌 기술들을 통해) 기계 학습 모델들과 같은, 이용 가능한 다른 유형들의 정보를 만들 수 있다.
다양한 실시예들에서, 보안 플랫폼(122)은 보안 서비스들을 데이터 기기(102)의 운용자 외에(또는 적용 가능한 경우, 그 대신에) 다양한 엔티티들로 제공하도록 구성된다. 예를 들어, 그 자신의 각각의 기업 네트워크들(114 및 116), 및 그 자신의 각각의 데이터 기기들(136 및 148)을 가진, 다른 기업들은 보안 플랫폼(122)의 운용자와 계약할 수 있다. 다른 유형들의 엔티티들은 또한 보안 플랫폼(122)의 서비스들을 이용할 수 있다. 예를 들어, 인터넷 서비스를 클라이언트 디바이스(110)에 제공하는 인터넷 서비스 제공자(ISP)는 클라이언트 디바이스(110)가 다운로드하려고 시도하는 애플리케이션들을 분석하기 위해 보안 플랫폼(122)과 계약할 수 있다. 또 다른 예로서, 클라이언트 디바이스(110)의 소유자는 보안 플랫폼(122)과 통신하는 클라이언트 디바이스(110) 상에 소프트웨어를 설치할 수 있다(예컨대, 보안 플랫폼(122)으로부터 콘텐트 패키지들을 수신하고, 본 출원에서 설명된 기술들에 따라 첨부들을 검사하기 위해 수신된 콘텐트 패키지들을 사용하며, 분석을 위해 애플리케이션들을 보안 플랫폼(122)으로 송신하기 위해).
IV. 정적/동적 분석을 사용하여 샘플들을 분석하는 것
도 3은 샘플들을 분석하기 위해 시스템에 포함될 수 있는 논리 구성요소들의 예를 예시한다. 분석 시스템(300)은 단일 디바이스를 사용하여 구현될 수 있다. 예를 들어, 분석 시스템(300)의 기능은 데이터 기기(102)로 통합된 멀웨어 분석 모듈(112)에서 구현될 수 있다. 분석 시스템(300)은 또한, 다수의 별개의 디바이스들에 걸쳐, 총괄적으로 구현될 수 있다. 예를 들어, 분석 시스템(300)의 기능은 보안 플랫폼(122)에 의해 제공될 수 있다.
다양한 실시예들에서, 분석 시스템(300)은 알려진 안전한 콘텐트 및/또는 알려진 불량 콘텐트의 리스트들, 데이터베이스들, 또는 다른 컬렉션들(도 3에서 총괄하여 컬렉션(314)으로 도시된)을 이용한다. 컬렉션(314)은 가입 서비스(예컨대, 제3 자에 의해 제공된)를 통해 및/또는 다른 프로세싱(예컨대, 데이터 기기(102) 및/또는 보안 플랫폼(122)에 의해 수행된)의 결과로서를 포함한, 다양한 방식들로 획득될 수 있다. 컬렉션(314)에 포함된 정보의 예들은: 알려진 악성 서버들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 안전한 서버들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 명령 및 제어(C&C) 도메인들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 악성 애플리케이션들의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 안전한 애플리케이션들의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 악성 파일들(예컨대, Android 이용 파일들)의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 안전한 라이브러리들의 서명들, 해시들, 및/또는 다른 식별자들; 및 알려진 악성 라이브러리들의 서명들, 해시들, 및/또는 다른 식별자들이다.
A. 수집
다양한 실시예들에서, 새로운 샘플이 분석을 위해 수신될 때(예컨대, 샘플과 연관된 기존의 서명은 분석 시스템(300)에 존재하지 않는다), 그것은 큐(302)에 부가된다. 도 3에 도시된 바와 같이, 애플리케이션(130)은 시스템(300)에 의해 수신되며 큐(302)에 부가된다.
B. 정적 분석
조정기(304)는 큐(302)를 모니터링하며, 리소스들(예컨대, 정적 분석 작업기)이 이용 가능해짐에 따라, 조정기(304)는 프로세싱을 위해 큐(302)로부터 샘플을 인출한다(예컨대, 멀웨어(130)의 사본을 인출한다). 특히, 조정기(304)는 먼저 정적 분석을 위해 샘플을 정적 분석 엔진(306)으로 제공한다. 몇몇 실시예들에서, 하나 이상의 정적 분석 엔진들은 분석 시스템(300) 내에 포함되며, 여기에서 분석 시스템(300)은 단일 디바이스이다. 다른 실시예들에서, 정적 분석은 복수의 작동기들(즉, 정적 분석 엔진(306)의 복수의 인스턴스들)을 포함하는 별개의 정적 분석 서버에 의해 수행된다.
정적 분석 엔진은 샘플에 대한 일반적인 정보를 획득하며, 정적 분석 보고(308)에 그것을 포함시킨다(적용 가능한 경우, 휴리스틱 및 다른 정보와 함께). 보고는 정적 분석 엔진에 의해, 또는 정적 분석 엔진(306)으로부터 정보를 수신하도록 구성될 수 있는 조정기(304)에 의해(또는 또 다른 적절한 구성요소에 의해) 생성될 수 있다. 몇몇 실시예들에서, 수집된 정보는 생성되는 별개의 정적 분석 보고(308)(즉, 보고(308)로부터의 데이터베이스 레코드의 부분들) 대신에 또는 그 외에, 샘플에 대한 데이터베이스 레코드에(예컨대, 데이터베이스(316)에) 저장된다. 몇몇 실시예들에서, 정적 분석 엔진은 또한 애플리케이션에 대하여 판정(verdict)(예컨대, "안전", "의심", 또는 "악성")을 형성한다. 일 예로서, 판정은 하나의 "악성" 정적 특징이 애플리케이션에 존재한다면 "악성"일 수 있다(예컨대, 애플리케이션은 알려진 악성 도메인으로의 하드 링크를 포함한다). 또 다른 예로서, 포인트들은 특징들의 각각에 할당될 수 있으며(예컨대, 발견된다면, 심각도에 기초하여; 악의를 예측하기 위해 특징이 얼마나 신뢰 가능한지에 기초하여 등) 판정은 정적 분석 결과들과 연관된 포인트들의 수에 기초하여 정적 분석 엔진(306)(또는 적용 가능한 경우, 조정기(304))에 의해 할당될 수 있다.
C. 동적 분석
일단 정적 분석이 완료되면, 조정기(304)는 애플리케이션에 대한 동적 분석을 수행하기 위해 이용 가능한 동적 분석 엔진(310)의 위치를 찾는다. 정적 분석 엔진(306)과 마찬가지로, 분석 시스템(300)은 하나 이상의 동적 분석 엔진들을 직접 포함할 수 있다. 다른 실시예들에서, 동적 분석은 복수의 작업기들(즉, 동적 분석 엔진(310)의 복수의 인스턴스들)을 포함하는 별개의 동적 분석 서버에 의해 수행된다.
각각의 동적 분석 작업기는 가상 기계 인스턴스를 관리한다. 몇몇 실시예들에서, 정적 분석(예컨대, 정적 분석 엔진(306)에 의해 수행된)의 결과들은, 보고 형태(308)인지 및/또는 데이터베이스(316)에 저장되거나, 또는 그 외 저장되는 것으로서에 관계없이, 동적 분석 엔진(310)으로의 입력으로서 제공된다. 예를 들어, 정적 보고 정보는 동적 분석 엔진(310)에 의해 사용된 가상 기계 인스턴스를 선택/맞춤화하도록 돕기 위해 사용될 수 있다(예컨대, Microsoft Windows 7 SP2 대 Microsoft Windows 10 Enterprise, 또는 iOS 11.0 대 iOS 12.0). 다수의 가상 기계 인스턴스들이 동시에 실행되는 경우에, 적용 가능하다면, 단일 동적 분석 엔진은 인스턴스들 모두를 관리할 수 있거나, 또는 다수의 동작 분석 엔진들이 사용될 수 있다(예컨대, 각각은 그 자신의 가상 기계 인스턴스를 관리한다). 이하에서 더 상세하게 설명될 바와 같이, 분석의 동적 부분 동안, 애플리케이션에 의해 취해진 동작들(네트워크 활동을 포함한)이 분석된다.
다양한 실시예들에서, 샘플의 정적 분석은, 적용 가능하다면, 생략되거나 또는 별개의 엔티티에 의해 수행된다. 일 예로서, 종래의 정적 및/또는 동적 분석은 제1 엔티티에 의해 파일들에 대해 수행될 수 있다. 일단 주어진 파일이 악성이라고 결정되면(예컨대, 제1 엔티티에 의해), 파일은 구체적으로 네트워크 활동의 멀웨어의 사용에 대하여 부가적인 분석을 위해(예컨대, 동적 분석 엔진(310)에 의해) 제2 엔티티(예컨대, 보안 플랫폼(122)의 운용자)로 제공될 수 있다.
분석 시스템(300)에 의해 사용된 환경은 애플리케이션이 실행 중인 동안 관찰된 거동들이 그것들이 발생한 것으로 로그되도록(예컨대, 후킹 및 로그캣을 지원하는 맞춤화된 커널을 사용하여) 계장화/후킹된다. 에뮬레이터와 연관된 네트워크 트래픽이 또한 캡처된다(예컨대, pcap을 사용하여). 로그/네트워크 데이터는 분석 시스템(300) 상에서 임시 파일로서 저장될 수 있으며, 또한 더 영구적으로 저장될 수 있다(예컨대, HDFS 또는 또 다른 적절한 저장 기술 또는 MongoDB와 같은, 기술의 조합을 사용하여). 동적 분석 엔진(또는 또 다른 적절한 구성요소)은 도메인들, IP 어드레스들 등의 리스트들에 샘플들에 의해 이루어진 연결들을 비교하며(314) 샘플이 악성 엔티티들과 통신하였는지(또는 그것과 통신하려고 시도하였는지)를 결정할 수 있다.
정적 분석 엔진과 마찬가지로, 동적 분석 엔진은 테스트되는 애플리케이션과 연관된 기록에서 데이터베이스(316)에 그것의 분석의 결과들을 저장한다(및/또는 적용 가능하다면 보고(312)에 결과들을 포함시킨다). 몇몇 실시예들에서, 동적 분석 엔진은 또한 애플리케이션에 대하여 판정(예컨대, "안전", "의심", 또는 "악성")을 형성한다. 일 예로서, 판정은 하나의 "악성" 동작이 애플리케이션에 의해 취해진다면(예컨대, 알려진 악성 도메인을 접촉하려는 시도가 이루어지거나, 또는 민감한 정보를 유출하려는 시도가 관찰되는) "악성"일 수 있다. 또 다른 예로서, 포인트들이 취해진 동작들에 할당될 수 있으며(예컨대, 발견된다면 심각도에 기초하여; 악의를 예측하기 위해 동작이 얼마나 신뢰 가능한지에 기초하여; 등) 판정은 동적 분석 결과들과 연관된 포인트들의 수에 기초하여 동적 분석 엔진(310)(또는 적용 가능하다면, 조정기(304))에 의해 할당될 수 있다. 몇몇 실시예들에서, 샘플과 연관된 최종 판정은 보고(308) 및 보고(312)의 조합에 기초하여 이루어진다(예컨대, 조정기(304)에 의해).
V. 인라인 멀웨어 검출
도 1의 환경으로 돌아가면, 수백만 개의 새로운 멀웨어 샘플들이 매달 생성될 수 있다(예컨대, 기존의 멀웨어에 대해 미묘한 변화들을 만듦으로써 또는 새로운 멀웨어를 저작함으로써에 관계없이, 시스템(120)의 운용자와 같은 비도덕적인 개인들에 의해). 따라서, 보안 플랫폼(122)(적어도 처음에)이 서명이 없는 많은 멀웨어 샘플들이 존재할 것이다. 뿐만 아니라, 보안 플랫폼(122)이 새롭게 생성된 멀웨어에 대한 서명들을 생성한 경우에도, 리소스 제약들은 데이터 기기(102)와 같은, 데이터 기기들이 임의의 주어진 시간에 모든 알려진 서명들의 목록(예컨대, 플랫폼(122) 상에 저장된 것으로서)을 갖고/사용하는 것을 방지한다.
때때로 멀웨어(130)와 같은, 멀웨어는 네트워크(140)를 성공적으로 뚫을 것이다. 이에 대한 하나의 이유는 데이터 기기(102)가 "처음 허용(first-time allow)" 원리에 따라 동작하는 경우이다. 데이터 기기(102)가 샘플(예컨대, 샘플(130))에 대한 서명을 갖지 않으며 그것을 분석을 위해 보안 플랫폼(122)으로 제출할 때, 보안 플랫폼(122)은 판정(예컨대, "양성(benign)", "악성(malicious)", "알 수 없음" 등)을 반환하는데 대략 5분이 걸린다고 가정하자. 상기 5분 시간 기간 동안 시스템(120)과 클라이언트 디바이스(104) 간의 통신들을 차단하는 대신에, 처음 허용 원리 하에서, 통신이 허용된다. 판정이 반환될 때(예컨대, 5분 뒤), 데이터 기기(102)는 네트워크(140)로 멀웨어(130)의 뒤이은 송신들을 차단하기 위해 판정(예컨대, "악성")을 사용할 수 있고, 시스템(120)과 네트워크(140) 간의 통신을 차단할 수 있다. 다양한 실시예들에서, 샘플(130)의 제2 사본이 상기 기간 동안 데이터 기기(102)에 도달한다면, 데이터 기기(102)는 보안 플랫폼(122)으로부터 판정을 기다리며, 샘플(130)의 제2 사본(및 임의의 뒤이은 사본들)은 시스템(120)에 의해 유지되어 보안 플랫폼(122)으로부터 응답을 유예한다.
불운하게도, 데이터 기기(102)가 보안 플랫폼(122)으로부터 판정을 기다리는 5분 동안, 클라이언트 디바이스(104)의 사용자는 멀웨어(130)를 실행할 수 있어서, 잠재적으로 네트워크(140)에서 클라이언트 디바이스(104) 또는 다른 노드들을 손상시킬 수 있다. 상기 언급된 바와 같이, 다양한 실시예들에서, 데이터 기기(102)는 멀웨어 분석 모듈(112)을 포함한다. 멀웨어 분석 모듈(112)이 수행할 수 있는 하나의 태스크는 인라인 멀웨어 검출이다. 특히, 및 이하에서 더 상세하게 설명될 바와 같이, 파일(샘플(130)과 같은)이 데이터 기기(102)를 통과함에 따라, 기계 학습 기술들이 데이터 기기(102) 상에서 파일의 효율적인 분석을 수행하기 위해 적용될 수 있으며(예컨대, 데이터 기기(102)에 의해 파일에 대해 수행된 다른 프로세싱과 동시에) 초기 악성 판정(initial maliciousness verdict)은 데이터 기기(102)에 의해 결정될 수 있다(예컨대, 보안 플랫폼(122)으로부터 판정을 기다리는 동안).
다양한 어려움들이 데이터 기기(102)와 같은 리소스 제한된 기기상에서 이러한 분석을 구현할 때 발생할 수 있다. 기기(102) 상에서의 하나의 중대한 리소스는 세션 메모리이다. 세션은 기기(102)가 본 출원에서 설명된 기술들에 따라 분석하는 파일들을 포함한, 정보의 네트워크 전달이다. 단일 기기는 수백만 개의 동시 발생 세션들을 가질 수 있으며, 주어진 세션 동안 지속하기 위해 이용 가능한 메모리는 극히 제한된다. 데이터 기기(102)와 같은 데이터 기기상에서 인라인 분석을 수행할 때 제1 어려움은 이러한 메모리 제약들로 인해, 데이터 기기(102)가 통상적으로 전체 파일을 한 번에 프로세싱할 수 없을 것이며, 대신에 패킷 단위로, 그것이 프로세싱할 필요가 있는 패킷들의 시퀀스를 수신한다는 것이다. 데이터 기기(102)에 의해 사용된 기계 학습 접근법은 따라서 다양한 실시예들에서 패킷 스트림들을 수용할 필요가 있을 것이다. 제2 어려움은 몇몇 경우들에서, 데이터 기기(102)가 프로세싱되는 주어진 파일의 끝(예컨대, 스트림에서 샘플(130)의 끝)이 발생하는 곳을 결정할 수 없을 것이라는 것이다. 데이터 기기(102)에 의해 사용된 기계 학습 접근법은 따라서 다양한 실시예들에서 잠재적으로 중간 스트림에(예컨대, 샘플(130)의 수신/프로세싱의 중간쯤 또는 그 외 실제 파일 끝 이전) 주어진 파일에 대한 판정을 낼 수 있도록 요구할 것이다.
A. 기계 학습 모델들
이하에서 더 상세하게 설명될 바와 같이, 다양한 실시예들에서, 보안 플랫폼(122)은 인라인 멀웨어 검출과 함께 사용할 데이터 기기(102)에 대한 기계 학습 모델들의 세트를 데이터 기기(102)로 제공한다. 모델들은 악성 파일들에 대응하는 것으로 보안 플랫폼(122)에 의해 결정된 특징들(예컨대, n-그램들 또는 다른 특징들)을 통합한다. 이러한 모델들의 두 개의 예시적인 유형들은 선형 분류 모델들 및 비-선형 분류 모델들을 포함한다. 데이터 기기(102)에 의해 사용될 수 있는 선형 분류 모델들의 예들은 로지스틱 회귀 및 선형 지원 벡터 기계들을 포함한다. 데이터 기기(102)에 의해 사용될 수 있는 비-서형 분류 모델의 예는 그래디언트 부스팅 트리(예컨대, eXtreme Gradient Boosting(XGBoost))를 포함한다. 비-선형 모델은 더 정확하지만(및 애매한/위상 멀웨어를 검출하는데 더 양호할 수 있다), 선형 모델은 기기(102) 상에서 상당히 더 적은 리소스들을 사용한다(및 JavaScript 또는 유사한 파일들을 효율적으로 분석하는데 더 적절하다).
이하에서 더 상세하게 설명될 바와 같이, 어떤 유형의 분류 모델이 분석되는 주어진 파일을 위해 사용되는지는 파일과 연관된 파일유형에 기초할 수 있다(및 예컨대, 매직 넘버에 의해 결정된다).
1. 위협 엔진에 대한 부가적인 세부사항
다양한 실시예들에서, 데이터 기기(102)는 위협 엔진(244)을 포함한다. 위협 엔진은 각각의 디코더 스테이지 및 패턴 매치 스테이지 동안 프로토콜 디코딩 및 위협 서명 매칭 양쪽 모두를 통합한다. 두 개의 스테이지들의 결과들은 검출기 스테이지에 의해 병합된다.
데이터 기기(102)가 패킷을 수신할 때, 데이터 기기(102)는 패킷이 어떤 세션에 속하는지를 결정하기 위해 세션 매치를 수행한다(데이터 기기(102)가 동시 발생 세션들을 지원하도록 허용하는). 각각의 세션은 특정한 프로토콜 디코더(예컨대, 웹 브라우징 디코더, FTP 디코더, 또는 SMTP 디코더) 개입시키는 세션 상태를 가진다. 파일이 세션의 부분으로서 송신될 때, 적용 가능한 프로토콜 디코더는 적절한 파일-특정 디코더(예컨대, PE 파일 디코더, JavaScript 디코더, 또는 PDF 디코더)를 이용할 수 있다.
위협 엔진(244)의 예시적인 실시예의 부분들이 도 4에서 도시된다. 주어진 세션에 대해, 디코더(402)는 바이트스트림으로 트래픽을 거닐며, 대응하는 프로토콜을 따르고 콘텍스트들을 표시한다. 콘텍스트의 일 예는 파일-끝 콘텍스트이다(예컨대, JavaScript 파일을 프로세싱하는 동안 </script>를 마주하는). 디코더(402)는 패킷에서 파일-끝 콘텍스트를 표시할 수 있으며, 이것은 그 후 파일의 관찰된 특징들을 사용하여 적절한 모델의 실행을 트리거하기 위해 사용될 수 있다. 몇몇 경우들(예컨대, FTP 트래픽)에서, 명시적인 프로토콜-레벨 태그들은 콘텍스트를 식별/표시하기 위해 디코더(402)에 대해 존재하지 않을 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 다양한 실시예들에서, 디코더(402)는 파일의 특징 추출이 종료되어야 하고(예컨대, 오버레이 섹션이 시작하고) 적절한 모델을 사용한 실행이 시작되어야 할 때를 결정하기 위해 다른 정보(예컨대, 헤더에서 보고된 바와 같은 파일 크기)를 사용할 수 있다.
디코더(402)는 두 개의 파트들을 포함한다. 디코더(402)의 제1 부분은 상태 기계 언어를 사용하여 상태 기계로서 구현될 수 있는 가상 기계부(404)이다. 디코더(402)의 제2 부분은 트래픽에 매칭될 때 상태 기계 전이들 및 동작들을 트리거하기 위한 토큰들(406)의 세트(예컨대, 결정론적 유한 자동화(DFA) 또는 정규 표현들)이다. 위협 엔진(244)은 또한 패턴 매칭(예컨대, 위협 패턴들에 대한)을 수행하는 위협 패턴 매칭기(408)(예컨대, 정규 표현들을 사용하여)를 포함한다. 일 예로서, 위협 패턴 매칭기(408)는 매칭시킬 스트링들의 테이블(정확한 스트링들인지 또는 와일드카드 스트링들인지), 및 스트링 매치가 발견되는 경우 취할 대응 동작들을 제공받을 수 있다(예컨대, 보안 플랫폼(122)에 의해). 검출기(410)는 다양한 동작들을 취하기 위해 디코더(402) 및 위협 패턴 매칭기(408)에 의해 제공된 출력들을 프로세싱한다.
2. N-그램들
세션에서의 데이터는 n-그램들의 시퀀스 - 일련의 바이트 스트링들 - 로 분해될 수 있다. 예로서, 세션에서 16진수 데이터의 일 부분은: "1023ae42f6f28762aab"라고 가정하자. 시퀀스에서 2-그램들은 모두 "1023", "23ae", "ae42", "42f6" 등과 같은, 인접한 문자들의 쌍들이다. 다양한 실시예들에서, 위협 엔진(244)은 8-그램들을 사용하여 파일들을 분석하도록 구성된다. 7-그램들 또는 4-그램들과 같은, 다른 n-그램들이 또한 사용될 수 있다. 상기 예시적인 스트링에서, "1023ae42f6f28762"는 8-그램이고, "23ae42f6f28762aa"는 8-그램이다. 바이트 시퀀스에서 가능한 상이한 8-그램들의 총 수는 264(18,446,744,073,709,551,616)이다. 바이트 시퀀스에서 모든 가능한 8-그램들을 탐색하는 것은 데이터 기기(102)의 리소스들을 쉽게 초과할 것이다. 대신에, 및 이하에서 더 상세하게 설명될 바와 같이, 상당히 축소된 세트의 8-그램들이 위협 엔진(244)에 의한 사용을 위해 보안 플랫폼(122)에 의해 데이터 기기(102)로 제공된다.
파일에 대응하는 세션 패킷들이 위협 엔진(244)에 의해 수신됨에 따라, 위협 패턴 매칭기(408)는 테이블에서의 스트링들에 대한 매치들을 위해 패킷들을 파싱한다(예컨대, 정규 표현 및/또는 정확한 스트링 매치들을 수행함으로써). 매치들의 리스트(예컨대, 대응하는 패턴 ID에 의해 식별된 매치의 각각의 인스턴스를 가진) 및 어떤 오프셋에서 각각의 매치가 발생하였는지가 생성된다. 이들 매치들에 대한 동작들은 오프셋의 순서로(예컨대, 낮은 것에서 높은 것으로) 취해진다. 주어진 매치에 대해(즉, 특정한 패턴 ID에 대응하는), 취할 하나 이상의 동작들의 세트가 특정된다(예컨대, 동작들을 패턴 ID들에 매핑하는 동작 테이블을 통해).
보안 플랫폼(122)에 의해 제공된 8-그램들의 세트가 위협 패턴 매칭기(408)가 이미 수행하고 있는 매치들의 테이블로의 부가들로서 부가될 수 있다(예컨대, 정확한 스트링 매치들로서)(예컨대, JavaScript 파일이 패스워드 저장소를 액세스하거나, 또는 PE 파일이 로컬 보안 인가 서브시스템 서비스(LSASS) API를 호출하는 경우와 같은, 멀웨어의 특정 표시들을 찾는 휴리스틱 매치들). 이러한 접근법의 하나의 이점은, 패킷을 통한 다수의 패스들을 수행하는 대신에(예컨대, 먼저 휴리스틱 매치들에 대해 평가하며 그 후 8-그램 매치들에 대해 평가하는), 8-그램들은 위협 패턴 매칭기(408)에 의해 수행된 다른 탐색들과 동시에 탐색될 수 있다는 것이다.
이하에서 더 상세하게 설명될 바와 같이, 8-그램 매치들은 다양한 실시예들에서 선형 및 비-선형 분류 모델들 양쪽 모두에 의해 사용된다. n-그램 매치들에 대해 특정될 수 있는 예시적인 동작들은 가중 카운터를 증분시키는 것(예컨대, 선형 분류기에 대해) 및 특징 벡터에 매치를 저장하는 것(예컨대, 비-선형 분류기에 대해)을 포함한다. 어떤 동작이 취해질지는 패킷과 연관된 파일유형에 기초하여 특정될 수 있다(어떤 유형의 모델이 사용되는지를 결정하는).
3. 모델을 선택하는 것
몇몇 경우들에서, 주어진 파일유형은 파일의 헤더 내에서 특정된다(예컨대, 파일 자체의 첫 7바이트들에서 나타나는 매직 넘버로서). 이러한 시나리오에서, 위협 엔진(244)은 특정된 파일 유형에 대응하는 적절한 모델을 선택할 수 있다(예컨대, 파일유형들 및 대응하는 모델들을 나열하는 보안 플랫폼(122)에 의해 제공된 테이블에 기초하여). JavaScript와 같은, 다른 경우들에서, 매직 넘버 또는 다른 파일유형 식별자(헤더에 존재한다면)는 어떤 분류 모델이 사용되어야 하는지를 시험하지 않을 수 있다. 일 예로서, JavaScript는 "텍스트파일"의 파일유형을 가질 것이다. JavaScript와 같은 파일유형들을 식별하기 위해, 디코더(402)는 결정론적 유한 상태 자동화(DFA) 패턴 매칭을 수행하며 휴리스틱스(예컨대, <script> 및 파일이 JavaScript라는 다른 표시자들을 식별하는)를 이용하기 위해 사용될 수 있다. 결정된 파일유형 및/또는 선택된 분류 모델은 세션 상태에 저장된다. 세션과 연관된 파일유형은 적용 가능한 경우, 세션이 진행됨에 따라 업데이트될 수 있다. 예를 들어, 텍스트의 스트림에서, <script> 태그를 마주할 때, JavaScript 파일유형은 세션을 위해 할당될 수 있다. 대응하는 </script>를 마주할 때, 파일유형은 변경될 수 있다(예컨대, 다시 평문으로).
4. 선형 분류 모델들
선형 모델을 표현하기 위한 하나의 방식은 다음의 선형 방정식을 사용하는 것에 의한다:
여기에서 P는 특징들의 총 수이고, xi는 i번째 특징이고, βi는 특징 xi의 계수(가중치)이며, C는 임계 상수이다. 이 예에서, C는 악성(maliciousness)의 판정에 대한 임계치이며, 주어진 파일에 대한 합이 C 미만인 경우, 파일이 양성의 판정을 할당받으며, 합산이 C 이상이면, 파일이 악성의 판정을 할당받는다는 것을 의미한다.
데이터 기기(102)에 의해 선형 분류 모델을 사용하기 위한 하나의 접근법은 다음과 같다. 단일 플로트(single float)(d)는 인입 파일의 스코어를 추적하기 위해 사용되며, 해시 테이블은 관찰된 n-그램들 및 대응 계수들(즉, xi 및 βi)을 저장하기 위해 사용된다. 각각의 인입 패킷에 대해, n-그램 특징들의 각각은(예컨대, 보안 플랫폼(122)에 의해 제공된 바와 같이) 검사된다. 매치가 해시 테이블에서의 특징(xi)에 대해 발견될 때마다, 해시 테이블에서 상기 특징에 매칭되는 플로트(βi)가 부가된다(예컨대, d에). 파일의 끝에 이를 때, 임계 값(C)에 대한 단일 플로트(d)의 비교는 파일에 대한 판정을 결정하기 위해 수행된다.
n-그램 카운팅에 대해, 특징(xi)은 i번째 n-그램이 관찰되는 횟수와 동일하다. i번째 n-그램이 특정한 파일에 대해 4번 관찰된다고 가정하자. 4*βi는 βiiii로서 재기록될 수 있다. i번째 n-그램이 얼마나 많이(즉, 4번) 관찰되는지를 카운팅하고 그 후 βi로 곱하는 대신에, 대안적인 접근법은 i번째 n-그램이 관찰될 때마다 βi를 부가하는 것이다. 더욱이, j번째 n-그램이 파일에 대해 3번 관찰된다고 가정하자. 3*βj는 유사하게 βjjj로 기록될 수 있으며, 매번 βj가 얼마나 많이 관찰되는지를 카운팅하고 그 후 끝에 부가하는 대신에 βj를 부가한다.
Σ(βixi)를 찾기 위해, βixi, βjxj, ...(여기에서, ...는 다른 특징들/가중치들 모두에 대응한다)의 각각이 부가된다. 이것은 βi + βi + βi + βj + βj + βj + βj + ...로서 재기록될 수 있다. 부가가 누적되기 때문에, 값들의 부가는 임의의 순서로 부가되며(예컨대, βi + βj + βi + βj + βi + βi + βj + 등) 단일 플로트로 축적된다. 여기에서, 플로트(d)는 0.0에서 시작한다고 가정하자. 특징(xi)이 관찰될 때마다, βi가 플로트(d)에 부가될 수 있으며, xj가 관찰될 때마다, βj가 플로트(d)에 부가될 수 있다. 이러한 접근법은 4바이트 플로트가 세션 메모리당 전체로서 사용되도록 허용하며, 각 세션 메모리가 특징들의 수에 비례한다는 접근법과 대조적이고, 여기에서 전체 특징 벡터는 그것이 가중 벡터로 곱하여질 수 있도록 메모리에 저장된다. 4바이트 * 1,000 4Kbyte 특징들의 예를 사용하면, 4K는 저장을 위해 요구될 것이며(단일 4바이트 플로트에 비교하여), 이것은 1,000배 더 비싸다.
5. 비-선형 분류 모델들
다양한 비-선형 분류 접근법들이 본 출원에서 설명된 기술들과 함께 사용될 수 있다. 비-선형 분류 모델의 일 예는 그래디언트 부스팅 트리이다. 이 예에서, 특징 벡터는 모두-제로 벡터들로 초기화된다. 불운하게도, 비-선형 모델들(선행 모델들과 달리)에 대해, 존재가 검출되는 특징들의 전체 세트(예컨대, 1,000 특징들)는 세션의 전체 지속 기간 동안 지속된다. 이것은 선형 접근법에서보다 덜 효율적이지만, 몇몇 효율성은 전체 4바이트 플로트(메모리 제한되지 않는 디바이스 상에서 사용될 수 있는 바와 같이)보다는 1 바이트(0 내지 255)로 특징들을 다운-샘플링함으로써 여전히 얻어질 수 있다.
데이터 기기(102)가 파일을 스캔함에 따라, 특징이 관찰될 때마다, 상기 특징의 값은 특징 벡터에서 1만큼 증가된다. 일단 파일의 끝에 이르면(또는 특징 관찰의 종료가 그 외 발생하면), 구성된 특징 벡터는 그래디언트 부스팅 트리 모델로 공급된다(예컨대, 보안 플랫폼(122)으로부터 수신되는). 이하에서 더 상세하게 설명될 바와 같이, 비-선형 분류 모델은 n-그램(예컨대, 8-그램) 및 비 n-그램 특징들 양쪽 모두를 사용하여 구축될 수 있다. 비 n-그램 특징의 일 예는 파일의 의도된 크기(purported size)이다(파일의 헤더를 포함한 패킷 외 값으로서 판독될 수 있는). 파일의 의도된 끝(purported end) 뒤에 나타나는 임의의 파일 데이터(예컨대, 헤더에서 특정된 파일 크기에 기초한 바와 같이)는 오버레이로서 불리운다. 특징으로서 작용하는 것 외에, 의도된 파일 길이(purported file length)는 파일이 얼마나 긴 것으로 예상되는지에 대한 프록시로서 사용될 수 있다. 비-선형 분류기는 의도된 파일 길이에 도달될 때까지 파일의 패킷 스트림과 부딪치며, 그 후 판정(verdict)이 파일의 끝에 사실상 이르렀는지에 관계없이 파일에 대해 형성될 수 있다. 주어진 파일이 오버레이를 포함한다는 것은 또한 비-선형 분류 모델의 부분으로서 사용될 수 있는 특징의 예이다. 다양한 실시예들에서, 파일의 오버레이 부분은 분석되지 않으며, 다시 - 분석은 파일의 실제 끝 이전에 수행될 수 있다. 다른 실시예들에서, 특징 추출이 발생하며, 악성 판정은 파일의 실제 끝에 도달될 때까지 형성되지 않는다.
예시적인 실시예에서, 트리 모델은 5,000개 이진 트리들을 포함한다. 각각의 트리 상에서의 모든 노드는 특징 및 대응하는 임계치를 포함한다. 트리의 일 부분의 예는 도 5에서 묘사된다. 도 5에 도시된 예에서, 특징(예컨대, 특징 F4)에 대한 값이 임계치(예컨대, 30) 미만이면, 좌측 브랜치가 취해진다(502). 특징에 대한 값이 임계치 이상이면, 우측 브랜치가 취해진다(504). 트리는 리프 노드에 도달될 때까지(예컨대, 노드 506) 탐색되며, 이것은 연관된 값(예컨대, 0.7)을 가진다. 도달된 각각의 리프의 값들(트리들의 각각에 대한)은 판정을 산출하도록 최종 스코어를 얻기 위해 합산된다(곱해지기보다는). 스코어가 임계치 미만이면, 파일은 양성인 것으로 고려될 수 있으며, 그것이 임계치 이상이면, 파일은 악성인 것으로 고려될 수 있다. 최종 스코어를 얻을 때 곱셈의 결핍은 데이터 기기(102)의 리소스 제한된 환경에서 모델의 사용을 더 효율적이게 만들도록 돕는다.
다양한 실시예들에서, 트리들 자체는 데이터 기기(102) 상에 고정되며(업데이트된 모델이 수신될 때까지) 동시에 다수의 세션들에 의해 액세스될 수 있는 공유 메모리에 저장될 수 있다. 세션당 비용은 세션의 특징 벡터를 저장하는 비용이며, 이것은 세션의 분석이 완료되면 제조 아웃될 수 있다.
6. 예시적인 프로세스
도 6은 데이터 기기상에서 인라인 멀웨어 검출을 수행하기 위한 프로세스의 예를 예시한다. 다양한 실시예들에서, 프로세스(600)는 데이터 기기(102)에 의해, 및 특히 위협 엔진(244)에 의해 수행된다. 위협 엔진(244)은 적절한 스크립팅 언어(예컨대, 파이썬)로 저작된 스크립트(또는 스크립트들의 세트)를 사용하여 구현될 수 있다. 프로세스(600)는 또한 클라이언트 디바이스(110)와 같은 엔드포인트 상에서 수행될 수 있다(예컨대, 클라이언트 디바이스(110) 상에서 실행하는 엔드포인트 보호 애플리케이션에 의해).
프로세스(600)는 파일이 세션의 부분으로서 송신되고 있다는 표시가 기기(102)에 의해 수신될 때 602에서 시작한다. 602에서 수행된 프로세싱의 일 예로서, 주어진 세션에 대해, 연관된 프로토콜 디코더는 파일의 시작이 프로토콜 디코더에 의해 검출될 때 적절한 파일-특정 디코더를 호출하거나 또는 그 외 이를 이용할 수 있다. 상기 설명된 바와 같이, 파일유형이 결정되며(예컨대, 디코더(402)에 의해) 세션과 연관된다(예컨대, 뒤이은 파일유형 분석이 파일유형이 변하거나 또는 파일 패킷들이 송신되는 것을 중지할 때까지 수행될 필요가 없도록).
604에서, n-그램 분석이 수신된 패킷들의 시퀀스에 대해 수행된다. 상기 설명된 바와 같이, n-그램 분석은 기기(102)에 의해 세션 상에서 수행되고 있는 다른 분석들과 인라인으로 수행될 수 있다. 예를 들어, 기기(102)가 특정한 패킷에 대해 분석을 수행하는 동안(예컨대, 특정한 휴리스틱스의 존재를 검사하기 위해), 그것은 또한 패킷에서의 임의의 8-그램들이 보안 플랫폼(122)에 의해 제공된 8-그램들에 매칭되는지를 결정할 수 있다. 604에서 수행된 프로세싱 동안, n-그램 매치가 발견될 때, 대응하는 패턴 ID가 파일유형에 기초한 동작에 조건을 매핑시키기 위해 사용된다. 동작은 가중 카운터를 증분시키거나(예컨대, 파일유형이 선형 분류기와 연관되는 경우) 또는 매치를 감안하기 위해 특징 벡터를 업데이트한다(예컨대, 파일유형이 비-선형 분류기와 연관되는 경우).
n-그램 분석은 파일-끝 조건 또는 체크포인트에 도달될 때까지, 패킷 단위로 계속된다. 상기 포인트(606)에서, 적절한 모델은 파일에 대한 판정을 결정하기 위해 사용된다(즉, 악성 임계치(maliciousness threshold)에 대하여 모델을 사용하여 획득된 최종 값을 비교하는). 상기 언급된 바와 같이, 모델들은 n-그램 특징들을 통합하며 또한 다른 특징들을 통합할 수 있다(예컨대, 비-선형 분류기의 경우에).
최종적으로, 608에서, 606에서 이루어진 결정에 응답하여 동작이 취해진다. 응답 동작의 일 예는 세션을 종료하는 것이다. 응답 동작의 또 다른 예는 세션을 계속하도록 허용하지만, 파일이 송신되는 것을 방지하는 것이다(및, 대신에 격리 영역에 위치시키는 것이다). 다양한 실시예들에서, 기기(102)는 보안 플랫폼(122)과 그것의 판정들(양성 판정들, 악성 판정들, 또는 둘 모두인지에 관계없이)을 공유하도록 구성된다. 보안 플랫폼(122)이 파일에 대한 그것의 독립적인 분석을 완료할 때, 그것은 판정을 형성한 모델의 성능을 평가하는 것을 포함하여, 다양한 목적들로 기기(102)에 의해 보고된 판정을 사용할 수 있다.
샘플에 대한 예시적인 위협 서명이 도 7b에 도시된다. 특히, "4d73f42438fb5a857915219cdfa9cbb4ce3f771ffed93af81b0528931e4813f8"의 SHA-256 해시를 가진 샘플에 대해, 각각의 쌍에서의 제1 값은 특징에 대응하며, 제2 값은 카운트에 대응한다. 도 7b에 도시된 예에서, 숫자들을 포함한 특징들(예컨대, 특징 "3905")은 n-그램 특징들에 대응하며, "J" 및 숫자를 포함한 특징들(예컨대, 특징 "J18")은 비 n-그램 특징들에 대응한다.
예시적인 실시예에서, 보안 플랫폼(122)은 데이터 기기(102)와 같은 기기들에 의한 사용을 위해 모델들을 생성할 때 특정 위양성율(예컨대, 0.001)을 타겟팅하도록 구성된다. 따라서, 몇몇 경우들에서(예컨대, 모든 1000개 파일들 중 하나), 데이터 기기(102)는 본 출원에서 설명된 기술들에 따른 모델을 사용하여 인라인 분석을 수행할 때 양성 파일이 악성이라고 부정확하게 결정할 수 있다. 이러한 시나리오에서, 보안 플랫폼(122)이 그 다음에 파일이 사실상 양성이라고 결정하면, 그것은 그 다음에 악성인 것으로 플래그되지 않도록 화이트리스트에 부가될 수 있다(예컨대, 또 다른 기기에 의해).
화이트리스팅을 위한 하나의 접근법은 보안 플랫폼(122)이 기기(102)에 저장된 화이트리스트에 파일을 부가하도록 기기(102)에 지시하는 것이다. 또 다른 접근법은 보안 플랫폼(122)이 거짓 양성들(false positives)에 대해 화이트리스트 시스템(154)에 지시하고 화이트리스트 시스템(154)이 기기(102)와 같은 기기들을 최신의 거짓 양성 정보(false positive information)로 유지하도록 지시하는 것이다. 이전에 언급된 바와 같이, 기기(102)와 같은 기기들이 가진 하나의 문제는 그것들이 리소스 제한적이라는 것이다. 기기에서 화이트리스트를 유지하는데 사용된 리소스들을 최소화하기 위한 하나의 접근법은 최소 최근 사용(Least Recently Used; LRU) 캐시를 사용하여 화이트리스트를 유지하는 것이다. 화이트리스트는 파일 해시들을 포함할 수 있으며, 또한 특징 벡터들 또는 특징 벡터들의 해시들과 같은, 다른 요소들에 기초할 수 있다.
VI. 모델들을 구축하는 것
도 1에 묘사된 환경으로 돌아가면, 이전에 설명된 바와 같이, 보안 플랫폼(122)은 그것이 수신하는 샘플들에 대한 정적 및 동적 분석을 수행하도록 구성된다. 보안 플랫폼(122)은 다양한 소스들로부터 분석을 위한 샘플들을 수신할 수 있다. 이전에 언급된 바와 같이, 샘플 소스의 하나의 예시적인 유형은 데이터 기기(예컨대, 데이터 기기들(102, 136, 및 148)이다. 다른 소스들(예컨대, 다른 보안 기기 벤더들, 보안 연구자들 등과 같은, 샘플들의 하나 이상의 제3 자 제공자들)이 또한 적용 가능하다면 사용될 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 보안 플랫폼(122)은 모델들을 구축하기 위해 그것이 수신하는 샘플들의 집성물을 사용할 수 있다(예컨대, 본 출원에서 설명된 기술들의 실시예들에 따라 보안 기기(102)에 의해 사용될 수 있는).
다양한 실시예들에서, 정적 분석 엔진(306)은 그것이 수신하는 샘플들에 대한 특징 추출을 수행하도록 구성된다(예컨대, 또한 상기 설명된 바와 같이 다른 정적 분석 기능들을 수행하는 동안). 특징 추출을 수행하기 위한 예시적인 프로세스(예컨대, 보안 플랫폼(122)에 의해)는 도 8a에서 묘사된다. 프로세스(800)는 샘플의 정적 분석이 시작될 때 802에서 시작된다. 특징 추출(804) 동안, 모든 8-그램들(또는 8-그램들이 사용되지 않는 실시예들에서 다른 적용 가능한 n-그램들)은 프로세싱되는 샘플(예컨대, 도 3에서의 샘플(130)) 중에서 추출된다. 특히, 분석되는 샘플에서 8-그램들의 히스토그램이 추출되며(예컨대, 해시 테이블로), 이것은 주어진 8-그램이 프로세싱되는 샘플에서 관찰되는 횟수들을 나타낸다. 정적 분석 엔진(306)에 의한 특징 분석 동안 8-그램들을 추출하는 하나의 이점은 원래 파일이 결과적인 히스토그램으로부터 재구성될 수 없으므로, 제3 자들로부터 획득된 샘플들을 사용할 때(예컨대, 모델들을 구성할 때) 잠재적인 프라이버시 및 계약상 문제들이 완화될 수 있다는 것이다. 추출된 히스토그램은 806에서 저장된다.
다양한 실시예들에서, 정적 분석 엔진(306)은 다른 샘플들로부터 추출된 히스토그램들과 함께 주어진 샘플에 대한 추출된 히스토그램(예컨대, 해시 테이블을 사용하여 표현된)을 저장장치(142)(예컨대, 하둡(Hadoop) 클러스터)에 저장한다. 하둡에서의 데이터는 압축되며 동작들이 하둡 데이터에 대해 수행될 때, 요구된 데이터는 즉석으로 압축 해제된다. 파일에 대한 예시적인 해시 테이블(JSON으로 표현된)이 도 7a에서 도시된다. 라인(702)은 파일의 SHA-256 해시를 나타낸다. 라인(704)은 샘플(130)이 보안 플랫폼(122)에 도달하는 UNIX 시간을 나타낸다. 라인(706)은 오버레이 섹션에서 n-그램들의 카운트를 나타낸다(예컨대, d00fbf4e088bc366':1은 'd00fb4e088bc366'의 하나의 인스턴스가 오버레이 섹션에서 발견되었음을 나타낸다). 라인(708)은 파일에 존재하는 8-그램들의 각각의 카운트를 나타낸다. 라인(710)은 파일이 오버레이를 갖는다는 것을 나타낸다. 라인(712)은 파일들의 파일유형이 ".exe"임을 나타낸다. 라인(714)은 보안 플랫폼(122)이 샘플(130)을 프로세싱하는 것을 마치는 UNIX 시간을 나타낸다. 라인(716)은 파일이 히트하는 비 8-그램 특징들의 각각의 카운트를 나타낸다. 최종적으로, 라인(718)은 파일이 악성인 것으로 결정됨을(예컨대, 보안 플랫폼(122)에 의해) 나타낸다.
예시적인 실시예에서, 하둡 클러스터에 저장된 8-그램 히스토그램들의 세트는 매일 대략 3테라바이트의 8-그램 히스토그램 데이터만큼 커진다. 히스토그램들은 악성 및 양성 샘플들 모두에 대응할 것이다(예컨대, 상기 설명된 바와 같이 보안 플랫폼(122)에 의해 수행된 다른 정적 및 동적 분석들의 결과들에 기초하여, 이와 같이 라벨링될 것이다).
분석되고 있는 샘플로부터 추출된 8-그램들의 히스토그램은 파일 자체보다 대략 10%더 클 것이며, 통상적인 샘플은 대략 백만 개의 상이한 8-그램들을 포함한 히스토그램을 가질 것이다. 상이한 가능한 8-그램들의 총 수는 264이다. 상기 언급된 바와 같이, 반대로, 보안 플랫폼(122)에 의해 데이터 기기(102)와 같은 디바이스들로 전송된 분류 모델들(예컨대, 가입의 부분으로서)은, 다양한 실시예들에서, 단지 수천 개의 특징들(예컨대, 1,000개 특징들)만을 포함한다. 모델에서의 사용을 위해 잠재적으로 264개 특징들의 세트를 가장 중요한 1,000개 특징들로 축소시키기 위한 하나의 예시적인 방식은 상호 정보 기술을 사용하는 것이다. 다른 접근법들이 또한 적용 가능한 경우 사용될 수 있다(예컨대, 카이-제곱(Chi-squared) 스코어). 4개의 요구된 파라미터들은 주어진 특징을 가진 악성 샘플들의 수, 주어진 특징들을 가진 양성 샘플들의 수, 악성 샘플들의 총 수, 및 양성 샘플들의 총 수를 포함한다. 상호 정보의 하나의 이점은 그것이 매우 큰 데이터 세트들에 대해 효율적으로 사용될 수 있다는 것이다. 하둡에서, 상호 정보 접근법은 그 각각이 특정 특징을 핸들링할 책임이 있는, 다수의 매퍼들에 걸쳐 태스크를 분배함으로써 단일 패스에서 수행될 수 있다(즉, 주어진 파일유형에 대해 하둡 클러스터 데이터세트에 저장된 8-그램 히스토그램들 모두를 통해). 최고 상호 정보를 가진 이들 특징들은 적용 가능하다면, 악성(maliciousness)을 가장 잘 나타내며 및/또는 양성(benignness)을 가장 잘 나타내는 특징들의 세트로서 선택될 수 있다. 결과적인 1,000개 특징들은 그 후 적용 가능하다면 모델들(예컨대, 선형 분류 모델들 및 비-선형 분류 모델들)을 구축하기 위해 사용될 수 있다. 예를 들어, 선형 분류 모델을 구축하기 위해, 모델 구축기(152)(파이썬과 같은 적절한 언어로 저작된 개방 소스 툴들 및/또는 스크립트들의 세트를 사용하여 구현된)는 (예컨대, 상기 섹션 V.A.4에서 설명된 바와 같이) 기기(102)가 검사할 n-그램 특징들의 세트로서 최상위 1,000개 특징들 및 적용 가능한 가중치들을 저장한다.
몇몇 실시예들에서, 비-선형 분류 모델이 또한 최상위 1,000개(또는 다른 원하는 수)의 특징들을 사용하여 모델 구축기(152)에 의해 구축된다. 다른 실시예들에서, 비-선형 분류 모델은 주로 최상위 특징들(예컨대, 950)을 사용하여 구성될 뿐만 아니라, 패킷 단위 특징 추출 및 분석 동안 또한 검출될 수 있는 다른, 비 n-그램 특징들(예컨대, 50개의 이러한 특징들)을 통합한다. 비-선형 분류 모델로 통합될 수 있는 비 n-그램 특징들의 몇몇 예들은: (1) 헤더의 크기, (2) 파일에서 검사합(checksum)의 존재 또는 부재, (3) 파일에서 섹션들의 수, (4) 파일의 의도된 길이(PE 파일의 헤더에 표시된 바와 같이), (5) 파일이 오버레이 부분을 포함하는지, 및 (6) 파일이 PE를 실행하도록 Windows EFI 서브시스템에 요구하는지를 포함한다.
몇몇 실시예들에서, 최상위 1,000개 특징들을 선택하기 위해 상호 정보를 사용하기보다는, 더 큰 세트의 특징들(특징들의 과도 생성된 세트)이 결정된다. 예로서, 최상위 5,000개 특징들이 처음에 상호 정보를 사용하여 선택될 수 있다. 상기 5,000개의 세트는 그 후 매우 큰 데이터세트들(예컨대, 전체 하둡 데이터세트)로 잘 스케일링하지 않으며, 축소된 세트(예컨대, 5,000개 특징들) 상에서 더 효과적인 종래의 특징 선택 기술(예컨대, 배깅(bagging))로의 입력으로서 사용될 수 있다. 종래의 특징 선택 기술은 상호 정보를 사용하여 식별된 5,000개 특징들의 세트로부터 최종 1,000개 특징들을 선택하기 위해 사용될 수 있다.
일단 최종 1,000개 특징들이 선택되면, 비-선형 모델을 구성하기 위한 예시적인 방식은 scikit-학습 또는 XGBoost와 같은 개방 소스 툴을 사용하는 것이다. 적용 가능하다면, 교차-검증을 사용하는 것에 의해서와 같은, 파라미터 튜닝이 수행될 수 있다.
모델을 생성하기 위한 예시적인 프로세스가 도 8b에서 묘사된다. 다양한 실시예들에서, 프로세스(850)는 보안 플랫폼(122)에 의해 수행된다. 프로세스(850)는 추출된 특징들의 세트(예컨대, n-그램 특징들을 포함한)가 수신될 때 852에서 시작된다. 특징들의 세트가 수신될 수 있는 하나의 예시적인 방식은 프로세스(800)의 결과로서 저장된 특징들을 판독하는 것에 의한다. 854에서, 특징들의 축소 세트는 852에서 수신된 특징들로부터 결정된다. 상기 설명된 바와 같이, 특징들의 축소 세트를 결정하는 예시적인 방식은 상호 정보를 사용하는 것에 의한다. 다른 접근법들(예컨대, 카이-제곱 스코어)이 또한 사용될 수 있다. 뿐만 아니라, 또한 상기 설명된 바와 같이, 상호 정보를 사용하여 특징들의 초기 세트를 선택하고 배깅 또는 또 다른 적절한 기술을 사용하여 초기 세트를 정제하는 것과 같은, 기술들의 조합이 또한 852/854에서 사용될 수 있다. 최종적으로, 또한 상기 설명된 바와 같이, 특징들이 선택된다면(예컨대, 854에서), 적절한 모델들이 856에서 구축된다(예컨대, 개방 소스 또는 다른 툴들을 사용하여, 및 적용 가능하다면, 파라미터 튜닝을 수행하여). 모델들(예컨대, 프로세스(850)를 사용하여 모델 구축기(152)에 의해 생성된)은 데이터 기기(102) 및 다른 적용 가능한 수신인들(예컨대, 데이터 기기들(136 및 148))로 전송될 수 있다(예컨대, 가입 서비스의 부분으로서).
다양한 실시예들에서, 모델 구축기(152)는 매일(또는 다른 적용 가능한) 기반으로 모델들(예컨대, 선형 및 비-선형 분류 모델들)을 생성한다. 프로세스(850)를 수행하거나 또는 그 외 모델들을 주기적으로 생성함으로써, 보안 플랫폼(122)은 기기(102)와 같은 기기들에 의해 사용된 모델들이 멀웨어 위협들의 가장 현재 유형들(예컨대, 비도덕적인 개인들에 의해 가장 최근 전개된 것들)을 검출하는 것을 보장하도록 도울 수 있다.
새롭게-생성된 모델이 기존의 모델보다 양호한 것으로 결정될 때마다(예컨대, 임계치를 초과하는 품질 평가 메트릭들의 세트에 기초하여 결정된 바와 같이), 업데이트된 모델들은 데이터 기기(102)와 같은 데이터 기기들로 송신될 수 있다. 몇몇 경우들에서, 이러한 업데이트들은 특징들에 할당된 가중치들을 조정한다. 이러한 업데이트들은 기기들로 쉽게 배치되고 채택될 수 있다(예컨대, 실-시간 업데이트들로서). 다른 경우들에서, 이러한 업데이트들은 특징들 자체를 조정한다. 이러한 업데이트들은 그것들이 디코더와 같은, 기기의 구성요소들로의 패치들을 요구할 수 있기 때문에, 전개하는 것이 더 복잡해질 수 있다. 모델 생성 동안 오버트레이닝을 사용하는 하나의 이점은 디코더가 특정한 특징들을 검출할 수 있는지 여부를 고려할 수 있다는 것이다.
다양한 실시예들에서, 기기들은 그것들이 수신됨에 따라 모델들에 대한 업데이트들을 전개하도록 요구된다(예컨대, 보안 플랫폼(122)에 의해). 다른 실시예들에서, 기기들은 업데이트들을 선택적으로 전개하도록 허용된다(적어도 일정 기간 동안). 일 예로서, 새로운 모델이 기기(102)에 의해 수신될 때, 기존의 모델 및 새로운 모델 양쪽 모두는 일정 기간 동안 기기(102) 상에서 동시에 구동될 수 있다(예컨대, 기존의 모델은 생산 시 사용되며 새로운 모델은 실제로 그것들을 취하지 않고 취할 동작들에 대해 보고한다). 기기의 관리자는 기존의 모델 또는 새로운 모델이 기기상에서 트래픽을 프로세싱하기 위해 사용되어야 하는지를 나타낼 수 있다(예컨대, 어떤 모델이 더 양호하게 수행하는지에 기초하여). 다양한 실시예들에서, 기기(102)는 어떤 모델(들)이 기기(102) 상에서 구동하고 있는지 및 모델(들)이 얼마나 효과적인지와 같은 정보(예컨대, 거짓 양성 통계 정보)를 나타내는 텔레메트리를 다시 보안 플랫폼(122)으로 제공한다.
앞서 말한 실시예들은 이해의 명료함을 위해 약간 상세하게 설명되었지만, 본 발명은 제공된 세부사항들에 제한되지 않는다. 본 발명을 구현하는 많은 대안적인 방식들이 있다. 개시된 실시예들은 예시적이며 제한적이지 않다.

Claims (52)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 정보를 사용하여 악성으로 판단된 트래픽을 차단하는 방화벽을 포함하는 데이터 기기에 상기 정보를 제공하기 위한 보안 플랫폼에 있어서,
    프로세서로서:
    제 1 복수의 알려진 악성 파일들 및 제 2 복수의 알려진 비-악성 파일들을 포함하는 파일들의 세트로부터 추출된, 제 1 복수의 n-그램들을 포함한, 특징들의 세트를 수신하고 - 상기 파일들의 세트에 포함된 각 파일에 대하여, 상기 각 파일에 존재하는 n-그램들의 히스토그램들은 이전에 상기 각 파일에 대하여 정적 분석이 수행되는 동안 생성된 것임 - ;
    상호 정보 기술을 사용하여, 상기 수신한 특징들의 세트로부터 상기 제 1 복수의 n-그램들에 포함된 상기 n-그램들의 축소 세트를 포함하는 특징들의 축소 세트를 결정하고, 상기 특징들의 축소 세트를 결정하는 것은, 상기 제 1 복수의 알려진 악성 파일들에는 존재하고 상기 제 2 복수의 알려진 비-악성 파일들에는 존재하지 않기 때문에 악성을 더 나타내는 제 1 n-그램을, 상기 제 1 복수의 알려진 악성 파일들 및 상기 제 2 복수의 알려진 비-악성 파일들에 존재하기 때문에 상기 특징들의 축소 세트에 우선적으로 포함되지 않는 제 2 n-그램 보다, 상기 특징들의 축소 세트에 우선적으로 포함시키는 것을 포함하고;
    상기 데이터 기기에서 수신된 샘플들의 인라인 멀웨어 분석을 수행하기 위한 상기 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하고,
    상기 생성된 모델은 상기 제 1 n-그램을 포함하고, 상기 생성된 모델은 상기 제 2 n-그램을 포함하지 않고,
    상기 인라인 멀웨어 분석을 수행하는 것은, 상기 데이터 기기에 의해 수신된 제 1 샘플의 패킷들의 시퀀스에 대해 n-그램 분석을 수행하는 상기 데이터 기기로부터 상기 제 1 샘플을 악성으로 판단하는 것을 포함하고 - 상기 제 1 샘플에 대한 악성 서명은 상기 데이터 기기에는 존재하지 않음 - ,
    상기 인라인 멀웨어 분석에서 알려진 악성 파일들 및 알려진 비-악성 파일들의 세트로부터 추출된 상기 제 1 복수의 n-그램들을 사용하여 상기 데이터기기가 작동하지 않도록 구성된, 상기 프로세서; 및
    상기 프로세서에 결합되며 상기 프로세서에 지시들을 제공하도록 구성된 메모리를 포함하는, 보안 플랫폼.
  22. 제21항에 있어서, 상기 특징들의 축소 세트는 상기 제 1 복수의 알려진 악성 파일들로부터 추출된 특징들을 포함하는, 보안 플랫폼.
  23. 제21항에 있어서, 상기 특징들의 축소 세트는 상기 제 2 복수의 알려진 비 악성 파일들로부터 추출된 특징들을 포함하는, 보안 플랫폼.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 제21항에 있어서, 상기 생성된 모델은 적어도 하나의 비 n-그램 특징들을 더 포함하는, 보안 플랫폼.
  28. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일 크기와 연관되는, 보안 플랫폼.
  29. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 헤더 크기와 연관되는, 보안 플랫폼.
  30. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일에서 검사합(checksum)의 존재 또는 부재 중 적어도 하나와 연관되는, 보안 플랫폼.
  31. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일에서 섹션들의 수와 연관되는, 보안 플랫폼.
  32. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일의 의도된 길이(purported length)와 연관되는, 보안 플랫폼.
  33. 제27항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일이 오버레이를 포함하는지와 연관되는, 보안 플랫폼.
  34. 제21항에 있어서, 상기 모델은 선형 모델인, 보안 플랫폼.
  35. 제21항에 있어서, 상기 모델은 비-선형 모델인, 보안 플랫폼.
  36. 삭제
  37. 삭제
  38. 제21항에 있어서, 상기 데이터 기기에 의해 보고된 거짓 양성 결과(false positive result)에 응답하여, 상기 프로세서는 업데이트된 모델을 생성하고 상기 업데이트된 모델을 다른 데이터 기기로 송신하도록 구성되는, 보안 플랫폼.
  39. 정보를 사용하여 악성으로 판단된 트래픽을 차단하는 방화벽을 포함하는 데이터 기기에 상기 정보를 제공하기 위한, 하나 이상의 프로세서에 의하여 수행되는 방법에 있어서,
    상기 하나 이상의 프로세서에 의하여, 제 1 복수의 알려진 악성 파일들 및 제 2 복수의 알려진 비-악성 파일들을 포함하는 파일들의 세트로부터 추출된, 제 1 복수의 n-그램들을 포함한 특징들의 세트를 수신하는 단계 - 상기 파일들의 세트에 포함된 각 파일에 대하여, 상기 각 파일에 존재하는 n-그램들의 히스토그램들은 이전에 상기 각 파일에 대하여 정적 분석이 수행되는 동안 생성된 것임 -;
    상기 하나 이상의 프로세서에 의하여, 상호 정보 기술을 사용하여, 상기 수신한 특징들의 세트로부터 상기 제 1 복수의 n-그램들에 포함된 상기 n-그램들의 축소 세트를 포함하는 특징들의 축소 세트를 결정하는 단계 - 상기 특징들의 축소 세트를 결정하는 단계는, 상기 제 1 복수의 알려진 악성 파일들에는 존재하고 상기 제 2 복수의 알려진 비-악성 파일들에는 존재하지 않기 때문에 악성을 더 나타내는 제 1 n-그램을, 상기 제 1 복수의 알려진 악성 파일들 및 상기 제 2 복수의 알려진 비-악성 파일들에 존재하기 때문에 상기 특징들의 축소 세트에 우선적으로 포함되지 않는 제 2 n-그램 보다, 상기 특징들의 축소 세트에 우선적으로 포함시키는 것을 포함함 - ; 및
    상기 하나 이상의 프로세서에 의하여, 상기 데이터 기기에서 수신된 샘플들의 인라인 멀웨어 분석을 수행하기 위한 상기 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하는 단계를 포함하고,
    상기 생성된 모델은 상기 제 1 n-그램을 포함하고, 상기 생성된 모델은 상기 제 2 n-그램을 포함하지 않고,
    상기 인라인 멀웨어 분석을 수행하는 것은, 상기 데이터 기기에 의해 수신된 제 1 샘플의 패킷들의 시퀀스에 대해 n-그램 분석을 수행하는 상기 데이터 기기로부터 상기 제 1 샘플을 악성으로 판단하는 것을 포함하고 - 상기 제 1 샘플에 대한 악성 서명은 상기 데이터 기기에는 존재하지 않음 - ,
    상기 인라인 멀웨어 분석에서 알려진 악성 파일들 및 알려진 비-악성 파일들의 세트로부터 추출된 상기 제 1 복수의 n-그램들을 사용하여 상기 데이터기기가 작동하지 않게 하는, 방법.
  40. 유형의 컴퓨터 판독 가능한 저장 매체에 저장되며 컴퓨터 지시들을 포함한 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 지시들은:
    제 1 복수의 알려진 악성 파일들 및 제 2 복수의 알려진 비-악성 파일들을 포함하는 파일들의 세트로부터 추출된, 제 1 복수의 n-그램들을 포함한 특징들의 세트를 수신하고 - 상기 파일들의 세트에 포함된 각 파일에 대하여, 상기 각 파일에 존재하는 n-그램들의 히스토그램들은 이전에 상기 각 파일에 대하여 정적 분석이 수행되는 동안 생성된 것임 -;
    상호 정보 기술을 사용하여, 상기 수신한 특징들의 세트로부터 상기 제 1 복수의 n-그램들에 포함된 상기 n-그램들의 축소 세트를 포함하는 특징들의 축소 세트를 결정하고, 상기 특징들의 축소 세트를 결정하는 것은, 상기 제 1 복수의 알려진 악성 파일들에는 존재하고 상기 제 2 복수의 알려진 비-악성 파일들에는 존재하지 않기 때문에 악성을 더 나타내는 제 1 n-그램을, 상기 제 1 복수의 알려진 악성 파일들 및 상기 제 2 복수의 알려진 비-악성 파일들에 존재하기 때문에 상기 특징들의 축소 세트에 우선적으로 포함되지 않는 제 2 n-그램 보다, 상기 특징들의 축소 세트에 우선적으로 포함시키는 것을 포함하고;
    데이터 기기에서 수신된 샘플들의 인라인 멀웨어 분석을 수행하기 위한 상기 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하기 위한 것이고,
    상기 생성된 모델은 상기 제 1 n-그램을 포함하고, 상기 생성된 모델은 상기 제 2 n-그램을 포함하지 않고,
    상기 인라인 멀웨어 분석을 수행하는 것은, 상기 데이터 기기에 의해 수신된 제 1 샘플의 패킷들의 시퀀스에 대해 n-그램 분석을 수행하는 상기 데이터 기기로부터 상기 제 1 샘플을 악성으로 판단하는 것을 포함하고 - 상기 제 1 샘플에 대한 악성 서명은 상기 데이터 기기에는 존재하지 않음 - ,
    상기 인라인 멀웨어 분석에서 알려진 악성 파일들 및 알려진 비-악성 파일들의 세트로부터 추출된 상기 제 1 복수의 n-그램들을 사용하여 상기 데이터기기가 작동하지 않게 하는, 유형의 컴퓨터 판독 가능한 저장 매체에 저장되며 컴퓨터 지시들을 포함한 컴퓨터 프로그램.
  41. 제39항에 있어서, 상기 특징들의 축소 세트는 상기 제 1 복수의 알려진 악성 파일들로부터 추출된 특징들을 포함하는, 방법.
  42. 제39항에 있어서, 상기 특징들의 축소 세트는 상기 제 2 복수의 알려진 비 악성 파일들로부터 추출된 특징들을 포함하는, 방법.
  43. 제39항에 있어서, 상기 생성된 모델은 적어도 하나의 비 n-그램 특징들을 더 포함하는, 방법.
  44. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일 크기와 연관되는, 방법.
  45. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 헤더 크기와 연관되는, 방법.
  46. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일에서 검사합(checksum)의 존재 또는 부재 중 적어도 하나와 연관되는, 방법.
  47. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일에서 섹션들의 수와 연관되는, 방법.
  48. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일의 의도된 길이(purported length)와 연관되는, 방법.
  49. 제43항에 있어서, 상기 적어도 하나의 비 n-그램 특징은 파일이 오버레이를 포함하는지와 연관되는, 방법.
  50. 제39항에 있어서, 상기 모델은 선형 모델인, 방법.
  51. 제39항에 있어서, 상기 모델은 비-선형 모델인, 방법.
  52. 제39항에 있어서, 상기 데이터 기기에 의해 보고된 거짓 양성 결과(false positive result)에 응답하여, 상기 하나 이상의 프로세서에 의하여, 업데이트된 모델을 생성하고 상기 업데이트된 모델을 다른 데이터 기기로 송신하는, 방법.
KR1020227001606A 2019-07-19 2020-07-06 인라인 멀웨어 검출 KR102676386B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/517,465 2019-07-19
US16/517,465 US11636208B2 (en) 2019-07-19 2019-07-19 Generating models for performing inline malware detection
US16/517,463 US11374946B2 (en) 2019-07-19 2019-07-19 Inline malware detection
US16/517,463 2019-07-19
PCT/US2020/040928 WO2021015941A1 (en) 2019-07-19 2020-07-06 Inline malware detection

Publications (2)

Publication Number Publication Date
KR20220053549A KR20220053549A (ko) 2022-04-29
KR102676386B1 true KR102676386B1 (ko) 2024-06-20

Family

ID=74193725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227001606A KR102676386B1 (ko) 2019-07-19 2020-07-06 인라인 멀웨어 검출

Country Status (5)

Country Link
EP (1) EP3999985A4 (ko)
JP (2) JP7411775B2 (ko)
KR (1) KR102676386B1 (ko)
CN (1) CN114072798A (ko)
WO (1) WO2021015941A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378747B (zh) * 2022-10-27 2023-01-24 北京六方云信息技术有限公司 恶意数据检测方法、终端设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180013772A1 (en) * 2016-07-05 2018-01-11 Webroot Inc. Automatic Inline Detection based on Static Data
US20180300482A1 (en) * 2017-04-18 2018-10-18 Cylance Inc. Protecting devices from malicious files based on n-gram processing of sequential data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8844033B2 (en) * 2008-05-27 2014-09-23 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for detecting network anomalies using a trained probabilistic model
US9742796B1 (en) * 2015-09-18 2017-08-22 Palo Alto Networks, Inc. Automatic repair of corrupt files for a detonation engine
US10200391B2 (en) * 2015-09-23 2019-02-05 AVAST Software s.r.o. Detection of malware in derived pattern space
US10817608B2 (en) 2017-04-07 2020-10-27 Zscaler, Inc. System and method for malware detection on a per packet basis
US10902124B2 (en) * 2017-09-15 2021-01-26 Webroot Inc. Real-time JavaScript classifier
US11195401B2 (en) * 2017-09-27 2021-12-07 Johnson Controls Tyco IP Holdings LLP Building risk analysis system with natural language processing for threat ingestion

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180013772A1 (en) * 2016-07-05 2018-01-11 Webroot Inc. Automatic Inline Detection based on Static Data
US20180300482A1 (en) * 2017-04-18 2018-10-18 Cylance Inc. Protecting devices from malicious files based on n-gram processing of sequential data

Also Published As

Publication number Publication date
CN114072798A (zh) 2022-02-18
EP3999985A1 (en) 2022-05-25
EP3999985A4 (en) 2023-12-13
KR20220053549A (ko) 2022-04-29
WO2021015941A1 (en) 2021-01-28
JP2022541250A (ja) 2022-09-22
JP2024023875A (ja) 2024-02-21
JP7411775B2 (ja) 2024-01-11

Similar Documents

Publication Publication Date Title
US11783035B2 (en) Multi-representational learning models for static analysis of source code
US12095728B2 (en) Identifying security risks and enforcing policies on encrypted/encoded network communications
US11816214B2 (en) Building multi-representational learning models for static analysis of source code
US11636208B2 (en) Generating models for performing inline malware detection
US11374946B2 (en) Inline malware detection
US20230306114A1 (en) Method and system for automatically generating malware signature
US11863586B1 (en) Inline package name based supply chain attack detection and prevention
JP2024023875A (ja) インラインマルウェア検出
US20230344861A1 (en) Combination rule mining for malware signature generation
US12061696B2 (en) Sample traffic based self-learning malware detection
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
KR20240124354A (ko) 악성 명령 및 제어 트래픽을 탐지하는 딥러닝 파이프라인
US20240039893A1 (en) Beacon and threat intelligence based apt detection
US20230344867A1 (en) Detecting phishing pdfs with an image-based deep learning approach
US20230069731A1 (en) Automatic network signature generation
US12069028B2 (en) Fast policy matching with runtime signature update
US11770361B1 (en) Cobalt strike beacon HTTP C2 heuristic detection
US20230082289A1 (en) Automated fuzzy hash based signature collecting system for malware detection
US20240039952A1 (en) Cobalt strike beacon https c2 heuristic detection
US20240039951A1 (en) Probing for cobalt strike teamserver detection
US20240176869A1 (en) Dependency emulation for executable samples
US20230385412A1 (en) Automatically detecting unknown packers
WO2024025705A1 (en) Cobalt strike beacon http c2 heuristic detection

Legal Events

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