KR20220053549A - Inline malware detection - Google Patents
Inline malware detection Download PDFInfo
- Publication number
- KR20220053549A KR20220053549A KR1020227001606A KR20227001606A KR20220053549A KR 20220053549 A KR20220053549 A KR 20220053549A KR 1020227001606 A KR1020227001606 A KR 1020227001606A KR 20227001606 A KR20227001606 A KR 20227001606A KR 20220053549 A KR20220053549 A KR 20220053549A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- gram
- features
- analysis
- model
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title abstract description 8
- 238000004458 analytical method Methods 0.000 claims abstract description 114
- 238000013145 classification model Methods 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000006855 networking Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 47
- 230000003068 static effect Effects 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 23
- 230000009471 action Effects 0.000 description 20
- 238000013459 approach Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 15
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000001914 filtration Methods 0.000 description 9
- 238000013515 script Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003211 malignant effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- KKIMDKMETPPURN-UHFFFAOYSA-N 1-(3-(trifluoromethyl)phenyl)piperazine Chemical compound FC(F)(F)C1=CC=CC(N2CCNCC2)=C1 KKIMDKMETPPURN-UHFFFAOYSA-N 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures 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-그램 분석에 적어도 부분적으로 기초하여 수신 파일이 악성인지의 결정이 이루어진다. 파일이 악성이라고 결정하는 것에 응답하여, 수신 파일의 전파가 방지된다. Detection of malicious files is initiated. A set comprising one or more sample classification models is stored on the networking device. An N-gram analysis is performed on the sequence of received packets associated with the received file. Performing the n-gram analysis includes using at least one stored sample classification model. A determination is made whether the received file is malicious based at least in part on an n-gram analysis of the sequence of received packets. In response to determining that the file is malicious, propagation of the received file is prevented.
Description
멀웨어는 일반적으로 악성 소프트웨어(예컨대, 다양한 적대적이고, 침입적이며, 및/또는 그 외 원치 않는 소프트웨어를 포함하는)를 나타내기 위해 사용되는 일반적인 용어이다. 멀웨어는 코드, 스크립트들, 활성 콘텐트, 및/또는 다른 소프트웨어의 형태로 있을 수 있다. 멀웨어의 예시적인 사용들은 컴퓨터 및/또는 네트워크 동작들을 방해하는 것, 독점적 정보(예컨대, 아이덴티티, 금융, 및/또는 지적 재산 관련 정보와 같은, 기밀 정보)를 훔치는 것, 및/또는 사설/독점 컴퓨터 시스템들 및/또는 컴퓨터 네트워크들로의 액세스를 얻는 것을 포함한다. 불운하게도, 기술들이 멀웨어를 검출하고 완화하도록 돕기 위해 개발됨에 따라, 비도덕적인 저자들이 이러한 노력들을 피해가기 위한 방식들을 발견한다. 따라서, 멀웨어를 식별하고 완화하기 위한 기술들에 대한 개선들을 위한 진행 중인 요구가 있다. Malware is a generic term generally used to refer to malicious software (eg, including various hostile, intrusive, and/or other unwanted software). Malware may be in the form of code, scripts, active content, and/or other software. Exemplary uses of malware include disrupting computer and/or network operations, stealing proprietary information (eg, confidential information, such as identity, financial, and/or intellectual property related information), and/or private/proprietary computer and gaining access to systems and/or computer networks. Unfortunately, as technologies are developed to help detect and mitigate malware, unscrupulous authors find ways to circumvent these efforts. Accordingly, there is an ongoing need for improvements to techniques for identifying and mitigating malware.
본 발명의 다양한 실시예들은 다음의 상세한 설명 및 첨부된 도면들에서 개시된다.
도 1은 악성 애플리케이션들이 검출되고 피해를 야기하는 것으로부터 방지되는 환경의 예를 예시한다.
도 2a는 데이터 기기의 실시예를 예시한다.
도 2b는 데이터 기기의 실시예의 논리 구성요소들의 기능 다이어그램이다.
도 3은 샘플들을 분석하기 위해 시스템에 포함될 수 있는 논리 구성요소들의 예를 예시한다.
도 4는 위협 엔진의 예시적인 실시예의 부분들을 예시한다.
도 5는 트리의 일 부분의 예를 예시한다.
도 6은 데이터 기기상에서 인라인 멀웨어 검출을 수행하기 위한 프로세스의 예를 예시한다.
도 7a는 파일에 대한 예시적인 해시 테이블을 예시한다.
도 7b는 샘플에 대한 예시적인 위협 서명을 예시한다.
도 8a는 특징 추출을 수행하기 위한 프로세스의 예를 예시한다.
도 8b는 모델을 생성하기 위한 프로세스의 예를 예시한다.Various embodiments of the present invention are disclosed in the following detailed description and accompanying drawings.
1 illustrates an example of an environment in which malicious applications are detected and prevented from causing harm.
2A illustrates an embodiment of a data device.
2B is a functional diagram of the logical components of an embodiment of a data device;
3 illustrates an example of logic components that may be included in a system for analyzing samples.
4 illustrates portions of an exemplary embodiment of a threat engine.
5 illustrates an example of a portion of a tree.
6 illustrates an example of a process for performing inline malware detection on a data device.
7A illustrates an example hash table for a file.
7B illustrates an example threat signature for a sample.
8A illustrates an example of a process for performing feature extraction.
8B illustrates an example of a process for creating a model.
본 발명은 프로세스로서; 장치; 시스템; 물질의 구성; 컴퓨터 판독 가능한 저장 매체상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서에 결합된 메모리 상에 저장되고 및/또는 그것에 의해 제공된 지시들을 실행하도록 구성된 프로세서와 같은, 프로세서를 포함한, 다양한 방식들로 구현될 수 있다. 이 명세서에서, 이들 구현들, 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술들로서 언급될 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 서술되지 않는다면, 태스크를 수행하도록 구성되는 것으로서 설명된 프로세서 또는 메모리와 같은 구성요소는 주어진 시간에 태스크를 수행하도록 임시로 구성되는 일반적인 구성요소 또는 태스크를 수행하기 위해 제조되는 특정 구성요소로서 구현될 수 있다. 본 출원에서 사용된 바와 같이, 용어 '프로세서'는 컴퓨터 프로그램 지시들과 같은, 데이터를 프로세싱하도록 구성된 하나 이상의 디바이스들, 회로들, 및/또는 프로세싱 코어들을 나타낸다. The present invention is a process; Device; system; composition of matter; a computer program product embodied on a computer readable storage medium; and/or may be implemented in a variety of ways, including a processor, such as a processor stored on and/or configured to execute instructions provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of steps in the disclosed processes may be varied within the scope of the present invention. Unless otherwise stated, a component, such as a processor or memory, that is described as being configured to perform a task may be implemented as a general component temporarily configured to perform a task at a given time, or as a specific component manufactured to perform a task. can As used herein, the term 'processor' refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
본 발명의 하나 이상의 실시예들에 대한 상세한 설명은 이하에서 본 발명의 원리들을 예시하는 첨부된 도면들과 함께 제공된다. 본 발명은 이러한 실시예들과 관련되어 설명되지만, 본 발명은 임의의 실시예에 제한되지 않는다. 본 발명의 범위는 단지 청구항들에 의해서만 제한되며 본 발명은 다수의 대안들, 수정들 및 등가물들을 포함한다. 다수의 특정 세부사항들은 본 발명의 철저한 이해를 제공하기 위해 다음의 설명에서 제시된다. 이들 세부사항들은 예의 목적으로 제공되며 본 발명은 이들 특정 세부사항들 중 일부 또는 모두 없이 청구항들에 따라 실시될 수 있다. 명료함의 목적을 위해, 본 발명에 관련된 기술 분야들에서 알려져 있는 기술적 자료는 본 발명이 불필요하게 모호해지지 않도록 상세하게 설명되지 않았다. The detailed description of one or more embodiments of the invention is provided below in conjunction with the accompanying drawings, which illustrate the principles of the invention. Although the present invention is described in connection with these embodiments, the present invention is not limited to any embodiments. The scope of the invention is limited only by the claims and the invention includes many alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for purposes of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material known in the technical fields related to the present invention has not been described in detail so as not to unnecessarily obscure the present invention.
1. 개요1. Overview
방화벽은 일반적으로 허가된 통신들이 방화벽을 통과하도록 허용하는 동안 허가되지 않은 액세스로부터 네트워크들을 보호한다. 방화벽은 통상적으로 네트워크 액세스를 위한 방화벽 기능을 제공하는 디바이스, 디바이스들의 세트, 또는 디바이스 상에서 실행된 소프트웨어이다. 예를 들어, 방화벽은 디바이스들(예컨대, 컴퓨터들, 스마트폰들, 또는 다른 유형들의 네트워크 통신 가능 디바이스들)의 운영 시스템들로 통합될 수 있다. 방화벽은 또한 컴퓨터 서버들, 게이트웨이들, 네트워크/라우팅 디바이스들(예컨대, 네트워크 라우터들), 및 데이터 기기들(예컨대, 보안 기기들 또는 다른 유형들의 특수 목적 디바이스들)과 같은, 다양한 유형들의 디바이스들 상에서 하나 이상의 소프트웨어 애플리케이션들로 통합되거나 또는 그것으로서 실행될 수 있으며, 다양한 구현들에서, 특정한 동작들이 ASIC 또는 FPGA와 같은, 특수 목적 하드웨어에 구현될 수 있다. Firewalls generally protect networks from unauthorized access while allowing authorized communications to pass through the firewall. A firewall is typically a device, set of devices, or software running on a device that provides firewall functionality for network access. For example, a firewall may be integrated into the operating systems of devices (eg, computers, smartphones, or other types of network communication capable devices). A firewall can also be configured with various types of devices, such as computer servers, gateways, network/routing devices (eg, network routers), and data appliances (eg, security appliances or other types of special purpose devices). It may be implemented as or integrated into one or more software applications on the platform, and in various implementations, certain operations may be implemented in special purpose hardware, such as an ASIC or FPGA.
방화벽들은 통상적으로 규칙들의 세트에 기초하여 네트워크 송신을 거부하거나 또는 허용한다. 이들 규칙들의 세트들은 종종 정책들(예컨대, 네트워크 정책들 또는 네트워크 보안 정책들)로서 불리운다. 예를 들어, 방화벽은 원치 않는 외부 트래픽이 보호된 디바이스들에 이르는 것을 방지하기 위해 규칙들 또는 정책들의 세트를 적용함으로써 인바운드 트래픽을 필터링할 수 있다. 방화벽은 또한 규칙들 또는 정책들의 세트를 적용함으로써 아웃바운드 트래픽을 필터링할 수 있다(예컨대, 허용, 차단, 모니터, 통지 또는 로그, 및/또는 다른 동작들은 방화벽 규칙들 또는 방화벽 정책들에서 특정될 수 있으며, 이것은 본 출원에서 설명된 바와 같이, 다양한 기준들에 기초하여 트리거될 수 있다). 방화벽은 또한 규칙들 또는 정책들의 세트를 유사하게 적용함으로써 로컬 네트워크(예컨대, 인트라넷) 트래픽을 필터링할 수 있다. Firewalls typically deny or allow network transmission based on a set of rules. These sets of rules are often referred to as policies (eg, network policies or network security policies). For example, a firewall may filter inbound traffic by applying a set of rules or policies to prevent unwanted external traffic from reaching protected devices. A firewall may also filter outbound traffic by applying a set of rules or policies (eg, allow, block, monitor, notify or log, and/or other actions may be specified in the firewall rules or firewall policies). , which may be triggered based on various criteria, as described herein). A firewall may also filter local network (eg, intranet) traffic by similarly applying a set of rules or policies.
보안 디바이스들(예컨대, 보안 기기들, 보안 게이트웨이들, 보안 서비스들, 및/또는 다른 보안 디바이스들)은 다양한 보안 기능들(예컨대, 방화벽, 멀웨어-금지, 침입 방지/검출, 데이터 손실 방지(DLP), 및/또는 다른 보안 기능들), 네트워킹 기능들(예컨대, 라우팅, 서비스 품질(QoS), 네트워크 관련 리소스들의 작업부하 균형화, 및/또는 다른 네트워킹 기능들), 및/또는 다른 기능들을 포함할 수 있다. 예를 들어, 라우팅 기능들은 소스 정보(예컨대, IP 어드레스 및 포트), 목적지 정보(예컨대, IP 어드레스 및 포트), 및 프로토콜 정보에 기초할 수 있다. Security devices (eg, security appliances, security gateways, security services, and/or other security devices) provide various security functions (eg, firewall, anti-malware, intrusion prevention/detection, data loss prevention (DLP) ), and/or other security functions), networking functions (eg, routing, quality of service (QoS), workload balancing of network related resources, and/or other networking functions), and/or other functions. can For example, routing functions may be based on source information (eg, IP address and port), destination information (eg, IP address and port), and protocol information.
기본 패킷 필터링 방화벽은 네트워크를 통해 송신된 개개의 패킷들을 검사함으로써 네트워크 통신 트래픽을 필터링한다(예컨대, 무상태형(stateless) 패킷 필터링 방화벽들인, 패킷 필터링 방화벽들 또는 1세대 방화벽들). 무상태형 패킷 필터링 방화벽들은 통상적으로 개개의 패킷들 자체를 검사하며 검사된 패킷들에 기초하여(예컨대, 패킷의 소스 및 목적지 어드레스 정보, 프로토콜 정보, 및 포트 번호의 조합을 사용하여) 규칙들을 적용한다.A basic packet filtering firewall filters network communication traffic by examining individual packets transmitted over the network (eg, packet filtering firewalls or first generation firewalls, which are stateless packet filtering firewalls). Stateless packet filtering firewalls typically inspect individual packets themselves and apply rules based on the inspected packets (eg, using a combination of the packet's source and destination address information, protocol information, and port number). .
애플리케이션 방화벽들은 또한 애플리케이션 계층 필터링(예컨대, TCP/IP 스택의 애플리케이션 레벨 상에서 작동하는, 애플리케이션 계층 필터링 방화벽들 또는 2세대 방화벽들)을 수행할 수 있다. 애플리케이션 계층 필터링 방화벽들 또는 애플리케이션 방화벽들은 일반적으로 특정한 애플리케이션들 및 프로토콜들(예컨대, 하이퍼텍스트 전송 프로토콜(HTTP), 도메인 이름 시스템(DNS) 요청, 파일 전송 프로토콜(FTP)을 사용한 파일 전송, 및 텔넷, DHCP, TCP, UDP, 및 TFTP(GSS)와 같은, 다양한 다른 유형들의 애플리케이션들 및 다른 프로토콜들을 사용한 웹 브라우징)을 식별할 수 있다. 예를 들어, 애플리케이션 방화벽들은 표준 포트를 통해 통신하려고 시도하는 허가되지 않은 프로토콜들(예컨대, 프로토콜이 일반적으로 애플리케이션 방화벽들을 사용하여 식별될 수 있는 비-표준 포트를 사용함으로써 몰래 하려고 시도하는 허가되지 않은/정책 외 프로토콜)을 차단할 수 있다. Application firewalls may also perform application layer filtering (eg, application layer filtering firewalls or second generation firewalls, operating on the application level of the TCP/IP stack). Application layer filtering firewalls or application firewalls are generally used for specific applications and protocols (eg, Hypertext Transfer Protocol (HTTP), Domain Name System (DNS) requests, file transfer using File Transfer Protocol (FTP), and Telnet; web browsing using different protocols and various other types of applications, such as DHCP, TCP, UDP, and TFTP (GSS). For example, application firewalls may attempt to stealth unauthorized protocols that attempt to communicate over a standard port (eg, an unauthorized protocol that attempts to steal by using a non-standard port that can typically be identified using application firewalls). /out-of-policy protocols) can be blocked.
상태형(stateful) 방화벽들은 또한 각각의 패킷이 패킷들의 상기 네트워크 송신의 흐름과 연관된 일련의 패킷들의 콘텍스트 내에서 검사되는 상태-기반 패킷 검사를 수행할 수 있다. 이러한 방화벽 기술은 일반적으로 그것이 방화벽을 통과하는 모든 연결들의 레코드들을 유지하고 패킷이 새로운 연결의 시작, 기존의 연결의 부분인지, 또는 유효하지 않은 패킷인지를 결정할 수 있으므로 상태형 패킷으로서 불리운다. 예를 들어, 연결의 상태 자체는 정책 내에서 규칙을 트리거하는 기준들 중 하나일 수 있다.Stateful firewalls may also perform state-based packet inspection, where each packet is inspected within the context of a series of packets associated with the flow of said network transmission of packets. This firewall technology is generally referred to as a stateful packet because it maintains a record of all connections that pass through the firewall and can determine whether a packet is the start of a new connection, part of an existing connection, or an invalid packet. For example, the state of the connection itself may be one of the criteria that triggers a rule within a policy.
개선된 또는 차세대 방화벽들은 상기 논의된 바와 같이 무상태형 및 상태형 패킷 필터링 및 애플리케이션 계층 필터링을 수행할 수 있다. 차세대 방화벽들은 또한 부가적인 방화벽 기술들을 수행할 수 있다. 예를 들어, 때때로 개선된 또는 차세대 방화벽들로 불리우는 특정한 더 새로운 방화벽들이 또한 사용자들 및 콘텐트(예컨대, 차세대 방화벽들)를 식별할 수 있다. 특히, 특정한 차세대 방화벽들은 이들 방화벽들이 자동으로 식별할 수 있는 애플리케이션들의 리스트를 수천 개의 애플리케이션들로 확대한다. 이러한 차세대 방화벽들의 예들은 Palo Alto Networks, Inc.로부터 상업적으로 이용 가능하다(예컨대, Palo Alto Networks의 PA 시리즈 방화벽들). 예를 들어, Palo Alto Network의 차세대 방화벽들은 기업들이 다음: 정확한 애플리케이션 식별을 위한 APP-ID, 사용자 식별을 위한 사용자-ID(예컨대, 사용자 또는 사용자 그룹에 의한), 및 실시간 콘텐트 스캐닝을 위한 콘텐트-ID(예컨대, 웹 서핑을 제어하고 데이터 및 파일 전송들을 제한하는)와 같은, 다양한 식별 기술들을 사용하여 애플리케이션들, 사용자들, 및 콘텐트 - 포트들, IP 어드레스들, 및 패킷들이 아닌 - 를 식별하고 제어할 수 있게 한다. 이들 식별 기술들은 기업들이, 종래의 포트-차단 방화벽들에 의해 제공된 종래의 접근법을 따르는 대신에, 비즈니스-관련 개념들을 사용하여 애플리케이션 사용을 안전하게 가능하게 하도록 허용한다. 또한, 차세대 방화벽들을 위한 특수 목적 하드웨어(예컨대, 전용 기기들로서 구현된)는 일반적으로 범용 하드웨어 상에서 실행된 소프트웨어보다 애플리케이션 검사를 위한 더 높은 성능 레벨들을 제공한다(예컨대, 대기시간을 최소화하면서 네트워크 스루풋을 최대화하기 위해 단일-패스 소프트웨어 엔진과 빽빽하게 통합되는 전용, 기능 특정 프로세싱을 사용하는, Palo Alto Networks, Inc.에 의해 제공된 보안 기기들과 같은). Advanced or next-generation firewalls may perform stateless and stateful packet filtering and application layer filtering as discussed above. Next-generation firewalls may also implement additional firewall technologies. For example, certain newer firewalls, sometimes called advanced or next-generation firewalls, may also identify users and content (eg, next-generation firewalls). In particular, certain next-generation firewalls expand the list of applications that these firewalls can automatically identify to thousands of applications. Examples of such next-generation firewalls are commercially available from Palo Alto Networks, Inc. (eg, PA series firewalls from Palo Alto Networks). For example, Palo Alto Network's next-generation firewalls enable enterprises to: APP-ID for accurate application identification, user-ID for user identification (eg, by user or group of users), and content- for real-time content scanning identify applications, users, and content - not ports, IP addresses, and packets - using a variety of identification techniques, such as ID (eg, to control web surfing and limit data and file transfers); allow you to control These identification techniques allow enterprises to securely enable application usage using business-related concepts, instead of following the conventional approach provided by conventional port-blocking firewalls. Additionally, special-purpose hardware (eg, implemented as dedicated devices) for next-generation firewalls typically provides higher performance levels for application inspection (eg, reducing network throughput while minimizing latency) than software running on general-purpose hardware. (such as security appliances provided by Palo Alto Networks, Inc.) using dedicated, function-specific processing tightly integrated with a single-pass software engine to maximize.
개선된 또는 차세대 방화벽들은 또한 가상화된 방화벽들을 사용하여 구현될 수 있다. 이러한 차세대 방화벽들의 예들은 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들이 변할 때 발생할 수 있는 정책 래그를 제거한다. Advanced or next-generation firewalls may also be implemented using virtualized firewalls. Examples of such next-generation firewalls are commercially available from Palo Alto Networks, Inc. (eg, VMware® ESXi™ and NSX™, Citrix® Netscaler SDX™, KVM/OpenStack (Centos/RHEL, Ubuntu®) VM series firewalls from Palo Alto Networks, and Amazon Web Services (AWS)) supporting a variety of commercial virtualized environments, including It can support firewall and advanced threat prevention features, allowing enterprises to securely enable applications flowing into and across their private, public, and hybrid cloud computing environments.VM monitoring, dynamic address groups, and Automation features such as REST-based APIs allow enterprises to actively monitor VM changes that dynamically feed the context into security policies, thereby eliminating policy lag that can occur when VMs change.
II. 예시적인 환경II. Exemplary Environment
도 1은 악성 애플리케이션들("멀웨어")이 검출되고 피해를 야기하는 것을 방지하는 환경의 예를 예시한다. 이하에서 더 상세하게 설명될 바와 같이, 멀웨어 분류들(예컨대, 보안 플랫폼(122)에 의해 이루어지는 바와 같이)은 도 1에 도시된 환경에 포함된 다양한 엔티티들 중에서 다양하게 공유되고 및/또는 개선될 수 있다. 본 출원에서 설명된 기술들을 사용하여, 엔드포인트 클라이언트 디바이스들(104 내지 110)과 같은, 디바이스들이 이러한 멀웨어로부터 보호될 수 있다. 1 illustrates an example of an environment in which malicious applications (“malware”) are detected and prevented from causing harm. As will be described in greater detail below, malware classifications (eg, as made by security platform 122 ) may be variously shared and/or improved among various entities included in the environment illustrated in FIG. 1 . can Using the techniques described herein, devices, such as endpoint client devices 104-110, can be protected from such malware.
용어 "애플리케이션"은 형태/플랫폼에 관계없이, 프로그램들, 프로그램들의 묶음들, 시현들, 패킷들 등을 총괄하여 나타내기 위해 명세서 전체에 걸쳐 사용된다. "애플리케이션"(또한, 본 출원에서 "샘플"로서 불리운다)은 독립형 파일(예컨대, 파일명 "calculator.apk" 또는 "calculator.exe"를 가진 계산기 애플리케이션)일 수 있으며 또한 또 다른 애플리케이션의 독립적인 구성요소(예컨대, 계산기 앱 내에 내장된 모바일 광고 SDK 또는 라이브러리)일 수 있다.The term “application” is used throughout the specification to collectively refer to programs, bundles of programs, manifestations, packets, etc., regardless of form/platform. An "application" (also referred to herein as a "sample") may be a standalone file (eg, a calculator application with the file name "calculator.apk" or "calculator.exe") and is also an independent component of another application. (eg, a mobile advertising SDK or library embedded within the calculator app).
본 출원에서 사용된 바와 같이 "멀웨어"는 비밀인지 여부(및 불법인지 여부)에 관계없이, 거동들에 참여하는 애플리케이션을 나타내며, 그 사용자는 승인되지 않으며/완전히 알려진 경우 승인되지 않을 것이다. 멀웨어의 예들은 트로이들, 바이러스들, 루트킷들, 스파이웨어, 해킹 툴들, 키로거들 등을 포함한다. 멀웨어의 일 예는 최종 사용자의 위치를 수집하며 원격 서버로 보고하는(매핑 서비스와 같은, 위치-기반 서비스들을 사용자에게 제공하지 않는) 데스크탑 애플리케이션이다. 멀웨어의 또 다른 예는 최종 사용자에게 무료 게임인 것처럼 보이지만, SMS 프리미엄 메시지(예컨대, 각각 $10의 비용이 드는)를 몰래 전송하여, 최종 사용자의 전화 요금을 늘리는 악성 Android Application Package.apk(APK) 파일이다. 멀웨어의 또 다른 예는 사용자의 연락처들을 몰래 수집하고 이들 연락처들을 스패머에게 전송하는 Apple iOS 플래시라이트 애플리케이션이다. 다른 형태들의 멀웨어가 또한 본 출원에서 설명된 기술들을 사용하여 검출되고/좌절당할 수 있다(예컨대, 랜섬웨어). 뿐만 아니라, n-그램들/특징 벡터들/출력 누적 변수들은 본 출원에서 악성 애플리케이션들을 위해 생성되는 것으로 설명되지만, 본 출원에서 설명된 기술들은 또한 다른 종류들의 애플리케이션들을 위한 프로필들(예컨대, 애드웨어 프로필들, 굿웨어 프로필들 등)을 생성하기 위해 다양한 실시예들에서 사용될 수 있다. "Malware" as used in this application refers to an application that participates in behaviors, whether secret (and illegal), whether or not its user is disapproved/will not be disapproved if fully known. Examples of malware include Trojans, viruses, rootkits, spyware, hacking tools, keyloggers, and the like. One example of malware is a desktop application that collects the location of an end user and reports it to a remote server (which does not provide location-based services, such as mapping services, to the user). Another example of malware is a malicious Android Application Package.apk (APK) file that appears to be a free game to the end user, but secretly sends SMS premium messages (eg costing $10 each), increasing the end user's phone bill. am. Another example of malware is the Apple iOS Flashlight application, which secretly collects users' contacts and sends these contacts to spammers. Other forms of malware may also be detected/frustrated using the techniques described herein (eg, ransomware). Not only that, while n-grams/feature vectors/output accumulation variables are described herein as being generated for malicious applications, the techniques described herein also provide profiles for other kinds of applications (eg, adware profiles, goodware profiles, etc.) may be used in various embodiments.
본 출원에서 설명된 기술들은 다양한 플랫폼들(예컨대, 데스크탑들, 이동 디바이스들, 게이밍 플랫폼들, 내장형 시스템들 등) 및/또는 다양한 유형들의 애플리케이션들(예컨대, Android .apk 파일들, iOS 애플리케이션들, Windows PE 파일들, Adobe Acrobat PDF 파일들 등)과 함께 사용될 수 있다. 도 1에 도시된 예시적인 환경에서, 클라이언트 디바이스들(104 내지 108)은 기업 네트워크(140)에 존재하는 (각각) 랩탑 컴퓨터, 데스크탑 컴퓨터, 및 태블릿이다. 클라이언트 디바이스(110)는 기업 네트워크(140)의 밖에 존재하는 랩탑 컴퓨터이다. The techniques described in this application can be applied to various platforms (eg, desktops, mobile devices, gaming platforms, embedded systems, etc.) and/or various types of applications (eg, Android .apk files, iOS applications, Windows PE files, Adobe Acrobat PDF files, etc.). In the example environment shown in FIG. 1 , client devices 104 - 108 are (respectively) a laptop computer, a desktop computer, and a tablet residing in the
데이터 기기(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)을 포함할 수 있다. An embodiment of a data appliance is shown in Fig. 2a. The example shown is a representation of the physical components included in
본 출원에서 데이터 기기(102)에 의해 수행되는 것으로서 설명된 기능은 다양한 방식들로 제공되고/구현될 수 있다. 예를 들어, 데이터 기기(102)는 전용 디바이스 또는 디바이스들의 세트일 수 있다. 데이터 기기(102)에 의해 제공된 기능은 또한 범용 컴퓨터, 컴퓨터 서버, 게이트웨이, 및/또는 네트워크/라우팅 디바이스 상에 통합되거나 또는 그것 상에서 소프트웨어로서 실행될 수 있다. 몇몇 실시예들에서, 데이터 기기(102)에 의해 제공되는 것으로서 설명된 적어도 몇몇 서비스들은 대신에(또는 그 외에) 클라이언트 디바이스 상에서 실행한 소프트웨어에 의해 클라이언트 디바이스(예컨대, 클라이언트 디바이스(104) 또는 클라이언트 디바이스(110))로 제공된다. Functionality described herein as being performed by
데이터 기기(102)가 태스크를 수행하는 것으로 설명될 때마다, 데이터 기기(102)의 단일 구성요소, 구성요소들의 서브세트, 또는 모든 구성요소들은 태스크를 수행하도록 협력할 수 있다. 유사하게, 데이터 기기(102)의 구성요소가 태스크를 수행하는 것으로 설명될 때마다, 서브구성요소는 태스크를 수행할 수 있으며 및/또는 구성요소는 다른 구성요소들과 함께 태스크를 수행할 수 있다. 다양한 실시예들에서, 데이터 기기(102)의 부분들은 하나 이상의 제3 자들에 의해 제공된다. 데이터 기기(102)에 이용 가능한 컴퓨팅 리소스들의 양과 같은 인자들에 의존하여, 데이터 기기(102)의 다양한 논리 구성요소들 및/또는 특징들이 생략될 수 있으며 본 출원에서 설명된 기술들은 그에 따라 적응된다. 유사하게, 부가적인 논리 구성요소들/특징들은 적용 가능한 경우 데이터 기기(102)의 실시예들에 포함될 수 있다. 다양한 실시예들에서 데이터 기기(102)에 포함된 구성요소의 일 예는 애플리케이션을 식별하도록 구성되는 애플리케이션 식별 엔진이다(예컨대, 패킷 흐름 분석에 기초하여 애플리케이션들을 식별하기 위한 다양한 애플리케이션 서명들을 사용하는). 예를 들어, 애플리케이션 식별 에진은 웹 브라우징 - 소셜 네트워킹; 웹 브라우징 - 뉴스; SSH 등과 같은, 세션이 어떤 유형의 트래픽을 수반하는지를 결정할 수 있다. Whenever
도 2b는 데이터 기기의 실시예의 논리 구성요소들의 기능 다이어그램이다. 도시된 예는 다양한 실시예들에서 데이터 기기(102)에 포함될 수 있는 논리 구성요소들의 표현이다. 달리 특정되지 않는다면, 데이터 기기(102)의 다양한 논리 구성요소들은 일반적으로, 하나 이상의 스크립트들의 세트(예컨대, 적용 가능한 경우, 자바, 파이썬 등으로 기록된)로서 포함한, 다양한 방식들로 구현 가능하다. 2B is a functional diagram of the logical components of an embodiment of a data device; The illustrated example is a representation of logical components that may be included in
도시된 바와 같이, 데이터 기기(102)는 방화벽을 포함하며, 관리 평면(232) 및 데이터 평면(234)을 포함한다. 관리 평면은 정책들을 구성하고 로그 데이터를 보기 위한 사용자 인터페이스를 제공하는 것에 의해서와 같은, 사용자 상호작용들을 관리할 책임이 있다. 데이터 평면은 패킷 프로세싱 및 세션 핸들링을 수행하는 것에 의해서와 같은, 데이터를 관리할 책임이 있다. As shown,
네트워크 프로세서(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에 기초하여 분류된)로 브라우징할 수 있다. 상이한 유형들의 프로토콜들이 대응하는 디코더들을 갖는다.The application identification (APP-ID)
애플리케이션 식별 엔진(242)에 의해 이루어진 결정에 기초하여, 패킷들은, 위협 엔진(244)에 의해, 패킷들(순서 외로 수신될 수 있는)을 정확한 순서로 모으고, 토큰화를 수행하며, 정보를 추출하도록 구성된 적절한 디코더로 전송된다. 위협 엔진(244)은 또한 무엇이 패킷에 일어나야 하는지를 결정하기 위해 서명 매칭을 수행한다. 요구된 대로, SSL 암호화 엔진(246)은 복호화된 데이터를 재-암호화할 수 있다. 패킷들은 (예컨대, 목적지로의) 송신을 위해 포워드 모듈(248)을 사용하여 포워딩된다. Based on the determination made by the
도 2b에 또한 도시된 바와 같이, 정책들(252)이 관리 평면(232)에서 수신되고 저장된다. 정책들은 도메인 및/또는 호스트/서버 이름들을 사용하여 특정될 수 있는, 하나 이상의 규칙들을 포함할 수 있으며, 규칙들은 모니터링된 세션 트래픽 흐름들로부터의 다양한 추출된 파라미터들/정보에 기초하여 가입자/IP 흐름들에 대한 보안 정책 시행을 위해서와 같은, 하나 이상의 서명들 또는 다름 매칭 기준들 또는 휴리스틱스를 이용할 수 있다. 인터페이스(I/F) 전달기(250)는 관리 통신들을 위해 제공된다(예컨대, (REST) API들, 메시지들, 또는 네트워크 프로토콜 통신들 또는 다른 통신 메커니즘들을 통해). As also shown in FIG. 2B ,
III. 보안 플랫폼III. security platform
도 1로 돌아가면, 악의적인 개인(시스템(120)을 사용하는)이 멀웨어(130)을 생성하였다고 가정하자. 악의적인 개인은 클라이언트 디바이스(140)와 같은, 클라이언트 디바이스가 멀웨어(130)의 복사를 실행하여, 클라이언트 디바이스를 손상시키며, 예컨대 클라이언트 디바이스가 봇넷(botnet)에서의 보트가 되게 하는 것을 희망한다. 손상된 클라이언트 디바이스는 그 후 적용 가능한 경우, 태스크를 수행하며(예컨대, 암호화폐 채굴, 또는 서비스 공격들의 거부에 참여하는 것), 명령 및 제어(C&C) 서버(150)와 같은 외부 엔티티로 정보를 보고할 뿐만 아니라, C&C 서버(150)로부터 지시들을 수신하도록 지시받을 수 있다. Returning to FIG. 1 , assume that a malicious individual (using system 120 ) created
데이터 기기(102)가 클라이언트 디바이스(140)를 동작시키는 사용자 "Alice"로(예컨대, 시스템(120)에 의해) 전송된 이메일을 가로챘다고 가정하자. 멀웨어(130)의 사본이 시스템(120)에 의해 메시지에 첨부되었다. 유사한 시나리오가 아닌, 대안으로서, 데이터 기기(102)는 (예컨대, 웹사이트로부터) 멀웨어(130)의 클라이언트 디바이스(140)에 의해 시도된 다운로드를 가로챌 수 있다. 어느 하나의 시나리오에서, 데이터 기기(102)는 파일에 대한 서명(예컨대, 멀웨어(130)의 이메일 접속 또는 웹사이트 다운로드)이 데이터 기기(102) 상에 존재하는지를 결정한다. 서명은, 존재한다면, 파일이 안전하다고(예컨대, 화이트리스트된) 알려진 것임을 나타낼 수 있으며, 또한 파일이 악성이라고(예컨대, 블랙리스트된) 알려진 것을 나타낼 수 있다.Assume that
다양한 실시예들에서, 데이터 기기(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)로 제공할 수 있다(예컨대, 가입의 부분으로서). In various embodiments,
다양한 실시예들에서, 접속에 대한 어떤 서명도 발견되지 않았다면 다양한 동작들이 데이터 기기(102)에 의해 취해질 수 있다. 제1 예로서, 데이터 기기(102)는 양성(benign)으로서 화이트리스트되지 않은(예컨대, 알려진 양호한 파일들의 서명들에 일치하지 않는) 임의의 접속들의 송신을 차단함으로써, 안전-보장될 수 있다. 이러한 접근법의 단점은 그것들이 사실상 양성일 때 잠재적인 멀웨어로서 불필요하게 차단된 많은 합법적인 접속들이 있을 수 있다는 것이다. 제2 예로서, 데이터 기기(102)는 악성인 것으로서 블랙리스트되지 않은(예컨대, 알려진 불량 파일들의 서명들에 일치하지 않는) 임의의 접속들의 송신을 허용함으로써, 안전 위협적일 수 있다. 이러한 접근법의 단점은 새롭게 생성된 멀웨어(플랫폼(122)에 의해 이전에 보여지지 않은)가 피해를 야기하는 것이 방지되지 않을 것이라는 것이다. In various embodiments, various actions may be taken by the
제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)으로부터 수신된다면 부가적인 동작들을 조정하고/취할 수 있다. As a third example, the
보안 플랫폼(122)은 저장장치(142)에 수신된 샘플들의 사본들을 저장하며 분석이 시작된다(또는 적용 가능한 경우, 스케줄링된다). 저장장치(142)의 일 예는 아파치 하둡 클러스터(Apache Hadoop Cluste; HDFS)이다. 분석의 결과들(및 애플리케이션들에 관한 부가적인 정보)은 데이터베이스(146)에 저장된다. 애플리케이션이 악성으로 결정되는 경우에, 데이터 기기는 분석 결과에 기초하여 파일 다운로드를 자동으로 차단하도록 구성될 수 있다. 뿐만 아니라, 악성으로 결정된 파일을 다운로드하기 위한 미래 파일 전달 요청들을 자동으로 차단하기 위해 서명이 멀웨어에 대해 생성되고 분배될 수 있다(예컨대, 데이터 기기들(102, 136 및 148)과 같은 데이터 기기들로). The
다양한 실시예들에서, 보안 플랫폼(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 서버들과 협력하여 정적/동적 분석을 선택적으로 수행할 수 있다. In various embodiments,
가상 기계 서버의 예는 VMware ESXi, Citrix XenServer, 또는 Microsoft Hyper-V와 같은, 상업적으로 이용 가능한 가상화 소프트웨어를 구동하는 상업적으로 이용 가능한 서버-클래스 하드웨어(예컨대, 다중-코어 프로세서, 32+ 기가바이트의 RAM, 및 하나 이상의 기가비트 네트워크 인터페이스 어댑터들)를 포함한 물리 기계이다. 몇몇 실시예들에서, 가상 기계 서버는 생략된다. 뿐만 아니라, 가상 기계 서버는 보안 플랫폼(122)을 관리하는 동일한 엔티티의 제어하에 있을 수 있지만, 또한 제3 자에 의해 제공될 수 있다. 일 예로서, 가상 기계 서버는 EC2에 의존할 수 있으며, 보안 플랫폼(122)의 나머지 부분들은 보안 플랫폼(122)의 운용자에 의해 소유되며 그것의 제어 하에서 전용 하드웨어에 의해 제공된다. VM 서버(124)는 클라이언트 디바이스들을 에뮬레이팅하기 위해 하나 이상의 가상 기계들(126 내지 128)을 제공하도록 구성된다. 가상 기계들은 다양한 운영 시스템들 및/또는 그것의 버전들을 실행할 수 있다. 가상 기계들에서 애플리케이션들을 실행하는 것에서 기인한 관찰 거동들이 로그되고 분석된다(예컨대, 애플리케이션이 악성이라는 표시들에 대해). 몇몇 실시예들에서, 로그 분석은 VM 서버(예컨대, VM 서버(124))에 의해 수행된다. 다른 실시예들에서, 분석은 조정기(144)와 같은, 보안 플랫폼(122)의 다른 구성요소들에 의해 적어도 부분적으로 수행된다. Examples of virtual machine servers include commercially available server-class hardware (eg, multi-core processors, 32+ gigabytes of RAM, and one or more gigabit network interface adapters). In some embodiments, the virtual machine server is omitted. Furthermore, the virtual machine server may be under the control of the same entity that manages the
다양한 실시예들에서, 보안 플랫폼(122)은 가입의 부분으로서 데이터 기기(102)에 대한 서명들(및/또는 다른 식별자들)의 리스트를 통해 샘플들의 분석의 이용 가능한 결과들을 만든다. 예를 들어, 보안 플랫폼(122)은 멀웨어 앱들을 식별하는 콘텐트 패키지를 주기적으로 전송할 수 있다(예컨대, 매일, 매시간, 또는 몇몇 다른 간격, 및/또는 하나 이상의 정책들에 의해 구성된 이벤트에 기초하여). 예시적인 콘텐트 패키지는, 패키지 이름, 앱을 고유하게 식별하기 위한 해시 값, 및 각각의 식별된 멀웨어 앱에 대한 멀웨어 이름(및/또는 멀웨어 군 이름)과 같은 정보와 함께, 식별된 멀웨어 앱들의 목록을 포함한다. 가입은 데이터 기기(102)에 의해 가로채며 데이터 기기(102)에 의해 보안 플랫폼(122)으로 전송된 이들 파일들의 분석을 커버할 수 있으며, 또한 보안 플랫폼(122)에 알려진 모든 멀웨어(또는 다른 형태들의 멀웨어(예컨대, PDF 멀웨어)를 제외한 이동 멀웨어와 같은, 그것의 서브세트들)의 서명들을 커버할 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 플랫폼(122)은 또한 데이터 기기(102)가 멀웨어를 검출하도록 도울 수 있는(예컨대, 해시-기반 서명 매칭이 아닌 기술들을 통해) 기계 학습 모델들과 같은, 이용 가능한 다른 유형들의 정보를 만들 수 있다. In various embodiments,
다양한 실시예들에서, 보안 플랫폼(122)은 보안 서비스들을 데이터 기기(102)의 운용자 외에(또는 적용 가능한 경우, 그 대신에) 다양한 엔티티들로 제공하도록 구성된다. 예를 들어, 그 자신의 각각의 기업 네트워크들(114 및 116), 및 그 자신의 각각의 데이터 기기들(136 및 148)을 가진, 다른 기업들은 보안 플랫폼(122)의 운용자와 계약할 수 있다. 다른 유형들의 엔티티들은 또한 보안 플랫폼(122)의 서비스들을 이용할 수 있다. 예를 들어, 인터넷 서비스를 클라이언트 디바이스(110)에 제공하는 인터넷 서비스 제공자(ISP)는 클라이언트 디바이스(110)가 다운로드하려고 시도하는 애플리케이션들을 분석하기 위해 보안 플랫폼(122)과 계약할 수 있다. 또 다른 예로서, 클라이언트 디바이스(110)의 소유자는 보안 플랫폼(122)과 통신하는 클라이언트 디바이스(110) 상에 소프트웨어를 설치할 수 있다(예컨대, 보안 플랫폼(122)으로부터 콘텐트 패키지들을 수신하고, 본 출원에서 설명된 기술들에 따라 첨부들을 검사하기 위해 수신된 콘텐트 패키지들을 사용하며, 분석을 위해 애플리케이션들을 보안 플랫폼(122)으로 송신하기 위해).In various embodiments, the
IV. 정적/동적 분석을 사용하여 샘플들을 분석하는 것IV. Analyzing samples using static/dynamic analysis
도 3은 샘플들을 분석하기 위해 시스템에 포함될 수 있는 논리 구성요소들의 예를 예시한다. 분석 시스템(300)은 단일 디바이스를 사용하여 구현될 수 있다. 예를 들어, 분석 시스템(300)의 기능은 데이터 기기(102)로 통합된 멀웨어 분석 모듈(112)에서 구현될 수 있다. 분석 시스템(300)은 또한, 다수의 별개의 디바이스들에 걸쳐, 총괄적으로 구현될 수 있다. 예를 들어, 분석 시스템(300)의 기능은 보안 플랫폼(122)에 의해 제공될 수 있다. 3 illustrates an example of logic components that may be included in a system for analyzing samples. The
다양한 실시예들에서, 분석 시스템(300)은 알려진 안전한 콘텐트 및/또는 알려진 불량 콘텐트의 리스트들, 데이터베이스들, 또는 다른 컬렉션들(도 3에서 총괄하여 컬렉션(314)으로 도시된)을 이용한다. 컬렉션(314)은 가입 서비스(예컨대, 제3 자에 의해 제공된)를 통해 및/또는 다른 프로세싱(예컨대, 데이터 기기(102) 및/또는 보안 플랫폼(122)에 의해 수행된)의 결과로서를 포함한, 다양한 방식들로 획득될 수 있다. 컬렉션(314)에 포함된 정보의 예들은: 알려진 악성 서버들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 안전한 서버들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 명령 및 제어(C&C) 도메인들의 URL들, 도메인 이름들, 및/또는 IP 어드레스들; 알려진 악성 애플리케이션들의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 안전한 애플리케이션들의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 악성 파일들(예컨대, Android 이용 파일들)의 서명들, 해시들, 및/또는 다른 식별자들; 알려진 안전한 라이브러리들의 서명들, 해시들, 및/또는 다른 식별자들; 및 알려진 악성 라이브러리들의 서명들, 해시들, 및/또는 다른 식별자들이다. In various embodiments, the
A. 수집A. Collection
다양한 실시예들에서, 새로운 샘플이 분석을 위해 수신될 때(예컨대, 샘플과 연관된 기존의 서명은 분석 시스템(300)에 존재하지 않는다), 그것은 큐(302)에 부가된다. 도 3에 도시된 바와 같이, 애플리케이션(130)은 시스템(300)에 의해 수신되며 큐(302)에 부가된다.In various embodiments, when a new sample is received for analysis (eg, an existing signature associated with the sample does not exist in the analysis system 300 ), it is added to the
B. 정적 분석B. Static Analysis
조정기(304)는 큐(302)를 모니터링하며, 리소스들(예컨대, 정적 분석 작업기)이 이용 가능해짐에 따라, 조정기(304)는 프로세싱을 위해 큐(302)로부터 샘플을 인출한다(예컨대, 멀웨어(130)의 사본을 인출한다). 특히, 조정기(304)는 먼저 정적 분석을 위해 샘플을 정적 분석 엔진(306)으로 제공한다. 몇몇 실시예들에서, 하나 이상의 정적 분석 엔진들은 분석 시스템(300) 내에 포함되며, 여기에서 분석 시스템(300)은 단일 디바이스이다. 다른 실시예들에서, 정적 분석은 복수의 작동기들(즉, 정적 분석 엔진(306)의 복수의 인스턴스들)을 포함하는 별개의 정적 분석 서버에 의해 수행된다. The
정적 분석 엔진은 샘플에 대한 일반적인 정보를 획득하며, 정적 분석 보고(308)에 그것을 포함시킨다(적용 가능한 경우, 휴리스틱 및 다른 정보와 함께). 보고는 정적 분석 엔진에 의해, 또는 정적 분석 엔진(306)으로부터 정보를 수신하도록 구성될 수 있는 조정기(304)에 의해(또는 또 다른 적절한 구성요소에 의해) 생성될 수 있다. 몇몇 실시예들에서, 수집된 정보는 생성되는 별개의 정적 분석 보고(308)(즉, 보고(308)로부터의 데이터베이스 레코드의 부분들) 대신에 또는 그 외에, 샘플에 대한 데이터베이스 레코드에(예컨대, 데이터베이스(316)에) 저장된다. 몇몇 실시예들에서, 정적 분석 엔진은 또한 애플리케이션에 대하여 판정(verdict)(예컨대, "안전", "의심", 또는 "악성")을 형성한다. 일 예로서, 판정은 하나의 "악성" 정적 특징이 애플리케이션에 존재한다면 "악성"일 수 있다(예컨대, 애플리케이션은 알려진 악성 도메인으로의 하드 링크를 포함한다). 또 다른 예로서, 포인트들은 특징들의 각각에 할당될 수 있으며(예컨대, 발견된다면, 심각도에 기초하여; 악의를 예측하기 위해 특징이 얼마나 신뢰 가능한지에 기초하여 등) 판정은 정적 분석 결과들과 연관된 포인트들의 수에 기초하여 정적 분석 엔진(306)(또는 적용 가능한 경우, 조정기(304))에 의해 할당될 수 있다. The static analysis engine obtains general information about the sample and includes it in the static analysis report 308 (along with heuristics and other information where applicable). The report may be generated by the static analysis engine, or by the coordinator 304 (or by another suitable component), which may be configured to receive information from the
C. 동적 분석C. Dynamic Analysis
일단 정적 분석이 완료되면, 조정기(304)는 애플리케이션에 대한 동적 분석을 수행하기 위해 이용 가능한 동적 분석 엔진(310)의 위치를 찾는다. 정적 분석 엔진(306)과 마찬가지로, 분석 시스템(300)은 하나 이상의 동적 분석 엔진들을 직접 포함할 수 있다. 다른 실시예들에서, 동적 분석은 복수의 작업기들(즉, 동적 분석 엔진(310)의 복수의 인스턴스들)을 포함하는 별개의 동적 분석 서버에 의해 수행된다. Once the static analysis is complete, the
각각의 동적 분석 작업기는 가상 기계 인스턴스를 관리한다. 몇몇 실시예들에서, 정적 분석(예컨대, 정적 분석 엔진(306)에 의해 수행된)의 결과들은, 보고 형태(308)인지 및/또는 데이터베이스(316)에 저장되거나, 또는 그 외 저장되는 것으로서에 관계없이, 동적 분석 엔진(310)으로의 입력으로서 제공된다. 예를 들어, 정적 보고 정보는 동적 분석 엔진(310)에 의해 사용된 가상 기계 인스턴스를 선택/맞춤화하도록 돕기 위해 사용될 수 있다(예컨대, Microsoft Windows 7 SP2 대 Microsoft Windows 10 Enterprise, 또는 iOS 11.0 대 iOS 12.0). 다수의 가상 기계 인스턴스들이 동시에 실행되는 경우에, 적용 가능하다면, 단일 동적 분석 엔진은 인스턴스들 모두를 관리할 수 있거나, 또는 다수의 동작 분석 엔진들이 사용될 수 있다(예컨대, 각각은 그 자신의 가상 기계 인스턴스를 관리한다). 이하에서 더 상세하게 설명될 바와 같이, 분석의 동적 부분 동안, 애플리케이션에 의해 취해진 동작들(네트워크 활동을 포함한)이 분석된다. Each dynamic analysis worker manages a virtual machine instance. In some embodiments, the results of the static analysis (eg, performed by the static analysis engine 306 ) are in the form of a
다양한 실시예들에서, 샘플의 정적 분석은, 적용 가능하다면, 생략되거나 또는 별개의 엔티티에 의해 수행된다. 일 예로서, 종래의 정적 및/또는 동적 분석은 제1 엔티티에 의해 파일들에 대해 수행될 수 있다. 일단 주어진 파일이 악성이라고 결정되면(예컨대, 제1 엔티티에 의해), 파일은 구체적으로 네트워크 활동의 멀웨어의 사용에 대하여 부가적인 분석을 위해(예컨대, 동적 분석 엔진(310)에 의해) 제2 엔티티(예컨대, 보안 플랫폼(122)의 운용자)로 제공될 수 있다. In various embodiments, static analysis of the sample is omitted or performed by a separate entity, if applicable. As an example, conventional static and/or dynamic analysis may be performed on the files by a first entity. Once a given file is determined to be malicious (eg, by a first entity), the file is then transferred to a second entity (eg, by dynamic analysis engine 310 ) for further analysis (eg, by the dynamic analysis engine 310 ) specifically for the malware's use of network activity. (eg, the operator of the secure platform 122 ).
분석 시스템(300)에 의해 사용된 환경은 애플리케이션이 실행 중인 동안 관찰된 거동들이 그것들이 발생한 것으로 로그되도록(예컨대, 후킹 및 로그캣을 지원하는 맞춤화된 커널을 사용하여) 계장화/후킹된다. 에뮬레이터와 연관된 네트워크 트래픽이 또한 캡처된다(예컨대, pcap을 사용하여). 로그/네트워크 데이터는 분석 시스템(300) 상에서 임시 파일로서 저장될 수 있으며, 또한 더 영구적으로 저장될 수 있다(예컨대, HDFS 또는 또 다른 적절한 저장 기술 또는 MongoDB와 같은, 기술의 조합을 사용하여). 동적 분석 엔진(또는 또 다른 적절한 구성요소)은 도메인들, IP 어드레스들 등의 리스트들에 샘플들에 의해 이루어진 연결들을 비교하며(314) 샘플이 악성 엔티티들과 통신하였는지(또는 그것과 통신하려고 시도하였는지)를 결정할 수 있다. The environment used by the
정적 분석 엔진과 마찬가지로, 동적 분석 엔진은 테스트되는 애플리케이션과 연관된 기록에서 데이터베이스(316)에 그것의 분석의 결과들을 저장한다(및/또는 적용 가능하다면 보고(312)에 결과들을 포함시킨다). 몇몇 실시예들에서, 동적 분석 엔진은 또한 애플리케이션에 대하여 판정(예컨대, "안전", "의심", 또는 "악성")을 형성한다. 일 예로서, 판정은 하나의 "악성" 동작이 애플리케이션에 의해 취해진다면(예컨대, 알려진 악성 도메인을 접촉하려는 시도가 이루어지거나, 또는 민감한 정보를 유출하려는 시도가 관찰되는) "악성"일 수 있다. 또 다른 예로서, 포인트들이 취해진 동작들에 할당될 수 있으며(예컨대, 발견된다면 심각도에 기초하여; 악의를 예측하기 위해 동작이 얼마나 신뢰 가능한지에 기초하여; 등) 판정은 동적 분석 결과들과 연관된 포인트들의 수에 기초하여 동적 분석 엔진(310)(또는 적용 가능하다면, 조정기(304))에 의해 할당될 수 있다. 몇몇 실시예들에서, 샘플과 연관된 최종 판정은 보고(308) 및 보고(312)의 조합에 기초하여 이루어진다(예컨대, 조정기(304)에 의해). Like the static analysis engine, the dynamic analysis engine stores the results of its analysis in the
V. 인라인 멀웨어 검출V. Inline Malware Detection
도 1의 환경으로 돌아가면, 수백만 개의 새로운 멀웨어 샘플들이 매달 생성될 수 있다(예컨대, 기존의 멀웨어에 대해 미묘한 변화들을 만듦으로써 또는 새로운 멀웨어를 저작함으로써에 관계없이, 시스템(120)의 운용자와 같은 비도덕적인 개인들에 의해). 따라서, 보안 플랫폼(122)(적어도 처음에)이 서명이 없는 많은 멀웨어 샘플들이 존재할 것이다. 뿐만 아니라, 보안 플랫폼(122)이 새롭게 생성된 멀웨어에 대한 서명들을 생성한 경우에도, 리소스 제약들은 데이터 기기(102)와 같은, 데이터 기기들이 임의의 주어진 시간에 모든 알려진 서명들의 목록(예컨대, 플랫폼(122) 상에 저장된 것으로서)을 갖고/사용하는 것을 방지한다. Returning to the environment of FIG. 1 , millions of new malware samples can be created each month (eg, by making subtle changes to existing malware or by authoring new malware, such as the operator of
때때로 멀웨어(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)으로부터 응답을 유예한다.Sometimes malware, such as
불운하게도, 데이터 기기(102)가 보안 플랫폼(122)으로부터 판정을 기다리는 5분 동안, 클라이언트 디바이스(104)의 사용자는 멀웨어(130)를 실행할 수 있어서, 잠재적으로 네트워크(140)에서 클라이언트 디바이스(104) 또는 다른 노드들을 손상시킬 수 있다. 상기 언급된 바와 같이, 다양한 실시예들에서, 데이터 기기(102)는 멀웨어 분석 모듈(112)을 포함한다. 멀웨어 분석 모듈(112)이 수행할 수 있는 하나의 태스크는 인라인 멀웨어 검출이다. 특히, 및 이하에서 더 상세하게 설명될 바와 같이, 파일(샘플(130)과 같은)이 데이터 기기(102)를 통과함에 따라, 기계 학습 기술들이 데이터 기기(102) 상에서 파일의 효율적인 분석을 수행하기 위해 적용될 수 있으며(예컨대, 데이터 기기(102)에 의해 파일에 대해 수행된 다른 프로세싱과 동시에) 초기 악성 판정(initial maliciousness verdict)은 데이터 기기(102)에 의해 결정될 수 있다(예컨대, 보안 플랫폼(122)으로부터 판정을 기다리는 동안). Unfortunately, while the
다양한 어려움들이 데이터 기기(102)와 같은 리소스 제한된 기기상에서 이러한 분석을 구현할 때 발생할 수 있다. 기기(102) 상에서의 하나의 중대한 리소스는 세션 메모리이다. 세션은 기기(102)가 본 출원에서 설명된 기술들에 따라 분석하는 파일들을 포함한, 정보의 네트워크 전달이다. 단일 기기는 수백만 개의 동시 발생 세션들을 가질 수 있으며, 주어진 세션 동안 지속하기 위해 이용 가능한 메모리는 극히 제한된다. 데이터 기기(102)와 같은 데이터 기기상에서 인라인 분석을 수행할 때 제1 어려움은 이러한 메모리 제약들로 인해, 데이터 기기(102)가 통상적으로 전체 파일을 한 번에 프로세싱할 수 없을 것이며, 대신에 패킷 단위로, 그것이 프로세싱할 필요가 있는 패킷들의 시퀀스를 수신한다는 것이다. 데이터 기기(102)에 의해 사용된 기계 학습 접근법은 따라서 다양한 실시예들에서 패킷 스트림들을 수용할 필요가 있을 것이다. 제2 어려움은 몇몇 경우들에서, 데이터 기기(102)가 프로세싱되는 주어진 파일의 끝(예컨대, 스트림에서 샘플(130)의 끝)이 발생하는 곳을 결정할 수 없을 것이라는 것이다. 데이터 기기(102)에 의해 사용된 기계 학습 접근법은 따라서 다양한 실시예들에서 잠재적으로 중간 스트림에(예컨대, 샘플(130)의 수신/프로세싱의 중간쯤 또는 그 외 실제 파일 끝 이전) 주어진 파일에 대한 판정을 낼 수 있도록 요구할 것이다. Various difficulties may arise when implementing such analysis on resource constrained devices, such as
A. 기계 학습 모델들A. Machine Learning Models
이하에서 더 상세하게 설명될 바와 같이, 다양한 실시예들에서, 보안 플랫폼(122)은 인라인 멀웨어 검출과 함께 사용할 데이터 기기(102)에 대한 기계 학습 모델들의 세트를 데이터 기기(102)로 제공한다. 모델들은 악성 파일들에 대응하는 것으로 보안 플랫폼(122)에 의해 결정된 특징들(예컨대, n-그램들 또는 다른 특징들)을 통합한다. 이러한 모델들의 두 개의 예시적인 유형들은 선형 분류 모델들 및 비-선형 분류 모델들을 포함한다. 데이터 기기(102)에 의해 사용될 수 있는 선형 분류 모델들의 예들은 로지스틱 회귀 및 선형 지원 벡터 기계들을 포함한다. 데이터 기기(102)에 의해 사용될 수 있는 비-서형 분류 모델의 예는 그래디언트 부스팅 트리(예컨대, eXtreme Gradient Boosting(XGBoost))를 포함한다. 비-선형 모델은 더 정확하지만(및 애매한/위상 멀웨어를 검출하는데 더 양호할 수 있다), 선형 모델은 기기(102) 상에서 상당히 더 적은 리소스들을 사용한다(및 JavaScript 또는 유사한 파일들을 효율적으로 분석하는데 더 적절하다).As will be described in greater detail below, in various embodiments, the
이하에서 더 상세하게 설명될 바와 같이, 어떤 유형의 분류 모델이 분석되는 주어진 파일을 위해 사용되는지는 파일과 연관된 파일유형에 기초할 수 있다(및 예컨대, 매직 넘버에 의해 결정된다).As will be described in more detail below, what type of classification model is used for a given file being analyzed may be based on (and, for example, determined by a magic number) the filetype associated with the file.
1. 위협 엔진에 대한 부가적인 세부사항1. Additional details about the threat engine
다양한 실시예들에서, 데이터 기기(102)는 위협 엔진(244)을 포함한다. 위협 엔진은 각각의 디코더 스테이지 및 패턴 매치 스테이지 동안 프로토콜 디코딩 및 위협 서명 매칭 양쪽 모두를 통합한다. 두 개의 스테이지들의 결과들은 검출기 스테이지에 의해 병합된다. In various embodiments,
데이터 기기(102)가 패킷을 수신할 때, 데이터 기기(102)는 패킷이 어떤 세션에 속하는지를 결정하기 위해 세션 매치를 수행한다(데이터 기기(102)가 동시 발생 세션들을 지원하도록 허용하는). 각각의 세션은 특정한 프로토콜 디코더(예컨대, 웹 브라우징 디코더, FTP 디코더, 또는 SMTP 디코더) 개입시키는 세션 상태를 가진다. 파일이 세션의 부분으로서 송신될 때, 적용 가능한 프로토콜 디코더는 적절한 파일-특정 디코더(예컨대, PE 파일 디코더, JavaScript 디코더, 또는 PDF 디코더)를 이용할 수 있다.When
위협 엔진(244)의 예시적인 실시예의 부분들이 도 4에서 도시된다. 주어진 세션에 대해, 디코더(402)는 바이트스트림으로 트래픽을 거닐며, 대응하는 프로토콜을 따르고 콘텍스트들을 표시한다. 콘텍스트의 일 예는 파일-끝 콘텍스트이다(예컨대, JavaScript 파일을 프로세싱하는 동안 </script>를 마주하는). 디코더(402)는 패킷에서 파일-끝 콘텍스트를 표시할 수 있으며, 이것은 그 후 파일의 관찰된 특징들을 사용하여 적절한 모델의 실행을 트리거하기 위해 사용될 수 있다. 몇몇 경우들(예컨대, FTP 트래픽)에서, 명시적인 프로토콜-레벨 태그들은 콘텍스트를 식별/표시하기 위해 디코더(402)에 대해 존재하지 않을 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 다양한 실시예들에서, 디코더(402)는 파일의 특징 추출이 종료되어야 하고(예컨대, 오버레이 섹션이 시작하고) 적절한 모델을 사용한 실행이 시작되어야 할 때를 결정하기 위해 다른 정보(예컨대, 헤더에서 보고된 바와 같은 파일 크기)를 사용할 수 있다. Portions of an exemplary embodiment of a
디코더(402)는 두 개의 파트들을 포함한다. 디코더(402)의 제1 부분은 상태 기계 언어를 사용하여 상태 기계로서 구현될 수 있는 가상 기계부(404)이다. 디코더(402)의 제2 부분은 트래픽에 매칭될 때 상태 기계 전이들 및 동작들을 트리거하기 위한 토큰들(406)의 세트(예컨대, 결정론적 유한 자동화(DFA) 또는 정규 표현들)이다. 위협 엔진(244)은 또한 패턴 매칭(예컨대, 위협 패턴들에 대한)을 수행하는 위협 패턴 매칭기(408)(예컨대, 정규 표현들을 사용하여)를 포함한다. 일 예로서, 위협 패턴 매칭기(408)는 매칭시킬 스트링들의 테이블(정확한 스트링들인지 또는 와일드카드 스트링들인지), 및 스트링 매치가 발견되는 경우 취할 대응 동작들을 제공받을 수 있다(예컨대, 보안 플랫폼(122)에 의해). 검출기(410)는 다양한 동작들을 취하기 위해 디코더(402) 및 위협 패턴 매칭기(408)에 의해 제공된 출력들을 프로세싱한다. The
2. N-그램들2. N-grams
세션에서의 데이터는 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)로 제공된다. Data in a session can be decomposed into a sequence of n-grams - a series of byte strings. As an example, suppose a piece of hexadecimal data in a session is: "1023ae42f6f28762aab". The 2-grams in the sequence are all pairs of contiguous letters, such as "1023", "23ae", "ae42", "42f6", etc. In various embodiments, the
파일에 대응하는 세션 패킷들이 위협 엔진(244)에 의해 수신됨에 따라, 위협 패턴 매칭기(408)는 테이블에서의 스트링들에 대한 매치들을 위해 패킷들을 파싱한다(예컨대, 정규 표현 및/또는 정확한 스트링 매치들을 수행함으로써). 매치들의 리스트(예컨대, 대응하는 패턴 ID에 의해 식별된 매치의 각각의 인스턴스를 가진) 및 어떤 오프셋에서 각각의 매치가 발생하였는지가 생성된다. 이들 매치들에 대한 동작들은 오프셋의 순서로(예컨대, 낮은 것에서 높은 것으로) 취해진다. 주어진 매치에 대해(즉, 특정한 패턴 ID에 대응하는), 취할 하나 이상의 동작들의 세트가 특정된다(예컨대, 동작들을 패턴 ID들에 매핑하는 동작 테이블을 통해).As session packets corresponding to the file are received by the
보안 플랫폼(122)에 의해 제공된 8-그램들의 세트가 위협 패턴 매칭기(408)가 이미 수행하고 있는 매치들의 테이블로의 부가들로서 부가될 수 있다(예컨대, 정확한 스트링 매치들로서)(예컨대, JavaScript 파일이 패스워드 저장소를 액세스하거나, 또는 PE 파일이 로컬 보안 인가 서브시스템 서비스(LSASS) API를 호출하는 경우와 같은, 멀웨어의 특정 표시들을 찾는 휴리스틱 매치들). 이러한 접근법의 하나의 이점은, 패킷을 통한 다수의 패스들을 수행하는 대신에(예컨대, 먼저 휴리스틱 매치들에 대해 평가하며 그 후 8-그램 매치들에 대해 평가하는), 8-그램들은 위협 패턴 매칭기(408)에 의해 수행된 다른 탐색들과 동시에 탐색될 수 있다는 것이다. The set of 8-grams provided by the
이하에서 더 상세하게 설명될 바와 같이, 8-그램 매치들은 다양한 실시예들에서 선형 및 비-선형 분류 모델들 양쪽 모두에 의해 사용된다. n-그램 매치들에 대해 특정될 수 있는 예시적인 동작들은 가중 카운터를 증분시키는 것(예컨대, 선형 분류기에 대해) 및 특징 벡터에 매치를 저장하는 것(예컨대, 비-선형 분류기에 대해)을 포함한다. 어떤 동작이 취해질지는 패킷과 연관된 파일유형에 기초하여 특정될 수 있다(어떤 유형의 모델이 사용되는지를 결정하는).As will be described in more detail below, 8-gram matches are used by both linear and non-linear classification models in various embodiments. Example operations that may be specified for n-gram matches include incrementing a weight counter (eg, for a linear classifier) and storing the match in a feature vector (eg, for a non-linear classifier). do. What action to take may be specified based on the filetype associated with the packet (which determines what type of model is used).
3. 모델을 선택하는 것3. Choosing a model
몇몇 경우들에서, 주어진 파일유형은 파일의 헤더 내에서 특정된다(예컨대, 파일 자체의 첫 7바이트들에서 나타나는 매직 넘버로서). 이러한 시나리오에서, 위협 엔진(244)은 특정된 파일 유형에 대응하는 적절한 모델을 선택할 수 있다(예컨대, 파일유형들 및 대응하는 모델들을 나열하는 보안 플랫폼(122)에 의해 제공된 테이블에 기초하여). JavaScript와 같은, 다른 경우들에서, 매직 넘버 또는 다른 파일유형 식별자(헤더에 존재한다면)는 어떤 분류 모델이 사용되어야 하는지를 시험하지 않을 수 있다. 일 예로서, JavaScript는 "텍스트파일"의 파일유형을 가질 것이다. JavaScript와 같은 파일유형들을 식별하기 위해, 디코더(402)는 결정론적 유한 상태 자동화(DFA) 패턴 매칭을 수행하며 휴리스틱스(예컨대, <script> 및 파일이 JavaScript라는 다른 표시자들을 식별하는)를 이용하기 위해 사용될 수 있다. 결정된 파일유형 및/또는 선택된 분류 모델은 세션 상태에 저장된다. 세션과 연관된 파일유형은 적용 가능한 경우, 세션이 진행됨에 따라 업데이트될 수 있다. 예를 들어, 텍스트의 스트림에서, <script> 태그를 마주할 때, JavaScript 파일유형은 세션을 위해 할당될 수 있다. 대응하는 </script>를 마주할 때, 파일유형은 변경될 수 있다(예컨대, 다시 평문으로).In some cases, a given filetype is specified within the header of the file (eg, as a magic number appearing in the first 7 bytes of the file itself). In such a scenario, the
4. 선형 분류 모델들4. Linear Classification Models
선형 모델을 표현하기 위한 하나의 방식은 다음의 선형 방정식을 사용하는 것에 의한다:One way to express a linear model is by using the following linear equation:
여기에서 P는 특징들의 총 수이고, xi는 i번째 특징이고, βi는 특징 xi의 계수(가중치)이며, C는 임계 상수이다. 이 예에서, C는 악성(maliciousness)의 판정에 대한 임계치이며, 주어진 파일에 대한 합이 C 미만인 경우, 파일이 양성의 판정을 할당받으며, 합산이 C 이상이면, 파일이 악성의 판정을 할당받는다는 것을 의미한다. where P is the total number of features, x i is the i-th feature, β i is the coefficient (weight) of the feature x i , and C is the critical constant. In this example, C is the threshold for the verdict of maliciousness, and if the sum for a given file is less than C, the file is assigned a benign verdict, and if the sum is C or greater, the file is assigned a malicious verdict. means that
데이터 기기(102)에 의해 선형 분류 모델을 사용하기 위한 하나의 접근법은 다음과 같다. 단일 플로트(single float)(d)는 인입 파일의 스코어를 추적하기 위해 사용되며, 해시 테이블은 관찰된 n-그램들 및 대응 계수들(즉, xi 및 βi)을 저장하기 위해 사용된다. 각각의 인입 패킷에 대해, n-그램 특징들의 각각은(예컨대, 보안 플랫폼(122)에 의해 제공된 바와 같이) 검사된다. 매치가 해시 테이블에서의 특징(xi)에 대해 발견될 때마다, 해시 테이블에서 상기 특징에 매칭되는 플로트(βi)가 부가된다(예컨대, d에). 파일의 끝에 이를 때, 임계 값(C)에 대한 단일 플로트(d)의 비교는 파일에 대한 판정을 결정하기 위해 수행된다. One approach for using the linear classification model by the
n-그램 카운팅에 대해, 특징(xi)은 i번째 n-그램이 관찰되는 횟수와 동일하다. i번째 n-그램이 특정한 파일에 대해 4번 관찰된다고 가정하자. 4*βi는 βi+βi+βi+βi로서 재기록될 수 있다. i번째 n-그램이 얼마나 많이(즉, 4번) 관찰되는지를 카운팅하고 그 후 βi로 곱하는 대신에, 대안적인 접근법은 i번째 n-그램이 관찰될 때마다 βi를 부가하는 것이다. 더욱이, j번째 n-그램이 파일에 대해 3번 관찰된다고 가정하자. 3*βj는 유사하게 βj+βj+βj로 기록될 수 있으며, 매번 βj가 얼마나 많이 관찰되는지를 카운팅하고 그 후 끝에 부가하는 대신에 βj를 부가한다. For n-gram counting, the feature (x i ) is equal to the number of times the i-th n-gram is observed. Assume that the i-th n-gram is observed 4 times for a particular file. 4*β i can be rewritten as β i +β i +β i +β i . Instead of counting how many times the i-th n-gram is observed (
Σ(β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배 더 비싸다. To find Σ(β i x i ), each of β i x i , β j x j , ... (where ... corresponds to all other features/weights) is added. This can be rewritten as β i + β i + β i + β j + β j + β j + β j + .... Because additions are cumulative, additions of values are added in any order (eg, β i + β j + β i + β j + β i + β i + β j + , etc.) and accumulate into a single float. Here, it is assumed that the float (d) starts at 0.0. Whenever feature x i is observed, β i can be added to float d, and whenever x j is observed, β j can be added to float d. This approach allows a 4 byte float to be used as a whole per session memory, in contrast to the approach where each session memory is proportional to the number of features, where the entire feature vector is stored in memory such that it can be multiplied by a weight vector . Using the example of 4 bytes * 1,000 4Kbyte features, 4K would be required for storage (compared to a single 4 byte float), which is 1,000 times more expensive.
5. 비-선형 분류 모델들5. Non-linear classification models
다양한 비-선형 분류 접근법들이 본 출원에서 설명된 기술들과 함께 사용될 수 있다. 비-선형 분류 모델의 일 예는 그래디언트 부스팅 트리이다. 이 예에서, 특징 벡터는 모두-제로 벡터들로 초기화된다. 불운하게도, 비-선형 모델들(선행 모델들과 달리)에 대해, 존재가 검출되는 특징들의 전체 세트(예컨대, 1,000 특징들)는 세션의 전체 지속 기간 동안 지속된다. 이것은 선형 접근법에서보다 덜 효율적이지만, 몇몇 효율성은 전체 4바이트 플로트(메모리 제한되지 않는 디바이스 상에서 사용될 수 있는 바와 같이)보다는 1 바이트(0 내지 255)로 특징들을 다운-샘플링함으로써 여전히 얻어질 수 있다. A variety of non-linear classification approaches may be used in conjunction with the techniques described herein. An example of a non-linear classification model is a gradient boosting tree. In this example, the feature vector is initialized to all-zero vectors. Unfortunately, for non-linear models (unlike previous models), the full set of features for which presence is detected (eg, 1,000 features) persists for the entire duration of the session. This is less efficient than the linear approach, but some efficiencies can still be obtained by down-sampling the features to 1 byte (0 to 255) rather than a full 4-byte float (as can be used on memory-unlimited devices).
데이터 기기(102)가 파일을 스캔함에 따라, 특징이 관찰될 때마다, 상기 특징의 값은 특징 벡터에서 1만큼 증가된다. 일단 파일의 끝에 이르면(또는 특징 관찰의 종료가 그 외 발생하면), 구성된 특징 벡터는 그래디언트 부스팅 트리 모델로 공급된다(예컨대, 보안 플랫폼(122)으로부터 수신되는). 이하에서 더 상세하게 설명될 바와 같이, 비-선형 분류 모델은 n-그램(예컨대, 8-그램) 및 비 n-그램 특징들 양쪽 모두를 사용하여 구축될 수 있다. 비 n-그램 특징의 일 예는 파일의 의도된 크기(purported size)이다(파일의 헤더를 포함한 패킷 외 값으로서 판독될 수 있는). 파일의 의도된 끝(purported end) 뒤에 나타나는 임의의 파일 데이터(예컨대, 헤더에서 특정된 파일 크기에 기초한 바와 같이)는 오버레이로서 불리운다. 특징으로서 작용하는 것 외에, 의도된 파일 길이(purported file length)는 파일이 얼마나 긴 것으로 예상되는지에 대한 프록시로서 사용될 수 있다. 비-선형 분류기는 의도된 파일 길이에 도달될 때까지 파일의 패킷 스트림과 부딪치며, 그 후 판정(verdict)이 파일의 끝에 사실상 이르렀는지에 관계없이 파일에 대해 형성될 수 있다. 주어진 파일이 오버레이를 포함한다는 것은 또한 비-선형 분류 모델의 부분으로서 사용될 수 있는 특징의 예이다. 다양한 실시예들에서, 파일의 오버레이 부분은 분석되지 않으며, 다시 - 분석은 파일의 실제 끝 이전에 수행될 수 있다. 다른 실시예들에서, 특징 추출이 발생하며, 악성 판정은 파일의 실제 끝에 도달될 때까지 형성되지 않는다.As the
예시적인 실시예에서, 트리 모델은 5,000개 이진 트리들을 포함한다. 각각의 트리 상에서의 모든 노드는 특징 및 대응하는 임계치를 포함한다. 트리의 일 부분의 예는 도 5에서 묘사된다. 도 5에 도시된 예에서, 특징(예컨대, 특징 F4)에 대한 값이 임계치(예컨대, 30) 미만이면, 좌측 브랜치가 취해진다(502). 특징에 대한 값이 임계치 이상이면, 우측 브랜치가 취해진다(504). 트리는 리프 노드에 도달될 때까지(예컨대, 노드 506) 탐색되며, 이것은 연관된 값(예컨대, 0.7)을 가진다. 도달된 각각의 리프의 값들(트리들의 각각에 대한)은 판정을 산출하도록 최종 스코어를 얻기 위해 합산된다(곱해지기보다는). 스코어가 임계치 미만이면, 파일은 양성인 것으로 고려될 수 있으며, 그것이 임계치 이상이면, 파일은 악성인 것으로 고려될 수 있다. 최종 스코어를 얻을 때 곱셈의 결핍은 데이터 기기(102)의 리소스 제한된 환경에서 모델의 사용을 더 효율적이게 만들도록 돕는다.In an exemplary embodiment, the tree model includes 5,000 binary trees. Every node on each tree contains a feature and a corresponding threshold. An example of a portion of a tree is depicted in FIG. 5 . In the example shown in FIG. 5 , if the value for the feature (eg, feature F4) is less than a threshold (eg, 30), the left branch is taken 502 . If the value for the feature is above the threshold, the right branch is taken (504). The tree is searched until a leaf node is reached (eg, node 506), which has an associated value (eg, 0.7). The values of each leaf reached (for each of the trees) are summed (rather than multiplied) to obtain a final score to yield a decision. If the score is below the threshold, the file may be considered benign, if it is above the threshold, the file may be considered malicious. The lack of multiplication in obtaining the final score helps to make the use of the model more efficient in the resource constrained environment of the
다양한 실시예들에서, 트리들 자체는 데이터 기기(102) 상에 고정되며(업데이트된 모델이 수신될 때까지) 동시에 다수의 세션들에 의해 액세스될 수 있는 공유 메모리에 저장될 수 있다. 세션당 비용은 세션의 특징 벡터를 저장하는 비용이며, 이것은 세션의 분석이 완료되면 제조 아웃될 수 있다.In various embodiments, the trees themselves may be stored in a shared memory that is fixed on the data device 102 (until an updated model is received) and can be accessed by multiple sessions concurrently. The cost per session is the cost of storing the feature vector of the session, which can be manufactured out when the analysis of the session is completed.
6. 예시적인 프로세스6. Exemplary process
도 6은 데이터 기기상에서 인라인 멀웨어 검출을 수행하기 위한 프로세스의 예를 예시한다. 다양한 실시예들에서, 프로세스(600)는 데이터 기기(102)에 의해, 및 특히 위협 엔진(244)에 의해 수행된다. 위협 엔진(244)은 적절한 스크립팅 언어(예컨대, 파이썬)로 저작된 스크립트(또는 스크립트들의 세트)를 사용하여 구현될 수 있다. 프로세스(600)는 또한 클라이언트 디바이스(110)와 같은 엔드포인트 상에서 수행될 수 있다(예컨대, 클라이언트 디바이스(110) 상에서 실행하는 엔드포인트 보호 애플리케이션에 의해).6 illustrates an example of a process for performing inline malware detection on a data device. In various embodiments,
프로세스(600)는 파일이 세션의 부분으로서 송신되고 있다는 표시가 기기(102)에 의해 수신될 때 602에서 시작한다. 602에서 수행된 프로세싱의 일 예로서, 주어진 세션에 대해, 연관된 프로토콜 디코더는 파일의 시작이 프로토콜 디코더에 의해 검출될 때 적절한 파일-특정 디코더를 호출하거나 또는 그 외 이를 이용할 수 있다. 상기 설명된 바와 같이, 파일유형이 결정되며(예컨대, 디코더(402)에 의해) 세션과 연관된다(예컨대, 뒤이은 파일유형 분석이 파일유형이 변하거나 또는 파일 패킷들이 송신되는 것을 중지할 때까지 수행될 필요가 없도록).
604에서, n-그램 분석이 수신된 패킷들의 시퀀스에 대해 수행된다. 상기 설명된 바와 같이, n-그램 분석은 기기(102)에 의해 세션 상에서 수행되고 있는 다른 분석들과 인라인으로 수행될 수 있다. 예를 들어, 기기(102)가 특정한 패킷에 대해 분석을 수행하는 동안(예컨대, 특정한 휴리스틱스의 존재를 검사하기 위해), 그것은 또한 패킷에서의 임의의 8-그램들이 보안 플랫폼(122)에 의해 제공된 8-그램들에 매칭되는지를 결정할 수 있다. 604에서 수행된 프로세싱 동안, n-그램 매치가 발견될 때, 대응하는 패턴 ID가 파일유형에 기초한 동작에 조건을 매핑시키기 위해 사용된다. 동작은 가중 카운터를 증분시키거나(예컨대, 파일유형이 선형 분류기와 연관되는 경우) 또는 매치를 감안하기 위해 특징 벡터를 업데이트한다(예컨대, 파일유형이 비-선형 분류기와 연관되는 경우).At 604 , n-gram analysis is performed on the sequence of received packets. As described above, the n-gram analysis may be performed inline with other analyzes being performed on the session by the
n-그램 분석은 파일-끝 조건 또는 체크포인트에 도달될 때까지, 패킷 단위로 계속된다. 상기 포인트(606)에서, 적절한 모델은 파일에 대한 판정을 결정하기 위해 사용된다(즉, 악성 임계치(maliciousness threshold)에 대하여 모델을 사용하여 획득된 최종 값을 비교하는). 상기 언급된 바와 같이, 모델들은 n-그램 특징들을 통합하며 또한 다른 특징들을 통합할 수 있다(예컨대, 비-선형 분류기의 경우에). Analysis of n-grams continues on a packet-by-packet basis until an end-of-file condition or checkpoint is reached. At
최종적으로, 608에서, 606에서 이루어진 결정에 응답하여 동작이 취해진다. 응답 동작의 일 예는 세션을 종료하는 것이다. 응답 동작의 또 다른 예는 세션을 계속하도록 허용하지만, 파일이 송신되는 것을 방지하는 것이다(및, 대신에 격리 영역에 위치시키는 것이다). 다양한 실시예들에서, 기기(102)는 보안 플랫폼(122)과 그것의 판정들(양성 판정들, 악성 판정들, 또는 둘 모두인지에 관계없이)을 공유하도록 구성된다. 보안 플랫폼(122)이 파일에 대한 그것의 독립적인 분석을 완료할 때, 그것은 판정을 형성한 모델의 성능을 평가하는 것을 포함하여, 다양한 목적들로 기기(102)에 의해 보고된 판정을 사용할 수 있다. Finally, at 608 , an action is taken in response to the determination made at 606 . An example of a response action is to end the session. Another example of a response action is to allow the session to continue, but prevent the file from being sent (and place it in an isolated area instead). In various embodiments,
샘플에 대한 예시적인 위협 서명이 도 7b에 도시된다. 특히, "4d73f42438fb5a857915219cdfa9cbb4ce3f771ffed93af81b0528931e4813f8"의 SHA-256 해시를 가진 샘플에 대해, 각각의 쌍에서의 제1 값은 특징에 대응하며, 제2 값은 카운트에 대응한다. 도 7b에 도시된 예에서, 숫자들을 포함한 특징들(예컨대, 특징 "3905")은 n-그램 특징들에 대응하며, "J" 및 숫자를 포함한 특징들(예컨대, 특징 "J18")은 비 n-그램 특징들에 대응한다.An exemplary threat signature for a sample is shown in FIG. 7B . In particular, for a sample with a SHA-256 hash of "4d73f42438fb5a857915219cdfa9cbb4ce3f771ffed93af81b0528931e4813f8", the first value in each pair corresponds to a feature, and the second value corresponds to a count. In the example shown in FIG. 7B , features comprising numbers (eg, feature “3905”) correspond to n-gram features, and features including “J” and numbers (eg, feature “J18”) are non Corresponds to n-gram features.
예시적인 실시예에서, 보안 플랫폼(122)은 데이터 기기(102)와 같은 기기들에 의한 사용을 위해 모델들을 생성할 때 특정 위양성율(예컨대, 0.001)을 타겟팅하도록 구성된다. 따라서, 몇몇 경우들에서(예컨대, 모든 1000개 파일들 중 하나), 데이터 기기(102)는 본 출원에서 설명된 기술들에 따른 모델을 사용하여 인라인 분석을 수행할 때 양성 파일이 악성이라고 부정확하게 결정할 수 있다. 이러한 시나리오에서, 보안 플랫폼(122)이 그 다음에 파일이 사실상 양성이라고 결정하면, 그것은 그 다음에 악성인 것으로 플래그되지 않도록 화이트리스트에 부가될 수 있다(예컨대, 또 다른 기기에 의해). In an exemplary embodiment, the
화이트리스팅을 위한 하나의 접근법은 보안 플랫폼(122)이 기기(102)에 저장된 화이트리스트에 파일을 부가하도록 기기(102)에 지시하는 것이다. 또 다른 접근법은 보안 플랫폼(122)이 거짓 양성들(false positives)에 대해 화이트리스트 시스템(154)에 지시하고 화이트리스트 시스템(154)이 기기(102)와 같은 기기들을 최신의 거짓 양성 정보(false positive information)로 유지하도록 지시하는 것이다. 이전에 언급된 바와 같이, 기기(102)와 같은 기기들이 가진 하나의 문제는 그것들이 리소스 제한적이라는 것이다. 기기에서 화이트리스트를 유지하는데 사용된 리소스들을 최소화하기 위한 하나의 접근법은 최소 최근 사용(Least Recently Used; LRU) 캐시를 사용하여 화이트리스트를 유지하는 것이다. 화이트리스트는 파일 해시들을 포함할 수 있으며, 또한 특징 벡터들 또는 특징 벡터들의 해시들과 같은, 다른 요소들에 기초할 수 있다. One approach for whitelisting is for the
VI. 모델들을 구축하는 것VI. building models
도 1에 묘사된 환경으로 돌아가면, 이전에 설명된 바와 같이, 보안 플랫폼(122)은 그것이 수신하는 샘플들에 대한 정적 및 동적 분석을 수행하도록 구성된다. 보안 플랫폼(122)은 다양한 소스들로부터 분석을 위한 샘플들을 수신할 수 있다. 이전에 언급된 바와 같이, 샘플 소스의 하나의 예시적인 유형은 데이터 기기(예컨대, 데이터 기기들(102, 136, 및 148)이다. 다른 소스들(예컨대, 다른 보안 기기 벤더들, 보안 연구자들 등과 같은, 샘플들의 하나 이상의 제3 자 제공자들)이 또한 적용 가능하다면 사용될 수 있다. 이하에서 더 상세하게 설명될 바와 같이, 보안 플랫폼(122)은 모델들을 구축하기 위해 그것이 수신하는 샘플들의 집성물을 사용할 수 있다(예컨대, 본 출원에서 설명된 기술들의 실시예들에 따라 보안 기기(102)에 의해 사용될 수 있는).Returning to the environment depicted in FIG. 1 , as previously described, the
다양한 실시예들에서, 정적 분석 엔진(306)은 그것이 수신하는 샘플들에 대한 특징 추출을 수행하도록 구성된다(예컨대, 또한 상기 설명된 바와 같이 다른 정적 분석 기능들을 수행하는 동안). 특징 추출을 수행하기 위한 예시적인 프로세스(예컨대, 보안 플랫폼(122)에 의해)는 도 8a에서 묘사된다. 프로세스(800)는 샘플의 정적 분석이 시작될 때 802에서 시작된다. 특징 추출(804) 동안, 모든 8-그램들(또는 8-그램들이 사용되지 않는 실시예들에서 다른 적용 가능한 n-그램들)은 프로세싱되는 샘플(예컨대, 도 3에서의 샘플(130)) 중에서 추출된다. 특히, 분석되는 샘플에서 8-그램들의 히스토그램이 추출되며(예컨대, 해시 테이블로), 이것은 주어진 8-그램이 프로세싱되는 샘플에서 관찰되는 횟수들을 나타낸다. 정적 분석 엔진(306)에 의한 특징 분석 동안 8-그램들을 추출하는 하나의 이점은 원래 파일이 결과적인 히스토그램으로부터 재구성될 수 없으므로, 제3 자들로부터 획득된 샘플들을 사용할 때(예컨대, 모델들을 구성할 때) 잠재적인 프라이버시 및 계약상 문제들이 완화될 수 있다는 것이다. 추출된 히스토그램은 806에서 저장된다. In various embodiments, the
다양한 실시예들에서, 정적 분석 엔진(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)에 의해) 나타낸다. In various embodiments, the
예시적인 실시예에서, 하둡 클러스터에 저장된 8-그램 히스토그램들의 세트는 매일 대략 3테라바이트의 8-그램 히스토그램 데이터만큼 커진다. 히스토그램들은 악성 및 양성 샘플들 모두에 대응할 것이다(예컨대, 상기 설명된 바와 같이 보안 플랫폼(122)에 의해 수행된 다른 정적 및 동적 분석들의 결과들에 기초하여, 이와 같이 라벨링될 것이다).In an exemplary embodiment, the set of 8-gram histograms stored in the Hadoop cluster grows by approximately 3 terabytes of 8-gram histogram data each day. Histograms will correspond to both malicious and benign samples (eg, will be labeled as such, based on the results of other static and dynamic analyzes performed by the
분석되고 있는 샘플로부터 추출된 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개 특징들 및 적용 가능한 가중치들을 저장한다. A histogram of 8-grams extracted from the sample being analyzed will be approximately 10% larger than the file itself, and a typical sample will have a histogram containing approximately 1 million different 8-grams. The total number of different possible 8-grams is 2 64 . As noted above, conversely, classification models (eg, as part of a subscription) transmitted by
몇몇 실시예들에서, 비-선형 분류 모델이 또한 최상위 1,000개(또는 다른 원하는 수)의 특징들을 사용하여 모델 구축기(152)에 의해 구축된다. 다른 실시예들에서, 비-선형 분류 모델은 주로 최상위 특징들(예컨대, 950)을 사용하여 구성될 뿐만 아니라, 패킷 단위 특징 추출 및 분석 동안 또한 검출될 수 있는 다른, 비 n-그램 특징들(예컨대, 50개의 이러한 특징들)을 통합한다. 비-선형 분류 모델로 통합될 수 있는 비 n-그램 특징들의 몇몇 예들은: (1) 헤더의 크기, (2) 파일에서 검사합(checksum)의 존재 또는 부재, (3) 파일에서 섹션들의 수, (4) 파일의 의도된 길이(PE 파일의 헤더에 표시된 바와 같이), (5) 파일이 오버레이 부분을 포함하는지, 및 (6) 파일이 PE를 실행하도록 Windows EFI 서브시스템에 요구하는지를 포함한다. In some embodiments, a non-linear classification model is also built by
몇몇 실시예들에서, 최상위 1,000개 특징들을 선택하기 위해 상호 정보를 사용하기보다는, 더 큰 세트의 특징들(특징들의 과도 생성된 세트)이 결정된다. 예로서, 최상위 5,000개 특징들이 처음에 상호 정보를 사용하여 선택될 수 있다. 상기 5,000개의 세트는 그 후 매우 큰 데이터세트들(예컨대, 전체 하둡 데이터세트)로 잘 스케일링하지 않으며, 축소된 세트(예컨대, 5,000개 특징들) 상에서 더 효과적인 종래의 특징 선택 기술(예컨대, 배깅(bagging))로의 입력으로서 사용될 수 있다. 종래의 특징 선택 기술은 상호 정보를 사용하여 식별된 5,000개 특징들의 세트로부터 최종 1,000개 특징들을 선택하기 위해 사용될 수 있다. In some embodiments, rather than using mutual information to select the top 1,000 features, a larger set of features (over-generated set of features) is determined. As an example, the top 5,000 features may be initially selected using mutual information. The 5,000 sets then do not scale well to very large datasets (eg full Hadoop dataset), and more effective conventional feature selection techniques (eg, bagging (eg, bagging) on a reduced set (eg 5,000 features). bagging)). Conventional feature selection techniques can be used to select the final 1,000 features from a set of 5,000 features identified using mutual information.
일단 최종 1,000개 특징들이 선택되면, 비-선형 모델을 구성하기 위한 예시적인 방식은 scikit-학습 또는 XGBoost와 같은 개방 소스 툴을 사용하는 것이다. 적용 가능하다면, 교차-검증을 사용하는 것에 의해서와 같은, 파라미터 튜닝이 수행될 수 있다.Once the final 1,000 features have been selected, an exemplary way to construct a non-linear model is to use an open source tool such as scikit-learning or XGBoost. If applicable, parameter tuning may be performed, such as by using cross-validation.
모델을 생성하기 위한 예시적인 프로세스가 도 8b에서 묘사된다. 다양한 실시예들에서, 프로세스(850)는 보안 플랫폼(122)에 의해 수행된다. 프로세스(850)는 추출된 특징들의 세트(예컨대, n-그램 특징들을 포함한)가 수신될 때 852에서 시작된다. 특징들의 세트가 수신될 수 있는 하나의 예시적인 방식은 프로세스(800)의 결과로서 저장된 특징들을 판독하는 것에 의한다. 854에서, 특징들의 축소 세트는 852에서 수신된 특징들로부터 결정된다. 상기 설명된 바와 같이, 특징들의 축소 세트를 결정하는 예시적인 방식은 상호 정보를 사용하는 것에 의한다. 다른 접근법들(예컨대, 카이-제곱 스코어)이 또한 사용될 수 있다. 뿐만 아니라, 또한 상기 설명된 바와 같이, 상호 정보를 사용하여 특징들의 초기 세트를 선택하고 배깅 또는 또 다른 적절한 기술을 사용하여 초기 세트를 정제하는 것과 같은, 기술들의 조합이 또한 852/854에서 사용될 수 있다. 최종적으로, 또한 상기 설명된 바와 같이, 특징들이 선택된다면(예컨대, 854에서), 적절한 모델들이 856에서 구축된다(예컨대, 개방 소스 또는 다른 툴들을 사용하여, 및 적용 가능하다면, 파라미터 튜닝을 수행하여). 모델들(예컨대, 프로세스(850)를 사용하여 모델 구축기(152)에 의해 생성된)은 데이터 기기(102) 및 다른 적용 가능한 수신인들(예컨대, 데이터 기기들(136 및 148))로 전송될 수 있다(예컨대, 가입 서비스의 부분으로서).An exemplary process for generating a model is depicted in FIG. 8B . In various embodiments,
다양한 실시예들에서, 모델 구축기(152)는 매일(또는 다른 적용 가능한) 기반으로 모델들(예컨대, 선형 및 비-선형 분류 모델들)을 생성한다. 프로세스(850)를 수행하거나 또는 그 외 모델들을 주기적으로 생성함으로써, 보안 플랫폼(122)은 기기(102)와 같은 기기들에 의해 사용된 모델들이 멀웨어 위협들의 가장 현재 유형들(예컨대, 비도덕적인 개인들에 의해 가장 최근 전개된 것들)을 검출하는 것을 보장하도록 도울 수 있다.In various embodiments,
새롭게-생성된 모델이 기존의 모델보다 양호한 것으로 결정될 때마다(예컨대, 임계치를 초과하는 품질 평가 메트릭들의 세트에 기초하여 결정된 바와 같이), 업데이트된 모델들은 데이터 기기(102)와 같은 데이터 기기들로 송신될 수 있다. 몇몇 경우들에서, 이러한 업데이트들은 특징들에 할당된 가중치들을 조정한다. 이러한 업데이트들은 기기들로 쉽게 배치되고 채택될 수 있다(예컨대, 실-시간 업데이트들로서). 다른 경우들에서, 이러한 업데이트들은 특징들 자체를 조정한다. 이러한 업데이트들은 그것들이 디코더와 같은, 기기의 구성요소들로의 패치들을 요구할 수 있기 때문에, 전개하는 것이 더 복잡해질 수 있다. 모델 생성 동안 오버트레이닝을 사용하는 하나의 이점은 디코더가 특정한 특징들을 검출할 수 있는지 여부를 고려할 수 있다는 것이다. Whenever the newly-generated model is determined to be better than the existing model (eg, as determined based on a set of quality evaluation metrics exceeding a threshold), the updated models are sent to data devices such as
다양한 실시예들에서, 기기들은 그것들이 수신됨에 따라 모델들에 대한 업데이트들을 전개하도록 요구된다(예컨대, 보안 플랫폼(122)에 의해). 다른 실시예들에서, 기기들은 업데이트들을 선택적으로 전개하도록 허용된다(적어도 일정 기간 동안). 일 예로서, 새로운 모델이 기기(102)에 의해 수신될 때, 기존의 모델 및 새로운 모델 양쪽 모두는 일정 기간 동안 기기(102) 상에서 동시에 구동될 수 있다(예컨대, 기존의 모델은 생산 시 사용되며 새로운 모델은 실제로 그것들을 취하지 않고 취할 동작들에 대해 보고한다). 기기의 관리자는 기존의 모델 또는 새로운 모델이 기기상에서 트래픽을 프로세싱하기 위해 사용되어야 하는지를 나타낼 수 있다(예컨대, 어떤 모델이 더 양호하게 수행하는지에 기초하여). 다양한 실시예들에서, 기기(102)는 어떤 모델(들)이 기기(102) 상에서 구동하고 있는지 및 모델(들)이 얼마나 효과적인지와 같은 정보(예컨대, 거짓 양성 통계 정보)를 나타내는 텔레메트리를 다시 보안 플랫폼(122)으로 제공한다. In various embodiments, devices are required to deploy updates to models as they are received (eg, by secure platform 122 ). In other embodiments, devices are allowed to selectively deploy updates (at least for a period of time). As an example, when a new model is received by the
앞서 말한 실시예들은 이해의 명료함을 위해 약간 상세하게 설명되었지만, 본 발명은 제공된 세부사항들에 제한되지 않는다. 본 발명을 구현하는 많은 대안적인 방식들이 있다. 개시된 실시예들은 예시적이며 제한적이지 않다. Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the present invention. The disclosed embodiments are illustrative and not restrictive.
Claims (40)
프로세서로서:
네트워킹 디바이스 상에서 하나 이상의 샘플 분류 모델들을 포함한 세트를 저장하고;
수신된 파일과 연관된 수신된 패킷들의 시퀀스에 대해 n-그램 분석을 수행하고 - 상기 n-그램 분석을 수행하는 것은 적어도 하나의 저장된 샘플 분류 모델을 사용하는 것을 포함함 -;
상기 수신된 패킷들의 시퀀스의 n-그램 분석에 적어도 부분적으로 기초하여 상기 수신된 파일이 악성인지를 결정하고, 상기 파일이 악성이라고 결정하는 것에 응답하여, 상기 수신된 파일의 전파를 방지하도록
구성되는, 상기 프로세서; 및
상기 프로세서에 결합되고 상기 프로세서에 지시들을 제공하도록 구성되는 메모리를 포함하는, 시스템.In the system,
As a processor:
store a set comprising one or more sample classification models on the networking device;
perform n-gram analysis on the sequence of received packets associated with the received file, wherein performing n-gram analysis includes using at least one stored sample classification model;
determine whether the received file is malicious based at least in part on an n-gram analysis of the received sequence of packets, and in response to determining that the file is malicious, prevent propagation of the received file;
configured, the processor; and
and a memory coupled to the processor and configured to provide instructions to the processor.
네트워킹 디바이스 상에서 하나 이상의 샘플 분류들을 포함한 세트를 저장하는 단계;
수신된 파일과 연관된 수신된 패킷들의 시퀀스에 대해 n-그램 분석을 수행하는 단계로서, 상기 n-그램 분석을 수행하는 것은 적어도 하나의 저장된 샘플 분류 모델을 사용하는 것을 포함하는, 상기 n-그램 분석을 수행하는 단계; 및
상기 수신된 패킷들의 시퀀스의 n-그램 분석에 적어도 부분적으로 기초하여 상기 수신된 파일이 악성임을 결정하고, 상기 파일이 악성임을 결정하는 것에 응답하여, 상기 수신된 파일의 전파를 방지하는 단계를 포함하는, 방법.A method comprising:
storing a set comprising one or more sample classifications on a networking device;
performing n-gram analysis on a sequence of received packets associated with a received file, wherein performing n-gram analysis comprises using at least one stored sample classification model performing the steps; and
determining that the received file is malicious based at least in part on n-gram analysis of the received sequence of packets, and in response to determining that the file is malicious, preventing propagation of the received file; How to.
상기 컴퓨터 지시들은:
네트워킹 디바이스 상에서 하나 이상의 샘플 분류들을 포함한 세트를 저장하고;
수신된 파일과 연관된 수신된 패킷들의 시퀀스에 대해 n-그램 분석을 수행하고 - 상기 n-그램 분석을 수행하는 것은 적어도 하나의 저장된 샘플 분류 모델을 사용하는 것을 포함함 -;
상기 수신된 패킷들의 시퀀스의 n-그램 분석에 적어도 부분적으로 기초하여 상기 수신된 파일이 악성임을 결정하고, 상기 파일이 악성이라고 결정하는 것에 응답하여, 상기 수신된 파일의 전파를 방지하기 위한 것인, 컴퓨터 프로그램 제품.A computer program product embodied in a tangible computer-readable storage medium and including computer instructions, the computer program product comprising:
The computer instructions are:
store a set comprising one or more sample classifications on the networking device;
perform n-gram analysis on the sequence of received packets associated with the received file, wherein performing n-gram analysis includes using at least one stored sample classification model;
determining that the received file is malicious based at least in part on n-gram analysis of the received sequence of packets, and in response to determining that the file is malicious, prevent propagation of the received file. , computer program products.
프로세서로서:
파일들의 세트로부터 추출된, 복수의 n-그램들을 포함한, 특징들의 세트를 수신하고;
상기 복수의 n-그램들 중 적어도 일부를 포함하는 특징들의 축소 세트를 결정하고;
인라인 멀웨어 분석을 수행하기 위해 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하도록
구성된, 상기 프로세서; 및
상기 프로세서에 결합되며 상기 프로세서에 지시들을 제공하도록 구성된 메모리를 포함하는, 시스템.In the system,
As a processor:
receive a set of features, including a plurality of n-grams, extracted from the set of files;
determine a reduced set of features comprising at least some of the plurality of n-grams;
to use the reduced set of features to create a model usable by data instruments to perform inline malware analysis.
configured, the processor; and
and a memory coupled to the processor and configured to provide instructions to the processor.
파일들의 세트로부터 추출된, 복수의 n-그램들을 포함한 특징들의 세트를 수신하는 단계;
상기 복수의 n-그램들 중 적어도 일부를 포함하는 특징들의 축소 세트를 결정하는 단계; 및
인라인 멀웨어 분석을 수행하도록 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하는 단계를 포함하는, 방법.In the method,
receiving a set of features extracted from the set of files, the set of features comprising a plurality of n-grams;
determining a reduced set of features comprising at least some of the plurality of n-grams; and
using the reduced set of features to create a model usable by a data instrument to perform inline malware analysis.
상기 컴퓨터 지시들은:
파일들의 세트로부터 추출된, 복수의 n-그램들을 포함한 특징들의 세트를 수신하고;
상기 복수의 n-그램들 중 적어도 일부를 포함하는 특징들의 축소 세트를 결정하고;
인라인 멀웨어 분석을 수행하도록 데이터 기기에 의해 사용 가능한 모델을 생성하기 위해 상기 특징들의 축소 세트를 사용하기 위한 것인, 컴퓨터 프로그램 제품.A computer program product embodied in a tangible computer-readable storage medium and including computer instructions, the computer program product comprising:
The computer instructions are:
receive a set of features, including a plurality of n-grams, extracted from the set of files;
determine a reduced set of features comprising at least some of the plurality of n-grams;
and use the reduced set of features to generate a model usable by a data instrument to perform inline malware analysis.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/517,463 | 2019-07-19 | ||
US16/517,465 US11636208B2 (en) | 2019-07-19 | 2019-07-19 | Generating models for performing inline malware detection |
US16/517,465 | 2019-07-19 | ||
US16/517,463 US11374946B2 (en) | 2019-07-19 | 2019-07-19 | Inline malware detection |
PCT/US2020/040928 WO2021015941A1 (en) | 2019-07-19 | 2020-07-06 | Inline malware detection |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220053549A true KR20220053549A (en) | 2022-04-29 |
KR102676386B1 KR102676386B1 (en) | 2024-06-20 |
Family
ID=74193725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227001606A KR102676386B1 (en) | 2019-07-19 | 2020-07-06 | Inline malware detection |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3999985A4 (en) |
JP (2) | JP7411775B2 (en) |
KR (1) | KR102676386B1 (en) |
CN (1) | CN114072798A (en) |
WO (1) | WO2021015941A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378747B (en) * | 2022-10-27 | 2023-01-24 | 北京六方云信息技术有限公司 | Malicious data detection method, terminal device and storage medium |
Citations (2)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010011411A1 (en) * | 2008-05-27 | 2010-01-28 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for detecting network anomalies |
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 |
US20190096214A1 (en) * | 2017-09-27 | 2019-03-28 | Johnson Controls Technology Company | Building risk analysis system with geofencing for threats and assets |
-
2020
- 2020-07-06 EP EP20843721.0A patent/EP3999985A4/en active Pending
- 2020-07-06 WO PCT/US2020/040928 patent/WO2021015941A1/en unknown
- 2020-07-06 KR KR1020227001606A patent/KR102676386B1/en active IP Right Grant
- 2020-07-06 JP JP2022502913A patent/JP7411775B2/en active Active
- 2020-07-06 CN CN202080051255.4A patent/CN114072798A/en active Pending
-
2023
- 2023-12-25 JP JP2023218442A patent/JP2024023875A/en active Pending
Patent Citations (2)
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 |
---|---|
EP3999985A1 (en) | 2022-05-25 |
KR102676386B1 (en) | 2024-06-20 |
JP2022541250A (en) | 2022-09-22 |
JP7411775B2 (en) | 2024-01-11 |
EP3999985A4 (en) | 2023-12-13 |
CN114072798A (en) | 2022-02-18 |
JP2024023875A (en) | 2024-02-21 |
WO2021015941A1 (en) | 2021-01-28 |
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 | |
JP2024023875A (en) | Inline malware detection | |
US12061696B2 (en) | Sample traffic based self-learning malware detection | |
US20230344861A1 (en) | Combination rule mining for malware signature generation | |
US20220245249A1 (en) | Specific file detection baked into machine learning pipelines | |
US12107872B2 (en) | Deep learning pipeline to detect malicious command and control traffic | |
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 | |
US12107831B2 (en) | Automated fuzzy hash based signature collecting system for malware detection | |
US20240333759A1 (en) | Inline ransomware detection via server message block (smb) traffic | |
US11770361B1 (en) | Cobalt strike beacon HTTP C2 heuristic detection | |
US20240039951A1 (en) | Probing for cobalt strike teamserver detection | |
US20240039952A1 (en) | Cobalt strike beacon https c2 heuristic 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 |