网络通信 频道

网络抵御Code-Red红色代码蠕虫袭击

本文将讨论最近出现的Code-Red红色代码蠕虫以及它们对网络和主机的危害。目前,思科产品可以利用许多技术消除蠕虫带来的危害,这些技术不但包括入侵检测和分组过滤等安全技术,还包括虚拟LAN(VLAN)、分段、分组分类和内容服务。除这些技术外,本文还将介绍怎样将SAFE蓝图与安全非常好的实践和安全网络设计结合在一起,共同抵御Code-Red红色代码蠕虫及其它袭击。最后,本文还将说明这些技术在抵御Code-Red红色代码蠕虫时使用的配置。

蠕虫的起源和发展

Code-Red红色代码的背景
2001年7月19日,星期二,Code-Red红色代码至少在359,104台主机上肆虐了大约13小时。这个统计数据来自Cooperative Association for Internet Data Analysis(CAIDA),它充分说明了Code-Red红色代码病毒的危害程度和传播能力。对于不熟悉蠕虫的主机,它们是代码的自传播部分,利用的是计算机软件中的缺陷。在这种情况下,Code-Red红色代码蠕虫将利用Microsoft Internet Information Server(IIS)4和5的远程漏洞。蠕虫将向主机发送URL,致使IIS的一部分——Microsoft的Index Server的缓冲器溢出。缓冲器溢出后,蠕虫就能够执行随机代码。Code-Red红色代码将在受感染的计算机上复制自身,并试着感染其它主机。

蠕虫有两个版本。第一个版本,最初分析蠕虫的eEye Digital Security将其称为CRv1,这种蠕虫在随机产生目标IP地址时会产生一个缺陷。CRv1最初于7月15日通过非正式渠道公开报告,这种蠕虫使用随机号码产生器,号码产生器利用静态种子获得将袭击的新IP地址。这种静态种子意味着它能够重复不断地攻击同一批机器,因而会限制蠕虫的传播。CRv1能传播,但速度不快,效果也不好。7月19日早晨,人们又发现了CRv2蠕虫。CRv2与CRv1类似,所不同的是,它使用了更好的随机号码产生器,能够生成目标IP地址。另外,CRv2还能够消除临时Web站点外观。CRv2的复制能力极强。能够在这么短的时间里感染359,104台主机说明,这种蠕虫的传播能力也极强。根据CAIDA的统计,在高峰时,CRv2每分钟能够感染2000多台新主机。

Code-Red红色代码 II(请别与CRv2相混淆)首先由Security Focus ARIS分析家小组报告。他们将蠕虫的复制品发送到了eEye的相关部门,这个部门对蠕虫进行了解剖,并发表了分析报告。Code-Red红色代码 II与CRv1和CRv2类似,也使用缓冲器溢出,并启动多个线程传播自己,惟一不同的是,它完全从内存运行。Code-Red红色代码对英文系统的破坏力更强,Code-Red红色代码 II则更擅长破坏中文系统。

Code-Red红色代码 CRv1和CRv2的功能
Code-Red红色代码 CRv1和CRv2的功能相似,它们都先建立99个线程,以感染其它系统。CRv1使用第100个线程检查系统是否为英文系统。如果是英文系统,则第100个线程稍事休息,让系统传播蠕虫,而不再对系统给予太多的关注。几小时之后,Web站点将显示以下消息:

“Welcome to http://www.worm.com!, Hacked By Chinese!”

为显示这条消息,蠕虫实际上截获了与端口80的连接。任何文件都没有被修改。CRv2不会污染Web站点,但是,当它感染英文系统时,会用第100个线程进行无害的重定向。如果CRv1或CRv2遇到了c:\notworm file,它们将进入休眠状态。如果没有notworm文件,蠕虫将在每月的1-19日传播,分布式拒绝服务(DDoS)则在某月的20-28日袭击了前白宫Web站点,从28日到月底进入休眠期,到下个月的20-28日再进入攻击阶段。DDoS袭击的方法是通过多个受感染系统向某个目标发送大量分组,使之无法提供正式服务。CRv1 DDOS袭击了白宫Web站点(198.137.240.91)的硬编码前IP地址,CRv2则从www.whitehouse.gov得到了IP地址。

Code-Red红色代码 II的功能
Code-Red红色代码 II与Code-Red红色代码完全不同,其大部分功能都与Code-Red红色代码截然不同。当Code-Red红色代码 II感染某系统时,它首先在非中文系统上建立300个线程,在中文系统上建立600个线程。对于非中文系统,蠕虫将用一天时间感染其它系统;对于中文系统,则用两天时间。之后,蠕虫将重新启动系统,使文件系统保护机制失效。与CRv1和CRv2不同,Code-Red红色代码 II只感染Windows 2000,而不感染Windows NT系统。另外,Code-Red红色代码 II还使用一种特殊的算法确定下一个感染目标。它更倾向于攻击前两段与自身IP地址相同的系统。除此以外,它的攻击对象还包括第一段相同,或者完全随机的IP地址。按这种方式选择目标的原因是,许多公司的Code-Red红色代码 II攻击都来自内部。一般情况下,企业并没有设置过滤器,禁止自己的Web服务器攻击公司内部的Web服务器。另外,Code-Red红色代码 II还留下了几扇后门。首先,它在两个目录中留下了一份cmd.exe文件,并更名为root.exe。这份文件可用于在服务器上执行任意命令。其次,它在Web服务器上的驱动器C和驱动器D生成了虚拟安装。即使删除了root.exe文件,袭击者仍然能够访问C或D上的cmd.exe文件。

蠕虫对网络及其主机的危害
DDoS袭击不但会袭击受感染的站点,还会袭击受损主机的局域网。根据网络中受感染的Web站点的数量,最终产生的大量流量可能会殃及局域网,例如因不明流量剧增而出现网络速度变慢,网络和设备无法使用等问题。受感染系统提供的服务的速度肯定会降低,从而影响正常服务的运行。

思科对消灭Code-Red红色代码的建议

为每个易损系统打补丁
对付Code-Red红色代码及其变种的最有效的方式是对所有易损系统打补丁。但是,对于局域网中无法控制的用户系统,打补丁很难;如果通过虚拟专用网(VPN)或远程接入服务器(RAS)与网络远程连接,就更麻烦。但是,可以用一种简化方式确定哪些设备易损,即利用安全审计工具寻找漏洞。以下站点提供了防止Microsoft和思科产品受感染的方法:

• http://www.cisco.com/warp/public/707/cisco-Code-Red-worm-pub.shtml
• http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS01-033.asp

许多厂商的产品都安装和使用ISS,以便为远程管理和报告提供Web接入,而这也是需要打补丁的漏洞。如果不能及时为所有系统打补丁,应考虑采用下节讨论的各项技术。另外,用户还可以主动利用这些技术对付Code-Red红色代码的变种或其它蠕虫发起的攻击。

安全技术
本节将讨论思科产品中用于抵御Code-Red红色代码及其它袭击的各种技术。首先讨论安全技术,也称为方法。抵御袭击的其它技术将在下一节中讨论,利用这些技术,可以为未实施安全技术的网络提供临时解决方案。如果想详细了解这些技术,或者想了解抵御Code-Red红色代码的配置,请参考SAFE白皮书:
http://www.cisco.com/go/safe

基于主机的入侵防护系统
思科公司基于主机的入侵防护系统(CSA)可以检测到安装了CSA的主机上的袭击。它能够截获OS和应用调用,保护OS和应用配置,检查进入的服务请求,并分析本地记录文件,停止可疑行为。

发现Code-Red红色代码及其变种时,CSA将自动阻止传播,另外,它还会向中央控制台发送警报,告知管理员它已截获了袭击企图。

为在未来抵御Code-Red红色代码以外的其它袭击,应考虑在服务器上安装CSA,防患于未然。

基于网络的入侵检测系统
基于网络的入侵检测系统(NIDS)首先检测网络上发生的袭击,然后自己采取相应的措施,或者通知管理系统,由管理员采取应对措施。发现袭击的方法是寻找网络内流量中的签名。袭击检测将触发NIDS发送警报,然后采取预定行动。两种常用的应对措施是规避和TCP复位。由于NIDS不在数据路径中(即接收穿过网络的分组,并提供路由),因而不能滤除袭击中的第一个分组。后续分组可以通过规避功能滤除,即修改上游访问控制设备,阻挡来自袭击系统的IP地址的进一步接入。TCP重设可以发送好似从接收设备到袭击设备的伪装复位,从而中断TCP连接。

如果想在网络上执行规避功能,可以参考SAFE白皮书,了解使用这种功能需解决的特殊问题。由于CRv1和CRv2袭击包含在同一个包中,NIDS无法停止袭击。但是,NIDS可以在CRv1和CRv2袭击穿过网络时发送警报。由于NIDS能够象Code-Red红色代码 II使用多个分组那样使用TCP复位,因而极有可能能够停止Code-Red红色代码 II袭击。如果想详细了解NIDS,请参考:
http://www.cisco.com/go/ids

访问控制
状态防火墙——提供多种安全特性,主动抵御Code-Red红色代码。首先,与检查是否符合适当协议要求的方法相比,状态化检测机制可以更加精细地控制连接企图。利用这种过滤,只有向内连接能够到达Web服务器。另外,它还禁止Web服务器启动向外连接,从而限制了蠕虫的自传播。这种过滤特别适合DMZ Web服务器部署。正如SAFE中所讨论的那样,Web服务器一般不需要建立向外连接,即Web冲浪。多数情况下,它们只需要响应向内Web 请求。其次,由于状态化防火墙能够限制与服务器的向内连接,因而不会增加服务器的负担。对于Code-Red红色代码,这种限制能够阻止恶意连接企图。

入口过滤——一般由网络周边的访问控制功能执行,用于阻止对非公开主机和服务的接入。例如,如果主机或设备没有主动参与提供公开服务,就最好禁止对这些主机或联网设备的向内连接请求。对于Code-Red红色代码,应禁止进入的HTTP连接接入任何可以利用的用户系统或者非公开Web服务器。但是,这些过滤器应该允许接入公开Web的站点或电子商务服务器。理想情况下,公开服务器应该有严格的管理控制程序,并安装最新的补丁。入口过滤应严格阻止针对用户系统的Code-Red红色代码入侵企图。

出口过滤——一般也用于在网络周边实施访问控制。这种过滤方法可以阻止本地主机访问网络外部。应禁止不需要向外接入互联网的设备,例如多数联网设备或者只服务于内部环境的Web服务器,发起向外连接。对于Code-Red红色代码,如果设备已被感染,则无法对外部网络发动攻击,因为流量将在网络周边被截获和丢弃。这种设置还能防止DDoS袭击波及互联网链路,从而干扰向外或向外的合法流量。除了WAN边缘的出口过滤外,网络中其它层次的出口过滤也可以防止受感染的公共Web服务器(或者Web集群的整个网段)感染受边缘入口过滤保护的专用内部服务器。如果想详细了解访问控制和过滤,请参考SAFE白皮书。

专用VLAN
专用VLAN能够限制VLAN中的哪些端口可以与处于同一VLAN中的其它端口通信。一般情况下,部署专用VLAN的目的是使某个网段上的主机只能与其默认网关通信,而不能与网络上的其它主机通信。例如,如果Web服务器遭到了Code-Red红色代码的破坏,即使其它Web服务器也在这个网段中,也不会被感染。这种访问控制的实施方式是将主机分配给隔离端口或小组端口,有效地减小受感染主机可能造成的危害。隔离端口只能与异类端口(一般为路由器)通信。小组端口既可以与异类端口通信,也可以与同组中的其它端口通信。

如果想详细了解专用VLAN,请访问:
http://www.cisco.com/warp/public/473/90.shtml

有助于消灭Code-Red红色代码的其它思科网络技术

基于网络的应用识别
基于网络的应用识别(NBAR)是Cisco IOS® 软件中的分类引擎,可以通过URL/多目的互联网邮件扩展(MIME)类型和使用动态端口分配技术的协议识别多种应用级协议,包括HTTP。NBAR对流量进行分类之后,可以将相应的服务质量(QoS)策略应用到流量等级。NBAR能识别CRv1和CRv2 URL请求,但不能识别Code-Red红色代码 II URL请求,因为Code-Red红色代码 II通过多个分组传播GET请求,而NBAR目前只检查第一个分组。与NIDS不同,NBAR可以立即对CRv1和CRv2流量进行分类,并在流量到达服务器之前丢弃分组。另外,NBAR还可以双向使用,减轻Code-Red红色代码的危害。

如果想详细了解NBAR,请访问:
http://www.cisco.com/univercd/cc/td/doc/product/software/ios121/121newft/121limit/121e/121e2/nbar2e.htm

内容引擎和加速器
当对内容敏感的设备将某些通常由Web服务器等内容设备执行的功能卸载到高速网络设备上时,需要处理内容分布。由于这些设备是内容请求者与内容服务器之间的中介,因而可以改变连接的建立方式。这些设备能够按照其惟一的HTTP请求识别Code-Red红色代码袭击,并在Code-Red红色代码到达Web服务器之间将其丢弃。这种功能可以由两种方法完成,即内部块/允入表和Websense集成。利用内部块/允入表,可以利用内部块/允入特性允许或拒绝一组URL通过。管理员可以上载包含允许或禁止通过的URL表的文本文件。表中列出的URL利用子串从URL开头进行匹配。思科建议客户不要用中高速使用这种技术。如果内容引擎(CE)负担过重,Web高速缓存控制协议(WCCP)交换机就进入旁路模式,停止过滤,直到条件满足为之。

如果想详细了解内容引擎,请参考:
http://cco/warp/public/779/largeent/learn/technologies/content_networking

陷井路由器
利用设置陷井路由器,可以在没有安装NIDS时确定环境中的哪些系统受到了感染。在这种情况下,使用的是互联网号码分配当局(IANA)尚未分配、Code-Red红色代码无意中使用的地址。陷井路由器(只)在本地宣传这些网络,试图到达这些网络的所有企图都将被送至路由器。收到之后,这些请求可以被记录,也可以被丢弃。在记录的结果中,将提供一组受感染的主机。

如果想详细了解怎样配置这种功能,请参考:
 http://www.cisco.com/public/cons/isp/security/

SAFE蓝图
SAFE蓝图使用上述所有安全技术抵御Code-Red红色代码,因此,可以说用SAFE蓝图对付Code-Red红色代码是“万无一失”的。入口和出口过滤除用在网络边缘外,还几乎用在所有SAFE模块之间。这种过滤不但能限制受感染的服务器向外接入,还能防止向内感染用户系统。除过滤外,状态防火墙不但能同时保护用户和服务器网段,还能为公共服务器提供DdoS连接速率限制。NIDS不但部署在所有公共网段,用于识别Code-Red红色代码感染企图;还部署在网络边缘过滤和状态检测之后,确定是否有病毒试图穿过网络边缘。CSA不但需要安装在所有公用服务器上,有时甚至需要安装在不执行互联网接入的关键内部服务器上,防止被没有安全控制的用户系统感染。专用VLAN部署在公共服务网段,用多台公共服务器预防信任利用。

结论
本文讨论的技术不但能消除Code-Red红色代码及其变种造成的潜在危害,还能抵御绝大多数袭击。需要牢记的是,安全性在基础设施中的地位非常重要,前面的讨论就证实了这一点。防止网络及其资源受Code-Red红色代码侵害只是安全防御的第一步。只有积极主动地进行防御,才能保护网络免受Code-Red红色代码及未来病毒的袭击。建立安全策略、实施某些功能并定期进行内部或外包形势评估可以保证网络的安全。如果想详细了解应该怎样保护网络,请参考SAFE蓝图:

http://www.cisco.com/go/safe

与其它特性一样,如果希望实现前面讨论的某些特性,必须保证设备具有足够的CPU资源。需要注意的是,实现这些功能所增加的负担远远低于遭受内部Code-Red红色代码袭击后增加的负担。

需要特别注意的是,SAFE蓝图于2000年10月公布它无需修改设计或实施方案就可以用于对付Code-Red红色代码。在检测ISS袭击和Code-Red红色代码时,只需定期更新NIDS签名即可。Code-Red红色代码和其它严重的网络病毒提醒我们,最好不要被动地设计网络安全性。只有制定了良好的安全策略,并以此为基础采用了综合网络安全防护方法,才能量化企业所冒的风险,并有效消除几乎所有的潜在威胁。

配置信息
本节将提供文中讨论的某些技术的配置样例,这些配置尚未作为SAFE的一部分进行防御功能测试,以后还需要进一步修改。

NIDS袭击签名
下面提供的签名将被添加到SAFE蓝图内许多模块的NIDS系统(Cisco Secure IDS 4210 Sensor、Cisco Secure IDS 4230 Sensor、入侵检测系统模块)中。

通过袭击企图接入索引服务器
字串:
“[Gg][Ee][Tt].*[.][Ii][Dd][Aa][\x00-\x7f]+[\x80-\xff]”

发生次数:1
端口80
如果Web服务器正在其它TCP端口(例如端口8080)上倾听,将需要为每个端口号生成独立的定制字串。

警报严重等级设置建议:
• 高(思科安全策略管理器[CSPM])
• 5(UNIX Director)

索引服务器接入缓冲器溢出Code-Red红色代码蠕虫
字串:
“[/]default[.]ida[?][a-zA-Z0-9]+%u”

注意:上述字串中不能有空格。

发生次数:1
端口80

如果Web服务器正在其它TCP端口(例如端口8080)上倾听,将需要为每个端口号生成独立的定制字串。

警报严重等级设置建议:
• 高(思科安全策略管理器[CSPM])
• 5(UNIX Director)

NBAR标记
这种配置中使用了Cisco 7206 VXR。丢弃分组的三种方法如下。应该注意的是,测试表明,NBAR监管对CPU使用率的影响极低。下述命令可以对Code-Red红色代码流量进行分类,并用第一个差分服务控制点(DSCP)值进行标注。

class-map match-any http-hacks
match protocol http url “*default.ida*”
policy-map mark-inbound-http-hacks
class http-hacks
set ip dscp 1
interface FastEthernet 2/0
service-policy input mark-inbound-http-hacks
interface ATM 4/0
service-policy input mark-inbound-http-hacks

带ACL块和记录的NBAR标记(可选)
以下命令使用DSCP标记拒绝分组从设备向外传输,并作相应的记录。启用访问控制表(ACL)记录时应认真考虑,保证巨额流量不会压垮路由器。

access-list 105 deny ip any any dscp 1 log
access-list 105 permit ip any any
interface ATM 4/0
ip access-group 105 out
interface FastEthernet 2/0
ip access-group 105 out

策略路由到Null0的NBAR标记
以下命令使用DSCP标记与策略路由丢弃分组。

access-list 106 permit ip any any dscp 1
route-map null_policy_route 10
match ip address 106
set interface Null 0
interface ATM 4/0
ip policy route-map null_policy_route
interface FastEthernet 2/0
ip policy route-map null_policy_route

NBAR监管丢弃
以下命令使用NBAR监管丢弃分组。
policy-map drop-inbound-http-hacks
class http-hacks
police 100000000 50000 50000 conform-action drop exceed-action drop
exit
interface ATM 4/0
service-policy input drop-inbound-http-hacks
interface FastEthernet 2/0
service-policy input drop-inbound-http-hacks
内容引擎(透明模式)
以下命令配置的块规则先使用常规表达式匹配Code-Red红色代码签名,然后丢弃分组。这种功能利用Cisco CE-550和CE-590内容引擎进行测试。
!CE blocking filter rule
rule block url-regex ^http://.*/default\.ida$

其它信息链接
思科系统公司对Code-Red红色代码的解决方法和需要的补丁: http://www.cisco.com/warp/public/707/cisco-Code-Red红色代码-worm-pub.shtml
Microsoft 对Code-Red红色代码的解决方法和需要的补丁: 
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS01-033.asp
思科技术帮助中心(TAC)为应对Code-Red红色代码作出的技术提示:
http://www.cisco.com/warp/customer/63/codered_index.shtml
eEye 提供的Code-Red红色代码文档:
http://www.eeye.com/html/Research/Advisories/AL20010717.html
http://www.eeye.com/html/Research/Papers/DS20010802.html
IIS漏洞说明和NIDS签名ID:
http://www.cisco.com/go/csec。搜索ID 3394。
计算机紧急响应小组(CERT)提供的Code-Red红色代码信息:
http://www.cert.org/advisories/CA-2001-19.html
http://www.cert.org/advisories/CA-2001-23.html
SAFE蓝图信息:
http://www.cisco.com/go/safe

思科安全产品和安全咨询信息:
http://www.cisco.com/go/security
http://www.cisco.com/go/securityconsulting
Cisco PIX ® Firewall:
http://www.cisco.com/warp/public/cc/pd/fw/sqfw500/
内容引擎/内容服务交换机(CE/CSS)内容联网设备:
http://www.cisco.com/warp/public/779/largeent/learn/technologies/content_networking/switch.html
Websense 内容过滤服务器:
http://www.cisco.com/pcgi-bin/ecoa/displayProfile?PARTNER_ID=8443

0
相关文章