假设你是攻击企业网络的恶意攻击者,那么你首先会攻击哪些数据呢?在大多数企业中,大量有价值的数据通常都位于相同的应用中,即数据库。
网络中存在数百万的数据库,而大多数攻击者都不是太挑剔,他们会直接选择最不安全的数据库下手。当攻击者将你设为攻击目标时,企业将面临巨大的安全威胁。本文将探讨如何通过三个步骤来保持数据库的安全性以确保不成为网络攻击者的目标。
第一个问题就是找到数据库服务器本身。数据库服务器最常见的位置是在数据中心,在数据中心的数据库通常都有日志记录,也更加安全。不过也有很多数据库服务器出现在企业的其他部分,包括研究和开发实验室、测试环境和嵌入式系统等。
找出这些数据库服务器并分析这些数据库服务器所存储的信息是管理安全风险和保护企业最重要数据的第一个步骤,在测试环境映射生产服务器并不罕见,很多测试环境都存储着与生产环境相同的重要信息。研发团队通常在没有告知IT团队或者寻求IT团队帮助的情况下就安装服务区,所以发现包含重要研究信息的服务器并不罕见。
找到包含重要数据的数据库服务器后,第二个步骤就是锁定这些数据库服务器。实现这个步骤主要有三个要素:防火墙、漏洞修复和Web应用程序。数据库服务器并不需要被企业的每个工作站访问,当然这也可能存在例外,但不太可能。花点时间为数据库服务器部署合适的防火墙,确保服务器只能与必要的系统通信,并记住纵深防御的方法:在网络、主机和应用程序级别制定规则。
适当限制对数据库服务器的访问权限肯定能够减少攻击面,但这并不意味着可以不用修复补丁。很多调查都发现,数据库管理员没有定期修复数据库系统的补丁。对于安全来说,定期修复补丁绝对是有必要的,这样不至于因为几个月前未修复的漏洞而受到攻击。建立一个测试环境,然后修复补丁,确认补丁修复,然后修复生产环境的补丁。
Web应用程序给数据库安全问题带来了新的考验,web应用承诺工序需要将数据传上网络,并且让数据库后端为其提供支持,这些已经产生了数百万条敏感数据记录。SQL注入攻击是2010年OWASP前十名最具攻击性的攻击之首,SQL注入攻击可以允许攻击者仅使用Web浏览器就可以从数据库读取、修改和删除数据。
如果你的web应用程序是由数据库提供支持的,那么你需要为web应用程序的开发生命周期部署安全编码,并且当任何时候引入新代码时,都会对 web应用程序执行漏洞评估分析。
新攻击方式和新漏洞层出不穷。新的安全工具也一直在开发中,例如近日在欧洲黑帽大会上推出的Poet。在你的web应用程序登上下一个数据泄漏报告前,花点时间来加强web应用程序的安全性是非常有必要的。
最后但并非最不重要的一点,开启审计功能。很多企业仅用审计功能以努力提高数据库服务器的性能,如果性能是企业关注的主要问题的话,那么可以考虑使用数据库活动监控解决方案来为企业提供审计和其他功能。关闭审计功能会加大调查数据泄漏原因的难度,并且会影响企业的合规。
数据库安全,和其他所有安全问题一样,都是围绕减轻风险的,而不是消除风险,你不可能消除所有的风险,但是你能够控制这些风险,以确保这些安全风险不会给企业带来麻烦。