敏感信息的明文日志记录¶
ID: py/clear-text-logging-sensitive-data
Kind: path-problem
Security severity: 7.5
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-312
- external/cwe/cwe-359
- external/cwe/cwe-532
Query suites:
- python-code-scanning.qls
- python-security-extended.qls
- python-security-and-quality.qls
如果敏感数据被写入日志条目,它可能会暴露给获得日志访问权限的攻击者。
潜在的攻击者可以在显示日志输出时获取敏感用户数据。此外,该数据可能会暴露系统信息,例如完整路径名称、系统信息,有时还包括用户名和密码。
建议¶
不应记录敏感数据。
示例¶
在示例中,整个进程环境使用 'print' 进行记录。生产部署应用程序的普通用户不应访问有关环境配置的如此多的信息。
# BAD: Logging cleartext sensitive data
import os
print(f"[INFO] Environment: {os.environ}")
在第二个示例中,记录的数据不敏感。
not_sensitive_data = {'a': 1, 'b': 2}
# GOOD: it is fine to log data that is not sensitive
print(f"[INFO] Some object contains: {not_sensitive_data}")
参考¶
OWASP:将敏感信息插入日志文件.
常见弱点枚举:CWE-312.
常见弱点枚举:CWE-359.
常见弱点枚举:CWE-532.