CCERT研究新进展
一台计算机有可能导致一个局域网大面积的瘫痪,网络资源无节制地占用有限的带宽,盗用他人的IP地址……这样的问题在当前的校园网中层出不穷。面对这样的情况,CCERT目前的研究方向主要是在三个方面:一是主动防御相关技术,二是安全监测和内容检测,三是应急响应服务。

目前有三个方向是校园网安全比较重视的,也是CCERT当前及今后一段时间内研究的主导方向。第一是信息网络的控制技术,第二是反垃圾邮件技术,第三是防止恶意代码分析技术。
网络准入控制
与传统安全防护的目标不同,准入控制的目标首先是保护网络,限制有安全隐患的计算机的接入,从而保护网络上接入的其他用户。我们遇到过这样的情况,用户在网络上感染了病毒,影响了网络运行,而当管理员要进行干涉的时候,用户会说是在管理范围内的网络上感染的,首先网络管理者要对用户的计算机负责。所以,我们首先要保证我们的网络是安全的,再保证计算机的正常运行。
目前我们转变了以往把不安全的网络和计算机捆在一起的做法,而改为将网络和计算机区别对待。不同计算机接入到网络,就分成两类。一类是有安全隐患的计算机,将归入一个相对的、独立的网络,同时对其进行截留测试;另一类是没有安全隐患的计算机。比如用户在上网登录的过程中,首先输入自己的用户名,我们增加了一些功能,包括对IP地址以及病毒更新日期的认证,已经更新的日期通过交换机传入到硬件服务器上。认证服务器首先有一个口令,如果不能通过就不能直接访问,在交换机上即便是通过了身份认证,我们还要对它进行一些政策检测。首先是IP地址的检测。校园网内盗用IP地址的现象很严重,我们采取了相应的措施应对。每一个用户会分配到惟一的只有他可以使用的IP地址,如果发现他当前使用的IP地址和授权给他的IP地址不一致的话,认证就不能通过。另外,在这个过程中还对其病毒更新日期进行比较。只有这些测试安全通过以后,该计算机才能连到Internet上。
反垃圾邮件的技术
我们首先看一下Realtime Blackhole List(实时黑名单,简称RBL)技术。RBL的工作原理其实非常简单。首先,它的黑名单主要是来自于用户的举报和投诉,作为邮件服务器接收邮件之前查找邮件来源地址是否属垃圾邮件的来源。比如这个地址是192.168.0.2,通过DS做一些病毒查询以后,对这个IP地址进行查询,如果它在黑名单里面,那么它将被过滤和屏蔽。
但是,在邮件服务器里,有一个人发了一封垃圾邮件被打到黑名单以后,他的其他邮件也可能遭到同样待遇。另外,由于这些名单更新不及时,进入黑名单里容易,但是什么时候能解脱就没有人知道了。所以,我们经常遇到一些学校的邮件服务器被列入黑名单,但与一些反垃圾邮件(RBL)厂商交涉,想恢复却很困难。重要的一个原因就是RBL维护组织的非权威性。很多组织的RBL或是仅凭一时的兴趣和热情,或是出于一些经济利益的目的,真正进行系统维护的组织乏善可陈。另外,RBL的投诉、撤销流程并没有标准和规范。所以,出现新的问题很难得到解决。
关于基于规则的内容识别,我们重点介绍目前已经研发的基于开放源代码的免费反垃圾邮件平台SpamAssassin,以及CCERT的中文垃圾邮件过滤规则集Chinese_rules.cf。
SpamAssassin应该说是近年在西方广泛普遍应用的一个反垃圾邮件的软件。在SpamAssassin上有多条规则。但SpamAssassin一个很大的缺陷是没有中文的过滤规则,而过滤大量的中文垃圾邮件对国外的用户有很大的需求。CCERT反垃圾邮件研究小组利用CCERT所掌握的最新和丰富的样本数据,推出了第一个基于SpamAssassin的中文垃圾邮件过滤规则集Chinese_rules.cf。该规则集每周更新一次,时效性非常好。
其原理是,我们在邮件服务器上安装一个模块,这个模块可以识别、标识、过滤、定位,其实它是在邮件上打了一个标识码,邮件客户可以通过这个标识把垃圾邮件隔离到单独的文件夹,这样用户可以先在这个隔离文件夹里浏览邮件,一旦看到重要的邮件,可以重新发回收件箱。
下一步,我们希望在互联网上能够推广SpamAssassin开放源代码的反垃圾邮件的解决方案。另外,基于SpamAssassin和Chinese_rules.cf,我们也开发了垃圾邮件过滤网关,在山东大学的校园网内应用过,效果不错。
恶意代码分析技术
在CCERT的工作中,我们经常会发现一些不知名的新增程序,我们需要分析这些代码的功能和意图,这对于我们应急响应的决策是必要的支持。这些程序可能是我们事件处理中捕捉的代码,也有可能是通过我们的用户发给我们的。另外,还有一些第三方,比如,我们现在作为亚太地区反垃圾邮件联盟的会员单位,象澳大利亚和日本都有可能发送一些恶意代码给我们。
目前对恶意代码有两种分析方法,一种是静态分析方法,也就是对程序的二进制代码进行分析;另一种是动态分析法,实际上是在一个真实的环境里面运行这个程序,分析它的行为。
静态分析的原理就是,操作系统是分层的结构,它的系统分为用户层和核心层。用户层对资源的使用是经过系统调用或API(应用程序接口)调用来完成的。首先对恶意代码进行分析,根据它对API系统的调用,比如内存驻留、修改注册标的启动表项,判断这个代码是不是恶意的。目前这方面的研究还在进行中。
关于动态分析,我们目前正在开发一个自动化的动态分析系统。目前我们拿了116个样本在我们的测试床上进行测试。这个测试首先是控制系统,也就是主机,我们把代码的样本,通过控制系统放到测试床进行监测。启动了这个代码之后,我们可以看到当前内存的使用情况、CPU的使用情况,还有增加了哪些信息,增加了哪些文件,哪些文件被修改了等等。比如后续文件被修改的情况。后续文件是存放着一些静态的IP。比如它增加了一些文件,把病毒库的更新程序停掉,把微软的补丁更新也改到本地……从这些情况一分析,就可以确定它是恶意代码。这样,通过一个命令就可以将被感染的服务器恢复。
关于这项内容,我们下一步的工作中准备建一个更大规模的实验室,希望能够建立一些在线的恶意代码传播模式。 |