信息来源:
http://sinbad.zhoubin.com
改善IIS5的安全性
我要评论
发信人: Sinbad <
anonymous@anonymous.com>
标 题: 改善IIS5的安全性
发信站: 辛巴达 (Fri Sep 27 10:11:59 2002)
发信人: Sinbad <
MicroBin@263.net>
标 题: 改善IIS5的安全性
发信站: 辛巴达 (Mon Oct 9 14:51:29 2000)
改善IIS5的安全性
by Sinbad
Sep 3, 2000
http://sinbad.dhs.org
1. 为虚拟目录设置合适的ACLs,参见下表:
-----------------------------------------------------------------
文件类型 ACLs
-----------------------------------------------------------------
CGI(.exe,.dll,.cmd,.pl) Everyone (X)
Administrators (Full Control)
System (Full Control)
-----------------------------------------------------------------
脚本文件(.asp) Everyone (X)
Administrators (Full Control)
System (Full Control)
-----------------------------------------------------------------
包含文件(.inc,.shtm,.shtml) Everyone (X)
Administrators (Full Control)
System (Full Control)
-----------------------------------------------------------------
静态内容(.txt,.gif,.html) Everyone (R)
Administrators (Full Control)
System (Full Control)
-----------------------------------------------------------------
为了省去为每个文件设置ACLs的麻烦,建议为不同的文件开辟不同的目录,然后把AC
Ls从目录继承下来至每一个文件。一般的目录结构如下所示:
c:\inetpub\wwwroot\myserver\static (.html)
c:\inetpub\wwwroot\myserver\include (.inc)
c:\inetpub\wwwroot\myserver\script (.asp)
c:\inetpub\wwwroot\myserver\executable (.dll)
c:\inetpub\wwwroot\myserver\images (.gif, .jpeg)
同时,要注意下面两个目录:
c:\inetpub\ftproot (FTP服务器)
c:\inetpub\mailroot (SMTP服务器)
这两个目录默认的ACLs是Everyone完全控制,但是根据你的需求可能要严格的调整。
如果你要Everyone可写,建议把这两个目录放在和IIS不同的分区上,同时使用Win20
00的磁盘限额工具来控制用户的可写空间。
2. 设置IIS log文件的ACLs
要确保IIS的Log文件的ACLs是这样的:
Administrators (Full Control)
System (Full Control)
Everyone (RWC)
这样可以防止恶意用户删除log文件来隐藏自己的踪迹。
3. 删除samples程序
IIS的samples程序往往是漏洞的根源,大部分都是没用的,应该删除之。
-----------------------------------------------------------------
samples 虚拟目录 绝对路径
-----------------------------------------------------------------
IIS samples \IISSamples c:\inetpub\iissamples
-----------------------------------------------------------------
IIS帮助 \IISHelp c:\winnt\help\iishelp
-----------------------------------------------------------------
Data Access \MSADC c:\program files\common
files\system\msadc
-----------------------------------------------------------------
4. 停用或者删除不需要的COM组件
大部分程序都用不到的一些组件都应该删除,可以避免安全隐患。比较出名的就是Fi
le System Object了,但是删除它的同时也会删掉Dictionary object。所以删除组件
的时候要特别注意它是哪些程序所需要的,比如Site Server 3.0就需要File System
Object。下面的命令将禁用File System Object:
regsvr32 scrrun.dll /u
5. 删除IISADMPWD虚拟目录
这个目录可以让你重设Windows NT或者Windows 2000的密码。尽管IIS5.0没有安装,
但是如果你是从IIS4升级过来的,它仍然没有被移除。如果你不是在Intranet中,服
务器连上了Internet,就一定要删除之。
6. 删除无用的脚本映射
IIS默认支持处理一些特定扩展名文件,如.asp、.shtm等等。当IIS接受到含有这些扩
展名的文件请求的时候,它将调用DLL来进行处理。如果你不需要其他的一些扩展名,
建议按以下步骤取消它们的映射:
1)打开Internet服务管理器。
2)右击Web服务器,选择属性。
3)选择:WWW Service | Edit | HomeDirectory | Configuration
根据以下表格删除相应的映射:
-----------------------------------------------------------------
如果你不需要。。。 删除
-----------------------------------------------------------------
Web上修改密码 .htr
-----------------------------------------------------------------
IDC连接数据库 .idc
(现在都用ADO)
-----------------------------------------------------------------
SSI .stm,.shtm,.shtml
-----------------------------------------------------------------
Internet打印 .printer
-----------------------------------------------------------------
Index Server .htw,.ida,.idq
-----------------------------------------------------------------
注意:除非你有充足的理由一定需要使用.htr功能,不然务必要删除.htr。
7. 检查<FORM>中用户的输入
现在基于80端口的攻击,一般都是从CGI程序的入口参数考虑。因此程序员必须要想到
用户输入数据的各种可能情况,并且进行过滤处理。下面给出一些例子:
过滤不是0-9a-zA-Z和_的代码:
Set reg = New RegExp
reg.Pattern = "\W+"
strUnTainted = reg.Replace(strTainted, "")
过滤|以后的字符:
Set reg = New RegExp
reg.Pattern = "^(.+)\|(.+)"
strUnTainted = reg.Replace(strTainted, "$1")
使用File System Object的时候一定要小心,如果被打开的文件名来自用户的输入,
用户可能企图打开一个串口或者打印机。下面的代码可以过滤文件名:
var strOut = strIn.replace(/(AUX|PRN|NUL|COM\d|LPT\d)+\s*$/i,"");
匹配字符串的语法和Perl5的差不多,请访问以下连接获得详细的信息:
http://msdn.microsoft.com/scripting/default.htm
http://msdn.microsoft.com/worksh ... scripting051099.asp
本文参考资料:
http://www.microsoft.com/technet/security/iis5chk.asp
--
※ 来源:.辛巴达 sinbad.dhs.org. [FROM: WWW]