数据泄露的代价是昂贵的。包括对商业的影响、客户信心的丧失、法律成本、罚金及所有因攻击带来的直接损失,可能会达数百万。最好的防御也是最好的进攻,所以采取以下五项基本实践,可以让数据更安全:防护、升级、管理、升级和加密。
1、使用数据库代理来避免被攻击
数据库代理或者网关代理介于应用和数据之间,接收来自应用的连接,然后代表应用去连接数据库。设计良好的数据库代理会提供过滤功能和安全模块,帮助系统获得更好的安全性、可靠性、可扩展性和性能。
MaxScale Database Firewall Filter会解析通过过滤的请求,可以阻止那些不符合白名单的查询类型,而让我们正常的查询可以顺利通过。例如,你可以设置某一特定的连接只能做更新和插入,另外一个连接则必须满足特定的正则要求等。
像MaxScale这样的代理也可以保护数据库免受DDoS攻击:当很多直接连接到数据库服务时,数据库会发生过载,甚至被压垮。但代理层吸收掉部分负载,从而起到限制此类攻击影响的效果。
2、建立审计机制,加强日志机制
审计与日志相互关联、密不可分,但审计日志比常规但日志要复杂很多。审计日志能提供管理员调查可疑活动的信息,协助针对异常时间进行根本原因分析。除此之外,审计日志还有助于确保与GDPR、PCI、HIPPA、SOX的一致性。
MariaDB的审计插件可以记录大量信息,包括所有接入的连接,所有查询的执行,对每个表的访问事件等。管理员可以看到谁,在什么时间,访问了某张表,谁插入了数据,谁又删除了数据。审计插件可以将日志记录到文件或系统日志(syslog)中,如果你已经将业务分析流程建立在syslog中,就可以基于次分析审计信息了。
3、执行严格的用户账号管理
仔细管理数据库的用户账号对于数据库安全至关重要。其重要性不言而喻,在此就不赘述了。只是简单提醒一下用户账号管理的几个关键方面:
- 只允许从本机客户端以root用户访问
- 要求使用强密码
- 针对不同应用提供不同的数据库用户账号
- 限制可以访问数据库的IP地址
4、保持数据库软件和OS的更新(有些挑战)
我们都知道为什么要保持软件的更新,但现实中仍然会有各种原因导致会有很多老应用必须泡在旧的OS上,而且使用的是非常旧的数据库服务。它们可以作为一种提醒,保持系统更新是保护数据免受最新攻击的唯一途径。
这不仅限于服务器软件,也包括OS。勒索软件WannaCry就是利用一个Windows的安全漏洞。
5、加密敏感数据,包括应用、传输等等
我们统计记录了最新的一些实践经验。很多企业不太看中加密,但它却很有价值。毕竟,它能降低黑客攻击的动力,尤其是当破解需要花费的成本大于收益时。
第一阶段加密发生在应用层,即在数据库传入数据库之前。如果应用中的数据已经加密,黑客即使突破了数据库,也看不到数据。
下一阶段数据加密是在传输过程中,即数据经过加密后,再在客户端和数据库服务之间,以网络方式传输。这个类似于浏览器使用HTTPS协议传输数据。显然服务器可以看到信息,因为它需要读取你提供的信息;你也可以读取这些信息,因为是你填写的这些表单,但除了你和服务器之外,其他人不能读到。
其他
除了以上谈到的5点基本内容外,可以基于不同数据的加密技术来保证数据安全。像MariaDB可以将表空间、重做日志、二进制日志等进行加密。
参考MariaDB的《5-essential-practices-database-security》