小议AutoCAD病毒的防范策略

2012-02-18 06:51赵灼辉
科技视界 2012年31期
关键词:防范病毒措施

赵灼辉

【摘 要】文中分析了当前AutoCAD计算机病毒的类型和特点,并从预防和查杀的角度提出了相应的防范策略,通过实践,取得了较好的效果,具有一定的借鉴意义。

【关键词】CAD;病毒;防范;策略;措施

随着互联网和信息技术的发展,计算机在社会生活各个领域的运用不断深入。随之而来的计算机病毒感染和攻击的事件也屡见不鲜,严重地干扰了人类正常的社会生活,就连AutoCAD这样的专业绘图软件也无法幸免,由于设计图纸是重要的技术文件,是指导工程施工管理的依据,其对计算机病毒攻击防范的要求也显得尤为重要。

1 感染AutoCAD病毒的主要症状

计算机感染AutoCAD病毒的主要症状是在放置图形文件(如: *.DWG文件)的文件夹里出现假扮成不同形式的自动运行程序文件,当启动AutoCAD软件时,系统会自动运行该程序文件,出现各种影响计算机及软件使用的问题,主要表现如下:

1.1 轻度症状:出现可疑提示,如:命令提示行出现乱码或各种烂七八糟的非软件提示;个别命令失效,如:“分解explode”,“视图缩放zoom”等命令失效,并定义一个新的命令BRUST……;保存文件时,不出现对话框,显示输入路径,各种键盘失灵,如:按下鼠标中键后老是变成显示右键菜单,而不是“移动pan”命令;

1.2 中度症状:运行速度降低,系统崩溃,经常出现“死机”现象,诡异退出……

1.3 重度症状:更改和共享图形文件数据,篡改硬盘和注册表等。

是何种病毒感染了AutoCAD呢?

2 常见的AutoCAD病毒

嵌入图形文件的VBA宏病毒和打开图形文件时就自动运行的AutoLISP是能够感染AutoCAD的两种主要病毒。

2.1 VBA宏病毒

自AutoCAD2000起AutoCAD就含有VBA,从而使得VBA对象嵌入图形文件成为可能。一旦VBA宏成为图形文件的组成部分,则当图形文件加载时它就处于活跃状态。如果该图形文件被共享,宏就有可能感染任意一台宏处于活跃状态的计算机。VBA宏病毒能够更改图形文件的数据,进入硬盘和注册表,甚至能够访问Windows API。

2.2 基于AutoLISP的病毒

AutoLISP的病毒是基于AutoCAD软件的内嵌脚本语言——AutoLISP语言写成程序文件,通常通过在打开图形文件时就自动运行的AutoLISP文件发作。这类启动项AutoLISP文件包括:

(1)acad20xxdoc.lsp:它是欧特克公司提供的打开图形文件时就运行的文件;

(2)acad20xx.lsp:它是欧特克公司提供的启动AutoCAD程序时就运行的文件;

(3)acaddoc.lsp:它是用户建立的打开图形文件时就运行的文件;

(4)acad.lsp:它是启动AutoCAD程序时就运行的原始文件;

通常感染AutoLISP宏病毒是通过以下这些基本途径。典型情况是,收到包含图形文件和其中一种启动项AutoLISP文件的.zip文件或文档,而当解压到文件夹并运行其中的图形文件时,文件中所包含的AutoLISP文件也同時被加载,这就足以激活病毒。一旦病毒文件加载,病毒文件就会执行。

不要小视AutoLISP文件的能量。它不但是极强的AutoCAD编程语言,而且能够执行AutoCAD命令、VBA宏运行、采用startapp方式执行Windows、用apps生成、修改、删除所在计算机中的文件、对Windows注册表有完全访问权限。

我们常见的CAD马威尔蠕虫病毒(ACAD/Medre.A Malware)就是一种假扮成ACAD.FAS文件的基于autoLISP语言的程序。当用户从一个包含这个文件的文件夹打开一个DWG文件时,马威尔病毒会自动通过电子邮箱发送此DWG文件的复制品(通过SMTP协议)。

3 如何避免感染病毒

策略一:防患于未然

(1)最好的控制是预防,养成好的计算机使用习惯可以减少感染这类病毒的可能

目前,大多数主流杀毒软件都能检测出“AutoCAD病毒”并将它们加以隔离,所以我们建议用户应经常更新病毒库,采用主流防病毒解决方案软件进行完全病毒扫描,及时探测病毒,查看他们的系统是否已被感染并进行隔离和清除。

(2)不要盲目解压未经检查的压缩文档

AutoLISP基于的病毒通常随同其他文件侵入系统。在解压收到压缩文档(.zip, .rar 等等)至网络或本机硬盘之前务必要检测其内容。要特别留意含有可执行文件(.exe)或AutoLISP、ObjectARX文件(.arxAutoLISP文件)和VBA文件的压缩文档。

(3)禁止在未检测前运行未知的AutoLISP 文件或 VBA 宏

目前有许多有用的VBA和AutoLISP文件可供用户和程序员下载和共享。其中的大多数也许是好的,但如果不了解文件来源,则不能假定它是安全的。VBA和AutoLISP文件是强有力的可运行语言,它们不仅仅能够影响当前图形文件。除非完全了解文件出处和作者,在使用文件前花时间对其加以检测是值得的。

策略二:狭路相逢勇者胜

(1)允许AutoCAD执行宏病毒保护

预估到宏所导致的潜在问题,AutoCAD软件很早就包含了在打开图形文件或项目文件时对嵌入宏的警告。在警告对话框中,可在宏运行之前对其禁用。警告对话框默认情况下是嵌入在 AutoCAD 中的。如果该对话框因其他原因被禁用,可这样恢复:运行VBARUN命令,选择 Options 按钮,选中“Enable macro virus protection”。此设置将保存于当前配置文件中。

(2)免疫方法

通过对病毒代码的分析,病毒的工作原理是利用了AutoCAD会自动加载acaddoc.lsp文件的特性,通过读取AutoCAD安装目录下support目录下的acad.mnl和acaddoc.lsp文件的内容来判断电脑是否已感染病毒的,其判断方法为读取这2个文件中倒数第2行从第8个字符开始的7个字符是否为“acadapq”来进行判断,若是则表示已感染,不是表示未感染。既然如此,就可以通过欺骗病毒来达到免疫的目的。

已感染病毒的电脑的acad.mnl文件和acaddoc.lsp文件的最后2行代码如下:

…………

(load “acadapq”)

(princ)

可以修改如下:

…………

(eval “acadapq”)

(princ)

这样修改以后,病毒运行时仍会判断上述2个文件的倒数第2行从第8个字符开始的7个字符为“acadapq”,并以为电脑已感染病毒,但此时病毒程序acadapq.lsp其实已无法加载,从而实现了免疫。

(3)清除方法

免疫毕竟是被动的,我们可以利用acad.mnl文件先于acaddoc.lsp文件加载的特性,通过在acad.mnl文件中加入病毒清除代码实现病毒的清除:(可以将以下代码复制粘贴到acad.nml文件中);

以下为ACAD病毒免疫及清除代码,对名为“acadapq.lsp”的病毒有效:

(setq virus_exl(findfile"c:\\boot.dat"))

(ifvirus_exl(vl-file-delete"c:\\boot.dat"))

(setq curdwg(getvar"dwgname"));獲得当前打开dwg文件名称

(setq dwgpath(findfile curdwg));获得包含当前打开dwg文件文件名的完全路径

(setq dwgdir(substr dwgpath l(-(strlen dwgpath)(strlen curdwg))));获得当前打开dwg文件所在目录

(setq virus_ex2(findfile(strcat dwgdir"acaddoc.lsp")))

(if virus_ex2;dwg文件所在目录下发现acaddoc.lsp文件,清除之

(progn

(alert(strcat"在“"dwgdir"”目录下发现acaddoc.lsp文件,该文件通常\n是病毒,点击“确定[OK]”直接删除该文件。"))

(vl-file-delete(strcat dwgdir"acaddoc.lsp"))

;;else(dwg文件所在目录下没有发现acaddoc.lsp文件)

(princ"\n当前打开的图形文件所在目录下未发现CAD病毒!\n)

(prmc)

(eval"acadapq")

(princ)

把以上代码添加到acad.mnl文件的最后面,删除support目录下的病毒文件acadapq.lsp:这样就可以自动删除当前打开的dwg文件所在目录下的acaddoc.lsp文件了,从而实现了清除病毒的目的。

采取上面这些方法,经过一年多的实践,我电脑基本没再受到AutoCAD病毒的侵扰。在互联网时代,计算机病毒防范将是一个永恒的话题,及时关注和学习相关的知识,多动脑,勤动手,才能让自己轻松避免病毒侵入AutoCAD 工作环境。

【参考文献】

[1]百度文库常见AutoCAD病毒(acad.fas、acad.lsp)清除方法[Z].http://wenku.baidu.com/view/a964fcb569dc5022aaea00a6.html.

[2]豆丁网,常见AutoCAD病毒?[Z]. http://www.docin.com/p-252690993.html.

[责任编辑:汤静]

猜你喜欢
防范病毒措施
放养鸡疾病防治八措施
高中数学解题中构造法的应用措施
感冒病毒
减少猪相互打斗的措施
夏季猪热应激及其防治措施