软件安全性分析方法及分析装置、电子设备及存储介质制造方法及图纸

技术编号:28623695 阅读:33 留言:0更新日期:2021-05-28 16:19
本申请提供软件安全性分析方法及分析装置、电子设备及存储介质。所述方法包括:在静态分析工具中打开目标应用软件的指令流文件,所述指令流文件通过动态调试器获取并保存;将所述指令流文件的每一条指令的动态调试器地址转换为静态分析工具地址;标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析。

【技术实现步骤摘要】
软件安全性分析方法及分析装置、电子设备及存储介质
本申请涉及软件安全
,具体涉及软件安全性分析方法及分析装置、电子设备及存储介质。
技术介绍
计算机软件的普遍应用带给人们越来越多的便捷,并日益影响人们的日常生活。但计算机软件中存在大量的错误及漏洞,隐藏着巨大的风险,其中的安全漏洞,容易被不法分子利用,造成声誉和金钱的损失。软件安全性分析一般利用静态分析与动态调试的方法对应用程序进行安全测试。静态分析是在不执行计算机程序的条件下,对源代码进行分析,找出代码缺陷。静态分析局限性在于程序执行的不确定性,例如,传入参数不同,执行到的代码分支就不同。动态调试是使用调试工具加载程序,观察运行过程中的状态,如寄存器内容,函数执行结果,内存使用情况等等,分析函数功能,明确代码逻辑,挖掘可能存在的安全问题。而动态调试虽然解决了静态分析的不确定性,由于一般的动态调试器(OdllyDbg)没有记录执行代码流的功能,每分析一个代码块就需要执行一次或者多次程序,实际的安全分析操作由于软件代码量庞大,没有源码的情况下,需要耗费大量的时间。现有的软件分析提出了一种多维图谱抽取框架,基于该框架定义多维图谱描述约束,使多维图谱抽取与具体的逆向分析过程之间相互独立。给出逆向分析算法库的构造方式及算法库的调用接口,实现基于多维图谱描述的抽象图谱生成。设计基于图形描述语言DOT的抽象图谱转换接口,实现抽象图谱的快速可视化,最后给出多维图谱抽取算法,提高软件安全性分析效率。该方法使用的前提是得到待分析算法库的构造方式及算法库的调用接口,在实际的软件安全性分析环境中,我们往往无法得到待分析算法库的构造方式及算法库的调用接口,因此该技术使用受到限制,并且该技术只针对算法库,无法对任意代码段进行安全分析。
技术实现思路
本申请实施例提供了一种软件安全性分析方法,包括:在静态分析工具中打开目标应用软件的指令流文件,所述指令流文件通过动态调试器获取并保存;将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址;标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析。根据一些实施例,所述动态调试器包括Windbg动态调试器、ollydbg动态调试器的至少一种,所述静态分析工具包括IDA静态分析工具。根据一些实施例,所述指令流文件通过动态调试器获取并保存,包括:在所述动态调试器中加载目标应用软件;打开指令流记录文件,开启指令流记录;在待分析的代码块设置断点;根据预设规则,在所述断点开始执行调试,记录执行的指令;保存记录的指令流到指令流文件。根据一些实施例,所述在静态分析工具中打开目标应用软件的指令流文件,包括:在所述静态分析工具中导入脚本引擎;在所述脚本引擎中,打开目标应用软件的所述指令流文件。根据一些实施例,所述将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址,包括:读取所述指令流文件的指令的动态调试器地址;将所述指令的动态调试器地址转换为所述指令的静态分析工具地址。根据一些实施例,所述将所述指令的动态调试器地址转换为所述指令的静态分析工具地址,包括:在所述脚本引擎中获取目标应用软件的动态调试器基址和静态分析工具基址;根据所述指令的动态调试器地址、所述动态调试器基址、所述静态分析工具基址获取所述指令的静态分析工具地址。根据一些实施例,所述脚本引擎包括IDC脚本引擎、idapython脚本引擎的至少一种。本申请实施例还提供一种软件安全性分析装置,包括动态调试器、静态分析工具,所述动态调试器用于获取并保存目标应用软件的指令流文件;所述静态分析工具包括地址转换模块、指令标识模块,所述地址转换模块用于打开所述指令流文件,将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址;所述指令标识模块用于标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析。根据一些实施例,所述动态调试器为Windbg动态调试器,所述静态分析工具为IDA静态分析工具,所述地址转换模块包括IDC脚本引擎、idapython脚本引擎的至少一种。根据一些实施例,所述动态调试器包括加载单元、指令流记录单元、断点设置单元、指令追踪单元、存储单元,所述加载单元用于利用动态调试器加载目标应用软件;所述指令流记录单元用于打开指令流记录文件,开启指令流记录;所述断点设置单元用于在待分析的代码块设置断点;所述指令追踪单元用于根据预设规则,在所述断点开始执行调试,记录执行的指令流;所述存储单元用于保存记录的指令流到指令流文件。根据一些实施例,所述地址转换模块包括基址获取单元、指令流文件打开单元、地址读取单元、地址转换单元,所述基址获取单元用于获取目标应用软件在动态调试器基址和静态分析工具基址;所述指令流文件打开单元用于打开所述指令流文件;所述地址读取单元用于读取所述指令流文件的指令的动态调试器地址;所述地址转换单元用于将所述指令的动态调试器地址转换为所述指令的静态分析工具地址。根据一些实施例,所述地址转换单元包括地址计算单元,所述地址计算单元用于根据所述指令的动态调试器地址、所述动态调试器基址、所述静态分析工具基址获取所述指令的静态分析工具地址。本申请实施例还提供一种电子设备,包括一个或多个处理器、存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行如上所述的方法。本申请实施例还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时执行如上所述的方法。本申请实施例提供的技术方案,将动态调试工具和静态分析工具协同工作,将静态分析的直观性和动态调试的确定性相结合,无需待分析应用程序的源码,调用接口等,在纯黑盒的环境下对应用程序进行分析,使用静态分析工具完成指令流标识,节约时间,能够同时克服动态调试耗费时间过多的缺点和静态分析的不确定性的缺点,提高软件安全性分析的效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种软件安全性分析方法流程示意图之一;图2是本申请实施例提供的一种软件安全性分析方法流程示意图之二;图3是本申请实施例提供的一种软件安全性分析装置功能组成框图;图4是本申请实施例提供的一种动态调试器功能组成框图;图5是本申请实施例提供的一种静态分析工具功能组成框图;图6是本申请实施例提供的一种地址转换模块功能组成框图;图7是本申请实施例提供的一种电子设备功能组成框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技本文档来自技高网
...

【技术保护点】
1.一种软件安全性分析方法,包括:/n在静态分析工具中打开目标应用软件的指令流文件,所述指令流文件通过动态调试器获取并保存;/n将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址;/n标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析。/n

【技术特征摘要】
1.一种软件安全性分析方法,包括:
在静态分析工具中打开目标应用软件的指令流文件,所述指令流文件通过动态调试器获取并保存;
将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址;
标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析。


2.根据权利要求1所述的方法,其中,所述动态调试器包括Windbg动态调试器、ollydbg动态调试器的至少一种,所述静态分析工具包括IDA静态分析工具。


3.根据权利要求1所述的方法,其中,所述指令流文件通过动态调试器获取并保存,包括:
在所述动态调试器中加载目标应用软件;
打开指令流记录文件,开启指令流记录;
在待分析的代码块设置断点;
根据预设规则,在所述断点开始执行调试,记录执行的指令;
保存记录的指令流到指令流文件。


4.根据权利要求1所述的方法,其中,所述在静态分析工具中打开目标应用软件的指令流文件,包括:
在所述静态分析工具中导入脚本引擎;
在所述脚本引擎中,打开目标应用软件的所述指令流文件。


5.根据权利要求4所述的方法,其中,所述将所述指令流文件的指令的动态调试器地址转换为静态分析工具地址,包括:
读取所述指令流文件的指令的动态调试器地址;
将所述指令的动态调试器地址转换为所述指令的静态分析工具地址。


6.根据权利要求5所述的方法,其中,所述将所述指令的动态调试器地址转换为所述指令的静态分析工具地址,包括:
在所述脚本引擎中获取目标应用软件的动态调试器基址和静态分析工具基址;
根据所述指令的动态调试器地址、所述动态调试器基址、所述静态分析工具基址获取所述指令的静态分析工具地址。


7.根据权利要求4所述的方法,其中,所述脚本引擎包括IDC脚本引擎、idapython脚本引擎的至少一种。


8.一种软件安全性分析装置,包括:
动态调试器,用于获取并保存目标应用...

【专利技术属性】
技术研发人员:吴永强王宇建杨威
申请(专利权)人:国民技术股份有限公司
类型:发明
国别省市:广东;44

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

1