CN107066883A - 用于阻断脚本执行的***和方法 - Google Patents

用于阻断脚本执行的***和方法 Download PDF

Info

Publication number
CN107066883A
CN107066883A CN201610862858.8A CN201610862858A CN107066883A CN 107066883 A CN107066883 A CN 107066883A CN 201610862858 A CN201610862858 A CN 201610862858A CN 107066883 A CN107066883 A CN 107066883A
Authority
CN
China
Prior art keywords
script
hash
bytecode
similarity
hardware processor
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.)
Granted
Application number
CN201610862858.8A
Other languages
English (en)
Other versions
CN107066883B (zh
Inventor
瓦西里·A·达维多夫
安东·M·伊万诺夫
罗曼·Y·加夫里尔琛科
德米特里·V·维诺格拉多夫
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN107066883A publication Critical patent/CN107066883A/zh
Application granted granted Critical
Publication of CN107066883B publication Critical patent/CN107066883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

公开了用于阻断脚本执行的***和方法的示例性方面。示例性方法包括:拦截从客户端向服务器的对于脚本的请求;生成拦截的脚本的字节码;计算生成的字节码的散列和;确定字节码的散列和与存储在数据库中的恶意脚本和干净脚本的多个散列和之间的相似度;从数据库识别相似散列和,该相似散列和与字节码的散列和的相似度在相似度阈值内;确定相似散列和的信任系数;基于相似散列和的相似度和信任系数确定请求的脚本是否为恶意的;以及阻断恶意脚本在客户端上的执行。

Description

用于阻断脚本执行的***和方法
相关申请的交叉引用
本发明要求在2015年9月30日递交的俄罗斯申请No.2015141537的优先权的权益,该俄罗斯申请通过引用并入在本文中。
技术领域
本发明总体涉及计算机安全领域,且更具体地涉及用于阻断脚本执行的***和方法。
背景技术
计算机和信息技术的蓬勃发展已导致用户在其日常生活中广泛使用电子商务、电子文件传输、云存储和其它计算机技术。例如,大量用户将其个人机密信息存储在计算机上,且压倒性多数商家借助电子设备和服务进行其金融和商业活动。
所描述的计算机技术的广泛使用已经反过来引起其用于黑客行为的情况的数量增加。大量不同的恶意程序(也称为恶意软件)已出现,且受恶意程序影响的计算机***的数量显著增加。一些恶意程序从计算机***窃取用户的个人机密数据(诸如登录名和密码、银行卡信息、电子文件),其它恶意程序从被感染的计算机***形成所谓的僵尸网络,以及另外的其它恶意程序对用户强加支付服务。
使用许多不同的安全技术(反病毒程序、防火墙、入侵检测***(IDS)等)来保护计算机免受恶意程序,这些安全技术能够有效地检测恶意程序并移除恶意程序。尽管受恶意程序感染的计算机的有效修复对用户来说是更为重要的,但是对于公司来说,更为重要的是检测感染计算机***的企图时的高运行效率和效果。
大多数现存的安全方案主要旨在检测和移除行为或结构已知的恶意软件。因此,当计算机***发现其自身被新的、未知的或模糊的恶意软件(具体地,恶意脚本)攻击时,现存的安全方案变为无效的。此外,检测被复合恶意程序(具体地,恶意脚本)感染的计算机***的任务也向已知的安全方案呈现很大难度,该复合恶意程序由几个文件组成,并不是每一个文件都携带恶意功能。
发明内容
公开了用于阻断恶意脚本的执行的***和方法的示例性方面。示例性方法包括:通过硬件处理器拦截从客户端向服务器的对于脚本的请求;通过所述硬件处理器生成拦截的所述脚本的字节码;通过所述硬件处理器计算生成的所述字节码的散列和;通过所述硬件处理器确定所述字节码的所述散列和与存储在数据库中的恶意脚本和干净脚本的多个散列和之间的相似度;通过所述硬件处理器从所述数据库识别相似散列和,所述相似散列和与所述字节码的所述散列和的相似度在相似度阈值内;通过所述硬件处理器确定所述相似散列和的信任系数;通过所述硬件处理器基于所述相似散列和的所述相似度和所述信任系数确定请求的所述脚本是否为恶意的;以及通过所述硬件处理器阻断所述恶意脚本在所述客户端上的执行。
在一个示例性方面中,拦截对于脚本的请求包括:在所述客户端上提供配置成拦截网络脚本请求的驱动器。
在一个示例性方面中,所述字节码包括所述脚本的至少一个操作码。
在一个示例性方面中,生成所述脚本的字节码包括:通过所述硬件处理器识别脚本命令,所述脚本命令负责将数据写入磁盘、与文件***的对象一起工作、以及执行程序的功能;通过所述硬件处理器基于识别的功能将识别的所述脚本命令分组为多个功能组;通过所述硬件处理器将二进制值分配给每个功能组;以及通过所述硬件处理器从所述二进制值生成所述字节码。
在一个示例性方面中,散列和包括模糊散列。
在一个示例性方面中,搜索匹配的散列和包括模糊搜索。
一种用于阻断恶意脚本的执行的示例性***包括:硬件处理器,所述硬件处理器配置成:拦截从客户端向服务器的对于脚本的请求;生成拦截的所述脚本的字节码;计算生成的所述字节码的散列和;确定所述字节码的所述散列和与存储在数据库中的恶意脚本和干净脚本的多个散列和之间的相似度;从所述数据库识别相似散列和,所述相似散列和与所述字节码的所述散列和的相似度在相似度阈值内;确定所述相似散列和的信任系数;基于所述相似散列和的所述相似度和所述信任系数确定请求的所述脚本是否为恶意的;以及阻断所述恶意脚本在所述客户端上的执行。
以上对本发明的示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键要素或主要要素,也不旨在勾画本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述目的,本发明的一个或多个方面包括在权利要求中所描述的且特别指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1示出用于阻断脚本执行的示例性***的图。
图2示出用于阻断脚本执行的示例性方法的图。
图3示出可用于实施本发明的***和方法的各个方面的计算机***的示例。
具体实施方式
本文中在用于阻断恶意脚本的执行的***、方法和计算机程序产品的背景下描述了本发明的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将容易地将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或相似的项目。
首先将介绍用在以下描述中的一些定义和概念。
恶意脚本可以为能够引起对计算机或对计算机用户的数据的伤害的脚本。所引起的伤害例如可以为出于偷窃目的而对计算机资源(包括存储在计算机上的数据)的未经授权的访问以及对资源的未经授权的使用,包括存储数据、执行计算等。
可信脚本可以为不引起对计算机或其用户的伤害的脚本。可信脚本可以被视为由可信软件制造商所开发的、从可信源(诸如可信网站的库中登记的网站)下载的脚本,或者标识符(例如脚本文件的MD5)被存储在可信脚本的库中的脚本。制造商的标识符(诸如数字证书)也可以被存储在可信脚本的库中。
图1示出了用于阻断由客户端(客户端-服务器架构的部件)向服务器请求的恶意脚本的执行的示例性***的图。该***包括服务器100、客户端101、拦截模块110、字节码计算模块120、散列和计算模块130、搜索模块140、分析模块150、判决作出模块160、散列和库170以及判决模版库180。
在一个示例性方面中,服务器100可以至少为包含因特网网页的网络服务器或包含脚本的文件服务器。在各个示例性方面中,脚本可以包括但不限于:以脚本语言编写的程序,该脚本语言诸如JavaScript、VBscript等;以VBA语言(用于应用程序的视觉化基础)编写且放在电子MS Office文件等中的程序;以Java语言编写的程序;以ActionScript语言编写的程序。可以以因特网网页(包含JavaScript代码、VBScript等)的形式或以文件(诸如包含VBA代码的MSOffice文件)的形式将脚本从服务器100传送到客户端101,该因特网网页被网络从因特网网站传输到客户端的浏览器,该文件在API功能的辅助下从文件管理器被传输到与文件一起工作的应用程序(诸如MS Office)。
在一个示例性方面中,拦截模块110可以配置成:拦截由客户端101向服务器100请求的脚本,将拦截的脚本传输到字节码计算模块120,以及当判决作出模块160宣判拦截的脚本为恶意的决定时阻断拦截的脚本的执行。
在一个示例性方面中,对正从服务器100传输到客户端101的脚本的拦截可以使用专门针对该目的而开发的驱动器来完成,且在于将该脚本的传输通道从客户端101重新路由到驱动器(例如通过改变接收数据的源的地址)。因此,由客户端101请求的且正由服务器100发送的脚本将终止于驱动器,而非客户端。例如,拦截对于操作***recv(其负责接收正通过网络传输的数据)的API函数的调用的驱动器能够接收所有到来的网络流量。在各个示例性方面中,阻断脚本执行可以包括但不限于:通过拦截对于对应的API函数的调用而防止拦截的脚本的运行;用先前准备的可信脚本替代用以执行的脚本;传输先前准备的数据,代替由正被启动的脚本所请求的数据。
在一个示例性方面中,字节码计算模块120可以配置成计算拦截的脚本的字节码。字节码可以构成一组脚本命令(操作码),该组脚本命令由包含在拦截的脚本中的至少一个命令组成。字节码计算模块120然后将字节码发送到散列和计算模块130。
在一个示例性方面中,拦截的脚本的字节码可以被如下形成:从脚本选择所有的脚本命令的序列;从所选的序列移除不实现先前指定功能(诸如将数据写入磁盘、与文件***的对象一起工作、运行应用程序等等)的一些脚本命令;将保留在所选的序列中的脚本命令组合为多组命令,每组包含至少一个脚本命令(例如,负责将数据写入文件、运行文件和删除文件的脚本命令的序列可以被组合为一个组);为每个脚本命令或每组脚本命令分配唯一的二字节值;获得的二字节值的序列构成计算的字节码。
在一个示例性方面中,散列和计算模块130可以配置成计算所计算的字节码的散列和并将所计算的散列和发送到搜索模块140。字节码的散列和可以通过如下方式来计算:计算模糊散列和,其中数据的模糊散列和构成从不同数据区域计算的散列和的集合,模糊散列和是针对上述不同数据区域计算的;以及模糊搜索,这是使用数据结构在集合中查找元素(欧几里得空间、树空间等的元素)的技术,使得可以在任何给定空间中利用小量的比较快速搜索所述集合的最靠近正被搜索的元素的元素。
在一个示例性方面中,搜索模块140可以配置成:从散列和库170选择至少一个组,在所述至少一个组中,至少一个散列和具有与由散列和计算模块130计算的散列和的相似度,该相似度对应于先前建立的相似度阈值;以及将所选的所述至少一个组和所确定的相似度发送到分析模块150。正被比较的散列和的相似度可以为通过比较散列和的方法确定的、表征被比较的散列和彼此相似的程度的数值。
散列和的相似度可以至少通过如下方式来计算:比较模糊散列和,即计算表征数据的相似性的数值,散列和是针对该数据计算的;计算模糊搜索度量,即计算正被搜索的集合的寻找元素和找到元素之间的距离。
在一个示例性方面中,分析模块150可以配置成:从判决模版库180选择包括至少一个组的至少一个判决模版、为数值的判决模版信任系数,该至少一个组与由搜索模块140选择的至少一个组的相似度对应于先前建立的阈值,其中判决模版构成包括来自散列和库170的至少一个组的数据的集合;以及将来自所选的判决模版的判决模版信任系数和所计算的相似度发送到判决作出模块160。
在一个示例性方面中,判决模版信任系数可以为从0(代表用于获得包含在给定判决模版中的组的所有脚本都是恶意的)到1(代表用于获得包含在给定判决模版中的组的所有脚本都是可信的)的数值。
在一个示例性方面中,多组的相似度可以至少通过如下方式来计算:求出多维向量的内积,其中多维向量的元素为包括在这些组中的数据;以及计算模糊搜索度量。
在一个示例性方面中,判决作出模块160配置成:基于从分析模块150获得的至少一个判决模版信任系数和从搜索模块140获得的散列和的至少一个相似度,关于由拦截模块110拦截的脚本是否为恶意的作出决定;以及将合适的决定发送到拦截模块110。
在一个示例性方面中,关于由拦截模块110拦截的脚本是否为恶意的决定的宣告可以通过将由分析模块150选择的至少一个判决模版信任系数和由散列和计算模块130计算的散列和的至少一个相似度的乘积的均值与建立的阈值相比较来执行。
在一个示例性方面中,散列和库170配置成存储构成数据的集合的至少一个组,该数据的集合包括:至少两个先前从恶意脚本的字节码计算的散列和,和针对包含在该组中的至少两个散列和的至少一个相似度。
在一个示例性方面中,判决模版库180配置成存储至少一个判决模版和为数值的判决模版信任系数,该至少一个判决模版为数据的集合,该数据的集合包括来自散列和库170的至少一个组。
在一个示例性方面中,来自判决模版库180的判决模版可以共同地包含来自散列和库170的所有组。
接下来将基于阻断包含在电子MS Word文件中的恶意脚本的示例来描述上述用于阻断脚本执行的***的操作。使用客户端101(其运行MS Word处理器)的用户试图从服务器100(其运行文件管理器)接收电子文件c:\mydoc.docx,该电子文件包含以VBA语言编写的恶意脚本。拦截模块110(为文件管理器的驱动器)拦截正被打开的文件的脚本且将其发送到字节码计算模块120。脚本的拦截由驱动器完成,原因在于驱动器拦截对于操作***的API函数(CreateFile、ReadFile等)的调用,该API函数负责从文件管理器接收数据。
字节码计算模块120计算拦截的脚本的字节码。为此:从拦截的脚本选择所有脚本命令的序列;从所选的序列移除不负责功能(该功能负责将数据写入磁盘、与文件***的对象一起工作、运行应用程序等等)的一些脚本命令;将保留在所选的序列中的脚本命令组合为多组命令(例如,负责将数据写入文件、运行文件和删除文件的脚本命令的序列可以被组合为一个组);为每个脚本命令或每组脚本命令分配唯一的二字节值;获得的二字节值的序列构成计算的字节码。
散列和计算模块130从接收的字节码计算模糊散列和(例如使用开源算法fuzzyHash),其为包含字节码分解而成的块的尺寸以及这些块的散列和的数据的集合。此后,散列和计算模块130将计算的散列和发送到搜索模块140。
搜索模块140从散列和库170选择多组散列和,其中一组构成包括如下项的数据的集合:先前计算的恶意脚本的字节码的散列和、包含在该组中的散列和之间的相似度。
在从散列和库170选择的过程中,针对包含在散列和库170中的每组的散列和执行与从散列和计算模块130接收的散列和的模糊比较(模糊搜索)。两个散列和的模糊比较的结果为范围从0到1的数,其表达被比较的散列和彼此相似的程度且被称为两个散列和的相似度(例如,从包含10%彼此不同的脚本命令的脚本的字节码所计算的模糊散列和的相似性将等于0.9)。在正被比较的组的至少一个散列和与从散列和计算模块130获得的散列和的相似度高于建立的阈值(例如0.85)的情况下,认为已经找到该组,且从散列和计算模块130获得的该散列和属于正被比较的该组。此后,将所选组和所确定的相似度发送到分析模块150。散列和库170中的组也被更新,即将从散列和计算模块130接收的散列和添加到所选组。这使得可以提高搜索用于后续拦截的脚本的组的准确度,这是因为更新的组包含恶意脚本的更多散列和。对于从文件c:\mydoc.docx拦截的脚本,选择包含脚本的散列和的组,该脚本包含如下功能:
·对于组#1–写入磁盘并设置文件属性(相似性0.98);
·对于组#2–阻断任务管理器、隐藏任务栏(相似性0.95);
·对于组#3–删除文件(相似性0.90);
·对于组#4–使用VBA工具创建Windows窗口(相似性0.87)。
所选组被发送到分析模块150。
分析模块150从判决模版库180选择判决模版,该模版包括从搜索模块140接收的组。在选择过程中,确定哪些组被包含在判决模版库180的每个判决模版中,以及这些组与从搜索模块140接收的组的相似程度。使用的比较方法可以为模糊搜索算法,其结果为范围从0到1的数,表征被比较的组的集合彼此相似的程度且被称为组的两个集合的相似度。对于从搜索模块140接收的组,选择如下判决模版:
·模版#1“阻断器”:模版信任系数0.1,包含组#1(相似度1.0)、组#2(相似度1.0)、组#3(相似度0.9);
·模版#2“昵称”:模版信任系数0.3,包含组#1(相似度0.7)、组#3(相似度1.0)、组#4(相似度0.95)。
所选的判决模版的模版信任系数以及由搜索模块140选择的组被发送到判决作出模块160。
判决作出模块160从接收的信任系数选择包含在所选模版中的组中的散列和的最小(对于“阻断器”判决模版为0.1)相似度(0.9)并计算信任系数与相似度的乘积(0.09),此后判决作出模块160将产生的值与最大容许值(诸如0.2)相比较,宣告拦截的脚本为恶意的且应当被阻断的判决,以及将该决定发送到用于阻断拦截的脚本的拦截模块110。此后,拦截模块110用空脚本替代拦截的脚本,不执行任何动作且仅需要Microsoft Word文件的正确操作,从而阻断拦截的脚本且防止在用户的计算机***上执行恶意脚本。
图2示出了阻断脚本执行的示例性方法的图。在步骤210中,拦截模块110拦截由客户端101向服务器100请求的至少一个脚本。在步骤220中,字节码计算模块120计算拦截的脚本的字节码。在步骤230中,散列和计算模块130计算字节码的散列和。在步骤240中,选择模块140从散列和库170选择至少一个组,在该组中,至少一个散列和与在步骤230中计算的散列和的相似度对应于建立的相似度阈值。在步骤250中,分析模块150从判决模版库180选择至少一个判决模版。该模版包括至少一个组,该至少一个组与由搜索模块140选择的至少一个组的相似度对应于建立的阈值。在步骤260中,判决作出模块160基于在步骤250中选择的至少一个判决模版信任系数和在步骤240中确定的至少一个散列和相似度、关于在步骤210中拦截的脚本是否为恶意的进行决定。在步骤270中,根据判决作出模块160关于拦截的脚本的恶意所进行的决定,拦截模块110阻断在步骤210中拦截的脚本。
接下来将基于阻断恶意脚本的示例来描述上述用于阻断脚本执行的方法的操作,该恶意脚本被包含在用户正使用浏览器观看的网站的页面上。用户借助客户端101(运行Internet Explorer浏览器)试图观看网页,即从服务器100接收因特网页面(为网站http://tasianits.com),该网页包含使用ActiveX以JavaScript语言编写的恶意脚本。
在步骤210中,拦截模块110拦截正被打开的文件的脚本并将其发送到字节码计算模块120。
在步骤220中,字节码计算模块120计算拦截的脚本的字节码。为此,从拦截的脚本选择和与用户的计算机***交互的操作(诸如写入磁盘等)连接的操作的命令,向每个所选操作分配两字节标识符(所谓的字节码),以及由形成的标识符组配字节序列,该字节序列构成字节码。此后,字节码计算模块120将所计算的字节码发送到散列和计算模块130。
在步骤230中,散列和计算模块130从接收的字节码计算模糊散列和(例如使用开源算法fuzzyHash),该模糊散列和为数据的集合,该数据的集合包含表征为了计算散列和将字节码分解而成的块的尺寸的数、以及从字节码计算的两个散列和。此后,散列和计算模块130将计算的散列和发送到搜索模块140。
在步骤240中,搜索模块140从散列和库170选择多组散列和。为此,针对包含在散列和库170中的每组的散列和执行与从散列和计算模块130接收的散列和的模糊比较。两个散列和的模糊比较的结果为范围从0到1的数,其表达被比较的散列和彼此相似的程度且被称为两个散列和的相似度。正在被比较的组的至少一个散列和与从散列和计算模块130获得的散列和的相似度高于建立的阈值(例如0.5)的情况下,认为该组已被找到,且从散列和计算模块130获得的散列和属于正被比较的该组。此后,将所选组和所确定的相似度发送到分析模块150。散列和库170中的组也被更新,即将从散列和计算模块130接收的散列和添加到所选组。这使得可以提高搜索用于后续拦截的脚本的组的有效性。对于来自网站http://tasianits.com的拦截的脚本,选择包含脚本的散列和的组,该脚本包含如下功能:
·对于组#1–写入磁盘并在用户的计算机***上执行文件(相似性0.7);
·对于组#2–使用ActiveX易损性设置操作(相似性1.0)。
在步骤250中,分析模块150从判决模版库180选择判决模版,该判决模版包括从搜索模块140接收的组。为此,确定在来自判决模版库180的每个判决模版中包含哪些组、以及这些组与从搜索模块140接收的组的相似程度。所使用的比较方法可以为模糊搜索算法,其结果为在范围0到1中的数,其表征被比较的组的集合彼此相似的程度且被称为组的两个集合的相似度。对于从搜索模块140接收的组,选择如下判决模版:模版#1“注入器”:模版信任系数0.0,包含组#1(相似度1.0)、组#2(相似度1.0)。将所选的判决模版的模版信任系数发送到判决作出模块160。
在步骤260中,判决作出模块160基于所接收的模版信任系数和相似度计算模版信任系数(0.0)和相似度(0.85)的乘积,此后,判决作出模块160将产生值与最大容许值(0.15)相比较、宣告拦截的脚本为恶意的且应当被阻断的判决、以及将决定发送到用于阻断拦截的脚本的拦截模块110。
此后,在步骤270中,拦截模块阻断拦截的脚本,从而防止在用户的计算机***上执行恶意脚本。
图3示出其上可实施所公开的***和方法的通用计算机***(其可以是个人计算机或服务器)的示例。如所示,该计算机***包括中央处理单元21、***存储器22和连接各种***部件的***总线23,各种***部件包括与中央处理单元21相关联的存储器。***总线23像从现有技术已知的任何总线结构一样来实现,该任何总线结构接着包括总线存储器或总线存储器控制器、***总线和本地总线,***总线23能够与任何其它的总线架构交互。***存储器包括永久性存储器(ROM)24和随机存取存储器(Random-Access Memory,RAM)25。基本输入/输出***(Basic Input/Output System,BIOS)26包括确保在个人计算机20的元件之间的信息传输的基本程序,例如在使用ROM 24加载操作***时的那些基本程序。
个人计算机20接着包括用于数据的读取和写入的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28以及用于在可移动光盘31(例如CD-ROM、DVD-ROM和其它的光学信息媒介)上读取和写入的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到***总线23。驱动器和对应的计算机信息媒介为用于存储个人计算机20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
本发明提供了使用硬盘27、可移动磁盘29和可移动光盘31的***的实现方式,但是应当理解的是,可以采用能够存储以计算机可读的形式的数据的其它类型的计算机信息媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等等),计算机信息媒介56经由控制器55连接到***总线23。
计算机20具有保留所记录的操作***35的文件***36,并且还具有额外的程序应用37、其它程序模块38和程序数据39。用户能够通过使用输入设备(键盘40、鼠标42)将命令和信息输入到个人计算机20中。可以使用其它的输入设备(未示出):麦克风、操纵杆、游戏控制器、扫描器等等。这些输入设备通常通过串行端口46***到计算机***20中,串行端口46转而连接到***总线,但是这些输入设备可以以其它的方式连接,例如在并行端口、游戏端口或通用串行总线(Universal Serial Bus,USB)的帮助下得以连接。监控器47或其它类型的显示设备也通过接口(例如视频适配器48)连接到***总线23。除了监控器47,个人计算机还可以装备有其它的***输出设备(未示出),例如扬声器、打印机等等。
个人计算机20能够使用与一个或多个远程计算机49的网络连接而工作在网络环境中。一个或多个远程计算机49也是个人计算机或服务器,其具有在描述个人计算机20的性质时使用的上述元件中的大多数元件或全部元件。其它的设备也可以存在于计算机网络中,例如路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,个人计算机20可以采用调制解调器54或其它的用于提供与广域计算机网络(例如因特网)的通信的模块。调制解调器54是内部设备或外部设备,通过串行端口46连接到***总线23。应当注意的是,网络连接仅仅是示例并且不需要描述网络的准确配置,即实际上具有通过技术通信模块建立一个计算机到另一个计算机的连接的其它方式。
在各个方面中,本文所描述的***和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在永久性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的***和方法可以按照模块来处理。本文所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器***和实现模块功能的指令组(该指令组在被执行时将微处理器***转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图3中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文所列举的任何特定的实现方式。
为了清楚起见,本文没有公开各个方面的所有常见特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。本文所公开的各个方面包括本文以说明性方式所提到的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文所公开的发明构思的前提下,相比于上文所提及的内容而言的更多的修改是可行的。

Claims (12)

1.一种用于阻断恶意脚本的执行的方法,所述方法包括:
通过硬件处理器拦截从客户端向服务器的对于脚本的请求;
通过所述硬件处理器生成拦截的所述脚本的字节码;
通过所述硬件处理器计算生成的所述字节码的散列和;
通过所述硬件处理器确定所述字节码的所述散列和与存储在数据库中的恶意脚本和干净脚本的多个散列和之间的相似度;
通过所述硬件处理器从所述数据库识别相似散列和,所述相似散列和与所述字节码的所述散列和的相似度在相似度阈值内;
通过所述硬件处理器确定所述相似散列和的信任系数;
通过所述硬件处理器基于所述相似散列和的所述相似度和所述信任系数确定请求的所述脚本是否为恶意的;以及
通过所述硬件处理器阻断所述恶意脚本在所述客户端上的执行。
2.如权利要求1所述的方法,其中,拦截对于脚本的请求包括:
在所述客户端上提供配置成拦截网络脚本请求的驱动器。
3.如权利要求1所述的方法,其中,所述字节码包括所述脚本的至少一个操作码。
4.如权利要求1所述的方法,其中,生成所述脚本的字节码包括:
通过所述硬件处理器识别脚本命令,所述脚本命令负责将数据写入磁盘、与文件***的对象一起工作、以及执行程序的功能;
通过所述硬件处理器基于识别的功能将识别的所述脚本命令分组为多个功能组;
通过所述硬件处理器将二进制值分配给每个功能组;以及
通过所述硬件处理器从所述二进制值生成所述字节码。
5.如权利要求1所述的方法,其中,散列和包括模糊散列。
6.如权利要求1所述的方法,其中,搜索匹配的散列和包括模糊搜索。
7.一种用于阻断恶意脚本的执行的***,所述***包括:
硬件处理器,所述硬件处理器配置成:
拦截从客户端向服务器的对于脚本的请求;
生成拦截的所述脚本的字节码;
计算生成的所述字节码的散列和;
确定所述字节码的所述散列和与存储在数据库中的恶意脚本和干净脚本的多个散列和之间的相似度;
从所述数据库识别相似散列和,所述相似散列和与所述字节码的所述散列和的相似度在相似度阈值内;
确定所述相似散列和的信任系数;
基于所述相似散列和的所述相似度和所述信任系数确定请求的所述脚本是否为恶意的;以及
阻断所述恶意脚本在所述客户端上的执行。
8.如权利要求7所述的***,其中,拦截对于脚本的请求包括:
在所述客户端上提供配置成拦截网络脚本请求的驱动器。
9.如权利要求7所述的***,其中,所述字节码包括所述脚本的至少一个操作码。
10.如权利要求7所述的***,其中,生成所述脚本的字节码包括:
识别脚本命令,所述脚本命令负责将数据写入磁盘、与文件***的对象一起工作、以及执行程序的功能;
基于识别的功能将识别的所述脚本命令分组为多个功能组;
将二进制值分配给每个功能组;以及
从所述二进制值生成所述字节码。
11.如权利要求7所述的***,其中,散列和包括模糊散列。
12.如权利要求7所述的***,其中,搜索匹配的散列和包括模糊搜索。
CN201610862858.8A 2015-09-30 2016-09-28 用于阻断脚本执行的***和方法 Active CN107066883B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2015141537A RU2606564C1 (ru) 2015-09-30 2015-09-30 Система и способ блокировки выполнения сценариев
RU2015141537 2015-09-30
US15/062,455 US9648032B2 (en) 2015-09-30 2016-03-07 System and method for blocking execution of scripts
US15/062,455 2016-03-07

Publications (2)

Publication Number Publication Date
CN107066883A true CN107066883A (zh) 2017-08-18
CN107066883B CN107066883B (zh) 2020-04-07

Family

ID=58409392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610862858.8A Active CN107066883B (zh) 2015-09-30 2016-09-28 用于阻断脚本执行的***和方法

Country Status (4)

Country Link
US (1) US9648032B2 (zh)
JP (2) JP6568504B2 (zh)
CN (1) CN107066883B (zh)
RU (1) RU2606564C1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108401253A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 一种应用信息识别方法、装置以及***
CN113158146A (zh) * 2020-01-07 2021-07-23 网联清算有限公司 脚本管理方法、脚本管理平台、计算设备及介质
CN114268475A (zh) * 2021-12-13 2022-04-01 北京知道创宇信息技术股份有限公司 恶意脚本拦截方法、***、服务器及计算机可读存储介质
EP4246352A1 (en) * 2022-03-17 2023-09-20 AO Kaspersky Lab System and method for detecting a harmful script based on a set of hash codes

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754948B2 (en) * 2017-04-18 2020-08-25 Cylance Inc. Protecting devices from malicious files based on n-gram processing of sequential data
KR102006242B1 (ko) * 2017-09-29 2019-08-06 주식회사 인사이너리 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
RU2708356C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Система и способ двухэтапной классификации файлов
US10819733B2 (en) * 2018-07-24 2020-10-27 EMC IP Holding Company LLC Identifying vulnerabilities in processing nodes
US11188622B2 (en) * 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US20210026969A1 (en) * 2019-07-23 2021-01-28 Chameleonx Ltd Detection and prevention of malicious script attacks using behavioral analysis of run-time script execution events
CN110674497B (zh) * 2019-09-27 2021-07-02 厦门安胜网络科技有限公司 一种恶意程序相似度计算的方法和装置
CN112783615B (zh) * 2019-11-08 2024-03-01 北京沃东天骏信息技术有限公司 一种数据处理任务的清理方法和装置
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11531675B1 (en) * 2021-07-19 2022-12-20 Oracle International Corporation Techniques for linking data to provide improved searching capabilities
US20230185915A1 (en) * 2021-12-14 2023-06-15 Palo Alto Networks, Inc. Detecting microsoft windows installer malware using text classification models
CN114430339A (zh) * 2021-12-25 2022-05-03 深圳太极云软技术有限公司 一种网络请求的过滤方法、装置、终端和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1986120A1 (en) * 2007-04-23 2008-10-29 Secure Computing Corporation Systems, apparatus, and methods for detecting malware
CN102609649A (zh) * 2012-02-06 2012-07-25 北京百度网讯科技有限公司 一种自动采集恶意软件的方法和装置
US20130111591A1 (en) * 2011-11-02 2013-05-02 Vlad I. Topan Fuzzy Whitelisting Anti-Malware Systems and Methods

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707634B2 (en) * 2004-01-30 2010-04-27 Microsoft Corporation System and method for detecting malware in executable scripts according to its functionality
US8037535B2 (en) * 2004-08-13 2011-10-11 Georgetown University System and method for detecting malicious executable code
US7590589B2 (en) * 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7801840B2 (en) * 2006-07-28 2010-09-21 Symantec Corporation Threat identification utilizing fuzzy logic analysis
JP2010009269A (ja) * 2008-06-26 2010-01-14 Iwate Univ コンピュータウィルス検出装置、コンピュータウィルス検出方法及びコンピュータウィルス検出プログラム
US9235704B2 (en) * 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US20100205297A1 (en) * 2009-02-11 2010-08-12 Gurusamy Sarathy Systems and methods for dynamic detection of anonymizing proxies
US8464345B2 (en) * 2010-04-28 2013-06-11 Symantec Corporation Behavioral signature generation using clustering
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
RU2446459C1 (ru) * 2010-07-23 2012-03-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки веб-ресурсов на наличие вредоносных компонент
RU2444056C1 (ru) * 2010-11-01 2012-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ ускорения решения проблем за счет накопления статистической информации
JP5961183B2 (ja) * 2010-12-01 2016-08-02 シスコ テクノロジー,インコーポレイテッド 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法
US8997233B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US9032526B2 (en) * 2011-05-12 2015-05-12 Microsoft Technology Licensing, Llc Emulating mixed-code programs using a virtual machine instance
US9300682B2 (en) * 2013-08-09 2016-03-29 Lockheed Martin Corporation Composite analysis of executable content across enterprise network
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9148441B1 (en) * 2013-12-23 2015-09-29 Symantec Corporation Systems and methods for adjusting suspiciousness scores in event-correlation graphs
RU2580032C2 (ru) * 2014-08-01 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ определения категории доверенности приложения

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1986120A1 (en) * 2007-04-23 2008-10-29 Secure Computing Corporation Systems, apparatus, and methods for detecting malware
US20130111591A1 (en) * 2011-11-02 2013-05-02 Vlad I. Topan Fuzzy Whitelisting Anti-Malware Systems and Methods
CN102609649A (zh) * 2012-02-06 2012-07-25 北京百度网讯科技有限公司 一种自动采集恶意软件的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108401253A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 一种应用信息识别方法、装置以及***
CN113158146A (zh) * 2020-01-07 2021-07-23 网联清算有限公司 脚本管理方法、脚本管理平台、计算设备及介质
CN114268475A (zh) * 2021-12-13 2022-04-01 北京知道创宇信息技术股份有限公司 恶意脚本拦截方法、***、服务器及计算机可读存储介质
EP4246352A1 (en) * 2022-03-17 2023-09-20 AO Kaspersky Lab System and method for detecting a harmful script based on a set of hash codes

Also Published As

Publication number Publication date
RU2606564C1 (ru) 2017-01-10
JP2019023918A (ja) 2019-02-14
CN107066883B (zh) 2020-04-07
US20170093893A1 (en) 2017-03-30
JP6568504B2 (ja) 2019-08-28
JP2017097843A (ja) 2017-06-01
US9648032B2 (en) 2017-05-09
JP6670907B2 (ja) 2020-03-25

Similar Documents

Publication Publication Date Title
CN107066883A (zh) 用于阻断脚本执行的***和方法
Kim et al. Improvement of malware detection and classification using API call sequence alignment and visualization
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
CN109074454B (zh) 基于赝象对恶意软件自动分组
US9135443B2 (en) Identifying malicious threads
CN111382434B (zh) 用于检测恶意文件的***和方法
Zhao et al. Malicious executables classification based on behavioral factor analysis
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
KR20150138229A (ko) 하드웨어-기반 마이크로-아키텍처 데이터를 이용한 이상 프로그램 실행의 검출
Aldauiji et al. Utilizing cyber threat hunting techniques to find ransomware attacks: A survey of the state of the art
Zakeri et al. A static heuristic approach to detecting malware targets
Verma et al. An Android Malware Detection Framework-based on Permissions and Intents.
Naseer et al. Malware detection: issues and challenges
KR20180081053A (ko) 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들
JP6322240B2 (ja) フィッシング・スクリプトを検出するためのシステム及び方法
US11423099B2 (en) Classification apparatus, classification method, and classification program
Sharma et al. Ransomware detection, prevention and protection in IoT devices using ML techniques based on dynamic analysis approach
Fui et al. A dynamic malware detection in cloud platform
Jawhar A Survey on Malware Attacks Analysis and Detected
Berger et al. MaMaDroid2. 0--The Holes of Control Flow Graphs
EP3151149B1 (en) System and method for blocking execution of scripts
Yousuf et al. Multi-feature Dataset for Windows PE Malware Classification
Al Shamsi Mapping, Exploration, and Detection Strategies for Malware Universe
Aneja et al. Malware Mobile Application Detection Using Blockchain and Machine Learning

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
GR01 Patent grant
GR01 Patent grant