CN109657469A - 一种脚本检测方法及装置 - Google Patents

一种脚本检测方法及装置 Download PDF

Info

Publication number
CN109657469A
CN109657469A CN201811493192.9A CN201811493192A CN109657469A CN 109657469 A CN109657469 A CN 109657469A CN 201811493192 A CN201811493192 A CN 201811493192A CN 109657469 A CN109657469 A CN 109657469A
Authority
CN
China
Prior art keywords
probability value
character string
variable name
script
aliased
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
CN201811493192.9A
Other languages
English (en)
Other versions
CN109657469B (zh
Inventor
郭晓龙
姜澎
于涛
毕磊
苏蒙
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811493192.9A priority Critical patent/CN109657469B/zh
Publication of CN109657469A publication Critical patent/CN109657469A/zh
Application granted granted Critical
Publication of CN109657469B publication Critical patent/CN109657469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/562Static detection

Abstract

本发明公开了一种脚本检测方法及装置,所述方法包括:提取目标脚本中的全部变量名;计算每个变量名对应的变量名概率值;所述变量名概率值通过对所述变量名中的连续字符进行组合,并计算将得到的组合与基础概率表进行匹配而得到;进一步根据变量名概率值对全部变量名进行分类;由分类结果得到所述目标脚本的检测结果;本发明能够高效准确地实现混淆变形样本的检测,提升病毒样本的光谱通杀性。

Description

一种脚本检测方法及装置
技术领域
本发明涉及网络安全技术领域,尤其涉及一种脚本检测方法及装置。
背景技术
脚本(Script)是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。
近年来,恶意脚本呈爆炸式趋势增长,其中大量脚本使用了种类繁多的混淆手段,以避免反病毒引擎的查杀,这增加了分析人员的时间成本和反病毒引擎的检测难度。
混淆脚本的检测能力属于对抗恶意脚本的一项关键能力;因此需要提供一种能够有效进行混淆脚本检测的技术方案以实现病毒引擎的通杀性。
发明内容
本发明提供了一种脚本检测方法及装置,具体地:
一方面提供了一种脚本检测方法,所述方法包括:
提取目标脚本中的全部变量名;
计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
根据变量名概率值对全部变量名进行分类;
根据分类结果得到所述目标脚本的检测结果。
另一方面提供了一种脚本检测装置,所述装置包括:
变量名提取模块,用于提取目标脚本中的全部变量名;
变量名概率值计算模块,用于计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
变量名分类模块,用于根据变量名概率值对全部变量名进行分类;
检测结果得到模块,用于根据分类结果得到所述目标脚本的检测结果。
另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的脚本检测方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的脚本检测方法。
本发明提供的一种脚本检测方法及装置,具有的有益效果为:
本发明通过提取目标脚本中的全部变量名;计算每个变量名对应的变量名概率值;所述变量名概率值通过对所述变量名中的连续字符进行组合,并计算将得到的组合与基础概率表进行匹配而得到;进一步根据变量名概率值对全部变量名进行分类;由分类结果得到所述目标脚本的检测结果;本发明能够高效地实现混淆变形样本的检测,提升病毒样本的光谱通杀性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本说明书实施例提供的一种脚本检测方法流程图;
图2是本说明书实施例提供的计算每个变量名对应的变量名概率值之前得到基础概率表的步骤流程图;
图3是本说明书实施例提供的根据变量名概率值对全部变量名进行分类的步骤流程图;
图4是本说明书实施例提供的在所述根据变量名概率值对全部变量名进行分类之前获取基准阈值的步骤流程图;
图5是本说明书实施例提供的根据分类结果得到所述目标脚本的检测结果的步骤流程图;
图6是本说明书实施例提供的一种脚本检测的判断流程图;
图7是本说明书实施例提供的一种脚本检测装置框图;
图8是本说明书实施例提供的检测结果得到模块的组成框图;
图9是本说明书实施例提供的基准阈值获取模块的组成框图;
图10是本说明书实施例提供的基础概率表得到模块的组成框图;
图11是本说明书实施例提供的一种脚本检测设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前的脚本具有两种不同的内容:一种为人类可以很好阅读识别含义的字符串,一种为人类难以阅读、难以快速识别含义的字符串,该字符串一般是用于避开安全检测。其中,非常多的木马病毒会采用这种无法阅读的字符串来对抗反病毒引擎的查杀。
现有的反病毒引擎对此类病毒的查杀,采用的是添加特征码进行查杀的方式;然而,这对于混淆加密的脚本病毒来说,特征码的方式并不能很好的实现通杀。或是,采用hash云查的方式进行查杀,但因为hash云查只适用当前收集到的样本,对未来样本无检测能力;并且在断网情况下,此方式将失去查杀能力。基于此,本说明书实施例提出了一种全新的检测方案对此类样本进行检测查杀,能够有效判断出混淆变形样本,提升此类病毒样本的广谱通杀性,并且也能够适用在断网的场景下。
本说明书实施例提供了一种脚本检测方法,能够应用于电子设备中,其中所述电子设备可以包括智能手机、平板电脑、掌上电脑、笔记本电脑、移动互联网设备或穿戴式设备等;所述电子设备中运行有应用程序,运行的应用程序例如可以是浏览器、即时通信应用程序、支付类应用程序、游戏应用程序、阅读应用程序等等;并且,上述设备以及应该程序仅是举例,而非穷举,包含但不限于上述类型。具体地,所述方法,如图1所示,包括:
S202.提取目标脚本中的全部变量名;
通过对目标脚本进行语法分析,得到每一段脚本语句的语义类型;根据每一段脚本语句的语义类型进行识别得到其中的变量名。比如得到变量名Myfunction、sendEmail、Document_Open、uJDeXfU、vbbPXQ、XYl等等。
S204.计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
具体地,得到所述变量名概率值的步骤可以包括:
将变量名中的连续字符进行组合,使得每个变量名均具有一个或多个组合;
将得到的组合与基础概率表进行匹配得到每个组合的概率值;所述基础概率表中包括由基础语料集合中的字符组成的组合,与每个组合对应的概率值构成的对照表;
将每个变量名具有的组合的概率值进行求和计算,得到对应变量名的概率值。
以变量名Myfunction为例,若匹配得到My的概率为P1、yf的概率为P2、fu的概率为P3、un的概率为P4、nc的概率为P5、ct的概率为P6、ti的概率为P7、io的概率为P8、on的概率为P9,则得到变量名Myfunction的概率值P=P1+P2+P3+P4+P5+P6+P7+P8+P9;
其中,对于字符组合的部分可以是采用N-gram的计算方式进行处理,这里的N就是进行连续字符组合的字符数目。
给与说明的是,若设定用于进行组合的连续字符的数目为N,变量名的字符总数目小于N,则直接忽略该变量名;对剩余的变量名按照上述字符组合、匹配、计算的方式进行处理,以得到对应变量名的概率值。
一种可行的实施方式中,步骤S204计算每个变量名对应的变量名概率值,之前还包括:得到基础概率表的步骤,具体如图2所示,
S402.获取基础语料集合;所述基础语料集合包括英文字母、数字、下划线中的至少一种;
其中,所述基础语料集合中的字符串可以是采集得到的英文文章、英文电子邮件、代码等人类可阅读、可识别的内容;其中还可以是与字母、下划线的任意组合。
S404.对所述基础语料集合中的连续字符进行组合,并计算每个组合在所述基础语料集合中的概率,得到所述基础语料集合对应的基础概率表。
具体地,得到基础概率表的步骤可以包括:
将基础语料集合所有字符串中的连续字符进行组合;对得到的所有组合进行分类;计算每一类组合在所有组合中的概率;由所有组合的概率构造出基础概率表;
以下列语料为例:Nice to meet you.I am a student.
若以2个字符进行字符组合得到:ni ic ce et to om me ee et ty yo ou ui iaam ma as st tu ud de en nt;也就是该基础语料集合中所有字符组合;
得到的所有组合全部不同,则可以直接进行概率计算,也就是统计基础语料集合中的所有2个字符的个数与概率情况:
总字符串个数:22个;
ni占比:1个/22个=0.0454
ic占比:1个/22个=0.0454
ce占比:1个/22个=0.0454
et占比:2个/22个=0.0909
...
这样,每2个字符都会计算出一个概率;
若选取几乎涵盖所有的字母、数字、下划线的组合情况的庞大基础语料集合,则能够构建出一个对应的大的基础概率表;该基础概率表包括基础语料集合的字符组合与每个字符组合对应的概率值;则按照上述计算得到的概率值来看,对照表中ni所在的位置就是0.0454,et所在的位置就是0.0909。
需要说明的是,尽可能地选取数量大且种类多的字符串组成基础语料集合,以保证得到的基础概率表能够涵盖所有的可能组合,并且其中的概率值是基本稳定的。
进一步说明的是,对于基础概率表的部分,还可以使用机器学习的方法进行初始网络模型的训练,得到基础语料集合中的字符组合与对应的概率值相关的稳定模型;进一步地,通过将目标脚本中的变量名的字符组合输入所述稳定模型中,即得到对应字符组合的概率值;通过该种方式能够得到更加精确的概率结果,且具有更强的适用性。
S206.根据变量名概率值对全部变量名进行分类;
一种可行的实施方式中,步骤S206根据变量名概率值对全部变量名进行分类,如图3所示,包括:
S602.将变量名概率值与基准阈值进行比较;
S604.在变量名的概率值低于所述基准阈值时,所述变量名为混淆变量名;在变量名的概率值高于所述基准阈值时,所述变量名为非混淆变量名。
本实施例中,混淆变量名可以理解为人类不可阅读、不具有描述性的坏变量名;非混淆字符串可以理解为人类能够阅读的、能够描述出该变量所代表的事物的好变量名。
其中,步骤S206在所述根据变量名概率值对全部变量名进行分类,之前还可以包括:
获取基准阈值;
如图4所示,所述获取基准阈值的步骤包括:
S802.构建第一语料集合和第二语料集合;所述第一语料集合中的元素为非混淆字符串,所述第二语料集合中的元素为混淆字符串;
一般地,所述第一语料集合包括多个非混淆字符集合,每个非混淆字符集合可以包括多个非混淆字符串;所述第二语料集合包括多个混淆字符集合,每个混淆字符集合可以包括多个混淆字符串。
所述非混淆字符串可以理解为人类能够阅读的字符串,如love、makemoney、createfile等;所述混淆字符串可以理解为人类不能阅读的字符串,如aowkfj、esoqnfoe、aosnfkeop等。
S804.对非混淆字符串的连续字符进行组合,并计算每个组合在所述非混淆字符串中的概率,得到所述非混淆字符串对应的概率值;
按照上述对变量名字符组合的方式对所述非混淆字符串进行字符组合;在第一语料集合包括多个非混淆字符集合,每个非混淆字符集合包括多个非混淆字符串的情况下,多个非混淆字符串进行字符组合时可以进行拼接,此时得到的是非混淆字符集合的概率值。
比如,在字符组合的数目为2时,若love、makemoney、createfile属于第一语料集合中的一个非混淆字符集合,love最后的e与makemoney最后的m是进行字符组合的,makemoney最后的y与createfile最后的c也是进行字符组合的;最后根据该非混淆字符集合中的所有组合概率得到该非混淆字符集合的概率值。依此可以得到第一非混淆字符集合的概率P11、第二非混淆字符集合的概率P12、第三非混淆字符集合的概率P13等等。
进一步地,所述得到非混淆字符串对应的概率值,包括:
将所述非混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述非混淆字符串的概率值;
具体地,基于基础语料集合能够涵盖所有的可能组合,则非混淆字符串的字符组合结果必然会与基础语料集合中的字符组合结果存在相同;进一步地,从所述基础概率表中对照得出相同字符组合的概率值,进而将组合的概率值相加,得到非混淆字符串对应的概率值。其中,在第一语料集合包括多个非混淆字符集合,每个非混淆字符集合包括多个非混淆字符串的情况下,得到非混淆字符集合的概率值。
S806.对混淆字符串的连续字符进行组合,并计算每个组合在所述混淆字符串中的概率,得到所述混淆字符串对应的概率值;
所述得到混淆字符串对应的概率值,包括:
将所述混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述混淆字符串的概率值。
具体地,按照上述得到所述非混淆字符串对应的概率值的方式,得到所述混淆字符串对应的概率值。
需要给与说明的是,对所述非混淆字符串进行字符组合的字符数目,以及对所述混淆字符串进行字符组合的字符数目,均与所述变量名进行字符组合的字符数目N相同,并且与所述基础语料集合中的字符组合的字符数目相同。
S808.根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值。
一种可行的实施方式中,步骤S808根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值,包括:
获取非混淆字符串概率值中的最小概率值;
获取混淆字符串概率值中的最大概率值;
将所述最大概率值与最小概率值进行加权求平均,得到所述基准阈值。
基准阈值threshold=(min(good_data_prob)+max(bad_data_prob))/2
其中,min(good_data_prob)为非混淆字符串概率值中的最小概率值;对应地,max(bad_data_prob)为混淆字符串概率值中的最大概率值。比如,经过比较得到createfile的概率P11最小,aowkfj的概率P21最大,在满足P11>P21的情况下,则基准阈值Pthre=(P11+P21)/2。
其中,在第一语料集合包括多个非混淆字符集合,每个非混淆字符集合包括多个非混淆字符串的情况下,min(good_data_prob)为非混淆字符集合中的最小概率值;在第二语料集合包括多个混淆字符集合,每个混淆字符集合包括多个混淆字符串的情况下,min(bad_data_prob)为混淆字符集合中的最小概率值。
一种可行的实施方式,将所述最大概率值与最小概率值进行加权求平均,得到所述基准阈值,之前还可以包括:
判断非混淆字符串的最小概率值是否大于混淆字符串的最大概率值;
在非混淆字符串的最小概率值小于混淆字符串的最大概率值时,更新所述基础语料集合;
利用更新后的基础语料集合重新计算非混淆字符串的概率值以及混淆字符串的概率值。
具体地,正常情况下,最小非混淆字符串概率要比最大的混淆字符串概率大,这样就能区分出非混淆字符串与混淆字符串:
min(good_data_prob)>max(bad_data_prob)
如果无法分出混淆与非混淆字符串,则说明基础数据选择有问题,可以更新优化基础数据,直到非混淆字符串概率与混淆字符串概率可以明确分开。比如,重新选择基础语料集合,选取具有更多字符数量和字符种类的基础语料集合。
需要说明的是,根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值的方式并不限于使用上述加权求平均的方式得到,还可以是使用log的计算方法或是其他的计算方式,以得到作为判定对象的基准阈值即可。
进一步说明的是,本实施例中的字符组合的数目并不限于上述的2个字符,还可以是3个字符或是其他数目的字符,可以根据需求进行适应性的选取。
其中,本说明书提供的脚本检测方案还能够应用于无意义的垃圾邮箱检测、无意义的论坛灌水评论、账号ID随机生成检测等等。例如在垃圾邮箱检测的应用下,所述脚本属于邮箱账号构成的文本,如sdoiwekflso92jdf@163.com、summerliu@139.com等等,所述变量名为sdoiwekflso92jdf、summerliu,利用本说明书技术方案进行邮箱账号名称是混淆还是非混淆的检测,进而得到是否属于正常的账号名称,从而得整个脚本的检测结果;同样的,还能够进行其他恶意账号或论坛灌水评论等随机生成的字符串的检测,在检测出属于随机生成的字符串的情况下将其删除。
S208.根据分类结果得到所述目标脚本的检测结果。
其中,步骤S208根据分类结果得到所述目标脚本的检测结果,如图5所示,可以包括:
S1002.获取所述混淆变量名的数量;
S1004.得到所述混淆变量名的数量与所述全部变量名的数量的比例关系;
S1006.根据所述比例关系确定出所述目标脚本的检测结果。
具体地,步骤S1006根据所述比例关系得到所述目标脚本的检测结果,包括:
在所述比例关系大于预设比例时,所述目标脚本为混淆变形脚本。
本实施例中,从目标脚本中提取出所有的变量名,判断出所有变量名中混淆变量名的个数m,非混淆变量名个数n;进一步计算得到混淆变量名的概率:prob=m/(n+m);比如,提取了8个变量名,其中有5个为混淆,则混淆的占比为5/8*100%=62.5%,即此脚本有62.5%的概率为混淆变形样本;若所述预设比例为50%,62.5%>50%,则可以认为该脚本属于混淆变形脚本。
其中,在某些特定场景下,判断出一个脚本为混淆变形文件后,90%以上的概率可以直接判定为病毒文件;例如:Office宏代码文件如果使用了混淆变形,则基本99%可能为病毒。并且,本实施例不仅仅能够应用到Office宏代码的脚本检测中,也可以应用到其他脚本语言的检测中。
一种具体的实施方式,如图6所示给出了该实施例提供的脚本检测的判断流程图;主要分为混淆变形脚本检测部分和混淆变量名检测部分;
其中,在混淆变量脚本检测部分,主要包括:
提取得到变量名;
对变量名是否属于混淆变量名进行检测;
在检测得到的混淆变量名的占比大于预设比例时,则该脚本为混淆变形脚本,在占比小于预设比例时,该脚本为正常脚本。
具体地,在混淆变量名检测部分,主要包括:
收集基础语料集合;
根据基础语料集合得到基础概率表;
待检测的变量名根据所述基础概率表得到其对应的概率值;
变量名概率值与基准阈值进行比较,在变量名概率值大于基准阈值则判定为混淆变量名;在变量名概率值小于基准阈值则判定为非混淆变量名(正常变量名/好变量名)。
本说明书提供的实施例能够有效地检测出目标脚本是否为混淆变形脚本,提升病毒样本的光谱通杀性,进一步提升电子设备的安全性,以及用户对相应电子设备的使用体验。
本说明书实施例提供了一种脚本检测装置,如图7所示,所述装置包括:
变量名提取模块202,用于提取目标脚本中的全部变量名;
变量名概率值计算模块204,用于计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
变量名分类模块206,用于根据变量名概率值对全部变量名进行分类;
检测结果得到模块208,用于根据分类结果得到所述目标脚本的检测结果。
具体地,所述变量名分类模块206,包括:
变量名分类单元,用于将变量名概率值与基准阈值进行比较;在变量名的概率值低于所述基准阈值时,所述变量名为混淆变量名;在变量名的概率值高于所述基准阈值时,所述变量名为非混淆变量名。
其中,所述检测结果得到模块208,如图8所示,包括:
混淆变量名数量获取单元402,用于获取所述混淆变量名的数量;
比例关系得到单元404,用于得到所述混淆变量名的数量与所述全部变量名的数量的比例关系;
检测结果确定单元406,用于根据所述比例关系确定出所述目标脚本的检测结果。
进一步地,所述装置还包括:
基准阈值获取模块210,用于获取基准阈值;
所述基准阈值获取模块210,如图9所示,包括:
语料集合构建单元602,用于构建第一语料集合和第二语料集合;所述第一语料集合中的元素为非混淆字符串,所述第二语料集合中的元素为混淆字符串;
非混淆字符串概率得到单元604,用于对非混淆字符串的连续字符进行组合,并计算每个组合在所述非混淆字符串中的概率,得到所述非混淆字符串对应的概率值;
混淆字符串概率得到单元606,用于对混淆字符串的连续字符进行组合,并计算每个组合在所述混淆字符串中的概率,得到所述混淆字符串对应的概率值;
基准阈值得到单元608,用于根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值。
一种可行的实施方式中,所述装置还包括:
基础概率表得到模块212,如图10所示,包括:
基础语料集合获取单元802,用于获取基础语料集合;所述基础语料集合包括英文字母、数字、下划线中的至少一种;
基础概率表得到单元804,用于对所述基础语料集合中的连续字符进行组合,并计算每个组合在所述基础语料集合中的概率,得到所述基础语料集合对应的基础概率表。
详细地,所述非混淆字符串概率得到单元,包括:
非混淆字符串概率得到子单元,用于将所述非混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述非混淆字符串的概率值;
所述混淆字符串概率得到单元,包括:
混淆字符串概率得到子单元,用于将所述混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述混淆字符串的概率值。
其中,所述基准阈值得到单元,包括:
最小概率值获取子单元,用于获取非混淆字符串概率值中的最小概率值;
最大概率值获取子单元,用于获取混淆字符串概率值中的最大概率值;
基准阈值得到子单元,用于将所述最大概率值与最小概率值进行加权求平均,得到所述基准阈值。
一种可行的实施方式中,所述基准阈值获取模块,包括:
概率值判断单元,用于判断非混淆字符串的最小概率值是否大于混淆字符串的最大概率值;
基础语料集合更新单元,用于在非混淆字符串的最小概率值小于混淆字符串的最大概率值时,更新所述基础语料集合;
概率值重新计算单元,用于利用更新后的基础语料集合重新计算非混淆字符串的概率值以及混淆字符串的概率值。
具体地,所述检测结果确定单元,包括:
检测结果确定子单元,用于在所述比例关系大于预设比例时,所述目标脚本为混淆变形脚本。
本说明书实施例提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方法实施例所述的脚本检测方法。
本说明书实施例还提供了一种脚本检测设备的结构示意图,如图11所示,客户端可以安装在该设备上,该设备可以用于实施上述实施例中提供的脚本检测方法。具体来讲:
所述设备可以包括RF(Radio Frequency,射频)电路810、包括有一个或一个以上计算机可读存储介质的存储器820、输入单元830、显示单元840、传感器850、音频电路860、WiFi(wireless fidelity,无线保真)模块870、包括有一个或者一个以上处理核心的处理器880、以及电源890等部件。本领域技术人员可以理解,图11中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器880处理;另外,将涉及上行的数据发送给基站。通常,RF电路810包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器820还可以包括存储器控制器,以提供处理器880和输入单元830对存储器820的访问。
输入单元830可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元830可包括触敏表面831以及其他输入设备832。触敏表面831,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面831上或在触敏表面831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面831。除了触敏表面831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及所述设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元840可包括显示面板841,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板841。进一步的,触敏表面831可覆盖显示面板841,当触敏表面831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。其中,触敏表面831与显示面板841可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面831与显示面板841集成而实现输入和输出功能。
所述设备还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在所述设备移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与所述设备之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一设备,或者将音频数据输出至存储器820以便进一步处理。音频电路860还可能包括耳塞插孔,以提供外设耳机与所述设备的通信。
WiFi属于短距离无线传输技术,所述设备通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块870,但是可以理解的是,其并不属于所述设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行所述设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器880可包括一个或多个处理核心;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
所述设备还包括给各个部件供电的电源890(比如电池),优选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源890还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,所述设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,设备的显示单元是触摸屏显示器,设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中方法实施例中的指令。
本发明的实施例还提供了一种计算机存储介质,所述存储介质可设置于客户端之中以保存用于实现方法实施例中一种脚本检测方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的脚本检测方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中加载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种脚本检测方法,其特征在于,所述方法包括:
提取目标脚本中的全部变量名;
计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
根据变量名概率值对全部变量名进行分类;
根据分类结果得到所述目标脚本的检测结果。
2.根据权利要求1所述的脚本检测方法,其特征在于,所述计算每个变量名对应的变量名概率值,之前包括:
得到基础概率表;
所述得到基础概率表的步骤,包括:
获取基础语料集合;所述基础语料集合包括英文字母、数字、下划线中的至少一种;
对所述基础语料集合中的连续字符进行组合,并计算每个组合在所述基础语料集合中的概率,得到所述基础语料集合对应的基础概率表。
3.根据权利要求1所述的脚本检测方法,其特征在于,所述根据变量名概率值对全部变量名进行分类,包括:
将变量名概率值与基准阈值进行比较;
在变量名的概率值低于所述基准阈值时,所述变量名为混淆变量名;在变量名的概率值高于所述基准阈值时,所述变量名为非混淆变量名。
4.根据权利要求3所述的脚本检测方法,其特征在于,所述根据分类结果得到所述目标脚本的检测结果,包括:
获取所述混淆变量名的数量;
得到所述混淆变量名的数量与所述全部变量名的数量的比例关系;
根据所述比例关系确定出所述目标脚本的检测结果。
5.根据权利要求3所述的脚本检测方法,其特征在于,在所述根据变量名概率值对全部变量名进行分类,之前包括:
获取基准阈值;
所述获取基准阈值的步骤包括:
构建第一语料集合和第二语料集合;所述第一语料集合中的元素为非混淆字符串,所述第二语料集合中的元素为混淆字符串;
对非混淆字符串的连续字符进行组合,并计算每个组合在所述非混淆字符串中的概率,得到所述非混淆字符串对应的概率值;
对混淆字符串的连续字符进行组合,并计算每个组合在所述混淆字符串中的概率,得到所述混淆字符串对应的概率值;
根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值。
6.根据权利要求5所述的脚本检测方法,其特征在于,
所述得到非混淆字符串对应的概率值,包括:
将所述非混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述非混淆字符串的概率值;
所述得到混淆字符串对应的概率值,包括:
将所述混淆字符串的字符组合结果与所述基础语料集合的字符组合结果进行对照;根据对照结果从所述基础概率表中得到所述混淆字符串的概率值。
7.根据权利要求5所述的脚本检测方法,其特征在于,所述根据所述非混淆字符串对应的概率值以及混淆字符串对应的概率值,得到所述基准阈值,包括:
获取非混淆字符串概率值中的最小概率值;
获取混淆字符串概率值中的最大概率值;
将所述最大概率值与最小概率值进行加权求平均,得到所述基准阈值。
8.根据权利要求7所述的脚本检测方法,其特征在于,将所述最大概率值与最小概率值进行加权求平均,得到所述基准阈值,之前包括:
判断非混淆字符串的最小概率值是否大于混淆字符串的最大概率值;
在非混淆字符串的最小概率值小于混淆字符串的最大概率值时,更新所述基础语料集合;
利用更新后的基础语料集合重新计算非混淆字符串的概率值以及混淆字符串的概率值。
9.根据权利要求4所述的脚本检测方法,其特征在于,所述根据所述比例关系得到所述目标脚本的检测结果,包括:
在所述比例关系大于预设比例时,所述目标脚本为混淆变形脚本。
10.一种脚本检测装置,其特征在于,所述装置包括:
变量名提取模块,用于提取目标脚本中的全部变量名;
变量名概率值计算模块,用于计算每个变量名对应的变量名概率值;所述变量名概率值是通过对每个变量名中的连续字符进行组合,将得到的组合与基础概率表进行匹配而得到的;
变量名分类模块,用于根据变量名概率值对全部变量名进行分类;
检测结果得到模块,用于根据分类结果得到所述目标脚本的检测结果。
CN201811493192.9A 2018-12-07 2018-12-07 一种脚本检测方法及装置 Active CN109657469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811493192.9A CN109657469B (zh) 2018-12-07 2018-12-07 一种脚本检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811493192.9A CN109657469B (zh) 2018-12-07 2018-12-07 一种脚本检测方法及装置

Publications (2)

Publication Number Publication Date
CN109657469A true CN109657469A (zh) 2019-04-19
CN109657469B CN109657469B (zh) 2023-02-24

Family

ID=66112887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811493192.9A Active CN109657469B (zh) 2018-12-07 2018-12-07 一种脚本检测方法及装置

Country Status (1)

Country Link
CN (1) CN109657469B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083815A (zh) * 2019-05-07 2019-08-02 中冶赛迪重庆信息技术有限公司 一种同义变量识别方法和系统
CN117131485A (zh) * 2023-09-22 2023-11-28 杭州融御科技有限公司 一种软件服务的授权方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1752888A (zh) * 2005-11-08 2006-03-29 朱林 用于移动/智能终端的病毒特征提取和检测系统及方法
CN101901221A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击的检测方法和装置
US20120159629A1 (en) * 2010-12-16 2012-06-21 National Taiwan University Of Science And Technology Method and system for detecting malicious script
CN104636664A (zh) * 2013-11-08 2015-05-20 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN105740712A (zh) * 2016-03-09 2016-07-06 哈尔滨工程大学 基于贝叶斯网络的Android恶意行为检测方法
CN106650451A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN106650449A (zh) * 2016-12-29 2017-05-10 哈尔滨安天科技股份有限公司 一种基于变量名混淆程度的脚本启发式检测方法及系统
CN107145780A (zh) * 2017-03-31 2017-09-08 腾讯科技(深圳)有限公司 恶意软件检测方法及装置
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
CN107683478A (zh) * 2015-02-26 2018-02-09 迈克菲有限责任公司 缓解恶意软件的系统和方法
CN108280347A (zh) * 2017-12-25 2018-07-13 北京奇安信科技有限公司 一种病毒扫描的方法及装置
CN108875378A (zh) * 2018-06-12 2018-11-23 珠海市君天电子科技有限公司 脚本病毒检测方法、装置、电子设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1752888A (zh) * 2005-11-08 2006-03-29 朱林 用于移动/智能终端的病毒特征提取和检测系统及方法
CN101901221A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击的检测方法和装置
US20120159629A1 (en) * 2010-12-16 2012-06-21 National Taiwan University Of Science And Technology Method and system for detecting malicious script
CN104636664A (zh) * 2013-11-08 2015-05-20 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN107683478A (zh) * 2015-02-26 2018-02-09 迈克菲有限责任公司 缓解恶意软件的系统和方法
CN105740712A (zh) * 2016-03-09 2016-07-06 哈尔滨工程大学 基于贝叶斯网络的Android恶意行为检测方法
CN106650449A (zh) * 2016-12-29 2017-05-10 哈尔滨安天科技股份有限公司 一种基于变量名混淆程度的脚本启发式检测方法及系统
CN106650451A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN107145780A (zh) * 2017-03-31 2017-09-08 腾讯科技(深圳)有限公司 恶意软件检测方法及装置
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
CN108280347A (zh) * 2017-12-25 2018-07-13 北京奇安信科技有限公司 一种病毒扫描的方法及装置
CN108875378A (zh) * 2018-06-12 2018-11-23 珠海市君天电子科技有限公司 脚本病毒检测方法、装置、电子设备及存储介质

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ANUMEHA SHAH: "Malicious JavaScript Detection using Statistical Language Model", 《SJSU SCHOLARWORKS 》 *
YOUNGHAN CHOI等: "Automatic Detection for Javascript Obfuscation Attacks in Web Pages through String Pattern Analysis", 《FUTURE GENERATION INFORMATION TECHNOLOGY》 *
刘岳等: "基于特征组合的Powershell恶意代码检测方法", 《信息安全学报》 *
吴可可: "基于CNN的JS代码混淆检测方法", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
宣以广等: "基于字符熵的JavaScript代码混淆自动检测方法", 《计算机应用与软件》 *
桓自强等: "基于Android权限机制的应用安全检测方法", 《计算机工程与设计》 *
王卫红等: "基于N-Gram与加权分类器集成的恶意代码检测", 《浙江工业大学学报》 *
胡鹏程等: "基于人工特征与深度特征的DGA域名检测算法", 《计算机科学》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083815A (zh) * 2019-05-07 2019-08-02 中冶赛迪重庆信息技术有限公司 一种同义变量识别方法和系统
CN117131485A (zh) * 2023-09-22 2023-11-28 杭州融御科技有限公司 一种软件服务的授权方法
CN117131485B (zh) * 2023-09-22 2024-02-20 杭州融御科技有限公司 一种软件服务的授权方法

Also Published As

Publication number Publication date
CN109657469B (zh) 2023-02-24

Similar Documents

Publication Publication Date Title
CN107944380B (zh) 身份识别方法、装置及存储设备
CN104951432B (zh) 一种对信息进行处理的方法及装置
CN104679969B (zh) 防止用户流失的方法及装置
CN107357725B (zh) 应用测试方法及装置
US20150178336A1 (en) Method, device and storage medium for providing data statistics
CN104516887B (zh) 一种网页数据搜索方法、装置和系统
CN105320701B (zh) 功能点测试实现方式的筛选方法、装置及终端
CN107526722A (zh) 一种人物关系分析方法及终端
CN106126411B (zh) 一种对被测程序代码进行测试的方法和装置
CN110399720A (zh) 一种文件检测的方法以及相关装置
CN107145780A (zh) 恶意软件检测方法及装置
CN106022071A (zh) 一种指纹解锁的方法及终端
CN109067981A (zh) 分屏应用切换方法、装置、存储介质和电子设备
CN106534093B (zh) 一种终端数据的处理方法、装置及系统
CN111913620A (zh) 通知类消息展示方法、装置、存储介质及移动终端
CN106056350B (zh) 一种电子邮件的信息抽离方法、装置和系统
CN109657469A (zh) 一种脚本检测方法及装置
CN109246233A (zh) 基于在线监控的数据处理方法、装置、设备及存储介质
CN105807908B (zh) 一种切换工作模式的方法和装置
CN108897482A (zh) 一种信息显示方法及终端设备
CN104731782B (zh) 一种信息处理的方法及移动终端
CN106657254B (zh) 一种联系人信息的同步方法、装置及系统
CN104424324B (zh) 列表组件中定位列表项的方法及装置
CN109634481A (zh) 文本显示方法、装置、移动终端及存储介质
CN108112016B (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