OWASP 十大网站安全风险 (三):敏感信息泄漏
OWASP 十大信息安全主题
- 注入攻击 (Injection)
- 无效身份认证(Broken Authentication
- 敏感信息泄漏(Sensitive Data Exposure)
- XML外部处理器漏洞(XML External Entities (XXE))
- 无效存取控管(Broken Access Control)
- 错误设置安全系统(Security Misconfiguration)
- 跨站攻击(Cross-Site Scripting (XSS))
- 不安全的反序列化漏洞(Insecure Deserialization)
- 使用已有漏洞元件(Using Components with Known Vulnerabilities)
- 日志和监控不足风险(Insufficient Logging and Monitoring)
敏感信息泄漏
许多网站和API没能很好的保护敏感信息,像金融,医疗,个人信息等等。攻击者可以通过窃取,篡改这些数据来进行信用卡诈骗,身份盗用,和 其他犯罪。敏感信息泄漏大多由于没有额外数据加密保护,像是没有在服务器端和传输过程中做加密保护,尤其是在和浏览器交换数据的过程。
了解敏感信息泄漏
在过去几年,敏感信息泄漏在网络安全中造成的最严重的影响。最常见的安全疏失就是没有加密,或者没有按照安全准则加密敏感信息。像是在密钥的产生和管理, 使用不安全算法,协议,网络等等,尤其是使用弱哈希密码加密存储数据。
敏感信息泄漏的威胁可能来自外部和内部。外部攻击者往往不会直接暴力解密,而是会在数据传输,与客户浏览器交互的过程中拦截,窃取明文, 然后对加密 系统攻击。内部威胁主要是有些员工运用权限漏洞直接下载敏感数据,如果数据只是在服务器端加密,没有多层加密的话,下载过程数据会自动解密,员工就拿到的 敏感信息的明文。
敏感信息一般包括个人身份确认信息,医疗资料,密码,私人信息,信用卡,还有一些法律要求管制的数据等等。 敏感信息泄漏不仅仅关乎经济,信用损失,还有伴随的法律责任。 所以对于敏感信息,要求在存储和传输的过程中都要额外加密保护。至少要考虑下面的具体问题:
数据传输过程中是否使用了非加密,非安全的协议, 像http, SMTP, 和 ftp
外部网络数据传输过程中是否一直是加密的,例如负平衡和应用前后台间的数据传输
敏感数据是否有备份
加密算法是否符合最近的安全标准,代码中是否有使用太老或者弱的加密算法
是否使用了默认加密算法,是否使用了弱的密钥,是否重用的密钥,是否有定期翻转密钥
与客户端数据交互的时候,是否强制使用安全加密通信
敏感信息有没有明文暴露在应用中, 或者日志中
案例
案例一
一个应用使用数据库自动加密工具去加密信用卡号。当发生SQL注入攻击时候,数据库会自动解密数据,这样攻击者会直接得到信用卡号明文。
案列二
网站不强制要求使用TLS,并且支持弱的加密通信。在非安全的网络环境中,攻击者把https降级到http,通过拦截,窃取用户session令牌 完成盗用其他用户信息,进行违法行为。
案例三
存储密码的数据库使用非加盐的哈希码。一旦攻击者获得了这些数据,非加盐的哈希码可以通过彩虹表破解的。 对于一些简单快速生成的哈希码,即使是加盐的, 也可能通过GPUs进行暴力破解的。
预防
除了以上提到的问题和案例,还要注意以下方面:
敏感信息通过应用进行单独保存,处理,传输,防止内部人为下载数据
设置敏感信息访问权限,并且时时监控访问
非必要情况,不要存储敏感数据
即使清除过了保存时限的敏感数据
保证敏感数据在服务器端加密。保证使用最新的安全加密算法,协议,密钥保护,密钥翻转
保证敏感数据在传输过程中使用安全通信协议,像TLS加前向保密性(perfect forward secrecyPFS), 强制使用HTTP严格传输安全(http strict transport security
禁止缓存含有敏感数据的响应
使用强加盐密码哈希加work-factor(delay factor), 像 Argon2, scrypt, bcrypt, 和 PBKDF2 等等
comments powered by Disqus