TOP3 敏感数据暴露(Sensitive Data Exposure)
敏感数据公开是OWASP列表上最普遍的漏洞之一。它包括损害应该受到保护的数据。
敏感数据示例
一些需要保护的敏感数据是:
- 证书
- 信用卡号码
- 社会安全号码
- 医疗信息
- 个人身份信息(PII)
- 其他个人信息
我国于2016年11月7日颁布并于2017年6月1日正式生效的《中华人民共和国网络安全法》(简称“《网络安全法》”)旨在保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展。
有两种类型的数据:
- 存储的数据–静止数据
- 传输的数据–在服务器内部或网络浏览器内部传输的数据
保护运输中的数据
两种类型的数据都应受到保护。考虑传输中的数据时,一种保护网站上数据的方法是拥有SSL/TLS证书。
- SSL(Secure SocketLayer,安全套接字层),它是用于在Web服务器和浏览器之间建立加密链接的标准安全技术。SSL证书有助于保护主机(Web服务器或防火墙)和客户端(Web浏览器)之间传输的数据的完整性。
- TLS(Transport Layer Security,安全传输层),TLS是建立在传输层TCP协议之上的协议,服务于应用层,它的前身是SSL,它实现了将应用层的报文进行加密后再交由TCP进行传输的功能。
目前windows10的一部分浏览器已经不再使用SSL
敏感数据暴露有哪些风险
- 应用程序使用自动数据库加密对数据库中的信用卡号进行加密。但是,该数据在检索时会自动解密,从而允许SQL注入漏洞以明文形式检索信用卡号。
- 网站未对所有页面使用或强制使用TLS,或者不支持弱加密。攻击者监视网络流量(例如,在不安全的无线网络上),将连接从HTTPS降级到HTTP,拦截请求,并窃取用户的会话cookie。然后,攻击者重播此cookie并劫持用户的(已认证的)会话,从而访问或修改用户的私有数据。除了上述内容,它们还可以更改所有传输的数据,例如汇款的接收者。
- 密码数据库使用无盐或简单的哈希值来存储每个人的密码。文件上传漏洞使攻击者可以检索密码数据库。所有未加盐的哈希值可以通过预先计算的哈希值的彩虹表进行暴露。由简单或快速哈希函数生成的哈希可能会被GPU破解,即使它们被加盐。
那我们又该如何防止呢?
- 对应用程序处理,存储或传输的数据进行分类。
- 根据隐私法,法规要求或业务需求,确定哪些数据敏感。
- 根据分类应用控件。
- 不要不必要地存储敏感数据。
- 尽快将其丢弃,或者使用符合PCI DSS的标记或什至截断。
- 未保留的数据无法被窃取。
- 确保加密所有静态数据。
- 确保采用最新且功能强大的标准算法,协议和密钥;使用适当的密钥管理。
- 使用安全协议(例如具有完美前向保密(PFS)密码的TLS,服务器的密码优先级和安全参数)对传输中的所有数据进行加密。
- 使用诸如HTTP严格传输安全性(HSTS)之类的指令强制执行加密。
- 对包含敏感数据的响应禁用缓存。
- 使用具有工作因数(延迟因数)的强大自适应和盐化哈希函数(例如Argon2,scrypt,bcrypt或PBKDF2)来存储密码。
独立验证配置和设置的有效性。