CN103984900B - Android应用漏洞检测方法及系统 - Google Patents

Android应用漏洞检测方法及系统 Download PDF

Info

Publication number
CN103984900B
CN103984900B CN201410210154.3A CN201410210154A CN103984900B CN 103984900 B CN103984900 B CN 103984900B CN 201410210154 A CN201410210154 A CN 201410210154A CN 103984900 B CN103984900 B CN 103984900B
Authority
CN
China
Prior art keywords
data
leak
android
application
detected
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.)
Expired - Fee Related
Application number
CN201410210154.3A
Other languages
English (en)
Other versions
CN103984900A (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.)
Nanjing Sai Ning Information Technology Co Ltd
Tsinghua University
Original Assignee
Nanjing Sai Ning Information Technology Co Ltd
Tsinghua University
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 Nanjing Sai Ning Information Technology Co Ltd, Tsinghua University filed Critical Nanjing Sai Ning Information Technology Co Ltd
Priority to CN201410210154.3A priority Critical patent/CN103984900B/zh
Publication of CN103984900A publication Critical patent/CN103984900A/zh
Application granted granted Critical
Publication of CN103984900B publication Critical patent/CN103984900B/zh
Expired - Fee Related 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种Android应用漏洞检测方法,包括:步骤一、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞;步骤二、如果可能存在,针对可能存在隐私泄露漏洞的待检测Android应用,通过对Android系统中相关API函数的监控,对待检测Android应用的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险。本发明还提供一种Android应用漏洞检测系统。上述方法和系统能够基于动态测试执行效果来快速发现Android应用中确定存在的隐私泄露和数据污染漏洞,并且避免误报,为大规模发现Android应用中隐私泄露与数据污染类安全漏洞提供了有力支持。

Description

Android应用漏洞检测方法及系统
技术领域
本发明涉及计算机程序的漏洞检测技术,尤其涉及一种Android(安卓操作系统)上的应用漏洞检测方法及系统。
背景技术
目前,随着互联网和智能手机在人类社会的日益普及,移动安全问题和安全隐患也随之愈发严重。针对智能手机的病毒、木马等恶意程序发展迅速,在移动终端上植入恶意代码进行网络犯罪的事件呈增长趋势,移动终端的用户正在面临前所未有的安全风险。Android平台是目前最流行的智能移动终端平台,其中存在的安全风险最为引人关注。
Content Provider是在Android操作系统中封装的一套结构化本地数据组件(通常是以SQLite数据库的形式),然后提供必要的封装机制来访问和控制数据。默认情况下,Content Provider接口是开放的,Android应用可以通过这个组件互相沟通。与ContentProvider相关的安全隐患包括隐私泄露漏洞和数据污染漏洞。
已有一些静态分析的方法来检测Android应用程序的隐私泄露和数据污染漏洞。这些方法主要对Android应用程序反编译后的Dalvik(Google公司设计用于Android平台的Java虚拟机)字节码或Java源代码进行静态分析,在静态代码中查找可能导致相关类型漏洞的特征。
静态分析主要采用构造控制流图(以下简称CFG)技术,另外结合一些静态污点分析或数据流分析的技术以提高检测的准确率。例如:(1)Woodpecker首先通过对Android应用程序反编译后的Dalvik字节码建立控制流图来确定可能的执行路径,然后采用数据流分析技术对以上结果作进一步精简得到可能触发权限泄露的路径集。(2)DroidChecker对Android应用程序反编译后的Java源代码静态分析,首先从Manifest文件中提取疑似权限泄露的Android组件列表,然后从每个组件对应的Java程序入口开始构造CFG,同时结合静态污点分析技术,定位导致权限泄露的系统调用点。(3)ContentScope针对Android应用中的隐私泄露与数据污染漏洞,对反编译后的Java源代码进行静态分析,生成函数调用图和程序控制流图,从而识别出从Content Provider接口至SQLite数据库操作API函数的程序执行流,确定出存在漏洞的应用。
但是,对Java源代码的静态分析在很大程度上依赖于Java反编译工具的准确性和完整性,目前的技术无法保证无损地将Android应用程序包反编译到Java源代码级,这在一定程度上影响权限泄露静态分析技术的准确性。其次,众所周知,Java是一种支持继承和多态的高级语言。现有的静态分析方法采用的静态污点分析和数据流分析技术无法考虑Java的多态这一动态特征,也会在一定程度上增加漏洞检测的误报率。除此之外,现有的静态分析技术检测出的疑似漏洞并不能可以真正实现有效的攻击,有待手工方法做进一步验证,面对大量的Android应用程序,手工验证耗时耗力。
面对当前大量的Android应用,从保护用户隐私和手机系统安全性的角度,都非常有必要设计出一种更加有效和自动化的Android应用隐私泄露与数据污染漏洞检测方法,来解决Android应用安全测试的难题。
发明内容
本发明要解决的技术问题是提出一种Android应用漏洞检测方法及系统,快速检测出Android应用中存在的隐私泄露或数据污染安全漏洞。
根据本发明一个方面,提供一种Android应用漏洞检测方法,包括:步骤一、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞;步骤二、如果可能存在,针对可能存在隐私泄露漏洞的待检测Android应用,通过对Android系统中相关API函数的监控,对待检测Android应用的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险。
可选的,在步骤一之前还包括:从Android应用商店或官方网站下载待检测Android应用;在检测环境中批量安装待检测Android应用。
可选的,步骤一进一步包括:解析AndroidManifest.xml文件,查找是否存在Content Provider标签;如果存在,解析Content Provider标签的属性信息;检测exported属性,是否设置为暴露;如果exported设置为暴露,检测Content Provider声明的权限信息,当声明的权限信息中设置了permission,那么没有授权就不可访问,不存在隐私泄露问题,也不存在数据污染问题;当设置了readPermission,就只能在有权限时可读,不存在隐私泄露问题,但可能存在数据污染;当设置了writePermission,就只能在有权限时可写,不存在数据污染问题,但可能存在隐私泄露。
可选的,步骤二进一步包括:对运行待检测应用的Android系统框架进行监控代码的插桩,监控Content Provider与SQLite数据库操作的数据查询API函数;生成SQL注入测试用例,调用待检测应用的Content Provider接口执行测试用例,检测是否存在SQL注入漏洞;如果存在,通过执行测试用例,获取URI的数据查询游标(Cursors),通过游标遍历出数据表的列名和内容;获取存在SQL注入漏洞的结果集。
可选的,步骤二进一步包括:检测是否可以通过URI的基本路径往上层层遍历到Android的各项目录下,抓取含有用户隐私的危险数据文件;如果存在,获取存在基本路径遍历漏洞的结果集。
根据本发明另一个方面,提供一种Android应用漏洞检测方法,包括:步骤一、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在数据污染漏洞;步骤二、通过对运行待检测应用SQLite数据表结构获取,构造数据修改SQL注入语句,检测主动数据污染安全风险。
可选的,步骤二进一步包括:对运行待检测应用的Android系统进行监控代码插桩,监控Content Provider与SQLite数据库操作的数据修改API函数;对可以进行访问的URI地址进行Query语句的遍历,以确认表字段信息和表内容;根据表字段信息,并判断出表字段的数据类型,准备假数据,构建符合表字段类型的Insert语句,完成插入数据的工作;判断数据是否插入成功主要采取两种方法:其一是对比前后遍历URI数据的变化,其二是通过监控手工更改系统Log语句的打印,来验证SQLite内部是否真正执行该条SQL语句;如果插入成功,将前面插入的数据进行删除操作;将最后的结果记录Log日志中,基于Log日志中是否存有成功进行插入、删除操作的记录,来确定是否存在数据污染漏洞。
根据本发明又一个方面,提供一种Android应用漏洞检测系统,包括:候选应用判断单元,适于通过分析待检测Android应用的Content Provider接口特征,判断该候选Android应用/待测试Android应用是否可能存在数据污染漏洞和/或隐私泄露漏洞;漏洞检测控制器,与候选应用判断单元连接,适于根据安全漏洞检测策略,为可能存在数据污染漏洞和/或隐私泄露漏洞的待测试应用生成动态测试用例;动态测试代理程序,与漏洞检测控制器连接,适于调用待检测应用的Content Provider接口执行测试用例,并反馈执行结果给漏洞检测控制器;其中,执行结果包括应用在执行测试用例时对系统数据查询和数据修改API函数的调用情况与返回结果等;和插桩行为监控器,与漏洞检测控制器连接,位于运行待检测应用的Android系统框架层中,适于通过代码插桩技术,监控Content Provider与SQLite数据库操作的数据修改和/或数据查询API函数,并反馈监控结果给漏洞检测控制器。
与现有技术相比,本发明的优点在于:
(1)现有静态分析技术只能检测出可疑漏洞,存在一定的误报率,需要人工进行进一步的验证和筛选,且不一定能成功触发漏洞危害效果。本发明至少一个实施例中提供的方法和系统能够基于动态测试执行效果来发现Android应用中确定存在的隐私泄露和数据污染漏洞,避免误报。
(2)本发明至少一个实施例中提供的方法和系统充分利用了Android系统框架开源的特性,通过在框架层与Content Provider与SQLite数据库操作相关的API函数中插桩监控代码,结合动态测试数据的生成,提出了一种基于动态注入测试的漏洞检测方法,从而快速有效地发现Android应用中确定存在的安全漏洞。
(3)本发明至少一个实施例中提供的方法和系统为大规模发现Android应用中隐私泄露与数据污染类安全漏洞提供了有力支持。
附图说明
图1是根据本发明一个实施例提供的Android应用漏洞检测方法的方法流程图;
图2是根据本发明另一个实施例提供的Android应用漏洞检测方法的步骤S10的流程图;
图3是根据本发明另一个实施例提供的Android应用漏洞检测方法的步骤S20的流程图;
图4是根据本发明另一个实施例提供的Android应用漏洞检测方法的步骤S40的流程图;
图5是根据本发明另一个实施例提供的Android应用漏洞检测系统的系统结构示意图;
图6是根据本发明另一个实施例提供的Android应用漏洞检测系统的工作过程流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
术语定义:
英文术语/缩略语 中文
Accessible URIs Problem 公开URI访问漏洞
Uniform Resource Identifier(URI) 统一资源标识符
Passive Content Leaks 被动内容泄露
Content Pollution 内容污染
Content Leak 内容泄露
SQL Injection Problem SQL注入漏洞
Traversal Problem 路径遍历漏洞
发明人经研究发现:正是由于Content Provider的开放性,它很容易被动地披露用户存储在各类应用程序内部的私密信息;或者是不经意地被其他恶意程序篡改一些重要的、对安全信息敏感的设置信息,随后很可能导致严重的系统副作用。前一类安全漏洞称为隐私泄露漏洞,导致受影响的应用程序被动地泄露程序内部的隐私数据;而后一类安全漏洞则称为数据污染漏洞,可以潜在被攻击者用于操控应用程序内部的数据,而这些被操控的数据很可能是安全信息敏感的。
发明人经研究还发现:上述这两类安全漏洞共享有类似性质的Content Provider接口,因此在检测漏洞前首先要进行针对待检测应用的Content Provider的分析。
隐私泄露漏洞检测方法
基于上述的发现,根据本发明至少一个实施例,提供一种Android应用漏洞检测方法,检测隐私泄露漏洞,属于基于动态注入测试的检测方法。如图1所示,该方法包括:
S10、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞;
S20、如果可能存在,针对可能存在隐私泄露漏洞的待检测Android应用,通过对Android系统中相关API函数的监控,对待检测Android应用的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险。
根据本发明另一个实施例,在上述步骤S10之前,检测方法还包括准备步骤S00:
S001、从Android应用商店或官方网站下载待检测Android应用;
S002、在检测环境中批量安装待检测Android应用。
根据本发明另一个实施例,如图2所示,步骤S10进一步包括:
S101、解析AndroidManifest.xml文件,查找是否存在Content Provider标签;
S102、如果存在,解析Content Provider标签的属性信息;
S103、检测exported属性,如果为true则为暴露,如果为false则为不暴露;
S104、如果exported设置为暴露,检测Content Provider声明的权限信息(包含readPermission、writePermission、permission属性),当声明的权限信息中设置了permission,那么没有授权就不可访问;当设置了readPermission,就只能在有权限时可读,不存在隐私泄露问题,但可能存在数据污染;当设置了writePermission,就只能在有权限时可写,不存在数据污染问题,但可能存在隐私泄露。
根据本发明另一个实施例,如图3所示,步骤S20进一步包括:
S201、对运行待检测应用的Android系统框架进行监控代码的插桩,监控ContentProvider与SQLite数据库操作的数据查询API函数;
S202、生成SQL注入测试用例,调用待检测应用的Content Provider接口执行测试用例,检测是否存在SQL注入漏洞;
S203、如果存在,通过执行测试用例,获取URI的数据查询游标(Cursors),通过游标遍历出数据表的列名和内容;
S204、获取存在SQL注入漏洞的结果集;
S205、检测是否可以通过URI的基本路径往上层层遍历到Android的各项目录下,抓取含有用户隐私的危险数据文件;
S206、如果存在,获取存在基本路径遍历漏洞的结果集;
S207、汇总步骤S204和步骤S206获得的结果集,发现存在隐私泄露的检测结果。
其中,步骤S202-S204与步骤S205-206是两种独立的检测过程,在本发明的其他实施例中,也可以分别执行一个检测过程。
根据本发明另一个实施例,上述检测方法在步骤S20之后还包括:
S30、通过评估分析,例如隐私记录关键字匹配,确认被动数据泄露安全风险是否涉及用户隐私泄露。
当检测对象是一组或者不确定数量的一群应用程序时,根据本发明另一个实施例,上述Android应用漏洞检测方法中的步骤S10包括:
遍历多个待测应用程序,通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞。
数据污染漏洞检测方法
基于上述的发现,根据本发明至少一个实施例,提供一种Android应用漏洞检测方法,检测数据污染漏洞,属于基于动态注入测试的检测方法。如图3所示,该方法包括:
S10、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在数据污染漏洞;
S40、通过对运行待检测应用SQLite数据表结构获取,构造数据修改SQL注入语句,检测主动数据污染安全风险。
根据本发明另一个实施例,如图4所示,步骤S40进一步包括:
S401、对运行待检测应用的Android系统进行监控代码插桩,监控ContentProvider与SQLite数据库操作的数据修改API函数;
S402、对可以进行访问的URI地址进行Query语句的遍历,以确认表字段信息和表内容;
S403、根据表字段信息,并判断出表字段的数据类型,准备假数据,构建符合表字段类型的Insert语句,完成插入数据的工作;
S404、判断数据是否插入成功主要采取两种方法:其一是对比前后遍历URI数据的变化,其二是通过监控手工更改系统Log语句的打印,来验证SQLite内部是否真正执行该条SQL语句;
S405、如果插入成功,将前面插入的数据进行删除操作;
S406、将最后的结果记录Log日志中,基于Log日志中是否存有成功进行插入、删除操作的记录,来确定是否存在数据污染漏洞。
根据本发明另一个实施例,上述检测方法在步骤S40之后还包括:
S50、通过评估分析,例如敏感数据关键字匹配,确认主动数据污染安全风险是否涉及敏感数据污染。
多漏洞检测方法
本领域技术人员可知,上述各个实施例提出的针对隐私泄露漏洞、数据污染漏洞的Android应用漏洞检测方法,通过组合,可以同时进行或先后进行针对两种漏洞的检测。
根据本发明一个实施例,提供一种针对隐私泄露与数据污染安全漏洞的Android应用漏洞检测方法,包括:
S10、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞;
S20、针对可能存在隐私泄露漏洞的待检测Android应用,通过对Android系统中相关API函数的监控,对待检测Android应用的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险;
S40;通过对运行待检测应用SQLite数据表结构获取,构造数据修改SQL注入语句,检测主动数据污染安全风险。
其中S20和S40的执行顺序可以改变。
Android应用漏洞检测系统
与上面的方法相对应地,根据本发明一个实施例,提供一种Android应用漏洞检测系统,针对以SQLite数据库存储用户数据并通过Content Provider机制进行数据访问的Android应用,发现其中存在的隐私泄露与数据污染安全漏洞。
如图5所示,该Android应用漏洞检测系统包括:
候选应用判断单元10,适于通过分析待检测Android应用的Content Provider接口特征,判断该候选Android应用/待测试Android应用是否可能存在数据污染漏洞和/或隐私泄露漏洞;
漏洞检测控制器20,与候选应用判断单元连接,适于根据安全漏洞检测策略,为可能存在数据污染漏洞和/或隐私泄露漏洞的待测试应用生成动态测试用例;
动态测试代理程序30,与漏洞检测控制器连接,适于调用待检测应用的ContentProvider接口执行测试用例,并反馈执行结果给漏洞检测控制器;其中,执行结果包括应用在执行测试用例时对系统数据查询和数据修改API函数的调用情况与返回结果等;
插桩行为监控器40,与漏洞检测控制器连接,位于运行待检测应用的Android系统框架层中,适于通过代码插桩技术,监控Content Provider与SQLite数据库操作的数据修改和/或数据查询API函数,并反馈监控结果给漏洞检测控制器。
根据本发明一个实施例,漏洞检测控制器位于测试服务器或测试PC端,插桩行为监控器、候选应用判断单元、动态测试代理程序位于待测智能终端,这种安排方式使多个待测试终端可以并行进行测试,即一个漏洞检测控制器为多个待测智能终端提供测试用例。
如图6所示,测试多个应用程序数据污染漏洞和隐私泄露漏洞的的工作过程包括:
1)从Android应用商店或官方网站下载待检测Android应用;
2)在检测环境中批量安装待检测Android应用;
3)从应用程序包Manifest文件中探测Content Provider接口,并检测出被导出但未经权限检查的公开可访问URI,从而找出候选应用包;
3-1)解析AndroidManifest.xml文件,查找是否存在Content Provider标签;
3-2)解析Content Provider标签的属性信息;
3-3)检测exported属性,如果为true则为暴露,如果为false则为不暴露;
3-4)检测Content Provider声明的权限信息,包含readPermission、writePermission、permission属性,选择出暴露接口但没有声明权限的公开可访问Content Provider的URI,及其关联候选应用包;
4)通过对运行待检测应用Android系统中相关API函数的监控,对候选应用包的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险;
4-1)对运行待检测应用的Android系统框架进行监控代码的插桩,插入插桩行为监控器,监控Content Provider与SQLite数据库操作的数据查询API函数;
4-2)由漏洞检测控制器生成SQL注入测试用例,由动态测试代理程序调用待检测应用的Content Provider接口执行测试用例,检测是否存在SQL注入漏洞;
4-3)动态测试代理程序通过执行测试用例,获取URI的数据查询游标,通过游标遍历出数据表的列名和内容;
4-4)获取存在SQL注入漏洞的结果集;
4-5)检测是否可以通过URI的基本路径往上层层遍历到Android的各项目录下,抓取一些含有用户隐私的危险数据文件;
4-6)获取存在基本路径遍历漏洞的结果集;
4-7)汇总步骤4-4)和步骤4-6)获得的结果集,发现存在隐私泄露的检测结果。
5)通过对运行待检测应用SQLite数据表结构获取,构造数据修改SQL注入语句,检测主动数据污染安全风险;
5-1)对运行待检测应用的Android系统进行监控代码插桩,监控ContentProvider与SQLite数据库操作的数据修改API函数;
5-2)对可以进行访问的URI地址进行Query语句的遍历,以确认表字段信息和表内容;
5-3)根据表字段信息,并判断出表字段的数据类型,准备假数据,构建符合表字段类型的Insert语句,完成插入数据的工作;
5-4)判断数据是否插入成功主要采取两种方法:其一是对比前后遍历URI数据的变化,其二是通过监控手工更改系统Log语句的打印,来验证SQLite内部是否真正执行该条SQL语句;
5-5)将前面插入的数据进行删除操作;
5-6)将最后的结果记录Log日志中,基于Log日志中是否存有成功进行插入、删除操作的记录,来确定是否存在数据污染漏洞。
6)通过评估分析,确认被动数据泄露安全风险是否涉及用户隐私泄露,以及确认主动数据污染安全风险是否涉及敏感数据污染。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

Claims (2)

1.一种Android应用漏洞检测方法,包括:
步骤一、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在隐私泄露漏洞;
步骤二、如果可能存在,针对可能存在隐私泄露漏洞的待检测Android应用,通过对Android系统中相关API函数的监控,对待检测Android应用的公开可访问URI进行SQL注入漏洞测试和路径遍历漏洞测试,检测被动数据泄露安全风险;
其中,步骤一进一步包括:
解析AndroidManifest.xml文件,查找是否存在Content Provider标签;
如果存在,解析Content Provider标签的属性信息;
检测exported属性,是否设置为暴露;
如果exported设置为暴露,检测Content Provider声明的权限信息,当声明的权限信息中设置了permission,那么没有授权就不可访问,不存在隐私泄露问题,也不存在数据污染问题;当设置了readPermission,就只能在有权限时可读,不存在隐私泄露问题,但可能存在数据污染;当设置了writePermission,就只能在有权限时可写,不存在数据污染问题,但可能存在隐私泄露;
其中,步骤二进一步包括:
对运行待检测应用的Android系统框架进行监控代码的插桩,监控Content Provider与SQLite数据库操作的数据查询API函数;
生成SQL注入测试用例,调用待检测应用的Content Provider接口执行测试用例,检测是否存在SQL注入漏洞;
如果存在,通过执行测试用例,获取URI的数据查询游标(Cursors),通过游标遍历出数据表的列名和内容;
获取存在SQL注入漏洞的结果集;
其中,步骤二进一步包括:
检测是否可以通过URI的基本路径往上层层遍历到Android的各项目录下,抓取含有用户隐私的危险数据文件;
如果存在,获取存在基本路径遍历漏洞的结果集。
2.一种Android应用漏洞检测方法,包括:
步骤一、通过分析待检测Android应用的Content Provider接口特征,判断其是否可能存在数据污染漏洞;
步骤二、通过对运行待检测应用SQLite数据表结构获取,构造数据修改SQL注入语句,检测主动数据污染安全风险;
其中,步骤二进一步包括:
对运行待检测应用的Android系统进行监控代码插桩,监控Content Provider与SQLite数据库操作的数据修改API函数;
对可以进行访问的URI地址进行Query语句的遍历,以确认表字段信息和表内容;
根据表字段信息,并判断出表字段的数据类型,准备假数据,构建符合表字段类型的Insert语句,完成插入数据的工作;
判断数据是否插入成功主要采取两种方法:其一是对比前后遍历URI数据的变化,其二是通过监控手工更改系统Log语句的打印,来验证SQLite内部是否真正执行该条SQL语句;
如果插入成功,将前面插入的数据进行删除操作;
将最后的结果记录Log日志中,基于Log日志中是否存有成功进行插入、删除操作的记录,来确定是否存在数据污染漏洞。
CN201410210154.3A 2014-05-19 2014-05-19 Android应用漏洞检测方法及系统 Expired - Fee Related CN103984900B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410210154.3A CN103984900B (zh) 2014-05-19 2014-05-19 Android应用漏洞检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410210154.3A CN103984900B (zh) 2014-05-19 2014-05-19 Android应用漏洞检测方法及系统

Publications (2)

Publication Number Publication Date
CN103984900A CN103984900A (zh) 2014-08-13
CN103984900B true CN103984900B (zh) 2017-03-01

Family

ID=51276865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410210154.3A Expired - Fee Related CN103984900B (zh) 2014-05-19 2014-05-19 Android应用漏洞检测方法及系统

Country Status (1)

Country Link
CN (1) CN103984900B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103996007A (zh) * 2014-05-29 2014-08-20 诸葛建伟 Android应用权限泄露漏洞的测试方法及系统
CN105487966B (zh) * 2014-09-17 2023-07-25 深圳市雅阅科技有限公司 程序测试方法、装置及系统
CN105550540A (zh) * 2014-10-31 2016-05-04 中国移动通信集团江苏有限公司 一种同质化应用的检测方法和装置
CN105868636B (zh) * 2015-01-20 2019-08-02 阿里巴巴集团控股有限公司 一种检测权限漏洞的方法及装置
CN104537308B (zh) * 2015-01-23 2017-04-05 北京奇虎科技有限公司 提供应用安全审计功能的系统及方法
CN104537309A (zh) * 2015-01-23 2015-04-22 北京奇虎科技有限公司 应用程序漏洞检测方法、装置及服务器
CN104732146A (zh) * 2015-04-03 2015-06-24 上海斐讯数据通信技术有限公司 一种Android程序漏洞检测方法及系统
CN104933362B (zh) * 2015-06-15 2017-10-20 福州大学 Android应用软件API误用类漏洞自动化检测方法
CN106713215B (zh) * 2015-07-14 2020-12-15 腾讯科技(深圳)有限公司 一种信息处理方法、终端及服务器
CN105243329B (zh) * 2015-10-26 2017-12-08 北京奇虎科技有限公司 Android系统漏洞挖掘的方法及装置
CN105389515B (zh) * 2015-10-28 2018-04-10 上海斐讯数据通信技术有限公司 一种基于权限的安全监测方法、系统及移动终端
CN105337988A (zh) * 2015-11-20 2016-02-17 刘奇 一种防止敏感信息泄露的方法及系统
CN106897212A (zh) * 2015-12-21 2017-06-27 北京奇虎科技有限公司 分析应用安全性的方法和装置
CN106940771A (zh) * 2016-01-04 2017-07-11 阿里巴巴集团控股有限公司 基于文件的漏洞检测方法和装置
US9830463B2 (en) * 2016-01-22 2017-11-28 Google Llc Systems and methods for detecting sensitive information leakage while preserving privacy
CN105827664B (zh) * 2016-06-06 2019-01-29 江苏通付盾科技有限公司 漏洞检测方法及装置
CN106096403B (zh) * 2016-06-23 2019-03-12 国家计算机网络与信息安全管理中心 一种软件隐私泄露行为的分析方法及装置
CN106294149A (zh) * 2016-08-09 2017-01-04 北京邮电大学 一种检测Android应用程序组件通信漏洞的方法
CN107038372A (zh) * 2016-11-14 2017-08-11 平安科技(深圳)有限公司 数据泄露接口检测方法和装置
CN106933645A (zh) * 2017-01-17 2017-07-07 深圳市能信安科技股份有限公司 一种Apk安全风险自动化静态审计系统以及方法
CN107194259B (zh) * 2017-04-14 2019-06-28 华中科技大学 一种基于攻击过程的漏洞严重度综合评估方法和系统
CN109543419B (zh) * 2018-11-30 2020-12-04 杭州迪普科技股份有限公司 检测资产安全的方法及装置
CN110022311B (zh) * 2019-03-18 2021-09-24 北京工业大学 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法
CN111783096B (zh) * 2019-08-28 2024-02-02 北京京东尚科信息技术有限公司 检测安全漏洞的方法和装置
CN112003864B (zh) * 2020-08-25 2022-01-14 上海聚水潭网络科技有限公司 一种基于全流量的网站安全检测系统和方法
CN112541179A (zh) * 2020-11-27 2021-03-23 国网河南省电力公司电力科学研究院 一种Android应用数字证书校验漏洞检测系统及方法
CN112528331A (zh) * 2020-12-15 2021-03-19 杭州默安科技有限公司 隐私泄露风险的检测方法、设备及系统
CN112632551B (zh) * 2021-03-11 2021-09-28 北京邮电大学 一种第三方库信息泄露检测方法及装置
CN113254942A (zh) * 2021-05-24 2021-08-13 浙江网商银行股份有限公司 数据处理方法、系统及装置
CN113590118B (zh) * 2021-07-23 2024-02-09 南京赛宁信息技术有限公司 一种基于drf框架的资源权限控制装置与方法
CN113419971B (zh) * 2021-08-25 2021-12-14 北京邮电大学 安卓系统服务漏洞检测方法及相关装置
CN114780962B (zh) * 2022-04-02 2024-04-26 中国人民解放军战略支援部队信息工程大学 基于动态能量调控的Windows程序模糊测试方法及系统
CN115277069A (zh) * 2022-06-17 2022-11-01 江苏通付盾信息安全技术有限公司 应用软件网络安全的检测平台和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268438A (zh) * 2013-02-04 2013-08-28 中国科学院信息工程研究所 基于调用链的Android权限管理方法及系统
CN103309808A (zh) * 2013-06-13 2013-09-18 中国科学院信息工程研究所 基于标签的安卓用户隐私泄露黑盒检测方法及系统
CN103544447A (zh) * 2013-05-30 2014-01-29 Tcl集团股份有限公司 一种基于安卓系统的防止机密信息泄露的方法和终端
CN103729595A (zh) * 2014-01-02 2014-04-16 东南大学 一种Android应用程序隐私数据泄露离线检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268438A (zh) * 2013-02-04 2013-08-28 中国科学院信息工程研究所 基于调用链的Android权限管理方法及系统
CN103544447A (zh) * 2013-05-30 2014-01-29 Tcl集团股份有限公司 一种基于安卓系统的防止机密信息泄露的方法和终端
CN103309808A (zh) * 2013-06-13 2013-09-18 中国科学院信息工程研究所 基于标签的安卓用户隐私泄露黑盒检测方法及系统
CN103729595A (zh) * 2014-01-02 2014-04-16 东南大学 一种Android应用程序隐私数据泄露离线检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Detecting Passive Content Leaks and Pollution in Android Applications;Yajin Zhou 等;《In Proceedings of the 20th Network and Distributed System Security Symposium(NDSS)》;20130228;第1-16页 *

Also Published As

Publication number Publication date
CN103984900A (zh) 2014-08-13

Similar Documents

Publication Publication Date Title
CN103984900B (zh) Android应用漏洞检测方法及系统
CN103729595B (zh) 一种Android应用程序隐私数据泄露离线检测方法
CN104077531B (zh) 基于开放漏洞评估语言的系统漏洞评估方法、装置和系统
Halfond et al. Improving penetration testing through static and dynamic analysis
CN110266669A (zh) 一种Java Web框架漏洞攻击通用检测与定位的方法及系统
Junjin An approach for SQL injection vulnerability detection
CN107368417A (zh) 一种漏洞挖掘技术测试模型及测试方法
CN103699844B (zh) 安全保护系统及方法
TW201633747A (zh) 利用運行期代理器及網路探查器判定漏洞之技術
CN106570399B (zh) 一种跨App组件间隐私泄露的检测方法
CN106874761A (zh) 一种安卓系统恶意应用检测方法及系统
CN101017458A (zh) 基于源代码静态分析的软件安全代码分析器及其检测方法
CN103996007A (zh) Android应用权限泄露漏洞的测试方法及系统
CN105825138A (zh) 一种敏感数据识别的方法和装置
CN108459954A (zh) 应用程序漏洞检测方法和装置
IL265518B2 (en) Management of security vulnerabilities
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
CN111767573A (zh) 数据库安全管理方法、装置、电子设备及可读存储介质
CN110414222A (zh) 一种基于组件关联的应用隐私泄露问题检测方法和装置
CN106294149A (zh) 一种检测Android应用程序组件通信漏洞的方法
Ali et al. Protection web applications using real-time technique to detect structured query language injection attacks
CN113190839A (zh) 一种基于SQL注入的web攻击防护方法及系统
CN110781073A (zh) 安全测试方法和系统
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
Li et al. Large-scale third-party library detection in android markets

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
DD01 Delivery of document by public notice

Addressee: Patent director of Nanjing Saining Information Technology Co., Ltd

Document name: payment instructions

DD01 Delivery of document by public notice
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301

Termination date: 20200519

CF01 Termination of patent right due to non-payment of annual fee