CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>CWE列表> cwe-单个字典定义(4.10)
ID

CWE-926:不当出口Android应用程序组件

弱点ID:926
抽象:变体
结构:简单的
查看自定义信息:
+描述
Android应用程序导出了其他应用程序使用的组件,但不能正确限制哪些应用程序可以启动组件或访问其包含的数据。
+扩展描述

不当导出组件的攻击和后果可能取决于导出的组件:

  • 如果不限制对出口活动的访问,则任何应用程序都可以启动该活动。这可能允许恶意应用程序访问敏感信息,修改应用程序的内部状态,或欺骗用户与受害者应用程序进行交互,同时认为他们仍在与恶意应用程序进行交互。
  • 如果不限制对出口服务的访问,则任何应用程序都可以启动并绑定到服务。根据裸露的功能,这可能会允许恶意应用程序执行未经授权的操作,访问敏感信息或破坏应用程序的内部状态。
  • 如果对内容提供商的访问不限仅限于预期的应用程序,则恶意应用程序可能能够访问敏感数据。请注意,在4.2之前的Android中,内容提供商将自动导出,除非已明确声明为未导出。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 285 授权不当
+背景详细信息

在Android应用程序中可以导出三种类型的组件。

  • 活动是一个应用程序组件,为用户提供了UI。典型应用程序将具有多个活动屏幕,这些屏幕执行不同的功能,例如主活动屏幕和单独的设置活动屏幕。
  • 服务是由另一个组件启动的应用程序组件,即使在调用组件终止后,也可以在后台执行操作。服务没有用户可见的UI组件。
  • 内容提供商机制可用于与其他应用程序共享数据或在同一应用程序内进行内部。
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

班级:不是特定语言的(不确定的患病率)

技术

课程:移动设备(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
可用性
正直

技术影响:意外状态;DOS:撞车,退出或重新启动;DOS:不稳定;随上下文而变化

其他可能不受信任的应用程序可以启动活动。
可用性
正直

技术影响:意外状态;获得特权或假定身份;DOS:撞车,退出或重新启动;DOS:不稳定;随上下文而变化

其他可能不受信任的应用程序可以与服务结合。
保密
正直

技术影响:阅读应用程序数据;修改应用程序数据

其他可能不信任的应用程序可以读取或修改内容提供商提供的数据。
+示例的例子

示例1

此应用程序正在其estest.xml中导出活动和服务:

(不良代码)
示例语言:XML
<活动android:name =“ com.example.vulnerableapp.mainscreen”>

...

<类别android:name =“ android.intent.category.default” />

...

<服务android:name =“ com.example.vulnerableapp.backgroundservice”>

...

...

由于这些组件具有意图过滤器,但尚未明确设置'android:导出= false = false'在清单中的其他位置,因此它们会自动导出,因此任何其他应用程序都可以启动它们。这可能会导致意外行为或利用。

示例2

本应用程序创建了一个内容提供商,以在应用程序中启用自定义搜索建议:

(不良代码)
示例语言:XML
<提供者>
android:name =“ com.example.vulnerableapp.searchdb”
android:当局=“ com.example.vulnerableapp.searchdb”>

由于此内容提供商仅用于在应用程序中使用,因此不需要导出。但是,在4.2之前的Android中,它会自动导出,从而有可能允许恶意应用程序访问敏感信息。

+潜在的缓解

阶段:构建和编译

策略:减少攻击表面

如果它们不需要由其他应用程序共享,请在应用程序清单中明确标记Android:enfored =“ false”的组件。

阶段:构建和编译

策略:减少攻击表面

如果您只打算在控制下的相关应用程序之间使用导出的组件,请使用android:protectionLevel = XML清单中的“签名”以限制您签署的应用程序的访问。

阶段:构建和汇编;建筑和设计

策略:减少攻击表面

限制内容提供商权限(读/写)。

阶段:构建和汇编;建筑和设计

策略:特权分离

限制内容提供商权限(读/写)。
+参考
[Ref-923] Android开源项目。“安全提示”。2013-07-16。<http://developer.android.com/training/articles/security-tips.html#contentproviders>。
+内容历史记录
+提交
提交日期 提交者 组织
2013-07-02 CWE内容团队 MITER
+修改
修改日期 修饰符 组织
2014-01-22 CWE内容团队 MITER
扩展的条目更加通用,并包括所有可能被不当导出的Android组件。
2014-02-18 CWE内容团队 MITER
更新后台_DETAILS,common_consequences,expdiveative_examples,Description,Maintenance_notes,name,entife_mitigations,参考
2017-11-08 CWE内容团队 MITER
更新的引用
2020-02-24 CWE内容团队 MITER
更新了适用的_platforms,关系
2022-10-13 CWE内容团队 MITER
更新后台_DETAILS
+先前的输入名称
改变日期 先前的输入名称
2014-02-18 内容提供商导出到其他应用程序的不当限制
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日