SQL Server安全性的终极禁忌:被忽视的系统

在你认为已经很好地控制了SQL Server安全性时,往往问题正在悄悄出现。有人会在网络中的某个区域悄然进入你已经遗忘或根本不知道的SQL Server系统。然后你才意识到你只是表面上控制了SQL Server安全性。

现实证明系统复杂性的增加已经超出了现代网络的控制。我经常工作中碰到这种情况:遗留的SQL Server 2000、MSDE和SQL Server 2005 Express系统都分散各处且没人管理。它们基本上是被忽视的、被遗忘的。

我听说过这样的事:

"天啊,我忘记那个系统了。"
"我们的开发团队开户了它,但并没有告诉我们。"
"我们将要等到我们的供应商提供新的平台后就撤下那个服务器。"
不管什么原因,这些系统还在那里,并且会造成一些严重的商业风险,特别是考虑到内部威胁的存在。

我遇到的最大的问题是SQL Server系统的sa帐号没有密码,网络上的任何人都可以随意访问这个系统。现在网络上的每个人,只要运行SQL Server Management Studio Express,就可以为所欲为了。一个恶意的用户可以连接到系统,然后修改SQL Server安全性设置,创建一个后门帐号,浏览和获取产品数据–凡是你想得到的,都可以简单做到。

另一个问题是这些未管理的SQL Server系统经常没有打好补丁,因此它们很容易受到攻击。通过使用一些免费工具,如NeXpose Community Edition和Metasploit,一个有不良企图的内部人员就能够发现这些SQL Server系统,发现它们是否能够侵入,然后发现特定的OS、SQL Server和第三方应用漏洞,从而完全控制这个系统–而且所有这一切都是悄悄进行的。

我认为这里出现的问题可以追溯到信息安全的基本问题之一:我们不知道我们有什么,因此不能保证位置事物的安全。下面是一些可以用来保证我们掌握这些系统的方法:

发现你所有的系统。这是从一个良好的系统目录和网络图开始的–但它们要有一定的深度。首先,要使用端口扫描器,如SuperScan v3.0,定期地查找监听默认SQL Server端口(TCP 1433和UDP 1434)的活跃系统。事实上,还有一个更好的工具就是Chip Andrews的SQLPing(当前是版本3),它不仅能扫描默认的SQL Server实例,还能发现由个人防火墙或运行非标准端口的系统。
使用漏洞扫描软件和合法的黑客技术来确定SQL Server系统的风险。
通过设置合理的密码、打补丁或优化系统来堵住漏洞。否则,将它们与主网络隔离或将它们全部撤掉。
积极地安全化高度可见的SQL Server系统很重要,而发现所有其它可能造成风险的系统也很重要。要谨记,如果想要创建一个安全的SQL Server,这两方面都需要考虑。

在你认为已经很好地控制了SQL Server安全性时,往往问题正在悄悄出现。有人会在网络中的某个区域悄然进入你已经遗忘或根本不知道的SQL Server系统。然后你才意识到你只是表面上控制了SQL Server安全性。

现实证明系统复杂性的增加已经超出了现代网络的控制。我经常工作中碰到这种情况:遗留的SQL Server 2000、MSDE和SQL Server 2005 Express系统都分散各处且没人管理。它们基本上是被忽视的、被遗忘的。

我听说过这样的事:

"天啊,我忘记那个系统了。"
"我们的开发团队开户了它,但并没有告诉我们。"
"我们将要等到我们的供应商提供新的平台后就撤下那个服务器。"
不管什么原因,这些系统还在那里,并且会造成一些严重的商业风险,特别是考虑到内部威胁的存在。

我遇到的最大的问题是SQL Server系统的sa帐号没有密码,网络上的任何人都可以随意访问这个系统。现在网络上的每个人,只要运行SQL Server Management Studio Express,就可以为所欲为了。一个恶意的用户可以连接到系统,然后修改SQL Server安全性设置,创建一个后门帐号,浏览和获取产品数据–凡是你想得到的,都可以简单做到。

另一个问题是这些未管理的SQL Server系统经常没有打好补丁,因此它们很容易受到攻击。通过使用一些免费工具,如NeXpose Community Edition和Metasploit,一个有不良企图的内部人员就能够发现这些SQL Server系统,发现它们是否能够侵入,然后发现特定的OS、SQL Server和第三方应用漏洞,从而完全控制这个系统–而且所有这一切都是悄悄进行的。

我认为这里出现的问题可以追溯到信息安全的基本问题之一:我们不知道我们有什么,因此不能保证位置事物的安全。下面是一些可以用来保证我们掌握这些系统的方法:

发现你所有的系统。这是从一个良好的系统目录和网络图开始的–但它们要有一定的深度。首先,要使用端口扫描器,如SuperScan v3.0,定期地查找监听默认SQL Server端口(TCP 1433和UDP 1434)的活跃系统。事实上,还有一个更好的工具就是Chip Andrews的SQLPing(当前是版本3),它不仅能扫描默认的SQL Server实例,还能发现由个人防火墙或运行非标准端口的系统。

使用漏洞扫描软件和合法的黑客技术来确定SQL Server系统的风险。

通过设置合理的密码、打补丁或优化系统来堵住漏洞。否则,将它们与主网络隔离或将它们全部撤掉。

积极地安全化高度可见的SQL Server系统很重要,而发现所有其它可能造成风险的系统也很重要。要谨记,如果想要创建一个安全的SQL Server,这两方面都需要考虑。