Android API/开发安全陷阱

信息安全 移动的 安卓
2021-08-28 23:23:43

Android 应用程序开发人员需要了解的最重要的安全问题是什么?他们需要注意的最大陷阱或漏洞类型是什么?请每个答案一个安全问题。我对实现级问题、软件缺陷等特别感兴趣。

编辑:我最感兴趣的是实现级别的故障(而不是概念/架构/设计缺陷),以及特定于 Android 应用程序的缺陷(而不是适用于所有应用程序软件或所有联网客户端软件的缺陷)。Android 开发人员需要了解的 Android API 使用过程中是否存在陷阱?我也对解释缺陷如何在代码中表现出来的答案感兴趣,或者在代码中寻找什么来识别缺陷。(示例代码片段会特别精彩。)

4个回答

传输中数据的机密性和完整性保护不足。智能手机通常会连接到不可靠的网络(例如 GSM 或未知方运营的无线网络):当向网络主机或从网络主机传输数据时,假设它可以被篡改或读取。

除了已经提到并适用于几乎所有软件应用程序的内容之外,请记住应用程序隔离远非人们期望的那样:现有的 Android 信任模型,您可以安装应用程序并运行它们,这样它们就不会能够访问彼此的数据,或许是安卓安全的最大威胁。这个模型一再被打破,并被证明存在根本性的缺陷。即使在最安全的操作系统(Android(Linux)不是)中,恶意应用程序也可以使用隐蔽通道传输数据或使用旁通道推断其他应用程序的信息。CPU 缓存定时攻击在这里是最流行的,但像 Android 这样的复杂平台为隐藏信息流提供了更多渠道。

因此,不仅网络和 SD 卡不安全,您也无法保证私有 App 文件夹中的数据是安全的。如果您编写一个安全敏感的应用程序,加密所有本地存储是您可以做的最少的事情(不幸的是,也是最多的......)。

如果您编写多个应该相互通信的应用程序,请查看可用于该目的的权限系统和sharedUserId的语义:http : //developer.android.com/guide/topics/security/security.html

对设备物理盗窃的数据保护不足。您可能拥有只有手机所有者才能访问的数据:不要假设触摸屏的操作员实际上就是手机所有者。

本演示文稿描述了 Android 应用程序开发中的一些潜在安全隐患。