[发明专利]基于Go语言代码混淆的单元众包保护方法、装置及存储介质在审
申请号: | 202110691246.8 | 申请日: | 2021-06-22 |
公开(公告)号: | CN113392012A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 黄松 | 申请(专利权)人: | 中国人民解放军陆军工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
地址: | 210014 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 go 语言 代码 混淆 单元 保护 方法 装置 存储 介质 | ||
本发明公开了一种基于Go语言代码混淆的单元众包保护方法、装置及存储介质,其方法包括:针对待测代码所用依赖包目录的线索隐藏;和/或针对待测代码所用声明的线索隐藏;和/或针对待测代码的任务包的复制增生;和/或针对待测代码进行修改误导处理;本发明能够解决了单元众包软件测试下可能出现的,攻击者使用代码还原算法还原出发包方提交给众测平台的完整项目码造成的知识产权泄露问题,提高了单元众包软件的安全性。
技术领域
本发明涉及一种基于Go语言代码混淆的单元众包保护方法、装置及存储介质,属于众包测试技术领域。
背景技术
在单元众包软件测试过程中,主要风险源于开放环境下发包方知识产权的泄露。理想状态下的单元众包测试是所有人都可信,发包方不进行保护,测试工人自由测试,充分发挥利用了众包环境的多样性。这种众包工人自由地下载、测试、上传结果并且和社区间的工人进行讨论但缺少监督的众包模式可以定义为“自由主义众测”。
目前大部分的众包软件测试都是遵循自由众测模式,原因是大部分的众包软件测试是黑盒的。通过代码保护技术,任务发布者可以将任务打造为一个安全的黑盒,从而避免攻击者对代码的盗取。如果发包方自信自己的加密黑盒能够保障程序代码的安全,那么他们完全可以接受自由主义众测的模式。然而白盒代码测试是需要工人对代码进行阅读的。程序代码不受加密壳的保护,众测工人可以轻松获取完整的项目代码。为了防止这种情况可能造成的发包方的知识产权泄漏,我们会对项目代码进行分割,将一个完整项目分割成多个测试任务包,随后分发给不同的测试工人组进行测试,这种方法所起到的保护作用十分有限。
上述方法可以对众测项目的知识产权提供第一层保护,防止攻击者一次获取完整的程序代码。当攻击者混迹于某个工人组中时,该攻击者只能获得那个任务组中的代码。但是所有不同的单元众测代码任务包对各个测试组都是公开的,如果攻击者通过扩大攻击范围,获取每个测试组中的项目代码,再通过还原算法将这些代码还原成原始程序,那么攻击者最终还是能够获得原始项目。
为了解决上述问题,本申请提出了一种基于Go语言代码混淆的单元众包保护方法、装置及存储介质。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于Go语言代码混淆的单元众包保护方法、装置及存储介质,解决单元众包软件测试过程中,攻击者获取多个任务包后使用还原算法还原出完整的待测项目引起的众测项目知识产权泄露的预防问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种基于Go语言代码混淆的单元众包保护方法,所述方法包括:
针对待测代码所用依赖包目录的线索隐藏;和/或
针对待测代码所用声明的线索隐藏;和/或
针对待测代码的任务包的复制增生;和/或
针对待测代码进行修改误导处理。
优选的,所述针对待测代码所用依赖包目录的线索隐藏包括:
删除待测代码所用依赖包的具体目录Path的import声明;和/或
使用抽象语法树扫描算法扫描待测代码的Go源文件代码从而获取抽象语法树,提取抽象语法树中import字段,直接修改import字段的导入包并统一导入包包名。
优选的,所述针对待测代码所用声明的线索隐藏包括:
对待测代码的程序包包名进行重命名使其满足修改前后的程序包语法不同;对待测代码的程序包的声明进行修改使其满足修改前后的程序包代码风格不同。
优选的,所述针对待测代码的任务包的复制增生包括:
复制待测代码的每个任务包从而对应产生语义相同而标识符命名不同的任务包;和/或
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军陆军工程大学,未经中国人民解放军陆军工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110691246.8/2.html,转载请声明来源钻瓜专利网。