组织和运营安全

良好安全实践的基础始于您的组织。

创建安全和隐私团队

创建一个专门的安全和隐私团队,并为该组织设立一位负责人。

  • 组建安全团队。
    • 确保至少有一名员工负责安全、隐私和事件响应。
    • 为该团队定义使命和范围。
    • 制定组织结构图和职位描述:安全经理、安全工程师、事件经理。
    • 聘请员工或外部承包商来填补这些职位。
  • 定义安全开发生命周期 (SDL)。您的 SDL 应涵盖以下领域
  • 评估组织风险。创建风险评估并制定计划以消除或减轻这些风险。

构建验证流程

评估您现有内部构建验证和审批流程中的差距。

  • 找出您当前构建验证流程中可能导致 潜在有害应用 (PHA) 引入到您的构建中的任何差距。
  • 确保您有一个代码审查和审批流程,即使对于 AOSP 的内部补丁也是如此。
  • 通过在以下领域实施控制来提高构建完整性
    • 跟踪变更。跟踪软件工程师;保留变更日志。
    • 评估风险。评估应用使用的权限;要求人工审查代码更改。
    • 监控。评估对特权代码所做的更改。

源代码变更跟踪

监控是否意外修改了源代码或第三方应用 / 二进制文件 / SDK。

  • 评估合作关系。使用以下步骤评估与技术合作伙伴合作的风险
    • 建立评估与特定供应商合作风险的标准。
    • 创建一份表格,询问供应商他们如何解决事件以及管理安全和隐私。
    • 通过定期审核来验证他们的声明。
  • 跟踪变更。记录哪些公司和员工修改源代码,并进行定期审核以确保只进行适当的更改。
  • 保留记录。记录哪些公司将第三方二进制文件添加到您的构建中,并记录这些应用执行的功能以及它们收集的数据。
  • 计划更新。确保要求您的供应商为您的产品的整个生命周期提供软件更新。无法预料的漏洞可能需要供应商的支持来解决。

验证源代码的完整性和来源

检查和验证原始设备制造商 (ODM)、无线下载更新 (OTA) 或运营商提供的源代码。

  • 管理签名证书.
    • 将密钥存储在硬件安全模块 (HSM) 或安全云服务中(不要共享)。
    • 确保对签名证书的访问受到控制和审核。
    • 要求所有代码签名都在您的构建系统中完成。
    • 撤销丢失的密钥。
    • 使用最佳实践生成密钥。
  • 分析新代码。使用安全代码分析工具测试新添加的代码,以检查是否引入了新的漏洞。此外,分析整体功能以检测新漏洞的表达。
  • 发布前审查。在将源代码和第三方应用推送到生产环境之前,查找其中的安全漏洞。例如
    • 要求应用使用安全通信。
    • 遵循最小特权原则,并授予应用运行所需的最小权限集。
    • 确保数据通过安全通道存储和传输。
    • 保持服务依赖项为最新状态。
    • 将安全补丁应用于 SDK 和开源库。

事件响应

Android 相信强大的安全社区的力量可以帮助发现问题。您应该创建并公布一种方式,让外部各方就特定于设备的安全问题与您联系。

  • 建立联系。创建一个电子邮件地址,例如 security@your-company.com 或一个网站,其中包含关于报告与您的产品相关的潜在安全问题的明确说明 (示例)。
  • 建立漏洞奖励计划 (VRP)。鼓励外部安全研究人员提交影响您产品的安全漏洞报告,方法是为有效的提交提供金钱奖励 (示例)。我们建议为研究人员提供行业内有竞争力的奖励,例如,严重级别漏洞奖励 5,000 美元,高危级别漏洞奖励 2,500 美元。
  • 向上游贡献更改。如果您发现影响 Android 平台或来自多家设备制造商的设备的安全问题,请提交安全漏洞报告,与 Android 安全团队联系。
  • 推广良好的安全实践。主动评估为您的设备提供服务、组件和/或代码的硬件和软件供应商的安全实践。让供应商对保持良好的安全姿态负责。