安全漏洞检测方法和装置的制造方法_4

文档序号:9524114阅读:来源:国知局
>[0082]在此基础上,如图2所示,还可以设置有后台服务器204,该后台服务器204可以用于提供数据安全服务。具体地,在本发明实施例中,后台服务器204可以与下载服务器202、应用服务器206以及客户端208、210和212之中的一个或多个存在数据连接,以便于接收连接后台服务器204的服务器或客户端上传的应用安装包,进而后台服务器204可以对应用安装包进行匹配分析处理,并向相连接的设备反馈安全漏洞的检测结果。
[0083]例如,在一个场景下,下载服务器202定期地或者在检测到某个应用存在更新时,向后台服务器204发送第一应用例如更新的应用对应的应用安装包,并且还可以向后台服务器204发送该第一应用所属的类型对应的缺陷匹配信息作为第一匹配信息。当然,这只是一种示例,在一些实施例中,后台服务器204也可以维护有一个或多个缺陷匹配信息,并形成匹配列表,本发明对此不作限定。进一步地,后台服务器204可以对应用安装包进行解析以获取其中的记录有运行第一应用时所需执行的指令的一个或多个文件,进而在一个或多个文件的内容与匹配信息之间进行匹配,若存在匹配文件,则可以认为该应用安装包及其对应的应用存在安全漏洞,从而向下载服务器202返回这一检测结果。
[0084]当然,以上只是一种示例,并不意味着对本发明构成了限定。具体来说,如图2所示,后台服务器204可以与下载服务器202、应用服务器206、客户端208、210和212之中的任意一个或多个连接并向该任意一个提供具有针对应用的安全漏洞进行检测的功能的数据安全服务。此外,在本发明的一些实施例中,该后台服务器204所提供的安全漏洞检测功能也可以封装为内置或外挂的模块并设置在下载服务器202、应用服务器206、客户端208、210和212之中的任意一个或多个上,例如,下载服务器202也可以设置有缺陷检测的模块,以避免向用户提供存在安全漏洞的应用的下载等,本发明对此不作任何限定。
[0085]需要说明的是,本发明通过以上描述提供了一种本发明技术方案的可行的实施环境,然而应当理解的是,以上描述仅仅是一种示例性的描述,以便于对本发明技术方案及其工作环境的理解,而不应视为是对本发明的限定。具体地,根据本发明实施例提供的安全漏洞检测装置还可以实施于多种可行的其他硬件或系统环境中,本发明在此不一一累述。
[0086]在上述环境下,根据本发明实施例提供的检测装置,该装置所在的用于提供数据安全服务的后台服务器可以通过第一获取单元402来获取第一应用的应用安装包和第一匹配信息,其中,应用安装包用于安装第一应用,第一匹配信息用于指示在运行第二应用时所执行的存在安全漏洞的指令。
[0087]在本发明实施例中,第一应用可以表示待检测的应用,第二应用并不特指某一应用,其可以表示任意一个应用。具体地,第一匹配信息既可以是基于对具体的某一个或多个第二应用的运行进行监测学习的结果,比如该第一匹配信息可以是通过对第二应用的测试所得出的在执行时存在安全漏洞的指令的特征信息。在另一方面,第一匹配信息还可以包括技术人员基于对现有的应用及这些应用的执行逻辑和运行情况的了解从而能够合理预期的在执行时存在安全漏洞的指令的特征信息。
[0088]具体地,在本发明实施例中,第一应用的应用安装包可以是安卓安装包,也即APK包,其中,该APK包可以用来安装运行在安卓系统下的各类应用。然而本发明对此不作限定,例如,在一些实施例中,该应用安装包也可以是iPhone程序IPA包等,这并不影响本发明技术方案的实施及其技术效果的实现,类似地实施方式也均应视为在本发明的保护范围之内。
[0089]事实上,无论是APK包还是IPA包,其实质上都是一个zip压缩包,在具体安装时,这些压缩包会被放入系统中预定的文件夹内,以便于获取对这些压缩包进行解压缩并安装对应的应用的权限。换而言之,对于第一应用的应用安装包来说,运行第一应用时所需执行的指令可以通过对其应用安装包的解析来获取,在获取的指令以及记录有这些指令的文件相比于运行第一应用时实际执行的指令以及应用安装包中实际压缩的文件的还原度较高时,通过对解析应用安装包所获取的上述一个或多个文件的匹配分析便可以判断出第一应用是否存在安全漏洞。
[0090]也即,根据本发明实施例提供的检测装置,后台服务器可以通过第二获取单元404从应用安装包中获取记录有运行第一应用时所需执行的指令的一个或多个文件,并通过第一判断单元406判断该一个或多个文件中是否存在包含第一匹配信息的匹配文件,进而通过输出单元408,在判断出存在匹配文件时,检测出第一应用存在安全漏洞。
[0091]具体地,在本发明实施例中,可以采用多种具体的匹配逻辑来判断该一个或多个文件中是否存在该匹配文件,以达到不同等级的检测效果并输出侧重点不同的输出结果。例如可选地,在一个实施例中,上述第一判断单元406可以包括:
[0092]1)判断模块,用于判断一个或多个文件中的每个文件中的每一行记录是否包括一个或多个第一匹配信息中的任意一个匹配信息;其中,
[0093]输出单元408可以包括:
[0094]1)第一输出模块,用于在若每一行记录中存在任意一行记录包含任意一个匹配信息时,检测出第一应用存在安全漏洞,并输出包含任意一个匹配信息的文件的文件名和/或任意一行的行号。
[0095]例如,在一个实施例中,安全漏洞检测所针对的安全漏洞可以包括随机数漏洞,也即随机数生成指令可能导致生成的随机数的随机性较差且易于破解的缺陷,对应地,第一匹配信息可以用于指示伪随机数生成指令,比如,该第一匹配信息可以包括字符串 “SecureRandom.setSeed” 或者字符串 “SecureRandom”。具体地,在 Java 语言中,SecureRandom用于提供随机数加密功能,或者说使用该指令可以基于给定的随机数生成加密后的随机性更强的随机数,然而在不确定该指令所采用的给定的随机数也即随机数的“种子”的随机性优劣的前提下,执行该指令所生成的随机数的分布距离真正的随机分布仍可能有较大差距,换而言之,容易产生随机数漏洞,进而导致安全风险。
[0096]在这一前提下,则可以将执行时存在安全漏洞的指令的代码,比如SecureRandom.setSeed和/或SecureRandom作为第一匹配信息。值得注意的是,在上述场景下,若采用字符串“SecureRandom”作为第一匹配信息,则通过这一第一匹配信息也可以匹配到记录有指令SecureRandom.setSeed的匹配文件。在这一情形下,字符串“SecureRandom”也可以视为是指令SecureRandom.setSeed的特征信息,换而言之,在本发明实施例中,第一匹配信息并不仅限于是指令本身。
[0097]进一步地,则可以通过步骤S2判断从应用安装包中获取的一个或多个文件中的每个文件中的每一行记录是否包括一个或多个第一匹配信息中的任意一个匹配信息。例如,若利用用于对APK包中压缩的classes, dex进行反编译的工具软件baksmal1.jar从第一应用的应用安装包中解析出以下文件:Main$l.smal1、Main$2.smali和Main$3.smali,其中,“Main$l.smali ”、“Main$2.smali ” 和 “Main$3.smali ” 均表不文件名,并且文件Main$3.smali中的第88行记录的代码包含第一匹配信息,如字符串“SecureRandom”,则可以检测出第一应用存在安全漏洞,并通过步骤S4输出包含该第一匹配信息的文件的文件名“Main$3.smali”以及存在安全漏洞的指令所在的行的行号“88”。
[0098]进一步可选地,在本发明实施例中,上述输出单元406还可以包括:
[0099]1)查找模块,用于在该每一行记录中存在该任意一行记录包含该任意一个匹配信息时,查找与该任意一个匹配信息对应的缺陷描述信息,其中,缺陷描述信息用于描述在执行由任意一个匹配信息指示的指令时所存在的安全漏洞;其中,
[0100]第一输出模块可以包括:
[0101]1)输出子模块,用于将查找到的缺陷描述信息标记为与文件名和/或行号对应,并输出文件名和/或行号以及对应的缺陷描述信息。
[0102]在本发明实施例中,维护在后台服务器的本地或外部的第一匹配信息可以对应有用于描述该匹配信息所指示的存在安全漏洞的指令的缺陷描述信息。例如对于述实施例,第一匹配信息可以是字符串“SecureRandom”,其对应的缺陷描述信息可以是“存在随机数漏洞”。在上述场景下,若检测出存在与字符串“SecureRandom”匹配的匹配文件Main$3.smali,则可以输出文件名“Main$3.smali”、缺陷行号“88”和缺陷匹配信息“存在随机数漏洞”,以便于运维管理人员的读取和/或后续处理操作。
[0103]在以上描述的基础上,作为进一步可选的方式,在本发明实施例中,与输出单元408耦合地,上述检测装置还可以包括:
[0104]1)第二判断单元,用于在存在匹配文件时,判断匹配文件是否包含第二匹配信息,其中,第二匹配信息用于指示在运行第二应用时执行的修复安全漏洞的指令;其中,
[0105]输出单元408可以包括:
[0106]1)第二输出模块,用于在匹配文件未包含第二匹配信息时,检测出第一应用存在安全漏洞。
[0107]在本发明实施例中,基于第一匹配信息进行匹配分析以判断第一应用是否存在安全漏洞的方式可能会出现过度判断的情况。例如,对于作为第一匹配信息的字符串“SecureRandom”来说,若将其所指示的随机数生成指令SecureRandom与unix系统提供的加强随机数生成方法如/dev/random或/dev/urandom相结合,比如在SecureRandom方法中采用/dev/urandom方法来生成随机数“种子”,则由于上述加强随机数生成算法的随机性较好,则在安全漏洞的检测过程中,也可以不对记录有加强随机数生成指令的文件进行响应,也即,若
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1