精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的安全★>>ASP网络安全手册(四)

主题:ASP网络安全手册(四)
发信人: gss_wc(天人)
整理人: dongbao(2001-04-08 09:39:10), 站内信件
六 ASP安全建议 
如何设置才能使ASP更加安全呢?以下我们重点来谈谈ASP安全方面要注意的问题。我们在第五部分"ASP漏洞和解决方法"中针对某些漏洞,也提出了相应的安全建议,这部分就不再重复。 
  在这部分的后面还要介绍些可扫描ASP漏洞的工具。 


1 安装NT最新的补丁 

目前最新的补丁是NT Option Pack 6.0.,微软的主页有最新的补丁。一般来说微软都会及时的公布最新的漏洞和补丁。目前IIS最新是5.0。Windows2000自带IIS5.0. 
IIS 5.0新功能如下: 
安全性上:包括摘要式验证、整合的Windows验证、SGC (Server-Gated Cryptography ) 、Microsoft Certificate Services 2.0、集区处理程序之程序保护等。 
管理上:包括IIS重新激活、站台CPU使用时间的限制、CPU资源使用记录、使用终端机服务远程管理IIS、自订错误讯息等。 
Internet标准上:包括WebDAV(Web Distributed Authoring and Versioning)、FTP重新激活、HTTP压缩等。 

Active Server Pages:包括新的转向方法(Server.Transfer与Server.Execute方法)、新的错误处理功能(Server.GetLastError方法)、无指令.asp的执行速度增快、可安装组件的效能调升、Scriptlet支持、使用cookie取得浏览器信息、自动增减执行绪(executing threads)、SRC服务器端包含功能、Script Encoder编码保护等。 
更具体的功能介绍请参见其它资料。 


2 关闭没有用的服务和协议 

"尽量少开没用到的服务",这永远是网络安全的准则。如果开启了某个服务,你就要面对不少的漏洞困扰,更重要的是你还要时时提防未来的由这个服务所引起的漏洞。 
比如,你不使用ftp,那就把FTP关了,不然你就要发费大量的精力和金钱去应付那些什么DOS,缓冲区溢出之类的漏洞。NETBIOS也是windows的一大安全隐患,我想目前服务器很少需要Netbios。再如你的IIS安装了index server 服务,那你至少要面对三个以上的有关这个服务的漏洞,因此如果你没用到INDEX SERVER服务,也大可删除他. 
同样的道理,我们要安装最少的协议。千万不要安装点对点通道通讯协议。此外,还必须小心地配置TCP/IP协议。在TCP/IP的属性页中选择"IP地址"项目,然后选择"高级"。在弹出来的对话框中选择"安全机制",这样你可以禁止UDP,然后开启IP端口6和TCP端口80。当然开不开这些端口主要是看你的情况了。 
IIS中的应用程序映射也是个很大的安全漏洞,请在IIS中设置好扩展名和可执行路径,删除没用的扩展名。 


3 设置好你的NT 

NT缺省安装时,系统账号Administrator和Guest被自动设置,很多攻击者就是利用这些账号来猜密码,从而进入你的系统。虽然没有足够的耐心,很难猜中这些密码,但是为了安全起见,建议把这些账号重新命名或者删除。 
NT SERVER的系统策略编辑器非常有用。按"管理工具"->"系统策略编辑器"就可以进入,然后选择"文件"->"打开注册表",并选择"本地计算机"图标,就可以认真配置了。主要设置以下几项: 

1. 取消:网络->系统规则更新->远程更新 
2. 取消:WINDOWS NT网络->共享->创建隐藏的驱动器共享 
3. 设置:Windows NT远程访问下面的各项 
4. 设置:Windows NT系统->登录中各个项目。包括设置登录标记;不允许从"身份验证对话框"关机;不显示上次登录的用户名. 
5. 设置:WINDOWS NT系统->文件系统中的"不为长文件名创建8.3文件名" 

不要使用远程管理软件,除非不得已。由于NT不太支持远程管理,所以你可能会安装Reachout或者PC anywhere来管理。可是,当你安装了这些软件,你就不得不开启TCP/IP的所有端口。 
在你离开服务器的时候,请按"Ctrl+del+alt",并选择"锁定工作站"。 


4 磁盘文件格式使用比较安全的NTFS格式 

NTFS 权限是 Web 服务器安全性的基础,它定义了一个或一组用户访问文件和目录的不同级别。当拥有 Windows NT 有效帐号的用户试图访问一个有权限限制的文件时,计算机将检查文件的 访问控制表 (ACL)。该表定义了不同用户和用户组 所被赋予的权限。例如,Web 服务器上的 Web 应用程序的所有者需要有"更改"权限来查看、更改和删除应用程序的 .asp 文件。但是,访问该应用程序的公共用户应仅被授予"只读"权限,以便将其限制为只能查看而不能更改应用程序的 Web 页。 

5 对目录设置不同的属性,如:Read、Excute、Script 

您可以通过配置您的 Web 服务器的权限来限制所有用户查看、运行和操作您的ASP 页的方式。不同于 NTFS 权限提供的控制特定用户对应用程序文件和目录的访问方式, Web 服务器权限应用于所有用户,并且不区分用户帐号的类型。 对于要运行您的 ASP 应用程序的用户,在设置 Web 服务器权限时,必须遵循下列原则: 
对包含 .asp 文件的虚拟目录允许"读"或"脚本"权限。 
对 .asp 文件和其他包含脚本的文件(如 .htm 文件等)所在的虚目录允许"读"和"脚本"权限。 
对包含 .asp 文件和其他需要"执行"权限才能运行的文件(如 .exe 和 .dll 文件等)的虚目录允许"读"和"执行"权限。 


6 维护 Global.asa 的安全 

为了充分保护 ASP 应用程序,一定要在应用程序的 Global.asa 文件上为适当的用户或用户组设置 NTFS 文件权限。如果 Global.asa 包含向浏览器返回信息的命令而您没有保护 Global.asa 文件,则信息将被返回给浏览器,即便应用程序的其他文件被保护。 


7 不要把密码,物理路径直接写在程序中 

很难保证您的ASP程序是否会给人拿到,即使你安装了最新的补丁。为 
了安全起见,应该把密码和用户名保存在数据库中,使用虚拟路径。 


8 在程序中记录用户的详细信息 

这些信息包括用户的浏览器、用户停留的时间,用户IP等。其中 
记录IP是最有用的。 
可用下面的语句了解客户端和服务端的信息: 

<%for each name in request.servervariables%> 

<%=name%> : 


<%=request.servervariables(name)%> 



<%next%> 


如果我们可以记录了用户的IP,就能通过追捕来查用户的具体地点。 
当然如果用户通过代理来浏览网页,上面的方法只能看到用户代理的IP,而不能记录用户真实的IP。ASP没有提供查看客户端网卡物理地址(即MAC)的功能。 


9 Cookie 安全性 

ASP 使用 SessionID cookie 跟踪应用程序访问或会话期间特定的 Web 浏览器的信息。这就是说,带有相应的 cookie 的 HTTP 请求被认为是来自同一 Web 浏览器。Web 服务器可以使用 SessionID cookies 配置带有用户特定会话信息的 ASP 应用程序。例如,如果您的应用程序是一个允许用户选择和购买 CD 唱盘的联机音乐商店,就可以用 SessionID 跟踪用户漫游整个应用程序时的选择。 
SessionID 能否被黑客猜中? 
为了防止计算机黑客猜中 SessionID cookie 并获得对合法用户的会话变量的访问,Web 服务器为每个 SessionID 指派一个随机生成号码。每当用户的 Web 浏览器返回一个 SessionID cookie 时,服务器取出 SessionID 和被赋予的数字,接着检查是否与存储在服务器上的生成号码一致。若两个号码一致,将允许用户访问会话变量。这一技术的有效性在于被赋予的数字的长度(64 位),此长度使计算机黑客猜中 SessionID 从而窃取用户的活动会话的可能性几乎为 0。 
加密重要的 SessionID Cookie. 
截获了用户 sessionID cookie 的计算机黑客可以使用此 cookie 假冒该用户。如果 ASP 应用程序包含私人信息,信用卡或银行帐户号码,拥有窃取的 cookie 的计算机黑客就可以在应用程序中开始一个活动会话并获取这些信息。您可以通过对您的 Web 服务器和用户的浏览器间的通讯链路加密来防止 SessionID cook ie 被截获。 


----
天茫云寂凄凉路,
人瀚情孤痛断魂。

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]