CN111290935B - 应用程序app检测方法、装置、设备及介质 - Google Patents
应用程序app检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111290935B CN111290935B CN201811486778.2A CN201811486778A CN111290935B CN 111290935 B CN111290935 B CN 111290935B CN 201811486778 A CN201811486778 A CN 201811486778A CN 111290935 B CN111290935 B CN 111290935B
- Authority
- CN
- China
- Prior art keywords
- app
- technical
- software
- information
- tested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种应用程序APP检测方法、装置、设备及介质。该方法包括:从网络中采集漏洞信息,形成漏洞信息库;从网络中采集软件包;对软件包进行技术框架指纹信息提取,形成软件基线库;对待测APP的技术框架进行识别,得到待测APP的技术框架指纹信息;将待测APP的技术框架指纹信息与软件基线库的技术框架指纹信息进行对比,确认待测APP的技术框架身份信息;基于待测APP的技术框架身份信息,与漏洞信息库进行对比,生成待测APP的漏洞检测结果。本发明实施例提供的上述方案,可以对APP使用的技术组件框架进行识别,确认技术框架的身份信息,并与漏洞库匹配,快速检测发现待测APP存在的漏洞,大幅提升检测效率和准确率,避免误报情况发生。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种应用程序APP检测方法、装置、设备及介质。
背景技术
近年来移动互联网技术的发展和国家战略的实施,基于智能手机的电子商务、电子政务蓬勃发展,手机应用程序(Application,APP)逐渐普及,随之而来的信息安全问题变得更加严峻,在众多的安全问题中,由于手机APP自身引入的技术框架带来的安全问题,往往比***层面的问题更加难以发现、危害也更加严重、缺乏有效的检测手段。
为了积极应对APP应用安全方面的问题,国内外各安全厂商纷纷推出APP安全核查类***或者工具。该类工具在研发过程中,往往只注重检查Android(安卓)操作***和原生组件的配置安全问题,或者提供附带安全属性的组件供应用开发使用,而忽视了APP自身引入的技术架构风险,更多的是追求检测的问题种类和数量等指标,而忽略了应用自身内部的实际安全问题。
现有检测机制是一种基于通用配置项检测的方式,即根据应用配置文件中的固定配置项的解析分析,判断是否存在安全风险,并给出安全建议,这种方式适用范围小、实际提升的安全效果有限;另一种是基于APP的具体业务场景设计大量的测试用例,同时需要测试人员编写相关的测试脚本,通过脚本触发APP的业务事件,从而产生业务行为记录,通过监控和分析操作行为记录,来判断该操作是否存在风险。这种方式开发工作量巨大、不具有普遍推广的价值。
综上所述,现有APP安全漏洞配置核查主要有手动检查和工具检查两类,两种类型的核查工具在任务调度方面均有诸多问题,具体如下:
1、人工效率低:手动核查APP安全漏洞配置的方法,要求检查人员了解APP业务场景和内部行为,严重依赖检查人员的个人经验,无法保证整体检测水平;并且每次只能检查一个手机APP,不适合大规模应用,人工对设备进行检查,无分配调度算法。
2、工作量大:针对固定配置文件和配置项的检查,发现的问题有限,提升效果不明显。例如针对APP的业务场景进行全面测试核查,则需要事先设计好测试用例,并编写大量的检测脚本,工作量巨大、且测试脚本对不同的APP很难做到通用、脚本复用度不高。因此,当对大量APP进行批量检测时,严重影响检测效率。
3、准确率低:传统检查方式,基于模拟请求事件触发业务行为,并获取输出的行为特征数据,再进行规则匹配,确认是否存在对应的漏洞风险。由于规则的设定往往是机械的,而业务是动态变化的,这会导致出现误报、漏报的情况,准确率低下。
发明内容
本发明实施例提供了一种应用程序APP检测方法、装置、设备及介质,可以对APP使用的技术组件框架进行识别,确认技术框架的身份信息,并与漏洞库匹配,快速检测发现待测APP存在的漏洞,大幅提升检测效率和准确率,避免误报情况发生。
第一方面,本发明实施例提供了一种应用程序APP检测方法,方法包括:
从网络中采集漏洞信息,形成漏洞信息库;
从所述网络中采集软件包;
对所述软件包进行技术框架指纹信息提取,形成软件基线库;
对待测APP的技术框架进行识别,得到所述待测APP的技术框架指纹信息;
将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息,其中所述技术框架身份信息包括技术框架软件版本和技术框架软件名称;
基于所述待测APP的技术框架身份信息,与所述漏洞信息库进行对比,生成所述待测APP的漏洞检测结果。
根据本发明所述的应用程序APP检测方法,所述对所述软件包进行技术框架指纹信息提取,包括:
对所述软件包进行解压缩,以释放软件包介质文件到指定目录,从所述指定目录中提取软件包文件;
基于所述软件包文件的核心程序类文件,生成摘要信息;
根据所述摘要信息,得到所述软件基线库的技术框架指纹信息。
根据本发明所述的应用程序APP检测方法,所述软件基线库包括:
技术框架软件名称、技术框架版本号、基础包路径名称、核心文件目录和所述技术框架指纹信息。
根据本发明所述的应用程序APP检测方法,所述方法还包括:
对所述待测APP的安装包进行格式转换。
根据本发明所述的应用程序APP检测方法,所述对所述待测APP的安装包进行格式转换,包括:
读取所述待测APP的安装包文件;
对所述安装包文件的文件内容进行解压;
将解压后的文件释放至指定目录;
对所述指定目录下的文件进行内容格式转换。
根据本发明所述的应用程序APP检测方法,所述方法还包括:
对执行所述内容格式转换后的文件进行解压缩;
对所述解压缩后的文件进行扫描分析,筛选所述待测APP的扫描文件目录;
将所述待测APP的扫描文件目录与所述软件基线库的文件目录进行匹配,确认所述软件基线库中是否存在与所述待测APP的技术架构匹配的软件包,其中所述待测APP的扫描文件目录包括关键包路径名称,所述软件基线库的文件目录包括所述基础包路径名称。
根据本发明所述的应用程序APP检测方法,所述方法还包括:
当所述软件基线库中存在与所述待测APP的技术架构匹配的软件包时,将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息。
根据本发明所述的应用程序APP检测方法,所述将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,包括:
基于所述待测APP的扫描文件目录,生成所述待测APP的技术框架指纹信息;
将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比;
其中,所述待测APP的扫描文件目录还包括技术架构软件名称和版本号。
根据本发明所述的应用程序APP检测方法,所述从网络中采集漏洞信息,形成漏洞信息库,包括:
利用网络爬虫,从所述网络中采集漏洞信息,形成所述漏洞信息库。
根据本发明所述的应用程序APP检测方法,所述方法还包括:
基于预设周期,周期性更新所述漏洞信息库,使得所述网络中漏洞信息的发布与所述漏洞信息库中漏洞信息的更新同步。
第二方面,本发明实施例提供了一种应用程序APP检测装置,装置包括:
第一采集模块,用于从网络中采集漏洞信息,形成漏洞信息库;
第二采集模块,用于从所述网络中采集软件包;
提取模块,用于对所述软件包进行技术框架指纹信息提取,形成软件基线库;
识别模块,用于对待测APP的技术框架进行识别,得到所述待测APP的技术框架指纹信息;
确认模块,用于将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息,其中所述技术框架身份信息包括技术框架软件版本和技术框架软件名称;
第一对比模块,用于基于所述待测APP的技术框架身份信息,与所述漏洞信息库进行对比,生成所述待测APP的漏洞检测结果。
根据本发明所述的应用程序APP检测装置,提取模块具体用于:
对所述软件包进行解压缩,以释放软件包介质文件到指定目录,从所述指定目录中提取软件包文件;
基于所述软件包文件的核心程序类文件,生成摘要信息;
根据所述摘要信息,得到所述软件基线库的技术框架指纹信息。
根据本发明所述的应用程序APP检测装置,所述软件基线库包括:
技术框架软件名称、技术框架版本号、基础包路径名称、核心文件目录和所述技术框架指纹信息。
根据本发明所述的应用程序APP检测装置,装置还包括:
格式转换模块,用于对所述待测APP的安装包进行格式转换。
根据本发明所述的应用程序APP检测装置,所述格式转换模块具体用于:
读取所述待测APP的安装包文件;
对所述安装包文件的文件内容进行解压;
将解压后的文件释放至指定目录;
对所述指定目录下的文件进行内容格式转换。
根据本发明所述的应用程序APP检测装置,装置还包括:
解压缩模块,用于对执行所述内容格式转换后的文件进行解压缩;
筛选模块,用于对所述解压缩后的文件进行扫描分析,筛选所述待测APP的扫描文件目录;
匹配模块,用于将所述待测APP的扫描文件目录与所述软件基线库的文件目录进行匹配,确认所述软件基线库中是否存在与所述待测APP的技术架构匹配的软件包,其中所述待测APP的扫描文件目录包括关键包路径名称,所述软件基线库的文件目录包括所述基础包路径名称。
根据本发明所述的应用程序APP检测装置,装置还包括:
第二对比模块,用于当所述软件基线库中存在与所述待测APP的技术架构匹配的软件包时,将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息。
根据本发明所述的应用程序APP检测装置,对比模块具体用于:
基于所述待测APP的扫描文件目录,生成所述待测APP的技术框架指纹信息;
将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比;
其中,所述待测APP的扫描文件目录还包括技术架构软件名称和版本号。
根据本发明所述的应用程序APP检测装置,第一采集模块具体用于:
利用网络爬虫,从所述网络中采集漏洞信息,形成所述漏洞信息库。
根据本发明所述的应用程序APP检测装置,装置还包括:
更新模块,用于基于预设周期,周期性更新所述漏洞信息库,使得所述网络中漏洞信息的发布与所述漏洞信息库中漏洞信息的更新同步。
本发明实施例提供了一种应用程序APP检测设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
本发明实施例提供的应用程序APP检测方法、装置、设备及介质,可以对APP使用的技术组件框架进行识别,确认技术框架的身份信息,并与漏洞库匹配,快速检测发现待测APP存在的漏洞,大幅提升检测效率和准确率,避免误报情况发生。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一实施例的应用程序APP检测方法的流程示意图;
图2示出了本发明实施例的应用程序APP检测装置的结构示意图;
图3示出了本发明另一实施例的应用程序APP检测方法的流程示意图;
图4示出了本发明又一实施例的应用程序APP检测方法的流程示意图;
图5示出了本发明实施例的待测APP的检测结果示意图;
图6示出了本发明实施例提供的应用程序APP检测设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了方便描述,首先将本文有可能涉及到的技术术语及其含义罗列如下,需要明确,这些技术术语均为本领域已知的内容。
本发明实施例可提供一种应用程序APP检测方法,参考图1,图1示出了本发明实施例的应用程序APP检测方法100的流程示意图,该方法包括:
S110,从网络中采集漏洞信息,形成漏洞信息库;
S120,从网络中采集软件包;
S130,对软件包进行技术框架指纹信息提取,形成软件基线库;
S140,对待测APP的技术框架进行识别,得到待测APP的技术框架指纹信息;
S150,将待测APP的技术框架指纹信息与软件基线库的技术框架指纹信息进行对比,确认待测APP的技术框架身份信息,其中技术框架身份信息包括技术框架软件版本和技术框架软件名称;
S160,基于所述待测APP的技术框架身份信息,与所述漏洞信息库进行对比,生成所述待测APP的漏洞检测结果。
其中,软件是指应用程序APP中使用的技术框架。
利用本发明提供的上述方案,可以对APP使用的技术组件框架进行识别,确认技术框架的身份信息,并与漏洞库匹配,快速检测发现待测APP存在的漏洞,大幅提升检测效率和准确率,避免误报情况发生。
本发明实施例可提供一种应用程序APP检测装置,参考图2,图2示出了本发明实施例的应用程序APP检测装置200的结构示意图,该装置包括:
第一采集模块210,用于从网络中采集漏洞信息,形成漏洞信息库;
第二采集模块220,用于从网络中采集软件包;
提取模块230,用于对软件包进行技术框架指纹信息提取,形成软件基线库;
识别模块240,用于对待测APP的技术框架进行识别,得到待测APP的技术框架指纹信息;
确认模块250,用于将待测APP的技术框架指纹信息与软件基线库的技术框架指纹信息进行对比,确认待测APP的技术框架身份信息,其中技术框架身份信息包括技术框架软件版本和技术框架软件名称;
对比模块260,用于基于待测APP的技术框架身份信息,与漏洞信息库进行对比,生成待测APP的漏洞检测结果。
利用本发明提供的上述方案,可以对APP使用的技术组件框架进行识别,确认技术框架的身份信息,并与漏洞库匹配,快速检测发现待测APP存在的漏洞,大幅提升检测效率和准确率,避免误报情况发生。
以下通过具体的实例,描述本发明实施例的可选的具体处理过程。需要说明的是,本发明的方案并不依赖于具体的算法,在实际应用中,可选用任何已知或未知的硬件、软件、算法、程序或其任意组合等来实现本发明的方案,只要是采用了本发明方案的实质思想,均落入本发明的保护范围。
参考图3,图3示出了本发明另一实施例的应用程序检测方法的流程示意图,主要包括以下几个步骤:
S310:建立漏洞库。
作为一个示例,采用诸如网络爬虫模块自动从权威漏洞发布平台采集漏洞信息,并周期性自动更新该漏洞库,使得该漏洞库与漏洞发布平台公布的漏洞信息保持同步。
S320:建立软件基线库。
作为一个示例,基于诸如网络爬虫模块,定期自动从官方网站采集软件包介质,下载到本地并进行技术架构指纹信息提取,形成基线库。
S330:技术框架识别。
解析待测APP的信息,分析待测APP内部引入的技术架构,结合软件基线库进行技术框架指纹信息对比,确认技术框架软件版本。
S340:漏洞检测。
作为一个示例,基于APP技术架构软件名称和版本信息,与漏洞信息库进行比对,记录存在的漏洞信息,生成检测结果。
S350:漏洞报告生成。
作为一个示例,基于检测结果,生成APP检测报告,包括漏洞说明和修复建议等,供用户下载使用。
下面对上述各个步骤进行详细介绍:
其中,S320:建立软件基线库流程:
软件基线库是作为识别APP技术框架的依据,也是关联漏洞库信息的桥梁,根据网络中公布的漏洞信息,提取软件信息,并加入到采集列表中进行基线采集,形成软件基线库。
具体过程如下:
第一,人工添加软件名称、采集统一资源***(Uniform Resoure Locator,URL)地址等配置信息,执行采集过程。***可以通过网络爬虫程序等自动采集对应的软件包,并将软件包下载到本地服务器上;
第二,将软件包进行解压缩,并释放介质文件到指定目录,从指定目录中提取软件包文件,在一个实施例中,该软件包文件包括:核心程序类文件、配置文件、类库文件等;
第三,基于核心程序类文件生成摘要信息,作为该技术框架的指纹信息;
第四,人工确认和补全相关信息,包括:技术框架软件名称、版本号、基础包路径名称、核心文件目录、指纹信息等数据到基线数据库中,根据这些信息形成技术框架的基线库;
第五,基于已知漏洞重复以上过程,不断完善基线库信息。
参考图4,图4示出了本发明又一实施例的应用程序APP检测方法的流程示意图,该方法包括:
S410,开始;
S420,上传待测APP的安装包;
作为一个示例,上传待测APP的安装包,启动检测任务,并且根据上传的待测APP的数量,开启与待测APP的数量相对应的适量的检测任务;
在一个实施例中,可以采用诸如并行检测的检测方式,提高检测效率。
S430,对待测APP的安装包进行内容格式转换;
作为一个示例,读取安卓安装包(Android Package,APK)文件,对该安装包文件的文件内容进行解压,并将解压后的文件释放至指定目录,接下来对各个指定目录下的文件进行内容格式的转换,例如将待测APP安装包由.apk格式转换为.jar格式,然后将.jar文件进行解压缩,并将解压缩后的文件释放至临时检测文件夹中,其中Java档案文件(JavaArchive File,JAR)是一种压缩格式。
S440,待测APP的技术框架识别;
作为一个示例,根据技术框架基线库,解析检测文件夹中的文件,基于基线库中的技术框架核心文件目录范围和指纹特征,识别、提取并记录待测APP对应技术框架的信息。
首先,对待测APP解压缩后文件进行全面扫描分析,筛选待测APP的扫描文件目录(例如关键包路径名称和文件名称),并与基线库中的文件目录(例如基础包路径名称)进行模糊匹配,以快速检测软件基线库中是否存在于待测APP的技术框架相匹配的软件包;
其次,当存在相匹配的软件包时,接下来进行技术框架指纹信息的检测过程。
在一个实施例中,根据基线库中匹配上的软件列表,进行循环检测,检测核心文件目录是否存在,如果文件存在的话,则读取核心文件目录中的文件,生成摘要信息,将待测APP的摘要信息与软件基线库的摘要信息进行匹配,如果匹配的话,则可以确认该软件包的技术框架名称和对应版本号;如果文件不存在或者摘要信息不匹配,则忽略。
S450,漏洞库匹配;
根据上一步提取的技术框架信息(例如技术框架名称和对应版本号等),检索漏洞库中是否存在该类型的技术框架漏洞信息。
S460,判断待测APP是否存在漏洞,如果存在,则执行S470,如果不存在,则执行S480;
S470,记录漏洞信息;
当在漏洞库中检索到对应的漏洞时,则记录检测结果;
在一个实施例中,检测结果可以包括待测APP名称、技术框架名称、技术框架版本、漏洞ID、以及漏洞详情等。
当在漏洞库中不能检索到对应的漏洞时,则说明该待测APP的技术框架尚未发现已知漏洞,则不做任何记录。
S480,生成检测报告;
作为一个示例,检测完成后,根据检测过程中记录的漏洞结果信息,生成漏洞报告。
在一个实施例中,漏洞报告可以包括应用名称、漏洞总数、按漏洞级别分别统计漏洞数据和漏洞信息列表。
S490,检测结束。
以下通过具体实例对本发明的技术方案进行详细介绍,具体如下:
第一步,生成基线信息。
作为一个示例,诸如OKHTTP框架是安卓端最主流的轻量级框架,它是一种Android(安卓)应用程序专门用于处理网络通信请求的技术框架,它将替代Http Url Connection(Http Url连接)和Apache Http Client成为主流的技术框架。
在一个实施例中,通过采集okhttp2.0.0和okhttp3.11.0两个版本,建立软件基线。
此外,由于okhttp 2.0.0和okhttp 3.11.0两个版本的基础包路径名称不同,例如okhttp 2.0.0版本的基础包路径名称为okio,okhttp 3.11.0版本的基础包路径名称为okhttp3。并且两个版本内部的文件和目录结构也分别不同。
因此,可以分别针对上述两个版本的基础包路径名称、内部的文件和目录结构,生成okhttp 2.0.0和okhttp 3.11.0两个版本的摘要信息;并且同时可以确定软件名称、版本号和基础包路径信息,具体参考表1:
表1
软件名称 | 版本号 | 基础包路径 | 摘要信息 | 其它信息 |
okhttp | 2.0.0 | okio | 38CB8F463A53682A5295C79D0A6AD942 | … |
okhttp | 3.11.0 | okhttp3 | 7DDCFEE116781800CF6537A5054C5011 | … |
第二步,APP技术框架识别。
APP demo.apk包中引入了okhttp 2.0.0版本的技术框架,将APPdemo.apk包进行格式转换,以转换为jar包,并解压缩该jar包,提取文件内容。
首先,扫描okhttp 2.0.0版本的文件目录,将扫描到的文件目录(例如okio)与基线库信息中的基础包路径名称进行模糊匹配,例如,再次参考表1,可以匹配到基础包路径为okio的软件基线。
其次,基于扫描到的文件目录,生成待测APP的摘要信息(技术框架指纹信息),即:38CB8F463A53682A5295C79D0A6AD942,并将待测APP的摘要信息与基线库中的摘要信息(参考表1)38CB8F463A53682A5295C79D0A6AD942进行比对,比对一致后,确认为该待测APP的软件名称为okhttp,版本号为:2.0.0。
其中,待测APP的扫描文件目录还包括技术架构软件名称和版本号,即可以根据待测APP的关键包路径名称、技术架构软件名称和版本号,生成待测APP的摘要信息;根据软件基线库基础包路径名称、技术架构软件名称和版本号,生成软件基线库的摘要信息,以方便对比。
第三步,漏洞检测;
基于第二步得到的待测APP的软件名称和版本号,与漏洞信息库进行匹配,匹配结果参考图5,图5示出了本发明实施例的待测APP的检测结果示意图。
参考图5,图5表示在版本3.1.2之前的2.7.4和3.x之前的okhttp允许中间人攻击通过发送证书链来通过证书固定,其中该证书链带有来自非固定可信CA的证书和固定证书。
综上,本申请提出一种基于架构比对的APP检测方法,通过对APP进行深度解析,对APP使用的技术组件框架的解析、识别,确定技术框架类型和版本,并与公开漏洞库进行匹配,快速检测发现APP存在的已知漏洞,大幅提升检测效率和准确率,理论上准确率可以达到100%,有效避免误报情况的发生。
通过采集APP的信息,建立APP应用基线,并与公开漏洞***对接,持续更新漏洞库信息,通过周期性自动执行检查,使漏洞发现与漏洞公开发布基本保持同步,做到快速发现和快速修复。
此外,相比较现有的技术方案,本发明实施例的技术方案具有如下优点:
首先,检测效率高:解决了人工检测过程中,手动解析安装包、反编译还原和人工分析的效率低下的弊端,代之以自动化方式提升检测效率;此外,从检测方式上规避了基于脚本驱动的场景用例触发模式的检测过程,直接对APP技术框架进行解析,大大节省了检测过程的时间,提升检测效率。
其次,通用性好:检测规则是专门针对具体技术架构组件而设计和实现,而不是针对特定业务场景,这样避免了与业务场景的直接耦合,提高了检测规则的通用性,因而适用于各种APP的检测。
再次,准确率高:所使用的漏洞库来源于权威的官方发布平台,且经过官方验证,并被广泛认可。
另外,结合图1描述的本发明实施例的应用程序APP检测方法可以由应用程序APP检测设备来实现。图6示出了本发明实施例提供的应用程序APP检测设备的硬件结构示意图。
应用程序APP检测设备可以包括处理器1003以及存储有计算机程序指令的存储器1004。
图6是示出能够实现根据本发明实施例的通信方法和网络服务器的计算设备的示例性硬件架构的结构图。如图6所示,计算设备1000包括输入设备1001、输入接口1002、处理器1003、存储器1004、输出接口1005、以及输出设备1006。
其中,输入接口1002、处理器1003、存储器1004、以及输出接口1005通过总线1010相互连接,输入设备1001和输出设备1006分别通过输入接口1002和输出接口1005与总线1010连接,进而与计算设备1000的其他组件连接。
具体地,输入设备1001接收来自外部的输入信息,并通过输入接口1002将输入信息传送到处理器1003;处理器1003基于存储器1004中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器1004中,然后通过输出接口1005将输出信息传送到输出设备1006;输出设备1006将输出信息输出到计算设备1000的外部供用户使用。
计算设备1000可以执行本申请上述的通信方法中的各步骤。
处理器1003可以是一个或多个中央处理器(英文:Central Processing Unit,CPU)。在处理器1003是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器1004可以是但不限于随机存储存储器(RAM)、只读存储器(ROM),可擦除可编程只读存储器(EPROM)、光盘只读存储器(CD-ROM)、硬盘等中的一种或多种。存储器1004用于存储程序代码。
可以理解的是,在本申请实施例中,图2提供的第一采集模块至对比模块中任一模块或全部模块的功能可以用图6所示的中央处理器1003实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
Claims (12)
1.一种应用程序APP检测方法,包括:
从网络中采集漏洞信息,形成漏洞信息库;
从所述网络中采集软件包;
将所述软件包下载到本地服务器;
对所述软件包进行技术框架指纹信息提取,形成软件基线库,所述软件基线库包括基础包路径名称、技术框架软件名称和技术框架版本号;
所述对所述软件包进行技术框架指纹信息提取,形成软件基线库,包括:
对所述软件包进行解压缩,以释放软件包介质文件到指定目录,从所述指定目录中提取软件包文件;
根据所述基础包路径名称、技术框架软件名称和技术框架版本号生成所述软件基线库的摘要信息;
根据所述摘要信息,得到所述软件基线库的技术框架指纹信息;
对待测APP的技术框架进行识别,得到所述待测APP的技术框架指纹信息;
将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息,其中所述技术框架身份信息包括技术框架软件版本和技术框架软件名称;
基于所述待测APP的技术框架身份信息,与所述漏洞信息库进行对比,生成所述待测APP的漏洞检测结果。
2.根据权利要求1所述的方法,其特征在于,所述软件基线库包括:
核心文件目录和所述技术框架指纹信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述待测APP的安装包进行格式转换。
4.根据权利要求3所述的方法,其特征在于,所述对所述待测APP的安装包进行格式转换,包括:
读取所述待测APP的安装包文件;
对所述安装包文件的文件内容进行解压;
将解压后的文件释放至指定目录;
对所述指定目录下的文件进行内容格式转换。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对执行所述内容格式转换后的文件进行解压缩;
对所述解压缩后的文件进行扫描分析,筛选所述待测APP的扫描文件目录;
将所述待测APP的扫描文件目录与所述软件基线库的文件目录进行匹配,确认所述软件基线库中是否存在与所述待测APP的技术架构匹配的软件包,其中所述待测APP的扫描文件目录包括关键包路径名称,所述软件基线库的文件目录包括所述基础包路径名称。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述软件基线库中存在与所述待测APP的技术架构匹配的软件包时,将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息。
7.根据权利要求6所述的方法,其特征在于,所述将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,包括:
基于所述待测APP的扫描文件目录,生成所述待测APP的技术框架指纹信息;
将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比;
其中,所述待测APP的扫描文件目录还包括技术架构软件名称和版本号。
8.根据权利要求1所述的方法,其特征在于,所述从网络中采集漏洞信息,形成漏洞信息库,包括:
利用网络爬虫,从所述网络中采集漏洞信息,形成所述漏洞信息库。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于预设周期,周期性更新所述漏洞信息库,使得所述网络中漏洞信息的发布与所述漏洞信息库中漏洞信息的更新同步。
10.一种应用程序APP检测装置,包括:
第一采集模块,用于从网络中采集漏洞信息,形成漏洞信息库;
第二采集模块,用于从所述网络中采集软件包,并将所述软件包下载到本地服务器;
提取模块,用于对所述软件包进行技术框架指纹信息提取,形成软件基线库,所述软件基线库包括基础包路径名称、技术框架软件名称和技术框架版本号;
提取模块还用于对所述软件包进行解压缩,以释放软件包介质文件到指定目录,从所述指定目录中提取软件包文件;
根据所述基础包路径名称、技术框架软件名称和技术框架版本号生成所述软件基线库的摘要信息;
根据所述摘要信息,得到所述软件基线库的技术框架指纹信息;
识别模块,用于对待测APP的技术框架进行识别,得到所述待测APP的技术框架指纹信息;
确认模块,用于将所述待测APP的技术框架指纹信息与所述软件基线库的技术框架指纹信息进行对比,确认所述待测APP的技术框架身份信息,其中所述技术框架身份信息包括技术框架软件版本和技术框架软件名称;
对比模块,用于基于所述待测APP的技术框架身份信息,与所述漏洞信息库进行对比,生成所述待测APP的漏洞检测结果。
11.一种应用程序APP检测设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811486778.2A CN111290935B (zh) | 2018-12-06 | 2018-12-06 | 应用程序app检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811486778.2A CN111290935B (zh) | 2018-12-06 | 2018-12-06 | 应用程序app检测方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290935A CN111290935A (zh) | 2020-06-16 |
CN111290935B true CN111290935B (zh) | 2023-07-18 |
Family
ID=71029758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811486778.2A Active CN111290935B (zh) | 2018-12-06 | 2018-12-06 | 应用程序app检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290935B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553594A (zh) * | 2021-07-23 | 2021-10-26 | 中信银行股份有限公司 | 漏洞信息处理方法、装置、电子设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480531A (zh) * | 2017-07-18 | 2017-12-15 | 北京计算机技术及应用研究所 | 基于漏洞库的自动化软件漏洞验证***及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084868A1 (en) * | 2010-09-30 | 2012-04-05 | International Business Machines Corporation | Locating documents for providing data leakage prevention within an information security management system |
CN103473505B (zh) * | 2012-06-06 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 一种软件漏洞的扫描提示方法和装置 |
CN107977576A (zh) * | 2016-10-21 | 2018-05-01 | 北京计算机技术及应用研究所 | 一种基于应用指纹的主机漏洞检测***及方法 |
CN106503564B (zh) * | 2016-10-26 | 2019-08-20 | 上海携程商务有限公司 | 软件漏洞的发现方法和*** |
CN107273751B (zh) * | 2017-06-21 | 2020-06-02 | 北京计算机技术及应用研究所 | 基于多模式匹配的安全漏洞在线发现方法 |
-
2018
- 2018-12-06 CN CN201811486778.2A patent/CN111290935B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480531A (zh) * | 2017-07-18 | 2017-12-15 | 北京计算机技术及应用研究所 | 基于漏洞库的自动化软件漏洞验证***及方法 |
Non-Patent Citations (2)
Title |
---|
Ju An Wang 等.Measuring Similarity for Security Vulnerabilities.《HICSS '10: Proceedings of the 2010 43rd Hawaii International Conference on System Sciences》.2010,第1-10页. * |
软件漏洞静态检测模型及检测框架_;王涛 等;《计算机科学》;第80-86+116页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111290935A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522922B (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
CN108667855B (zh) | 网络流量异常监测方法、装置、电子设备及存储介质 | |
GB2569675A (en) | Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through SQL packet analysis | |
CN109948334B (zh) | 一种漏洞检测方法、***及电子设备和存储介质 | |
CN108667770B (zh) | 一种网站的漏洞测试方法、服务器及*** | |
CN101582887A (zh) | 安全防护方法、网关设备及安全防护*** | |
KR100968126B1 (ko) | 웹쉘 탐지 시스템 및 웹쉘 탐지 방법 | |
CN111104579A (zh) | 一种公网资产的识别方法、装置及存储介质 | |
CN108667766B (zh) | 文件探测方法及文件探测装置 | |
CN103746992A (zh) | 基于逆向的入侵检测***及其方法 | |
CN113810408A (zh) | 网络攻击组织的探测方法、装置、设备及可读存储介质 | |
CN112887341A (zh) | 一种外部威胁监控方法 | |
CN114386032A (zh) | 电力物联网设备的固件检测***及方法 | |
CN113779571B (zh) | WebShell检测装置、WebShell检测方法及计算机可读存储介质 | |
CN115033894B (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN111625837A (zh) | 识别***漏洞的方法、装置和服务器 | |
WO2015131643A1 (zh) | 软件检测方法及装置 | |
CN110765333A (zh) | 采集网站信息的方法及装置、存储介质、电子装置 | |
CN111290935B (zh) | 应用程序app检测方法、装置、设备及介质 | |
CN107566371B (zh) | 一种面向海量日志的WebShell挖掘方法 | |
CN113591079B (zh) | 获取异常应用安装包的方法、装置及电子设备 | |
CN112685255A (zh) | 一种接口监控方法、装置、电子设备及存储介质 | |
CN111597557A (zh) | 恶意应用程序的检测方法、***、装置、设备及存储介质 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN114500348B (zh) | 一种cdn网关测试方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |