10. 在企业管理器中'安全选项' 之下禁用默认登录。(只有sql 6.5) 当使用整合的安全时候,这使未经认可的不在 syslogins 表中使用者无权登陆一个有效的数据库服务器。
11. 除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。
12. 若非必须,请完全地禁用sql邮件功能。它的存在使潜在的攻击者递送潜在的 trojans ,病毒或是简单实现一个dos攻击成为可能
13. 检查master..sp_helpstartup看有无可疑的木马进程。 确定没有人已经在这里放置秘密的后门程序。 使用 sp_unmakestartup 移除任何可疑进程。
14. 检查master..sp_password看有无trojan代码。比较你的产品scripts和一个新安装的系统的默认scripts而且方便的保存。
15. 记录所有的用户存取访问情况。 从企业管理器做这些设定或通过以sa登陆进入查询分析器的下列各项:
xp_instance_regwrite n'hkey_local_machine', n'software/ microsoft/mssqlserver/mssqlserver',n'auditlevel',reg_dword,3
16. 重写应用程序使用更多用户定义的储存和察看进程所以一般的对表的访问可以被禁用。 在这里你也应该看到由于不必经常进行查询计划操作而带来的性能提升。
17. 除去不需要的网络协议。
18. 注意sql 服务器的物理安全。把它锁在固定的房间里,并且注意钥匙的安全。只要有机会到服务器面前,就总是会找到一个方法进入。
19. 建立一个计划的任务运行:
findstr/c:' login failed'/mssql7/log/*.*'
然后再重定向输出到一个文本文件或电子邮件,因此你监测失败的登录尝试。这也为系统管理员提供一个好的记录攻击的方法。 也有很多用来分析nt日志事件的第三者工具。 注意: 你可能需要将路径换成你安装sql的路径。
20. 设定非法访问和登陆失败日志警报。到 企业管理器中的'manager sql server messages '搜寻任何有关无权访问的消息 ( 从查找'login failed'和'denied'开始). 确定你所有感兴趣的信息被记录到事件日志。然后在这些信息上设定警报 , 发送一个电子邮件或信息到一个能够对问题及时响应的操作员。
21. 确定在服务器和数据库层次上的角色都只被授给了需要的用户。 当 sql server 安全模型 7 有许多增强的时候, 它也增加额外的许可层,我们必须监控该层,确定没有人被授予了超过必需的权限。
26. 当时用企业管理器的时候,使用整合的安全策略。 过去,企业管理器被发现在标准的安全模态中储存 'sa' 密码在注册表的 plaintext 中。 注意: 即使你改变模态,密码也会留在注册表中。 使用 regedit 而且检查键:
hkey_current_user/software/microsoft/
mssqlserver/sqlew/ regedi/
sql 6.5
现在数据被隐藏在
hkey_users/{yoursid}/software/microsoft/microsoft sql server/80/tool/sqlew/registered server x/sql server group
('sql server组' 是默认值但是你可能已建立用户组因此相应地改变其位置)
27. 发展一个审核计划而且订定每月的安全报告,对it主管可用的报表包括任何的新exploit,成功的攻击 , 备份保护 , 和对象存取失败统计。
28. 不要允许使用者交互式登陆到 sql server之上。这个规则适用任何的服务器。 一旦一个使用者能够交互式进入一个服务器之内,就有能用来获得管理员的存取特权得到管理员权限。
30. 尽力限制对sql server的查询与存取操作。 用户可以用最小权限查询sql server中的很多东西。若非必须不要给他们机会。