虽然一些企业在IT基础设施的各个层次部署了数据防御措施,但最终这些努力可能在配置不当的数据库中毁于一旦。数据库配置如果设置得当,可以保护数据存储。反之,将面临数据泄露的风险。我们建议企业仔细检查所有的数据库默认设置,以下5个默认设置将构成最大风险:
1、默认的密码和帐户
不安全的密码绝对是最致命的数据库服务器配置问题。
我们注意到各种围绕身份验证和账户凭证的配置问题,但到目前为止,最危险和最普遍的是允许默认管理用户名和密码继续使用。此外,允许匿名登录的默认配置是另一个危险的权限设置。攻击者和恶意软件会针对已知的登录信息,更改共同账户名称或者其他管理默认账户,使用分析工具来查找允许匿名登录的数据库,然后确定数据库和其他信息来发动攻击,以帮助他们获得更多的访问权限。
同样地,共享服务账户可能会带来很大风险,因为它们难以被监控,并且经常在数据库内提供相当大的权限。
2、允许直接表访问
让企业陷入困境的头号数据库配置问题是允许直接表访问。
让应用程序可以自己生成SELECT/UPDATE/INSERT/DELETE语句,并直接访问表时,数据很容易被泄露。在这种情况下,最佳保护措施之一就是在开发过程中通过存储过程创建一个访问缓冲区。让应用程序只能执行这些存储过程,然后授予用户权限来访问这些存储过程,而拒绝直接对表的访问。
3、保留默认存储过程
很多情况下,执行常见任务的出厂存储过程是一个很大的漏洞。如果落入攻击者手中,一些出厂存储过程将被滥用。微软SQL服务器的‘xp_cmdshell’就是一个这样的例子:允许任意命令行的SP将被执行。建议企业密切关注默认存储过程,要么完全禁止它们,要么删除它们。
4、加密密钥存储在数据中心
如果执行得当,数据库加密可以增加有效的安全保护层。但糟糕的配置将让数据库供应商提供的透明数据加密失效。
将TDE密钥存储到数据库的默认方法就像是将钥匙放在门把手上,或者将密码写在显示器上的便条上,企业应该将加密密钥存储在不托管该数据库的服务器上。
5、不必要的服务和应用程序
数据库具有各种支持服务、应用程序和其他组件,以便为尽可能多的用例提供广泛的功能集。但数据库的每个增加的组件都增加了潜在攻击者可以利用的攻击面。
大多数数据库产品提供附加组件,例如报告或分析工具,这些组件可能对整个数据库系统带来更多的漏洞,企业应该对不必要的组件进行禁用或者卸载。