设为首页 收藏本站
查看: 695|回复: 0

[经验分享] sql server 2000数据库安全问题

[复制链接]

尚未签到

发表于 2016-10-31 07:17:17 | 显示全部楼层 |阅读模式
1.使用健壮安全的密码策略
    很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。
    比如使用下面的SQL语句:
    Use master
    Select name,Password from syslogins where password is null
    要分配sa密码,请按下列步骤操作:
  1) 展开服务器组,然后展开服务器。
  2) 展开安全性,然后点击登录。
  3) 在细节窗格中,右键点击SA,然后点击属性。
  4) 在密码方框中,输入新的密码。
2.2.使用安全的帐号策略和Windows认证模式
    由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。
    SQL Server的认证模式有Windows身份认证和混合身份认证两种。在任何可能的时候,您都应该对指向SQL Server的连接要求Windows身份验证模式。
    Windows认证模式比混合模式更优越,原因在以下:
    1) 它通过限制对Microsoft Windows用户和域用户帐户的连接,保护SQL Server免受大部分Internet工具的侵害。
    2) 服务器将从Windows安全增强机制中获益,例如更强的身份验证协议以及强制的密码复杂性和过期时间 。
    3) 使用Windows认证,不需要将密码存放在连接字符串中。存储密码是使用标准SQL Server登录的应用程序的主要漏洞之一。
    4) Windows认证意味着你只需要将密码存放在一个地方。
    要在SQL Server的Enterprise Manager安装Windows身份验证模式,请按下列步骤操作:
    1)展开服务器组。
    2)右键点击服务器,然后点击属性。
    3)在安全性选项卡的身份验证中,点击仅限Windows。
3.在防火墙上禁用SQL Server端口
SQL Server的默认安装将监视TCP端口1433以及UDP端口1434。配置您的防火墙来过滤掉到达这些端口的数据包。而且,还应该在防火墙上阻止与指定实例相关联的其他端口。  默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了。不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。

4、修改TCP/IP使用的端口

  请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口.

 5.拒绝来自1434端口的探测
  由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。
6.审核指向SQL Server的连接
    SQL Server可以记录事件信息,用于系统管理员的审查。至少您应该记录失败的SQL Server连接尝试,并定期地查看这个日志。在可能的情况下,不要将这些日志和数据文件保存在同一个硬盘上。
  要在SQL Server的Enterprise Manager中审核失败连接,请按下列步骤操作:
    1) 展开服务器组。
    2) 右键点击服务器,然后点击属性。
    3) 在安全性选项卡的审核等级中,点击失败。
    4) 要使这个设置生效,您必须停止并重新启动服务器。
7.管理扩展存储过程
    对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:
    use master
    sp_dropextendedproc 'xp_cmdshell'
    xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
    sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll
    如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:
    Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
    Sp_OAMethod Sp_OASetProperty Sp_OAStop
    去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:
    Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
    Xp_regenumvalues Xp_regread Xp_regremovemultistring
    Xp_regwrite
    还有一些其他的扩展存储过程,你也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。
8.使用视图和存储程序以分配给用户访问数据的权利
    使用视图和存储程序以分配给用户访问数据的权利,而不是让用户编写一些直接访问表格的特别查询语句。通过这种方式,你无需在表格中将访问权利分配给用户。视图和存储程序也可以限制查看的数据。例如,如果你的雇员表格包含一些秘密的工资信息,你可以建立一个省略了工资栏的视图。
9.使用最安全的文件系统
    NTFS是最适合安装SQL Server的文件系统。它比FAT文件系统更稳定且更容易恢复。而且它还包括一些安全选项,例如文件和目录ACL以及文件加密(EFS)。在安装过程中,如果侦测到 NTFS,SQL Server将在注册表键和文件上设置合适的ACL。不应该去更改这些权限。
    通过EFS,数据库文件将在运行SQL Server的帐户身份下进行加密。只有这个帐户才能解密这些文件。如果您需要更改运行SQL Server的帐户,那么您必须首先在旧帐户下解密这些文件,然后在新帐户下重新进行加密。
10.安装升级包
    为了提高服务器安全性,最有效的一个方法就是升级到SQL Server 2000 Service Pack 3a (SP3a)。另外,您还应该安装所有已发布的安全更新。
11.使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性
  MBSA 是一个扫描多种Microsoft产品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地运行,也可以通过网络运行。该工具针对下面问题对SQL Server安装进行检测:
    1) 过多的sysadmin固定服务器角色成员。
    2) 授予sysadmin以外的其他角色创建CmdExec作业的权利。
    3) 空的或简单的密码。
    4) 脆弱的身份验证模式。
    5) 授予管理员组过多的权利。
    6) SQL Server数据目录中不正确的访问控制表(ACL)。
    7) 安装文件中使用纯文本的sa密码。
    DSC0000.gif 授予guest帐户过多的权利。
    9) 在同时是域控制器的系统中运行SQL Server。
    10) 所有人(Everyone)组的不正确配置,提供对特定注册表键的访问。
    11) SQL Server 服务帐户的不正确配置。
    12) 没有安装必要的服务包和安全更新。
    Microsoft 提供 MBSA 的免费下载。
12.其他安全策略
    另外,在安装SQL Server时,还有一些技巧值得注意。
    使用TCP/IP作为SQL Server的网络库。这是微软推荐使用的库,是经受考验的。如果服务器将与网络连接,使用非标准端口会被一些别有用心的人破坏。
    使用一个低级别的帐号来运行SQL Server,而不是一个管理帐号。这对系统崩溃的时候起着保护作用。
    不要允许未获得安全许可的客人访问任何包括安全数据的数据库。
    将数据库保护于一个“被锁的房间”。记住,很多骚扰都是来自于内部的人。

13、对网络连接进行IP限制
  SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。关于IPSec的使用请参看:http://www.microsoft.com/china/technet/security/ipsecloc.asp

14.使用协议加密  SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293517-1-1.html 上篇帖子: SQL server 第三方驱动 JDTS 下篇帖子: C语言与SQL SERVER数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表