[发明专利]一种软件安全加固方法在审
申请号: | 201711337427.0 | 申请日: | 2017-12-14 |
公开(公告)号: | CN107992724A | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 王俊峰;吴鹏;田斌;王标;刘东 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/56;G06F9/455 |
代理公司: | 成都信博专利代理有限责任公司51200 | 代理人: | 张辉 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 安全 加固 方法 | ||
技术领域
本发明涉及计算机软件安全领域,特别是一种全方位的、分层次的软件安全加固方法。
背景技术
软件安全是指采用工程化的方法使得软件在敌对攻击的情况下仍能够正常工作的思想,即采用系统化、规范化和数量化的方法来指导构建安全的软件。软件安全作为信息技术发展的基石,对社会经济增长、国家发展具有重要推动力,标志着一个国家的战略方向,成为衡量一个国家综合国力的标志之一。
软件安全面临的主要问题包括:软件被非法传播使用导致知识产权被破坏、软件被逆向分析而导致软件的恶意破坏、软件潜在漏洞被发掘并被恶意利用等。2015年丹麦安全公司Secunia的研究团队对来自263个软件供应商的2484款软件进行漏洞扫描,结果发现总漏洞数为16081个。与此同时,软件盗版带来的层出不穷的侵权事件是造成信息泄露的重要原因。目前针对软件安全加固方面的研究,通常以软件的某一侧面为保护对象,主要集中软件防盗版、防逆向、授权加密和防篡改等方面,所使用的技术包括软件水印、代码混淆、软件加壳、虚拟机保护技术等。
综上可知,当前软件安全形势严峻,同时对应的安全加固技术仅从一个或某几个侧面来对软件进行增强保护,没有形成一套完整的软件安全加固保护体系,不能对软件进行全面有效的保护。
发明内容
本发明所要解决的技术问题是提供一种软件安全加固方法,针对软件侵权、软件逆向、软件漏洞等各种软件安全问题,实现软件的安全加固防护。
为解决上述技术问题,本发明采用的技术方案是:一种软件安全加固方法,包括以下步骤:
步骤1:对软件的源代码进行安全加固,包括源代码自身的安全及形式安全,即:
首先根据源代码的类型来初步选择工具集;其次根据当前扫描的目标,在选择的工具集中选择最适合的漏洞扫描工具;再次是执行漏洞扫描,生成扫描结果报告;最后根据扫描结果报告来对源文件做修改;
步骤2:把源代码编译为可执行文件级后,对可执行文件进行加固,包括静态防护与动态防护;其中,静态防护为:
首先对软件实施布局混淆,将可读性好的代码修改为人为难以阅读的代码,其次实施数据混淆,对软件涉及的数据做等价替换,最后实施控制混淆,从软件执行流程上做等价替换,达到软件不能分析出原软件算法逻辑的程度;
动态防护为:利用技术手段检测当前进程是否处于被调试环境中,如果正在被调试则改变正常的执行路径或者修改自身程序让自身崩溃,从而增加调试时间和复杂度,以此阻止可执行文件被调试跟踪;
步骤3:将软件与使用者物理隔离,保护软件运行环境安全。
进一步的,所述步骤1对软件的源代码进行安全加固的步骤分为多次执行,其执行的依据是针对不同的源代码,分为通用的漏洞扫描及专用的漏洞扫描。
进一步的,所述步骤2中动态防护采用反调试方法:使用系统函数检测、特征检测及行为检测相结合的方式来实现反调试,首先利用操作系统中提供系统函数(比如Windows系统中的IsDebuggerPresent、CheckRemoteDebuggerPresent函数)来检测自身是否正在被调试,其次枚举当前运行的所有进程,并在进程的内存空间中搜索不同调试器的特征代码段及调试器窗口,再次利用软件正常运行与调试运行的行为差异(比如执行指令的时间差),实现软件的反调试功能。
进一步的,所述步骤3具体为:软件部署在专用的云平台中,且应用以独立的虚拟机部署,即单一的应用部署在虚拟机隔离的不同主机上,实现应用的隔离部署;客户端通过云桌面或者SaaS模式来访问应用,用户与软件的交互只有输入与输出,整个使用过程不接触物理的软件。
与现有技术相比,本发明的有益效果是:1)软件加固通过分层级实现,在不同的层中采用不同的技术手段来保证来增强软件的安全,源代码采用漏洞扫描技术,二进制文件采用混淆及反调试技术,运行环境采用隔离部署技术,全方位提高软件的安全能力,可保证软件不被恶意破坏及侵权传播,保证软件安全。2)本方法既适用于新设计软件也适用于的现有成熟软件,前者建议采用本方法的三层防护方案,而后者可以根据实际需要来针对其中一层或者多层做软件安全加固防护。
附图说明
图1是本发明中软件安全加固体系整体结构图。
图2是本发明中源码漏洞检测示意图。
图3是本发明中可执行文件混淆方法。
图4是本发明中软件隔离部署方法。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711337427.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于动态链接库的Java源码保护方法
- 下一篇:包裹机器人