操作系统的后门-许多数据库系统的特征参数尽管方便了DBA,但也为数据库服务器主机操作系统留下了后门。
如上所述,对Sybase或SQL服务器的“sa”密码造成危害的入侵者有可能利用“扩展入驻程序”,得到基本操作系统的使用权限。以“sa”的身份登录,入侵者使用扩展入驻程序xp–cmdshell,该程序允许Sybase或SQL服务器的用户运行系统指令,就象该用户在服务器控制台上运行指令一样。例如,可实用下列SQL指令添加一个Windows NT帐号,帐号名为“hacker1”,密码为“nopassoword”,并把“hacker1”添加到“Administrators”组:
xp-cmdshell ‘net user hacker1 nopassword/ADD’
go
xp-comdshell ’net localgroup/ADD Administrators hacker1’
go
现在这个非法入侵者就成了Windows NT的管理员了(我们只能祈祷这个SQL服务器不是域控制器)。这个简单的攻击之所以成功,是因为命令被提交给实用Windows NT帐号的操作系统,而MSSQLServer的服务就运行在这个帐号下。在默认情况下,这个帐号就是“LocalSystem”帐号---本地Windows NT系统中最有效力的帐号。另一个途径是黑客可能使用SQL服务器,利用入驻程序xp-regread从注册表中读出加密的Windows NT SAM密码,对操作系统的安全造成威胁。由于有几种免费的Windows NT密码攻击器软件,因此保管好加密的Windows NT密码的安全变得格外重要。以下例子说明了入侵者是怎样得到信息的:
xp-regread’HKEY–LOCAL–MACHINE’,’SECURITYSAMDomainsAccount’,’F’
注意,从注册表中读出加密密码是一件本地Windows NT管理员帐号都无法做到的事。SQL服务器之所以能够做到,是因为默认方式运行的SQL服务使用的恰恰就是“LocalSystem”帐号。
Oracle数据库系统还具有很多有用的特征,可用于对操作系统自带文件系统的直接访问。例如在合法访问时,UTL_FILE软件包允许用户向主机操作系统进行读写文件的操作。UTL_FILE_DIR简档变量很容易配置错误,或被故意设置为允许Oracle用户用UTL_FILE软件包在文件系统的任何地方进行写入操作,这样也对主机操作系统构成了潜在的威胁。