1.一种应用程序的漏洞检测方法,其特征在于,包括:
将待检测应用程序的安装文件转换为代码文件;
获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;
依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。
2.根据权利要求1所述的方法,其特征在于,依据所述第一类函数对所述应用程序的漏洞进行检测,包括:
构建所述第一类函数所在分支的第一控制流图CFG,并统计所有所述第一类函数中具有指定特征值的第二类函数;
在所述第一CFG中查找所述第二类函数所在的分支,并判断所述第二类函数所在的分支是否进行了异常处理,在判断结果为是时,则确定所述应用程序不存在漏洞;在所述判断结果为否时,则确定所述应用程序存在漏洞。
3.根据权利要求2所述的方法,其特征在于,所述异常处理包括:
设置用于指示在当前指令异常时,跳转至其他指令的跳转指令或者调用指令。
4.根据权利要求2所述的方法,其特征在于,在所述第一CFG中查找所述第二类函数所在的分支,包括:
按照预设规则对所述第一CFG中的分支进行过滤,得到第二CFG;
在所述第二CFG中查找所述第二类函数所在的分支。
5.根据权利要求4所述的方法,其特征在于,按照预设规则对所述第一CFG中的分支进行过滤,包括:
删除所述第一CFG中的指定节点以及仅能被该指定节点连通的节点,其中,该指定节点所对应的函数为仅有出度且没有入度的函数。
6.根据权利要求2所述的方法,其特征在于,所述指定特征值包括:所述第一类函数的返回值。
7.根据权利要求1所述的方法,其特征在于,获取指定函数的描述信息,包括:
从网络侧的开源文档中获取所述指定函数的描述信息。
8.根据权利要求7所述的方法,其特征在于,从网络侧的开源文档中获取所述指定函数的描述信息,包括:
通过网络爬虫的方式从所述开源文档中获取所述描述信息。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述用于反映指定行为的函数为API函数,和/或所述漏洞为拒绝服务DOS漏洞。
10.一种应用程序的漏洞检测装置,其特征在于,包括:
转换模块,用于将待检测应用程序的安装文件转换为代码文件;
获取模块,用于获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;
检测模块,用于依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。
11.根据权利要求10所述的装置,其特征在于,所述检测模块,包括:
构建单元,构建所述第一类函数所在分支的第一控制流图CFG;
统计单元,用于统计所有所述第一类函数中具有指定特征值的第二类函数;
检测单元,用于在所述第一CFG中查找所述第二类函数所在的分支,并判断所述第二类函数所在的分支是否进行了异常处理,在判断结果为是时,则确定所述应用程序不存在漏洞;在所述判断结果为否时,则确定所述应用程序存在漏洞。
12.根据权利要求11所述的装置,其特征在于,所述异常处理包括:设置用于指示在当前指令异常时,跳转至其他指令的跳转指令或者调用指令。
13.根据权利要求11所述的装置,其特征在于,所述检测单元,还用于按照预设规则对所述第一CFG中的分支进行过滤,得到第二CFG;以及在所述第二CFG中查找所述第二类函数所在的分支。
14.根据权利要求13所述的装置,其特征在于,所述检测单元,用于删除所述第一CFG中的指定节点以及仅能被该指定节点连通的节点,其中,该指定节点所对应的函数为仅有出度且没有入度的函数。
15.根据权利要求10所述的装置,其特征在于,所述获取模块,还用于从网络侧的开源文档中获取指定函数的描述信息。