目前,每一种DBMS都有非常敏感的参数,它们的不同值可能导致数据库或数据库服务器受到各种类型的恶意活动的攻击。下面列出了SQL Server和Oracle的一些关键参数。同时,我详细解释了这些参数之所以敏感的原因,以及一个组织为何可能希望标准化其中一个特定的值的原因所在。 SQL Server: xp_cmdshell = 0 (Disabled)——这是一个扩展的存储过程,它可以用来在数据库中执行OS命令(如,使用T-SQL)。
这可能造成一个重大的安全风险,因为人们可能会用它来攻击您的系统或者将他们的权限修改为sysadmin或设备管理员。这个参数在……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
目前,每一种DBMS都有非常敏感的参数,它们的不同值可能导致数据库或数据库服务器受到各种类型的恶意活动的攻击。下面列出了SQL Server和Oracle的一些关键参数。同时,我详细解释了这些参数之所以敏感的原因,以及一个组织为何可能希望标准化其中一个特定的值的原因所在。
SQL Server:
xp_cmdshell = 0 (Disabled)——这是一个扩展的存储过程,它可以用来在数据库中执行OS命令(如,使用T-SQL)。这可能造成一个重大的安全风险,因为人们可能会用它来攻击您的系统或者将他们的权限修改为sysadmin或设备管理员。这个参数在SQL Server 2000中默认是启用的。Microsoft在SQL Server 2005中将它的默认值修改为“disabled”。
OLE Automation Procedures = 0 (Disabled)——这些系统存储过程支持在T-SQL中使用COM对象(http://www.microsoft.com/technet/scriptcenter/guide/sas_vbs_wcmr.mspx?mfr=true)
(例如,人们可以用来打开一个计算文件系统,同时打开、处理、读取和写入文件)。这也可用于从数据库内部访问和处理OS对象,但是可能会产生一个漏洞并使服务器崩溃。现在这个参数默认也被禁用了。
remote admin connections= 0——这个参数的设置值决定了SYSADMIN服务器角色是否能够使用Dedicated Administrator Connection (DAC)远程访问SQL Server。而各种组织关心的是与它相关的SYSADMIN服务器角色应该禁用这个参数。
C2 audit mode= 1——启用这个参数将会使服务器记录错误或成功的语句和对象访问。这个信息能够帮助您配置系统活动和跟踪可能的安全性政策问题。注意:这个参数通常由于性能考虑而被禁用了。
Oracle:
remote_os_authent = FALSE——如果使用OS认证(远程或本地),认证会在OS级进行,然后使用户连接到数据库。当连接一个数据库时,这个用户就不需要输入密码,而Oracle会基于用户名将这个数据库用户映射到OS用户。允许远程OS认证(将参数设置为TRUE)会给数据库造成巨大的安全性风险。这个风险表现为有人可以使用映射到一个DBA的用户名来连接网络,从而获得数据库服务器上未授权的记录。
07_dictionary_accessibility = FALSE——将这个参数设置为FLASE能保证带有ANY权限的用户不能访问SYS模式对象(数据字典对象)。这些用户将仍然能够访问所有其它的模式对象。将这个参数设置为FALSE可以防止具有“drop any table”权限的用户恶意删除数据字典。在Oracle 8上它的默认值为TRUE,而Oracle 9以后它的默认值被修改为FALSE。
audit_sys_operations = TRUE——如果组织想要审计带有SYSDBA或SYSOPER权限的用户,那么他们需要启用这个参数。 如果参数被设置为TRUE,SYSDBA和SYSOPER用户的所有操作都会被记录到操作系统文件中。注意:将这个参数设置为TRUE可能会给数据库服务器造成严重的性能影响。它的默认值是FALSE
remote_login_passwordfile= NONE——密码文件可以在数据库外部存储密码,它可用于认证管理员(SYSDBA和SYSOPER)。remote_login_passwordfile参数控制了远程管理员是否能使用密码文件,以及使用密码文件的方式。这个参数值可能是NONE、EXCLUSIVE或SHARED。使用NONE会限制密码文件的使用;EXCLUSIVE则保证密码文件只能被一个数据库使用;SHARED则允许密码文件被多个数据库使用。启用这个参数(SHARED或EXCLUSIVE)的安全性风险是密码容易被盗取。如果组织想要保护密码不被盗取,那么应该将这个参数设置为NONE。
audit_trail= NONE——audit_trail是控制审计的启用或关闭。它的默认值是NONE,这表示禁用审计。大多数情况下您只需要保证它为NONE,这样它就能减少日志数量并提高运行速度。如果需要审计,这个参数有许多可能的设置值:OS——Oracle会将审计记录写入到一个操作系统审计跟踪中;DB——Oracle会将审计跟踪导入到SYS.AUD$表中;DB,extended——类似于DB方式,但是它在SYS.AUD$表中增加了两个字段SQLBIND和SQLTEXT。XML——将审计记录以XML格式写入到OS审计跟踪中;XML,extended——类似于XML方式,但是它包含了SQLTEXT和SQLBIND值。
os_authent_prefix (default is OPS$) ——os_authent_prefix参数定义了Oracle数据库给每一个操作系统用户名所加的前缀。然后Oracle会比较OS用户名的前缀与用户准备连接的数据库用户名。这个SQL Server Security Standards Templatesk可以很容易分辨出不符合前面所述的标准OS认证前缀。
作者
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。