CN104837159A - Android平台OAuth协议误用安全检测方法 - Google Patents
Android平台OAuth协议误用安全检测方法 Download PDFInfo
- Publication number
- CN104837159A CN104837159A CN201510235772.8A CN201510235772A CN104837159A CN 104837159 A CN104837159 A CN 104837159A CN 201510235772 A CN201510235772 A CN 201510235772A CN 104837159 A CN104837159 A CN 104837159A
- Authority
- CN
- China
- Prior art keywords
- oauth
- app
- android
- authorization
- service
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 13
- 238000013475 authorization Methods 0.000 claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000003068 static effect Effects 0.000 claims abstract description 6
- 238000005206 flow analysis Methods 0.000 claims abstract description 3
- 238000012360 testing method Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 244000097202 Rathbunia alamosensis Species 0.000 description 1
- 235000009776 Rathbunia alamosensis Nutrition 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/06—Testing, supervising or monitoring using simulated traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
一种Android平台OAuth协议误用安全检测方法,根据Android平台特性建立覆盖OAuth协议生命周期的安全模型;然后分析不同服务厂商提供的软件开发套件和规范,识别出不同厂商的OAuth实现中的关键敏感参数,提取敏感参数生成配置文件用于Android应用分析;再分别进行静态代码分析、动态流量分析以检测应用实现与规范的不一致性、SSL实现正确性以及服务器端的实现正确性。本发明能够全面分析Android应用中OAuth协议的误用和潜在风险,基于一个覆盖OAuth协议生命周期的安全模型,系统化地对应用使用OAuth协议进行认证或授权的流程进行分析,识别潜在的不正确实现。同时,本方案的安全模型可以为服务厂商的SDK实现及应用开发者的OAuth实现提供安全指导,帮助开发者在Android应用正确实现OAuth协议。
Description
技术领域
本发明涉及的是一种移动通信领域的技术,具体是一种对Android应用使用静态代码分析和动态流量分析的方案,对Android应用中的开放认证(OAuth,Open the Authentication)协议实现进行安全检测。
背景技术
OAuth协议是当前移动平台应用最广泛的第三方认证和授权协议,Android应用中的OAuth实现普遍存在安全问题,给用户的隐私数据带来大量安全威胁。
已有的OAuth协议安全分析技术,使用的方案主要包括对Web平台OAuth协议实现的分析和对移动平台特定OAuth协议误用类型的分析两类。
移动应用中的OAuth协议实现存在很高的安全风险,OAuth协议中涉及能够访问大量用户隐私数据(身份信息、通讯方式、照片)或登录用户应用账号的授权凭据,各移动智能平台上均存在窃取此类安全敏感信息的恶意软件。同时,由于移动平台与Web平台的差异性,原本针对Web平台设计的OAuth协议在移动平台实现十分复杂,移动应用开发者容易对协议的安全要求产生误解,给OAuth协议的实现带来安全威胁。
已有的OAuth协议安全分析技术,使用的方案主要包括对Web平台OAuth协议实现的分析和对移动平台特定OAuth协议误用类型的分析两类。其中,对Web平台的OAuth误用检测比较成熟的技术是美国弗吉尼亚大学Yuchen Zhou等人提出的SSOScan技术,能够自动化检测Facebook SSO API的应用中存在的漏洞。这种技术是针对Web平台的,忽视了移动平台的OAuth实现,同时,这种技术主要检测授权阶段的OAuth误用情况,而没有覆盖整个OAuth协议流程。现有的移动平台OAuth协议误用检测主要是对特定误用类型进行检测,比如Facebook支持不正确的用户代理实现导致恶意应用可以窃取用户的登录凭据(用户名、密码),新浪微博在本地存储授权凭据导致攻击者可以未经授权获取用户受保护资源(身份信息、通讯方式)等。对这类特定误用类型的安全分析主要依赖于对Android应用中特定组件的识别或者对网络流量中特定参数的识别,以判断潜在的安全威胁。这些已有的安全检测方案不能覆盖OAuth协议完整的生命周期,缺乏系统化的分析框架,难以全面的评估OAuth协议实现潜在的安全威胁。
发明内容
本发明针对现有技术存在的上述不足,提出一种Android平台OAuth协议误用安全检测方法,实现评估Android应用中潜在的OAuth协议错误实现及可能带来的安全威胁。。
本发明是通过以下技术方案实现的:
本发明涉及一种Android平台OAuth协议误用安全检测方法,包括以下步骤:
步骤1、根据Android平台特性建立覆盖OAuth协议生命周期的安全模型;
所述的安全模型包括:攻击假设、攻击者类型、威胁模型,其中:
所述的攻击者类型包括:
1)网络攻击者:能够完全控制Android手机客户端和消费者服务器、Android手机客户端和服务厂商服务器之间的网络,它能够窃听并修改通信方之间传输的流量。但是消费者服务器与服务厂商服务器之间的通信它不能窃听。
2)恶意第三方app:能够让用户误认为它是真实消费者app(比如重打包的消费者app),能注册与消费者app相似的intent filter来获取服务厂商发送过来的access token等敏感信息。同时能够在它的权限之内读取本地的文件系统。
3)恶意消费者app:由于任意在服务厂商注册的应用都可以使用服务厂商的OAuth服务,我们默认所有的消费者app都是不可信的,OAuth设计的初衷也是不向消费者提供用户登录凭据。消费者app能够完全控制它的WebView,利用WebView来窃取敏感信息或修改授权页面欺骗用户授权等。
4)逆向攻击者:能够逆向app获取存储在app中的字符串如app secret等敏感信息。
5)恶意服务厂商app:服务厂商app充当用户代理时,负责接收和转发OAuth流程中的各种信息,包括用户名,密码,认证码,资源访问令牌等。恶意服务厂商app通常是来自不受信应用市场上的重打包app。
所述的威胁模型包括:
a、登录阶段:恶意消费者app获取用户登录凭据、恶意服务厂商app获取用户登录凭据、网络攻击者窃听用户登录凭据或其组合。
b、授权阶段:恶意消费者app修改授权接口、恶意第三方app从服务厂商app骗取OAuth认证凭据、针对redirect_uri参数的跨站请求伪造攻击、网络攻击者窃听认证码或者资源访问令牌、逆向攻击者获取消费者app的应用密码、恶意第三方app从Android手机本地文件系统中获取app的应用密码或OAuth凭据或其组合。
c、资源访问阶段:重放已授权资源访问请求、网络攻击者窃听消费者服务器认证用户身份的认证凭据或其组合。
步骤2、分析不同服务厂商提供的软件开发套件和规范,识别出不同厂商的OAuth实现中的敏感参数,提取敏感参数生成配置文件用于Android应用分析;
所述的敏感参数包括:用户名username、密码password、重定向网址redirect_uri、范围信息scope、状态信息state、授权码authorization code、授权类型grant_type、客户名client_id、客户密码client_secret、授权令牌access token。
所述的配置文件具体为:serviceprivider.conf
步骤3、静态代码分析,识别出当前分析得Android应用支持的OAuth服务提供商,OAuth协议实现类型,硬编码字符串等;
所述的识别具体是指:通过模式匹配找到服务厂商提供OAuth服务时所用的特定字符串、方法名称、活动名称等,来判断当前Android应用使用了哪些服务厂商的OAuth服务。
步骤4、动态流量分析,提取待测试的Android应用所使用的关键参数,与步骤2)中的配置文件匹配,检测应用实现与规范的不一致性;对网络通信进行各种SSL攻击测试,检测应用的SSL实现正确性;对包含关键参数的请求和响应进行修改和重放,检测应用服务器端的实现正确性。
所述的关键参数包括:重定向网址redirect_uri、范围信息scope、状态信息state、授权码authorization code、授权类型grant_type、客户名client_id、客户密码client_secret、授权令牌access token。
所述的SSL攻击测试包括:SSL证书替换攻击测试、SSL stripping攻击测试。
所述的修改是指:把某一关键参数的值修改为任意值,或替换成其他用户的请求中对应的值,同时保持其他参数值不变。
所述的重放是指:对包含认证码的请求进行重放,检验认证码是否仅能使用一次。
技术效果
与现有技术相比,本发明能够全面分析Android应用中OAuth协议的误用和潜在风险,基于一个覆盖OAuth协议生命周期的安全模型,系统化地对应用使用OAuth协议进行认证或授权的流程进行分析,识别潜在的不正确实现。现有的技术对OAuth误用的安全检测通常只涉及OAuth协议流程中的某个阶段,且大多关注OAuth协议在Web平台的实现,OAuth在Android平台的实现安全情况很少有人分析,本发明结合Android平台的特性,考虑了各种潜在的攻击者,建立了完整的覆盖OAuth协议流程3个阶段的安全模型,能够系统地检测不同参与者在不同阶段潜在的协议误用行为。此外,本方案的安全模型可以为服务厂商的SDK实现及应用开发者的OAuth实现提供安全指导,帮助开发者在Android应用正确实现OAuth协议。
附图说明
图1为OAuth协议中服务厂商应用作为用户代理时的分析模型图。
图2为Android平台OAuth协议误用安全检测框架示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图1所示,在Android平台中实现OAuth协议涉及5个参与者,消费者应用从服务厂商服务器获取授权凭据、资源访问令牌以及用户资源,并将用户资源返回到消费者服务器。我们的方案对于消费者应用中的OAuth实现,服务器厂商应用中的OAuth实现以及相关网络流量进行分析,全面安全检测OAuth授权或认证流程中的误用情况的潜在风险。
本实施例具体步骤如下:
1)全面分析主流OAuth服务厂商的OAuth SDK、规范、客户端,安全检测其OAuth实现与OAuth标准规范不一致性,提取实现OAuth协议的关键方法、活动以及重要参数,生成分析配置文件;
2)静态分析消费者应用,提取其支持的服务厂商,使用的用户代理类型,硬编码字符串,生成静态分析报告;
3)对消费者进行动态分析,拦截流量并进行转储,对通信进行各种已知SSL攻击,分析HTTPS保护措施部署情况;分析流量中的关键参数,与步骤1)中的配置文件对比,检验应用实现与服务厂商规范不一致性。
4)修改转储的流量中的关键参数,进行重放,分析服务器端的OAuth实现;分析结果结合1)得到服务厂商OAuth实现问题报告;
5)检验消费者应用中存储秘密信息文件的权限设置,分析结果结合2)3)4)的分析结果得到消费者应用误用报告;
如图2所示,为本实施例安全检测框架,步骤4)中的流量修改和重放包括发送给服务器厂商服务器的请求以及发送给消费者服务器的请求,分别用于检验服务厂商服务器对OAuth关键参数的校验情况以及消费者服务器认证用户身份的方法。
Claims (8)
1.一种Android平台OAuth协议误用安全检测方法,其特征在于,包括以下步骤:
步骤1、根据Android平台特性建立覆盖OAuth协议生命周期的安全模型;
步骤2、分析不同服务厂商提供的软件开发套件和规范,识别出不同厂商的OAuth实现中的关键敏感参数,提取敏感参数生成配置文件用于Android应用分析;
步骤3、静态代码分析,识别出它支持的OAuth服务提供商,OAuth协议实现类型,硬编码字符串;
步骤4、动态流量分析,提取应用所使用的关键参数,与步骤2)中的配置文件匹配,检测应用实现与规范的不一致性;对网络通信进行各种SSL攻击测试,检测应用的SSL实现正确性;对包含关键参数的请求和响应进行修改和重放,检测应用服务器端的实现正确性。
2.根据权利要求1所述的方法,其特征是,所述的安全模型包括:攻击假设、攻击者类型、威胁模型,其中:
攻击者类型包括:网络攻击者、恶意第三方app、恶意消费者app、逆向攻击者、恶意服务厂商app或其组合;
威胁模型包括:
a、登录阶段:恶意消费者app获取用户登录凭据、恶意服务厂商app获取用户登录凭据、网络攻击者窃听用户登录凭据或其组合;
b、授权阶段:恶意消费者app修改授权接口、恶意第三方app从服务厂商app骗取OAuth认证凭据、针对redirect_uri参数的跨站请求伪造攻击、网络攻击者窃听认证码或者资源访问令牌、逆向攻击者获取消费者app的应用密码、恶意第三方app从Android手机本地文件系统中获取app的应用密码或OAuth凭据或其组合;
c、资源访问阶段:重放已授权资源访问请求、网络攻击者窃听消费者服务器认证用户身份的认证凭据或其组合。
3.根据权利要求1所述的方法,其特征是,所述的敏感参数包括:用户名username、密码password、重定向网址redirect_uri、范围信息scope、状态信息state、授权码authorizationcode、授权类型grant_type、客户名client_id、客户密码client_secret、授权令牌access token。
4.根据权利要求1所述的方法,其特征是,所述的识别具体是指:通过模式匹配找到服务厂商提供OAuth服务时所用的特定字符串、方法名称、活动名称,来判断当前Android应用使用了哪些服务厂商的OAuth服务。
5.根据权利要求1所述的方法,其特征是,所述的关键参数包括:重定向网址redirect_uri、范围信息scope、状态信息state、授权码authorization code、授权类型grant_type、客户名client_id、客户密码client_secret、授权令牌access token。
6.根据权利要求1所述的方法,其特征是,所述的SSL攻击测试包括:SSL证书替换攻击测试、SSL stripping攻击测试。
7.根据权利要求1所述的方法,其特征是,所述的修改是指:把某一关键参数的值修改为任意值,或替换成其他用户的请求中对应的值,同时保持其他参数值不变。
8.根据权利要求1所述的方法,其特征是,所述的重放是指:对包含认证码的请求进行重放,检验认证码是否仅能使用一次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510235772.8A CN104837159B (zh) | 2015-05-11 | 2015-05-11 | Android平台OAuth协议误用安全检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510235772.8A CN104837159B (zh) | 2015-05-11 | 2015-05-11 | Android平台OAuth协议误用安全检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104837159A true CN104837159A (zh) | 2015-08-12 |
CN104837159B CN104837159B (zh) | 2018-01-30 |
Family
ID=53814737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510235772.8A Expired - Fee Related CN104837159B (zh) | 2015-05-11 | 2015-05-11 | Android平台OAuth协议误用安全检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104837159B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603519A (zh) * | 2016-12-07 | 2017-04-26 | 中国科学院信息工程研究所 | 一种基于证书特征泛化和服务器变迁行为的ssl/tls加密恶意服务发现方法 |
CN108347471A (zh) * | 2018-01-02 | 2018-07-31 | 武汉斗鱼网络科技有限公司 | 获取第三方用户信息的方法、装置及系统 |
CN111949958A (zh) * | 2020-08-14 | 2020-11-17 | 中国工商银行股份有限公司 | Oauth协议中的授权认证方法及装置 |
CN113806715A (zh) * | 2020-06-16 | 2021-12-17 | 上海交通大学 | 嵌入式设备sdk安全性分析方法 |
CN114500089A (zh) * | 2022-02-24 | 2022-05-13 | 特赞(上海)信息科技有限公司 | 基于OAuth2.0协议的授权登录方法、系统及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106372A (zh) * | 2013-01-17 | 2013-05-15 | 上海交通大学 | 用于Android系统的轻量级隐私数据加密方法及系统 |
US20140281507A1 (en) * | 2013-03-15 | 2014-09-18 | Barnesandnoble.Com Llc | Techniques for detecting incorrect wep key for open authentication |
CN104091121A (zh) * | 2014-06-12 | 2014-10-08 | 上海交通大学 | 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法 |
-
2015
- 2015-05-11 CN CN201510235772.8A patent/CN104837159B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106372A (zh) * | 2013-01-17 | 2013-05-15 | 上海交通大学 | 用于Android系统的轻量级隐私数据加密方法及系统 |
US20140281507A1 (en) * | 2013-03-15 | 2014-09-18 | Barnesandnoble.Com Llc | Techniques for detecting incorrect wep key for open authentication |
CN104091121A (zh) * | 2014-06-12 | 2014-10-08 | 上海交通大学 | 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603519A (zh) * | 2016-12-07 | 2017-04-26 | 中国科学院信息工程研究所 | 一种基于证书特征泛化和服务器变迁行为的ssl/tls加密恶意服务发现方法 |
CN106603519B (zh) * | 2016-12-07 | 2019-12-10 | 中国科学院信息工程研究所 | 一种基于证书特征泛化和服务器变迁行为的ssl/tls加密恶意服务发现方法 |
CN108347471A (zh) * | 2018-01-02 | 2018-07-31 | 武汉斗鱼网络科技有限公司 | 获取第三方用户信息的方法、装置及系统 |
CN113806715A (zh) * | 2020-06-16 | 2021-12-17 | 上海交通大学 | 嵌入式设备sdk安全性分析方法 |
CN113806715B (zh) * | 2020-06-16 | 2024-04-05 | 上海交通大学 | 嵌入式设备sdk安全性分析方法及系统 |
CN111949958A (zh) * | 2020-08-14 | 2020-11-17 | 中国工商银行股份有限公司 | Oauth协议中的授权认证方法及装置 |
CN111949958B (zh) * | 2020-08-14 | 2023-08-18 | 中国工商银行股份有限公司 | Oauth协议中的授权认证方法及装置 |
CN114500089A (zh) * | 2022-02-24 | 2022-05-13 | 特赞(上海)信息科技有限公司 | 基于OAuth2.0协议的授权登录方法、系统及电子设备 |
CN114500089B (zh) * | 2022-02-24 | 2024-02-09 | 特赞(上海)信息科技有限公司 | 基于OAuth2.0协议的授权登录方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104837159B (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10554420B2 (en) | Wireless connections to a wireless access point | |
CN108684041B (zh) | 登录认证的系统和方法 | |
US20180285552A1 (en) | System and method for integrating two-factor authentication in a device | |
US8214890B2 (en) | Login authentication using a trusted device | |
US9628282B2 (en) | Universal anonymous cross-site authentication | |
CN114598540B (zh) | 访问控制系统、方法、装置及存储介质 | |
CN104837159B (zh) | Android平台OAuth协议误用安全检测方法 | |
US11838421B2 (en) | Systems and methods for enhanced mobile device authentication | |
KR20150051652A (ko) | 보안 로그인 시스템, 방법 및 장치 | |
WO2018141219A1 (zh) | 认证服务器、认证系统及方法 | |
CN109697163B (zh) | 程序测试方法及设备 | |
Lee et al. | A user-friendly authentication solution using NFC card emulation on android | |
CN110166471A (zh) | 一种Portal认证方法及装置 | |
CN109495458A (zh) | 一种数据传输的方法、系统及相关组件 | |
US10454929B2 (en) | Authenticating for an enterprise service | |
Granata et al. | Security in IoT Pairing & Authentication protocols, a Threat Model, a Case Study Analysis. | |
CN112398787B (zh) | 邮箱登录验证的方法、装置、计算机设备及存储介质 | |
EP2985712A1 (en) | Application encryption processing method, apparatus, and terminal | |
CN104994503B (zh) | 一种移动应用访问方法 | |
CN113992353A (zh) | 登录凭证的处理方法、装置、电子设备及存储介质 | |
CN108574657B (zh) | 接入服务器的方法、装置、系统以及计算设备和服务器 | |
Makowski et al. | Evaluation of Real-World Risk-Based Authentication at Online Services Revisited: Complexity Wins | |
KR20130024934A (ko) | 스마트폰에서 음성정보를 이용한 일회용 패스워드 기반 사용자 인증 방법 | |
CN114944946B (zh) | 系统登录方法 | |
Hsu et al. | Preventing misuse of duplicate certificates in IoT/M2M systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180130 |
|
CF01 | Termination of patent right due to non-payment of annual fee |