CN114072798A - 内联恶意软件检测 - Google Patents

内联恶意软件检测 Download PDF

Info

Publication number
CN114072798A
CN114072798A CN202080051255.4A CN202080051255A CN114072798A CN 114072798 A CN114072798 A CN 114072798A CN 202080051255 A CN202080051255 A CN 202080051255A CN 114072798 A CN114072798 A CN 114072798A
Authority
CN
China
Prior art keywords
file
gram
analysis
features
model
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202080051255.4A
Other languages
English (en)
Inventor
W·R·休利特
S·邓
S·杨
H·Y·林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palo Alto Networks Inc
Original Assignee
Palo Alto Networks Inc
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 Palo Alto Networks Inc filed Critical Palo Alto Networks Inc
Publication of CN114072798A publication Critical patent/CN114072798A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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‑gram分析。执行n‑gram分析包括使用至少一个存储的样本分类模型。至少部分地基于接收到的分组序列的n‑gram分析,做出接收到的文件是恶意的确定。响应于确定该文件是恶意的,防止接收到的文件的传播。

Description

内联恶意软件检测
背景技术
恶意软件是通常用于指代恶意软件(例如,包括多种敌对、侵入性和/或以其它方式不想要的软件)的一般术语。恶意软件可以以代码、脚本、活动内容和/或其它软件的形式。恶意软件的示例用途包括扰乱计算机和/或网络操作、窃取专有信息(例如,机密信息,诸如身份、财务和/或知识产权相关信息)和/或获得对私有/专有计算机系统和/或计算机网络的访问。不幸的是,随着帮助检测和减轻恶意软件的技术发展,邪恶的作者找到了规避这样的努力的方式。因此,存在对用于标识和减轻恶意软件的技术改进的持续需要。
附图说明
本发明的各种实施例在以下详细描述和附图中公开。
图1图示了其中检测到恶意应用并防止其引起危害的环境的示例。
图2A图示了数据器具的实施例。
图2B是数据器具的实施例的逻辑部件的功能图解。
图3图示了可以包括在用于分析样本的系统中的逻辑部件的示例。
图4图示了威胁引擎的示例实施例的部分。
图5图示了树的一部分的示例。
图6图示了用于在数据器具上执行内联恶意软件检测的过程的示例。
图7A图示了文件的示例散列表。
图7B图示了样本的示例威胁签名。
图8A图示了用于执行特征提取的过程的示例。
图8B图示了用于生成模型的过程的示例。
具体实施方式
本发明可以以许多方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采取的任何其它形式可以被称为技术。一般而言,在本发明的范围内,可以变更所公开的过程的步骤次序。除非另有说明,否则被描述为被配置为执行任务的诸如处理器或存储器之类的部件可以被实现为被临时配置为在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文中使用的,术语“处理器”指代被配置为处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。
下面提供了本发明的一个或多个实施例的详细描述连同图示本发明的原理的附图。结合这样的实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定,并且本发明涵盖许多替代、修改和等同物。为了提供对本发明的透彻理解,在以下描述中阐述了许多特定细节。这些细节是出于示例的目的而提供的,并且本发明可以根据权利要求来实践,而无需这些特定细节中的一些或全部。出于清楚目的,尚未详细描述与本发明相关的技术领域中已知的技术材料,使得不会不必要地模糊本发明。
I.概述
防火墙一般保护网络免受未经授权的访问,同时准许经授权的通信穿过防火墙。防火墙通常是为网络访问提供防火墙功能的设备、设备集合或在设备上执行的软件。例如,防火墙可以集成到设备(例如,计算机、智能电话或其它类型的具有网络通信能力的设备)的操作系统中。防火墙也可以被集成到各种类型的设备中或作为一个或多个软件应用在各种类型的设备上执行,所述各种类型的设备诸如是计算机服务器、网关、网络/路由设备(例如,网络路由器)和数据器具(例如,安全器具或其它类型的专用设备),并且在各种实现中,某些操作可以在专用硬件(诸如ASIC或FPGA)中实现。
防火墙通常基于规则集合拒绝或准许网络传输。这些规则集合通常被称为策略(例如,网络策略或网络安全策略)。例如,防火墙可以通过应用规则集合或策略来过滤入站业务,以防止不想要的外部业务达到受保护的设备。防火墙还可以通过应用规则集合或策略(例如,允许、阻挡、监视、通知或存记,和/或可以在防火墙规则或防火墙策略中指定其它动作,所述动作可以基于诸如本文中描述的各种准则来触发)来过滤出站业务。防火墙还可以通过类似地应用规则集合或策略来过滤本地网络(例如,内部网)业务。
安全设备(例如,安全器具、安全网关、安全服务和/或其它安全设备)可以包括各种安全功能(例如,防火墙、反恶意软件、入侵预防/检测、数据丢失预防(DLP)和/或其它安全功能)、联网功能(例如,路由、服务质量(QoS)、网络相关资源的工作负载平衡和/或其它联网功能)和/或其它功能。例如,路由功能可以基于源信息(例如,IP地址和端口)、目的地信息(例如,IP地址和端口)和协议信息。
基本分组过滤防火墙通过检查通过网络传输的个体分组来过滤网络通信业务(例如,分组过滤防火墙或第一代防火墙,它们是无状态分组过滤防火墙)。无状态分组过滤防火墙通常检查个体分组本身,并(例如,使用分组的源地址和目的地地址信息、协议信息和端口号的组合)基于检查到的分组来应用规则。
应用防火墙还可以执行应用层过滤(例如,应用层过滤防火墙或第二代防火墙,它们在TCP/IP堆栈的应用级别上工作)。应用层过滤防火墙或应用防火墙一般可以(例如,使用超文本传送协议(HTTP)的网络浏览、域名系统(DNS)请求、使用文件传送协议(FTP)的文件传送以及诸如远程登录、DHCP、TCP、UDP和TFTP(GSS)的各种其它类型的应用和其它协议)标识某些应用和协议。例如,应用防火墙可以阻挡试图通过标准端口通信的未经授权协议(例如,试图通过使用该协议的非标准端口潜行通过的未经授权/策略外协议一般可以使用应用防火墙来标识)。
有状态防火墙还可以执行基于状态的分组检查,其中每个分组均在与该网络传输的分组流相关联的一系列分组的上下文内进行检查。该防火墙技术一般被称为有状态分组检查,因为它维护穿过防火墙的所有连接的记录,并能够确定分组是新连接的开始、现有连接的一部分还是无效分组。例如,连接状态本身可以是触发策略内规则的准则之一。
如上面讨论的,高级或下一代防火墙可以执行无状态和有状态分组过滤以及应用层过滤。下一代防火墙还可以执行附加的防火墙技术。例如,有时被称为高级或下一代防火墙的某些较新的防火墙也可以标识用户和内容(例如,下一代防火墙)。特别地,某些下一代防火墙正在将这些防火墙可以自动标识的应用列表扩展到数千个应用。这样的下一代防火墙的示例从Palo Alto Networks公司商业上可获得(例如,Palo Alto Networks的PA系列防火墙)。例如,Palo Alto Networks的下一代防火墙使得企业能够使用各种标识技术来标识和控制应用、用户和内容,而不只是端口、IP地址和分组,所述各种标识技术诸如以下:用于准确应用标识的APP-ID、用于用户标识(例如,按用户或用户组)的用户-ID以及用于实时内容扫描(例如,控制网上冲浪以及限制数据和文件传送)的内容-ID。这些标识技术允许企业使用与业务相关的概念安全地启用应用使用,而不是遵循传统端口阻挡防火墙提供的传统方法。用于下一代防火墙的专用硬件(例如,作为专用器具实现)一般也比在通用硬件上执行的软件提供应用检查的更高性能水平(例如,诸如由Palo Alto Networks公司提供的安全器具,其使用专用的、功能特定的处理,该处理与单程软件引擎紧密集成,以最大化网络吞吐量,同时最小化等待时间)。
高级或下一代防火墙也可以使用虚拟化防火墙来实现。这样的下一代防火墙的示例从Palo Alto Networks公司商业上可获得(例如,Palo Alto Networks的VM系列防火墙,其支持各种商业虚拟化环境,包括例如VMware® ESXi™和NSX™、Citrix® NetscalerSDX™、KVM/OpenStack(Centos/RHEL, Ubuntu®)以及亚马逊网络服务(AWS))。例如,虚拟化防火墙可以支持物理形状因子器具中可用的类似或完全相同的下一代防火墙和高级威胁预防特征,从而允许企业安全地使得应用能够流入和流经其私有、公共和混合云计算环境。诸如VM监视、动态地址组和基于REST的API之类的自动化特征允许企业主动监视VM改变,将该上下文动态馈送到安全策略中,由此消除当VM改变时可能出现的策略滞后。
II.示例环境
图1图示了其中检测到恶意应用(“恶意软件”)并防止其引起危害的环境的示例。如下面将更详细描述的,(例如,如由安全平台122做出的)恶意软件分类可以在图1中所示出的环境中包括的各种实体之间被不同地共享和/或细化。并且,使用本文中描述的技术,可以保护诸如端点客户端设备104-110之类的设备免受这样的恶意软件侵害。
术语“应用”贯穿说明书用来统称为程序、程序包、清单、包等,而不管形式/平台如何。“应用”(本文中也称为“样本”)可以是独立的文件(例如,具有文件名“calculator.apk”或“calculator.exe”的计算器应用),并且也可以是另一个应用(例如,嵌入在计算器app内的移动广告SDK或库)的独立部件。
如本文中使用的“恶意软件”指代从事行为的应用,所述行为无论是否秘密(以及无论是否非法),如果被充分告知,则用户不批准/将不批准所述行为。恶意软件的示例包括特洛伊木马、病毒、根工具包(rootkit)、间谍软件、黑客工具、键盘存记器等。恶意软件的一个示例是桌面应用,其收集终端用户的位置并向远程服务器报告该终端用户的位置(但不为用户提供基于位置的服务,诸如映射服务)。恶意软件的另一个示例是恶意的AndroidApplication Package.apk(APK)文件,其在终端用户看来是免费游戏,但是却偷偷发送SMS溢价消息(例如,每条花费10美元),从而增加了终端用户的电话账单。恶意软件的另一个示例是苹果iOS手电筒应用,该手电筒应用偷偷收集用户的联系人,并将那些联系人发送给垃圾邮件发送者。也可以使用本文中描述的技术(例如,勒索软件)来检测/阻挠其它形式的恶意软件。另外,虽然n-gram/特征向量/输出累积变量在本文中被描述为针对恶意应用而生成,但是本文中描述的技术也可以在各种实施例中用于为其它种类的应用生成简档(例如,广告软件简档、商品软件(goodware)简档等)。
本文中描述的技术可以与多种平台(例如,桌面、移动设备、游戏平台、嵌入式系统等)和/或多种类型的应用(例如,Android.apk文件、iOS应用、Windows PE文件、AdobeAcrobat PDF文件等)结合使用。在图1中所示出的示例环境中,客户端设备104-108是(分别)存在于企业网络140中的膝上型计算机、台式计算机和平板。客户端设备110是存在于企业网络140之外的膝上型计算机。
数据器具102被配置为强制实施关于诸如客户端设备104和106之类的客户端设备和(例如,经由外部网络118可达的)企业网络140之外的节点之间的通信的策略。这样的策略的示例包括管制业务整形、服务质量和业务路由的策略。策略的其它示例包括安全策略,诸如要求扫描传入(和/或传出)电子邮件附件、网站内容、通过即时消息程序交换的文件和/或其它文件传送中的威胁的策略。在一些实施例中,数据器具102还被配置为相对于停留在企业网络140内的业务强制实施策略。
图2A中示出了数据器具的实施例。所示出的示例是在各种实施例中包括在数据器具102中的物理部件的表示。具体地,数据器具102包括高性能多核中央处理单元(CPU)202和随机存取存储器(RAM)204。数据器具102还包括存储装置210(诸如一个或多个硬盘或固态存储单元)。在各种实施例中,数据器具102(无论是在RAM 204、存储装置210和/或其它适当的位置中)存储在监视企业网络140和实现所公开的技术中被使用的信息。这样的信息的示例包括应用标识符、内容标识符、用户标识符、请求的URL、IP地址映射、策略和其它配置信息、签名、主机名/URL类别信息、恶意软件简档和机器学习模型。数据器具102还可以包括一个或多个可选的硬件加速器。例如,数据器具102可以包括被配置为执行加密和解密操作的密码引擎206,以及被配置为执行匹配、充当网络处理器和/或执行其它任务的一个或多个现场可编程门阵列(FPGA)208。
本文中描述的如由数据器具102执行的功能可以以多种方式提供/实现。例如,数据器具102可以是专用设备或设备集合。数据器具102提供的功能也可以集成到通用计算机、计算机服务器、网关和/或网络/路由设备中,或者作为软件在通用计算机、计算机服务器、网关和/或网络/路由设备上执行。在一些实施例中,被描述为由数据器具102提供的至少一些服务代替地(或附加地)由在客户端设备上执行的软件提供给客户端设备(例如,客户端设备104或客户端设备110)。
每当数据器具102被描述为执行任务时,数据器具102的单个部件、部件子集或所有部件可以协作来执行任务。类似地,每当数据器具102的部件被描述为执行任务时,子部件可以执行该任务和/或该部件可以结合其它部件执行该任务。在各种实施例中,数据器具102的部分由一个或多个第三方提供。取决于诸如对数据器具102可用的计算资源的量之类的因素,数据器具102的各种逻辑部件和/或特征可以被省略,并且本文中描述的技术相应地被适配。类似地,在适用的情况下,附加的逻辑部件/特征可以包括在数据器具102的实施例中。在各种实施例中,包括在数据器具102中的部件的一个示例是应用标识引擎,其被配置为标识应用(例如,基于分组流分析使用各种应用签名以用于标识应用)。例如,应用标识引擎可以确定会话涉及什么类型的业务,诸如网络浏览-社交网络;网络浏览-新闻;SSH;等等。
图2B是数据器具的实施例的逻辑部件的功能图解。所示出的示例是在各种实施例中可以包括在数据器具102中的逻辑部件的表示。除非另有指定,否则数据器具102的各种逻辑部件一般以多种方式可实现,包括作为一个或多个脚本的集合(例如,在适用的情况下,以Java、python等编写的脚本)可实现。
如所示出的,数据器具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记录。例如,用户可以最初浏览到公司维基(基于访问的URL分类为“网络浏览-生产力”),并且然后后续浏览到社交网站(基于访问的URL分类为“网络浏览-社交网络”)。不同类型的协议具有对应的解码器。
基于应用标识引擎242做出的确定,威胁引擎244将分组发送到适当的解码器,该适当的解码器被配置为将分组(其可能被无序接收)组装成正确的次序,执行令牌化,并提取出信息。威胁引擎244还执行签名匹配,以确定分组应该发生什么。根据需要,SSL加密引擎246可以对经解密的数据重新加密。使用转发模块248转发分组以用于传输(例如,到目的地)。
也如图2B中所示出的,策略252被接收并存储在管理平面232中。策略可以包括一个或多个规则,所述一个或多个规则可以使用域和/或主机/服务器名称来指定,并且规则可以应用一个或多个签名或其它匹配准则或启发法,诸如用于基于从受监视的会话业务流提取的各种参数/信息来对订户/IP流强制实施安全策略。接口(I/F)通信器250被提供用于(例如,经由(REST)API、消息或网络协议通信或其它通信机制)管理通信。
III.安全平台
返回到图1,假设恶意个体(使用系统120)已经创建了恶意软件130。恶意个体希望诸如客户端设备104之类的客户端设备将执行恶意软件130的副本,从而损害客户端设备,并且例如使得客户端设备成为僵尸网络中的自动程序(bot)。然后,可以指令受损害的客户端设备执行任务(例如,加密货币挖掘或参与拒绝服务攻击),并向外部实体(诸如命令和控制(C&C)服务器150)报告信息,以及从C&C服务器150接收指令(在适用的情况下)。
假设数据器具102已经拦截了(例如,由系统120)发送给操作客户端设备104的用户“爱丽丝”的电子邮件。恶意软件130的副本已经被系统120附接到该消息。作为替代但类似的场景,数据器具102可以拦截客户端设备104对恶意软件130(例如,从网站)的试图下载。在任一场景中,数据器具102确定文件的签名(例如,恶意软件130的电子邮件附件或网站下载)是否存在于数据器具102上。签名如果存在,则可以指示文件已知是安全的(例如,被列入白名单),并且还可以指示文件已知是恶意的(例如,被列入黑名单)。
在各种实施例中,数据器具102被配置为与安全平台122协作工作。作为一个示例,安全平台122可以向数据器具102提供已知恶意文件的签名集合(例如,作为订阅的一部分)。如果恶意软件130的签名被包括在集合(例如,恶意软件130的MD5散列)中,则数据器具102可以相应地防止向客户端设备104传输恶意软件130(例如,通过检测发送到客户端设备104的电子邮件附件的MD5散列与恶意软件130的MD5散列相匹配)。安全平台122还可以向数据器具102提供已知恶意域和/或IP地址的列表,从而允许数据器具102阻挡企业网络140和C&C服务器150之间的业务(例如,其中已知C&C服务器150是恶意的)。恶意域(和/或IP地址)的列表还可以帮助数据器具102确定其节点中的一个何时已经被损害。例如,如果客户端设备104试图联系C&C服务器150,则这样的尝试是客户端104已经被恶意软件损害的强指示符(并且应当相应地采取补救动作,诸如隔离客户端设备104与企业网络140内的其它节点进行通信)。如下面将更详细描述的,安全平台122还可以向数据器具102提供其它类型的信息(例如,作为订阅的一部分),诸如数据器具102可用于执行文件的内联分析的机器学习模型集合。
在各种实施例中,如果没有找到附件的签名,则数据器具102可以采取多种动作。作为第一示例,数据器具102可以通过阻挡未被列入白名单为良性的任何附件(例如,不匹配已知良好文件的签名)的传输来故障安全(fail-safe)。该方法的缺点是,当合法附件实际上是良性的时,可能存在许多合法附件作为潜在的恶意软件被不必要地阻挡。作为第二示例,数据器具102可以通过允许传输未被列入黑名单为恶意的任何附件(例如,不匹配已知不良文件的签名)来故障危险(fail-danger)。该方法的缺点是新创建的(平台122先前看不到的)恶意软件将不被防止引起危害。
作为第三示例,数据器具102可以被配置为向安全平台122提供文件(例如,恶意软件130)以用于静态/动态分析,从而确定它是否是恶意的和/或以其它方式对它进行分类。当安全平台122对附件(针对其尚不存在签名)执行分析时,数据器具102可以采取多种动作。作为第一示例,数据器具102可以防止电子邮件(和附件)被递送给爱丽丝,直到从安全平台122接收到响应为止。假设平台122花费近似15分钟来彻底分析样本,这意味着到爱丽丝的传入消息将被延迟达15分钟。因为在该示例中,附件是恶意的,所以这样的延迟将不对爱丽丝产生负面影响。在替代示例中,假设有人已经向爱丽丝发送了具有良性附件的时间敏感消息,针对所述良性附件也不存在签名。将消息递送给爱丽丝延迟达15分钟将可能(例如,被爱丽丝)认为是不可接受的。如下面将更详细描述的,替代方法是对数据器具102上的附件执行至少一些实时分析(例如,在等待来自平台122的判定时)。如果数据器具102可以独立地确定附件是恶意的还是良性的,则它可以采取初始动作(例如,阻挡或允许递送给爱丽丝),并且在适用的情况下,一旦从安全平台122接收到判定,就可以调整/采取附加动作。
安全平台122将接收到的样本的副本存储在存储装置142中,并且分析开始(或在适用的情况下,调度)。存储装置142的一个示例是Apache Hadoop集群(HDFS)。分析的结果(以及与应用相关的附加信息)存储在数据库146中。在应用被确定为恶意的事件中,数据器具可以被配置为基于分析结果自动阻挡文件下载。另外,签名可以针对恶意软件被生成并分发(例如,到诸如数据器具102、136和148之类的数据器具)以自动阻挡未来的文件传送请求,从而下载被确定为恶意的文件。
在各种实施例中,安全平台122包括运行典型服务器级操作系统(例如,Linux)的一个或多个专用商业上可获得的硬件服务器(例如,具有(一个或多个)多核处理器、32G+的RAM、(一个或多个)千兆位网络接口适配器和(一个或多个)硬盘驱动器)。安全平台122可以跨包括多个这样的服务器、固态驱动器和/或其它适用的高性能硬件的可扩展基础设施实现。安全平台122可以包括若干分布式部件,包括由一个或多个第三方提供的部件。例如,安全平台122的部分或全部可以使用亚马逊弹性计算云(EC2)和/或亚马逊简单存储服务(S3)来实现。另外,与数据器具102一样,每当安全平台122被称为执行任务、诸如存储数据或处理数据时,要理解,安全平台122的一个子部件或多个子部件(无论是个体地还是与第三方部件协作地)可以协作来执行该任务。作为一个示例,安全平台122可以可选地与一个或多个虚拟机(VM)服务器(诸如VM服务器124)协作来执行静态/动态分析。
虚拟机服务器的示例是物理机,其包括运行商业上可获得的虚拟化软件(诸如VMware ESXi、Citrix XenServer或Microsoft Hyper-V)的商业上可获得的服务器级硬件(例如,多核处理器、32+千兆字节的RAM和一个或多个千兆位网络接口适配器)。在一些实施例中,虚拟机服务器被省略。另外,虚拟机服务器可以在管理安全平台122的相同实体的控制下,但是也可以由第三方提供。作为一个示例,虚拟机服务器可以依赖于EC2,其中安全平台122的剩余部分由安全平台122的操作者拥有并在其控制下的专用硬件提供。VM服务器124被配置为提供一个或多个虚拟机126-128以用于仿真客户端设备。虚拟机可以执行多种操作系统和/或其版本。存记和分析由在虚拟机中执行应用而产生的观察到的行为(例如,用于该应用是恶意的指示)。在一些实施例中,日志分析由VM服务器(例如,VM服务器124)执行。在其它实施例中,分析至少部分地由安全平台122的其它部件(诸如协调器144)执行。
在各种实施例中,安全平台122经由签名列表(和/或其它标识符)使其样本分析的结果作为订阅的部分对数据器具102可用。例如,安全平台122可以周期性地(例如,每天、每小时或某个其它间隔,和/或基于由一个或多个策略配置的事件)发送标识恶意软件app的内容包。示例内容包包括所标识的恶意软件app的列表,具有诸如包名称、用于唯一标识app的散列值以及每个所标识的恶意软件app的恶意软件名称(和/或恶意软件家族名称)的信息。订阅可以只涵盖对由数据器具102拦截并由数据器具102发送到安全平台122的那些文件的分析,并且还可以涵盖安全平台122已知的所有恶意软件(或其子集,诸如只移动恶意软件,而不是其它形式的恶意软件(例如,PDF恶意软件))的签名。如下面将更详细描述的,平台122还可以使其它类型的信息可用,诸如可以(例如,通过除了基于散列的签名匹配之外的技术)帮助数据器具102检测恶意软件的机器学习模型。
在各种实施例中,安全平台122被配置为向除了数据器具102的操作者之外(或者,在适用的情况下,代替数据器具102的操作者)的多种实体提供安全服务。例如,具有它们自己相应的企业网络114和116以及它们自己相应的数据器具136和148的其它企业可以与安全平台122的操作者签约。其它类型的实体也可以利用安全平台122的服务。例如,向客户端设备110提供互联网服务的互联网服务提供商(ISP)可以与安全平台122签约,以分析客户端设备110试图下载的应用。作为另一个示例,客户端设备110的所有者可以在客户端设备110上安装与安全平台122通信的软件(例如,从安全平台122接收内容包,根据本文中描述的技术使用接收到的内容包来检查附件,以及将应用传输到安全平台122用于分析)。
IV.使用静态/动态分析来分析样本
图3图示了可以包括在用于分析样本的系统中的逻辑部件的示例。分析系统300可以使用单个设备来实现。例如,分析系统300的功能可以在并入到数据器具102中的恶意软件分析模块112中实现。分析系统300也可以跨多个不同的设备共同实现。例如,分析系统300的功能可以由安全平台122提供。
在各种实施例中,分析系统300利用已知安全内容和/或已知不良内容的列表、数据库或其它集合(在图3中共同示出为集合314)。集合314可以以多种方式获得,包括经由订阅服务(例如,由第三方提供)和/或作为其它处理(例如,由数据器具102和/或安全平台122执行)的结果。包括在集合314中的信息的示例是:已知恶意服务器的URL、域名和/或IP地址;已知安全服务器的URL、域名和/或IP地址;已知命令和控制(C&C)域的URL、域名和/或IP地址;已知恶意应用的签名、散列和/或其它标识符;已知安全应用的签名、散列和/或其它标识符;已知恶意文件(例如,安卓漏洞利用文件(Android exploit file))的签名、散列和/或其它标识符;已知安全库的签名、散列和/或其它标识符;以及已知恶意库的签名、散列和/或其它标识符。
A.摄入
在各种实施例中,当接收到用于分析的新样本时(例如,与样本相关联的现有签名不存在于分析系统300中),它被添加到队列302。如图3中所示出的,应用130被系统300接收并添加到队列302。
B.静态分析
协调器304监视队列302,并且当资源(例如,静态分析工作者)变得可用时,协调器304从队列302取回样本用于处理(例如,取回恶意软件130的副本)。特别地,协调器304首先将样本提供给静态分析引擎306用于静态分析。在一些实施例中,一个或多个静态分析引擎被包括在分析系统300内,其中分析系统300是单个设备。在其它实施例中,静态分析由包括多个工作者(即,静态分析引擎306的多个实例)的单独的静态分析服务器来执行。
静态分析引擎获得关于样本的一般信息,并将其(在适用的情况下,连同启发式信息和其它信息)包括在静态分析报告308中。该报告可以由静态分析引擎创建,或由协调器304(或由另一个适当的部件)创建,该协调器304可以被配置为从静态分析引擎306接收信息。在一些实施例中,代替正在创建的单独的静态分析报告308(即,数据库记录的部分形成报告308)或除了正在创建的单独的静态分析报告308(即,数据库记录的部分形成报告308)之外,收集的信息被存储在样本的数据库记录中(例如,数据库316中)。在一些实施例中,静态分析引擎还形成关于应用的判定(例如,“安全的”、“可疑的”或“恶意的”)。作为一个示例,如果应用中甚至存在一个“恶意”静态特征(例如,应用包括到已知恶意域的硬链接),则判定可以是“恶意的”。作为另一个示例,可以将点分配给每个特征(例如,如果找到,基于严重性;基于该特征对于预测恶意有多可靠;等)并且可以由静态分析引擎306(或如果适用的话,协调器304)基于与静态分析结果相关联的点数来分配判定。
C.动态分析
一旦静态分析完成,协调器304就定位可用的动态分析引擎310以对应用执行动态分析。与静态分析引擎306一样,分析系统300可以直接包括一个或多个动态分析引擎。在其它实施例中,动态分析由包括多个工作者(即,动态分析引擎310的多个实例)的单独的动态分析服务器来执行。
每个动态分析工作者管理虚拟机实例。在一些实施例中,(例如,由静态分析引擎306执行的)静态分析的结果,无论是以报告形式(308)和/或如存储在数据库316中,还是以其它方式存储,都被提供作为至动态分析引擎310的输入。例如,静态报告信息可以用于帮助选择/定制由动态分析引擎310使用的虚拟机实例(例如,Microsoft Windows 7 SP 2对Microsoft Windows 10企业版或iOS 11.0对iOS 12.0)。在同时执行多个虚拟机实例的情况下,单个动态分析引擎可以管理所有实例,或者在适用的情况下,可以使用多个动态分析引擎(例如,其中每个动态分析引擎管理其自己的虚拟机实例)。如下面将更详细解释的,在分析的动态部分期间,分析应用采取的动作(包括网络活动)。
在各种实施例中,在适用的情况下,样本的静态分析被省略或由单独的实体执行。作为一个示例,传统的静态和/或动态分析可以由第一实体对文件执行。一旦(例如,由第一实体)确定给定文件是恶意的,就可以将该文件提供给第二实体(例如,安全平台122的操作者),专门用于关于恶意软件对网络活动的使用(例如,由动态分析引擎310)进行附加分析。
给分析系统300使用的环境装备仪器或对分析系统300使用的环境挂钩(hook),使得在应用正在执行时观察到的行为在它们出现时(例如,使用支持挂钩和日志记录(logcat)的定制内核)被存记。还(例如,使用pcap)捕获与仿真器相关联的网络业务。日志/网络数据可以作为临时文件存储在分析系统300上,并且也可以(例如,使用HDFS或诸如MongoDB的另一个适当的存储技术或技术组合)更永久地存储。动态分析引擎(或另一个适当的部件)可以将样本建立的连接与域、IP地址等列表(314)进行比较,并确定样本是否已经与恶意实体通信(或试图通信)。
与静态分析引擎一样,动态分析引擎将其分析结果存储在数据库316中与正在被测试的应用相关联的记录中(和/或在适用的情况下,将结果包括在报告312中)。在一些实施例中,动态分析引擎还形成关于应用的判定(例如,“安全的”、“可疑的”或“恶意的”)。作为一个示例,如果应用采取了甚至一个“恶意的”动作(例如,做出试图联系已知的恶意域,或观察到试图泄露敏感信息),则判定可能是“恶意的”。作为另一个示例,可以将点分配给所采取的动作(例如,如果找到,基于严重性;基于该动作对于预测恶意有多可靠;等)并且可以由动态分析引擎310(或如果适用的话,协调器304)基于与动态分析结果相关联的点数来分配判定。在一些实施例中,基于报告308和报告312的组合(例如,由协调器304)做出与样本相关联的最终判定。
V.内联恶意软件检测
返回到图1的环境,每个月可能生成数百万个新的恶意软件样本(例如,由诸如系统120的操作者之类的邪恶个体,无论是通过对现有恶意软件做出细微的改变还是通过创作新的恶意软件)。因此,将存在许多针对其安全平台122(至少最初)没有签名的恶意软件样本。另外,甚至在安全平台122已经为新创建的恶意软件生成了签名的情况下,资源约束也防止诸如数据器具102之类的数据器具在任何给定时间具有/使用(例如,如存储在平台122上的)所有已知签名的列表。
有时恶意软件(诸如恶意软件130)将成功渗透网络140。对此的一个原因是其中数据器具102基于“首次允许”原则操作。假设当数据器具102没有样本(例如,样本130)的签名并将其提交给安全平台122进行分析时,安全平台122花费近似五分钟来返回判定(例如,“良性的”、“恶意的”、“未知的”等)。在首次允许原则下,通信被允许,而不是在该五分钟时间段期间阻挡系统120和客户端设备104之间的通信。当判定被返回时(例如,五分钟后),数据器具102可以使用该判定(例如,“恶意的”)来阻挡恶意软件130到网络140的后续传输,可以阻挡系统120和网络140之间的通信等。在各种实施例中,如果样本130的第二副本在数据器具102正在等待来自安全平台122的判定的时段期间达到数据器具102,则样本130的第二副本(以及任何后续副本)将由系统120持有,等待来自安全平台122的响应。
不幸的是,在数据器具102等待来自安全平台122的判定的五分钟期间,客户端设备104的用户可能已经执行了恶意软件130,潜在地损害客户端设备104或网络140中的其它节点。如上面提到的,在各种实施例中,数据器具102包括恶意软件分析模块112。恶意软件分析模块112可以执行的一个任务是内联恶意软件检测。特别地,并且如下面将更详细描述的,当文件(例如样本130)穿过数据器具102时,可以应用机器学习技术来对数据器具102上的文件执行高效分析(例如,与数据器具102对文件执行的其它处理并行),并且数据器具102可以确定初始恶意性判定(例如,在等待来自安全平台122的判定时)。
在诸如数据器具102之类的资源受约束的器具上实现这样的分析可能出现各种困难。器具102上的一个关键资源是会话存储器。会话是信息的网络传送,包括器具102要根据本文中描述的技术分析的文件。单个器具可能具有数百万个并发会话,并且在给定会话期间持续可用的存储器极其有限。在诸如数据器具102之类的数据器具上执行内联分析的第一困难是,由于这样的存储器约束,数据器具102通常将不能够一次处理整个文件,而是代替地接收它需要逐分组处理的分组序列。因此,在各种实施例中,数据器具102使用的机器学习方法将需要适应分组流。第二困难是,在一些情况下,数据器具102将不能够确定正在处理的给定文件的结尾(例如,流中样本130的结尾)出现在哪里。因此,在各种实施例中,数据器具102使用的机器学习方法将需要能够潜在地在中游(例如,样本130的接收/处理的中途或否则在实际文件结尾之前)关于给定文件做出判定。
A.机器学习模型
如下面将更详细描述的,在各种实施例中,安全平台122向数据器具102提供机器学习模型集合,供数据器具102结合内联恶意软件检测使用。模型并入了由安全平台122确定为对应于恶意文件的特征(例如,n-gram或其它特征)。这样的模型的两个示例类型包括线性分类模型和非线性分类模型。数据器具102可以使用的线性分类模型的示例包括逻辑回归和线性支持向量机。可以由数据器具102使用的非线性分类模型的示例包括梯度增强树(例如,极限梯度增强(XGBoost))。非线性模型更准确(并且能够更好地检测混淆/伪装的恶意软件),但是线性模型使用器具102上相当更少的资源(并且更适合用于高效地分析JavaScript或类似文件)。
如下面将更详细描述的,对于正在被分析的给定文件使用哪种类型的分类模型可以基于与该文件相关联的文件类型(并且例如通过幻数(magic number)来确定)。
1.关于威胁引擎的附加细节
在各种实施例中,数据器具102包括威胁引擎244。威胁引擎在相应的解码器阶段和模式匹配阶段期间并入了协议解码和威胁签名匹配二者。两个阶段的结果由检测器阶段合并。
当数据器具102接收到分组时,数据器具102执行会话匹配以确定分组属于哪个会话(允许数据器具102支持并发会话)。每个会话均具有会话状态,所述会话状态涉及特定协议解码器(例如,网络浏览解码器、FTP解码器或SMTP解码器)。当文件作为会话的部分被传输时,适用的协议解码器可以利用适当的文件特定解码器(例如,PE文件解码器、JavaScript解码器或PDF解码器)。
威胁引擎244的示例实施例的部分在图4中示出。对于给定的会话,解码器402遵循对应的协议和标记上下文遍历业务字节流。上下文的一个示例是文件结尾上下文(例如,在处理JavaScript文件时遇到</script>)。解码器402可以在分组中标记文件结尾上下文,其然后可以用于使用文件的观察特征来触发适当模型的执行。在一些情况下(例如,FTP业务),解码器402可能不存在明确的协议级标签来标识/标记上下文。如下面将更详细描述的,在各种实施例中,解码器402可以使用其它信息(例如,如在头部中报告的文件大小)来确定文件的特征提取应该何时结束(例如,覆盖区段开始)以及使用适当模型的执行应该何时开始。
解码器402包括两个部分。解码器402的第一部分是虚拟机部分(404),其可以使用状态机语言实现为状态机。解码器402的第二部分是令牌集合406(例如,确定性有限自动机(DFA)或正则表达式),用于当业务中匹配时触发状态机转换和动作。威胁引擎244还包括威胁模式匹配器408(例如,使用正则表达式),其执行模式匹配(例如,针对威胁模式)。作为一个示例,威胁模式匹配器408可以(例如,由安全平台122)提供有将与之匹配的字符串表(无论是精确字符串还是通配符字符串)以及在找到字符串匹配的情况下将采取的对应动作。检测器410处理由解码器402和威胁模式匹配器408提供的输出,以采取各种动作。
2.N-Gram
会话中的数据可以分解成n-gram序列——一系列字节字符串。作为示例,假设会话中的一部分十六进制数据是:“1023ae42f6f28762aab”。序列中的2-gram全部是相邻字符对,诸如:“1023”、“23ae”、“ae42”、“42f6”等。在各种实施例中,威胁引擎244被配置为使用8-gram来分析文件。也可以使用其它n-gram,诸如7-gram或4-gram。在上面的示例字符串中,“1023ae42f6f28762”是8-gram,“23ae42f6f28762aa”是8-gram等。字节序列中可能的不同8-gram的总数是264 (18、446、744、073、709、551、616)。搜索字节序列中所有可能的8-gram将很容易超出数据器具102的资源。代替地,并且如下面将更详细描述的,安全平台122向数据器具102提供显著减少的8-gram集合,供威胁引擎244使用。
当威胁引擎244接收到对应于文件的会话分组时,威胁模式匹配器408解析分组,以用于与表中的字符串匹配(例如,通过执行正则表达式和/或精确字符串匹配)。生成匹配列表(例如,其中匹配的每个实例由对应的模式ID标识)以及每个匹配出现在什么偏移处。以偏移的次序(例如,从较低到较高)对那些匹配采取动作。对于给定的匹配(即,对应于特定的模式ID),(例如,经由将动作映射到模式ID的动作表)指定将采取的一个或多个动作的集合。
由安全平台122提供的8-gram集合可以作为威胁模式匹配器408已经在执行的匹配表的添加(例如,作为精确的字符串匹配)而被添加(例如,寻找恶意软件的特定指标的启发式匹配,诸如在JavaScript文件访问密码存储,或者PE文件调用本地安全机构子系统服务(LSASS) API的情况下)。该方法的一个优点是,可以与威胁模式匹配器408执行的其它搜索并行地搜索8-gram,而不是执行多次通过分组(例如,首先评估启发式匹配,并且然后评估8-gram匹配)。
如下面将更详细描述的,在各种实施例中,线性和非线性分类模型二者使用8-gram匹配。可以为n-gram匹配指定的示例动作包括递增加权计数器(例如,对于线性分类器)并将匹配保存在特征向量中(例如,对于非线性分类器)。可以基于与分组相关联的文件类型(其确定使用哪种类型的模型)来指定采取哪个动作。
3.选择模型
在一些情况下,在文件头部内指定给定的文件类型(例如,作为出现在文件本身的前七个字节中的幻数)。在这样的场景下,威胁引擎244可以选择对应于指定文件类型的适当模型(例如,基于安全平台122提供的列举文件类型和对应模型的表)。在其它情况下,诸如JavaScript,幻数或其它文件类型标识符(如果完全存在于头部中)可能无法证明应该使用哪个分类模型。作为一个示例,JavaScript将具有“文本文件”的文件类型。为了标识诸如JavaScript的文件类型,解码器402可以用于执行确定性有限状态自动机(DFA)模式匹配并应用启发法(例如,标识< Script >和文件是JavaScript的其它指示符)。确定的文件类型和/或选择的分类模型保存在会话状态中。在适用的情况下,与会话相关联的文件类型可以随着会话进行而被更新。例如,在文本流中,当遇到<script>标签时,可以为会话分配JavaScript文件类型。当遇到对应的</script>时,可以改变文件类型(例如,回到明文)。
4.线性分类模型
表示线性模型的一个方式是通过使用以下线性方程:
Figure 12DEST_PATH_IMAGE001
其中P为特征总数,xi为第i个特征,
Figure 651573DEST_PATH_IMAGE002
为特征xi的系数(权重),并且C为阈值常数。在该示例中,C是恶意判定的阈值,这意味着如果给定文件的总和小于C,则该文件被分配为良性判定,并且如果总和等于或大于C,则该文件被分配为恶意判定。
数据器具102使用线性分类模型的一个方法如下。单个浮点数(d)用于跟踪传入文件的得分,并且散列表用于存储观察到的n-gram和对应的系数(即xi
Figure 228048DEST_PATH_IMAGE002
)。对于每个传入的分组,对照每个n-gram特征(例如,如安全平台122提供的)进行检查。每当在散列表中找到特征(xi)的匹配时,与散列表中的该特征匹配的单个浮点数(
Figure 967465DEST_PATH_IMAGE002
)被添加(例如,添加到d)。当达到文件的结尾时,执行单个浮点数(d)与阈值(C)的比较,以确定文件的判定。
对于n-gram计数,特征xi等于观察到第i个n-gram的次数。假设对于特定的文件观察第i个n-gram四次。
Figure 516258DEST_PATH_IMAGE003
可以重写为
Figure 135458DEST_PATH_IMAGE004
。不是对观察第i个 n-gram多少次进行(即4次)计数并且然后乘以
Figure 510813DEST_PATH_IMAGE002
,而是替代方法是每次观察第i个n-gram时添加
Figure 506451DEST_PATH_IMAGE002
。此外,假设对于文件观察第j个n-gram三次。
Figure 909751DEST_PATH_IMAGE005
类似地可以写为
Figure 247322DEST_PATH_IMAGE006
,每次添加
Figure 796726DEST_PATH_IMAGE007
而不是对观察
Figure 845322DEST_PATH_IMAGE007
多少次进行计数并且然后添加到结尾。
为了找到
Figure 165445DEST_PATH_IMAGE008
,添加了
Figure 205077DEST_PATH_IMAGE009
Figure 243440DEST_PATH_IMAGE010
、…(其中…对应于所有其它特征/权重)中的每一个。这可以重写为
Figure 252984DEST_PATH_IMAGE011
…。因为加法是累加的,所以值的加法可以按任何次序相加(例如
Figure 210969DEST_PATH_IMAGE012
+等)并累积成单个浮点数。这里,假设浮点数(d)从0.0开始。每次观察到特征xi时,可以将
Figure 342873DEST_PATH_IMAGE002
添加到浮点数d,并且每次观察到xj时,可以将
Figure 681582DEST_PATH_IMAGE007
添加到浮点数d。该方法允许将4字节的浮点数用作整个每个会话的存储器,并与每个会话的存储器与特征数量成比例的方法形成对比,其中整个特征向量存储在存储器中,使得它可以乘以权重向量。使用4字节* 10004 K字节特征的示例,对于存储将需要4K(与单个4字节浮点数相比),这贵1000倍。
5.非线性分类模型
多种非线性分类方法可以与本文中描述的技术结合使用。非线性分类模型的一个示例是梯度增强树。在该示例中,特征向量被初始化为全零向量。不幸的是,对于非线性模型(不同于线性模型),正在检测其存在的整个特征集合(例如,1000个特征)在会话的整个持续期间内是持续的。虽然这与在线性方法中相比不太高效,但通过将特征下采样为一个字节(0-255)而不是完全的4字节浮点数(如可能针对不受存储器约束的设备使用),仍然可以获得一些效率。
当数据器具102扫描文件时,每次观察到特征时,该特征的值在特征向量中增加一。一旦达到文件的结尾(或者特征观察的终止以其它方式出现),构造的特征向量就被馈送到梯度增强树模型(例如,从安全平台122接收)。如下面将更详细描述的,非线性分类模型可以使用n-gram(例如,8-gram)和非n-gram特征二者来构建。非n-gram特征的一个示例是声称的文件大小(其可以作为包含文件头部的分组中的值来读取)。出现在声称的文件结尾之后的任何文件数据(例如,如基于在头部中指定的文件大小)被称为覆盖。除了充当特征,声称的文件长度可以用作预期文件有多长的代理。非线性分类器可以针对文件的分组流运行,直到达到声称的文件长度,并且然后可以针对文件形成判定,而不管文件的结尾是否实际上已经达到。给定文件包括覆盖也是可以用作非线性分类模型的部分的特征的示例。在各种实施例中,文件的覆盖部分不被分析,同样,分析可以在文件的实际结尾之前执行。在其它实施例中,出现特征提取,并且直到达到文件的实际结尾才形成恶意判断。
在示例实施例中,树模型包括5000个二叉树。每个树上的每个节点包含特征和对应的阈值。图5中描绘了树的一部分的示例。在图5中所示出的示例中,如果特征(例如,特征F4)的值小于其阈值(例如,30),则采取左分支(502)。如果特征的值等于或大于阈值,则采取右分支(504)。该树被遍历,直到达到具有相关联值(例如,0.7)的叶子节点(例如,节点506)。将(每个树的)所达到的每个叶子的值相加(而不是相乘)以取得最终得分来计算判定。如果得分低于阈值,则可以认为该文件是良性的,并且如果得分等于或高于阈值,则可以认为该文件是恶意的。在获得最终得分时缺少乘法帮助在数据器具102的资源受约束环境中对模型的更高效利用。
在各种实施例中,树本身固定在数据器具102上(直到接收到更新的模型),并且可以存储在可以由多个会话同时访问的共享存储器中。每个会话的成本是存储会话特征向量的成本,一旦会话分析完成,就可以将该成本清零。
6.示例流程
图6图示了用于在数据器具上执行内联恶意软件检测的过程的示例。在各种实施例中,过程600由数据器具102执行,并且特别是由威胁引擎244执行。威胁引擎244可以使用以适当的脚本语言(例如,Python)创作的脚本(或脚本集)来实现。过程600也可以在诸如客户端设备110的端点上执行(例如,通过在客户端设备110上执行的端点保护应用)。
当器具102接收到文件正作为会话的部分被传输的指示时,过程600开始于602。作为在602执行的处理的一个示例,对于给定的会话,当协议解码器检测到文件的开始时,相关联的协议解码器可以调用或以其它方式利用适当的文件特定解码器。如上面解释的,文件类型被确定(例如,被解码器402确定)并与会话相关联(例如,使得在文件类型改变或文件分组停止被传输之前,不需要执行后续的文件类型分析)。
在604,对接收的分组序列执行n-gram分析。如上面解释的,n-gram分析可以与器具102在会话上执行的其它分析一起在线执行。例如,当器具102对特定分组执行分析(例如,检查特定启发法的存在)时,它还可以确定分组中的任何8-gram是否与安全平台122提供的8-gram匹配。在604处执行的处理期间,当发现n-gram匹配时,使用对应的模式ID将条件映射到基于文件类型的动作。该动作要么递增加权计数器(例如,在文件类型与线性分类器相关联的情况下),要么更新特征向量以计及匹配(例如,在文件类型与非线性分类器相关联的情况下)。
n-gram分析一个分组接一个分组地继续,直到达到文件结束条件或检查点。在该点(606),使用适当的模型来确定文件的判定(即,将使用模型获得的最终值与恶意阈值进行比较)。如上面提到的,模型并入n-gram特征,并且还可以并入其它特征(例如,在非线性分类器的情况下)。
最后,在608,响应于在606做出的确定,采取动作。响应操作的一个示例是终止会话。响应操作的另一个示例是允许会话继续,但防止文件传输(并且取而代之被放置在隔离区域中)。在各种实施例中,器具102被配置为与安全平台122共享其判定(无论是良性判定、恶意判定还是两者)。当安全平台122完成其对文件的独立分析时,它可以将器具102报告的判定用于包括评估形成判定的模型的性能的多种目的。
用于样本的示例威胁特征在图7B中示出。特别地,对于具有“
Figure 557134DEST_PATH_IMAGE013
”的SHA-256散列的样本,每对中的第一个值对应于特征,并且第二个值对应于计数。在图7B中所示出的示例中,包括数字的特征(例如特征“3905”)对应于n-gram特征,并且包括“J”和数字的特征(例如特征“J18”)对应于非n-gram特征。
在示例实施例中,安全平台122被配置为当生成供诸如数据器具102的器具使用的模型时,以特定的假阳性率(例如,0.001)为目标。因此,在一些情况下(例如,每一千个文件中有一个),当使用根据本文中描述的技术的模型执行在线分析时,数据器具102可能错误地确定良性文件是恶意的。在这样的场景下,如果安全平台122随后确定该文件实际上是良性的,则它可以被添加到白名单中,使得它不随后被标记(例如,被另一个器具标记)为恶意的。
加入白名单的一个方法是安全平台122指令器具102将文件添加到存储在器具102上的白名单。另一个方法是安全平台122向白名单系统154指令假阳性,并且白名单系统154依次用假阳性信息来保持诸如器具102的器具是最新的。如先前提到的,诸如器具102的器具的一个问题是它们受资源约束。使在器具处维护白名单中使用的资源最小化的一个方法是使用最近最少使用(LRU)缓存来维护白名单。白名单可以包括文件散列,并且也可以基于诸如特征向量或特征向量的散列之类的其它元素。
VI.构建模型
回到图1中描绘的环境,如先前解释的,安全平台122被配置为对其接收的样本执行静态和动态分析。安全平台122可以从多种源接收用于分析的样本。如先前提到的,样本源的一个示例类型是数据器具(例如,数据器具102、136和148)。其它来源(例如,样本的一个或多个第三方提供商,诸如其它安全器具供应商、安全研究员等)也可以在适用的情况下被使用。如下面将更详细描述的,安全平台122可以使用其接收的样本语料库来构建模型(例如,其然后可以由安全器具102根据本文中描述的技术的实施例来使用)。
在各种实施例中,静态分析引擎306被配置为对其接收的样本执行特征提取(例如,同时还执行如上所述的其它静态分析功能)。图8A中描绘了用于(例如,由安全平台122)执行特征提取的示例过程。当样本的静态分析开始时,过程800开始于802。在特征提取(804)期间,从正被处理的样本(例如,图3中的样本130)中提取所有8-gram(或者在不使用8-gram的实施例中的其它适用的n-gram)。特别地,提取被分析的样本中8-gram的直方图(例如,提取到散列表中),该直方图指示在被处理的样本中观察到给定8-gram的次数。静态分析引擎306在特征分析期间提取8-gram的一个益处是可以减轻使用从第三方获得的样本中(例如,在构造模型中)的潜在隐私和合同问题,因为原始文件不能从结果得到的直方图重建。在806存储提取的直方图。
在各种实施例中,静态分析引擎306在存储装置142(例如,Hadoop集群)中存储给定样本的提取的直方图(例如,使用散列表表示)连同从其它样本提取的直方图。Hadoop中的数据被压缩,并且当对Hadoop数据执行操作时,所需的数据被动态解压缩。图7A中示出了文件的示例散列表(用JSON表示)。行702指示文件的SHA-256散列。行704指示样本130达到安全平台122的UNIX时间。行706指示覆盖区段中n-gram的计数(例如,“
Figure 366696DEST_PATH_IMAGE014
”:1表示在覆盖区段中找到“
Figure 200660DEST_PATH_IMAGE015
”的一个实例。行708指示文件中存在的8-gram中的每一个的计数。行710指示该文件具有覆盖。行712指示文件的文件类型是“.exe”。行714指示安全平台122完成处理样本130的UNIX时间。行716指示文件命中的每个非8-gram特征的计数。最后,行718指示该文件被确定(例如,被安全平台122确定)为恶意的。
在示例实施例中,存储在Hadoop集群中的8-gram直方图集合每天增长近似兆兆字节的8-gram直方图数据。直方图将对应于恶意和良性样本二者(例如,基于如上所述由安全平台122执行的其它静态和动态分析的结果,所述恶意和良性样本二者将被照此标记)。
从被分析的样本提取的8-gram直方图将比文件本身大近似10%,并且典型样本将具有包括近似1百万个不同的8-gram的直方图。不同可能的8-gram的总数是264。如上面提及的,相比之下,在各种实施例中,由安全平台122发送(例如,作为订阅的部分)到诸如数据器具102的设备的分类模型仅包括几千个特征(例如,1000个特征)。将潜在多达264个特征的集合约简为模型中使用的最重要的1000个特征的一个示例方式是使用互信息技术。在适用的情况下也可以使用其它适用的方法(例如Chi-方得分)。所需的四个参数包括具有给定特征的恶意样本的数量、具有给定特征的良性样本的数量、恶意样本的总数以及良性样本的总数。相互信息的一个益处是它可以高效地用于非常大的数据集。在Hadoop中,通过将任务跨多个映射器分布,每个映射器负责处置特定的特征,可以在单程(即,通过Hadoop集群数据集中存储的给定文件类型的所有8-gram直方图)中执行互信息方法。在适用的情况下,具有最高互信息的那些特征可以被选择为最能指示恶意和/或最能指示良性的特征集合。在适用的情况下,结果得到的1000个特征然后可以用于构建模型(例如,线性分类模型和非线性分类模型)。例如,为了构建线性分类模型,模型构建器152(使用开源工具集和/或以适当语言(诸如python)创作的脚本来实现)将前1000个特征和适用权重保存为供器具102检查的n-gram特征集合(例如,如上面的章节V.A.4中所述)。
在一些实施例中,非线性分类模型也由模型构建器152使用前1000个(或其它期望数量的)特征来构建。在其它实施例中,非线性分类模型主要使用顶部特征(例如,950个)来构造,但是也并入了其它非n-gram特征(例如,50个这样的特征),所述其它非n-gram特征(例如,50个这样的特征)也可以在一个分组接一个分组的特征提取和分析期间被检测到。可以并入非线性分类模型中的非n-gram特征的一些示例包括:(1)头部的大小,(2)文件中校验和的存在或不存在,(3)文件中的区段数量,(4)文件的声称长度(如在PE文件的头部中指示的),(5)文件是否包括覆盖部分,以及(6)文件是否需要Windows EFI子系统来执行PE。
在一些实施例中,不是使用相互信息来选择前1000个特征,而是确定更大的特征集合(过度生成的特征集合)。作为示例,前5000个特征最初可以使用相互信息来选择。然后,这5000个特征的集合可以用作至传统特征选择技术(例如,打包)的输入,该传统特征选择技术(例如,打包)可能不能很好地扩展到非常大的数据集(例如,整个Hadoop数据集),但是在约简的集合(例如,5000个特征)上更有效。传统的特征选择技术可以用于从使用互信息标识的5000个特征的集合选择最终的1000个特征。
一旦选择了最终的1000个特征,构造非线性模型的示例方式就是使用诸如scikit-learn或XGBoost的开源工具。在适用的情况下,可以诸如通过使用交叉验证来执行参数调整。
生成模型的示例过程在图8B中描绘。在各种实施例中,过程850由安全平台122执行。当接收到提取的特征集合(例如,包括n-gram特征)时,过程850开始于852。可以接收特征集合的一个示例方式是通过读取作为过程800的结果而存储的特征。在854,从在852接收的特征确定特征的约简集合。如上所述,确定特征的约简集合的示例方式是通过使用互信息。也可以使用其它方法(例如Chi-方得分)。此外,也如上所述,还可以在852/854使用技术的组合,诸如使用互信息选择初始特征集合,并使用打包或另一个适当的技术来细化初始集。最后,也如上所述,一旦(例如,在854)选择了特征,就在856构建适当的模型(例如,使用开源或其它工具,并且在适用的情况下,执行参数调整)。模型(例如,由模型构建器152使用过程850生成的)可以被发送(例如,作为订阅服务的部分)到数据器具102和其它适用的接收者(例如,数据器具136和148)。
在各种实施例中,模型构建器152在每天(或其它适用的)基础上生成模型(例如,线性和非线性分类模型)。通过执行过程850或以其它方式周期性地生成模型,安全平台122可以帮助确保诸如器具102之类的器具所使用的模型检测到最新类型的恶意软件威胁(例如,由邪恶个体最近部署的恶意软件威胁)。
每当新生成的模型被确定为优于现有模型(例如,如基于超过阈值的质量评估度量集来确定)时,更新的模型可以被传输到诸如数据器具102的数据器具。在一些情况下,此类更新调整被分配给特征的权重。此类更新可以容易地部署到器具并被器具采用(例如,作为实时更新)。在其它情况下,此类更新自己调整特征。此类更新部署起来可能更复杂,因为它们可能需要对器具的部件(诸如解码器)进行修补。在模型生成期间使用过度训练的一个益处是模型可以考虑解码器是否能够检测特定特征。
在各种实施例中,器具被要求(例如,由安全平台122)在接收到模型更新时将其部署到模型。在其它实施例中,允许器具选择性地部署更新(至少一段时间)。作为一个示例,当器具102接收到新模型时,现有模型和新模型都可以在器具102上并行运行一段时间(例如,其中现有模型在生产中使用,并且新模型报告它将采取的动作而不实际采取它们)。器具的管理员能够指示是应该使用现有模型还是新模型来处理器具上的流量(例如,基于哪个模型表现得更好)。在各种实施例中,器具102将遥测数据提供回到安全平台122,该遥测数据指示诸如器具102上运行的是哪个(哪些)模型以及该一个(多个)模型有多有效的信息(例如,假阳性统计信息)。
尽管为了清楚理解的目的,已经对前述实施例用一些细节进行了描述,但是本发明不限于所提供的细节。存在实现本发明的许多替代方式。公开的实施例是说明性的而非限制性的。

Claims (40)

1.一种系统,包括:
处理器,被配置为:
在联网设备上存储包括一个或多个样本分类模型的集合;
对与接收到的文件相关联的接收到的分组序列执行n-gram分析,其中执行n-gram分析包括使用至少一个存储的样本分类模型;和
至少部分地基于接收到的分组序列的n-gram分析来确定接收到的文件是恶意的,并且响应于确定所述文件是恶意的,防止接收到的文件的传播;和
耦合到处理器并被配置为向处理器提供指令的存储器。
2.根据权利要求1所述的系统,其中,处理器被配置为至少部分地通过将接收到的分组中的n-gram与n-gram的预定列表进行比较来执行n-gram分析。
3.根据权利要求2所述的系统,其中,n-gram的预定列表是使用多个先前收集的恶意软件样本生成的。
4.根据权利要求1所述的系统,其中,处理器进一步被配置为确定与所述文件相关联的文件类型。
5.根据权利要求4所述的系统,其中,处理器被配置为基于与所述文件相关联的所确定的文件类型,从一个或多个样本分类模型的集合选择线性分类模型。
6.根据权利要求5所述的系统,其中,执行n-gram分析包括累积对应于观察到的n-gram的权重集合。
7.根据权利要求6所述的系统,其中,所述权重被累积在单个浮点值中。
8.根据权利要求4所述的系统,其中,处理器被配置为基于与所述文件相关联的所确定的文件类型,从一个或多个样本分类模型的集合选择非线性分类模型。
9.根据权利要求8所述的系统,其中,非线性分类模型包括n-gram特征和非n-gram特征。
10.根据权利要求9所述的系统,其中,至少一个非n-gram特征与文件大小相关联。
11.根据权利要求9所述的系统,其中,至少一个非n-gram特征与覆盖的存在相关联。
12.根据权利要求8所述的系统,其中,执行n-gram分析包括每当特征匹配时更新特征向量中特征的值。
13.根据权利要求1所述的系统,其中,使用所述至少一个存储的样本分类模型包括针对分组流运行非线性分类器,直到达到声称的文件长度。
14.根据权利要求13所述的系统,其中,声称的文件长度不是实际文件长度,并且在达到文件的实际结尾之前确定判定。
15.根据权利要求1所述的系统,其中,处理器进一步被配置为接收至少一个更新的分类模型。
16.根据权利要求1所述的系统,其中,n-gram分析与其它分组分析一起在线执行,作为业务流的单程分析。
17.根据权利要求1所述的系统,其中,处理器进一步被配置为当执行n-gram分析时使用被列入白名单的n-gram集合。
18.根据权利要求1所述的系统,其中,处理器进一步被配置为将接收到的文件的副本传输到安全平台,并且在等待来自所述安全平台的判定时执行n-gram分析。
19.一种方法,包括:
在联网设备上存储包括一个或多个样本分类的集合;
对与接收到的文件相关联的接收到的分组序列执行n-gram分析,其中执行n-gram分析包括使用至少一个存储的样本分类模型;和
至少部分地基于接收到的分组序列的n-gram分析来确定接收到的文件是恶意的,并且响应于确定所述文件是恶意的,防止接收到的文件的传播。
20.一种体现在有形计算机可读存储介质中并且包括计算机指令的计算机程序产品,用于:
在联网设备上存储包括一个或多个样本分类的集合;
对与接收到的文件相关联的接收到的分组序列执行n-gram分析,其中执行n-gram分析包括使用至少一个存储的样本分类模型;和
至少部分地基于接收到的分组序列的n-gram分析来确定接收到的文件是恶意的,并且响应于确定所述文件是恶意的,防止接收到的文件的传播。
21.一种系统,包括:
处理器,被配置为:
接收从文件集合提取的包括多个n-gram的特征集合;
确定包括所述多个n-gram中的至少一些的特征的约简集合;和
使用特征的约简集合来生成可由数据器具使用的模型,以执行内联恶意软件分析;和
耦合到处理器并被配置为向处理器提供指令的存储器。
22.根据权利要求1所述的系统,其中,特征集合包括从已知恶意文件集合提取的特征。
23.根据权利要求1所述的系统,其中,特征集合包括从已知良性文件集合提取的特征。
24.根据权利要求1所述的系统,其中,使用互信息来确定特征的约简集合。
25.根据权利要求1所述的系统,其中,使用Chi-方得分来确定特征的约简集合。
26.根据权利要求1所述的系统,其中,生成的模型包括n-gram特征。
27.根据权利要求6所述的系统,其中,生成的模型进一步包括非n-gram特征。
28.根据权利要求7所述的系统,其中,至少一个非n-gram特征与文件大小相关联。
29.根据权利要求7所述的系统,其中,至少一个非n-gram特征与头部大小相关联。
30.根据权利要求7所述的系统,其中,至少一个非n-gram特征与文件中校验和的存在或不存在中的至少一个相关联。
31.根据权利要求7所述的系统,其中,至少一个非n-gram特征与文件中的多个区段相关联。
32.根据权利要求7所述的系统,其中,至少一个非n-gram特征与声称的文件长度相关联。
33.根据权利要求7所述的系统,其中,至少一个非n-gram特征与文件是否包括覆盖相关联。
34.根据权利要求1所述的系统,其中,所述模型是线性模型。
35.根据权利要求1所述的系统,其中,所述模型是非线性模型。
36.根据权利要求1所述的系统,其中,所述多个n-gram是在所述文件集合的静态分析期间提取的。
37.根据权利要求1所述的系统,其中,所述模型被传输到第一数据器具。
38.根据权利要求17所述的系统,其中,响应于由第二数据器具报告的假阳性结果,处理器被配置为生成更新的模型并将更新的模型传输到第一数据器具。
39.一种方法,包括:
接收从文件集合提取的包括多个n-gram的特征集合;
确定包括所述多个n-gram中的至少一些的特征的约简集合;和
使用特征的约简集合来生成可由数据器具使用的模型,以执行内联恶意软件分析。
40.一种体现在有形计算机可读存储介质中并且包括计算机指令的计算机程序产品,用于:
接收从文件集合提取的包括多个n-gram的特征集合;
确定包括所述多个n-gram中的至少一些的特征的约简集合;和
使用特征的约简集合来生成可由数据器具使用的模型,以执行内联恶意软件分析。
CN202080051255.4A 2019-07-19 2020-07-06 内联恶意软件检测 Pending CN114072798A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/517,465 US11636208B2 (en) 2019-07-19 2019-07-19 Generating models for performing inline malware detection
US16/517465 2019-07-19
US16/517463 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 (1)

Publication Number Publication Date
CN114072798A true CN114072798A (zh) 2022-02-18

Family

ID=74193725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080051255.4A Pending CN114072798A (zh) 2019-07-19 2020-07-06 内联恶意软件检测

Country Status (5)

Country Link
EP (1) EP3999985A4 (zh)
JP (2) JP7411775B2 (zh)
KR (1) KR20220053549A (zh)
CN (1) CN114072798A (zh)
WO (1) WO2021015941A1 (zh)

Cited By (1)

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

Family Cites Families (7)

* 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
US10754948B2 (en) 2017-04-18 2020-08-25 Cylance Inc. Protecting devices from malicious files based on n-gram processing of sequential data
US10902124B2 (en) * 2017-09-15 2021-01-26 Webroot Inc. Real-time JavaScript classifier
US10565844B2 (en) * 2017-09-27 2020-02-18 Johnson Controls Technology Company Building risk analysis system with global risk dashboard

Cited By (2)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US11783035B2 (en) Multi-representational learning models for static analysis of source code
US20220014500A1 (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
US10216931B2 (en) Detecting an attempt to exploit a memory allocation vulnerability
US11374946B2 (en) Inline malware detection
US11636208B2 (en) Generating models for performing inline malware detection
JP2024023875A (ja) インラインマルウェア検出
US20230344861A1 (en) Combination rule mining for malware signature generation
US20240037231A1 (en) Sample traffic based self-learning malware detection
US20240039893A1 (en) Beacon and threat intelligence based apt detection
US20230344867A1 (en) Detecting phishing pdfs with an image-based deep learning approach
US20230342461A1 (en) Malware detection for documents using knowledge distillation assisted learning
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
US11770361B1 (en) Cobalt strike beacon HTTP C2 heuristic detection
US20230082289A1 (en) Automated fuzzy hash based signature collecting system for malware detection
US20230412564A1 (en) Fast policy matching with runtime signature update
CN112005234A (zh) 恶意软件检测的上下文剖析
US20240039952A1 (en) Cobalt strike beacon https c2 heuristic detection
US20240039951A1 (en) Probing for cobalt strike teamserver detection
US20230231857A1 (en) Deep learning pipeline to detect malicious command and control traffic
US11863586B1 (en) Inline package name based supply chain attack detection and prevention
US20230069731A1 (en) Automatic network signature generation
US20230306114A1 (en) Method and system for automatically generating malware signature
US20230344866A1 (en) Application identification for phishing detection
WO2024025705A1 (en) Cobalt strike beacon http c2 heuristic detection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination