CN114218099A - Android应用会话标识符管理不当缺陷分析和检测方法 - Google Patents

Android应用会话标识符管理不当缺陷分析和检测方法 Download PDF

Info

Publication number
CN114218099A
CN114218099A CN202111529374.9A CN202111529374A CN114218099A CN 114218099 A CN114218099 A CN 114218099A CN 202111529374 A CN202111529374 A CN 202111529374A CN 114218099 A CN114218099 A CN 114218099A
Authority
CN
China
Prior art keywords
session identifier
file
defect
android application
session
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
CN202111529374.9A
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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN202111529374.9A priority Critical patent/CN114218099A/zh
Publication of CN114218099A publication Critical patent/CN114218099A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种Android应用会话标识符管理缺陷的分析和检测方法,该方法以Android应用APK文件作为输入,以检测出的会话标识符管理缺陷作为输出,步骤包括:首先,归纳并定义了五类会话标识符管理反模式,并提出了每类反模式对应的数据流检测方法;然后,用Soot工具将待测Android应用的安装包内的.dex文件转换为jimple文件;基于FlowDroid提供的污点分析以及其他数据流分析方法分析jimple文件中会话标识符的各项管理内容,检测应用中是否存在上述对应缺陷。本发明提出的方法具有有效、高效的优点,能全面、自动地检测Android应用会话标识符管理缺陷。

Description

Android应用会话标识符管理不当缺陷分析和检测方法
技术领域
本发明属于程序静态分析与软件缺陷检测领域,具体涉及一种Android应用会话标识符管理缺陷的分析和检测方法。
背景技术
如今,随着移动设备的飞速发展,在其操作系统上运行的各种类别的移动应用为人们的工作和生活都提供了极大的便利。其中,Android系统因为其开放灵活、性能优良等特性,近年来占据了大量的市场。但与此同时,由于Android系统的开放性、功能复杂性以及部分开发人员不规范的开发实践,使得其上运行的应用容易面临黑客攻击的风险。
为了更好地模块化管理部署,越来越多的Android应用采用了C/S(客户端-服务端)架构,由客户端专注于用户界面逻辑的同时由服务端存放大量的用户数据和资源。在这两端之间的网络通信通常基于HTTP/HTTPS协议,客户端构建并发送HTTP/HTTPS请求报文而后接收并处理从服务端发送回的HTTP/HTTPS响应报文。例如,Android客户端可利用基于HTTP协议的RESTful API调用与不同的服务端建立高性能的交互[2]。为了弥补HTTP/HTTPS协议的无状态性和传统验证方式需重复提交用户凭证信息的不足,会话标识符(sessionidentifier或称session token)应运而生。
会话标识符是一个唯一的、复杂的、有时效性的字符串,通常被添加至HTTP请求的头字段中标记用户身份,从而维持一段较长时间的会话。它的主要应用场景为以下三种:用于启用状态会话管理时,常被称为“session id”;用于启用无状态会话管理时,常被称为“token”;用于OAuth协议认证/验证流,常被成为“access token”。虽然在不同的具体场景中会话标识符的名称和用法稍有差异,但作为敏感信息的管理规范却存在着共性。
由于会话标识符是在用户初次提交用户名密码等凭证,由服务端验证之后为每一个用户账户生成的身份令牌,因此需要对其进行谨慎地管理从而提高应用的安全性。然而,经调查发现,有许多的Android应用以不安全的方式管理着会话标识符,这有可能会导致逻辑冲突甚至账户攻击(例如,会话劫持)破坏应用和账户的正确性和安全性。
在之前的研究工作中,多数关注于检测Web应用程序中会话管理相关的漏洞。在对于移动应用方向,也大多旨在检测OAuth协议在应用中实现的安全缺陷,并且多采用动态分析的方式通过捕获网络通信中的数据包进行人工检测,而对于Android应用中涵盖了上述三种使用场景的会话标识符管理缺陷很少有针对性的更全面的工作。另外,越来越多的应用为了自主权实现了自建的后端服务器,但是客户端与自身服务端之间的自定义通信没有很好地遵循安全开发指导或理解偏差,这使得会话标识符管理不当的问题越来越严重。
发明内容
本发明的目的在于提供一种Android应用会话标识符管理不当缺陷分析和检测方法,包括反模式定义和静态分析,用于有效、高效地检测应用程序中五类会话标识符管理不当缺陷。
实现本发明目的的技术解决方案为:一种Android应用会话标识符管理缺陷的自动化测试方法,以Android应用的APK文件作为输入,以检测出的会话标识符管理缺陷类别以及详细信息作为输出结果,具体步骤如下:
步骤1,基于Soot工具将APK文件反编译得到其中间代码jimple形式,而后基于jimple文件分析该Android应用是否采用了网络通信;若使用了网络通信,则进入步骤2;否则结束分析;
步骤2,对待测Android应用进行网络通信请求头的匹配,得到该Android应用的添加HTTP/HTTPS请求头Authorization字段的使用语句集合以及对应的会话标识符;
步骤3,利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例;若存在,得到对应缺陷信息。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的Android应用会话标识符管理缺陷的分析和检测方法。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的Android应用会话标识符管理缺陷的分析和检测方法。
本发明与现有技术相比,其显著优点有:(1)针对新问题,目前尚无工作集合有状态会话管理、无状态会话管理和OAuth协议实现中的会话标识符管理缺陷提出相关检测方法,与单方面工作覆盖场景更广;(2)本发明所述方法是全自动的,无需运行app,比人工截取网络数据包检测漏洞效率有较大优势;(3)本发明是基于静态分析的,比动态分析的代码覆盖率有较大优势。
附图说明
图1是本发明提供的Android应用会话标识符管理不当缺陷工具概览图。
图2是客户端生成会话标识符缺陷的实例。
图3是未加密保存会话标识符缺陷的实例。
图4是泄露会话标识符至日志文件缺陷的实例。
图5是泄露会话标识符至外部域缺陷的实例。
图6是未正确失效会话标识符缺陷的实例。
图7是定位会话标识符时涵盖的设置HTTP头字段的方法签名。
图8是控制台输出的缺陷示例和修复建议。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明提出一种Android应用会话标识符管理缺陷的自动化测试方法,以Android应用的APK文件作为输入,以检测出的会话标识符管理缺陷类别以及详细信息作为输出结果,具体步骤如下:
步骤1,基于Soot工具将APK文件反编译得到其中间代码jimple形式,而后基于jimple文件分析该Android应用是否采用了网络通信。若使用了网络通信,则进入步骤2;否则结束分析;
步骤2,对待测Android应用进行网络通信请求头的匹配,得到该Android应用的添加HTTP/HTTPS请求头Authorization字段的使用语句集合以及对应的会话标识符;
步骤3,利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例。若存在,得到对应缺陷信息。
作为一种具体示例,如步骤1中所述,基于Soot工具将APK文件反编译得到其中间代码jimple形式,而后基于jimple文件分析该Android应用是否使用了网络通信,具体步骤如下:
步骤1-1,使用Soot工具来解析APK文件,将其中的.dex文件反编译得到应用的jimple中间形式代码;
步骤1-2,遍历所有jimple文件,搜索是否存在实现网络通信相关API。若存在,则该Android应用实现了网络通信,继续进行步骤2。
作为一种具体示例,如步骤2所述,基于jimple文件分析该Android应用是否使用了会话管理来实现HTTP/HTTPS通信的身份验证功能,并定位会话标识符变量的相关信息,具体步骤如下:
步骤2-1,收集原生和市面上流行的第三方网络库(本发明考虑的网络框架有Apache Auth、Async HttpClient、OkHttp、Retrofit和Volley)中添加HTTP头字段域值的方法签名,保存至头字段设置API对应方法签名集合中;
步骤2-2,遍历所有的jimple文件,搜索步骤1得到的头字段设置API方法签名集合所对应的全部调用语句。对于每一处调用筛选是否对应的是添加认证字段,如果是,则其中对应位置的参数即会话标识符变量,将其对应的所在方法、所在语句以及变量作为信息三元组,保存至会话标识符信息集合中。
作为一种具体示例,步骤3中所述利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例,具体步骤如下:
步骤3.1,定义Android应用中会话标识符管理反模式;
将Android应用中的会话标识符管理流程分为4个状态,分别是生成会话标识符、保存会话标识符、使用会话标识符和失效会话标识符;
结合OWASP(Open Web Application Security Project)组织提出的安全规范和已披露的漏洞报告,定义了五种会话标识符管理不当反模式(缺陷样式):
客户端生成会话标识符:指原本应由服务端利用复杂加密算法得到的会话标识符,却由客户端使用固定字符串或某些设备号与服务端约定作为验证身份的标识。这样不合规的会话标识符容易收到猜测攻击。
未加密存储会话标识符:指客户端从服务端接收得到原始会话标识符之后,以明文的形式保存在本地文件中。若文件受到恶意软件攻击,则会话标识符易被劫持;
会话标识符泄露至日志文件:指应用中的日志打印语句将会话标识符变量作为参数输出。在Root设备或模拟器中运行应用时易将会话标识符泄露;
会话标识符泄露至外部域:指会话标识符被添加至外送到外部域(第三方服务器)的HTTP(S)的网络请求中。若外部域为攻击者持有,则会话标识符被泄露;
会话标识符不当过期:这类反模式是指当用户登出时,客户端和服务端存储的会话标识符没有被正确删除或失效。这样在作用期外仍有效的会话标识符增加了被攻击的可能性;
步骤3.2,根据反模式定义,创建反模式分析检测器:
(1)使用工具FlowDroid构建Android应用的函数调用图;
(2)对五类反模式的检测方法:
客户端生成会话标识符:只存在于自定义验证机制中,由步骤2得到的会话标识符信息集合基于函数调用图进行反向数据流分析,得到会话标识符初始赋值语句。若赋值语句右侧为常量字符串或静态生成字符串的工具类方法(如UUID.randomUUID().toString()),而不是从服务端发送回的响应类response体内获得,则存在该类缺陷;
未加密存储会话标识符:将步骤2得到的会话标识符信息集合中的会话标识符变量设为source,把实现写入文件功能的方法签名(如SharedPreference$Editor.putString())设为sink,使用会话标识符泄露至外部域FlowDroid污点分析工具分析在source和sink之间是否有连通的数据流传递,如果有,则存在未加密保存会话标识符的缺陷;
会话标识符泄露至日志文件:将步骤2得到的会话标识符信息集合中的会话标识符变量设为source,把LOG日志输出方法(如Log.d())设为sink,使用FlowDroid污点分析工具分析在source和sink之间是否有连通的数据流传递,如果有,则存在泄露会话标识符至日志文件的缺陷;
会话标识符泄露至外部域:根据采用的原生或第三方网络库的特性,定位到添加了会话标识符作为请求头字段的网络请求发送的URL字符串(如Request$Builder.url(String str)),若该URL是属于外部域,则存在泄露会话标识符至外部域的缺陷。另外地,对于隐式URL,检查其他框架(本发明考虑Glide和Picasso框架)将OkHttp(一个常用的网络第三方库)集成为它们的网络堆栈的情况。如果没有条件语句来过滤动态URL的所属域,则同样存在会话标识符至外部域的缺陷;
会话标识符不当过期:遍历会话标识符保存的静态变量,如果存在一个变量没有将其赋值为NULL的语句,则存在该类缺陷。定位会话标识符赋值为NULL的方法,基于函数调用图回溯到UI点击方法,即用户登出事件监听方法,判断在步骤2中写入的文件是否进行删除操作,如果没有,则同样存在会话标识符不当过期的缺陷。
步骤3.3,输出应用缺陷类别、相关信息和对应修复建议:
运行该工具后,对该会话标识符一系列管理流程做相应的反模式检测,若存在,则控制台输出对应的漏洞类别和具体信息。对检测应用存在的缺陷实例,对应地提供针对性的修复意见,提高应用安全性,具体如下:
若应用客户端生成会话标识符,则提示修改验证模型;若应用未加密保存会话标识符,则提示需进行加密的变量;若应用泄露会话标识符至日志文件,则提示需删除的打印语句位置信息;若应用泄露会话标识符至外部域,则提示外部域具体URL值;若应用中会话标识符不当过期,则提示需要设为NULL的变量名或需要删除的文件名。
下面结合实施例对本发明进行详细说明。
实施例
本发明为一种Android应用会话标识符管理缺陷的自动化测试方法。通过对Android应用进行检测,生成该应用中会话标识符管理缺陷的检测结果,具体工作的构成如图1所示。首先,对于一个具体的待测试APK文件将其转换为jimple文件后,分析该应用是否使用了网络通信。若采用,则进行下一步,否则结束分析;然后,搜索jimple文件,得到会话标识符使用信息集合;最后,对得到的会话标识符使用信息集合进行静态数据流分析,得出检测结果。
本实施中,该方法包括以下步骤:
步骤1,对于一个待测的Android应用,分析其是否采用了网络通信,具体步骤如下:
步骤1-1,使用Soot将Android应用的安装包文件转换为jimple文件;
步骤1-2,遍历jimple文件,搜索是否存在网络通信相关API的调用语句,即调用了如HttpUrlConnection类、okhttp包、volley包等的相关API。如图2所示,第15行调用了okhttp的Request类,则该应用使用了网络通信功能,继续后续步骤,否则结束分析。
步骤2,对待测Android应用进行网络通信请求头的匹配,得到该Android应用的添加HTTP/HTTPS请求头Authorization字段的使用语句集合以及对应的会话标识符,具体如下:
步骤2-1,收集原生和市面上流行的第三方网络库中添加HTTP头字段域值的方法签名,保存至头字段设置API对应方法签名集合中,如图7所示;
步骤2-2,遍历所有的jimple文件,搜索步骤1得到的头字段设置API方法签名集合所对应的全部调用语句。对于每一处调用筛选是否对应的是添加认证字段,如果是,则其中对应位置的参数即会话标识符变量,将其对应的所在方法、所在语句以及变量作为信息三元组,保存至会话标识符信息集合中。如图2所示,第16行调用了Resquest$Builder.addHeader()方法且其第一个参数“Authorization”表明添加的是认证字段,则该方法的第二个参数变量记为会话标识符变量。
步骤3,利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例,给出检测结果,具体如下:
步骤3-1,使用工具FlowDroid构建Android应用的函数调用图;
步骤3-2,根据反模式的定义,对每类反模式进行检测,示例如下:
(1)客户端生成会话标识符:如图2所示。通过反向数据流分析,得到会话标识符变量的赋值处,如第11行所示,会话标识符值为常量“sms”和UUID.randomUUID().toString()生成的字符串结合而成,而非由服务端通过加密算法返回至客户端得到,因此这属于该类缺陷。
(2)未加密存储会话标识符:如图3所示,第3行的“aToken”被定义为污点分析中的source,第6行的SharedPreferences$Editor.putString()方法被定义为污点分析中的sink,这之间存在数据流传递,因此属于该类缺陷。
(3)会话标识符泄露至日志文件:如图4所示,第3行的getLocalToken()被定义为污点分析中的source,第6行的Log.d()方法被定义为污点分析中的sink,这之间存在数据流传递,因此属于该类缺陷。
(4)会话标识符泄露至外部域:如图5所示,第2行将处理添加会话标识符的拦截器设置为OkHttpClient对象的拦截器,且在第4行该对象被设为Picasso图片加载框架的网络请求栈对象,即所有用该对象经手的图片获取请求均经过添加会话标识符,若加载的图片URL为攻击者操控的外部域,则存在泄露威胁。
(5)会话标识符不当过期:如图6所示,第4行SharedPreferences$Editor类将会话标识符保存至SharedPreferences文件后,在用户触发登出事件之后,未在监听方法内部即onClick()方法内部进行相关的删除操作,因此属于该类缺陷。
步骤3-3,如图8所示的是控制台输出该检测应用存在的缺陷类别未加密存储会话标识符和会话标识符泄露至日志文件,同时也提出了修复意见,即加密提醒和需删除的日志打印语句位置信息。
综上可知,本发明能够有效地检测出Android应用是否存在会话标识符管理缺陷。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,以Android应用的APK文件作为输入,以检测出的会话标识符管理缺陷类别以及详细信息作为输出结果,具体步骤如下:
步骤1,基于Soot工具将APK文件反编译得到其中间代码jimple形式,而后基于jimple文件分析该Android应用是否采用了网络通信;若使用了网络通信,则进入步骤2;否则结束分析;
步骤2,对待测Android应用进行网络通信请求头的匹配,得到该Android应用的添加HTTP/HTTPS请求头Authorization字段的使用语句集合以及对应的会话标识符;
步骤3,利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例;若存在,得到对应缺陷信息。
2.根据权利要求1所述的Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,步骤1中所述的基于Soot工具将APK文件反编译得到其中间代码jimple形式,而后基于jimple文件分析该Android应用是否使用了网络通信,具体步骤如下:
步骤1-1,使用Soot工具来解析APK文件,将其中的.dex文件反编译得到应用的jimple中间形式代码;
步骤1-2,遍历所有jimple文件,搜索是否存在网络通信相关API,则该Android应用采用了网络通信,继续进行步骤2;否则结束分析。
3.根据权利要求1所述的Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,步骤2所述的基于jimple文件分析该Android应用是否使用了会话管理来实现HTTP/HTTPS通信的身份验证功能,并定位会话标识符变量的相关信息,具体步骤如下:
步骤2-1,收集原生和第三方网络库中添加HTTP头字段域值的方法签名,保存至头字段设置API对应方法签名集合中;
步骤2-2,遍历所有的jimple文件,搜索步骤1得到的头字段设置API方法签名集合所对应的全部调用语句;对于每一处调用筛选是否对应的是添加认证字段,如果是,则其中对应位置的参数即会话标识符变量,将其对应的所在方法、所在语句以及变量作为信息三元组,保存至会话标识符信息集合中;如果不存在,则结束分析。
4.根据权利要求3所述的Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,步骤2-1,第三方网络库包括Apache Auth、Async HttpClient、OkHttp、Retrofit和Volley。
5.根据权利要求1所述的Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,步骤3中所述,利用反模式分析检测器对步骤2得到的会话标识符使用语句集合检测在生成、保存、使用和失效这些会话标识符管理流程中是否存在反模式对应的缺陷实例,具体步骤如下:
步骤3.1,定义Android应用中会话标识符管理反模式;
将Android应用中的会话标识符管理流程分为4个状态,分别是生成会话标识符、保存会话标识符、使用会话标识符和失效会话标识符;
结合OWASP组织提出的安全规范和已披露的漏洞报告,定义了五种会话标识符管理不当反模式:
客户端生成会话标识符:指原本应由服务端利用复杂加密算法得到的会话标识符,却由客户端使用固定字符串或某些设备号与服务端约定作为验证身份的标识;
未加密存储会话标识符:指客户端从服务端接收得到原始会话标识符之后,以明文的形式保存在本地文件中;
会话标识符泄露至日志文件:指应用中的日志打印语句将会话标识符变量作为参数输出;
会话标识符泄露至外部域:指会话标识符被添加至外送到外部域的HTTP(S)的网络请求中;若外部域为攻击者持有,则会话标识符被泄露;
会话标识符不当过期:这类反模式是指当用户登出时,客户端和服务端存储的会话标识符没有被正确删除或失效;
步骤3.2,根据反模式定义,创建反模式分析检测器:
(1)使用工具FlowDroid构建Android应用的函数调用图;
(2)对五类反模式的检测方法:
客户端生成会话标识符:只存在于自定义验证机制中,由步骤2得到的会话标识符信息集合基于函数调用图进行反向数据流分析,得到会话标识符初始赋值语句;若赋值语句右侧为常量字符串或静态生成字符串的工具类方法,而不是从服务端发送回的响应类response体内获得,则存在该类缺陷;
未加密存储会话标识符:将步骤2得到的会话标识符信息集合中的会话标识符变量设为source,把实现写入文件功能的方法签名设为sink,使用FlowDroid污点分析工具分析在source和sink之间是否有连通的数据流传递,如果有,则存在未加密保存会话标识符的缺陷;
会话标识符泄露至日志文件:将步骤2得到的会话标识符信息集合中的会话标识符变量设为source,把LOG日志输出方法设为sink,使用FlowDroid污点分析工具分析在source和sink之间是否有连通的数据流传递,如果有,则存在泄露会话标识符至日志文件的缺陷;
会话标识符泄露至外部域:根据采用的原生或网络第三方库的特性,定位到添加了会话标识符作为请求头字段的网络请求发送的URL字符串,若该URL是属于外部域,则存在泄露会话标识符至外部域的缺陷;对于隐式URL,检查其他框架将OkHttp集成为它们的网络堆栈的情况;如果没有条件语句来过滤动态URL的所属域,则同样存在会话标识符至外部域的缺陷;
会话标识符不当过期:遍历会话标识符保存的静态变量,如果存在一个变量没有将其赋值为NULL的语句,则存在该类缺陷;定位会话标识符赋值为NULL的方法,基于函数调用图回溯到UI点击方法,即用户登出事件监听方法,判断在步骤2中写入的文件是否进行删除操作,如果没有,则同样存在会话标识符不当过期的缺陷;
步骤3.3,输出应用缺陷类别、相关信息和对应修复建议:
运行该工具后,对该会话标识符一系列管理流程做相应的反模式检测,若存在,则控制台输出对应的漏洞类别和具体信息;对检测应用存在的缺陷实例,对应地提供针对性的修复意见。
6.根据权利要求5所述的Android应用会话标识符管理缺陷的分析和检测方法,其特征在于,对检测应用存在的缺陷实例,对应地提供针对性的修复意见,具体如下:
若应用客户端生成会话标识符,则提示修改验证模型;若应用未加密保存会话标识符,则提示需进行加密的变量;若应用泄露会话标识符至日志文件,则提示需删除的打印语句位置信息;若应用泄露会话标识符至外部域,则提示外部域具体URL值;若应用中会话标识符不当过期,则提示需要设为NULL的变量名或需要删除的文件名。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的Android应用会话标识符管理缺陷的分析和检测方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的Android应用会话标识符管理缺陷的分析和检测方法。
CN202111529374.9A 2021-12-14 2021-12-14 Android应用会话标识符管理不当缺陷分析和检测方法 Pending CN114218099A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111529374.9A CN114218099A (zh) 2021-12-14 2021-12-14 Android应用会话标识符管理不当缺陷分析和检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111529374.9A CN114218099A (zh) 2021-12-14 2021-12-14 Android应用会话标识符管理不当缺陷分析和检测方法

Publications (1)

Publication Number Publication Date
CN114218099A true CN114218099A (zh) 2022-03-22

Family

ID=80702055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111529374.9A Pending CN114218099A (zh) 2021-12-14 2021-12-14 Android应用会话标识符管理不当缺陷分析和检测方法

Country Status (1)

Country Link
CN (1) CN114218099A (zh)

Similar Documents

Publication Publication Date Title
KR101947760B1 (ko) 스마트콘트랙트의 보안 인증 서버
He et al. Vetting SSL usage in applications with SSLINT
Wei et al. Preventing SQL injection attacks in stored procedures
US8458798B2 (en) Detection of vulnerabilities in computer systems
Mendoza et al. Mobile application web api reconnaissance: Web-to-mobile inconsistencies & vulnerabilities
US10771500B2 (en) System and method of determining DDOS attacks
US20160306980A1 (en) System and method for creating and executing breach scenarios utilizing virtualized elements
US10867050B2 (en) Method and apparatus for generating dynamic security module
US11108803B2 (en) Determining security vulnerabilities in application programming interfaces
Garcia et al. Automatic generation of inter-component communication exploits for android applications
CN109361685A (zh) 一种防止恶意请求的方法及装置
CN111131303A (zh) 一种请求数据的校验系统和方法
Demissie et al. Identifying android inter app communication vulnerabilities using static and dynamic analysis
Liu et al. Iotverif: Automatic verification of SSL/TLS certificate for IoT applications
Huang et al. Fuzzing the android applications with http/https network data
Wang et al. One Size Does Not Fit All: Uncovering and Exploiting Cross Platform Discrepant {APIs} in {WeChat}
Sharif et al. Best current practices for OAuth/OIDC Native Apps: A study of their adoption in popular providers and top-ranked Android clients
Rahat et al. Cerberus: Query-driven scalable vulnerability detection in oauth service provider implementations
Wang et al. Dcdroid: Automated detection of ssl/tls certificate verification vulnerabilities in android apps
Akon et al. Formal Analysis of Access Control Mechanism of 5G Core Network
Li et al. MiniTracker: Large-Scale Sensitive Information Tracking in Mini Apps
CN114218099A (zh) Android应用会话标识符管理不当缺陷分析和检测方法
Yang et al. An analysis on sensitive data passive leakage in Android applications
KR102143511B1 (ko) 스마트 거래의 보안 안정성 관리 서버
Kilaru Improving techniques for SQL injection defenses

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