CN105787366A - 基于组件关系的安卓软件可视化安全分析方法 - Google Patents
基于组件关系的安卓软件可视化安全分析方法 Download PDFInfo
- Publication number
- CN105787366A CN105787366A CN201610087460.1A CN201610087460A CN105787366A CN 105787366 A CN105787366 A CN 105787366A CN 201610087460 A CN201610087460 A CN 201610087460A CN 105787366 A CN105787366 A CN 105787366A
- Authority
- CN
- China
- Prior art keywords
- assembly
- behavior
- data
- component
- android
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于组件关系的安卓软件可视化安全分析方法,通过对安卓软件源代码依据标准组件模型进行组件识别,提取所有的安卓组件,再通过正则匹配引擎分析获取个组件的全部属性,实现安卓软件的自动化组件式建模,以组件化的形式描述软件行为。同时以用户隐私数据为核心,对隐私数据和数据泄露出口进行识别,并对组件的脆弱程度进行量化,以攻击图的形式对软件可能的隐私泄露行为、可能被恶意应用攻击的组件位置、以及组件调用关系进行可视化描述,实现了软件行为安全方面的可视化展现。将用户人为判别和程序分析方法有效结合,使得用户对涉及到隐私数据的软件行为有更直观认识,以达到对该应用安全性判别的目的。
Description
技术领域
本发明涉及网络技术和网络安全领域,特别涉及安卓手机系统内应用软件的安全性评估分析,具体是一种基于组件关系的安卓软件可视化安全分析方法。
背景技术
随着移动互联网技术高速发展,智能终端的功能快速增多使之逐步取代传统桌面成为下一代的计算平台。安卓系统作为最受欢迎的智能终端系统,已经从最初的智能手机领域进入教育、医疗、汽车、家居等重要行业。由于安卓系统允许用户自行安装各种丰富的应用程序,使得安卓系统的功能在不断的升级和扩充,而随着互联网的发展,安卓系统终端通过网络可以完成更多的信息交互,同时其又存储着SMS、联系人等重要信息。因此,安卓系统智能终端成为用户大量隐私信息存储的设备,也正因此,导致其逐渐成为大量恶意攻击者的首选目标之一。
针对于安卓设备内的隐私保护,国内外研究者主要是围绕权限分析和污点分析利用静态分析的方式来进行。其中安卓手机应用的权限泄露问题分为两种,Explicit和Implicit。Explicit是指的某个低权限的应用,直接通过某些开放了接口的高权限应用,来完成一些高权限的行为,称为混淆代理攻击。Implicit是指的通过设置sharedUserId属性,使得userId可以被多个应用共享,从而获得相同的权限,称为共谋攻击。对权限问题相关的分析工具有GiblerC等人提出的静态分析框架AndroidLeaks,FeltAP等人提出的静态分析工具Stowaway等。关于隐私数据的静态污点分析,基本思想是把程序中需要分析的数据标记为污点,对其的传播和使用过程进行监控和记录分析。这方面的研究有EnckW等人提出的TaintDroid污点分析工具,YangZ等人提出的基于控制流图的LeakMiner工具和Applntent工具。
基于权限分析的研究着重于通过对软件执行权限的判定,分析软件行为的安全性。基于隐私数据污点分析的研究则是通过标记污点数据以分析数据传播及使用过程,判定软件是否有隐私数据泄露。而因为当前软件功能的复杂多样,开发者编程水平的参差不齐,以及使用场景的不同,仅根据软件权限或隐私数据传播过程就机械地判断该软件是否有恶意行为,是不恰当的,容易造成误判。
综上,现有的安卓应用软件的安全相关的程序分析方法多采用静态分析方法,需要较多的恶意软件特征且误判率较高。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于组件关系的安卓软件可视化安全分析方法。
根据本发明提供的一种基于组件关系的安卓软件可视化安全分析方法,包括:
步骤S1、读入安卓程序包的源代码文件目录,遍历源代码文件目录,解析安卓程序包中除去R.java文件以外的所有java文件,并解析安卓程序包中的AndroidManifest.xml文件;将安卓程序包对应的应用程序依据源代码功能划分为多个行为组件,将所述多个行为组件记为组件群;
步骤S2、通过分析所述除去R.java文件以外的所有java文件以及AndroidManifest.xml文件,对组件群中的各个行为组件进行组件属性的描述,其中,所述行为组件的组件属性的描述形式为:
C={name,action,per,Cfrom,Cto,type,data}
其中,C表示行为组件,name表示组件名称,action表示组件行为,per表示组件权限,Cfrom表示调用本组件的组件集合,Cto表示本组件所调用的组件集合,type表示组件类型,data表示组件所接触数据;
步骤S3、对组件群中各行为组件的组件属性进行属性分析;
步骤S4、对组件群进行组件关系分析;
步骤S5、对行为组件脆弱性进行量化分析;
步骤S6、根据所述属性分析、组件关系分析、量化分析的结果,生成可视化攻击图。
优选地,所述步骤3包括:
步骤301、定义用户隐私数据,根据行为组件的属性data,将行为组件的组件所接触数据与所述用户隐私数据进行匹配,判定各行为组件是否接触用户隐私数据以及接触了哪些用户隐私数据;
步骤302、将网络出口、短信息出口、电话出口定义为所述隐私数据泄露出口,根据行为组件的属性action,将组件行为有网络信息发送、短消息发送或者电话拨出行为的行为组件判定为隐私泄露出口组件。
优选地,将通讯录、通话记录、短信、位置信息、用户日程安排、摄像头数据、麦克风数据、当前屏幕内容、SIM卡信息、浏览器书签信息、浏览器历史信息定义为所述用户隐私数据。
优选地,在所述步骤S2中,通过正则表达式引擎对组件群进行处理,以获取组件属性的描述。
优选地,所述步骤S4,包括:依据攻击图生成规则获取攻击路径;具体为:
所述攻击图生成规则包括组件至组件攻击路径规则、组件至数据攻击路径规则;
所述组件至组件攻击路径规则,是指:对于任意2个行为组件Ci、Cj,i≠j,若Cj∈Ci{Cto}且Ci∈Cj{Cfrom},则将Ci→Cj的路径确认为攻击路径;Cj∈Ci{Cto}表示行为组件Cj是行为组件Ci的所调用的组件集合Ci{Cto}中的组件;Ci∈Cj{Cfrom}表示行为组件Ci是调用行为组件Cj的组件集合Cj{Cfrom}中的组件;
所述组件至数据攻击路径规则,是指:对于任意行为组件Ci与任意隐私数据Dk,若Dk∈Ci{data},则将Ci→Dk的路径确认为攻击路径;Dk∈Ci{data}表示隐私数据Dk是行为组件Ci所接触数据Ci{data}中的数据;
符号→表示组件间的调用关系或者组件对数据的操作。
优选地,所述步骤S5,包括:
通过对安卓程序包中AndroidManifest.xml文件的users-permission属性进行分析,对行为组件的程序使用权限进行判定,并量化为脆弱性描述值P;
P的值越大,则表明行为组件被其他应用程序用来跨应用攻击的概率越小,安全隐患越低;
P的值越小,则表明行为组件被其它应用程序用来跨应用攻击的概率越大,安全隐患越高。
优选地,所述步骤S6,包括:
以图形展示出通过组件关系分析得到的攻击路径;
在攻击路径上的行为组件中,根据属性分析的结果,标注出接触了用户隐私数据的组件、所述接触了用户隐私数据的行为组件接触了哪些用户隐私数据、隐私泄露出口组件;
在攻击路径上的行为组件中,根据量化分析的结果,标注出行为组件的脆弱性描述值。
优选地,在步骤S6中,将脆弱性描述值高于设定阈值的行为组件标注为高危组件。
与现有技术相比,本发明具有如下的有益效果:
本发明对软件的安全行为进行进一步的可视化呈现,旨在通过组件建模的形式,可视化地描述软件的安全行为,展示给用户,以增强用户对该软件的进一步了解,依据不同使用场景由用户对软件进行安全评估,降低误判率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是依照标准组件得到行为组件的组件属性描述的原理示意图。
图2是组件调用关系分析流程图。
图3是攻击图生成算法流程图。
图4是测试安卓应用攻击图。
图5是本发明的整体原理示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明旨在安卓应用软件的安卓程序包安装前,对安卓程序包的源代码文件进行分析,通过建立安卓软件的组件化描述模型,将软件源代码经过预处理后,依照组件化描述模型进行自动化建模,识别可能会受攻击或泄露隐私数据的组件,进行组件关系分析,并转为Graphiz语法格式生成以用户数据为核心的攻击图,标注问题组件,完成可视化软件行为展示。本发明改变了传统形式用户在安装应用之前对其权限申请并无直观感受体验的不足之处,促进用户对软件获得进一步直观认知和安全判别,并由此决定是否安装该软件。
根据本发明提供的一种基于组件关系的安卓软件可视化安全分析方法,包括如下步骤:
步骤S1、对安卓程序包进行文件预处理。安卓程序包的工程目录下一般包含AndroidManifest.xml文件和src、bin、gen、res、libs等源代码文件目录,其中AndroidManifest.xml文件是安卓程序包对应的整个应用程序的信息描述文件,在AndroidManifest.xml文件中描述了组件、程序权限等关键信息。本发明中,解析AndroidManifest.xml文件并解析除去R.java的所有java文件,供后续步骤中的分析使用。
我们将安卓程序包对应的应用程序依据源代码功能划分为行为组件,定义标准组件。标准组件的具体属性包括组件名称、组件行为、组件权限、调用本组件的组件集合、本组件所调用的组件集合、组件类型、组件所接触数据。其中,组件行为包括系统行为和自定义行为;组件类型包括四大基本类型:活动组件ActivityService、广播接收组件BroadcastReceiver、内容提供组件ContentProvider以及服务组件Other。
步骤S2:依据标准组件,通过正则表达式引擎对获取的组件群进行处理,分析获取行为组件的组件属性描述。
所述正则表达式引擎,是基于正则表达式的用于对安卓程序包源代码进行组件属性分析的语义分析模块,所述正则表达式引擎采用如下匹配分析方法,以从源代码中提取不同的语意,得到行为组件的组件属性:
-基于关键字的匹配分析方法:识别关键字所在的java文件中的源代码行,并获取该源代码行内的其他信息,以应用于获取组件类型type、组件行为action、组件权限per;例如,基于关键字的匹配分析方法,可采用grep工具关键词检索算法、sed工具关键词检索算法;
-基于上下文的匹配分析方法:识别安卓程序包源代码中基于数个关键词划定的文本区段,并从该文本区段中获取所需要的文本信息,以应用于从AndroidManifest.xml文件中匹配获取组件行为action、组件权限per以及从java文件中匹配获取组件名称name;例如,基于上下文的匹配分析方法,可采用grep工具行匹配算法、sed工具行匹配算法、sed工具关键词替换算法、shell字符串截取算法;
-模糊匹配分析方法:在统计和调研的基础上,设定初始宽松的匹配入口,以常见的、较为规范和通用的实现方式为基准,配以可训练的匹配树规则,完成复杂功能自定义形式的匹配分析。
例如,模糊匹配分析方法,可采用awk工具字符匹配算法、关键词替换算法、字符串截取方法及域分析算法。
所述步骤S2的优选处理流程可参见图1,具体为:
-组件类型自动化描述,通过行为组件源代码关键字正则匹配,利用正则匹配引擎中的基于关键字的匹配分析方法,以java文件源代码中的public类为一个标准组件,通过获知public类所继承的具体组件类,对具体组件类源代码的文本分析判定组件类型,完成组件属性type的描述;
-组件名称自动化描述,基于组件类型进行文本分析是指,以组件类型为基础接下来进行分析,分析方法就是获取java文件源代码中public类声明所在代码行内容中的entends与class这两个关键字之间的字符串件名称提取组件名称;对于无继承类的,直接取java文件源代码中public类声明所在代码行内容中class后的关键词作为组件名称;
-组件行为自动化描述,组件行为主要分为系统行为和自定义行为;系统行为主要是涉及到的系统基本行为,系统行为又分为活动行为ActivityAction和广播行为BroadcastAction;对于系统行为的分析,主要方法是首先将系统行为统一存入系统行为数据库中,将组件源代码与系统行为中行为关键字进行上下文的文本匹配分析方法,对匹配结果进行重组,即得组件系统行为描述集合;对于自定义行为,自定义行为中的动作命令行为主要通过Intent机制配合Bundle机制传递(即意图机制配合一系列参数传递)。在安卓系统中,Intent机制(意图机制)主要用来联系调用者与实现者,构造一个完整的Intent传递,一般包括动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Compent)以及扩展信(Extra)这些参数。为了简化模型,在自定义行为的自动化判别中,暂不考虑其他因素,只研究动作(Action)及调用方与实现方组件。
-组件权限自动化描述,由通过已获得的组件名称和组件类型定位具体组件,对AndroidManifest.xml文件中的内容进行文本匹配,获取对应组件的权限声明,获得组件的权限分析结果,具体地,安卓下应用权限主要分为程序使用权限和组件访问权限。其中,程序使用权限是在AndroidManifest.xml文件的users-permission属性中申请的;对于组件访问权限,其声明在AndroidManifest.xml文件的对应组件部分声明中,依据基本组件类型分为活动组件权限(Activity权限)、服务组件权限(Service权限)、广播接收组件权限(BroadcastReceiver权限)以及内容提供组件权限(ContentProvider权限);。
-调用与所调用组件自动化描述,Intent类的对象是组件间通信的载体,是组件之间调用与所调用实现的媒介。对于安卓Activity组件,intent机制主要通过Context.startActivity()、Context.startActivityForResult()等方法实现调用;对于安卓Service组件,intent主要通过Context.startService()、Context.bindService()方法实现调用;对于安卓BroadcastReceiver组件,Intent主要通过sendBroadcast()等一系列发送广播的方法实现传递;其中,组件集合是已依据名称及基本类型分离的组件集合,首先通过Intent分析,判定该组件是否有调用行为,若无,则所调用组件集合为空;若存在调用行为,则依据不同的组件类型所使用的调用方法,分析获取所调用组件名称,对处理后的所有组件进行调用组件-所调用组件匹配,得到组件调用与所调用关系。
-所接触数据内容自动化描述。
步骤S3:对获得属性描述的组件群进行隐私数据分析,判定组件是否接触隐私数据。本方法中优选地涉及11种隐私数据内容,绝大多数数据可以通过ContentProvider和URI获得,部分隐私数据通过具体特定方法获得,我们对所建立的应用描述组件C集合进行匹配分析,获得该组件所能获取到的隐私数据修正描述表明是否包含该核心数据,以通讯录信息为例。
通讯里信息是用户手机内的重要隐私信息,包含用户的联系人名字、联系方式等。对于通讯录信息的获取,安卓使用ContentProvider来检索和保存数据,因此若要获得通讯录数据需要先获得通讯录的URI,即Phone.CONTENT_URI,其实际所指向的位置是“content://com.android.contacts/data/phones”。本步骤对通讯录的URI使用正则匹配引擎中的关键字匹配分析方法进行匹配识别,进而判定本组件是否涉及核心隐私数据。
对获得属性描述的组件群进行行为分析,判定组件是否有消息泄露出口。在此定义隐私数据泄露出口为网络出口、短信息出口、电话出口,分析组件行为是涉及网络信息发送、短消息发送和电话拨出,进而完成对可能的消息泄露组件的识别。以短信出口为例,安卓应用短信发送有两种方式,分别基于系统ACTION_SENDTO和ACTION_MAIN声明。对于隐私泄露短信出口组件的判别,首先基于组件Action的系统行为描述,识别出含有ACTION_SENDTO和ACTION_MAIN的组件,再基于两种不同实现方法下的Uri.parse,判定组件是否有短信发送行为,进而判别隐私泄露短信出口组件。
步骤S4:对获得属性描述的组件群进行组件关系分析,并依据攻击图的生成规则获取攻击路径。对于各个行为组件:
-首先对行为组件的组件属性Cfrom进行判断,若无调用本行为组件的组件,则将该行为组件设为攻击图起点节点C;
-对行为组件所操作的隐私数据D[]进行判断,若不为空且包含隐私数据Dk,则将该行为组件设为指向隐私数据Dk的终点节点#C;
-对于起点节点C、终点节点#C以及中间节点进行调用-被调用关系匹配。
可记Pki=C1→C2→…→Cn→Dk为一条以第k种隐私数据Dk为终点的一条攻击路径,其中,Pki表示一条以隐私数据K为终点的组件攻击路径,Cn标示路径上的组件节点,→标示组件间的调用关系和组件对隐私数据的操作,k、i均为正整数;
优选地,首先根据AndroidManifest.xml文件的文件声明找到入口组件,然后从起始节点开始,依照顺序对组件进行匹配分析,获取起始节点的调用组件集合,完成起始节点到其调用组件集合中组件的路径建立;接下来通过调用关系分析,获取起始节点调用组件集合中组件的,依次类推,完成组件式攻击图中全部路径建立。
步骤S6:对行为组件脆弱性进行量化分析;
通过对安卓程序包中AndroidManifest.xml文件的users-permission属性进行分析,对行为组件的程序使用权限进行判定,并量化为从0到4的脆弱性描述值P;
P的值越大,则表明行为组件被其他应用程序用来跨应用攻击的概率越小,安全隐患越低;
P的值越小,则表明行为组件被其它应用程序用来跨应用攻击的概率越大,安全隐患越高。
步骤S7:根据所述属性分析、组件关系分析、量化分析的结果,生成攻击图描述代码,并通过工具软件Graphiz生成最终攻击图。具体地,将隐私数据分析、消息泄露行为分析和组件关系分析以及对组件脆弱性进行量化通过代码描述补充到攻击图代码描述中,生成攻击图描述代码,并通过工具软件Graphiz生成最终攻击图。
在一个网站监测实测中,实测过程及结果如下:
(1)测试软件选取了已经发布在应用市场的开源软件ExpressTrack,这是一款用来查询物流信息的app,可以查询27家快递/物流的单号信息,通过源代码开放网站获得该软件源代码。
(2)首先通过组件式自动建模算法对软件进行自动化建模,将自动化建模程序ModelAutoConstruct和软件源代码置于同一目录下,运行ModelAutoConstruct,得到自动化建模组件集合,存入文件ComponentRepo中。
将跨应用组件攻击及隐私数据出口分析脚本AutoRecognize放入当前目录内,执行./AutoRecognize,对ComponentRepo内的组件描述中的Permission,Action和Data进行修正描述,存入文件ModifiedComponentRepo。
将Prmission修正为0-4的整数值,用以描述该组件被其他恶意软件利用的可能性,值越大则可能性越低。基于Action初始描述对组件进行判别,是否可能经由网络、短信或电话方式泄露隐私数据。对Data数据与所列的核心隐私数据进行匹配分析,判定是否为核心隐私数据,修正描述为Data(BOOL),对其中的BOOL值,YES标示核心隐私数据,NO标示非核心隐私数据,如下表所示:
NULL表示空,A[web]表示组件有网络消息发送行为。
(3)将组件攻击图自动生成程序AutoAttackPathConstruct.sh文件置于当前目录中,运行./AutoAttackConstruct.sh,对ModifiedComponentRepo中的组件进行调用关系匹配及关键信息提取。考虑到展示效果,本例中只在攻击图中显示节点的名字、被恶意应用跨应用攻击的可能性权值(只标注P<2的节点)、隐私数据出口标示以及核心数据标示。在本例中,不存在P<2的节点,因此没有需要标注的高隐患跨应用攻击组件,仅以紫色标注操作数据,此例中为Database(NO);以绿色标注隐私数据出口,此例中为SearchTools[WEB],攻击图如附图4所示。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (8)
1.一种基于组件关系的安卓软件可视化安全分析方法,其特征在于,包括:
步骤S1、读入安卓程序包的源代码文件目录,遍历源代码文件目录,解析安卓程序包中除去R.java文件以外的所有java文件,并解析安卓程序包中的AndroidManifest.xml文件;将安卓程序包对应的应用程序依据源代码功能划分为多个行为组件,将所述多个行为组件记为组件群;
步骤S2、通过分析所述除去R.java文件以外的所有java文件以及AndroidManifest.xml文件,对组件群中的各个行为组件进行组件属性的描述,其中,所述行为组件的组件属性的描述形式为:
C={name,action,per,Cfrom,Cto,type,data}
其中,C表示行为组件,name表示组件名称,action表示组件行为,per表示组件权限,Cfrom表示调用本组件的组件集合,Cto表示本组件所调用的组件集合,type表示组件类型,data表示组件所接触数据;
步骤S3、对组件群中各行为组件的组件属性进行属性分析;
步骤S4、对组件群进行组件关系分析;
步骤S5、对行为组件脆弱性进行量化分析;
步骤S6、根据所述属性分析、组件关系分析、量化分析的结果,生成可视化攻击图。
2.根据权利要求1所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,所述步骤3包括:
步骤301、定义用户隐私数据,根据行为组件的属性data,将行为组件的组件所接触数据与所述用户隐私数据进行匹配,判定各行为组件是否接触用户隐私数据以及接触了哪些用户隐私数据;
步骤302、将网络出口、短信息出口、电话出口定义为所述隐私数据泄露出口,根据行为组件的属性action,将组件行为有网络信息发送、短消息发送或者电话拨出行为的行为组件判定为隐私泄露出口组件。
3.根据权利要求2所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,将通讯录、通话记录、短信、位置信息、用户日程安排、摄像头数据、麦克风数据、当前屏幕内容、SIM卡信息、浏览器书签信息、浏览器历史信息定义为所述用户隐私数据。
4.根据权利要求1所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,在所述步骤S2中,通过正则表达式引擎对组件群进行处理,以获取组件属性的描述。
5.根据权利要求1所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,所述步骤S4,包括:依据攻击图生成规则获取攻击路径;具体为:
所述攻击图生成规则包括组件至组件攻击路径规则、组件至数据攻击路径规则;
所述组件至组件攻击路径规则,是指:对于任意2个行为组件Ci、Cj,i≠j,若Cj∈Ci{Cto}且Ci∈Cj{Cfrom},则将Ci→Cj的路径确认为攻击路径;Cj∈Ci{Cto}表示行为组件Cj是行为组件Ci的所调用的组件集合Ci{Cto}中的组件;Ci∈Cj{Cfrom}表示行为组件Ci是调用行为组件Cj的组件集合Cj{Cfrom}中的组件;
所述组件至数据攻击路径规则,是指:对于任意行为组件Ci与任意隐私数据Dk,若Dk∈Ci{data},则将Ci→Dk的路径确认为攻击路径;Dk∈Ci{data}表示隐私数据Dk是行为组件Ci所接触数据Ci{data}中的数据;
符号→表示组件间的调用关系或者组件对数据的操作。
6.根据权利要求1所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,所述步骤S5,包括:
通过对安卓程序包中AndroidManifest.xml文件的users-permission属性进行分析,对行为组件的程序使用权限进行判定,并量化为脆弱性描述值P;
P的值越大,则表明行为组件被其他应用程序用来跨应用攻击的概率越小,安全隐患越低;
P的值越小,则表明行为组件被其它应用程序用来跨应用攻击的概率越大,安全隐患越高。
7.根据权利要求1所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,所述步骤S6,包括:
以图形展示出通过组件关系分析得到的攻击路径;
在攻击路径上的行为组件中,根据属性分析的结果,标注出接触了用户隐私数据的组件、所述接触了用户隐私数据的行为组件接触了哪些用户隐私数据、隐私泄露出口组件;
在攻击路径上的行为组件中,根据量化分析的结果,标注出行为组件的脆弱性描述值。
8.根据权利要求7所述的基于组件关系的安卓软件可视化安全分析方法,其特征在于,在步骤S6中,将脆弱性描述值高于设定阈值的行为组件标注为高危组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610087460.1A CN105787366B (zh) | 2016-02-16 | 2016-02-16 | 基于组件关系的安卓软件可视化安全分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610087460.1A CN105787366B (zh) | 2016-02-16 | 2016-02-16 | 基于组件关系的安卓软件可视化安全分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105787366A true CN105787366A (zh) | 2016-07-20 |
CN105787366B CN105787366B (zh) | 2019-01-25 |
Family
ID=56403503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610087460.1A Active CN105787366B (zh) | 2016-02-16 | 2016-02-16 | 基于组件关系的安卓软件可视化安全分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105787366B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570399A (zh) * | 2016-09-30 | 2017-04-19 | 西北大学 | 一种跨App组件间隐私泄露的检测方法 |
CN107885501A (zh) * | 2017-11-03 | 2018-04-06 | 武汉斗鱼网络科技有限公司 | 获取Android中组件相互引用关系的方法及装置 |
CN108804919A (zh) * | 2018-05-03 | 2018-11-13 | 上海交通大学 | 基于深度学习的恶意代码同源判定方法 |
CN108846282A (zh) * | 2018-06-04 | 2018-11-20 | 西安电子科技大学 | 基于静态污点分析的安卓应用程序权限泄露漏洞检测方法 |
CN108959960A (zh) * | 2018-06-19 | 2018-12-07 | 努比亚技术有限公司 | 防止隐私泄露的方法、装置及计算机可读存储介质 |
CN110022311A (zh) * | 2019-03-18 | 2019-07-16 | 北京工业大学 | 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法 |
CN110414222A (zh) * | 2019-06-18 | 2019-11-05 | 北京邮电大学 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
CN110865889A (zh) * | 2018-08-27 | 2020-03-06 | 北京高绎信息技术有限公司 | 组件间传递事件的方法和装置 |
CN111143853A (zh) * | 2019-12-25 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种应用安全的评估方法和装置 |
CN111240991A (zh) * | 2020-01-20 | 2020-06-05 | 重庆富民银行股份有限公司 | 一种抗隐式污点传播的动态污点检测方法及系统 |
CN111813402A (zh) * | 2020-07-07 | 2020-10-23 | 北京亚鸿世纪科技发展有限公司 | 数据可视化开发用的拖拽开发组件及事件交互定义器 |
CN114826732A (zh) * | 2022-04-25 | 2022-07-29 | 南京大学 | 一种安卓系统隐私窃取行为的动态检测与溯源方法 |
CN116107912A (zh) * | 2023-04-07 | 2023-05-12 | 石家庄学院 | 一种基于应用软件的安全检测方法及系统 |
CN116302294A (zh) * | 2023-05-18 | 2023-06-23 | 安元科技股份有限公司 | 一种界面化自动识别组件属性的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103996007A (zh) * | 2014-05-29 | 2014-08-20 | 诸葛建伟 | Android应用权限泄露漏洞的测试方法及系统 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
CN105069354A (zh) * | 2015-07-31 | 2015-11-18 | 天津大学 | 基于攻击树模型的Android软件混合检测方法 |
-
2016
- 2016-02-16 CN CN201610087460.1A patent/CN105787366B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103996007A (zh) * | 2014-05-29 | 2014-08-20 | 诸葛建伟 | Android应用权限泄露漏洞的测试方法及系统 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
CN105069354A (zh) * | 2015-07-31 | 2015-11-18 | 天津大学 | 基于攻击树模型的Android软件混合检测方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570399B (zh) * | 2016-09-30 | 2019-07-12 | 西北大学 | 一种跨App组件间隐私泄露的检测方法 |
CN106570399A (zh) * | 2016-09-30 | 2017-04-19 | 西北大学 | 一种跨App组件间隐私泄露的检测方法 |
CN107885501A (zh) * | 2017-11-03 | 2018-04-06 | 武汉斗鱼网络科技有限公司 | 获取Android中组件相互引用关系的方法及装置 |
CN107885501B (zh) * | 2017-11-03 | 2020-09-08 | 武汉斗鱼网络科技有限公司 | 获取Android中组件相互引用关系的方法及装置 |
CN108804919A (zh) * | 2018-05-03 | 2018-11-13 | 上海交通大学 | 基于深度学习的恶意代码同源判定方法 |
CN108846282A (zh) * | 2018-06-04 | 2018-11-20 | 西安电子科技大学 | 基于静态污点分析的安卓应用程序权限泄露漏洞检测方法 |
CN108959960B (zh) * | 2018-06-19 | 2020-08-21 | 南昌努比亚技术有限公司 | 防止隐私泄露的方法、装置及计算机可读存储介质 |
CN108959960A (zh) * | 2018-06-19 | 2018-12-07 | 努比亚技术有限公司 | 防止隐私泄露的方法、装置及计算机可读存储介质 |
CN110865889B (zh) * | 2018-08-27 | 2023-07-04 | 北京高绎信息技术有限公司 | 组件间传递事件的方法和装置 |
CN110865889A (zh) * | 2018-08-27 | 2020-03-06 | 北京高绎信息技术有限公司 | 组件间传递事件的方法和装置 |
CN110022311B (zh) * | 2019-03-18 | 2021-09-24 | 北京工业大学 | 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法 |
CN110022311A (zh) * | 2019-03-18 | 2019-07-16 | 北京工业大学 | 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法 |
CN110414222B (zh) * | 2019-06-18 | 2020-08-14 | 北京邮电大学 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
CN110414222A (zh) * | 2019-06-18 | 2019-11-05 | 北京邮电大学 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
CN111143853A (zh) * | 2019-12-25 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种应用安全的评估方法和装置 |
CN111143853B (zh) * | 2019-12-25 | 2023-03-07 | 支付宝(杭州)信息技术有限公司 | 一种应用安全的评估方法和装置 |
CN111240991A (zh) * | 2020-01-20 | 2020-06-05 | 重庆富民银行股份有限公司 | 一种抗隐式污点传播的动态污点检测方法及系统 |
CN111240991B (zh) * | 2020-01-20 | 2023-03-14 | 重庆富民银行股份有限公司 | 一种抗隐式污点传播的动态污点检测方法及系统 |
CN111813402A (zh) * | 2020-07-07 | 2020-10-23 | 北京亚鸿世纪科技发展有限公司 | 数据可视化开发用的拖拽开发组件及事件交互定义器 |
CN114826732A (zh) * | 2022-04-25 | 2022-07-29 | 南京大学 | 一种安卓系统隐私窃取行为的动态检测与溯源方法 |
CN116107912A (zh) * | 2023-04-07 | 2023-05-12 | 石家庄学院 | 一种基于应用软件的安全检测方法及系统 |
CN116302294A (zh) * | 2023-05-18 | 2023-06-23 | 安元科技股份有限公司 | 一种界面化自动识别组件属性的方法及系统 |
CN116302294B (zh) * | 2023-05-18 | 2023-09-01 | 安元科技股份有限公司 | 一种界面化自动识别组件属性的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105787366B (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105787366A (zh) | 基于组件关系的安卓软件可视化安全分析方法 | |
CN107341401B (zh) | 一种基于机器学习的恶意应用监测方法和设备 | |
CN103888490B (zh) | 一种全自动的web客户端人机识别的方法 | |
CN101971591B (zh) | 分析网址的系统及方法 | |
Yu et al. | Enhancing the description-to-behavior fidelity in android apps with privacy policy | |
CN108229158B (zh) | 一种Android中存储的用户隐私信息的保护方法 | |
CN109684370A (zh) | 日志数据处理方法、系统、设备及存储介质 | |
Zhu et al. | Android malware detection based on multi-head squeeze-and-excitation residual network | |
CN106778253A (zh) | 基于大数据的威胁情景感知信息安全主动防御模型 | |
CN107688743B (zh) | 一种恶意程序的检测分析方法及系统 | |
CN107832618A (zh) | 一种基于细粒度权限控制的sql注入检测系统及其方法 | |
CN105224869A (zh) | 组件测试方法和装置 | |
CN113158251B (zh) | 应用程序隐私泄露检测方法、系统、终端及介质 | |
CN105631312A (zh) | 恶意程序的处理方法及系统 | |
CN105868290A (zh) | 一种展现搜索结果的方法及装置 | |
CN115544558A (zh) | 敏感信息检测方法、装置、计算机设备及存储介质 | |
CN117493483A (zh) | 数据脱敏方法、装置、电子设备及可读存储介质 | |
CN111125704B (zh) | 一种网页挂马识别方法及系统 | |
Jiang et al. | Tapchain: A rule chain recognition model based on multiple features | |
CN109995605B (zh) | 一种流量识别方法、装置以及计算机可读存储介质 | |
TWI680666B (zh) | 網路使用者身份辨識方法與系統 | |
CN111581533B (zh) | 目标对象的状态识别方法、装置、电子设备和存储介质 | |
CN112487421B (zh) | 基于异质网络的安卓恶意应用检测方法及系统 | |
CN111859387B (zh) | Android平台软件漏洞模式的自动化构建方法 | |
CN113626815A (zh) | 病毒信息的识别方法、病毒信息的识别装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |