业务逻辑漏洞探索之敏感信息泄露
本文中提供的例子均来自网络已公开测试的例子,仅供参考。
近期,万豪酒店被爆近5亿客人的信息或泄露。近年来,用户隐私泄露事件时有发生,也不得不给我们敲响警钟。
敏感信息时业务系统中的保密性要求较高的数据,通常包括系统敏感信息和引用敏感信息。系统敏感信息指的是业务系统本身的基础环境信息,比如系统信息,中间件版本之类的,一旦泄露可能可以协助攻击者提供更多的攻击途径和方法;应用敏感信息指的是应用中存储的重要业务数据,比如用户注册时提供的一些信息,身份证、姓名、电话号码等,泄露后可能会对应用的用户带来危害,比方说这次的万豪酒店敏感信息泄露事件。
我们可以分为以下几种场景进行测试:
1.敏感信息传输
在业务流程中,许多敏感信息需要从客户端提交到服务端,如果没有采取合理的加密措施,在提交到服务端的过程中可能被第三方截取,从而产生信息泄露风险。
举个栗子:
a).某系统修改密码的时候,发现通过JSON进行传输的过程中,可以看到明文的新旧密码。
2.敏感信息显示
通常情况下应用敏感信息在客户端显示时需要进行脱敏,密码等部分用户信息是不应该在客户端显示的,如果程序设计时在这部分没有进行很好的处理,就会产生敏感信息泄露漏洞。
举个栗子:
a). 某系统登录页面存在缺陷,导致敏感信息泄露。
b). 查看源代码,可看见登录密码。
c). 使用admin/gohigh1234可使用管理员权限登录,可查看各种信息。
3.客户端代码注释
客户端代码注释有可能泄露系统敏感信息,对一些核心代码进行技术注释也有可能会帮助攻击者解读代码,为攻击者提供便利,通常要求客户端代码不能包含注释,尤其是不能包含核心代码的技术注释。
举个栗子:
a). 某系统智能门禁管理系统存在逻辑漏洞导致上万用户敏感信息泄露。
b). 查看源代码发现有一段注释代码,发现存在用户名和登录密码及请求路径。
c). 登录后发现有大量的客户敏感信息,包含身份证、业主卡号等等。
4.错误处理测试
不安全的错误处理方法可能泄露系统或应用的敏感信息,手工测试的过程中应留意各类错误信息,如果发现错误信息中包含系统或应用敏感信息,则进行记录。
举个栗子:
某平台sqlserver没有对错误进行正确的处理,将详细的错误信息展示出来,暴露出数据库列名。
5.小总结
以上就是斗哥对于敏感信息泄露的一点小总结,越来越频发的用户信息泄露事件也让我们不得不反思,如何在大数据时代,保护我们的敏感信息。以下是斗哥对于敏感信息泄露防护的建议:
1.应根据业务特点定义出系统存储的敏感信息。
2.敏感信息在存储、传输、显示时应进行安全处理,可采用的处理方式为加密或脱敏。
3.敏感信息不应使用GET方式提交到服务器。
4.用户密码为最高级别的敏感信息,在存储、传输、显示时都必须加密。
5.需要选择可靠的加密算法,优先选择不对称加密算法,不得使用BASE64等编码方式进行“加密”
6.对于一些系统默认报错页面应重新进行设计自定义报错页面,以免暴露系统敏感信息。