CN111859387A - Android平台软件漏洞模式的自动化构建方法 - Google Patents

Android平台软件漏洞模式的自动化构建方法 Download PDF

Info

Publication number
CN111859387A
CN111859387A CN201910338044.8A CN201910338044A CN111859387A CN 111859387 A CN111859387 A CN 111859387A CN 201910338044 A CN201910338044 A CN 201910338044A CN 111859387 A CN111859387 A CN 111859387A
Authority
CN
China
Prior art keywords
vulnerability
tct
functions
android
android platform
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.)
Pending
Application number
CN201910338044.8A
Other languages
English (en)
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 Jiuzhou Zhengan Technology Co Ltd
Original Assignee
Beijing Jiuzhou Zhengan Technology Co Ltd
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 Jiuzhou Zhengan Technology Co Ltd filed Critical Beijing Jiuzhou Zhengan Technology Co Ltd
Priority to CN201910338044.8A priority Critical patent/CN111859387A/zh
Publication of CN111859387A publication Critical patent/CN111859387A/zh
Pending legal-status Critical Current

Links

Images

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/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

Abstract

一种Android平台软件漏洞模式的自动化构建方法,其包括如下步骤:步骤1)针对Android平台上的软件漏洞,定义漏洞模式模版VP,VP=(C,A,EF,TF,CF,TCT,TT);步骤2)对于一种漏洞v,收集其先验知识,例如漏洞所在的组件,该组件与漏洞相关的属性,相关函数等;步骤3)结合前一步收集的先验知识、CVE漏洞描述和Android应用开发者文档,使用自然语言处理技术抽取与漏洞模式相关的特征数据,进而构建漏洞模式VPv。本发明为Android平台软件漏洞提供了一种通用的漏洞模式定义和自动化的构建方式,实现了对多种漏洞信息的全面描述,具有良好的可扩展性,支持对后续新漏洞的模式定义和检测。

Description

Android平台软件漏洞模式的自动化构建方法
技术领域
本发明涉及一种Android平台软件漏洞模式的自动化构建方法,主要应用于Android平台软件漏洞检测系统开发中。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统。主要应用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。到2018年,Android活跃设备已经超过23亿,应用商店应用累积下载量数以千亿计。而NowSecure的最新研究报告称,25%的移动应用程序至少包含一个高风险安全漏洞,Android上59%的财务应用程序暴露了OWASP移动风险中的三大风险。Android应用中的这些漏洞严重危及用户的数据隐私和财产安全。
网络爬虫是一种用来自动浏览万维网(Internet)的网络机器人。其目的一般为编制网络索引。网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。网络爬虫可以将自己所访问的页面保存下来,以便用户对收集到的信息进行进一步处理。
自然语言处理是人工智能和语言学领域的分支学科。该学科研究如何处理及运用自然语言;自然语言处理包括多方面内容,包括认知、理解、生成等部分。自然语言认知和理解是让计算机把输入的语言变成有意义的符号和关系,然后根据目的再处理。
通常的漏洞描述方式是指通过文字描述的方式把该漏洞产生的原因、存在的位置、受影响范围、漏洞宿主介绍等按照统一的格式进行描述。这种描述方式主要是基于自然文字,现有的自然语言处理技术还无法达到从中提取完整的形式化的漏洞描述,并转化为计算机语言输入到漏洞检测工具,以便进行漏洞检测。
发明内容
鉴于上述原因,本发明的主要目的是提供一种Android平台软件漏洞模式的自动化构建方法。本发明为Android平台软件漏洞提供了一种通用的漏洞模式定义和自动化的构建方式,实现了对多种漏洞信息的全面描述,具有良好的可扩展性,支持对后续新漏洞的模式定义和检测。
为实现上述目的,本发明采取以下技术方案:一种结合爬虫技术和自然语言处理的Android平台软件漏洞模式的自动化构建方法,该方法包括以下步骤:
步骤1)针对Android平台上的软件漏洞,定义漏洞模式模版VP,VP=(C,A,EF,TF,CF,TCT,TT);
步骤2)对于一种漏洞v,收集其先验知识,例如漏洞所在的组件,该组件与漏洞相关的属性,相关函数等;
步骤3)结合前一步收集的先验知识、CVE漏洞描述和Android应用开发者文档,使用自然语言处理技术抽取与漏洞模式相关的特征数据,进而构建漏洞模式VPv。
本发明与现有技术相比的优点在于:本发明很好地解决了当前基于自然语言的漏洞描述方法无法转化为计算机语言输入到漏洞检测工具,进行漏洞检测的缺陷。本发明为Android平台软件漏洞提供了一种通用的漏洞模式定义和自动化的构建方式,实现了对多种漏洞信息的全面描述,具有良好的可扩展性,支持对后续新漏洞的模式定义和检测。
附图说明
图1为本发明方法的流程图
图2为本发明实现架构图
具体实施方式
如图1所示,本发明的实现步骤如下:
1.针对Android平台上的软件漏洞,定义漏洞模式模版VP,VP=(C,A,EF,TF,CF,TCT,TT)
本发明根据Android平台软件漏洞的成因和攻击路径,定义了通用的漏洞模式VP=(C,A,EF,TF,CF,TCT,TT)。C表示Android平台软件漏洞所在的组件,包括activities,services,broadcast receivers,content providers,WebView,MediaBrowser,Messagingservices,FileStorage和DownloadManager等。这些对象几乎覆盖了Android应用程序中的用户可交互的组件。A是对应组件的与漏洞相关的属性。EF表示漏洞入口函数的集合,这些函数从用户或其他Apps接收数据。根据Android应用开发者文档,EF通常属于C或调用C的组件。这些函数能够被开发者重写,并接受用户或其他应用的输入。TF表示漏洞目标函数的集合,这些函数会暴露漏洞v的行为。它们通常是一些执行安全敏感操作的系统函数,如访问本地资源或远程资源。CF表示漏洞相关函数的集合,流向TF的数据会经过这些函数。TCT表示测试用例模板,其结构由C,A,EF,CF决定。TCT={Fa,Fe},其中Fa代表能够从App本身获取的字段值,Fe代表由攻击者控制的字段值,如自定义的恶意链接等。TT表示触发漏洞模板,它是一个预先写好的App框架,用来发送测试用例,触发目标App的EF。
2.对于一种漏洞v,收集漏洞v的先验知识。
本发明使用爬虫对漏洞相关的网页信息进行爬取。对于要构建漏洞模式,使用搜索引擎搜索对应的CVE编号。可以把对应搜索的请求链接封装到爬虫程序中。然后爬虫程序会从搜索结果的URL列表中获取描述网页。这些网页可能包括各种漏洞介绍的权威网站,以及各类漏洞分析利用的博客。
为了解决搜索引擎搜索次数限制,本发明的爬虫程序会模拟浏览器行为并将各个浏览器实例发送到搜索引擎。每次访问时,爬虫程序都会使用不同的用户代理,并在多次请求后随时休眠。如果一个访问实例失败,我们将在搜索查询队列的末尾执行重传操作。搜索引擎将返回每个搜索查询的URL列表。基于这些列表,我们可以减少爬取网站的规模。浏览器实例返回的URL列表中的每个项目都是一个完整的HTML页面。这些网页中存在许多冗余内容,例如广告,图片,音频,视频和动态脚本。对于每个网页,爬虫程序会删除不相关的信息,并仅保留文本内容,包括标题,URL和代码段。爬取到的所有数据将作为第3步需要的先验知识。
3.使用自然语言处理抽取漏洞关键信息,进而构建漏洞模式VPv。
在第2步得到先验知识之后。给定一个漏洞类型,首先爬取该漏洞的CVE和相关漏洞描述信息,这里称先验知识。本发明通过自然语言处理技术对于先验知识进行处理,包括分词,去停用词等操作。并结合CVE漏洞描述以及Android应用开发者文档信息进行进一步操作。下面以Android系统ContentProvider组件文件遍历漏洞为例来说明漏洞模式填充过程。在该漏洞的先验知识中,可以通过自然语言处理技术识别出许多组件条目,本发明把出现次数最多的Android应用程序组件提取为C,对于ContentProvider文件遍历漏洞,该组件为ContentProvider。将C的相关属性描述提取为A,对于该漏洞,对应为“exported=true”or“protectionLevel=normal”。根据Android开发者文档,爬取C组件所有相关的函数集合。其中,将所有执行安全敏感操作的系统函数抽取为TF,对于该漏洞,对应为open()函数。将所有能够接受用户或其他应用的输入,并能够被开发者重写的函数抽取为EF,对于该漏洞,对应为openFile()函数。将所有与TF存在数据流关系的函数抽取为CF,此漏洞的CF为空。对于TCT,其结构由C,A,EF,CF决定。首先,提取EF的参数类型作为TCT的类型,如Uri。其次,根据C和A确定TCT的主要组成结构,即每个A对应一个TCT字段,各个字段体现A的含义。在CF中,将所有从EF获取数据的函数参数抽取为TCT的字段。将上述字段动态拼接,即构成TCT,对于此漏洞,TCT为content://<authority>/<path>。根据EF,以及Android开发者文档,抽取触发EF的代码逻辑为TT的主要部分,其中将TCT作为触发EF函数的参数。从而构建出漏洞模式VPv。

Claims (4)

1.一种Android平台软件漏洞模式的自动化构建方法,其特征在于如下步骤:
步骤1)针对Android平台上的软件漏洞,定义漏洞模式模版VP,VP=(C,A,EF,TF,CF,TCT,TT);
步骤2)对于一种漏洞v,收集其先验知识,例如漏洞所在的组件,该组件与漏洞相关的属性,相关函数等;
步骤3)结合前一步收集的先验知识、CVE漏洞描述和Android应用开发者文档,使用自然语言处理技术抽取与漏洞模式相关的特征数据,进而构建漏洞模式VPv。
2.根据权利要求1所述的Android平台软件漏洞模式的自动化构建方法,其特征在于步骤1)针对Android平台上的软件漏洞,定义漏洞模式模版VP,VP=(C,A,EF,TF,CF,TCT,TT);其中,C表示Android平台软件漏洞所在的组件,A是对应组件的与漏洞相关的属性,EF表示漏洞入口函数的集合,这些函数从用户或其他Apps接收数据,TF表示漏洞目标函数的集合,这些函数会暴露漏洞v的行为,CF表示漏洞相关函数的集合,流向TF的数据会经过这些函数,TCT表示测试用例模板,TT代表触发器模板,它是一个预先写好的App框架;该定义实现了对漏洞检测和攻击信息的全面描述。
3.根据权利要求1所述的Android平台软件漏洞模式的自动化构建方法,其特征在于步骤2)对于一种漏洞v,收集其先验知识,例如漏洞所在的组件,该组件与漏洞相关的属性,相关函数等;对于要构建漏洞模式,使用搜索引擎搜索对应的CVE编号,并把对应搜索的请求链接封装到爬虫程序中;然后爬虫程序会从搜索结果的URL列表中获取描述网页;最后对描述网页进行初步处理,得到先验知识集。
4.根据权利要求1所述的Android平台软件漏洞模式的自动化构建方法,其特征在于步骤3)结合前一步收集的先验知识、CVE漏洞描述和Android应用开发者文档,使用自然语言处理技术抽取与漏洞模式相关的特征数据,进而构建漏洞模式VPv;本发明通过自然语言处理技术对前一步的先验知识进行处理,包括分词,去停用词等操作;然后通过命名实体匹配技术,识别出漏洞模式需要的关键内容;在该漏洞的先验知识中,将用户可交互的Android应用程序组件提取为C,将C的相关属性描述提取为A;根据Android开发者文档,爬取C组件所有相关的函数集合;其中,将所有执行安全敏感操作的系统函数抽取为TF,将所有能够接受用户或其他应用的输入,并能够被开发者重写的函数抽取为EF,将所有与TF存在数据流关系的函数抽取为CF;对于TCT,其结构由C,A,EF,CF决定:首先,提取EF的参数类型作为TCT的类型,如Uri;其次,根据C和A确定TCT的主要组成结构,即每个A对应一个TCT字段,各个字段体现A的含义;在CF中,将所有从EF获取数据的函数参数抽取为TCT的字段;将上述字段动态拼接,即构成TCT;根据EF,以及Android开发者文档,抽取触发EF的代码逻辑为TT的主要部分,其中将TCT作为触发EF函数的参数;从而构建出漏洞模式VPv。
CN201910338044.8A 2019-04-25 2019-04-25 Android平台软件漏洞模式的自动化构建方法 Pending CN111859387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910338044.8A CN111859387A (zh) 2019-04-25 2019-04-25 Android平台软件漏洞模式的自动化构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910338044.8A CN111859387A (zh) 2019-04-25 2019-04-25 Android平台软件漏洞模式的自动化构建方法

Publications (1)

Publication Number Publication Date
CN111859387A true CN111859387A (zh) 2020-10-30

Family

ID=72951235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910338044.8A Pending CN111859387A (zh) 2019-04-25 2019-04-25 Android平台软件漏洞模式的自动化构建方法

Country Status (1)

Country Link
CN (1) CN111859387A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828270A (zh) * 2023-02-20 2023-03-21 南京治煜信息科技有限公司 一种基于nlp的漏洞验证构建系统与构建方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828270A (zh) * 2023-02-20 2023-03-21 南京治煜信息科技有限公司 一种基于nlp的漏洞验证构建系统与构建方法

Similar Documents

Publication Publication Date Title
US11961021B2 (en) Complex application attack quantification, testing, detection and prevention
CN104766014B (zh) 用于检测恶意网址的方法和系统
RU2611965C2 (ru) Способ и устройство отображения страницы
US9311404B2 (en) Obscuring search results to increase traffic to network sites
US10325097B2 (en) Static detection of context-sensitive cross-site scripting vulnerabilities
Chyrun et al. Web Resource Changes Monitoring System Development.
US20080178162A1 (en) Server evaluation of client-side script
US10754628B2 (en) Extracting web API endpoint data from source code to identify potential security threats
CN110909229A (zh) 一种基于模拟浏览器访问的网页数据获取和存储的系统
CN103617390A (zh) 一种恶意网页判断方法、装置和系统
Jisha et al. Mobile applications recommendation based on user ratings and permissions
CN112307292A (zh) 基于高级持续性威胁攻击的信息处理方法及系统
US10657252B2 (en) Detecting malicious code embedded in documents
Chaqfeh et al. To block or not to block: Accelerating mobile web pages on-the-fly through javascript classification
CN114491560A (zh) 一种漏洞检测方法、装置、存储介质及电子设备
CN111859387A (zh) Android平台软件漏洞模式的自动化构建方法
CN104778232A (zh) 一种基于长查询的搜索结果的优化方法和装置
CN116451271A (zh) 一种应用软件的隐私政策自动提取方法
You et al. Design of data mining of wechat public platform based on python
CN110825976B (zh) 网站页面的检测方法、装置、电子设备及介质
CN110413909B (zh) 基于机器学习的大规模嵌入式设备在线固件智能识别方法
CN114553555A (zh) 恶意网址识别方法、装置、存储介质及电子设备
CN114637664A (zh) 一种针对安卓应用程序性质的检测方法及装置
CN111783006A (zh) 页面的生成方法、装置、电子设备及计算机可读介质
Ghasemisharif et al. Read Between the Lines: Detecting Tracking JavaScript with Bytecode Classification

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