一种应用程序的文件读取漏洞检测方法及装置与流程

文档序号:16469763发布日期:2019-01-02 23:00阅读:186来源:国知局
一种应用程序的文件读取漏洞检测方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种应用程序的文件读取漏洞检测方法及装置。



背景技术:

ffmpeg转码程序是一款用来记录、转换数字音频和视频,并能将其转化为流的免费开源计算机程序。目前有非常多的手机app(即application,应用程序)都使用ffmpeg转码程序对音频/视频进行编码/解码。

由于ffmpeg转码程序可以处理hls(httplivestreaming,一种基于http协议的流媒体通信协议)播放列表,而播放列表可以引用外部文件的特性,很多恶意攻击者利用该特性上传有漏洞的视频/音频,这样可能导致app在通过ffmpeg转码程序来解码播放视频/音频时触发该漏洞,使得手机中的文件可以被恶意攻击者远程读取,造成文件内容的泄露。因此,如何防止手机中文件内容的泄露是本发明所要解决的技术问题。



技术实现要素:

本发明实施例中提供了一种应用程序的文件读取漏洞检测方法,以解决现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题。

本发明实施例中还提供了一种应用程序的文件读取漏洞检测装置。

为了解决上述技术问题,本发明是这样实现的:

第一方面,提供了一种应用程序的文件读取漏洞检测方法,该方法包括:

提取待检测应用程序的安装包的库文件;

根据所述安装包的库文件中是否包含程序调用标记,确定所述应用程序是否能够调用ffmpeg转码程序;

若所述应用程序能够调用ffmpeg转码程序,则根据所述库文件中是否包含漏洞修复标记,确定所述应用程序是否存在文件读取漏洞。

第二方面,提供了一种应用程序的文件读取漏洞检测装置,该装置包括:

获取单元,用于提取待检测应用程序的安装包的库文件;

调用确定单元,用于根据所述安装包的库文件中是否包含程序调用标记,确定所述应用程序是否能够调用ffmpeg转码程序;

漏洞确定单元,用于若所述应用程序能够调用ffmpeg转码程序,则根据所述库文件中是否包含漏洞修复标记,确定所述应用程序是否存在文件读取漏洞。

采用本发明实施例提供的上述至少一个技术方案,可以达到如下效果:

由于根据安装包的库文件中是否包含漏洞修复标记的结果来判断应用程序是否存在文件读取漏洞的方式,使得应用开发人员可以根据应用程序的文件读取漏洞系数对应用程序的安装包做出对应的修改措施,克服了现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明的一个实施例提供的一种应用程序的文件读取漏洞检测方法的流程示意图;

图2为本发明的一个实施例提供的一种应用程序的文件读取漏洞检测装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下结合附图,详细说明本发明各实施例中提供的技术方案。

实施例1

为解决现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题,本发明实施例1提供一种应用程序的文件读取漏洞检测方法。

该应用程序的文件读取漏洞检测方法的执行主体,可以是应用程序的开发人员,或者,该应用程序的文件读取漏洞检测方法的执行主体也可以是用于检测应用程序的安装包的服务器或服务器上运行的系统,等等。

为便于描述本发明实施例1,以下以该方法的执行主体为应用开发人员为例,对该方法进行介绍。

请参见说明书附图1,为本发明实施例1提供的该应用程序的文件读取漏洞检测方法的流程示意图,该流程具体包括如下步骤:

步骤11:提取待检测应用程序的安装包的库文件;

本发明实施例1中,在一种实施方式中,所述待检测应用程序的安装包,是指应用开发人员对已载入应用市场或者即将载入应用市场的需要检测的各应用程序(application,即app)的安装包。

所述提取待检测应用程序的安装包的库文件,具体是指,通过压缩工具对所述安装包进行解压,从解压得到的lib文件夹下进一步提取得到so库文件。

其中,上述压缩工具,比如可以是winrar压缩软件等压缩软件;上述lib文件夹,是指,供应用程序调用的库文件的文件夹,其文件夹下有so库文件(动态链接库文件),该so库文件用于存储调用的函数的程序。

步骤12:根据所述安装包的库文件中是否包含程序调用标记,确定所述应用程序是否能够调用ffmpeg转码程序;

本发明实施例1中,在一种实施方式中,所述程序调用标记,是指,表明ffmpeg转码程序能够被调用的字符串“detectbitstreamspecificationdeviations”;其中,所述ffmpeg转码程序,具体是指一种可以将视频/音频进行转码的计算机程序。

本发明实施例1中,在一种实施方式中,所述安装包的库文件中是否包含程序调用标记,是指,在上述lib文件夹下的所有so库文件中查找是否包含字符串“detectbitstreamspecificationdeviations”。具体查找方式如下述所示:

通过linux操作系统的系统命令,在lib文件夹下的所有so库文件中查找字符串“detectbitstreamspecificationdeviations”,所述命令行代码具体为:grep-r-l"detectbitstreamspecificationdeviations"\lib。

其中,所述字符串,是指4个或更多可打印字符的任意序列,以换行符或空字符结束。

则,根据所述安装包的库文件中是否包含程序调用标记,确定所述应用程序是否能够调用ffmpeg转码程序,具体判断方式如下述所示:

通过linux操作系统的系统命令,若在lib文件夹下的所有so库文件中查找到字符串“detectbitstreamspecificationdeviations”,那么系统的命令界面会匹配并显示出包含字符串“detectbitstreamspecificationdeviations”的一个或多个so库文件名,则表明所述应用程序能够调用ffmpeg转码程序。

若在lib文件夹下的所有so库文件中没有查找到字符串“detectbitstreamspecificationdeviations”,那么系统界面就不会显示so库文件名,则表明所述应用程序不能够调用ffmpeg转码程序,也即所述应用程序不存在文件读取漏洞。

需要说明的是,本发明实施例1的步骤12中确定所述应用程序能够调用ffmpeg转码程序是本发明实施例1的步骤13中检测应用程序是否存在文件读取漏洞的前提。

步骤13:若所述应用程序能够调用ffmpeg转码程序,则根据所述库文件中是否包含漏洞修复标记,确定所述应用程序是否存在文件读取漏洞。

本发明实施例1中,在一种实施方式中,所述库文件,具体是指上述包含字符串“detectbitstreamspecificationdeviations”的一个或多个so库文件,用于ffmpeg转码程序的调用。

本发明实施例1中,在一种实施方式中,所述漏洞修复标记,是指表明漏洞已经被系统修复后生成的字符串“file,”。

本发明实施例1中,在一种实施方式中,所述库文件中是否包含漏洞修复标记,是指,在所述包含字符串“detectbitstreamspecificationdeviations”的so库文件中查找是否包含字符串“file,”。具体查找方式如下述所示:

通过linux操作系统的系统命令,在包含字符串“detectbitstreamspecificationdeviations”的so库文件中查找字符串“file,”所述命令行代码具体为:stringsffmpegdemo|egrep--color"^file,\$"。其中,所述ffmpegdemo,是指,包含字符串“detectbitstreamspecificationdeviations”的so库文件的实际文件路径。

所述strings命令用于对随机对象文件或二进制文件的识别以及在对象文件或二进制文件中查找可打印的字符串。

则,根据所述库文件中是否包含漏洞修复标记,确定所述应用程序是否存在文件读取漏洞,具体判断方式如下述所示:

通过linux操作系统的系统命令,若在包含字符串“detectbitstreamspecificationdeviations”的so库文件中查找到字符串“file,”,则表明所述漏洞已经被系统修复了,也即所述应用程序不存在文件读取的漏洞。

若在包含字符串“detectbitstreamspecificationdeviations”的so库文件中没有查找到字符串“file,”,则表明所述漏洞没有被系统修复,也即所述应用程序存在文件读取的漏洞。

采用本发明实施例1提供的方案,由于根据安装包的库文件中是否包含漏洞修复标记的结果来判断应用程序是否存在文件读取漏洞的方式,使得应用开发人员可以根据应用程序的文件读取漏洞系数对应用程序的安装包做出对应的修改措施,克服了现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题。

实施例2

为解决现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题,本发明实施例2提供一种应用程序的文件读取漏洞检测装置20,该应用程序的文件读取漏洞检测装置20的具体结构示意图如图2所示,包括:获取单元21,调用确定单元22,漏洞确定单元23。以下具体介绍下各单元的功能:

获取单元21,用于提取待检测应用程序的安装包的库文件;

调用确定单元22,用于根据所述安装包的库文件中是否包含程序调用标记,确定所述应用程序是否能够调用ffmpeg转码程序;

漏洞确定单元23,用于若所述应用程序能够调用ffmpeg转码程序,则根据所述库文件中是否包含漏洞修复标记,确定所述应用程序是否存在文件读取漏洞。

本发明实施例2中,在一种实施方式中,所述获取单元21,具体用于:

通过压缩工具对所述安装包进行解压,从解压得到的lib文件夹下进一步提取得到so库文件。

本发明实施例2中,在一种实施方式中,所述程序调用标记,具体为:字符串“detectbitstreamspecificationdeviations”。

本发明实施例2中,在一种实施方式中,所述安装包的库文件中是否包含程序调用标记,具体为:在上述lib文件夹下的所有so库文件中查找是否包含字符串“detectbitstreamspecificationdeviations”。具体查找方式如下述所示:

通过linux系统命令,在lib文件夹下的所有so库文件中查找字符串“detectbitstreamspecificationdeviations”,所述命令行代码具体为:grep-r-l"detectbitstreamspecificationdeviations"\lib。

则,所述调用确定单元22,具体用于:根据所述so库文件中是否包含字符串“detectbitstreamspecificationdeviations”,确定所述应用程序是否能够调用ffmpeg转码程序。

本发明实施例2中,在一种实施方式中,根据所述so库文件中是否包含字符串“detectbitstreamspecificationdeviations”,确定所述应用程序是否能够调用ffmpeg转码程序,具体判断方式如下述所示:

若通过系统命令,在所述so库文件中查找到字符串“detectbitstreamspecificationdeviations”,则所述应用程序能够调用ffmpeg转码程序;

若通过系统命令,在所述so库文件中没有查找到字符串“detectbitstreamspecificationdeviations”,则所述应用程序不能够调用ffmpeg转码程序,也即所述应用程序不存在文件读取的漏洞。

本发明实施例2中,在一种实施方式中,所述漏洞修复标记,具体为:字符串“file,”。

则,所述漏洞确定单元23,具体用于:若所述应用程序能够调用ffmpeg转码程序,则根据所述so库文件中是否包含字符串“file,”,确定所述应用程序是否存在文件读取漏洞。

本发明实施例2中,在一种实施方式中,根据所述so库文件中是否包含字符串“file,”,确定所述应用程序是否存在文件读取漏洞,具体判断方式如下述所示:

若通过系统命令,在所述包含字符串“detectbitstreamspecificationdeviations”的so库文件中,查找到字符串“file,”,则所述应用程序不存在文件读取漏洞;

若通过系统命令,在所述包含字符串“detectbitstreamspecificationdeviations”的so库文件中,没有查找到字符串“file,”,则所述应用程序存在文件读取漏洞。

采用本发明实施例2提供的方案,由于根据安装包的库文件中是否包含漏洞修复标记的结果来判断应用程序是否存在文件读取漏洞的方式,使得应用开发人员可以根据应用程序的文件读取漏洞系数对应用程序的安装包做出对应的修改措施,克服了现有技术中恶意攻击者上传了有漏洞的视频/音频后,可能会造成手机中文件内容的泄露的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1