许多Web应用程序和APl都无法正确保护敏感数据,例如: 财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到破坏,因此我们需要对敏感数据加密,这些数据包括: 传输过程中的数据、存储的数据以及浏览器的交互数据。
攻击者不是直接攻击密码,而是在传输过程中或从客户端(例如: 浏览器窃取密钥、发起中间人攻击,或从服务器端窃取明文数据。这通常需要手动攻击。通过使用图形处理单元(GPU) ,早前检索的密码数据库可能被暴力破解。
是在最近几年,这是最常见的、最具影响力的攻击。这个领域最常见的漏洞是不对敏感信息进行加密。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱加密算法、弱协议和弱密码。特别是使用弱的哈希算法来保护密码。在服务器端,检测传输过程中的数据弱点很容易,但检测存储数据的弱点却非常困难。
一、哪些数据是敏感数据?
- 医疗记录、个人信息、商业机密...
- 密码、信用卡卡号、
- 传输过程中的数据
- 需要加密的存储数据
- 隐私法律或条例中规定需要加密的数据,如: 欧盟《通用数据保护条例》(GDPR)
- 金融数据保护条例,如:《支付卡行业数据安全标准》 (PCI DSS)
二、漏洞产生的原因
在数据传输过程中使用明文传输,这和传输协议相关,如: HTTP、SMTP和FTP数据存储时使用旧的或脆弱的加密算法使用默认加密密钥;生成或重用弱加密密钥;缺少适当的密钥管理或轮未强制加密,例如用户代理(浏览器)安全指令或头文件缺失用户代理(例如,应用程序,邮件客户端)未验证接收到的服务器证书是否有效。
三、漏洞产生的影响
敏感数据泄露频繁影响那些本应该加密的数据。通常情况下,这些数据包括很多个人敏感信息 (PII), 例如: 医疗记录、认证凭证、个人隐私、信用卡信息等。这些信息受到相关法律和条例保护,例如: 欧盟《通用数据保护条例》 (GDPR)和地方隐私保护法律。
四、攻击案例场景
场景1:
一个应用程序使用自动化的数据加密系统来加密信用卡信息,并存储在数据库中。但是,当数据被检索时会被自动解密,这就使得攻击者能利用SQL注入漏洞以明文形式获得所有信用卡卡号。
场景2:
一个网站上对所有网页没有使用或强制使用TLS,或者使用弱加密。攻击者通过监测网络流量(如:不安全的无线网络),将网络连接从HTTPS降级到HTTP,就可以截取请求并窃取用户会话 cookie。 之后,攻击者可以复制用户cookie并成功劫持经过认证的用户会话、访问或修改用户个人信息。除此之外,攻击者还可以更改所有传输过程中的数据,例如:转款的接收者。
场景3:
一个文件上传漏洞使黑客能够获取密密码数据库使用未加盐的哈希算法或弱哈希算法去存储每个人的密码。码文件。所有这些unsalted哈希的密码通过彩虹表暴力破解方式破解。
五、如何防御
架构设计
对系统处理、存储或传输的数据进行分类,并根据分类实施访问控制。
存储保护
对于没必要存放的、重要的敏感数据,应当尽快清除,或者通过PCI DSS标记或拦截。确保存储的所有敏感数据被加密禁止缓存对包含敏感数据的响应。
传输保护
- 确保传输过程中的数据被加密,如:使用TLS。
- 确保数据加密被强制执行,如: 使用HTTP严格安全传输协议 (HSTS)。
标准化
- 熟悉与敏感数据保护相关的法律和条例,并根据每项法规要求保护敏感数据。
- 确保使用密码专用算法存储密码,如:Argon2、 scrypt、bcrypt 或者PBKDF2。
- 确保使用了最新的、强大的标准算法或密码、参数、协议和密钥,并且保证密钥管理到位
- 单独验证每个安全配置项的有效性。
源代码审计 点此链接 可免费领取。另外,其中还包含第三方组件安全分析检测,对软件源代码安全漏洞和软件中的开源组件漏洞进行全面评估,全方位提升应用安全性。
进一步学习OWASP TOP 10 漏洞解析系列课程: 点此链接