CN110750789B - 解混淆方法、装置、计算机设备和存储介质 - Google Patents
解混淆方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110750789B CN110750789B CN201910994645.4A CN201910994645A CN110750789B CN 110750789 B CN110750789 B CN 110750789B CN 201910994645 A CN201910994645 A CN 201910994645A CN 110750789 B CN110750789 B CN 110750789B
- Authority
- CN
- China
- Prior art keywords
- script
- subtree
- confusion
- detected
- original
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000012634 fragment Substances 0.000 claims abstract description 124
- 238000001514 detection method Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012805 post-processing Methods 0.000 claims description 9
- 238000013145 classification model Methods 0.000 claims description 6
- 238000007477 logistic regression Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000009795 derivation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Machine Translation (AREA)
Abstract
本申请涉及一种解混淆方法、装置、计算机设备和存储介质。所述方法包括:从原始脚本对应的原始语法树中提取待检测子树;基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树;将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。上述解混淆方法、装置、计算机设备和存储介质,通过对原始脚本对应的原始语法树基于多层特征进行混淆检测,进行自动化解混淆,得到解混淆脚本片段,并基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本的方法进行解混淆,可以自动进行混淆检测和解混淆,自动化程度高,效率较高。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种解混淆方法、装置、计算机设备和存储介质。
背景技术
随着信息化在我国进一步的推进,信息技术、互联网技术逐渐进入生活的方方面面。网络空间安全是一个复杂的系统性学科,没有办法通过单一的技术进行保护。攻击者会想方设法在系统中找到薄弱点或者可以利用之处进行攻击。我们一般把这种可攻击点称为“攻击向量(attack vector)”。
PowerShell就是被攻击者广泛利用的一个攻击向量。2016年,国际顶尖信息安全公司赛门铁克发布白皮书(“The Increase Use of PowerShell in Attacks.”)宣布PowerShell正被广泛的用于网络攻击。PowerShell是预装在绝大多数Windows系统中的一个有力的管理员工具,提供了很多可以直接调用系统功能的接口,而且有很强的灵活性,可以直接从内存中执行。以上特征使PowerShell成为一个广受欢迎的系统工具的同时,也使其成为了攻击者实施“Live-Off-the-Land”和“Fileless”两种高级攻击的最好的攻击向量。
为应对针对PowerShell的攻击,传统的检测方案使用字符层面的特征对恶意程序进行检测,但是这些特征很容易被混淆技术绕过,因此需要先进行解混淆再进行检测。但是传统的解混淆方法需要大量人工分析,效率较低,自动化程度不高,难以扩展。
发明内容
基于此,有必要针对现有的解混淆方法需要大量人工分析,效率较低,自动化程度不高,难以扩展的技术问题,提供一种解混淆方法、装置、计算机设备和存储介质。
一种解混淆方法,所述方法包括
从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树;
将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
在其中一个实施例中,所述基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树包括:
基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树。
在其中一个实施例中,所述基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树包括:
基于所述待检测子树和/或待检测脚本片段的多层特征,使用逻辑斯蒂回归分类模型对所述待检测子树进行检测,得到混淆子树。
在其中一个实施例中,所述基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本包括:
对解混淆脚本片段进行解析,得到解混淆子树;
将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树;
对所述解混淆语法树进行解析,得到解混淆脚本。
在其中一个实施例中,所述将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树包括:
将所述解混淆子树的特征计算出来,并基于所述解混淆子树的特征更新所述原始语法树中的父节点,所述父节点为所述原始语法树中最靠近待解混淆子树对应的混淆子树的父节点。
在其中一个实施例中,所述基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本之后还包括:
对所述解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
在其中一个实施例中,所述将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段包括:
将混淆子树对应的脚本片段输入PowerShell解释器,得到解混淆脚本片段。
一种解混淆装置,所述装置包括:
提取模块,用于从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
检测模块,用于基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树;
转换模块,用于将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
解混淆模块,用于基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树;
将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树;
将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
上述解混淆方法、装置、计算机设备和存储介质,通过对原始脚本对应的原始语法树基于多层特征进行混淆检测,并使用解释器进行自动化解混淆,得到解混淆脚本片段,并基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本的方法进行解混淆,可以自动进行混淆检测和解混淆,自动化程度高,效率较高。
附图说明
图1为本发明一实施例的解混淆方法的示意图;
图2为本发明另一实施例的解混淆方法的示意图;
图3为本发明一实施例的解混淆装置的结构框图;
图4为本发明另一实施例的解混淆装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参阅图1,图1为本发明一实施例的解混淆方法的示意图。
在本实施例中,解混淆方法包括:
步骤100,从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段。
语法树是句子结构的图形表示,它代表了句子的推导结果,有利于理解句子语法结构的层次。简单说,语法树就是按照某一规则进行推导时所形成的树。
示例性地,基于原始脚本推导得到原始语法树,并从原始语法树中提取待检测子树,将混淆检测与解混淆从脚本的层面转换到语法树的层面,检测粒度更细,检测效果更好。可以理解的,每个待检测子树对应一个待检测脚本片段,一一对应。
步骤110,基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
可以理解的,传统的混淆检测方案使用字符层面的特征对恶意程序进行检测,仅使用单层特征,在本实施例中,基于字符、标记(Token)和句法(Syntax)等多层特征进行混淆检测,检测效果更好,效率更高。
示例性的,特征训练模型为机器学习模型,即通过现有的特征训练集对训练模型进行训练,使特征训练模型能有效识别特征与混淆之间的对应关系,从而能基于输入的特征检测对应待检测子树是否存在混淆。
步骤120,将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段。
解释器(Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停地进行下去。
可以理解的,将混淆子树对应的脚本片段输入解释器进行还原,即可获得解混淆后的脚本片段。
步骤130,基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
可以理解的,得到解混淆脚本片段后,可以基于解混淆脚本片段对原始脚本中对应位置的混淆脚本片段进行修正,将原始脚本中存在的混淆消除,即对原始脚本进行解混淆,得到解混淆脚本。
上述解混淆方法,通过对原始脚本对应的原始语法树基于多层特征进行混淆检测,并使用解释器进行自动化解混淆,得到解混淆脚本片段,并基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本的方法进行解混淆,可以自动进行混淆检测和解混淆,自动化程度高,效率较高。
请参阅图2,图2为本发明另一实施例的解混淆方法的示意图。
在本实施例中,解混淆方法包括:
步骤200,从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段。
示例性地,从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段还包括将待检测子树压入子树栈中。
步骤210,基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
示例性地,基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树还包括基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
具体地,待检测脚本片段的熵值可以用如下公式计算:其中,Pi是第i个字符的出现频率,为1个特征。示例性地,待检测脚本片段的标记特征包括标记(Token)的最大长度、最小长度和平均长度,为3个特征。在本实施例中,解混淆方法应用于PowerShell的解混淆中,而现在版本的PowerShell中的待检测子树共有71种不同的语法树节点,即71种节点分布特征。可以理解的,在针对其他攻击向量的解混淆中,节点分布特征数量相应变化。具体地,待检测子树的深度为1个特征。
在本实施例中,待检测子树及对应的待检测脚本片段有(1+3+71+1=76)个特征,基于上述特征,使用基于梯度下降的逻辑斯蒂回归分类模型训练,检测得到混淆子树。在其它实施例中,可以采取其他特征和特征训练模型,只需达到检测得到混淆子树的效果即可。
步骤220,将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段。
示例性地,PowerShell混淆代码的执行过程有一个特征:混淆的脚本片段必然会先被还原成原始的脚本片段,然后再被执行。也就是说,必然能找到一个合适的时候能够找到原始的脚本片段。可以理解的,将混淆子树对应的脚本片段输入PowerShell解释器进行还原,其输出就是解混淆后的脚本片段。在其它实施例中,在针对其他攻击向量的解混淆时,可以采用对应的解释器。
步骤230,基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
示例性地,基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本包括对解混淆脚本片段进行解析,得到解混淆子树;将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树;对解混淆语法树进行解析,得到解混淆脚本。
具体地,将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树还包括将解混淆子树的特征计算出来,并基于解混淆子树的特征更新原始语法树中的父节点,父节点为原始语法树中最靠近待解混淆子树对应的混淆子树的父节点。可以理解的,基于解混淆子树的特征更新原始语法树中的父节点可以加速运算过程,经过多轮计算之后,原始语法树中将没有混淆子树剩余。
步骤240,对解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
可以理解的,在后处理阶段,主要将混淆过程中引出的一些不影响语义的变换尽可能的撤销,主要使用正则匹配和字符串替换完成。具体地,在其它实施例中,也可以采用其他处理方式,只需达到修正混淆导致的偏差的效果即可。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种解混淆装置,包括:提取模块300、检测模块310、转换模块320和解混淆模块330,其中:
提取模块300,用于从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段。
检测模块310,用于基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
转换模块320,用于将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段。
解混淆模块330,用于基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
在另一个实施例中,如图4所示,提供了一种解混淆装置,包括:提取模块300、检测模块310、转换模块320、解混淆模块330和后处理模块340,其中:
提取模块300,用于从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段。
检测模块310,用于基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
检测模块310,还用于基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
检测模块310,还用于基于待检测子树和/或待检测脚本片段的多层特征,使用逻辑斯蒂回归分类模型对待检测子树进行检测,得到混淆子树。
转换模块320,用于将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段。
转换模块320,还用于将混淆子树对应的脚本片段输入PowerShell解释器,得到解混淆脚本片段。
解混淆模块330,用于基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
解混淆模块330,还用于:
对解混淆脚本片段进行解析,得到解混淆子树;
将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树;
对解混淆语法树进行解析,得到解混淆脚本。
解混淆模块330,还用于将解混淆子树的特征计算出来,并基于解混淆子树的特征更新原始语法树中的父节点,父节点为原始语法树中最靠近待解混淆子树对应的混淆子树的父节点。
后处理模块340,用于对解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
关于解混淆装置的具体限定可以参见上文中对于解混淆方法的限定,在此不再赘述。上述解混淆装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种解混淆方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段;
基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树;
将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于待检测子树和/或待检测脚本片段的多层特征,使用逻辑斯蒂回归分类模型对待检测子树进行检测,得到混淆子树。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对解混淆脚本片段进行解析,得到解混淆子树;
将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树;
对解混淆语法树进行解析,得到解混淆脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将解混淆子树的特征计算出来,并基于解混淆子树的特征更新原始语法树中的父节点,父节点为原始语法树中最靠近待解混淆子树对应的混淆子树的父节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将混淆子树对应的脚本片段输入PowerShell解释器,得到解混淆脚本片段。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
从原始脚本对应的原始语法树中提取待检测子树,每个待检测子树对应一个待检测脚本片段;
基于待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对待检测子树进行检测,得到混淆子树;
将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对待检测子树进行检测,得到混淆子树。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于待检测子树和/或待检测脚本片段的多层特征,使用逻辑斯蒂回归分类模型对待检测子树进行检测,得到混淆子树。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对解混淆脚本片段进行解析,得到解混淆子树;
将原始语法树中的混淆子树替换为解混淆子树,得到解混淆语法树;
对解混淆语法树进行解析,得到解混淆脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将解混淆子树的特征计算出来,并基于解混淆子树的特征更新原始语法树中的父节点,父节点为原始语法树中最靠近待解混淆子树对应的混淆子树的父节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将混淆子树对应的脚本片段输入PowerShell解释器,得到解混淆脚本片段。
上述解混淆方法、装置、计算机设备和存储介质,通过对原始脚本对应的原始语法树基于多层特征进行混淆检测,并使用解释器进行自动化解混淆,得到解混淆脚本片段,并基于解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本的方法进行解混淆,可以自动进行混淆检测和解混淆,自动化程度高,效率较高。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种解混淆方法,其特征在于,所述方法包括:
从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树,所述多层特征包括字符、标记和句法;将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
对解混淆脚本片段进行解析,得到解混淆子树;
将所述解混淆子树的特征计算出来,并基于所述解混淆子树的特征更新所述原始语法树中的父节点,所述父节点为所述原始语法树中最靠近待解混淆子树对应的混淆子树的父节点,即得到解混淆语法树;
对所述解混淆语法树进行解析,得到解混淆脚本。
2.根据权利要求1所述的解混淆方法,其特征在于,所述基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树包括:
基于待检测脚本片段的熵值、标记、待检测子树的节点分布、待检测子树的深度中的至少两种特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树。
3.根据权利要求1所述的解混淆方法,其特征在于,所述基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树包括:
基于所述待检测子树和/或待检测脚本片段的多层特征,使用逻辑斯蒂回归分类模型对所述待检测子树进行检测,得到混淆子树。
4.根据权利要求1所述的解混淆方法,其特征在于,所述基于所述解混淆脚本片段对原始脚本进行解混淆,得到解混淆脚本之后还包括:
对所述解混淆脚本进行正则匹配和/或字符串替换的后处理,以修正混淆导致的偏差。
5.根据权利要求1所述的解混淆方法,其特征在于,所述将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段包括:
将混淆子树对应的脚本片段输入PowerShell解释器,得到解混淆脚本片段。
6.一种解混淆装置,其特征在于,所述装置包括:
提取模块,用于从原始脚本对应的原始语法树中提取待检测子树,每个所述待检测子树对应一个待检测脚本片段;
检测模块,用于基于所述待检测子树和/或待检测脚本片段的多层特征,使用特征训练模型对所述待检测子树进行检测,得到混淆子树,所述多层特征包括字符、标记和句法;
转换模块,用于将混淆子树对应的脚本片段输入解释器,得到解混淆脚本片段;
解混淆模块,用于对解混淆脚本片段进行解析,得到解混淆子树;
将所述解混淆子树的特征计算出来,并基于所述解混淆子树的特征更新所述原始语法树中的父节点,所述父节点为所述原始语法树中最靠近待解混淆子树对应的混淆子树的父节点,即得到解混淆语法树;
对所述解混淆语法树进行解析,得到解混淆脚本。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994645.4A CN110750789B (zh) | 2019-10-18 | 2019-10-18 | 解混淆方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994645.4A CN110750789B (zh) | 2019-10-18 | 2019-10-18 | 解混淆方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750789A CN110750789A (zh) | 2020-02-04 |
CN110750789B true CN110750789B (zh) | 2021-07-20 |
Family
ID=69278857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910994645.4A Active CN110750789B (zh) | 2019-10-18 | 2019-10-18 | 解混淆方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750789B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475809B (zh) * | 2020-04-09 | 2023-10-20 | 杭州奇盾信息技术有限公司 | 脚本混淆检测方法、装置、计算机设备和存储介质 |
CN112487368B (zh) * | 2020-12-21 | 2023-05-05 | 中国人民解放军陆军炮兵防空兵学院 | 一种基于图卷积网络的函数级混淆检测方法 |
CN115225294A (zh) * | 2021-04-16 | 2022-10-21 | 深信服科技股份有限公司 | 一种混淆脚本收集方法、装置、设备及介质 |
CN114296793A (zh) * | 2021-12-29 | 2022-04-08 | 北京金堤科技有限公司 | 混淆代码的反混淆方法、装置、可读介质及电子设备 |
CN116305131B (zh) * | 2023-05-20 | 2023-08-11 | 北京长亭科技有限公司 | 脚本静态去混淆方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161381A (zh) * | 2014-09-30 | 2016-11-23 | 瞻博网络公司 | 使用正则表达式签名来去混淆脚本化语言以供网络入侵检测 |
CN109948308A (zh) * | 2019-03-13 | 2019-06-28 | 智者四海(北京)技术有限公司 | 代码安全保护方法、装置、电子设备和计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3379443A1 (en) * | 2017-03-24 | 2018-09-26 | CSPi GmbH | Method and computer device to deobfuscate a source code |
CN109033764B (zh) * | 2017-06-09 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 反混淆处理方法及终端、计算机设备 |
CN107659570B (zh) * | 2017-09-29 | 2020-09-15 | 杭州安恒信息技术股份有限公司 | 基于机器学习与动静态分析的Webshell检测方法及系统 |
-
2019
- 2019-10-18 CN CN201910994645.4A patent/CN110750789B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161381A (zh) * | 2014-09-30 | 2016-11-23 | 瞻博网络公司 | 使用正则表达式签名来去混淆脚本化语言以供网络入侵检测 |
CN109948308A (zh) * | 2019-03-13 | 2019-06-28 | 智者四海(北京)技术有限公司 | 代码安全保护方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110750789A (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750789B (zh) | 解混淆方法、装置、计算机设备和存储介质 | |
EP2609506B1 (en) | Mining source code for violations of programming rules | |
EP3506140B1 (en) | Hacking code sensing device, hacking code sensing method, and hacking code sensing program | |
EP3404572B1 (en) | Attack code detection device, attack code detection method, and attack code detection program | |
CN109753987B (zh) | 文件识别方法和特征提取方法 | |
CN111931935B (zh) | 基于One-shot 学习的网络安全知识抽取方法和装置 | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
US11775749B1 (en) | Content masking attacks against information-based services and defenses thereto | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
CN113486350B (zh) | 恶意软件的识别方法、装置、设备及存储介质 | |
CN111092894A (zh) | 一种基于增量学习的webshell检测方法、终端设备及存储介质 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN110362995A (zh) | 一种基于逆向与机器学习的恶意软件检测及分析系统 | |
CN113190847A (zh) | 一种脚本文件的混淆检测方法、装置、设备及存储介质 | |
US11868473B2 (en) | Method for constructing behavioural software signatures | |
KR101544010B1 (ko) | 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법 | |
CN110263540A (zh) | 一种代码标识方法及装置 | |
CN113971284A (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
CN115134153A (zh) | 安全评估方法、装置和模型训练方法、装置 | |
CN114637988A (zh) | 一种面向二进制的函数级软件随机化方法 | |
Feng et al. | An Interpretable Model for Large-Scale Smart Contract Vulnerability Detection | |
CN111881047A (zh) | 混淆脚本的处理方法及装置 | |
CN116578979B (zh) | 一种基于代码特征的跨平台二进制代码匹配方法及系统 | |
US20240354424A1 (en) | System and methods for unbiased transformer source code vulnerability learning with semantic code graph | |
CN115270118A (zh) | 一种混淆特征处理方法、装置及存储介质 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220908 Address after: Room 102, Block A, No. 91, Tiancheng Road, Jianggan District, Hangzhou City, Zhejiang Province, 310000 Patentee after: HANGZHOU QIDUN INFORMATION TECHNOLOGY Co.,Ltd. Patentee after: Guangzhou Qidun Information Technology Co.,Ltd. Address before: Room 102, Block A, No. 91, Tiancheng Road, Jianggan District, Hangzhou City, Zhejiang Province, 310004 Patentee before: HANGZHOU QIDUN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |