由电脑病毒和不当插件所引起的损害,往往足以酿成巨灾;过去,锁定某些操作系统的薄弱之处然后加以蓄意威胁是最常见的,但近来病毒攻击的型态已有了转变,朝向挑衅特定公司或企业部门的现象日益增多,导致财务损失难以计数;因此如何采取快速响应以应付层出不穷的病毒威胁,已迫在眉睫。
侦测病毒有4种常见的方法:首先是签名检视,这也是时下流行的方法,指纹辨识即是其中之一,对未知的病毒特别有用;这里所指的“签名”(signature,另译为”特征”),指的是具有惟一的比特数或成对的编码模式,就如同人的指纹一样,应具有惟一的可辨识性,才能侦察并辨识出特定的病毒。在发布这种签名代码时,需特别留意它的更新工作、无缝防护和潜在失误危机。例如:是否每天须更新代码?数据库的使用流量有多少?散布新的代码需花多久时间?一旦误判受感染的档案而将其隔离清掉后,会引起怎样的后果?
其次,是利用事先设定过滤规则来进行多重侦测,在仿真的环境中执行既定指令,然后在程序的存储区域寻找相应的识别标志;再者,是在电邮等控制环境中执行组合编码,以观察有无类似病毒的行为比对,这对新型或无法辨识的病毒特别有用;最后是整合式比对,例如判别程序档案的大小是否有因受到感染而增加,这种方法通常用于检测主要磁盘区域的整体信息,一般在PC上所安装的防毒软件即是此类。
进化后的“模式匹配引擎”强势登场
飞思卡尔战略分析师Mike Hui在日前于上海举行的FTF(Freescale Technology Forum,飞思卡尔技术论坛)中,也对嵌入式系统的信息安全发表看法;表示Host-based和Network-based是两种常见的防毒部署途径。前者先将可抗毒的数据数据或模拟编码扫描后在主机上运行,以检测行为的安全性,为PC、PDA和手机等常用的方法,有3种方式:1.缓解对病毒感染性的反应:更新批次文件和签名码,耗时为其缺点(在大企业中,想要将所有主机都操作完毕,通常需耗费数天或数周的时间);2.以“代理服务器”为扫描单位:针对目标代理设定,所需耗费的内存数量不易估算;3.外挂软件防护:需要占用大量的CPU资源和带宽以完成扫描工作。
后者则是利用网络阵地抵御,预防病毒在网络中扩散,这种防毒功能多已内嵌在合适的网络设备中(例如:软件代理系统),一旦发现有病毒感染,则加以隔离或删除,亦有3种途径:1.缩短病毒感染的反应时间:这种方法所必备的网络设备相对较少;2.以“串流”为扫描单位:对照前述proxy-based的方式来说,较易掌握所需占用的内存资源,硬件扫描的算法也较单纯;3.利用简单的硬件防护:硬件加速可大幅降低CPU的使用率,从而允许“线速”(wire-speed)扫描。Mike Hui指出,大部分的组织皆采用“网络基础”的防护方式,以减轻新型病毒爆发所造成的影响,并用以补充Host-based在防护深度上的不足。
基于网络的解决方案必须具有很快的速度,避免对正常流量造成影响。它们在防止新攻击方面更有效,因为它可以为数量更少的关键网元增加新的签名。以今天的技术现况来看,以软件为基础的防毒产品,其效能极限约在数百个Mbps之间。若欲加以提高,可从几个方面着手:1.卸载从扫描功能到硬件“模式匹配符”(Pattern Matcher)的加强型CPU签名;2.改进扫描引擎的演算方式;3.尽可能利用“签名组合”扫描,以节省时间;4.卸载到通信处理器的网络处理任务。部分防毒签名值是代码型式,需要经过处理器对模式匹配符的运算才能发挥作用;然而,通过先进防毒供应商的协助,以及开放源码的方式,一个平易近人的友善硬件签名并非空谈。有鉴于此,飞思卡尔通过在器件中设置IP区块,能为嵌入式系统开发商提供新一代的防毒机制,以改善器件效能并有效降低总成本。
为了达到高效且功能齐备的目标,飞思卡尔的“模式匹配引擎”(Pattern Matching Engine)是用超乎能力的“Regex程序库”(正则导向)呈现,适用于任何需要使用规则表达式工作的用户,常被用于非常费时的判断,可搞清楚某个表达式为何不如想象中般工作?允许使用者交互式创建表达式,并即时浏览在不同条件下的效果。此外,该引擎还运用“状态规则”,可在不改变原貌下,将不同匹配的多重模式链接在一起;包括从侦测中数据浓缩而得的信息。
飞思卡尔也对其它模式匹配技术做了改进,例如:加速模式数据库的编译工作、加速关键的加法运算、实时更新、支持字符通配。同时,模式数据是保存于主要的DDR DRAM中,而非SRAM或FCRAM(快速循环RAM);且由于该引擎属于片上解决方案,能降低系统内存的使用。此外,模式匹配可突破“工作单元”的界限(即可跨越不同的TCP数据段进行匹配工作)。
ClamAV防毒软件助阵
PowerQUICC效能如虎添翼
为了保证快速取得签名码、不间断地对系统系统实施监控保护,以应付不绝于道的诸多病毒,防毒平台必须日以继夜地进行更新工作,且签名码的编译和下载时间必须快速而实时;欲达到这样的高效水平,寻求专业的防毒供应商合作便势在必行。
此时,一款名为“ClamAV”的防毒软件,便起到了关键的作用;它是线性检视,可快速且以多线程方式在幕后执行程序,更重要的是其数据库更新器支持数字签名、C语言库和交叉检视,可侦测5万种以上的病毒,并内嵌支持RAR (2.0)、Zip、Gzip、Bzip2、Tar、MS OLE2、MS Cabinet files、MS CHM (Compressed HTML)和MS SZDD多种压缩格式,同时也支持邮箱、邮件目录和原始邮件,以及用UPX/FSG/Petite等格式压缩的Portable Executable档案。
如今,ClamAV软件可嵌在飞思卡尔基于PowerPC内核所发展的产品,以及MPC8555、MPC8541和MPC8349等PowerQUICC基础的处理器中。欲在PowerQUICC中建置ClamAV防毒软件,可于www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CWB_MPC8555CDS-2-6&srch=1网站下载“PowerPC BSP for MPC8555CDS 2.6 Kernel-LTIB版本”的Linux Target Image Builder (LTIB)开发板卡支持包(BSP)。获取档案后,只要简单的几个步骤即可完成安装:首先,开启已下载的LTIB版本,选取“Package List”和“clamav”功能选项进行编译,便能产生所需的目标根菜单。系统设计人员也可从网站上下载模拟受感染的档案,安装于/usr/share/clamav-testfiles/路径下以供测试之用。
防毒软件会消耗大量的CPU时钟资源,其效能表现和数据库中代码的数量、长度有着密切的关系。ClamAV有两个签名码档案:一是单独的daily.cvd,本身带有797个签名值,只需时2.777秒就能完成比对工作;另一个是将main.cvd和daily.cvd复合使用,共有超过3万个签名值供安全比对,整个任务也仅耗费12.676秒。一般而言在Linux操作环境下,其效能取决于架构、时钟速度和签名值数据库的大小。
结语
传统的邮件防护方式是由主机在收到邮件后、转发到终端使用者的账号前,径行做病毒侦测;由于侦测工作是交由“发送邮件服务器”(SMTP)全权处理,使用者并不会感受到因防毒工作所引起的延迟。但在“统一威胁管理”(Universal Threat Management, UTM)和“整合式服务路由器”(Integrated Services Router, ISR)概念的风行下,过滤感染数据的工作是由SMTP和其它协议共同承担,导致系统上的流量增加许多;为了不造成终端在使用上的困扰,需要更高的吞吐量以降低延迟问题。
那么,怎样才能称得上是一个高效的防毒机制呢?飞思卡尔认为,它的系统吞吐量至少须>1Gbps、CPU的利用率必须维持平稳,且能实时更新签名码,方有资格入列。而ClamAV,即是属于备受欢迎的源码开放防毒软件,现已被大量搭载于PowerPC和PowerQUICC平台上,其在PowerQUICC上运行的效能水平与其它处理器相比也不遑多让;通过善用飞思卡尔的Pattern Matcher硬件技术,对照亲和力十足的Kaspersky SafeStream签名对网络数据进行病毒扫描,要达到1Gbps的处理能力并非难事,能在最低延迟下实现线速传输。由此看来,PowerQUICC确实不失为有心发展网络者,或其它内嵌防毒功能器件供应商的首选之一。