首页> 中国专利> 基于OTT和IPTV平台的应用软件安全测评方法及装置

基于OTT和IPTV平台的应用软件安全测评方法及装置

摘要

本发明公开了一种基于OTT和IPTV平台的应用软件安全测评方法及装置,包括:确定用户输入的检测项,并从漏洞特征库中加载漏洞代码特征,以生成与检测项对应的数据模型;获取用户提交的安装包文件,并扫描所述安装包文件的反编译代码;利用所述与检测项对应的数据模型,确定反编译代码中的可疑代码位置;根据smali语法,对反编译代码中的变量采用回溯及递推算法,以获取可疑代码的上下文信息;基于可疑代码的上下文信息以及可疑代码位置确定漏洞位置。本申请提出了一种自动化的测评方式,可自主设置检测规则,打造符合新媒体行业监管规范的检测平台。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-09

    实质审查的生效 IPC(主分类):G06F21/56 专利申请号:2022103238834 申请日:20220330

    实质审查的生效

说明书

技术领域

本发明涉及新媒体技术领域,尤其涉及一种基于OTT和IPTV平台的应用软件安全测评方法及装置。

背景技术

随着新媒体智能终端的不断普及,Android系统作为目前OTT和IPTV市场最主流的操作系统,其应用种类、应用数量都在不断地增长。Android作为一个开放系统,应用程序的各种安全问题层出不穷,例如安装包逆向反编译,恶意代码注入,应用盗版,界面劫持,短信劫持,输入监听等。新媒体平台应用的这些安全问题不仅会泄露用户的个人信息,甚至会造成应用的知识版权盗用,使得名誉和经济受损。

虽然获知当前应用市场的安全现状,但鉴于新媒体应用安全领域的专业性,开发者和用户无法全面了解应用的安全风险和漏洞,难以对应用安全作出深入的评估和分析,更加缺乏专业的知识对其中的安全问题进行逐一解决,而专业的新媒体应用安全工程师人才稀缺并且成本较高,无法满足大量应用的安全性评估需求。并且,本质上,应用的安全问题主要来源于源代码的安全状况,源代码的安全隐患隐藏在大量的源代码内容中间,难以发现和识别。

发明内容

本发明实施例提供一种基于OTT和IPTV平台的应用软件安全测评方法及装置,用以提出一种自动化的测评方式,可自主设置检测规则,打造符合新媒体行业监管规范的检测平台。

本发明实施例提供一种基于OTT和IPTV平台的应用软件安全测评方法,包括:

确定用户输入的检测项,并从漏洞特征库中加载漏洞代码特征,以生成与检测项对应的数据模型;

获取用户提交的安装包文件,并扫描所述安装包文件的反编译代码;

利用所述与检测项对应的数据模型,确定反编译代码中的可疑代码位置;

根据smali语法,对反编译代码中的变量采用回溯及递推算法,以获取可疑代码的上下文信息;

基于可疑代码的上下文信息以及可疑代码位置确定漏洞位置。

在一些实施例中,从漏洞特征库中加载漏洞代码特征包括:

从漏洞特征库中分别提取漏洞代码以及安全代码的正向特征和负向特征;

其中,正向特征包括:

Android SDK推荐的涉及安全隐患的代码流程及规范、高版本的第三方SDK中的代码特征或二进制特征、移动应用安全厂商的加固包特征、移动应用安全软件的文件结构、代码特征、用以监测移动应用运行环境是否安全的代码特征、谷歌及安全行业公开的加强安全性的代码特征;

负向特征包括:

存在系统崩溃风险的C/C++系统函数调用特征、存在web服务信息泄漏的javascrip文本特征、源代码中的特殊常量泄漏特征、存在被数据库注入攻击的代码特征、存在漏洞的代码上下文特征、Android资源文件的不安全特征、Android证书明文特征、谷歌公开的存在安全漏洞的代码特征。

在一些实施例中,所述与检测项对应的数据模型包括如下模型中的至少一种:关键字模型、正则式模型、黑白名单模型。

在一些实施例中,确定反编译代码中的可疑代码位置是通过对二进制层级的特征直接进行匹配确定的。

在一些实施例中,确定漏洞位置之后,所述方法还包括,回调漏洞位置至目标引擎。

本申请实施例还提出一种基于OTT和IPTV平台的应用软件安全测评装置,包括处理器,被配置为:

确定用户输入的检测项,并从漏洞特征库中加载漏洞代码特征,以生成与检测项对应的数据模型;

获取用户提交的安装包文件,并扫描所述安装包文件的反编译代码;

利用所述与检测项对应的数据模型,确定反编译代码中的可疑代码位置;

根据smali语法,对反编译代码中的变量采用回溯及递推算法,以获取可疑代码的上下文信息;

基于可疑代码的上下文信息以及可疑代码位置确定漏洞位置。

本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法的步骤。

本发明实施例提出了一种自动化的测评方式,可自主设置检测规则,打造符合新媒体行业监管规范的检测平台。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本申请实施例的基本流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供一种基于OTT和IPTV平台的应用软件安全测评方法,本示例中可以通过静态引擎实现,静态引擎根据提交的APK文件,使用工具分别解析应用包信息,获取完整的应用权限,组件,行为等等各项信息和应用smali源代码文件,结合漏洞情况,分析源代码smali的漏洞情况,并定位到具体文件和方法。对于应用包中的C/C++动态链接库进行二进制特征分析。如图1所示,本申请的方法包括如下步骤:

在步骤S101中,确定用户输入的检测项,并从漏洞特征库中加载漏洞代码特征,以生成与检测项对应的数据模型。本示例中漏洞特征库可以是预先设置的,在一些实施例中,所述与检测项对应的数据模型包括如下模型中的至少一种:关键字模型、正则式模型、黑白名单模型。

在步骤S102中,获取用户提交的安装包文件,并扫描所述安装包文件的反编译代码。也即反编译APK文件,获取源代码。

在步骤S103中,利用所述与检测项对应的数据模型,确定反编译代码中的可疑代码位置。基于前述获得的源代码以及数据模型来对问题代码进行定位。

在步骤S104中,根据smali语法,对反编译代码中的变量采用回溯及递推算法,以获取可疑代码的上下文信息。

在步骤S105中,基于可疑代码的上下文信息以及可疑代码位置确定漏洞位置。Android中Java方法参数通常决定漏洞是否存在,本示例中在获取到可疑代码位置后,静态引擎根据smali语法,对代码中的变量采用回溯及递推算法获取可疑代码的上下文信息,再次通过正则式判断上下文可能带来的安全漏洞。

本发明实施例提出了一种自动化的测评方式,可自主设置检测规则,打造符合新媒体行业监管规范的检测平台。

在一些实施例中,从漏洞特征库中加载漏洞代码特征包括:

从漏洞特征库中分别提取漏洞代码以及安全代码的正向特征和负向特征;

其中,正向特征包括:

Android SDK推荐的涉及安全隐患的代码流程及规范、高版本的第三方SDK中的代码特征或二进制特征、移动应用安全厂商的加固包特征、移动应用安全软件的文件结构、代码特征、用以监测移动应用运行环境是否安全的代码特征、谷歌及安全行业公开的加强安全性的代码特征;

负向特征包括:

存在系统崩溃风险的C/C++系统函数调用特征、存在web服务信息泄漏的javascrip文本特征、源代码中的特殊常量泄漏特征、存在被数据库注入攻击的代码特征、存在漏洞的代码上下文特征、Android资源文件的不安全特征、Android证书明文特征、谷歌公开的存在安全漏洞的代码特征。

在一些实施例中,确定反编译代码中的可疑代码位置是通过对二进制层级的特征直接进行匹配确定的。

在一些实施例中,确定漏洞位置之后,所述方法还包括,回调漏洞位置至目标引擎。

本申请实施例还提出一种基于OTT和IPTV平台的应用软件安全测评方法,本示例中应用静态引擎和动态态检测技术方式实现,其中

静态检测包括如下步骤:

步骤1、提取漏洞代码以及安全代码的特征用于正/负向的对比。

步骤2、基于提交的APK源代码扫描应用包的反编译代码。

步骤201、对于源码层级的特征采用高效的正则表达式工具进行代码匹配,确定可疑代码位置以及安全代码的有无。

步骤202、对于二进制层级的特征直接进行匹配。

步骤3、获取代码环境信息比对信息是否一致,防止误报。

步骤301、Android中Java方法参数通常决定漏洞是否存在,所以在第二步中获取到代码定位后,引擎根据smali语法,对代码中的变量采用回溯及递推算法获取可疑代码的上下文信息,再次通过正则式判断上下文可能带来的安全漏洞。

步骤4、根据第2、3步的匹配结果定位漏洞位置,回调结果给引擎调度。

动态检测引擎根据漏洞和风险的实际情况,在模拟设备上安装APK文件,启动该应用,使用工具来动态攻击和获取应用信息,来获取风险信息。Android设备模拟器借助Linux内核运行,同时通过libhoudini使其流畅运行与x86服务器之上。包括如下步骤:

步骤1、首先代码扫描是否存在疑似漏洞代码,提高校验速度。

步骤2、存在则获取当前所在的类信息。

步骤3、安装当前测评APK到模拟设备或真机,模拟器及真机上已原装的Android调试工具、安卓注入工具、通信监听工具、扫描及模拟攻击工具、界面拦截工具。

步骤4、动态启动测评项目。对于防御攻击能力的检测,引擎启动应用程序,依次调用第3点中的工具进行攻击;对于威胁环境防御的能力检测,引擎模拟危险运行环境的特征并启动应用程序。

步骤5、根据应用程序的运行结果,判断结果是否安全。

步骤6、回调结果给引擎调度。

本申请的方案融合了静态检测和动态检测的检测方式,在静态检测方式下,静态检测模块可以快速的针对漏洞静态代码特征进行定位和查找,标注风险和漏洞的位置;在动态检测方式下,动态检测引擎结合模拟器设备管理模块,快速安装应用,启动应用后模拟实时动态攻击,并通过应用响应的行为及日志以验证应用中存在的风险和漏洞。能够检测第三方SDK的安全问题和应用权限使用情况,还具有检测结果自主验证与编辑、批量应用安全统计及版本安全管理等丰富的平台功能,可自主设置检测规则,打造符合新媒体行业监管规范的检测平台。

本申请实施例还提出一种基于OTT和IPTV平台的应用软件安全测评装置,包括处理器,被配置为:

确定用户输入的检测项,并从漏洞特征库中加载漏洞代码特征,以生成与检测项对应的数据模型;

获取用户提交的安装包文件,并扫描所述安装包文件的反编译代码;

利用所述与检测项对应的数据模型,确定反编译代码中的可疑代码位置;

根据smali语法,对反编译代码中的变量采用回溯及递推算法,以获取可疑代码的上下文信息;

基于可疑代码的上下文信息以及可疑代码位置确定漏洞位置。

本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法的步骤。

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

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号