System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于克隆搜索的方法和装置制造方法及图纸_技高网

用于克隆搜索的方法和装置制造方法及图纸

技术编号:41063471 阅读:2 留言:0更新日期:2024-04-24 11:16
提供了用于标识恶意代码的方法和装置。该方法使用机器学习将新代码段与恶意代码的已知代码段进行比较。代码段被转换为向量,两个向量的余弦相似度用于标识克隆。使用了用于训练神经网络以处理非常长的代码序列和经混淆的恶意代码的技术。

【技术实现步骤摘要】

本公开涉及一种用于搜索代码克隆的方法。更具体地说,本公开涉及一种用于搜索其中代码已被混淆的代码克隆的方法。


技术介绍

1、背景说明包括有助于理解本专利技术主题的信息。这并不是承认本文提供的任何信息是现有技术或申请人承认的现有技术,或与本专利技术所要求的专利技术主题相关,也不是承认具体或隐含引用的任何出版物是现有技术或申请人承认的现有技术。

2、软件工程广泛采用开源项目,且通常依赖于公共软件包管理系统。然而,这些代码可能包含恶意代码,尤其是在代码的有效性和完整性未经验证的情况下。即使是对于安全性很关键的流行资源库(如操作系统或数据库资源库),由于拉取请求(pr)的复杂性和贡献者的可信度,它们的拉取请求(pr)不会经常受到审查。因此,可以通过简单的拉取请求偷偷植入恶意代码。

3、此外,大多数软件项目管理网站具有免费的持续集成和持续部署(ci/cd)工具,这些工具也可能被滥用。例如,免费的ci/cd工具github actions被攻击者滥用于经由提交和分叉进行加密货币挖矿,造成大量计算资源的损失。此外,最近针对npm软件包资源库的攻击影响了1300万美元的加密货币。从互联网上复制粘贴代码片段是软件开发中另一种广泛存在的不可控做法,使情况进一步升级。

4、然而,这些攻击中的恶意代码很难被检测到,原因有几个,最重要的一个是恶意代码被注入了大量良性代码中,而且这些代码还可以进一步被混淆,以掩盖其上下文含义。

5、混淆技术被广泛用于保护作者身份和逆向工程。另一方面,经混淆的代码使得安全工程师更难以发现知识产权侵权和检测混入良性代码中的恶意代码。

6、存在很多混淆技术类型。其中一些,如变量重命名、字符串分割或间隔,对代码结构具有较低的影响。其他混淆技术,如数组旋转、包装、控制流扁平化或死代码注入,对代码结构具有显著的影响。对于一些动态类型语言或脚本语言,混淆甚至可以改造节点属性,如交换字符串和十六进制数字。

7、javascript是动态类型、解释型编程语言。其灵活的语法提升了开发和适应新需求的速度,因此被广泛用于所有浏览器。随着时间的推移,数以百万计的javascript库已被开发并被上传供免费使用。在实践中,javascript代码经常被软件开发人员和威胁行为者混淆成更隐晦的形式,通过用看似随机的字符串取代有意义的函数和变量标识符,来掩盖其目的。

8、如下文所示,用于上传电子邮件和密码的简单javascript代码片段被混淆成相当复杂的代码片段。虽然这两个代码片段执行相同的功能,但它们看起来彼此完全不同,且混淆后的代码不容易被识别为原始代码的克隆。

9、

10、

11、存在多种现有工具可被用于代码克隆搜索。例如,在以下内容中描述了这种工具:s.h.ding,b.c.fung,and p.charland,kam1n0:mapreduce-based assembly clone search for reverse engineering,proceedings of the 22nd acm sigkddinternationalconference on knowledge discovery and data mining,第461–470页,2016;s.h.ding,b.c.fung,and p.charland,asm2vec:boosting static representation robustness for binary clone search against code obfuscation and compiler optimization,2019ieee symposium on security and privacy(sp),第472–489页,ieee,2019;l.jiang,g.misherghi,z.su,and s.glondu.deckard:scalable and accurate tree-based detection of code clones,29th international conference on softwareengineering(icse’07),第96–105页,ieee,2007;s.ndichu,s.kim,s.ozawa,t.misu,andk.makishima,a machine learning approach to detection of javascript-based attacks using ast features and paragraph vectors,applied soft computing,84:105721,2019;h.sajnani,v.saini,j.svajlenko,c.k.roy,and c.v.lopes,sourcerercc:scaling code clone detection to big-code,proceedings of the 38thinternational conference on software engineering,第1157–1168页,2016,通过引用并入本文。

12、这些工具利用不同类型的技术,诸如指纹或散列、基于令牌的比较、基于树的比较和十六进制差分来捕捉两个代码片段之间的语法或语义相似性。然而,大多数克隆对在语法上是不同的,而且分散在一长串代码中。

13、此外,还有研究集中在专利技术能够破解现有克隆搜索工具的混淆技术,如a.fass,m.backes,and b.stock.hidenoseek:camouflaging malicious javascript in benign asts,proceedings of the 2019acm sigsac conference on computer andcommunications security,第1899–1913页,2019;a.kulkarni and r.metta,a code obfuscation framework using code clones,proceedings of the 22nd internationalconference on program comprehension,第295–299页,2014;a.kulkarni and r.metta,a new code obfuscation scheme for software protection,2014ieee 8thinternational symposium on service oriented system engineering,第409–414页.ieee,2014;t.laszlo and a.kiss,obfuscating c++programs via control flow flattening,annales universitatis scientarum budape本文档来自技高网...

【技术保护点】

1.一种在计算设备处用于标识恶意软件的方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求2所述的方法,还包括:

4.根据权利要求2所述的方法,还包括:

5.根据权利要求1所述的方法,其中所述余弦相似度基于以下被计算出:

6.根据权利要求1所述的方法,还包括:

7.根据权利要求1所述的方法,其中步骤e)将所述余弦相似度与阈值进行比较。

8.根据权利要求1所述的方法,其中所述编码器模型使用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件,以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

9.根据权利要求6所述的方法,其中所述抽象模型利用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件,以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

10.一种用于标识恶意软件的计算设备,包括:

11.根据权利要求10所述的计算设备,其中所述处理器和所述存储器进一步协作以:对来自所述数据库的每个文件重复步骤b)、c)、d)和e)。

12.根据权利要求11所述的计算设备,其中所述处理器和所述存储器进一步协作以:

13.根据权利要求11所述的计算设备,其中所述处理器和所述存储器进一步协作以:

14.根据权利要求10所述的计算设备,其中所述余弦相似度基于以下被计算出:

15.根据权利要求10所述的计算设备,其中所述处理器和所述存储器进一步协作以:在步骤a)之前,使用抽象模型来抽象化所述第一软件文件。

16.根据权利要求10所述的计算设备,其中步骤e)将所述余弦相似度与阈值进行比较。

17.根据权利要求10所述的计算设备,其中所述编码器模型使用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

18.根据权利要求15所述的计算设备,其中所述抽象模型使用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

19.一种计算机可读介质,其上存储有用于由计算设备的处理器执行的可执行代码,所述可执行代码包括用于以下的指令:

...

【技术特征摘要】

1.一种在计算设备处用于标识恶意软件的方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求2所述的方法,还包括:

4.根据权利要求2所述的方法,还包括:

5.根据权利要求1所述的方法,其中所述余弦相似度基于以下被计算出:

6.根据权利要求1所述的方法,还包括:

7.根据权利要求1所述的方法,其中步骤e)将所述余弦相似度与阈值进行比较。

8.根据权利要求1所述的方法,其中所述编码器模型使用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件,以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

9.根据权利要求6所述的方法,其中所述抽象模型利用训练数据进行训练,所述训练数据包括多个目的文件、多个种子文件,以及关于所述目的文件中的哪些目的文件是所述种子文件中的哪些种子文件的克隆的指示。

10.一种用于标识恶意软件的计算设备,包括:

11.根据权利要求10所述的计算设备,其中所述处理器和所述存储器进一步协作以:对来自所述数据库的每个文件重复步骤b)、c)、d)和e)。

...

【专利技术属性】
技术研发人员:宋治洲丁洪辉田园L·T·李欧玮菡
申请(专利权)人:黑莓有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1