CN110162977A - 一种Android车载终端系统漏洞检测系统及方法 - Google Patents

一种Android车载终端系统漏洞检测系统及方法 Download PDF

Info

Publication number
CN110162977A
CN110162977A CN201910333386.0A CN201910333386A CN110162977A CN 110162977 A CN110162977 A CN 110162977A CN 201910333386 A CN201910333386 A CN 201910333386A CN 110162977 A CN110162977 A CN 110162977A
Authority
CN
China
Prior art keywords
loophole
test
mounted terminal
information
vehicle
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.)
Granted
Application number
CN201910333386.0A
Other languages
English (en)
Other versions
CN110162977B (zh
Inventor
张淼
徐国爱
王晓婷
孟庆儒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201910333386.0A priority Critical patent/CN110162977B/zh
Publication of CN110162977A publication Critical patent/CN110162977A/zh
Application granted granted Critical
Publication of CN110162977B publication Critical patent/CN110162977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种Android车载终端系统漏洞检测系统及方法,该检测系统包括车载终端系统漏洞库模块、车载终端系统漏洞检测模块、车载终端系统漏洞检测报告生成模块。该系统可以检测已连接的Android车载终端系统中存在的漏洞,并将检测结果报告给用户。通过对现有方法以及检测工具的调研分析,本发明基于Trade Federation测试框架,辅以车载终端系统漏洞测试用例构建,最终实现Android车载终端系统漏洞检测。该漏洞检测系统可以实现对设备的管理、测试用例的管理、测试任务的调度执行等功能,有利于帮助及时发现并修复系统漏洞以提高车载终端操作系统的安全性。

Description

一种Android车载终端系统漏洞检测系统及方法
技术领域
本发明是一种漏洞检测技术,属于信息安全中的软件安全技术领域,具体涉及一种Android车载终端系统漏洞检测系统及方法。
背景技术
由于Android车载终端系统是基于Android系统的,并且系统架构与其基本相同,所以在Android系统上进行漏洞检测的方法同样可以移植到车载终端系统上。目前国内有代表性的Android系统漏洞检测工具主要有:供应商测试套件VTS(Vendor Test Suite)和X-Ray,但也存在兼容性较差的局限性。
X-Ray可以检测Android设备中未修复的漏洞,X-Ray详细了解了一类被称为“特权升级”的漏洞。恶意应用程序可利用此类漏洞获取设备上的root权限,并执行通常受Android操作系统限制的操作。经调研,X-Ray工具的检测原理是组织了一些漏洞PoC,遍历执行PoC脚本,然后回收漏洞触发结果。该工具的检测流程十分简单,可以测试的漏洞数量只有十几个,同时在较高的操作系统版本上存在兼容性差以及不稳定的问题。
2015年末,NowSecure发布了一个Android漏洞测试套件Android VTS,该测试套件的测试原理与X-Ray十分相似,其测试范围包括X-Ray未测试的几个漏洞。该检测工具同样存在在较高的操作系统版本上运行不稳定甚至崩溃的问题。
国内外几乎没有针对Android系统漏洞的自动化测试框架,但是Android系统的自动化测试框架却十分成熟,主要有以下几种工具:Monkey、MonkeyRunner、Instrumentation、Trade Federation。
Monkey是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。但是该工具的测试事件和数据都是随机的,不可以自定义,也无法进行二次开发利用。
MonkeyRunner是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。但是该工具执行速度太慢,自动化程度较低。
Instrumentation:该测试框架主要针对android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作、查找和断言机制的API,能够对各种控件进行操作。使用Instrumentation,可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。该测试框架比较适用于针对应用程序的测试,但并不满足针对Android设备测试的需求。
Trade Federation(简称tradefed或TF)是一种连续的测试框架,专门用于在Android设备上运行测试。这款Java应用会在主机上运行,并会通过adb与一部或多部Android设备进行通信。功能特点有:模块化、灵活、可扩展的设计;内置对运行很多不同类型Android测试的支持:instrumentation、uiautomator、native/gtest、基于主机的JUnit等等;在adb的基础之上提供可靠性和恢复机制;支持同时在多部设备上安排和运行测试。该测试框架主要是针对Android设备进行测试,比较符合本文中对Android系统进行检测的功能需求。
针对Android系统的漏洞检测多是通过研究Android系统特定漏洞的原理,然后基于漏洞原理研究其触发方法,构建该漏洞的验证代码PoC(Proof of Concept),最后进行漏洞触发以检测该漏洞是否存在。目前单个漏洞的PoC主要通过各种黑客大会上的演讲的形式公开出来,XDA、乌云等论坛上,也有最新披露的漏洞的PoC细节。
目前的Android系统漏洞自动化检测工具检测流程非常简单,缺乏对检测任务、检测设备以及测试用例等的管理,所以造成在一些Android系统版本上运行不稳定,兼容性较差,由于Android平台本身也存在碎片化严重的问题,所以现有工具无法适应Android系统的生态环境。除此之外,现有的Android系统漏洞检测工具,其支持的漏洞数量很少,同时缺乏对漏洞库的维护,导致检测结果十分不全面。
现有的研究Android系统漏洞检测的方法由于只是针对单一漏洞或者某种特定类型的漏洞,不具有通用性,且无法实现批量检测漏洞,自动化程度低,效率低。
发明内容
针对现有技术中存在的缺陷,本发明的主要目标是开发一个Android车载终端系统漏洞检测系统及方法,该系统可以检测已连接的Android车载终端系统中存在的漏洞,并将检测结果报告给用户。通过对现有方法以及检测工具的调研分析,本发明基于TradeFederation测试框架,辅以车载终端系统漏洞测试用例构建,最终实现Android车载终端系统漏洞检测。该漏洞检测系统可以实现对设备的管理、测试用例的管理、测试任务的调度执行等功能,有利于帮助及时发现并修复系统漏洞以提高车载终端操作系统的安全性。
为达到以上目的,本发明采取的技术方案是:
一种Android车载终端系统漏洞检测系统,包括三个模块:车载终端系统漏洞库模块、车载终端系统漏洞检测模块、车载终端系统漏洞检测报告生成模块。
所述车载终端系统漏洞库模块中包括漏洞信息库、漏洞测试用例库和漏洞结果信息库,其中漏洞信息库以数据库中表的形式存在,用于存储漏洞收集阶段的漏洞基本信息。
漏洞测试用例库以数据库中表的形式存在,用于存储漏洞测试用例信息。
漏洞结果信息库也作为数据库中表的形式存在,用于记录漏洞检测结果信息。
漏洞信息库、漏洞测试用例库以及漏洞结果信息库之间存在映射关系,通过漏洞编号将三个库连接为一个整体。可以通过对数据库中的表数据进行增删改实现对漏洞进行增加、删除、修改,将其封装成用户界面中增删改的接口后对车载终端系统漏洞库模块的管理就会变得非常方便。
所述漏洞测试用例库、漏洞信息库和漏洞结果信息库与车载终端系统漏洞检测模块以及车载终端系统漏洞检测报告生成模块相关联。
所述车载终端系统漏洞检测模块基于Trade Federation自动化测试框架,以漏洞攻击的方式检测系统中漏洞的存在情况,用于实现设备管理、测试用例管理、任务调度执行等功能。
所述车载终端系统漏洞检测模块包括测试任务调度器、设备管理器、配置文件解析器以及测试任务执行器,所述测试任务调度器、设备管理器、配置文件解析器分别与测试任务执行器连接。
所述设备管理器通过与安卓调试桥Android Debug Bridge(adb)进行交互,用于监听设备的状态信息,实现对连接到该检测系统的车载终端设备(即车载终端系统)的状态进行管理,由于在Android系统漏洞触发过程中可能会造成设备崩溃重启、进入fastboot模式、设备断开连接等等问题,实现对设备状态的管理是保证测试稳定不间断进行的前提。
所述配置文件解析器用于解析配置文件集中的配置文件,获取需要执行的测试用例集以及测试环境配置信息。
所述配置文件集用于对测试用例进行管理,不同的配置文件配置了不同的测试用例集以及该测试用例集的测试环境配置信息,可以支持全部测试用例遍历执行、不同类型的测试用例集分别执行、不同操作系统版本的测试用例分别执行、不同系统层次的测试用例集分别执行。用户还可以自定义配置文件,根据自己的需求组织测试用例或者添加测试用例。
所述测试任务调度器用于管理测试任务的执行,实现多任务多设备之间的调度处理,防止任务执行与设备管理的混乱。任务调度主要通过维护一个任务队列完成的,每当有新的任务下达时,系统就会向任务队列中添加一个新任务,然后任务调度线程不断监控任务队列,每次从队列中取出一个优先级最高的任务,然后匹配一个可用的设备,将两者传送到任务执行线程。
所述测试任务执行器用于执行测试任务,主要包括根据配置文件解析器的解析结果进行测试环境准备、测试用例集加载,以及测试设备准备、测试用例执行,任务执行完毕后进行清理工作,即恢复设备状态等,并将检测结果信息存储在车载终端系统漏洞库模块的漏洞结果信息库中。
所述车载终端系统漏洞检测报告生成模块包括检测报告生成器,用于从车载终端系统漏洞库模块中读取检测结果信息以及漏洞基本信息并生成报告,所述报告主要包括:漏洞编号、漏洞类型、漏洞描述、漏洞点、漏洞风险等级、漏洞触发过程信息等。
在上述方案的基础上,所述漏洞信息库中从三个渠道收集典型操作系统的漏洞:标准漏洞库发布的相关车机操作系统漏洞、互联网搜集的漏洞和自主挖掘的漏洞。
所述标准漏洞库包括CVE、CNNVD、CAVD等漏洞库;
CVE漏洞库:公共漏洞和风险,是一个公开披露的网络安全漏洞和风险的字典,包含漏洞编号、漏洞描述、相关参考。
CNNVD漏洞库:国家信息安全漏洞库,CNNVD通过自主挖掘、社会提交、协作共享、网络搜集以及技术检测等方式,联合政府部门、行业用户、安全厂商、高校和科研机构等社会力量,收集了涉及国内外主流应用软件、操作系统和网络设备等软硬件系统的信息安全漏洞。该漏洞库中包含了漏洞CVE编号、CNNVD编号、危害级别、危害类型、发布时间、漏洞来源、漏洞简介、漏洞公告、参考信息等。
CAVD漏洞库:CAVD为中国汽车行业漏洞应急响应平台,CAVD通过内部测试、数据共享、民间力量三种方式收集漏洞信息,按照云服务、通信、车内、外部威胁四种类型对漏洞进行分类、审核、验证和存储,并逐步对行业公开通用型漏洞,推进汽车信息安全产业良好发展。
通过人工分析收集每个标准漏洞库中与车机操作系统有关联的漏洞,并将相关漏洞编号、漏洞描述信息、漏洞风险等级等信息进行记录。
所述互联网搜集的漏洞指的是:互联网上存在的各种有关车联网漏洞的报告、资讯中包含的漏洞信息。
通过人工分析各个安全分析报告、资讯中涉及到的车机操作系统漏洞信息,然后进一步对其漏洞的原理、漏洞类型、编号等信息进行研究,同时记录所有的相关信息。
所述自主挖掘的漏洞指的是实验室对车机操作系统自主挖掘出的漏洞。
提取车机操作系统的固件,对其进行逆向或者采用Fuzz、渗透测试等技术自主挖掘漏洞,并对挖掘出来的漏洞的原因、漏洞类型等信息进行深入探索,同时记录所有的相关信息。
在上述方案的基础上,所述漏洞收集阶段的漏洞基本信息,包含:漏洞编号、漏洞类型、漏洞所在位置、漏洞描述、漏洞风险等级信息。
在上述方案的基础上,所述漏洞测试用例信息包含测试用例所关联的漏洞编号、测试用例的类型、测试用例的执行方式、测试用例的存储位置信息。
在上述方案的基础上,所述漏洞检测结果信息包含漏洞结果相关联的漏洞编号、漏洞触发过程信息、漏洞触发结果信息。
在上述方案的基础上,所述设备的状态信息分为如下几种:
FASTBOOT:线刷状态;ONLINE:在线状态;OFFLINE:离线状态;RECOVERY:卡刷状态;NOT_AVAILABLE:不可用状态(根据情况不同手动设置);RecoveryMode:恢复模式。
在上述方案的基础上,所述设备管理器对连接到检测系统的车载终端设备的状态进行管理包括对新设备连入的监控、已经连接设备的状态改变(例如:进入fastboot模式、重新启动、断开连接等)、尝试对设备进行修复(设备重连、设备等待、设备重启等)。
在上述方案的基础上,Android系统漏洞的测试用例主要分为两种:一种是漏洞PoC,将其编译完成后添加到漏洞测试用例库,检测时解析配置文件中的测试用例集信息并从漏洞测试用例库中读取该测试脚本并放置到待测系统目录下赋予执行权限,执行该脚本以验证漏洞点的存在;另一种是:精心构造的畸形数据,使用Java或者JNI来触发漏洞,直到数据被传递到底层漏洞位置,进而检测漏洞的存在。
在上述方案的基础上,当待测设备状态发生改变时需要进行状态恢复。对于设备连接状态问题,一般首先通过等待adb一段时间进行自动恢复,若等待一段时间并未恢复,则判断设备是否进入fastboot模式等,执行fastboot重启命令操作设备;如果等待一段时间仍未发现设备状态恢复则抛出状态异常的提示。在执行测试用例的过程中如果设备状态发生变化,首先尝试进行状态恢复,若无法恢复状态则给出设备状态异常的提示,以便人工进行恢复。
利用上述Android车载终端系统漏洞检测系统进行漏洞测试的方法,主要处理步骤如下:
1)用户将待测Android车载终端系统连接到检测系统后,测试系统开始工作。
2)首先利用配置文件解析器解析全局配置文件,将测试任务进行封装;
然后进行初始化工作:初始化设备管理器:用于管理连接到测试系统中的终端设备;初始化任务调度器:用于管理测试任务的执行,共分为三类任务:正在执行的任务、已经执行完毕的任务、在队列中等待执行的任务;
最后开启测试子线程。
3)测试子线程一方面启动任务调度子线程,另一方面不断监听用户是否有新的测试请求,不断将用户新的测试请求加入测试任务队列中。
所述任务调度子线程具体为:
3.1)获取设备管理器:监听新设备加入、管理已连接设备的状态等。
3.2)解析存储测试任务的配置文件,并存储测试项信息。
3.3)每隔一段时间监听是否有新下达的任务,然后处理已经放在队列中的任务:一方面将队列中的任务按照优先级进行排序,另一方面不断从队列中取出一个优先级最高的任务,同时检测可用设备,开启任务执行子线程来执行队列任务。
4)启动任务执行子线程:
4.1)遍历待测的设备,获取设备信息,例如设备abi等,根据不同的设备信息逐个在设备上执行测试任务。
4.2)解析存储测试任务的配置文件:配置文件中定义了测试用例集;解析存储测试环境的配置文件:配置文件中定义了需要执行测试用例的环境配置信息。
4.3)遍历测试用例集,执行测试用例的环境准备工作,根据测试用例的类型,(例如:仅需要主机端完成,测试代码封装在jar包中或者仅需要将可运行文件push到手机上等测试类型)执行测试。
4.4)收集漏洞检测过程中的系统日志信息,进行分析,存储测试用例的执行结果以及漏洞触发过程信息。
4.5)测试任务完成后进行清理工作。
5)测试全部完成后,从漏洞信息库中读取已测漏洞基本信息,并将漏洞测试结果信息进行整理输出检测报告,提供给用户查阅。
在上述方案的基础上,步骤2)中解析全局配置文件的具体步骤为:
2.1)解析存储测试任务的配置文件,并存储测试项信息;
2.2)解析存储测试环境的配置文件,并存储环境配置信息。
在上述方案的基础上,步骤4.5)中所述清理工作包括卸载预装的app、设备状态处理等。
本发明的有益效果:
(1)车载终端Android操作系统漏洞数据库
本文建立并维护一个车载终端Android操作系统漏洞数据库,其中包含漏洞信息库、漏洞测试用例库、漏洞结果信息库,并且通过漏洞编号建立三个库之间的映射关系。使得对漏洞库内容的增加、删除、修改等操作更加简易方便,同时增强了该漏洞库模块的可扩展性。
(2)车载终端Android操作系统漏洞检测系统
本文结合Android现有的自动化测试系统的优点,开发了针对车载终端系统漏洞检测的系统。该系统可以实现连接设备、测试用例、执行任务的管理,支持多设备多任务的调度执行、多个测试任务的结果回收。通过开发此漏洞检测系统,既大大提高了漏洞检测过程的效率以及稳定性,又保证了不同系统版本之间的兼容性。
本发明要保护的发明内容的技术关键点:
1)操作方便并且可扩充的Android车载终端系统漏洞库
根据系统方案中的Android车载终端系统漏洞库建立过程可知,该漏洞库中的漏洞信息可以非常方便地进行增删改,并且支持漏洞库的不断扩充。
2)支持多种测试方案的测试用例管理方法
根据系统车载终端系统漏洞检测模块的介绍可知,该系统可以实现漏洞测试用例的分类管理,即支持多种检测方案,并且用户也可以自定义检测方案。
3)多设备管理与多任务调度过程良好的漏洞检测系统
根据系统处理流程图可知,该漏洞检测系统可以实现多设备管理与多任务调度执行功能,可以很大程度上提高检测效率以及检测过程的稳定性。
附图说明
本发明有如下附图:
图1本发明Android车载终端系统漏洞检测系统的架构图。
图2本发明Android车载终端系统漏洞检测方法的流程图。
图3使用本发明进行软件开发的实施例流程图。
图4使用本发明进行准入评估的实施例流程图。
具体实施方式
以下结合附图1-4对本发明作进一步详细说明。
该工具共分为三个模块:Android车载终端系统漏洞库模块、Android车载终端系统漏洞检测模块、车载终端系统漏洞检测报告生成模块。系统架构图如图1所示。
1)车载终端系统漏洞库模块
(1)漏洞收集
构建车载终端系统漏洞库之前需要收集相关典型漏洞,研究其漏洞原理等信息。从三个渠道收集典型操作系统的漏洞:CVE、CNNVD等标准漏洞库发布的相关车机操作系统漏洞,互联网搜集的漏洞,自主挖掘的漏洞。
a)CVE、CNNVD、CAVD等标准漏洞库
CVE漏洞库:公共漏洞和风险,是一个公开披露的网络安全漏洞和风险的字典,包含漏洞编号、漏洞描述、相关参考。
CNNVD漏洞库:国家信息安全漏洞库,CNNVD通过自主挖掘、社会提交、协作共享、网络搜集以及技术检测等方式,联合政府部门、行业用户、安全厂商、高校和科研机构等社会力量,收集了涉及国内外主流应用软件、操作系统和网络设备等软硬件系统的信息安全漏洞。该漏洞库中包含了漏洞CVE编号、CNNVD编号、危害级别、危害类型、发布时间、漏洞来源、漏洞简介、漏洞公告、参考信息等。
CAVD漏洞库:CAVD为中国汽车行业漏洞应急响应平台,CAVD通过内部测试、数据共享、民间力量三种方式收集漏洞信息,按照云服务、通信、车内、外部威胁四种类型对漏洞进行分类、审核、验证和存储,并逐步对行业公开通用型漏洞,推进汽车信息安全产业良好发展。
通过人工分析收集每个标准漏洞库中与车机操作系统有关联的漏洞,并将相关漏洞编号、漏洞描述信息、漏洞风险等级等信息进行记录。
b)互联网搜集的漏洞
互联网搜集的漏洞指的是:互联网上存在的各种有关车联网漏洞的报告、资讯中包含的漏洞信息。
通过人工分析各个安全分析报告、资讯中涉及到的车机操作系统漏洞信息,然后进一步对其漏洞的原理、漏洞类型、编号等信息进行研究,同时记录所有的相关信息。
c)自主挖掘的漏洞
实验室对车机操作系统自主挖掘出的漏洞。
提取车机操作系统的固件,对其进行逆向或者采用Fuzz、渗透测试等技术自主挖掘漏洞,并对挖掘出来的漏洞的原因、漏洞类型等信息进行深入探索,同时记录所有的相关信息。
(2)车载终端系统漏洞库建立
车载终端系统漏洞库中包括漏洞信息库、漏洞测试用例库和漏洞结果信息库,其中漏洞信息库以数据库中的表的形式存在,该表主要存储漏洞收集阶段的漏洞基本信息,包含:漏洞编号、漏洞类型、漏洞所在位置、漏洞描述、漏洞风险等级信息。
漏洞测试用例库主要包含各种漏洞的PoC,测试用例文件实际存放在项目目录特定文件下,但是为了合理地管理漏洞测试用例,漏洞测试用例也以数据库中表的形式记录其信息,包含测试用例所关联的漏洞编号、测试用例的类型、测试用例的执行方式、测试用例的存储位置信息。
漏洞检测结果信息库也作为数据库中的一个表的形式存在,该表包含漏洞结果相关联的漏洞编号、漏洞触发过程信息、漏洞触发结果信息。
漏洞信息库、漏洞测试用例库以及漏洞结果信息库之间存在映射关系,通过漏洞编号将三个库连接为一个整体。由此针对漏洞进行增加、删除、修改可以通过对数据库中的表数据进行增删改实现,将其封装成用户界面中增删改的接口后对漏洞库的管理就会变得非常方便。
2)车载终端系统漏洞检测模块
车载终端系统漏洞检测模块是以漏洞攻击的方式检测系统中漏洞的存在情况,
该系统漏洞自动化检测框架主要参考Trade Federation自动化测试框架,可以实现设备管理、测试用例管理、任务调度执行等功能。
(1)设备管理
设备管理的主要功能是实现对连接到该检测系统的设备的状态进行管理,包括对新设备连入的监控、已经连接设备的状态改变(例如:进入fastboot模式、重新启动、断开连接等)、尝试对设备进行修复(设备重连、设备等待、设备重启等)等功能。由于在Android系统漏洞触发过程中可能会造成设备崩溃重启、进入fastboot模式、设备断开连接等等问题,实现对设备状态的管理是保证测试稳定不间断进行的前提。
该设备管理器主要通过与Android Debug Bridge进行交互,由此可以监听设备的状态信息。本文将设备的状态分为如下几种:
FASTBOOT:线刷状态;ONLINE:在线状态;OFFLINE:离线状态;RECOVERY:卡刷状态;NOT_AVAILABLE:不可用状态(根据情况不同手动设置);RecoveryMode:恢复模式。
当待测设备状态发生改变时需要进行状态恢复。对于设备连接状态问题,一般首先通过等待adb一段时间进行自动恢复,若等待一段时间并未恢复,则判断设备是否进入fastboot模式等,执行fastboot重启命令操作设备;如果等待一段时间仍未发现设备状态恢复则抛出状态异常的提示。在执行测试用例的过程中如果设备状态发生变化,首先尝试进行状态恢复,若无法恢复状态则给出设备状态异常的提示,以便人工进行恢复。
(2)测试用例管理
测试用例的组织与管理在Android系统漏洞检测中也是十分必要的,首先Android系统漏洞存在不同的类型,其次不同版本的操作系统中存在的漏洞也不尽相同,不同的系统架构所支持的测试用例是不同的,不同系统层次的漏洞也是不同的,所以针对测试用例进行分类组织管理可以使得测试选择更加灵活、测试方案更加合理、用户体验更加友好。除此之外针对测试用例进行管理可以更好的支持测试用例的扩充。
本文针对测试用例进行管理主要通过配置文件进行测试用例的组织,不同的配置文件配置了不同的测试集合,可以支持全部测试用例遍历执行、不同类型的测试用例集分别执行、不同操作系统版本的用例分别执行、不同系统层次的测试用例集分别执行。用户还可以自定义配置文件,根据自己的需求组织测试用例或者添加测试用例。在系统实际运行时会根据用户的选择,解析相应的配置文件,并执行相应的测试用例集合,并输出测试结果。
Android系统漏洞的测试用例主要分为两种:一种是漏洞PoC,将其编译完成后添加到漏洞测试用例库,检测时解析配置文件中的测试用例集信息并从测试用例库中读取该测试脚本并放置到待测系统目录下赋予执行权限,执行该脚本以验证漏洞点的存在;另一种是:精心构造的畸形数据,使用Java或者JNI来触发漏洞,直到数据被传递到底层漏洞位置,进而检测漏洞的存在。
(3)任务调度执行
任务调度的主要功能是实现多任务多设备之间的调度处理,防止任务执行与设备管理的混乱。任务调度主要通过维护一个任务队列完成的,每当有新的任务下达时,系统就会向任务队列中添加一个新任务,然后任务调度线程不断监控任务队列,每次从队列中取出一个优先级最高的任务,然后匹配一个可用的设备,将两者传送到任务执行线程。
任务执行的过程首先解析任务的配置文件,获取需要执行的测试用例集以及环境配置信息,然后执行环境配置操作,最后通过反射获取相应的测试用例执行逻辑类,并启动测试用例执行子线程,任务执行完毕后进行清理工作,即将结束测试用例子线程,恢复设备状态等。
4)车载终端系统漏洞检测报告生成模块
在系统进行检测时会将漏洞检测结果信息存入数据库,所有的测试用例执行完毕后,检测报告生成模块从车载终端系统漏洞库中读取检测结果信息以及漏洞基本信息并生成报告,主要包括:漏洞编号、漏洞类型、漏洞描述、漏洞点、漏洞风险等级、漏洞触发过程信息等。
安全监管部门、车企和个人可以使用本测试系统,对车载终端进行自动化漏洞检测,从中查找出存在的风险,并进行改进。其改进流程如图3所示。
作为测评机构以及最终部署该工具的单位,由于并不了解车载终端系统漏洞详情,只能对车载终端系统进行黑盒检测,系统中存在的安全隐患不能及时发现,对车联网的安全性造成了极大的威胁。本发明可以有效的解决这一问题,通过漏洞自动化扫描可以清楚的发现车载终端系统中存在的安全风险,保证车载终端的安全与稳定。其应用流程如图4所示。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种Android车载终端系统漏洞检测系统,其特征在于:包括三个模块:车载终端系统漏洞库模块、车载终端系统漏洞检测模块、车载终端系统漏洞检测报告生成模块;
所述车载终端系统漏洞库模块中包括漏洞信息库、漏洞测试用例库和漏洞结果信息库;
漏洞信息库以数据库中表的形式存在,用于存储漏洞收集阶段的漏洞基本信息;
漏洞测试用例库以数据库中表的形式存在,用于存储漏洞测试用例信息;
漏洞结果信息库也作为数据库中表的形式存在,用于记录漏洞检测结果信息;
漏洞信息库、漏洞测试用例库以及漏洞结果信息库之间存在映射关系,通过漏洞编号将三个库连接为一个整体,通过对数据库中的表数据进行增删改实现对漏洞进行增加、删除、修改;
所述漏洞测试用例库、漏洞信息库和漏洞结果信息库与车载终端系统漏洞检测模块以及车载终端系统漏洞检测报告生成模块相关联;
所述车载终端系统漏洞检测模块基于Trade Federation自动化测试框架,以漏洞攻击的方式检测系统中漏洞的存在情况,用于实现设备管理、测试用例管理、任务调度执行功能;
所述车载终端系统漏洞检测模块包括测试任务调度器、设备管理器、配置文件解析器以及测试任务执行器,所述测试任务调度器、设备管理器、配置文件解析器分别与测试任务执行器连接;
所述设备管理器通过与Android Debug Bridge进行交互,用于监听设备的状态信息,实现对连接到该检测系统的车载终端设备的状态进行管理;
所述配置文件解析器用于解析配置文件集中的配置文件,获取需要执行的测试用例集以及测试环境配置信息;
所述配置文件集用于对测试用例进行管理,不同的配置文件配置了不同的测试用例集以及该测试用例集的测试环境配置信息,可以支持全部测试用例遍历执行、不同类型的测试用例集分别执行、不同操作系统版本的测试用例分别执行、不同系统层次的测试用例集分别执行;用户还可以自定义配置文件,根据自己的需求组织测试用例或者添加测试用例;
所述测试任务调度器用于管理测试任务的执行,实现多任务多设备之间的调度处理,防止任务执行与设备管理的混乱;任务调度主要通过维护一个任务队列完成的,每当有新的任务下达时,系统就会向任务队列中添加一个新任务,然后任务调度线程不断监控任务队列,每次从队列中取出一个优先级最高的任务,然后匹配一个可用的设备,将两者传送到任务执行线程;
所述测试任务执行器用于执行测试任务,包括根据配置文件解析器的解析结果进行测试环境准备、测试用例集加载,以及测试设备准备、测试用例执行,任务执行完毕后进行清理工作,恢复设备状态,并将检测结果信息存储在车载终端系统漏洞库模块的漏洞结果信息库中;
所述车载终端系统漏洞检测报告生成模块包括检测报告生成器,用于从车载终端系统漏洞库模块中读取检测结果信息以及漏洞基本信息并生成报告,所述报告包括:漏洞编号、漏洞类型、漏洞描述、漏洞点、漏洞风险等级、漏洞触发过程信息。
2.如权利要求1所述的Android车载终端系统漏洞检测系统,其特征在于:所述漏洞信息库中从三个渠道收集典型操作系统的漏洞:标准漏洞库发布的相关车机操作系统漏洞、互联网搜集的漏洞和自主挖掘的漏洞。
3.如权利要求1所述的Android车载终端系统漏洞检测系统,其特征在于:所述漏洞收集阶段的漏洞基本信息,包含漏洞编号、漏洞类型、漏洞所在位置、漏洞描述、漏洞风险等级信息;
所述漏洞测试用例信息包含测试用例所关联的漏洞编号、测试用例的类型、测试用例的执行方式、测试用例的存储位置信息;
所述漏洞检测结果信息包含漏洞结果相关联的漏洞编号、漏洞触发过程信息、漏洞触发结果信息。
4.如权利要求1所述的Android车载终端系统漏洞检测系统,其特征在于:所述设备的状态信息分为如下几种:
FASTBOOT:线刷状态;ONLINE:在线状态;OFFLINE:离线状态;RECOVERY:卡刷状态;NOT_AVAILABLE:不可用状态;RecoveryMode:恢复模式。
5.如权利要求4所述的Android车载终端系统漏洞检测系统,其特征在于:所述设备管理器对连接到检测系统的车载终端设备的状态进行管理包括对新设备连入的监控、已经连接设备的状态改变、尝试对设备进行修复。
6.如权利要求5所述的Android车载终端系统漏洞检测系统,其特征在于:当待测设备状态发生改变时需要进行状态恢复;对于设备连接状态问题,首先通过等待adb一段时间进行自动恢复,若等待一段时间并未恢复,则判断设备是否进入fastboot模式,执行fastboot重启命令操作设备;如果等待一段时间仍未发现设备状态恢复则抛出状态异常的提示;在执行测试用例的过程中如果设备状态发生变化,首先尝试进行状态恢复,若无法恢复状态则给出设备状态异常的提示,以便人工进行恢复。
7.如权利要求1所述的Android车载终端系统漏洞检测系统,其特征在于:Android系统漏洞的测试用例分为两种:一种是漏洞PoC,将其编译完成后添加到漏洞测试用例库,检测时解析配置文件中的测试用例集信息并从漏洞测试用例库中读取该测试脚本并放置到待测系统目录下赋予执行权限,执行该脚本以验证漏洞点的存在;另一种是:精心构造的畸形数据,使用Java或者JNI来触发漏洞,直到数据被传递到底层漏洞位置,进而检测漏洞的存在。
8.应用权利要求1-7任一权利要求所述的Android车载终端系统漏洞检测系统的检测方法,其特征在于:包括以下步骤:
1)用户将待测Android车载终端系统连接到检测系统后,测试系统开始工作;
2)首先利用配置文件解析器解析全局配置文件,将测试任务进行封装;
然后进行初始化工作:初始化设备管理器:用于管理连接到测试系统中的终端设备;初始化任务调度器:用于管理测试任务的执行,共分为三类任务:正在执行的任务、已经执行完毕的任务、在队列中等待执行的任务;
最后开启测试子线程;
3)测试子线程一方面启动任务调度子线程,另一方面不断监听用户是否有新的测试请求,不断将用户新的测试请求加入测试任务队列中;
所述任务调度子线程具体为:
3.1)获取设备管理器:监听新设备加入、管理已连接设备的状态;
3.2)解析存储测试任务的配置文件,并存储测试项信息;
3.3)每隔一段时间监听是否有新下达的任务,然后处理已经放在队列中的任务:一方面将队列中的任务按照优先级进行排序,另一方面不断从队列中取出一个优先级最高的任务,同时检测可用设备,开启任务执行子线程来执行队列任务;
4)启动任务执行子线程:
4.1)遍历待测的设备,获取设备信息,根据不同的设备信息逐个在设备上执行测试任务;
4.2)解析存储测试任务的配置文件:配置文件中定义了测试用例集;解析存储测试环境的配置文件:配置文件中定义了需要执行测试用例的环境配置信息;
4.3)遍历测试用例集,执行测试用例的环境准备工作,根据测试用例的类型,执行测试;
4.4)收集漏洞检测过程中的系统日志信息,进行分析,存储测试用例的执行结果以及漏洞触发过程信息;
4.5)测试任务完成后进行清理工作;
5)测试全部完成后,从漏洞信息库中读取已测漏洞基本信息,并将漏洞测试结果信息进行整理输出检测报告,提供给用户查阅。
9.如权利要求8所述的Android车载终端系统漏洞检测方法,其特征在于:步骤2)中解析全局配置文件的具体步骤为:
2.1)解析存储测试任务的配置文件,并存储测试项信息;
2.2)解析存储测试环境的配置文件,并存储环境配置信息。
10.如权利要求8所述的Android车载终端系统漏洞检测方法,其特征在于:步骤4.5)中所述清理工作包括卸载预装的app、设备状态处理。
CN201910333386.0A 2019-04-24 2019-04-24 一种Android车载终端系统漏洞检测系统及方法 Active CN110162977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910333386.0A CN110162977B (zh) 2019-04-24 2019-04-24 一种Android车载终端系统漏洞检测系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910333386.0A CN110162977B (zh) 2019-04-24 2019-04-24 一种Android车载终端系统漏洞检测系统及方法

Publications (2)

Publication Number Publication Date
CN110162977A true CN110162977A (zh) 2019-08-23
CN110162977B CN110162977B (zh) 2020-12-04

Family

ID=67639880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910333386.0A Active CN110162977B (zh) 2019-04-24 2019-04-24 一种Android车载终端系统漏洞检测系统及方法

Country Status (1)

Country Link
CN (1) CN110162977B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990833A (zh) * 2019-10-31 2020-04-10 重庆小雨点小额贷款有限公司 一种sdk安全检测方法及相关设备
CN111026012A (zh) * 2019-11-29 2020-04-17 哈尔滨安天科技集团股份有限公司 Plc固件级漏洞的检测方法、装置、电子设备及存储介质
CN111191248A (zh) * 2019-12-31 2020-05-22 北京清华亚迅电子信息研究所 针对Android车载终端系统的漏洞检测系统及方法
CN111711664A (zh) * 2020-05-26 2020-09-25 重庆车辆检测研究院有限公司 智能车路协同系统的信息安全测试方法及系统
CN111797023A (zh) * 2020-07-07 2020-10-20 北京首汽智行科技有限公司 一种车载设备系统稳定性测试方法
CN112019401A (zh) * 2020-08-13 2020-12-01 上海帆一尚行科技有限公司 一种车联网应用安全测试方法、装置、系统和电子设备
CN112182588A (zh) * 2020-10-22 2021-01-05 中国人民解放军国防科技大学 基于威胁情报的操作系统漏洞分析检测方法及系统
CN112652089A (zh) * 2020-12-17 2021-04-13 华人运通(上海)云计算科技有限公司 诊断方法、车辆、系统及存储介质
CN112887945A (zh) * 2021-01-11 2021-06-01 公安部第三研究所 一种车联网网络的渗透测试方法
CN113532872A (zh) * 2020-04-16 2021-10-22 广州汽车集团股份有限公司 一种车机道路测试方法、装置、系统及存储介质
CN113568791A (zh) * 2021-07-14 2021-10-29 麒麟软件有限公司 一种基于多cpu架构的服务器操作系统自动化测试工具及方法
CN115146283A (zh) * 2022-09-06 2022-10-04 中汽研软件测评(天津)有限公司 车载信息交互系统信息安全测试方法和装置
CN115277104A (zh) * 2022-06-30 2022-11-01 重庆长安汽车股份有限公司 车机的合规性测试方法、装置、电子设备及存储介质
CN115396896A (zh) * 2022-10-27 2022-11-25 中汽研软件测评(天津)有限公司 一种车用WiFi信息安全测试方法与装置
CN116502238A (zh) * 2023-06-26 2023-07-28 中汽智联技术有限公司 一种基于车联网产品安全漏洞专业库cavd的防护方法
CN116541270A (zh) * 2023-03-27 2023-08-04 深圳国家金融科技测评中心有限公司 一种操作系统的适配验证测试方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894230A (zh) * 2010-07-14 2010-11-24 国网电力科学研究院 一种基于静态和动态分析技术的主机系统安全评估方法
CN102541729A (zh) * 2010-12-31 2012-07-04 航空工业信息中心 软件安全漏洞检测装置和方法
CN102752136A (zh) * 2012-06-29 2012-10-24 广东东研网络科技有限公司 通信设备操作调度方法
CN103929429A (zh) * 2014-04-24 2014-07-16 北京邮电大学 基于RESTful Web服务的网络漏洞扫描系统及方法
US20160259944A1 (en) * 2015-03-02 2016-09-08 Canon Kabushiki Kaisha Information processing apparatus and method for controlling the same
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN107368417A (zh) * 2017-07-25 2017-11-21 中国人民解放军63928部队 一种漏洞挖掘技术测试模型及测试方法
US20180007077A1 (en) * 2016-06-29 2018-01-04 Microsoft Technology Licensing, Llc Scalable computer vulnerability testing
CN109525427A (zh) * 2018-11-12 2019-03-26 广东省信息安全测评中心 分布式资产信息探测方法与系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894230A (zh) * 2010-07-14 2010-11-24 国网电力科学研究院 一种基于静态和动态分析技术的主机系统安全评估方法
CN102541729A (zh) * 2010-12-31 2012-07-04 航空工业信息中心 软件安全漏洞检测装置和方法
CN102752136A (zh) * 2012-06-29 2012-10-24 广东东研网络科技有限公司 通信设备操作调度方法
CN103929429A (zh) * 2014-04-24 2014-07-16 北京邮电大学 基于RESTful Web服务的网络漏洞扫描系统及方法
US20160259944A1 (en) * 2015-03-02 2016-09-08 Canon Kabushiki Kaisha Information processing apparatus and method for controlling the same
US20180007077A1 (en) * 2016-06-29 2018-01-04 Microsoft Technology Licensing, Llc Scalable computer vulnerability testing
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN107368417A (zh) * 2017-07-25 2017-11-21 中国人民解放军63928部队 一种漏洞挖掘技术测试模型及测试方法
CN109525427A (zh) * 2018-11-12 2019-03-26 广东省信息安全测评中心 分布式资产信息探测方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王博瑞: ""分布式漏洞扫描系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990833A (zh) * 2019-10-31 2020-04-10 重庆小雨点小额贷款有限公司 一种sdk安全检测方法及相关设备
CN110990833B (zh) * 2019-10-31 2022-08-05 重庆小雨点小额贷款有限公司 一种sdk安全检测方法及相关设备
CN111026012A (zh) * 2019-11-29 2020-04-17 哈尔滨安天科技集团股份有限公司 Plc固件级漏洞的检测方法、装置、电子设备及存储介质
CN111191248A (zh) * 2019-12-31 2020-05-22 北京清华亚迅电子信息研究所 针对Android车载终端系统的漏洞检测系统及方法
CN111191248B (zh) * 2019-12-31 2022-07-29 北京清华亚迅电子信息研究所 针对Android车载终端系统的漏洞检测系统及方法
CN113532872A (zh) * 2020-04-16 2021-10-22 广州汽车集团股份有限公司 一种车机道路测试方法、装置、系统及存储介质
CN111711664A (zh) * 2020-05-26 2020-09-25 重庆车辆检测研究院有限公司 智能车路协同系统的信息安全测试方法及系统
CN111797023A (zh) * 2020-07-07 2020-10-20 北京首汽智行科技有限公司 一种车载设备系统稳定性测试方法
CN112019401A (zh) * 2020-08-13 2020-12-01 上海帆一尚行科技有限公司 一种车联网应用安全测试方法、装置、系统和电子设备
CN112019401B (zh) * 2020-08-13 2021-09-17 上海帆一尚行科技有限公司 一种车联网应用安全测试方法、装置、系统和电子设备
CN112182588A (zh) * 2020-10-22 2021-01-05 中国人民解放军国防科技大学 基于威胁情报的操作系统漏洞分析检测方法及系统
CN112182588B (zh) * 2020-10-22 2024-02-06 中国人民解放军国防科技大学 基于威胁情报的操作系统漏洞分析检测方法及系统
CN112652089A (zh) * 2020-12-17 2021-04-13 华人运通(上海)云计算科技有限公司 诊断方法、车辆、系统及存储介质
CN112887945B (zh) * 2021-01-11 2022-12-09 公安部第三研究所 一种车联网网络的渗透测试方法
CN112887945A (zh) * 2021-01-11 2021-06-01 公安部第三研究所 一种车联网网络的渗透测试方法
CN113568791A (zh) * 2021-07-14 2021-10-29 麒麟软件有限公司 一种基于多cpu架构的服务器操作系统自动化测试工具及方法
CN115277104A (zh) * 2022-06-30 2022-11-01 重庆长安汽车股份有限公司 车机的合规性测试方法、装置、电子设备及存储介质
CN115146283A (zh) * 2022-09-06 2022-10-04 中汽研软件测评(天津)有限公司 车载信息交互系统信息安全测试方法和装置
CN115396896A (zh) * 2022-10-27 2022-11-25 中汽研软件测评(天津)有限公司 一种车用WiFi信息安全测试方法与装置
CN116541270A (zh) * 2023-03-27 2023-08-04 深圳国家金融科技测评中心有限公司 一种操作系统的适配验证测试方法及装置
CN116541270B (zh) * 2023-03-27 2024-01-02 深圳国家金融科技测评中心有限公司 一种操作系统的适配验证测试方法及装置
CN116502238A (zh) * 2023-06-26 2023-07-28 中汽智联技术有限公司 一种基于车联网产品安全漏洞专业库cavd的防护方法
CN116502238B (zh) * 2023-06-26 2023-10-10 中汽智联技术有限公司 一种基于车联网产品安全漏洞专业库cavd的防护方法

Also Published As

Publication number Publication date
CN110162977B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN110162977A (zh) 一种Android车载终端系统漏洞检测系统及方法
CN102567203B (zh) 一种测试分布式文件系统性能的方法及系统
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
Su et al. Benchmarking automated GUI testing for Android against real-world bugs
CN103577328B (zh) 一种应用的性能分析方法及装置
US20210311858A1 (en) System and method for providing a test manager for use with a mainframe rehosting platform
Nivas Test harness and script design principles for automated testing of non-GUI or web based applications
CN107832207A (zh) 接口性能测试方法、装置、存储介质和计算机设备
JP5689400B2 (ja) アクセス要求に対する予期せぬ応答に関するコンピュータ・プログラムの検証
US20120297367A1 (en) Testing an application
CN104391795A (zh) 一种分布式系统中自动化测试覆盖率的测试方法及系统
CN114661622B (zh) 测试中间件及测试管理系统
Jing et al. Model-based conformance testing for android
CN105404580A (zh) 分布式压力测试系统和方法
CN112650670A (zh) 应用测试方法、装置、系统、电子设备和存储介质
CN109426602A (zh) 一种应用开发过程中使用的检测方法及设备
CN113010392A (zh) 大数据平台的测试方法、装置、设备、存储介质和系统
CN114168471A (zh) 测试方法、装置、电子设备及存储介质
CN111930621A (zh) Dns自动化性能测试方法、装置、设备及可读存储介质
CN110795330A (zh) 一种Monkey压力测试的方法和装置
CN108959082A (zh) 一种Openstack的硬件兼容性测试方法及系统
CN113127884A (zh) 一种基于虚拟化的漏洞并行验证方法及装置
Memon Employing user profiles to test a new version of a GUI component in its context of use
CN110650063A (zh) 一种集中式的银行第三方软件仿真系统及方法
Oladimeji et al. Levels of testing

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