Secret information stored in the application
应用程序中存储了机密信息
描述
泄露机密、密码和 API 密钥可能会产生严重后果,包括:
- 丧失机密性:如果机密或密码泄露,未经授权的个人可能会访问敏感信息。
- 丧失完整性:泄露的机密或密码可能被用于未经授权地访问系统或数据,从而可能导致信息的篡改或损坏。
- 丧失可用性:在某些情况下,未经授权使用泄露的机密或密码可能导致合法用户被拒绝访问,从而导致受影响的系统或数据丧失可用性。
- 声誉受损:如果公司或个人被发现未能妥善保护敏感信息,其声誉可能会受到损害。
- 法律后果:根据泄露信息的性质及相关司法管辖区的法律,机密或密码的泄露可能会导致法律后果。
- 超额计费:泄露的 API 密钥可能会被未经授权的个人用于访问 API 资源,并执行可能产生费用的操作,从而导致超额计费。
建议
敏感数据绝对不应包含在应用程序本身中。相反,应该使用加密、存储和检索服务凭据的安全方法,以便在需要时访问这些数据。
为了防止超额计费的风险,考虑实施 API 密钥绑定 (API key pinning) 或对具有潜在高昂使用成本的服务使用经过身份验证的 API。API 密钥绑定有助于通过要求加密签名来将密钥的使用限制在特定应用程序,它可以由服务提供商(例如 Google Maps)启用。
对于可能允许未经授权访问的密钥,重要的是将权限和角色限制在非关键功能上,或者通过经过身份验证的 API 暴露服务。
为了进一步增强安全性,API 还应具备适当的访问控制和速率限制 (rate-limiting),并且应定期轮换密钥以防止未经授权的使用。
链接
- API Security Best Practices
- Best practices for securely using API keys
- CWE-200: Data Exposure
- CWE-259: Use of Hard-coded Password
- What Is AWS Secrets Manager?
- $450k Google Cloud API Key Compromise
标准
- OWASP_MASVS_L1:
- MSTG_STORAGE_1
- OWASP_MASVS_L2:
- MSTG_STORAGE_1
- CWE_TOP_25:
- CWE_798
- GDPR:
- ART_5
- ART_25
- ART_32
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_2
- REQ_3_3
- REQ_3_5
- REQ_3_6
- REQ_3_7
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_STORAGE_1
- MASVS_STORAGE_2
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5