SafeWos是一个专业解决安全问题的运维顾问服务平台,专为企业安全定制。
目前市面上绝大多数的业务都会涉及到服务器的存储,无论是支付业务、金融、保险、游戏等等,对于服务器安全都有非常大的需求。下面安全狗就为大家讲解一下服务器安全检查方案,以及服务器安全部署方案。
服务器安全检查方案
你的计算机上是否存在有至关重要的数据,并且不希望它们落入恶人之手呢?当然,它们完全有这种可能。而且,近些年来,服务器遭受的风险也比以前更大了.越来越多的病毒,心怀不轨的黑客,以及那些商业间谍都将服务器作为了自己的目标.很显然,服务器安全问题是不容忽视的。
不可能仅仅在一篇文章中就讲述完所有的计算机安全方面的问题.毕竟,关于这个主题已经有无数的图书在讨论了.我下面所要做的就是告诉你j几个个维护你服务器安全的技巧。
技巧一:从基本做起我知道这听起来象是废话,但是当我们谈论网络服务器安全的时候,我所能给你的最好的建议就是不要做门外汉.当黑客开始对你的网络发起攻击的时候,他们首先会检查是否存在一般的安全漏洞,然后才会考虑难度更加高一点的突破安全系统的手段.因此,比方说,当你服务器上的数据都存在于一个FAT的磁盘分区的时候,即使安装上世界上所有的安全软件也不会对你有多大帮助的。
因为这个原因,你需要从基本做起.你需要将服务器上所有包含了敏感数据的磁盘分区都转换成NTFS格式的.同样,你还需要将所有的反病毒软件及时更新.我建议你同时在服务器和桌面终端上运行反病毒软件.这些软件还应该配置成每天自动下载最新的病毒数据库文件.你还更应该知道,可以为Exchange Server安装反病毒软件.这个软件扫描所有流入的电子邮件,寻找被感染了的附件,当它发现一个病毒时,会自动将这个被感染的邮件在到达用户以前隔离起来。
另一个保护网络的好方法是以用户待在公司里的时间为基础限定他们访问网络的时间.一个通常在白天工作的临时员工不应该被允许在临晨三点的时候访问网络,除非那个员工的主管告诉你那是出于一个特殊项目的需要。
最后,记住用户在访问整个网络上的任何东西的时候都需要密码.必须强迫大家使用高强度的由大小写字母,数字和特殊字符组成的密码.在Windows NT Server资源包里有一个很好的用于这个任务的工具.你还应该经常将一些过期密码作废并更新还要要求用户的密码不得少于八个字符.如果你已经做了这所有的工作但还是担心密码的安全,你可以试一试从互联网下载一些黑客工具然后自己找出这些密码到底有多安全。
技巧二:保护你的备份每一个好的网络管理员都知道每天都备份网络服务器并将磁带记录远离现场进行保护以防意外灾害.但是,服务器安全的问题远不止是备份那么简单.大多数人都没有意识到,你的备份实际上就是一个巨大的安全漏洞。
要理解这是为什么,试想一下,大多数的备份工作都是在大约晚上10:00或是11:00的时候开始的.整个备份的过程通常是在半夜的时候结束,这取决于你有多少数据要备份.现在,想象一下,时间已经到了早晨四点,你的备份工作已经结束.但是,没有什么东西能够阻止一些人偷走你磁带记录上的数据并将它们在自己家中或是你竞争对手办公室里的一台服务器上恢复它们。
不过,你可以阻止这种事情的发生.首先,可以通过密码保护你的磁带并且如果你的备份程序支持加密功能,你还可以加密这些数据.其次,你可以将备份程序完成工作的时间定在你早晨上班的时间.这样的话,即使有人前一天半夜想要溜进来偷走磁带的话,他们也会因为磁带正在使用而无法得逞.如果窃贼还是把磁带弹出来带走的话,磁带上的数据也就毫无价值了。
技巧三:对RAS使用回叫功能Windows NT最酷的功能之一就是对服务器进行远程访问(RAS)的支持.不幸的是,一个RAS服务器对一个企图进入你的系统的黑客来说是一扇敞开的大门.黑客们所需要的一切只是一个电话号码,有时还需要一点耐心,然后就能通过RAS进入一台主机了.但你可以采取一些方法来保证RAS服务器安全。
你所要使用的技术将在很大程度上取决于你的远程用户如何使用RAS.如果远程用户经常是从家里或是类似的不太变动的地方呼叫主机,我建议你使用回叫功能,它允许远程用户登录以后切断连接.然后RAS服务器拨通一个预先定义的电话号码再次接通用户.因为这个号码是预先设定了的,黑客也就没有机会设定服务器回叫的号码了。
另一个可选的办法是限定所有的远程用户都访问单一的服务器.你可以将用户通常访问的数据放置在RAS服务器的一个特殊的共享点上.你于是可以将远程用户的访问限制在一台服务器上,而不是整个网络.这样,即使黑客通过破坏手段来进入主机,那么他们也会被隔离在单一的一台机器上,在这里,他们造成的破坏被减少到了最小。
最后还有一个技巧就是在你的RAS服务器上使用出人意料的协议.我知道的每一个人都使用TCP/IP协议作为RAS协议.考虑到TCP/IP协议本身的性质和典型的用途,这看起来象是一个合理的选择.但是,RAS还支持IPX/SPX和NetBEUI协议.如果你使用NetBEUI作为你RAS的协议,你确实可以迷惑一些不加提防的黑客。
技巧四:考虑工作站的安全问题在一个关于服务器安全的文章里谈论工作站的安全看起来很奇怪.但是,工作站正是通向服务器的一个端口.加强工作站的安全能够提高整个网络的安全性.对于初学者,我建议在所有的工作站上使用Windows 2000.Windows 2000是一个非常安全的操作系统.如果你并不想这样做,那么至少使用Windows NT.你可以锁定工作站,使得一些没有安全访问权的人想要获得网络配置信息变得困难或是不可能。
另一个技术是控制哪个人能够访问哪台工作站.例如,有一个员工叫Bob,并且你已经知道他是一个麻烦制造者.显然,你不想Bob能够在午餐的时候打开他朋友的电脑或是差上他自己的笔记本然后黑掉整个系统.因此,你应该使用工作组用户管理程序还修改Bob的帐号以便他只能从他自己的电脑(并且是在你指定的时间内)登录.Bob远不太可能从他自己的电脑上攻击网络,因为他知道别人可以将他追查出来。
另一个技术是将工作站的功能限定为一个哑终端,或者,我没有更好的词语来形容,一个"聪明的"哑终端.总的来说,它的意思是没有任何数据和应用程序驻留在独立的工作站上.当你将计算机作为哑终端使用的时候,服务器被配置成运行Windows NT 终端服务程序,而且所有的应用程序物理上都运行在服务器上.所有送到工作站的东西都不过是更新的屏幕显示而已.这意味着工作站上只有一个最小化的Windows版本和一份微软终端服务程序的客户端.使用这种方法也许是最安全的网络设计方案。
使用一个"聪明"的哑终端就是说程序和数据驻留在服务器上但却在工作站上运行.所有安装在工作站上的是一份Windows拷贝以及一些指向驻留在服务器上的应用程序的图标.当你点击一个图标运行程序时,这个程序将使用本地的资源来运行,而不是消耗服务器的资源.这比你运行一个完全的哑终端程序对服务器造成的压力要小得多。
技巧五:使用流行的补丁程序微软雇佣了一个程序员团队来检查服务器安全漏洞并修补它们.有时,这些补丁被捆绑进一个大的软件包并作为服务包(service pack)发布.通常有两种不同的补丁程序版本:一个任何人都可以使用的40位的版本和一个只能在美国和加拿大使用的128位的版本.128位的版本使用128位的加密算法,比40位的版本要安全得多.如果你现在还在使用40位的服务包并且生活在美国或是加拿大,我强烈建议你下载128位的版本。
有时一个服务包的发布也许要等上好几个月--很明显的,当一个大的服务器安全漏洞被发现的时候,只要有可能修补它,你就不想再等下去.好在你并不需要等待.微软定期将重要的补丁程序发布在它的FTP站点上.这些热点补丁程序是自上一次服务包发布以后被公布的安全修补程序.我建议你经常查看热点补丁.记住你一定要按逻辑顺序使用这些补丁.如果你以错误的顺序使用它们,结果可能导致一些文件的版本错误,Windows也可能停止工作。
技巧六:使用一个强有力的安全政策要提高安全性,另一个你可以做的工作就是制定一个好的,强有力的安全策略.确保每一个人都知道它并知道它是强制执行的.这样的一个政策需要包括对一个在公司机器上下载未授权的软件的员工的严厉惩罚。
如果你使用Windows 2000 Server,你就有可能指定用户特殊的使用权限来使用你的服务器而不需要交出管理员的控制权.一个好的用法就是授权人力资源部来删除和禁用一个帐号.这样,人力资源部就可以在一个行将走人的员工知道自己将被解雇以前就删除或是禁用他的用户帐号.这样,不满的员工就不会有机会来搅乱公司的系统了.同时,使用特殊用户权限,你就可以授予这种删除和禁用帐号权限并限制创建用户或是更改许可等这些活动的权限了。
试一试免费的TechProGuild吧! 如果你觉得这篇文章有用,可以看看TechRepublic的TechProGuild注册资源,它提供有深度的技术文章,覆盖了一些IT的主题,包括Windows服务器和客户端平台,Linux,疑难解答问题,和数字网络项目的难点,以及NetWare.拥有一个TechProGuild的帐户,你还可以在线阅读流行的IT工业书籍的全文.点击这里注册享受30天免费的TechProGuild试用期。
技巧七:反复检查你的防火墙我们的最后一个技巧包括仔细检查你防火墙的设置.你的防火墙是网络的一个重要部分因为它将你公司的计算机同互联网上那些可能对它们造成损坏的蛊惑仔们隔离开来。
你首先要做的事情是确保防火墙不会向外界开放超过必要的任何IP地址.你总是至少要让一个IP地址对外界可见.这个IP地址被使用来进行所有的互联网通讯.如果你还有DNS注册的Web服务器或是电子邮件服务器,它们的IP地址也许也要通过防火墙对外界可见.但是,工作站和其他服务器的IP地址必须被隐藏起来。
你还可以查看端口列表验证你已经关闭了所有你并不常用的端口地址.例如,TCP/IP 端口80用于HTTP通讯,因此你可能并不想堵掉这个端口.但是,你也许永远都不会用端口81因此它应该被关掉.你可以在Internet上找到每个端口使用用途的列表。
结论服务器安全问题是一个大问题.你不希望紧要的数据被病毒或是黑客破坏或是被一个可能用这些数据来对付你的人窃取.在本文中,我介绍了7个你应该在下一次安全审查中注意的地方。
安全狗服务器安全渗透检查
对于一些比较有专业需求的用户,我们也会帮助客户做高级渗透测试服务,帮助用户检查服务器是否存在安全隐患。
高级渗透测试服务(黑盒测试)是指在客户授权许可的情况下,安全狗资深安全专家将通过模拟黑客攻击的方式,在没有网站代码和服务器权限的情况下,对企业的在线平台进行全方位渗透入侵测试,来评估企业业务平台和服务器系统的安全性。
我们首先要了解分析数据包以及网站的各项功能,有助于我们在渗透测试中发现漏洞,修复漏洞,综合客户网站的架构,规模,以及数据库类型,使用的服务器系统,是windows还是linux,前期都要收集信息,做到知彼知己百战不殆。只有真正的了解了网站,才能一层一层地找出漏洞所在。网站使用的是php语言开发,采用是mysql数据库,客户服务器用的是linux centos系统,用phpstudy一键环境搭建,PHP的版本是5.5,mysql数据库版本是5.6.客户网站是一个平台,采用会员登录,功能基本都是一些交互性的,会员资料修改,银行卡添加,充值与提现,在线反馈等等。
下面开始整个渗透测试过程,首先客户授权进行网站安全测试,我们才能放开手的去干,首先检测的是网站是否存在SQL注入漏洞,我们SINE安全在检测网站是否有sql注入的时候都会配合查看mysql数据库的日志来查询我们提交的SQL语句是否成功的执行,那么很多人会问该如何开启数据库的日志,如何查看呢?首先连接linux服务器的SSH端口,利用root的账号密码进服务器,打开mysql的配置文件mysqld.cnf编辑general_log_file=(log日志的地址),general_log=1,在服务器里输入tail -f (log地址),来查看实时的数据库语句执行日志。当我们SINE安全技术在测试SQL注入漏洞的时候,就会实时的看到是否有恶意的SQL语句执行成功,如果有那么数据库日志就会出现错误提示,在渗透测试中是很方便的,也更利于查找漏洞。
这里不详细的分析代码了,我们在测试中发现平台的后台管理页面存在SQL注入漏洞,当管理员登录后台的时候我们看到guanlilogin.php里POST到guanlicheck.php来对管理员的账号密码进行验证,在验证的过程中guanlicheck.php并没有对传入过来的参数进行安全校验,导致SQL注入漏洞的产生,具体代码如下
代码里的getenv参数是获取前端用户的https头信息,通过数据比对,如果头信息大那么久返回0值然后再将IP赋值进去,通俗来讲就是没有任何的安全校验与拦截,直接将变量的IP带入到mysql据库。所以造成了SQL注入漏洞的产生。那么渗透测试中发现SQL注入漏洞就是高危漏洞,带来的危害较大,可以篡改数据,修改数据库,可以将管理员的密码重置,或者是获取所有的用户账号密码等信息。发生用户信息泄露,利用数据库的权限修改管理员密码登录后台进行下一步的提权操作,上传webshell,控制网站代码。
接下来还得检测网站的各项功能以及APP功能是否存在逻辑漏洞,越权漏洞,水平垂直等等,我们SINE安全技术详细的对每一个功能都测试很多遍,一次,两次,多次的反复进行,在用户重置密码功能这里发现有漏洞,正常功能代码设计是这样的流程,首先会判断用户的账号是否存在,以及下一步用户的手机号码是否与数据库里的手机号一致,这里简单地做了一下安全校验,但是在获取手机号验证码的时候并没有做安全校验,导致可以修改post数据包,将手机号码修改为任意手机号来获取验证码,利用验证码来修改重置密码。
如何修复渗透测试中的SQL注入漏洞呢?
在对前端输入过来的值进行安全判断,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码在GET请求,以及POST请求里,过滤非法字符的输入。 '分号过滤 --过滤 %20特殊字符过滤,单引号过滤,%百分号, and过滤,tab键值等的的安全过滤。如果对代码不是太懂的话,也可以找专业网站安全公司来处理,国内SINESAFE,启明星辰,绿盟都是比较专业的。逻辑漏洞的修复办法,对密码找回功能页面进行安全校验,检查所属账号的身份是否是当前的手机号,如果不是不能发送验证码,其实就是代码功能的逻辑设计出了问题,逻辑理顺清楚了,就很容易的修复漏洞,也希望我们SINE安全分享的这次渗透测试过程能让更多的人了解渗透测试,安全防患于未然。
服务器安全部署方案
1 权限设置
1>文件权限设置
在NTFS格式下,用户可以对不同的文件夹和文件设置不同的的权限,由此增强服务器的安全性.但是并不一定每个管理员都有耐心做好文件权限设置!为了加固安全:
·在每个根目录下设置文件夹权限,为SYSTEM和"特定管理员帐号"有完全权限,其余的都删除,并应用于该文件夹和子文件夹.
·为站点文件夹贴加Internet 来宾帐户的访问权限,并设置成只读,并应用于该文件夹和子文件夹.
·为用户文件夹贴加用户的访问权限,设置成除特权外的完全权限,并应用于该文件夹和子文件夹.
·由于NTFS权限的优先级是文件权限优先,所以对"重要文件",有必要个别设置文件访问权限.
2>帐号设置
仅给用户真正需要的权限,权限的最小化原则是安全的重要保障.
·慎重开通管理员组的帐号,设置2个管理员帐号,留1个做为备用帐号,并确保帐号不易被猜解并确保密码的强度,并为administrator改名.
·帐号的开放不易过多,确保一定的密码复杂度,禁用并删除不使用的帐号.
·加强管理,设置好每个帐号的权限,不轻易给特殊权限.
·检查是否有帐号被克隆.
·并设置好密码规则,所有帐户密码最好是8位以上,密码最好是特殊符号、数字、大小写字母的搭配.
·定期更改密码,密码最好熟记在脑中,不要在其他地方做记录;另外,如果发现日志中有连续尝试登陆的帐户,要立即更改其帐户名及口令.
2 安全策略
1>网络设置
·只保留TCP/IP协议,其他全部删除.
·禁用TCP/IP上的NetBIOS.
·只允许一些必要的端口(在TCP/IP筛选中实现)
如:
21 TCP FTP
80 TCP HTTP
3389 TCP TERMINAL SERVICES
5631 TCP PCANYWHERE
·删除没有必要的共享,包括默认共享.(具体见下文)
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters下增加一值
Name: AutoShareServer
Type:REG-DWORD
Value:0
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa 下增加一值
Name:restrictanonymous
Type:REG_DWORD
Value:0
2>服务
最少的服务可换来更大的安全,应该禁用没有必要的服务.
需要停掉的服务,如:
Alerter
Automatic Updates
Background Intelligent Transfer Service
ClipBook
Computer Browser
DHCP Client,Distributed File System
Error Reporting
Help and Support
Intersite Messaging
Kerberos Key Distribution Center
NTLM Security Support Provider
Network Location Awareness
Performance Logs and Alerts
Remote Registry Service
Routing and Remote Access,Server
TCP/IP NetBIOS Helper Service
Terminal Services,Windows Installer
Windows Management Instrumentation Driver Extensions
WMI Performance Adapter
等等.
3>需要在注册表中修改的内容
·禁止C$、D$、ADMIN$一类的缺省共享(server版)
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters
AutoShareServer、REG_DWORD、0x0
·禁止C$、D$、ADMIN$一类的缺省共享(pro版)
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters
AutoShareWks、REG_DWORD、0x0
·限制IPC$缺省共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa
restrictanonymous REG_DWORD 0x0 缺省
0x1 匿名用户无法列举本机用户列表,可禁止139空连接
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
修改数据包的生存时间(TTL)值
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)
·防止SYN洪水攻击
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
SynAttackProtect REG_DWORD 0x2(默认值为0x0)
·禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/interface
PerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
·防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
EnableICMPRedirects REG_DWORD 0x0(默认值为0x1)
·不支持IGMP协议
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
IGMPLevel REG_DWORD 0x0(默认值为0x2)
·设置arp缓存老化时间设置
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
·禁止死网关监测技术
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
EnableDeadGWDetect REG_DWORD 0x0(默认值为ox1)
·不支持路由功能
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
IPEnableRouter REG_DWORD 0x0(默认值为0x0)
4>组策略部分
组策略可以组建一个强大的防火墙,以下只是针对关键的几处进行修改!
·在本地安全策略->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占用系统资源而且会导致你根本没空去看,这样就失去了审核的意义.:
·在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
·在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
·本地安全策略->安全选项中
重命名系统管理员帐号
不允许SAM帐户的匿名枚举 启用
·本地安全策略->用户权限分配中设定
允许本地登陆 //个别管理员帐号
拒绝本地登陆 guests,users,IIS_WPG,Debugger Users
拒绝从网络访问此计算机 匿名登录;内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户
通过终端服务允许登陆 //个别帐号
通过终端服务拒绝登陆 guests
5>其他
除此之外,还有必要将/System32/cmd.exe和command.com文件转移到其他目录或更名,定期手工更新,加强数据备份,日志分析(包括系统日志,审核日志,IIS日志,FTP日志...)等等.
二 internet安全
1 IIS部分
·将IIS目录和数据与系统磁盘分开,保存在专用磁盘空间内.
·只安装管理器、公共文档和WWW服务.
·在IIS管理器中删除必须之外的任何没有用到的映射(保留.asp .asa等必要映射即可)
·Web目录需要IUSR读写权限,IIS中只开放读取权限.关于执行,只仅限于脚本
·在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件.
·使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志.(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control).
·程序安全:
·涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
·需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面.
·防止ASP主页.inc文件泄露问题;
·防止UE等编辑器生成some.asp.bak文件泄露问题.
·为.mdb应用解析,选个可执行文件,并限制动作,以此防止ACCESS数据库被下载.
·能执行脚本的地方不允许写入文件,能写入文件的地方不允许运行教本.以此防止网页木马.
2 FTP部分
禁止对FTP的匿名访问.
注意用户权限的开放度.
关注FTP服务器漏洞信息,及时最好软件更新.
关注服务器的访问日志,对可疑的访问进行记录.
3 SQL部分
针对MS SQL SERVER的安全防御方案
1>防御MS SQL SERVER服务本身的漏洞解决方案
·使用网络防火墙过滤非本地对MS SQL SERVER的服务请求.
最简单的方法就是在MS SQL SERVER本地主机上安全如天网之类的个人防火墙,添加下面的规则群:
规则一:允许本机访问本地的TCP1433与UDP1434端口
规则二:阻止所有地址访问本机的TCP1433与UDP1434端口
注:规则一的优先执行级别必须比规则二高.
这样就可以了.
·定期使用MBSA扫描MS SQL SERVER的服务器,并确保MS SQL SERVER的补丁版本为最新版.(MBSA的使用可访问http://demonalex.nease.net/mbsa/index.html)
·检查是否存在弱口令问题.
2>防止SQL注入脚本攻击的解决方案
·修改IIS目录的默认设置路径.
·使用SecureIIS过滤特殊字符/字符串.
特殊字符/字符串包括:
有可能被攻击者利用的SQL语句:
select、having、group、from、where、update、insert、create、exec、execute
有可能被攻击利用的扩展存储过程:
xp_、sp_
一些特殊的符号:
@、%、;、'、"、!、--、1=1
·在IIS中设置特殊的出错信息,保证攻击者不能在出错信息中得到任何他们想需要得到的信息.
具体操作如下:
打开IIS中WEB服务的"属性"->"主目录"一栏->"配置..."按钮->"应用程序调试"一栏->选定"发送文本错误消息给客户"->"确定"
·在调用数据库时尽可能不使用操作员(dbo)或sa帐号,以减低被入侵的风险性.
·保证网站所使用的脚本源码是保密的.
·加强管理员入口路径的强壮度.
3>SQL服务器安全加固
·MDAC升级
安装最新的MDAC(http://www.microsoft.com/data/download.htm)
·密码策略
由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号.新建立一个拥有与sa一样权限的超级用户来管理数据库.同时养成定期修改密码的好习惯.数据库管理员应该定期查看是否有不符合密码要求的帐号.比如使用下面的SQL语句:
Use master
Select name,Password from syslogins where password is null
·数据库日志的记录
核数据库登录事件的"失败和成功",在实例属性中选择"安全性",将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件.
·管理扩展存储过程
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门.请把它去掉.使用这个SQL语句:
use master
sp_dropextendedproc '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
·防TCP/IP端口探测
在实例属性中选择TCP/IP协议的属性.选择隐藏 SQL Server 实例.
请在上一步配置的基础上,更改原默认的1433端口.
在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server.
·对网络连接进行IP限制
使用操作系统自己的IPSec可以实现IP数据包的安全性.请对IP连接进行限制,保证只有自己的IP能够访问,拒绝其他IP进行的端口连接.也可利用软件防火墙设置.
4.网页代码部分
·添加SQL防注入代码,修补目前存在的SQL注入漏洞.
·关注所使用的源代码(如IPB论坛或留言本等)的漏洞信息,及时加固站点安全.
·网页代码的安全性很重要!出于本人在此领域研究还比较浮浅,这个问题还得留给编程人员去考虑!
客服电话:159-6020-8552
工作时间:9:00-18:00 (工作日)
意见建议:safewos@qq.com