Mssql和Mysql的安全性分析
2007-05-09 10:56:24 来源:WEB开发网解决方法:定期检查所有登陆帐号,查看是否有不符合要求的密码。 Use master Select name,Password from syslogins where password is null命令检查是否有空口令帐号存在。尽可能的删除存储扩展,防止本地用户利用存储扩展执行恶意命令。 use master sp_dropextendedproc xp_cmdshell命令删除xp_cmdshell扩展。
4.mssql安装目录权限问题
同mysql一样,mssql也是安装到everyone完全控制c盘,由于存取控制问题,最好安装到d盘等非系统盘进行严格的权限控制。而且,由于mssql数据库与系统结合非常紧密, 系统管理员在没有数据库密码的情况下也可以通过选择windows验证来操作数据库。因此,普通用户有可能通过系统漏洞提升自己的权限,对数据库进行破坏。
解决办法:除了严格的存取限制外,还要定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令findstr /C:"登录" d:Microsoft SQL ServerMSSQLLOG*.*。 mssql的安全是和windows系统安全紧密结合的,任何一个出现漏洞,都会威胁到另一个的安全。
总结,在系统内部安全性上,mysql和mssql都没有达到令人满意的程度,帐号安全,存取权限都控制的不是很好。但是mssql有详细的日志可以查看登陆情况,比mysql要高出一筹。如果进行了 合理的设置,mysql反而要更加安全些,因为对mssql而言,只要有系统权限即可拥有数据库权限。
二.外部网络安全性分析
1.数据库服务的探测
为了安全,可以让mysql服务运行在内网,但是如果你的机器有外网的接口,mysql也会自动被绑定在外网上面,暴露在internet中,而且系统会在TCP的3306端口监听,非常容易被端口扫描工具发现,不 能保证数据安全。如果默认,mssql则会打开TCP的1433端口监听。虽然mssql可以人为的改变监听端口,但是通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了。往UDP1434端口 发送一个1个字节的内容为02的数据包,被探测的系统则会返回安装的mssql服务信息,这些信息包括:主机名称、实例名称、版本、管道名称以及使用的端口等。这个端口是微软自己使用,而且不象默认的1433端口那 样可以改变,1434是不能改变的。一个典型的返回的信息如下: ServerName;Sky;InstanceName;sky;IsClustered;No;Version;8.00.194;tcp;3341;np;\skypipeMSSQL$XHT310sqlquery; 可以发现mssql的tcp端口改成了3341,为攻击者打开了方便之门!只要会一点socket编程知识,很容易就可以写出扫描mssql服务的程序,而且,由于利用了udp端口,一般的过滤是很难防范的。
更多精彩
赞助商链接