CN111753294A - 恶意脚本的行为检测 - Google Patents
恶意脚本的行为检测 Download PDFInfo
- Publication number
- CN111753294A CN111753294A CN201910903057.5A CN201910903057A CN111753294A CN 111753294 A CN111753294 A CN 111753294A CN 201910903057 A CN201910903057 A CN 201910903057A CN 111753294 A CN111753294 A CN 111753294A
- Authority
- CN
- China
- Prior art keywords
- script
- expressions
- attributes
- data structure
- content
- 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
Links
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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
- G06F8/437—Type checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例涉及恶意脚本的行为检测。脚本分析平台可以获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式。脚本分析平台可以解析脚本以生成数据结构,并且可以遍历数据结构以确定一个或多个函数并确定一个或多个表达式的属性,其中遍历数据结构包括评估一个或多个表达式的一个或多个常量子表达式。脚本分析平台可以分析一个或多个表达式的属性以确定脚本是否表现出恶意行为。脚本分析平台可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
Description
技术领域
本公开的实施例涉及脚本的检测和分析,更具体地涉及针对恶意脚本的行为检测和分析。
背景技术
反恶意软件设备可以分析脚本以确定脚本是否是恶意脚本。例如,反恶意软件设备可以分析脚本以查找已知与恶意行为相关联的硬编码模式。
发明内容
根据一些实现,一种方法可以包括:由设备获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式;由设备解析脚本以生成数据结构,其中数据结构表示脚本的语法结构;由设备遍历数据结构以确定一个或多个函数;由设备基于一个或多个函数遍历数据结构以确定一个或多个表达式的属性,其中遍历数据结构以确定一个或多个表达式的属性包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的属性;由设备分析一个或多个表达式的属性以确定脚本是否表现出恶意行为;并且基于确定脚本是否表现出恶意行为,由设备使得关于脚本或内容的动作被执行。
根据一些实现,设备可以包括:一个或多个存储器和一个或多个处理器,用以:从内容收集设备获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式;解析脚本以生成数据结构;遍历数据结构以确定一个或多个函数;基于一个或多个函数遍历数据结构以确定一个或多个表达式的一个或多个属性,其中遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性;获取描述恶意行为的一个或多个性质的信息;基于该信息分析一个或多个表达式的一个或多个属性,以确定脚本是否表现出恶意行为;以及基于确定脚本是否表现出恶意行为,使得关于脚本或内容的动作被执行。
根据一些实现,非瞬态计算机可读介质可以存储包括一个或多个指令的指令,该一个或多个指令在由一个或多个处理器执行时可以使得一个或多个处理器:获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式;在获得脚本之后,分配存储器的块;解析脚本以生成可以被存储在存储器的块中的数据结构,其中数据结构表示至少一些脚本的语法结构;将数据结构存储在存储器的块中;遍历数据结构以确定一个或多个函数;基于一个或多个函数,遍历数据结构以确定一个或多个表达式的一个或多个属性,其中遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性;分析一个或多个表达式的一个或多个属性,以确定脚本是否表现出恶意行为;以及基于确定脚本是否表现出恶意行为,使得关于脚本或内容的动作被执行。
附图说明
图1A-图1D是本文描述的一个或多个示例实现的图。
图2是在其中可以实现本文描述的系统和/或方法的示例环境的图。
图3A和图3B是图2的一个或多个设备的示例组件的图。
图4-图6是用于恶意脚本的行为检测的示例过程的流程图。
具体实施方式
以下对示例实现的详细描述参考附图。不同附图中的相同附图标号可以标识相同或相似的元件。
反恶意软件设备使用不同的方法来检测与内容(例如,文档文件、便携式文档格式(PDF)文件、电子邮件文档文件等)相关联的恶意脚本。例如,反恶意软件设备可以分析脚本以查找已知与恶意行为相关联的硬编码模式(例如,使用基于签名的分析方法)。然而,在一些情况下,恶意脚本可能具有多态属性,诸如自我修改代码行为,其会混淆已知与恶意行为相关联的硬编码模式。此外,恶意脚本可以调用执行脚本的运行时环境的值、函数、对象、元素等,这会进一步混淆硬编码模式。附加地,恶意脚本连续变化和演进,这使得标识和检测新的硬编码模式变得困难。
因此,在许多情况下,反恶意软件设备可能不检测具有多态属性的恶意脚本,使用运行时环境调用,和/或表现出先前未被标识的其他新的恶意属性。这可能导致反恶意软件设备和/或与反恶意软件设备相关联的附加设备被恶意脚本感染。这可能使得反恶意软件设备和/或附加设备使用资源(例如,处理资源、存储器资源、联网资源、电力资源等)来将恶意脚本复制并传播到其他设备,下载并传播附加恶意代码,执行一个或多个恶意动作等。另外,反恶意软件设备、附加设备和/或其他设备可以使用资源来搜索、包含和/或根除恶意脚本和/或修复由恶意脚本造成的损害。
本文描述的一些实现提供了一种脚本分析平台设备,其能够确定和分析脚本的一个或多个行为属性以确定脚本是否是恶意的。在一些实现中,脚本分析平台可以获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式。在一些实现中,脚本分析平台可以解析脚本以生成数据结构,并且可以遍历数据结构以确定一个或多个函数并确定一个或多个表达式的属性。在一些实现中,脚本分析平台可以评估一个或多个表达式的一个或多个常量子表达式,以有助于确定一个或多个表达式的属性。在一些实现中,脚本分析平台可以分析一个或多个表达式的属性以确定脚本是否表现出恶意行为。在一些实现中,脚本分析平台可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
以这种方式,本文描述的一些实现可以节省脚本分析平台和/或与脚本分析相关联的附加设备的资源(例如,处理资源、存储器资源、联网资源、电力资源等),否则这些附加资源将由于脚本分析平台而被使用,和/或附加设备将被无法使用基于签名的分析方法检测到的恶意脚本感染。例如,脚本分析平台可以基于脚本的一个或多个表达式的属性来确定脚本表现出恶意行为,使得不必要标识脚本的硬编码模式。此外,脚本分析平台可以自动执行诸如删除和/或隔离动作之类的动作,以在脚本分析平台将恶意脚本标识为表现出恶意行为时限制恶意脚本的扩散。这可以节省脚本分析平台、附加设备和/或其他设备的资源,这些资源否则将被用来搜索、包含和/或根除恶意脚本和/或修复由恶意脚本造成的损害。
图1A-图1D是本文描述的一个或多个示例实现100的图。(多个)示例实现100可以包括内容收集设备和脚本分析平台。内容收集设备和/或脚本分析平台可以是计算设备、服务器设备、云计算设备等。在一些实现中,内容收集设备和脚本分析平台可以经由诸如有线网络(例如,互联网或另一数据网络)、无线网络(例如,无线局域网、无线广域网、蜂窝网络等)等之类的网络连接。
本文描述的一些示例实现涉及与单个脚本分析平台通信的单个内容收集设备。在一些实现中,多个内容收集设备可以与一个或多个脚本分析平台通信。在一些实现中,内容收集设备的一个或多个函数可以由脚本分析平台执行而不是由内容收集设备执行,或者除了由内容收集设备执行之外还可以由脚本分析平台执行。在一些实现中,脚本分析平台的一个或多个函数可以由内容收集设备执行而不是由脚本分析平台执行,或者除了由脚本分析平台执行之外还可以由内容收集设备执行。
如图1A中和附图标号102所示,内容收集设备可以从一个或多个源(图1A中未示出)获得内容。内容可以是文档文件,诸如文本文档文件(例如,.txt文件)、微软办公软件文档文件(例如,.docx、.xlsx文件、.pptx文件等)、便携式文档格式(PDF)文件(例如,.pdf文件)、电子邮件文档文件(例如,.eml文件、.msg文件等);图像文件(例如,.jpeg文件、.tiff文件、.gif文件等)、视频文件(例如,.mpg文件、.avi文件、.mov文件等);音频文件(例如,.mp3文件、.aac文件、.aiff文件等);网页文件(例如,.html文件、.htm文件、.css文件等)等。
例如,在一些实现中,内容收集设备可以是电子邮件防火墙设备,其过滤去往网络上的一个或多个设备的传入电子邮件流量,并且可以通过从电子邮件服务器设备接收电子邮件来获得电子邮件。作为另一示例,内容收集设备可以是为网络上的一个或多个设备下载文件的文件下载收集设备,并且可以通过从另一设备下载文件来获得文件。在另一示例中,内容收集设备可以对网页进行抓爬(例如,访问和搜索网页)以获得网页文件。
在一些实现中,内容可以包括一个或多个脚本。例如,脚本可以被附加到内容(例如,作为电子邮件附件),被嵌入在内容中(例如,被嵌入在网页的HTML代码中),被插入到内容中(例如,作为宏被添加到文档文件中)等。该脚本可以是包括一个或多个指令的文件,该指令可以由计算设备执行而无需用户交互。脚本可以是特定类型的脚本(例如,脚本可以使用特定计算机语言来编程)。例如,脚本可以是JavaScript脚本、Visual Basic(VB)脚本、Visual Basic for Applications(VBA)脚本、Jscript脚本、PowerShell脚本等。
脚本可以包括一个或多个函数(例如,执行特定任务的脚本的一个或多个命名部分)。例如,如图1A中所示,示例脚本包括被称为“test3”的函数。函数可以包括一个或多个表达式(例如,分别表示指令和/或值的一个或多个语句)。例如,如图1A中所示,示例脚本的“test3”函数的表达式包括:
if(s)v=ar[z];
s=s+cc[v+4];
表达式可以包括一个或多个常量子表达式。常量子表达式可以是常量数值(例如,5、3.14、-12等)、常量字符串值(例如,“你好”、“再见”等)、常量数值和/或常量字符串值(例如,“7+2”、“‘hello’+“world’”等)的组合、用至少一个参数调用的与脚本的计算机语言相关联的库函数调用(例如,与JavaScript计算机语言相关联的replace()函数调用、split()函数调用、call()函数调用等),该至少一个参数是常量数值、常量字符串值、常量数值和/或常量字符串值的组合等。
如附图标号104所示,内容收集设备可以从内容中移除一个或多个脚本。例如,内容收集设备可以搜索内容以标识一个或多个脚本并从内容中剥离一个或多个脚本(例如,从电子邮件中移除一个或多个附件,从网页的HTML代码中移除脚本代码,从文档文件中移除一个或多个宏等)。如附图标号106所示,内容收集设备可以将一个或多个脚本发送到脚本分析平台和/或脚本分析平台可以从内容收集设备获得一个或多个脚本。
如图1B中和附图标号108所示,脚本分析平台可以解析一个或多个脚本。例如,脚本分析平台可以解析一个或多个脚本的脚本以生成数据结构。数据结构可以表示脚本的语法结构,诸如抽象语法树(AST)。例如,如图1B中所示,脚本分析平台可以解析示例脚本以生成示例数据结构。
在一些实现中,脚本分析平台可以分配存储器的块以连续地存储数据结构的两个或更多个元素(例如,分支、节点等)。以这种方式,脚本分析平台可以通过单个解除分配调用来解除分配与两个或更多个元素相关联的存储器,这可以在脚本分析平台完成其对脚本的分析之后提高脚本分析平台的速度性能。在一些实现中,脚本分析平台可以解析脚本的一部分,以创建可以被存储在存储器块中的数据结构。即,脚本分析平台可以创建表示脚本的一些(但不一定是全部)的数据结构,使得脚本分析平台可以将数据结构存储在存储器块中。
如图1C中和附图标号110所示,脚本分析平台可以遍历数据结构。在一些实现中,脚本分析平台可以遍历数据结构以确定脚本的一个或多个函数。例如,脚本分析平台可以遍历数据结构以提取脚本的一个或多个函数的名称。以这种方式,脚本分析平台可以与本文描述的附加遍历相关联地跟踪脚本分析平台访问了哪些函数。然后,脚本分析平台可以访问在附加遍历期间尚未被访问的任何函数,以确保遍历整个数据结构。
在一些实现中,脚本分析平台可以遍历数据结构以确定脚本的一个或多个表达式的属性。为此,脚本分析平台可以确定与一个或多个表达式相关联的(例如,数据结构的)一个或多个分支和/或一个或多个节点,并遍历一个或多个分支的每个分支和/或一个或多个节点的每个节点。此外,当脚本分析平台遍历数据结构(例如,遍历每个分支和与每个分支相关联的任何节点)时,脚本分析平台可以维持与一个或多个表达式相关联的调用堆栈,并且可以维持用于与脚本的一个或多个表达式相关联的一个或多个标识符的一个或多个符号表。例如,如图1C中所示,脚本分析平台可以遍历示例数据结构并维持示例调用堆栈(未示出)和示例符号表。
对于与符号表相关联的标识符,符号表可以包括关于标识符的信息,诸如标识符的类型(例如,标识符是数字、字符串、对象等)、标识符的范围(例如,标识符所属的函数)、对标识符的指派值的引用(例如,对变量值的引用、对对象值的引用、对数组值的引用等)、是否在循环中指派了指派值(例如,“for”循环、“while”循环等)、是否通过非平凡指派调用指派了指派值(例如,对标识符的值的指派是否包括对满足阈值(例如,在其他标识符、函数调用等的数目大于或等于阈值时,指派调用是非平凡的)的多个其他标识符、函数调用等的附加引用(例如,当其他标识符,函数调用等的数量大于或等于阈值时,指派调用是非平凡的)、标识符是否是自修改的(例如,标识符是否在将值指派给标识符时引用标识符)等。例如,如图1C中所示,示例符号表包括与示例脚本的表达式相关联的针对标识符“z”、“v”和“s”的条目。针对“z”标识符的条目包括指示“z”标识符被指派了参考值“i”并且指派发生在循环中的信息。“v”标识符的条目包括指示“v”标识符被指派了参考值“ar[z]”并且指派发生在循环中的信息。“s”标识符的条目包括指示“s”被指派了自修改值并且指派发生在循环中的信息。
在一些实现中,一个或多个表达式的一个或多个属性可以被包括在一个或多个符号表中(例如,包括在一个或多个符号表中的信息可以指示一个或多个表达式的一个或多个属性)。附加地,或备选地,脚本分析平台可以基于包括在一个或多个符号表中的信息来确定脚本的一个或多个表达式的一个或多个属性。例如,对于包括一个或多个标识符的表达式,表达式的一个或多个属性可以包括关于包括在一个或多个符号表中的一个或多个标识符的每个标识符的相应信息。
在一些实现中,当脚本分析平台遍历数据结构时,脚本分析平台可以评估一个或多个表达式的一个或多个常量子表达式。例如,当常量子表达式包括指派“c=1”(例如,将常量数值“1”指派给标识符“c”)时,脚本分析平台可以通过更新符号表来评估常量子表达式,以指示标识符“c”具有值“1”,而不是对值“1”的引用。作为另一示例,当常量子表达式包括对“b=String.fromCharCode(c+96)”的调用(例如,将数字值转换为字符的Javascript库函数调用)时,脚本分析平台可以通过更新符号表来评估常量子表达式,以指示标识符“b”具有字符串值“a”(例如,因为c具有值“1”并且针对“a”的统一字符编码标准(Unicode)字符代码是“97”)而不是对字符串值“c+96”的引用。以这种方式评估一个或多个常量子表达式提供了关于一个或多个表达式的附加信息,同时限制了无意中使得脚本执行恶意行为的可能性。这可以有助于脚本分析平台确定一个或多个表达式的属性。
如图1C中和附图标号112所示,脚本分析平台可以获得描述恶意行为的一个或多个性质的信息。例如,脚本分析平台可以获得描述一个或多个性质的描述文件(例如,使用计算机代码、文本描述等)。描述文件还可以包括一个或多个性质例外(exception)的描述,诸如当通常与恶意行为相关联的性质与恶意行为不相关时。例如,使用自修改代码的脚本打包程序(packer)是自修改代码行为是恶意行为属性的规则的例外。在一些实现中,诸如与脚本分析平台相关联的客户端设备之类的不同设备可以将信息发送到脚本分析平台。以这种方式,可以用关于恶意行为性质的最新信息周期性地更新脚本分析平台(例如,在预定的基础上,在按需的基础上、在触发的基础上、在自组织的基础上等)。这使得脚本分析平台能够更有效地标识恶意行为的演进性质。这还减少了否则升级脚本分析平台所需的时间和资源(例如,维持和更新脚本分析平台的资源)。
如附图标号114所示,脚本分析平台可以分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为,诸如自修改代码行为。在一些实现中,恶意行为可以具有一个或多个性质,诸如使用复杂数组访问来访问全局对象;通过计算复杂表达式来调用函数;解码字符串值;通过执行复杂的字符串计算来调用评估或执行函数等。在一些实现中,脚本分析平台可以基于脚本分析平台获得的信息来标识和/或确定一个或多个性质。例如,脚本分析平台可以解析描述文件以确定恶意行为的一个或多个性质的描述。
在一些实现中,脚本分析平台可以在一个或多个符号表中搜索与恶意行为的性质相对应的属性。例如,脚本分析平台可以在符号表中搜索指示标识符被指派了解码字符串值的属性。在一些实现中,脚本分析平台可以确定一个或多个表达式的一个或多个属性对应于恶意行为的至少一个性质,并且因此脚本表现出恶意行为。附加地,或备选地,脚本分析平台可以确定一个或多个属性不对应于恶意行为的一个或多个性质中的任何性质,并且因此脚本没有表现出恶意行为。
在一些实现中,脚本分析平台可以标识属性集合(例如,至少一个属性),其中属性集合的每个属性对应于恶意行为的一个或多个性质。脚本分析平台可以分析属性集合(例如,组合地分析属性集合的每个属性)以确定该脚本是否表现出恶意行为。例如,脚本分析平台可以确定属性集合是否对应于描述文件的一个或多个性质例外,以确定该脚本是否表现出恶意行为。
如附图标号116所示,脚本分析平台可以使得关于脚本或内容的动作被执行。在一些实现中,脚本分析平台可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。例如,脚本分析平台可以通过执行动作或使得另一设备执行动作来使得动作被执行。在一些实现中,脚本分析平台可以生成包括用以执行动作的一个或多个指令的消息。脚本分析平台可以将消息发送到不同的设备,诸如内容收集设备,并且不同的设备可以接收消息,这可以使得不同的设备读取消息并执行一个或多个指令以执行动作。
在一些实现中,脚本分析平台可以基于确定脚本表现出恶意行为而使得:内容或脚本从内容收集设备被移除;内容或脚本在内容收集设备上被隔离,以禁止访问内容或脚本;经由网络执行搜索在一个或多个其他设备上的内容或脚本的其他实例以及要被删除的其他实例;针对恶意行为而分析一个或多个其他设备;针对一个或多个其他设备的网络连接性的修改(例如,限制对局域网、因特网、电子邮件等的访问)等。附加地,或备选地,脚本分析平台可以基于确定脚本没有表现出恶意行为,使得内容收集设备将内容或脚本发送到不同的设备(例如,使内容收集设备发送内容或脚本到针对内容或脚本的原始目标设备)。
如上所指出,图1A-图1D仅作为一个或多个示例而被提供。其他示例可以与关于图1A-图1D所描述的不同。
图2是示例环境200的图,其中可以实现本文描述的系统和/或方法。如图2中所示,环境200可以包括内容收集设备210、网络220、脚本分析平台230、一个或多个计算资源234和/或云计算环境232。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合而互连。
内容收集设备210包括能够接收、生成、存储、处理、分析和/或提供诸如本文描述的信息(例如,内容和/或脚本)之类的信息的一个或多个设备。例如,内容收集设备210可以包括计算机(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、服务器设备等)、移动电话(例如,智能电话、无线电话等)、物联网(IoT)设备或智能设备、流量传输设备诸如路由器、网关、交换机、防火墙、集线器、桥接器、反向代理、服务器(例如,代理服务器、执行虚拟机的服务器等)、安全设备、入侵检测设备、负载平衡器或类似类型的设备。在一些实现中,内容收集设备210可以诸如经由网络220等从脚本分析平台230接收信息和/或向脚本分析平台230传送信息。在一些实现中,内容收集设备210可以是在外壳(诸如机箱)内实现的物理设备。在一些实现中,内容收集设备210可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。
网络220包括一个或多个有线和/或无线网络。例如,网络220可以包括蜂窝网络(例如,第五代(5G)网络、诸如长期演进(LTE)网络之类的第四代(4G)网络、第三代(3G)网络、码分多址(CDMA)网络、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网(PSTN))、专用网络、自组织网络、内联网、因特网、基于光纤的网络、云计算网络等、和/或这些或其他类型网络的组合。
脚本分析平台230包括能够获得诸如与内容相关联的一个或多个脚本之类的信息的一个或多个设备。在一些实现中,脚本分析平台230可以获得脚本,可以解析脚本以生成数据结构,并且可以遍历数据结构以确定脚本的一个或多个函数并确定脚本的一个或多个函数的一个或多个表达式的属性。在一些实现中,脚本分析平台230在遍历数据结构时可以评估一个或多个表达式的一个或多个常量子表达式。在一些实现中,脚本分析平台230可以分析一个或多个表达式的属性以确定脚本是否表现出恶意行为,并且可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。在一些实现中,脚本分析平台230可以被设计为是模块化的,使得某些软件组件可以取决于特定需要而被换入或换出。如此,脚本分析平台230可以容易地和/或快速地重新配置以用于不同的用途。在一些实现中,脚本分析平台230可以诸如经由网络220而从内容收集设备210接收信息和/或向内容收集设备210传送信息。
在一些实现中,如图所示,脚本分析平台230可以被托管在云计算环境232中。值得注意的是,虽然本文描述的实现将脚本分析平台230描述为被托管在云计算环境232中,但是在一些实现中,脚本分析平台230可以是非基于云的(即,可以在云计算环境之外实现)或者可以是部分基于云的。
云计算环境232包括托管脚本分析平台230的环境。云计算环境232可以提供计算、软件、数据访问、存储等服务,这些服务不要求终端用户了解托管脚本分析平台230的(多个)系统和/或(多个)设备的物理位置和配置。如图所示,云计算环境232可以包括一组计算资源234(统称为“计算资源234”并且单独地称为“计算资源234”)。
计算资源234包括一个或多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实现中,计算资源234可以托管脚本分析平台230。云资源可以包括在计算资源234中执行的计算实例,在计算资源234中提供的存储设备,由计算资源234提供的数据传输设备等。在一些实现中,计算资源234可以经由有线连接、无线连接或有线和无线连接的组合来与其他计算资源234通信。
如图2中进一步所示,计算资源234包括一组云资源,诸如一个或多个应用(“APP”)234-1、一个或多个虚拟机(“VM”)234-2、虚拟化存储装置(“VS”)234-3、一个或多个管理程序(“HYP”)234-4等。
应用234-1包括可以被提供给内容收集设备210或可以由内容收集设备210访问的一个或多个软件应用。应用234-1可以消除在内容收集设备210上安装和执行软件应用的需要。例如,应用234-1可以包括与脚本分析平台230相关联的软件和/或能够经由云计算环境232提供的任何其他软件。在一些实现中,一个应用234-1可以经由虚拟机234-2向/从一个或者多个其他应用234-1发送/接收信息。
虚拟机234-2包括如物理机器之类的执行程序的机器(例如,计算机)的软件实现。虚拟机234-2可以是系统虚拟机或过程虚拟机,这取决于虚拟机234-2对任何真实机器的使用和对应程度。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。过程虚拟机可以执行单个程序,并且可以支持单个过程。在一些实现中,虚拟机234-2可以代表用户(例如,内容收集设备210的用户)执行,并且可以管理云计算环境232的基础设施,诸如数据管理、同步或长时间数据传输。
虚拟化存储装置234-3包括一个或多个存储系统和/或在计算资源234的存储系统或设备内使用虚拟化技术的一个或多个设备。在一些实现中,在存储系统的上下文中,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以是指逻辑存储与物理存储的抽象(或分离),使得可以访问存储系统而不考虑物理存储或异构结构。分离可以允许存储系统的管理员灵活地管理管理员如何管理针对终端用户的存储。文件虚拟化可以消除在文件级访问的数据与文件被物理存储的位置之间的依赖性。这可以实现存储使用、服务器整合和/或无中断文件迁移性能的优化。
管理程序234-4可以提供允许多个操作系统(例如,“访客操作系统”)在主机计算机上(诸如计算资源234)同时执行的硬件虚拟化技术。管理程序234-4可以呈现虚拟操作平台给访客操作系统,可以管理访客操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
图2中所示的设备和网络的数目和布置作为一个或多个示例而被提供。实际上,与图2中所示的那些设备和/或网络相比,可以存在附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者不同地布置的设备和/或网络。此外,图2中所示的两个或更多个设备可以在单个设备中实现,或者图2中所示的单个设备可以被实现为多个分布式设备。附加地,或备选地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个函数。
图3A-图3B是图2的一个或多个设备的示例组件的图。图3A是设备300的示例组件的图。设备300可以对应于内容收集设备210、脚本分析平台230、云计算环境232、计算资源234等。在一些实现中,内容收集设备210、脚本分析平台230、云计算环境232、计算资源234等可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3A中所示,设备300可以包括总线305、处理器310、存储器315、存储组件320、输入组件325、输出组件330和通信接口335。
总线305包括允许设备300的组件之间的通信的组件。处理器310以硬件、固件或硬件和软件的组合来实现。处理器310采取中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列的形式(FPGA)、ASIC或另一类型的处理组件的形式。在一些实现中,处理器310包括能够被编程为执行功能的一个或多个处理器。存储器315包括随机存取存储器(RAM)、只读存储器(ROM)和/或存储供处理器310使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器)。
存储组件320存储与设备300的操作和使用有关的信息和/或软件。例如,存储组件320可以包括硬盘(例如,磁盘、光盘、磁光盘、和/或固态盘)、压缩盘(CD)、数字通用光盘(DVD)、软盘、盒带、磁带和/或另一类型的非瞬态计算机可读介质以及对应的驱动器。
输入组件325包括允许设备300接收信息的组件,诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)。附加地,或备选地,输入组件325可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速计、陀螺仪和/或致动器)。输出组件330包括从设备300(例如,显示器、扬声器和/或一个或多个发光二极管(LED))提供输出信息的组件。
通信接口335包括类似收发器的组件(例如,收发器和/或分离的接收器和发射器),其使得设备300能够诸如经由有线连接、无线连接或有线和无线连接的组合来与其他设备通信。通信接口335可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口335可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。
设备300可以执行本文描述的一个或多个过程。设备300可以基于处理器310执行由诸如存储器315和/或存储组件320之类的非瞬态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或跨多个物理存储设备分布的存储器空间。
软件指令可以经由通信接口335从另一计算机可读介质或从另一设备读入存储器315和/或存储组件320。当被执行时,存储在存储器315和/或存储组件320中的软件指令可以使得处理器310执行本文描述的一个或多个过程。附加地,或备选地,可以使用硬连线电路代替软件指令或与软件指令组合以执行本文描述的一个或多个过程。因此,本文描述的实现不限于硬件电路和软件的任何特定组合。
图3A中所示的组件的数目和布置作为示例而被提供。实际上,与图3A中所示的那些组件相比,设备300可以包括附加的组件、更少的组件、不同的组件或不同地布置的组件。附加地,或备选地,设备300的组件集合(例如,一个或多个组件)可以执行被描述为由设备300的另一组件集合执行的一个或多个函数。
图3B是设备350的示例组件的图。设备350可以对应于内容收集设备210、脚本分析平台230、计算资源234等。在一些实现中,内容收集设备210、脚本分析平台230、计算资源234等可以包括一个或多个设备350和/或设备350的一个或多个组件。如图3B中所示,设备350可以包括一个或多个输入组件355-1到355-B(B≥1)(下文统称为输入组件355,并且单独地称为输入组件355)、切换组件360、一个或多个输出组件365-1到365-C(C≥1)(以下统称为输出组件365,并且单独地称为输出组件365)和控制器370。
输入组件355可以是用于物理链路的附接点,并且可以是用于诸如分组之类的传入流量的入口点。输入组件355可以诸如通过执行数据链路层封装或解封装,处理传入流量。在一些实现中,输入组件355可以发送和/或接收分组。在一些实现中,输入组件355可以包括输入线卡,其包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实现中,设备350可以包括一个或多个输入组件355。
切换组件360可以将输入组件355与输出组件365互连。在一些实现中,切换组件360可以经由一个或多个交叉开关、经由总线和/或利用共享存储器来实现。在最终调度分组以递送到输出组件365之前,共享存储器可以充当临时缓冲器以存储来自输入组件355的分组。在一些实现中,切换组件360可以使得输入组件355、输出组件365和/或控制器370能够进行通信。
输出组件365可以存储分组并且可以调度分组以用于在输出物理链路上传输。输出组件365可以支持数据链路层封装或解封装,和/或各种更高级协议。在一些实现中,输出组件365可以发送分组和/或接收分组。在一些实现中,输出组件365可以包括输出线卡,其包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实现中,设备350可以包括一个或多个输出组件365。在一些实现中,输入组件355和输出组件365可以由相同的组件集合实现(例如,并且输入/输出组件可以是输入组件355和输出组件365的组合)。
控制器370包括处理器,其形式为例如CPU、GPU、APU、微处理器、微控制器、DSP、FPGA、ASIC和/或另一类型的处理器。处理器以硬件、固件或硬件和软件的组合实现。在一些实现中,控制器370可以包括可以被编程来执行功能的一个或多个处理器。
在一些实现中,控制器370可以包括RAM、ROM和/或存储供控制器370使用的信息/或指令的另一类型的动态或静态存储设备(例如,闪存、磁存储器、光存储器等)。
在一些实现中,控制器370可以与连接到设备300的其他设备、网络和/或系统通信,以交换关于网络拓扑的信息。控制器370可以基于网络拓扑信息创建路由表,基于路由表创建转发表,并且将转发表转发到输入组件355和/或输出组件365。输入组件355和/或输出组件365可以使用转发表来执行针对传入和/或传出分组的路由查找。
控制器370可以执行本文描述的一个或多个过程。控制器370可以响应于执行由非瞬态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或跨多个物理存储设备分布的存储器空间。
可以将软件指令经由通信接口从另一计算机可读介质或从另一设备读入与控制器370相关联的存储器和/或存储组件。当被执行时,存储在与控制器370相关联的存储器和/或存储组件中的软件指令可以使得控制器370执行本文描述的一个或多个过程。附加地,或备选地,可以使用硬连线电路代替软件指令或与软件指令组合以执行本文描述的一个或多个过程。因此,本文描述的实现不限于硬件电路和软件的任何特定组合。
提供图3B中所示的组件的数目和布置作为示例。实际上,与图3B中所示的那些组件相比,设备350可以包括附加的组件、更少的组件、不同的组件或不同地布置的组件。附加地,或备选地,设备350的组件集合(例如,一个或多个组件)可以执行被描述为由设备350的另一组件集合执行的一个或多个函数。
图4是用于恶意脚本的行为检测的示例过程400的流程图。在一些实现中,图4的一个或多个处理框可以由脚本分析平台(例如,脚本分析平台230)执行。在一些实现中,图4的一个或多个处理框可以由与脚本分析平台分离或包括脚本分析平台的另一设备或一组设备执行,诸如内容收集设备(例如,内容收集设备210)、计算资源(例如,计算资源234)、云计算环境(例如,云计算环境232)等。
如图4中所示,过程400可以包括获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式(框410)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365,控制器370等)可以获得与内容相关联的脚本。在一些实现中,如上所述,脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式。
如图4中进一步所示,过程400可以包括解析脚本以生成数据结构,其中数据结构表示脚本的语法结构(框420)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以解析脚本以生成数据结构。在一些实现中,数据结构表示脚本的语法结构。
如图4中进一步所示,过程400可以包括遍历数据结构以确定一个或多个函数(框430)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以遍历数据结构以确定一个或多个函数。
如图4中进一步所示,过程400可以包括基于一个或多个函数遍历数据结构以确定一个或多个表达式的属性,其中遍历数据结构以确定一个或多个表达式的属性包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的属性(框440)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于一个或多个函数遍历数据结构以确定一个或多个表达式的属性。在一些实现中,遍历数据结构以确定一个或多个表达式的属性包括评估一个或多个表达式的一个或多个常量子表达式。在一些实现中,评估一个或多个常量子表达式有助于确定一个或多个表达式的属性。
如图4中进一步所示,过程400可以包括分析一个或多个表达式的属性以确定脚本是否表现出恶意行为(框450)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以分析一个或多个表达式的属性以确定脚本是否表现出恶意行为。
如图4中进一步所示,过程400可以包括基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行(框460)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
过程400可以包括附加的实现,诸如结合本文其他地方描述的一个或多个其他过程的和/或下面描述的任何单个实现或实现的任何组合。
在一些实现中,一个或多个常量子表达式的常量子表达式包括以下中的至少一个:常量数值、常量字符串值、常量数值或常量字符串值的组合、与用至少一个参数调用的脚本的计算机语言相关联的库函数调用,该至少一个参数是常量数值、常量字符串值、或常量数值或常量字符串值的组合等。在一些实现中,脚本是JavaScript脚本、Visual Basic(VB)脚本、Visual Basic for Applications(VBA)脚本、Jscript脚本、PowerShell脚本等。
在一些实现中,使得关于脚本或内容的动作被执行包括基于确定脚本表现出恶意行为而使得以下中的一个或多个:内容或脚本从源设备被删除;内容或脚本在源设备上被隔离,以禁止访问内容或脚本;经由网络执行搜索在一个或多个其他设备上的内容或脚本的其他实例以及要被删除的其他实例;针对恶意行为而分析一个或多个其他设备;针对一个或多个其他设备的网络连接性的修改等。
在一些实现中,遍历数据结构以确定一个或多个表达式的属性包括:维持与一个或多个表达式相关联的调用堆栈;维持用于与一个或多个表达式相关联的一个或多个标识符的符号表;以及基于符号表中包括的信息来确定一个或多个表达式的属性。在一些实现中,对于一个或多个标识符的标识符,符号表包括指示以下中的至少一个的信息:标识符的类型;标识符的范围;对标识符的指派值的引用;是否在循环中指派了指派值;是否通过非平凡指派调用指派了指派值;标识符是否自修改等。
在一些实现中,恶意行为包括以下属性中的至少一个:使用复杂数组访问来访问全局对象;通过计算复杂表达式来调用函数;解码字符串值;通过执行复杂的字符串计算来调用评估或执行函数等。
尽管图4示出了过程400的示例框,但是在一些实现中,与图4中描绘的那些框相比,过程400可以包括附加的框、更少的框、不同的框、或者不同地布置的框。附加地,或备选地,过程400的两个或更多个的框可以并行执行。
图5是用于恶意脚本的行为检测的示例过程500的流程图。在一些实现中,图5的一个或多个过程框可以由脚本分析平台(例如,脚本分析平台230)执行。在一些实现中,图5的一个或多个过程框可以由与脚本分析平台分离或包括脚本分析平台的另一设备或一组设备执行,诸如内容收集设备(例如,内容收集设备210)、计算资源(例如,计算资源234)、云计算环境(例如,云计算环境232)等。
如图5中所示,过程500可以包括从内容收集设备获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式(框510)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以从内容收集设备获得与内容相关联的脚本。在一些实现中,脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式。
如图5中进一步所示,过程500可以包括解析脚本以生成数据结构(框520)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以解析脚本以生成数据结构。
如图5中进一步所示,过程500可以包括遍历数据结构以确定一个或多个函数(框530)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以遍历数据结构以确定一个或多个函数。
如图5中进一步所示,过程500可以包括基于一个或多个函数遍历数据结构以确定一个或多个表达式的一个或多个属性,其中遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式,并且其中评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性(框540)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于一个或多个函数遍历数据结构以确定一个或多个表达式的一个或多个属性。在一些实现中,遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式。在一些实现中,评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性。
如图5中进一步所示,过程500可以包括获得描述恶意行为的一个或多个性质的信息(框550)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以获得描述恶意行为的一个或多个性质的信息。
如图5中进一步所示,过程500可以包括基于该信息分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为(框560)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于该信息分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为。
如图5中进一步所示,过程500可以包括基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行(框570)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
过程500可以包括附加的实现,诸如结合本文其他地方描述的一个或多个其他过程的和/或下面描述的任何单个实现或实现的任何组合。
在一些实现中,数据结构是抽象语法树(AST)。在一些实现中,恶意行为是自修改代码行为。
在一些实现中,脚本分析平台在遍历数据结构以确定一个或多个表达式的一个或多个属性时,确定与一个或多个表达式相关联的一个或多个分支并遍历一个或多个分支的每个分支以确定一个或多个表达式的一个或多个属性。
在一些实现中,脚本分析平台在解析脚本以生成数据结构时,分配存储器的块以连续地存储数据结构的两个或更多个元素。在一些实现中,与数据结构的两个或更多个元素相关联的存储器将通过一个解除分配调用而被解除分配。
在一些实现中,脚本分析平台在分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为时,基于该信息确定一个或多个属性中的属性对应于恶意行为的一个或多个性质中的至少一个性质,并且基于与恶意行为的至少一个性质相对应的属性来确定脚本表现出恶意行为。
在一些实现中,脚本分析平台在分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为时,基于该信息确定一个或多个属性不对应对于恶意行为的一个或多个性质中的任何一个,并且基于与恶意行为的任何性质不对应的一个或多个属性来确定该脚本没有表现出恶意行为。
在一些实现中,脚本分析平台在使得关于脚本或内容的动作被执行时,基于确定脚本表现出恶意行为,使得从内容收集设备中删除内容或脚本,或者基于确定脚本没有表现出恶意行为,使得内容收集设备将内容或脚本发送到不同的设备。
尽管图5示出了过程500的示例框,但是在一些实现中,与图5中描绘的那些框不同,过程500可以包括附加的框、更少的框、不同的框、或者不同地布置的框。附加地,或者备选地,过程500的两个或更多个框可以并行执行。
图6是用于恶意脚本的行为检测的示例过程600的流程图。在一些实现中,图6的一个或多个过程框可以由脚本分析平台(例如,脚本分析平台230)执行。在一些实现中,图6的一个或多个过程框可以由与脚本分析平台分离或包括脚本分析平台的另一设备或一组设备执行,诸如内容收集设备(例如,内容收集设备210)、计算资源(例如,计算资源234)、云计算环境(例如,云计算环境232)等。
如图6中所示,过程600可以包括获得与内容相关联的脚本,其中脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式(框610)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以获得与内容相关联的脚本。在一些实现中,脚本包括一个或多个函数,该一个或多个函数包括一个或多个表达式。
如图6中进一步所示,过程600可以包括在获得脚本之后分配存储器的块(框620)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以在获得脚本之后分配存储器的块。
如图6中进一步所示,过程600可以包括解析脚本以生成可以被存储在存储器的块中的数据结构,其中数据结构表示至少一些脚本的语法结构(框630)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以解析脚本以生成可以被存储在存储器的块中的数据结构。在一些方面中,数据结构表示至少一些脚本的语法结构。
如图6中进一步所示,过程600可以包括将数据结构存储在存储器的块中(框640)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以将数据结构存储在存储器的块中。
如图6中进一步所示,过程600可以包括遍历数据结构以确定一个或多个函数(框650)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以遍历数据结构以确定一个或多个函数。
如图6中进一步所示,过程600可以包括基于一个或多个函数遍历数据结构以确定一个或多个表达式的一个或多个属性,其中遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式,并且其中评估一个或多个常量子表达式有助于确定一个或多个表达式的属性(框660)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以基于一个或多个函数遍历数据结构以确定一个或多个表达式的一个或多个属性。在一些实现中,遍历数据结构以确定一个或多个表达式的一个或多个属性包括评估一个或多个表达式的一个或多个常量子表达式。在一些实现中,评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性。
如图6中进一步所示,过程600可以包括分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为(框670)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器370等)可以分析一个或多个表达式的一个或多个属性,以确定脚本是否表现出恶意行为。
如图6中进一步所示,过程600可以包括基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行(框680)。例如,如上所述,脚本分析平台(例如,使用计算资源234、处理器310、存储器315、存储组件320、输入组件325、输出组件330、通信接口335、输入组件355、切换组件360、输出组件365、控制器700等)可以基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
过程600可以包括附加的实现,诸如结合本文其他地方描述的一个或多个其他过程的和/或下面描述的任何单个实现或实现的任何组合。
在一些实现中,当获得脚本时,脚本分析平台从源设备接收脚本。在一些实现中,源设备已从内容中移除脚本。
在一些实现中,当使得关于脚本或内容的动作被执行时,脚本分析平台基于确定脚本没有表现出恶意行为而使得源设备将内容和脚本发送到不同的设备。
在一些实现中,一个或多个表达式的一个或多个属性被包括在一个或多个符号表中,并且脚本分析平台在分析一个或多个表达式的属性以确定脚本是否表现出恶意行为时,在一个或多个符号表中搜索一个或多个属性中的与恶意行为的性质相对应的属性。
在一些实现中,当分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为时,脚本分析平台标识一个或多个属性中的属性集合,并分析该属性集合以确定属性集合是否表现出恶意行为。在一些实现中,属性集合的每个属性对应于恶意行为的一个或多个性质。
尽管图6示出了过程600的示例框,但是在一些实现中,与图6中描绘的那些框不同,过程600可以包括附加的框、更少的框、不同的框、或者不同地布置的框。附加地,或者备选地,过程600的两个或更多个框可以并行执行。
根据一些实现,示例1:一种方法,包括:由设备获取与内容相关联的脚本,其中脚本包括一个或多个函数,一个或多个函数包括一个或多个表达式;由设备解析脚本以生成数据结构,其中数据结构表示脚本的语法结构;由设备遍历数据结构以确定一个或多个函数;由设备基于一个或多个函数遍历数据结构以确定一个或多个表达式的属性,其中基于一个或多个函数遍历数据结构包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的属性;由设备分析一个或多个表达式的属性以确定脚本是否表现出恶意行为;以及由设备基于确定脚本是否表现出恶意行为而使得关于脚本或内容的动作被执行。
根据一些实现,示例2:根据示例1的方法,其中一个或多个常量子表达式的常量子表达式包括以下中的至少一个:常量数值;常量字符串值;常量数值或常量字符串值的组合;或与脚本的计算机语言相关联的库函数调用,脚本用至少一个参数调用,至少一个参数是常量数值、常量字符串值或常量数值或常量字符串值的组合。
根据一些实现,示例3:根据示例1的方法,其中脚本是:JavaScript脚本,VisualBasic(VB)脚本,Visual Basic for Applications(VBA)脚本,Jscript脚本,或PowerShell脚本。
根据一些实现,示例4:根据示例1的方法,其中使得关于脚本或内容的动作被执行包括:基于确定脚本表现出恶意行为而引起以下中的一个或多个:内容或脚本从源设备被删除;内容或脚本在源设备处被隔离,以禁止访问内容或脚本;对于在一个或多个其他设备上的内容或脚本的其他实例以及要被删除的其他实例的搜索经由网络被执行;一个或多个其他设备针对恶意行为而被分析;或针对一个或多个其他设备的网络连接性的修改。
根据一些实现,示例5:根据示例1的方法,其中遍历数据结构以确定一个或多个表达式的属性包括:维持与一个或多个表达式相关联的调用堆栈;维持针对与一个或多个表达式相关联的一个或多个标识符的符号表;以及基于符号表中所包括的信息确定一个或多个表达式的属性。
根据一些实现,示例6:根据示例5的方法,其中对于一个或多个标识符的标识符,符号表包括指示以下中的至少一个的信息:标识符的类型;标识符的范围;对标识符的指派值的引用;指派值是否在循环中被指派;指派值是否通过非平凡指派调用被指派;或标识符是否是自修改的。
根据一些实现,示例7:根据示例1的方法,其中恶意行为包括以下性质中的至少一个:使用复杂数组访问来访问全局对象;通过计算复杂表达式来调用函数;解码字符串值;或通过执行复杂的字符串计算来调用评估或执行函数。
根据一些实现,示例8:一种设备,包括:一个或多个存储器;以及一个或多个处理器,用以:从内容收集设备获取与内容相关联的脚本,其中脚本包括一个或多个函数,一个或多个函数包括一个或多个表达式;解析脚本以生成数据结构;遍历数据结构以确定一个或多个函数;基于一个或多个函数,遍历数据结构以确定一个或多个表达式的一个或多个属性,其中基于一个或多个函数遍历数据结构包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性;获取描述恶意行为的一个或多个性质的信息;基于信息,分析一个或多个表达式的一个或多个属性,以确定脚本是否表现出恶意行为;以及基于确定脚本是否表现出恶意行为,使得关于脚本或内容的动作被执行。
根据一些实现,示例9:根据示例8的设备,其中数据结构是抽象语法树(AST)。
根据一些实现,示例10:根据示例8的设备,其中恶意行为是自修改代码行为。
根据一些实现,示例11:根据示例8的设备,其中一个或多个处理器在遍历数据结构以确定一个或多个表达式的一个或多个属性时,用以:确定与一个或多个表达式相关联的一个或多个分支;以及遍历一个或多个分支的每个分支以确定一个或多个表达式的一个或多个属性。
根据一些实现,示例12:根据示例8的设备,其中一个或多个处理器在解析脚本以生成数据结构时,用以:分配存储器的块来连续地存储数据结构的两个或更多个元素,其中与数据结构的两个或更多个元素相关联的存储器将通过一个解除分配调用而被解除分配。
根据一些实现,示例13:根据示例8的设备,其中一个或多个处理器在分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为时,用以:基于信息,确定一个或多个属性中的属性与恶意行为的一个或多个性质中的至少一个性质相对应;以及基于与恶意行为的至少一个性质相对应的属性,确定脚本表现出恶意行为。
根据一些实现,示例14:根据示例8的设备,其中一个或多个处理器在分析一个或多个表达式的一个或多个属性以确定脚本是否表现出恶意行为时,用以:基于信息,确定一个或多个属性不对应于恶意行为的一个或多个性质中的任何性质;以及基于与恶意行为的任何性质不相对应的一个或多个属性,确定脚本没有表现出恶意行为。
根据一些实现,示例15:根据示例8的设备,其中一个或多个处理器在使得关于脚本或内容的动作被执行时,用以:基于确定脚本表现出恶意行为,使得内容或脚本从内容收集设备中被删除;或基于确定脚本没有表现出恶意行为,使得内容收集设备将内容或脚本发送到不同的设备。
根据一些实现,示例16:一种存储指令的非瞬态计算机可读介质,指令包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时,使得一个或多个处理器:获取与内容相关联的脚本,其中脚本包括一个或多个函数,一个或多个函数包括一个或多个表达式;在获得脚本后,分配存储器的块;解析脚本以生成能够被存储在存储器的块中的数据结构,其中数据结构表示脚本中的至少一些的语法结构;将数据结构存储在存储器的块中;遍历数据结构以确定一个或多个函数;基于一个或多个函数,遍历数据结构以确定一个或多个表达式的一个或多个属性,其中基于一个或多个函数遍历数据结构包括评估一个或多个表达式的一个或多个常量子表达式,其中评估一个或多个常量子表达式有助于确定一个或多个表达式的一个或多个属性;分析一个或多个表达式的一个或多个属性,以确定脚本是否表现出恶意行为;以及基于确定脚本是否表现出恶意行为,使得关于脚本或内容的动作被执行。
根据一些实现,示例17:根据示例16的非瞬态计算机可读介质,其中使得一个或多个处理器获得脚本的一个或多个指令使得一个或多个处理器:从源设备接收脚本,其中源设备已从内容中移除了脚本。
根据一些实现,示例18:根据示例16的非瞬态计算机可读介质,其中使得一个或多个处理器使得关于脚本或内容的动作被执行的一个或多个指令使得一个或多个处理器:基于确定脚本没有表现出恶意行为,使得源设备将内容和脚本发送到不同的设备。
根据一些实现,示例19:根据示例16的非瞬态计算机可读介质,其中一个或多个表达式的一个或多个属性被包括在一个或多个符号表中,其中使得一个或多个处理器分析一个或多个表达式的属性以确定脚本是否表现出恶意行为的一个或多个指令使得一个或多个处理器:在一个或多个符号表中搜索一个或多个属性中的与恶意行为的性质相对应的属性。
根据一些实现,示例20:根据示例16的非瞬态计算机可读介质,其中使得一个或多个处理器分析一个或多个表达式的属性以确定脚本是否表现出恶意行为的一个或多个指令使得一个或多个处理器:标识一个或多个属性的属性集合,其中属性集合的每个属性对应于恶意行为的一个或多个性质;以及分析属性集合以确定属性集合是否表现出恶意行为。
前述公开内容提供了说明和描述,但并非旨在穷举或将实现限制于所公开的精确形式。可以鉴于以上公开内容进行修改和变化,或者可以从实现的实践中获得修改和变化。
如本文所使用的,“流量”或“内容”可以包括分组的集合。“分组”可以是指用于传递信息的通信结构,诸如协议数据单元(PDU)、网络分组、数据报、分段、消息、块、单元、帧、子帧、时隙、符号、上述任何一部分、和/或能够经由网络传送的另一类型的格式化或未格式化的数据单元。
如本文所使用的,术语“组件”旨在广义地解释为硬件、固件和/或硬件和软件的组合。
如本文所使用的,取决于上下文,满足阈值可以是指值大于阈值、多于阈值、高于阈值、大于或等于阈值、小于阈值、少于阈值、低于阈值、小于或等于阈值、等于阈值等。
明显的是,本文描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用来实现这些系统和/或方法的实际专用控制硬件或软件代码不限制实现。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应理解,可以将软件和硬件设计为实现基于本文描述的系统和/或方法。
即使特定的特征组合在权利要求中陈述和/或在说明书中公开,但是这些组合并不旨在限制各种实现的公开。实际上,许多这些特征可以以未在权利要求中具体陈述和/或未在说明书中公开的方式组合。尽管下面列出的每个从属权利要求可以直接仅从属于一个权利要求,但是各种实现的公开包括每个从属权利要求与权利要求集合中的每个其他权利要求组合。
除非明确地如此描述,否则本文使用的元素、动作或指令不应被解释为关键或必要的。而且,如本文所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本文所使用的,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”互换使用。在预期仅仅一个项目的情况下,使用短语“仅一个”或类似的语言。而且,如本文所使用的,术语“具有(has、have、having)”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。
Claims (20)
1.一种方法,包括:
由设备获取与内容相关联的脚本,
其中所述脚本包括一个或多个函数,所述一个或多个函数包括一个或多个表达式;
由所述设备解析所述脚本以生成数据结构,
其中所述数据结构表示所述脚本的语法结构;
由所述设备遍历所述数据结构以确定所述一个或多个函数;
由所述设备基于所述一个或多个函数遍历所述数据结构以确定所述一个或多个表达式的属性,
其中基于所述一个或多个函数遍历所述数据结构包括评估所述一个或多个表达式的一个或多个常量子表达式,
其中评估所述一个或多个常量子表达式有助于确定所述一个或多个表达式的所述属性;
由所述设备分析所述一个或多个表达式的所述属性以确定所述脚本是否表现出恶意行为;以及
由所述设备基于确定所述脚本是否表现出恶意行为而使得关于所述脚本或所述内容的动作被执行。
2.根据权利要求1所述的方法,其中所述一个或多个常量子表达式的常量子表达式包括以下中的至少一个:
常量数值;
常量字符串值;
常量数值或常量字符串值的组合;或
与所述脚本的计算机语言相关联的库函数调用,所述脚本用至少一个参数调用,所述至少一个参数是常量数值、常量字符串值或常量数值或常量字符串值的组合。
3.根据权利要求1所述的方法,其中所述脚本是:
JavaScript脚本,
VisualBasic(VB)脚本,
VisualBasic for Applications(VBA)脚本,
Jscript脚本,或
PowerShell脚本。
4.根据权利要求1所述的方法,其中使得关于所述脚本或所述内容的所述动作被执行包括:
基于确定所述脚本表现出恶意行为而引起以下中的一个或多个:
所述内容或所述脚本从源设备被删除;
所述内容或所述脚本在所述源设备处被隔离,以禁止访问所述内容或所述脚本;
对于在一个或多个其他设备上的所述内容或所述脚本的其他实例以及要被删除的其他实例的搜索经由网络被执行;
所述一个或多个其他设备针对恶意行为而被分析;或
针对所述一个或多个其他设备的网络连接性的修改。
5.根据权利要求1所述的方法,其中遍历所述数据结构以确定所述一个或多个表达式的所述属性包括:
维持与所述一个或多个表达式相关联的调用堆栈;
维持针对与所述一个或多个表达式相关联的一个或多个标识符的符号表;以及
基于所述符号表中所包括的信息确定所述一个或多个表达式的所述属性。
6.根据权利要求5所述的方法,其中对于所述一个或多个标识符的标识符,所述符号表包括指示以下中的至少一个的信息:
所述标识符的类型;
所述标识符的范围;
对所述标识符的指派值的引用;
所述指派值是否在循环中被指派;
所述指派值是否通过非平凡指派调用被指派;或
所述标识符是否是自修改的。
7.根据权利要求1所述的方法,其中恶意行为包括以下性质中的至少一个:
使用复杂数组访问来访问全局对象;
通过计算复杂表达式来调用函数;
解码字符串值;或
通过执行复杂的字符串计算来调用评估或执行函数。
8.一种设备,包括:
一个或多个存储器;以及
一个或多个处理器,用以:
从内容收集设备获取与内容相关联的脚本,
其中所述脚本包括一个或多个函数,所述一个或多个函数包括一个或多个表达式;
解析所述脚本以生成数据结构;
遍历所述数据结构以确定所述一个或多个函数;
基于所述一个或多个函数,遍历所述数据结构以确定所述一个或多个表达式的一个或多个属性,
其中基于所述一个或多个函数遍历所述数据结构包括评估所述一个或多个表达式的一个或多个常量子表达式,
其中评估所述一个或多个常量子表达式有助于确定所述一个或多个表达式的所述一个或多个属性;
获取描述恶意行为的一个或多个性质的信息;
基于所述信息,分析所述一个或多个表达式的所述一个或多个属性,以确定所述脚本是否表现出恶意行为;以及
基于确定所述脚本是否表现出恶意行为,使得关于所述脚本或所述内容的动作被执行。
9.根据权利要求8所述的设备,其中所述数据结构是抽象语法树(AST)。
10.根据权利要求8所述的设备,其中所述恶意行为是自修改代码行为。
11.根据权利要求8所述的设备,其中所述一个或多个处理器在遍历所述数据结构以确定所述一个或多个表达式的所述一个或多个属性时,用以:
确定与所述一个或多个表达式相关联的一个或多个分支;以及
遍历所述一个或多个分支的每个分支以确定所述一个或多个表达式的所述一个或多个属性。
12.根据权利要求8所述的设备,其中所述一个或多个处理器在解析所述脚本以生成所述数据结构时,用以:
分配存储器的块来连续地存储所述数据结构的两个或更多个元素,
其中与所述数据结构的所述两个或更多个元素相关联的存储器将通过一个解除分配调用而被解除分配。
13.根据权利要求8所述的设备,其中所述一个或多个处理器在分析所述一个或多个表达式的所述一个或多个属性以确定所述脚本是否表现出恶意行为时,用以:
基于所述信息,确定所述一个或多个属性中的属性与恶意行为的所述一个或多个性质中的至少一个性质相对应;以及
基于与恶意行为的所述至少一个性质相对应的所述属性,确定所述脚本表现出恶意行为。
14.根据权利要求8所述的设备,其中所述一个或多个处理器在分析所述一个或多个表达式的所述一个或多个属性以确定所述脚本是否表现出恶意行为时,用以:
基于所述信息,确定所述一个或多个属性不对应于恶意行为的所述一个或多个性质中的任何性质;以及
基于与恶意行为的任何性质不相对应的所述一个或多个属性,确定所述脚本没有表现出恶意行为。
15.根据权利要求8所述的设备,其中所述一个或多个处理器在使得关于所述脚本或所述内容的所述动作被执行时,用以:
基于确定所述脚本表现出恶意行为,使得所述内容或脚本从所述内容收集设备中被删除;或
基于确定所述脚本没有表现出恶意行为,使得所述内容收集设备将所述内容或所述脚本发送到不同的设备。
16.一种存储指令的非瞬态计算机可读介质,所述指令包括:
一个或多个指令,所述一个或多个指令在由一个或多个处理器执行时,使得所述一个或多个处理器:
获取与内容相关联的脚本,
其中所述脚本包括一个或多个函数,所述一个或多个函数包括一个或多个表达式;
在获得所述脚本后,分配存储器的块;
解析所述脚本以生成能够被存储在所述存储器的块中的数据结构,
其中所述数据结构表示所述脚本中的至少一些的语法结构;
将所述数据结构存储在所述存储器的块中;
遍历所述数据结构以确定所述一个或多个函数;
基于所述一个或多个函数,遍历所述数据结构以确定所述一个或多个表达式的所述一个或多个属性,
其中基于所述一个或多个函数遍历所述数据结构包括评估所述一个或多个表达式的一个或多个常量子表达式,
其中评估所述一个或多个常量子表达式有助于确定所述一个或多个表达式的所述一个或多个属性;
分析所述一个或多个表达式的所述一个或多个属性,以确定所述脚本是否表现出恶意行为;以及
基于确定所述脚本是否表现出恶意行为,使得关于所述脚本或所述内容的动作被执行。
17.根据权利要求16所述的非瞬态计算机可读介质,其中使得所述一个或多个处理器获得所述脚本的所述一个或多个指令使得所述一个或多个处理器:
从源设备接收所述脚本,
其中所述源设备已从所述内容中移除了所述脚本。
18.根据权利要求16所述的非瞬态计算机可读介质,其中使得所述一个或多个处理器使得关于所述脚本或所述内容的所述动作被执行的所述一个或多个指令使得所述一个或多个处理器:
基于确定所述脚本没有表现出恶意行为,使得源设备将所述内容和所述脚本发送到不同的设备。
19.根据权利要求16所述的非瞬态计算机可读介质,其中所述一个或多个表达式的所述一个或多个属性被包括在一个或多个符号表中,
其中使得所述一个或多个处理器分析所述一个或多个表达式的所述属性以确定所述脚本是否表现出恶意行为的所述一个或多个指令使得所述一个或多个处理器:
在所述一个或多个符号表中搜索所述一个或多个属性中的与恶意行为的性质相对应的属性。
20.根据权利要求16所述的非瞬态计算机可读介质,其中使得所述一个或多个处理器分析所述一个或多个表达式的所述属性以确定所述脚本是否表现出恶意行为的所述一个或多个指令使得所述一个或多个处理器:
标识所述一个或多个属性的属性集合,
其中所述属性集合的每个属性对应于恶意行为的一个或多个性质;以及
分析所述属性集合以确定所述属性集合是否表现出恶意行为。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/368,071 | 2019-03-28 | ||
US16/368,071 US11409867B2 (en) | 2019-03-28 | 2019-03-28 | Behavioral detection of malicious scripts |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111753294A true CN111753294A (zh) | 2020-10-09 |
Family
ID=67001587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910903057.5A Pending CN111753294A (zh) | 2019-03-28 | 2019-09-24 | 恶意脚本的行为检测 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11409867B2 (zh) |
EP (1) | EP3716112B1 (zh) |
CN (1) | CN111753294A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051565A (zh) * | 2021-03-16 | 2021-06-29 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11409867B2 (en) | 2019-03-28 | 2022-08-09 | Juniper Networks, Inc. | Behavioral detection of malicious scripts |
CN113807078B (zh) * | 2021-10-09 | 2023-03-10 | 杭州路信科技有限公司 | 信号联锁系统控制方法、装置、电子设备及存储介质 |
CN115577363A (zh) * | 2022-09-15 | 2023-01-06 | 华北电力科学研究院有限责任公司 | 恶意代码反序列化利用链的检测方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255887B2 (en) * | 2006-11-29 | 2012-08-28 | International Business Machines Corporation | Method and apparatus for re-using memory allocated for data structures used by software processes |
US8914879B2 (en) | 2010-06-11 | 2014-12-16 | Trustwave Holdings, Inc. | System and method for improving coverage for web code |
US9270691B2 (en) * | 2010-11-01 | 2016-02-23 | Trusteer, Ltd. | Web based remote malware detection |
US8713679B2 (en) | 2011-02-18 | 2014-04-29 | Microsoft Corporation | Detection of code-based malware |
US8997233B2 (en) | 2011-04-13 | 2015-03-31 | Microsoft Technology Licensing, Llc | Detecting script-based malware using emulation and heuristics |
US9519781B2 (en) | 2011-11-03 | 2016-12-13 | Cyphort Inc. | Systems and methods for virtualization and emulation assisted malware detection |
US9419991B2 (en) * | 2014-09-30 | 2016-08-16 | Juniper Networks, Inc. | De-obfuscating scripted language for network intrusion detection using a regular expression signature |
US11314862B2 (en) | 2017-04-17 | 2022-04-26 | Tala Security, Inc. | Method for detecting malicious scripts through modeling of script structure |
US11409867B2 (en) | 2019-03-28 | 2022-08-09 | Juniper Networks, Inc. | Behavioral detection of malicious scripts |
-
2019
- 2019-03-28 US US16/368,071 patent/US11409867B2/en active Active
- 2019-06-21 EP EP19181592.7A patent/EP3716112B1/en active Active
- 2019-09-24 CN CN201910903057.5A patent/CN111753294A/zh active Pending
-
2022
- 2022-07-05 US US17/810,687 patent/US11714904B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051565A (zh) * | 2021-03-16 | 2021-06-29 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
CN113051565B (zh) * | 2021-03-16 | 2024-05-28 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3716112B1 (en) | 2022-02-23 |
US11409867B2 (en) | 2022-08-09 |
US20220335128A1 (en) | 2022-10-20 |
US11714904B2 (en) | 2023-08-01 |
US20200311266A1 (en) | 2020-10-01 |
EP3716112A1 (en) | 2020-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11714904B2 (en) | Behavioral detection of malicious scripts | |
US10474817B2 (en) | Dynamically optimizing performance of a security appliance | |
CN113839850B (zh) | 根据需求生成灵活、可编程且可扩展的网络隧道 | |
US11356534B2 (en) | Function repository selection mode and signaling for cloud based processing | |
CN109218280B (zh) | 实施数据中心中的物理和虚拟应用组件的微分段策略 | |
US11562066B2 (en) | Memory tracking for malware detection | |
US20200341806A1 (en) | Method and apparatus for functional improvements to moving picture experts group network based media processing | |
US11695631B1 (en) | Generating candidate links and candidate paths before selecting links for an optimized optical network plan | |
US8898314B2 (en) | Direct communication between applications in a cloud computing environment | |
CN111245637A (zh) | 生成基于应用的代理自动配置 | |
US20220045928A1 (en) | Inter-autonomous system trace route message | |
US10735539B1 (en) | Publish/subscribe system broker | |
CN111831834A (zh) | 基于网络的媒体处理(nbmp)中处理媒体内容的方法和装置 | |
US11539776B2 (en) | Method for signaling protocol characteristics for cloud workflow inputs and outputs | |
EP3598332B1 (en) | Memory tracking for malware detection | |
US11838390B2 (en) | Function repository selection mode and signaling for cloud based processing |
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 |