网页恶意代码的原理与防范-2019年精选文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网页恶意代码的原理与防范
目前,“网页病毒”搅得人心惶惶,从各方面的求救信号中可以略窥这类“病毒”的症状:在浏览了一些网站后,就发现IE标题栏、IE起始主页被莫名其妙地修改了;每次开机出现莫名其妙的提示框;修改输入法启动项;启动无关程序等等。
其实“网页病毒”(又称网页恶意代码)是利用网页来进行破坏的病毒,它是使用一些SCRIPT语言编写的一些恶意代码,利用IE的漏洞来实现病毒植入。
当用户登录某些含有网页病毒的网站时,网页病毒便被悄悄激活,并且可以利用系统的一些资源进行破坏。
实际上,网页恶意代码的技术基础是WSH,其通用的中文译名为“Windows 脚本宿主”。
通过用户执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是WSH。
1什么是WSH?
WSH是“Windows Scripting Host”的缩略形式,对于这个较为抽象的名词,我们可以给出这样一个笼统的理解:它是内嵌于 Windows 操作系统中的脚本语言工作环境。
WSH这个概念最早出现于Windows 98操作系统。
微软在研发 Windows 98 时,为了实现多类脚本文件在Windows界面或Dos命令提示符下的直接运行,就在系统内植入了一个基于 32
位 Windows 平台、并独立于语言的脚本运行环境,并将其命名为“Windows Scripting Host”。
WSH 架构于ActiveX之上,通过充当 ActiveX 的脚本引擎控制器,WSH为Windows用户充分利用威力强大的脚本指令语言扫清了障碍。
再具体一点描述:你自己编写了一个脚本文件,如后缀
为.vbs或.js的文件,然后在Windows下双击并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是 WSH。
2WSH 有什么用?
WSH的设计,在很大程度上考虑到了“非交互性脚本(noninteractive scripting)”的需要。
在这一指导思想下产生的WSH,给脚本带来非常强大的功能,例如:我们可以利用它完成映射网络驱动器、检索及修改环境变量、处理注册表项等工作;管理员还可以使用WSH的支持功能来创建简单的登陆脚本,甚至可以编写脚本来管理活动目录。
而事实上,上述功能的实现,均与WSH内置的多个对象密切相关,这些内置对象肩负着直接处理脚本指令的重任。
因此,我们也可以通过了解WSH的内置对象来探寻 WSH 可以实现的功能。
图1是WSH的内置对象构成情况。
从图中我们可以看出,WSH 共有 14 个内置对象,它们各自有着明确分工。
具体而言,位于最底部的Wscrip ,主要作用是提取命令行变量,确定脚本文件名,确定 WSH 执行文件名(wscript.exe 还是 cscript.exe),确认host版本信息,创
建、关连及分离 COM 对象,写入事件,按程序结束一个脚本文件的运行,向默认的输出设备(如对话框、命令行)输出信息等;WshArguments的作用是获取全部的命令行变量; WshNamed负责获取指定的命令行参数集;WshUnnamed负责获取未经指定的命令行参数集;WshNetwork的主要作用是开放或关闭网络共享,连接或断开网络打印机,映射或取消网络中的共享,获取当前登陆用户的信息;WshController可以创建一个远程脚本对象;WshRemote 可以实现网络中对计算机系统的远程管理,也可按计划对其它程序/脚本进行处理;WshRemote Error的作用在于:当一个远程脚本(WshRemote 对象)因脚本错误而终止时,获取可用的错误信息;WshShell 主要负责程序的本地运行,处理注册表项、创建快捷方式、获取系统文件夹信息,处理环境变量;WshShortcut主要用于按计划创建快捷方式;WshSpecialfolders 用于获取任意一个 Windows特殊文件夹的信息;WshURLShortcut 用于按程序要求创建进入互联网资源的快捷方式;WshEnvironment用于获取任意的环境变量(如WINDIR, PATH, 或PROMPT);WshScriptExec用于确定一个脚本文件的运行状态及错误信息。
在这些内置对象的帮助下,我们就可以利用 WSH 充分发挥VBScript及JScript等脚本的强大威力,极大地提高我们的工作效率。
3WSH是如何工作的?
WSH 的工作流程,实际上就是脚本文件被解析并执行的过程。
我们知道,现在脚本经常会被植入网页,其中包括HTML页面(客户机端)和ASP页面(服务器端)。
对于植入HTML页面的脚本,其所需的解析引擎会由 IE 这样的网页浏览器载入;对于植入ASP页面的脚本,其所需的解析引擎会由IIS(Internet Information Services)提供。
而对于出现在 HTML和ASP页面之外的脚本(它们常以独立的文件形式存在),就需要经由WSH来处理了。
4WSH有何不足?
WSH 的优点在于它使我们可以充分利用脚本来实现计算机
工作的自动化;但不可否认,也正是它的这一特点,使我们的系统又有了新的安全隐患。
许多计算机病毒制造者正在热衷于用脚本语言来编制病毒,并利用WSH的支持功能,让这些隐藏着病毒的脚本在网络中广为传播。
曾名燥一时的“I LOVE YOU”便是一个典型代表。
因此,大家对于来历不明、尤其是邮件附件里的一些脚本文件还是应该保持戒备。
5WSH能否禁用?
WSH是Windows系统中的一个可选功能,也就是说,它可以在Windows中被禁用。
WSH一旦被禁用,那隐藏在网页中的脚本文件(.vbs 文件就无法被激活,我们的计算机自然就会更加安全。
但对于要不要禁用 WSH 这个问题,也不能一概而论,需要用户根据自己的实际情况权衡。
从正面讲,禁用 WSH有以下几个明显的好处:首先,WSH 的禁用可以防止感染“I LOVE YOU”这类隐藏在 VB 脚本文件中的病毒,并阻止其继续传播。
其次,WSH就像潜伏在你电脑中的一枚炸弹,一旦时机成熟,不知道还会带来什么麻烦,并给你的爱机招来“杀身之祸”,从这一点看,禁用 WSH是当然的防患于未然之举。
再次,通过笔者在Windows各版本中的试验,禁用WSH并未给系统带来直接的不良后果,计算机的运行与禁用前并无明显变化。
而且,微软Office和IE的常规操作,也无需 WSH 功能。
最后,从技术上讲,禁用 WSH 的步骤十分简单(具体方法附后)。
用简单的方法实现对病毒的防范,何乐而不为呢?
但另一方面,禁用WSH也可能会产生一些消极影响:禁用WSH 后,可能会影响少数需要该功能的软件的正常运行。
而问题的关键是:对普通用户来讲,并没有一个简单的办法来判断一种软件是否需要 WSH。
不过,客观的讲,我们所用的大部分软件是不需要WSH的。
6WSH如何禁用?
禁用WSH我们可以采用以下方式之一:
(1)打开资源管理器,点击“工具->文件夹选项->文件类型”,在文件类型中将后缀名为“VBS、VBE、JS、JSE、WSH、WSF”项全部删除,这样这些文件就不会被执行了。
(2)打开IE,点击“工具->Internet选项->安全->自定义级别”,在“安全设置”对话框中,将其中所有的ActiveX插件
和控件以及与Java相关的组件全部禁止即可(不过这样做以后的一个不便之处就是如果网页中使用了.js 或者 .vbs 脚本,则该网也将不能正常显示)。
7后记
WSH是一把双刃剑,一方面它可以使我们的电脑更加方便地工作;另一方面,也容易被病毒制造者利用而对电脑造成危害,所以,WSH无论禁用与否,都会对你平时的工作产生不便。
如果你经常利用Google搜索引擎搜索电脑资料,肯定会注意到在某些网站,Google会提醒你该网站包含恶意代码,这时你可以避免电脑发生问题。
但是,如果该网站的资料对你很有用,你必须要浏览该网站,也可以使用其他安全的措施。
安全浏览器是其中一种比较可行的方法,像麒麟安全浏览器,独创“安全浏览模式”浏览可疑站点,在您浏览了恶意站点也不会中毒,确保内容、安全两不误;而另一款360安全浏览器的特别之处是在计算机系统内部构造了一个独立的虚拟空间
--“360沙箱”,使所有网页程序都密闭在此空间内运行,突破了传统的以查杀、拦截为核心的安全思路。
这样,网页上任何木马、病毒、恶意程序的攻击都会被限制在“360沙箱”中,无法对真实的计算机系统产生破坏。