网络通信 频道

恶意代码防范

恶意代码防范
1 什么是恶意代码

恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。按传播方式,恶意代码可以分成五类:病毒,木马,蠕虫,移动代码和复合型病毒.
1.1 蠕虫
蠕虫是目前危害最大的一种恶意代码攻击。蠕虫是一种可以自我复制的完全独立的程序,它的传播不需要借助被感染主机中的其他程序。蠕虫的自我复制不象其他的病毒,它可以自动创建与它的功能完全相同的副本,并在没人干涉的情况下自动运行。蠕虫是通过系统存在的漏洞和设置的不安全性(例如:设置共享)来进行入侵的。它的自身特性可以使它以及快的速度传输(在几秒中内从地球的一端传送到另一端)。其中比较典型的有Blaster和SQL Slammer。
根据国家计算机病毒应急处理中心通过对2004年计算机病毒情况的传播情况的监测汇总,蠕虫在2004年占有重要的位置,蠕虫由于其主动传播的特性,往往传播时间较长、形成危害较大,并且现在的蠕虫病毒多融入了黑客、木马等功能,还会还会阻止安全软件的运行,使得病毒的功能性更加强大。
1.2 传统病毒
传统病毒一般都具有自我复制的功能,同时,它们还可以把自己的副本分发到其他文件、程序或电脑中去。病毒一般镶嵌在主机的程序中,当被感染文件执行操作的时候,病毒就会自我繁殖(例如:打开一个文件,运行一个程序,点击邮件的附件等)。由于设计者的目的不同,病毒也拥有不同的功能,一些病毒只是用于恶作剧,而另一些则是以破坏为目的,还有一些病毒表面上看是恶作剧病毒,但实际上隐含破坏功能。病毒可以分为以下几类:感染文件病毒、感染引导区病毒、宏病毒和恶作剧电子邮件。
 感染文件病毒
感染文件病毒会把自己加载到可执行文件中,例如:WORD、电子表格、电脑游戏。当病毒感染了一个程序后,它就会自我复制去感染系统中的其他程序,或者是其他通过共享使用了被感染文件的系统。此外,病毒还会驻留在系统内存中,以至于一旦有新的程序运行就会被病毒感染。病毒的另一种感染方式是通过修改程序运行时所执行文件的顺序而不是修改程序运行的文件本身。在这种情况下,被感染的程序在执行的时候将先运行病毒,而后才运行自己的文件。目前,jerusalem和cascade是这类病毒中比较著名的。
 感染引导区病毒
感染引导区病毒可以感染硬盘或是可移动存储设备(例如软盘)的主引导区。引导区是存储器最开始的一段空间,它用来放置存储器中数据的结构定义等信息。此外,引导区中还包含引导程序,它在主机启动时运行来引导操作系统启动。主引导区是硬盘上一段独立的空间,只有用基本输入/输出系统可以定位和加载它的引导程序。当带病毒磁盘的内容在系统启动时被读取,病毒代码就会被执行;软盘等可移动存储设备即使不是启动盘,它也可以感染系统。感染引导区病毒具有极好的隐藏能力,并且可以对电脑造成极大的破坏,甚至可以达到无法恢复的地步。电脑如果感染这种病毒,一般会出现以下症状:电脑在启动时显示错误信息提示,或者是无法启动。Michelangelo和Stoned是这种病毒的典型例子。
 宏病毒
宏病毒是目前比较流行也是比较危险的一种病毒。宏病毒把自己加载到WORD和电子表格等文件中。这种病毒就像它的名字所说的,它是利用宏语言编写的应用程序来运行和繁殖的。目前许多受欢迎的软件(例如:Microsoft Office)都会自动利用宏语言来编译和反复执行作业。宏病毒就会利用这一点来传播恶意代码。由于用户经常把带有宏程序的文件共享,所以宏病毒的传播速度是非常快的。当宏病毒感染文件的时候,它也会把该文件用于创建和打开操作的临时文件感染。因此,被宏病毒感染的文件创建出的临时文件也是被感染的文件。Marker和Melissa是这种病毒的典型例子。
 恶作剧电子邮件
这种病毒就像它的名字提到的一样,是一种假冒的病毒警告。它的内容一般是恐吓用户,表示将要对用户电脑造成极大的破坏;或是欺骗用户电脑即将被病毒感染,警告他们立即采取紧急措施。尽管这种病毒发布的信息是非法的,但是它还是像真正的病毒一样传播广泛。通常这种病毒的传播是通过一些无辜的用户,他们希望发送这个信息提醒其他人防范病毒的侵袭。通常,恶作剧邮件并不会造成什么危害,但是有的恶作剧邮件会指使用户修改系统设置或是删除某些文件,这将会影响系统的安全性。阅读恶作剧邮件会浪费用户时间,而且一些恶作剧邮件会发送到一些技术支持的部门,警告他们将会有新的病毒威胁网络安全或是寻求帮助。这种病毒传播比较广泛的有Good Times和Bud Frogs。
1.3 特洛伊木马
    这类恶意代码是根据古希腊神话中的木马来命名的,这种程序从表面上看没有什么,但是实际上却隐含着恶意意图。一些木马程序会通过覆盖系统中已经存在的文件的方式存在于系统之中,同时它可以携带恶意代码,还有一些木马会以一个软件的身份出现(例如:一个可供下载的游戏),但它实际上是一个窃取密码的工具。这种病毒通常不容易被发现,因为它一般是以一个正常的应用的身份在系统中运行的。特洛伊木马可以分为以下三个模式:
 通常潜伏在正常的程序应用中,附带执行独立的恶意操作
 通常潜伏在正常的程序应用中,但是会修改正常的应用进行恶意操作
 完全覆盖正常的程序应用,执行恶意操作
大多数木马都可以使木马的控制者登录到被感染电脑上,并拥有绝大部分的管理员级控制权限。为了达到这个目的,木马一般都包括一个客户端和一个服务器端客户端放在木马控制者的电脑中,服务器端放置在被入侵电脑中,木马控制者通过客户端与被入侵电脑的服务器端建立远程连接。一旦连接建立,木马控制者就可以通过对被入侵电脑发送指令来传输和修改文件。
 
通常木马所具备的另一个是发动DdoS(拒绝服务)攻击。
还有一些木马不具备远程登录的功能。它们中的一些的存在只是为了隐藏恶意进程的痕迹,例如使恶意进程不在进程列表中显示出来。另一些木马用于收集信息,例如被感染电脑的密码;木马还可以把收集到的密码列表发送互联网中一个指定的邮件帐户中。

1.4 移动代码
    移动代码是能够从主机传输到客户端计算机上并执行的代码,它通常是作为病毒,蠕虫,或是特洛伊木马的一部分被传送到客户计算机上的。另外,移动代码可以利用系统的漏洞进行入侵,例如非法的数据访问和盗取root帐号。通常用于编写移动代码的工具包括Java applets,ActiveX,javascript,和VBScript。
1.5 复合型病毒
复合型病毒就是恶意代码通过多种方式传播。著名的Nimda蠕虫实际上就是复合型病毒的一个例子,它通过四种方式传播:
 E-Mail
如果用户在一台存在漏洞的电脑上打开一个被Nimda感染的邮件附件,病毒就会搜索这台电脑上存储的所有邮件地址,然后向它们发送病毒邮件。
 网络共享
Nimda会搜索与被感染电脑连接的其他电脑的共享文件,然后它以NetBIOS作为传送工具,来感染远程电脑上的共享文件,一旦那台电脑的用户运行这个被感染文件,那么那台电脑的系统也将会被感染。
 Web服务器
Nimda会搜索Web服务器,寻找Microsoft IIS存在的漏洞,一旦它找到存在漏洞的服务器,它就会复制自己的副本过去,并感染它和它的文件。
 Web终端
如果一个Web终端访问了一台被Nimda感染的Web服务器,那么它也将会被感染。
除了以上这些方法,复合型病毒还会通过其他的一些服务来传播,例如直接传送信息和点对点的文件共享。人们通常将复合型病毒当成蠕虫,同样许多人认为Nimda是一种蠕虫,但是从技术的角度来讲,它具备了病毒,蠕虫和移动代码它们全部的特征。

1.6 间谍软件
此类软件有时也称为"spybot"或"跟踪软件"。间谍软件使用其他形式的欺骗性软件和程序,它们在没有获取用户相应许可的情况下即在计算机上执行某些活动。这些活动可以包括收集个人信息,以及更改 Internet 浏览器配置设置。除了令人讨厌之外,间谍软件还会导致各种问题,从降低计算机的总体性能到侵犯个人隐私。
分发间谍软件的网站使用各种诡计,使用户下载并将其安装在他们的计算机上。这些诡计包括创建欺骗性的用户体验,以及隐蔽地将间谍软件和用户可能需要的其他软件(例如,免费的文件共享软件)捆绑在一起。
1.7 网络钓鱼
网络钓鱼(Phishing)一词,是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了”Phishing”,Phishing 发音与 Fishing相同。
  “网络钓鱼”攻击者利用欺骗性的电子邮件和伪造的Web站点来进行诈骗活动,受骗者往往会泄露自己的财务数据,如信用卡号、账户用和口令、社保编号等内容。诈骗者通常会将自己伪装成知名银行、在线零售商和信用卡公司等可信的品牌,在所有接触诈骗信息的用户中,有高达5%的人都会对这些骗局做出响应。

2 恶意代码防范的技术手段分析
2.1 恶意代码入侵技术分析
在以上的各种恶意代码中,根据各种机构的统计,目前各种IT系统面临的恶意代码侵入造成的各种破化合危害以蠕虫为最大,其不仅造成单个终端,单个应用的破坏,还间接造成整个网络,整个系统的瘫痪。同时由于其依赖现代网络为传播媒介,传播速度也大大超过了其他各种恶意代码。并且现在的蠕虫病毒多融入了黑客、木马等功能,我们就以蠕虫为例子来详细分析:

2.2 蠕虫的基本结构和传播过程
2.2.1 蠕虫的基本程序结构
 传播模块:负责蠕虫的传播
 隐藏模块:侵入主机后,隐藏蠕虫程序,防止被用户发现。
 目的功能模块:实现对计算机的控制、监视或破坏等功能。
2.2.2 蠕虫的传播入侵过程
 传播模块由可以分为三个基本模块:扫描模块、攻击模块和复制模块。
蠕虫程序的一般传播过程为:

 扫描:由蠕虫的扫描功能模块负责探测存在漏洞的主机。当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象。
 攻击:攻击模块按漏洞攻击步骤自动攻击步骤1中找到的对象,取得该主机的权限(一般为管理员权限),获得一个shell。
 复制:复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并启动。
我们可以看到,传播模块实现的实际上是自动入侵的功能。所以蠕虫的传播技术是蠕虫技术的首要技术,没有蠕虫的传播技术,也就谈不上什么蠕虫技术了:
蠕虫入侵过程的分析
蠕虫采用的自动入侵技术,由于程序大小的限制,自动入侵程序不可能有太强的智能性,所以自动入侵一般都采用某种特定的模式。我们称这种模式为入侵模式,它是由普通入侵技术中提取出来的。目前蠕虫使用的入侵模式只有一种,这种模式是就是我们前面提到的蠕虫传播过程采用的模式:
 扫描漏洞
 攻击并获得shell
 利用shell
这种入侵模式也就是现在蠕虫常用的传播模式。这里有一个问题,就是对蠕虫概念的定义问题,目前对蠕虫的定义把这种传播模式作为蠕虫的定义的一部分,实际上广义的蠕虫应该包括那些使用其他自动传播模式的程序。
蠕虫传播的模式分析
1.基本模式:扫描-攻击-复制。
从新闻中看到关于蠕虫的报道,报道中总是强调蠕虫如何发送大量的数据包,造成网络拥塞,影响网络通信速度。实际上这不是蠕虫程序的本意,造成网络拥塞对蠕虫程序的发布者没有什么好处。如果可能的话,蠕虫程序的发布者更希望蠕虫隐蔽的传播出去,因为蠕虫传播出去后,蠕虫的发布者就可以获得大量的可以利用的计算资源,这样他获得的利益比起造成网络拥塞的后果来说显然强上万倍。但是,现有的蠕虫采用的扫描方法不可避免的会引起大量的网络拥塞,这是蠕虫技术发展的一个瓶颈,如果能突破这个难关,蠕虫技术的发展就会进入一个新的阶段。
现在流行的蠕虫采用的传播技术目标一般是尽快地传播到尽量多的电脑中,于是扫描模块采用的扫描策略是这样的:
随机选取某一段IP地址,然后对这一地址段上的主机扫描。笨点的扫描程序可能会不断重复上面这一过程。这样,随着蠕虫的传播,新感染的主机也开始进行这种扫描,这些扫描程序不知道那些地址已经被扫描过,它只是简单的随机扫描互联网。于是蠕虫传播的越广,网络上的扫描包就越多。即使扫描程序发出的探测包很小,积少成多,大量蠕虫程序的扫描引起的网络拥塞就非常严重了。
聪明点的作者会对扫描策略进行一些改进,比如在IP地址段的选择上,可以主要针对当前主机所在的网段扫描,对外网段则随机选择几个小的IP地址段进行扫描。对扫描次数进行限制,只进行几次扫描。把扫描分散在不同的时间段进行。扫描策略设计的原则有三点:
尽量减少重复的扫描,使扫描发送的数据包总量减少到最小2保证扫描覆盖到尽量大的范围3处理好扫描的时间分布,使得扫描不要集中在某一时间内发生。怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证。
扫描发送的探测包是根据不同的漏洞进行设计的。比如,针对远程缓冲区溢出漏洞可以发送溢出代码来探测,针对web的cgi漏洞就需要发送一个特殊的http请求来探测。当然发送探测代码之前首先要确定相应端口是否开放,这样可以提高扫描效率。一旦确认漏洞存在后就可以进行相应的攻击步骤,不同的漏洞有不同的攻击手法,只要明白了漏洞的利用方法,在程序中实现这一过程就可以了。这一部关键的问题是对漏洞的理解和利用。关于如何分析漏洞不是本文要讨论的内容。
攻击成功后,一般是获得一个远程主机的shell,对win2k系统来说就是cmd.exe,得到这个shell后我们就拥有了对整个系统的控制权。复制过程也有很多种方法,可以利用系统本身的程序实现,也可以用蠕虫自代的程序实现。

2.模式的变化使用

既然称之为模式,那么它就是可以复用的。也就是说,我们只要简单地改变这个模式中各个具体环节的代码,就可以实现一个自己的蠕虫了。比如扫描部分和复制部分的代码完成后,一旦有一个新的漏洞出现,我们只要把攻击部分的代码补充上就可以了。
利用模式我们甚至可以编写一个蠕虫制造机。当然利用模式也可以编写一个自动入侵系统,模式化的操作用程序实现起来并不复杂。

可以看到蠕虫是一种非常智能的恶意代码,具有有机生命体的某些特点,其模仿手动入侵的方式使得恶意代码的入侵攻击能够自动进行,使得危害范围无限扩大,造成的损失也难以估计。以前多次的蠕虫病毒的爆发已经充分说明了问题,可是为什么蠕虫会一再肆虐,而我们缺乏行之有效的防护手段呢,我们先来看看以往我们采用什么样的防范方法的

2.3 传统防范技术手段分析
传统防范技术手段概述
一般来说,我们会首先使用自动补丁更新系统,修补已知的操作系统或应用系统的软件漏洞,避免被人扫描到并加以利用。
终端系统上也一般都安装了防病毒软件,并通过企业中心防病毒更新服务器来及时病毒特征码。
更加严格一点,会在单个终端上启用个人防火墙,来实现对终端访问控制,阻止一些已知的攻击。如可以通过对个人防火墙的设定来抵御端口扫描工具,并指定操作系统对外开放的安全端口。
传统防范技术手段缺陷
自动补丁更新系统
基本上现在主流的操作系统和关键应用系统如数据库等都具有自动补丁更新系统,可是仍然不断有系统受到系统缺陷攻击而感染了蠕虫,又是为什么呢。
补丁太多,无暇顾及
首要原因是,太多的补丁和系统漏洞的发现让人应接不暇,平均每天发现11个系统缺陷,而且这种速率不断在增长。
每一年报告给CERT/CC的漏洞数量都成倍增长。1995年的时候CERT/CC公布的漏洞数据为171个,2000年为1090个,2001年为2437个,2002年已经增加至4129个,就是说每天都有十几个新的漏洞被发现。可以想象,对于管理员来说想要跟上补丁的步伐是很困难的。而且,入侵者往往能够在软件厂商修补这些漏洞之前首先发现这些漏洞。随着发现漏洞的工具的自动化趋势,留给用户打补丁的时间越来越短。尤其是缓冲区溢出类型的漏洞,其危害性非常大而又无处不在,是计算机安全的最大的威胁。在CERT和其它国际性网络安全机构的调查中,这种类型的漏洞是对服务器造成后果最严重的。
补丁造成系统兼容性风险,造成安装时间延误
由于某些系统为关键生产业务,为了系统稳定性和兼容性,根据企业内部的安全规范,在这些系统上进行修补,必须在部署前补丁必须通过测试,保证兼容性
补丁安装过程中消耗宝贵带宽和系统资源
由于补丁安装现在一般都通过网络直接下载,这样就对本来已经蠕虫泛滥的网络增加了负担,而且由于病毒流量占据了大量网络和系统资源,补丁下载过程可能根本就不能够完成,甚至与更新过程中就收到攻击并被感染
补丁安装造成业务中断风险,造成安装时间延误
补丁安装本身就具有风险并且中断业务运行,由于补丁往往要求系统重启才生效,这样对正常业务运行不可避免会造成中断,特别是各种应用的服务器
补丁部署无法面面俱到
初始部署永远不可能包含每个有缺陷系统如笔记本电脑,远端节点和不能重启的关键服务器
无补丁
更有些系统缺陷根本没有补丁可以使用,由于软件提供商在制作补丁资源上的欠缺,造成很多时候入侵发生时,相应的补丁确还没有制作出来

传统基于特征码的防病毒软件缺陷

由于操作系统、应用程序、网络应用都在不断地发展变化,病毒也不断在发展和变化,任何一种反病毒技术都是基于一种特定技术条件的。由于目前的反病毒技术是基于特征码扫描的,这种技术的要求就是必须先有病毒,然后提取特征,然后进行查杀,因此,现有的反病毒技术永远是会落后于病毒的产生的。
新型病毒在传播过程中不断自我复制,产生变异,模块化的蠕虫病毒更是可以通过简单的模块替换变化轻松避开防病毒软件的检查,这样不仅很难使得这使得安全专家想要通过各种分析方法来判断新的攻击的过程变得更加困难和耗时,甚至让那些现有的特征法判断手段失效。
伴随着各种系统和应用软件的日趋复杂
更严重的是通过网络更新病毒特征码库的时候攻击并被感染,系统本身马上变成传播源头
个人防火墙缺陷
所有基于Windows操作系统的个人防火墙核心技术点在于Windows操作系统下网络数据包拦截技术。
很多个人防火墙产品只能在Winsock层次上进行,而对于网络协议栈中底层协议的数据包无法进行处理。对于一些木马和病毒来说很容易避开这个层次的防火墙。
而对那些通过上层各种应用驱动的攻击来讲,它们现在往往通过合法连接进入,由于防火墙缺乏对应用层检查功能,也就不能发挥作用

全面的防范恶意代码的技术手段

新型终端防护技术
根据我们对蠕虫传播技术的分析,其中攻击模块为成功实现传播感染的关键。终端节点只要能够在这个时候即使是系统存在缺陷被扫描到,只要不被蠕虫的攻击模块所控制,就能够成功防范蠕虫的感染。
很明显我们传统使用的基于特征码的防病毒软件在蠕虫刚开始传播的过程中是无法提供保护的,如果要改变这种被动局面就必须进行新的技术,只有新的技术才能带来新的突破。
基于行为规则的防护技术就在终端设备上抵御蠕虫的攻击的新一代技术
这种技术与传统的病毒特征码查杀病毒技术正好相反,病毒特征码是病毒的一个集合,是一个无限增大的黑名单,而基于行为规则的防护技术是系统正常操作的集合,是一种白名单技术,只有那些在预先订制策略允许的行为才能在这个系统上中运行,当一些对系统文件、执行文件、注册表修改,堆栈溢出等的操作被禁止或是通过安全策略来干预.
基于行为规则的防护技术所关心不是攻击的本身,而是攻击所试图在主机上执行的各种恶意行为,这种恶意行为通过该技术被阻止中断攻击的过程

病毒传播控制技术
那些有保护的主机只能保证自己的安全,蠕虫仍然在传播,但是网络已经被破坏了。
从一般模式的过程来看,大规模扫描是蠕虫传播的重要步骤,一般的蠕虫防范方案中都只关注其中攻击部分,但是如果能防止或限制扫描的进行,那么就可以控制蠕虫的传播,让那些没有防护的终端降低被感染的风险。
我们只要能够通过各种网络技术定位传播源,过滤传播扫描数据包,限制被感染终端的接入,同样也会大大增强整个网络的抵抗能力

3 思科防护恶意代解决方案
Cisco恶意代码防御是思科自防御网络计划的一个部分。思科自防御网络计划是一种全新的多阶段安全计划,它能够大大提高网络发现、预防和对抗安全威胁的能力。思科自防御网络计划增加了新的系统级威胁防御功能,与通过互联网协议(IP)网络将多种安全服务集成在一起的策略基础上,又前进了一步。
通过新一代的终端防护技术抵御未知的各种攻击和病毒,还扩展端点系统和网络安全互操作性,融入动态防感染功能。利用这种新方法,遭受到攻击时,值得信任的端点或其它系统元素可以报告病毒源系统或感染系统的安全问题。思科希望利用这种智能性防止受感染的系统接入网络,从而大大减少病毒、蠕虫和混合病毒的传播。

3.1 终端节点智能防护解决方案-思科安全代理
3.1.1 思科安全代理(CSA)介绍
思科安全代理就是一种基于行为规则的终端防范技术,与传统的终端安全解决方案的不同之处在于,它可以在恶意行为发生之前发现和阻止它们,进而消除潜在的已知和未知安全风险,防止其威胁到企业网络和应用的安全。因为思科安全代理采用的是分析行为而不是特征匹配的方法,因而这个解决方案能够以较低的运营成本提供强大的保护。当那些基于签名的防病毒软件,个人防火墙需要大量的签名库更新的时候,基于行为规则分析的思科安全代理却不需要那些费时费力的工作
思科安全代理按照安全级别将行为分成三类,:
一般的恶意行为
—这种行为一般都是在攻击周期的后期进行的破坏行为:如未授权的对操作系统更改或文件删除。由于这类恶意行为总是不希望发生的,这个安全级别的部署将非常方便。这类别相关的安全策略也一般不需要特别订制,缺省状态即可
总体安全策略相关行为
这些行为包括那些也许并不是明显恶意行为,但管理人员不希望其发生。如网络管理员不希望用户通过那些即时通信软件(如MSN Messenger,QQ,Yahoo Messenger)下载文件,因为这些文件无法经过公司的邮件防病毒服务器扫描。
特定应用系统相关的行为
对于那些系统安全要求特别高的场合,思科安全代理可以完全锁定整个特定应用。只有那些已知安全的行为才能被这个应用所执行。通过强制限定这些合法良好的行为,在这些合法行为之外的任何东西,无论是一个攻击还是简单的堆栈溢出错误,都可以被很有效的防范。基本原理就是“任何没有明确被允许的将被禁止”,这种方法提供最高的系统安全,但也需要更多的管理人员的调整。一般只限于某些重要的服务器。
.

3.1.2 思科安全代理技术核心架构
思科安全代理由于具有同操作系统内核紧密结合的特点。所有对系统资源,配置,网络童心,文件读写等所有的呼叫都将被思科安全代理所截获,这种技术称之为INCORE技术,是英文Intercept Correlate Rules Engine,激活关联规则引擎的都几个字母的缩写。比简单截获这些系统呼叫更重要的是,思科安全代理将这些系统呼叫实现智能的关联。这些关联结果和对某个应用的行为规则的结论性理解形成了思科安全代理防范新的入侵的基础
当一个应用程序需要访问到某个系统资源,它会产生一个操作系统呼叫到系统内核。INCORE会截取这些呼叫然后将这些呼叫同那些存储在中心服务器上的策略进行比较(这些策略也可以下载各个终端)。它会将这个特定的系统呼叫同该应用发起其他呼叫进行关联,然后来检测恶意的行为。如果这个呼叫请求没有违反任何的策略,将会提交内核运行。如果确实违法了策略,将会被阻止,一个相应的错误信息将会被传递会应用程序,然后一个告警将会产生送往管理终端。
如,一个Web服务器正在用于服务于某个页面。受到一个Web页面请求,Web服务器产生一个文件系统I/O和网络数据包I/O请求。只要是在策略允许范围内的(如,Web服务器有对Web页面文件访问的权限),没有安全事件产生。如果一个已知攻击(如一个Unicode字典攻击,通过SSL加密隐藏起来)试图让该应用在策略外进行操作(如,打开一个命令行shell像CMD.exe),请求会违反策略并对阻止。一个“404:Not Found”信息将会送给远程用户。
假设一个攻击者发起一个未知攻击行为,类似缓存溢出这类行为。思科安全代理执行空间的截获者将检测到应用程序超出其自己的执行空间或是侵入其他程序的执行空间,这种情况下它会检测这些超出空间的代码执行,并加以阻止。由于这种行为违反了策略,没有任何更新需要来被制止新的攻击-这就是我们称之为“零更新”
INCORE 支持四种系统拦截方式:
•文件系统(所有文件读写)
•网络(在NDIS驱动或TDI传输层面上产生的数据包事件)
•配置(对Windows注册表或UNIX系统rc文件的读写请求)
• 执行空间

思科安全代理的策略是IT部门分配各每个服务器或工作站的行为规则的集合。这种以应用为中心的访问控制规则(不是基于用户或ID)提供对需求资源的安全控制。Cisco为企业提供能够容易被应用或模块化订制策略部署工具。思科安全代理为服务器提供迅速提供重要的入侵保护功能和分布式防火墙能力。这种解决方案也可以非常容易的被部署来用作保护一些公共应用程序如: Microsoft SQL服务器, Microsoft Office, 即时通信软件, 和IIS Web服务器。这些策略能够被在最少配置情况下迅速部署保护关键服务器和工作站
.

3.1.3 思科安全代理管理架构
思科安全代理的管理中心采用代理-管理器(服务器)的架构,当某个策略在管理服务器上创建或修改的情况下会自动地分配到所有的代理终端上。管理员可以通过一个安全的Web页面进入管理图形界面,允许从在企业内部任何地方来进行管理,避免使用那些不安全的远程访问方式。代理终端也会定时轮询服务器或得策略更新或是软件版本更新,或实时发送告警信息。所有的代理-管理服务器之间的通信都是加密的和使用标准协议(Secure Web,Http Over SSL HTTPs,和TCP端口443)

思科安全代理服务器端称之为CiscoWorks Management Center for Cisco Security Agents,CiscoWorks Monitoring Center for Security和Agents是CiscoWorks VMS2.2的一个组成部分。
该软件从一个集中点为所有代理器提供了全部管理功能,其Web浏览器“随处管理”接入功能,使管理员构建代理器软件分布分组,制定和修改安全策略,监视报警,或生成报告,都变得十分轻松。由于它配备有20多个全配置缺省策略,管理员在为企业部署数千台代理器时,就会感觉十分方便。CiscoWorks Management Center还允许客户在“IDS模式”下部署代理器,在这种模式下,活动会被报警,但不会阻断。
CiscoWorks Management Center提供了既简单,却又功能强大的定制功能,如可调整导航,使管理员得以将缺省策略迅速植入环境,管理员可以轻松地修改规则或创建新规则,以适应定制需求和网络要求。为支持审计遵循要求,“解释规则”特性将就某项规则或策略所执行的任务,以人类语言的形式打印说明。
代理器到服务器和桌面的部署、控制和更新,都是通过CiscoWorks Management Center直接完成的。每台代理器可自主运行。如果无法与CiscoWorks Management Center联系(如远程膝上电脑用户尚未通过VPN连接),思科安全代理就会继续执行安全策略。所有安全报警均缓存至思科安全代理,当通信恢复后,将上载至CiscoWorks Management Center。
请注意,CiscoWorks Management Center可以将思科安全代理中的事件提交至CiscoWorks Monitoring Center for Security v1.2控制台。用户可以从控制台以一种统一的格式浏览源于网络IDS传感器、思科安全代理、防火墙和路由器的事件。

3.1.4 思科安全代理优势
 汇聚和拓展多种终端安全功能——思科安全代理可以在同一个代理产品中提供主机入侵防范、分布式防火墙、恶意移动代码防范、操作系统完整性保障和审核日志整合等功能。
 提供针对所有类型的攻击的防范,包括端口扫描、缓冲区溢出、特洛伊木马、畸形分组、恶意HTML请求和电子邮件蠕虫。
 针对已知和未知的攻击提供“零升级”防范。
 为基于Unix和Windows平台的服务器和台式机提供业界领先的保护功能
 为Web服务器和数据库提供针对特定应用的保护
 开放的、可扩展的架构可以提供根据企业策略定义和执行安全功能的能力
 提供一个可以在整个企业范围内扩展的架构;思科安全代理解决方案可以通过拓展让一个管理器管理数千个代理
 通过Cisco PIX、Cisco Secure IDS和Cisco VPN安全设备提供集成化的管理
 通过“你在那吗”(AYT)功能与思科VPN集成

思科安全代理包括多个基于主机的代理,它们部署在关键任务型台式机和服务器上,向运行在CiscoWorks VPN/安全管理解决方案(VMS)上的管理中心进行报告。这些代理采用HTTP和安全套接字层(SSL)协议(128位SSL)建立管理接口和进行主机、管理中心之间的通信。所有配置都通过CiscoWorks VMS进行,而警报通过CiscoWorks安全监视器(SecMon)与来自于其他思科安全产品的警报集成到一起。

3.1.5 Cisco安全代理(CSA)防护实例
3.1.5.1 思科安全代理如何抵御Nimda蠕虫

Nimda是一种传播非常迅速的病毒。它能够通过电子邮件的附件、浏览受感染的网站的用户,以及利用存在漏洞的Microsoft IIS Web服务器在企业中传播。尽管Nimda表面上与“Code Red”和“Code Blue”蠕虫类似,但是它与后两种蠕虫之间存在两个根本的区别:
 
1. 它的感染对象包括终端用户(桌面)计算机和Web服务器,而“Code Red”只感染Web服务器。
2. 受感染的桌面或者服务器计算机会主动地搜索其他存在漏洞的桌面和服务器系统,进一步传播病毒。因为Nimda可以利用成千上万的桌面计算机感染新的服务器,所以它比“Code Red”危险得多。因为家用计算机通常没有精通安全技术的IT管理员,所以大部分都存在安全漏洞。

W32.Nimda.A@mm 蠕虫可以利用Unicode Web Traversal 漏洞和其他IIS蠕虫(例如“Code Red2”和Sadmind)在受感染的服务器中留下的后门,感染IIS Web服务器。一旦它成功地感染了一个Web服务器,它将对网页进行修改,在其中加入一段恶意的Javascript程序,以感染桌面计算机。这段Javascript程序将会导致浏览器下载一个名为“README.EML”的文件。一旦这个文件被执行,桌面计算机就将受到感染。
该蠕虫还可以攻击Microsoft Outlook 或者Outlook Express的用户,并通过从受感染的桌面计算机中发出电子邮件而扩大传播范围。当收信人收到受感染的电子邮件时,看到的是一封没有内容的、只带有一个名为“readme.exe”的附件的信件。与其他病毒一样,打开这个附件将会导致计算机遭受感染。Nimda还可以在收信人阅读电子邮件,甚至只是将信件显示于Outlook的预览栏中时感染Outlook用户。
一旦Nimda蠕虫感染了一台主机,它将会把本地硬盘向网络敞开,并通过已经开放共享的文件进一步扩大传播范围。因为Nimda会不断地尝试传播到其他IIS Web服务器,网络的性能将急剧降低。
虽然Microsoft公司已经发布了针对IIS服务器漏洞和Internet Explorer的补丁。安装了补丁的Internet Explorer将能防止Outlook 和Outlook Express受到Nimda的攻击,但是仍然有大量的设备被感染,原因就在于这种被动防御的结构上

思科安全代理中的缺省IIS和桌面策略可以防止机构受到Nimda的攻击。
在遭遇Nimda蠕虫时,思科安全代理服务器代理可以阻止针对IIS服务器的缓存溢出攻击,防止它在网络中的传播。思科安全代理的缺省桌面策略可以禁止下载和调用特洛伊木马程序,例如readme.exe。这可以在Nimda试图通过Outook或者Web浏览器感染一个企业时,防止Nimda对企业造成损失和在企业中蔓延。
只有思科安全代理可以在遭遇新的、不断变化的攻击(例如Nimda)时为机构提供服务器和台式机保护功能。这种保护是由思科安全代理提供的,不需要任何产品升级——思科安全代理并不是一种基于特征库的产品。在自己的IIS服务器和台式机上部署思科安全代理的机构将会得到主动的保护(不需要一个经常升级的特征库),从而避免Nimda蠕虫所可能导致的损失。

0
相关文章