630 likes | 872 Views
病毒 的发展与技术. 主讲人:彭国军. 传染性 破坏性 寄生性 隐蔽性 程序性(可执行性). 潜伏性 可触发性 衍生性 欺骗性 不可预见性. 计算机病毒的特点. 什么是计算机病毒?. 一组具有能够进行自我传播的破坏性代码或程序。. 计算机病毒的发展过程. 20 世纪 60 年代初,美国贝尔实验室三个年轻的程序员编写了一个名为 “ 磁芯大战 ” 的游戏,游戏中的一方通过复制自身来摆脱对方的控制,这就是所谓 “ 计算机病毒第一个雏形。
E N D
病毒的发展与技术 主讲人:彭国军
传染性 破坏性 寄生性 隐蔽性 程序性(可执行性) 潜伏性 可触发性 衍生性 欺骗性 不可预见性 计算机病毒的特点
什么是计算机病毒? 一组具有能够进行自我传播的破坏性代码或程序。
计算机病毒的发展过程 • 20世纪60年代初,美国贝尔实验室三个年轻的程序员编写了一个名为“磁芯大战”的游戏,游戏中的一方通过复制自身来摆脱对方的控制,这就是所谓“计算机病毒第一个雏形。 • 20世纪70年代,美国作家雷恩在其出版的《P1的青春》一书中构思了一种能够自我复制的计算机程序,并第一次称之为“计算机病毒”。
计算机病毒的发展过程 • 到了20世纪80年代后期,巴基斯坦有两个以编软件为生的兄弟(也就是现在的程序员),他们为了打击那些盗版软件的使用者,设计出了一个名为“巴基斯坦智囊”的病毒,该病毒只传染软盘引导区。这就是最早在世界上流行的第一个真正的病毒。 • 1988年至1989年,我国也相继出现了能感染硬盘和软盘引导区的Stoned(石头)病毒,该病毒替代码中有明显的标志“Your Pc is now Stoned!”。
20世纪90年代以前病毒的弱点 • 被感染的文件大小明显增加 • 病毒代码主体没有加密。 • 访问文件的日期得到更新。 • 很容易被debug工具跟踪 这些病毒中,稍微有点对抗反病毒手段的只有Yankee Doole病毒,当它发现你用Debug工具跟踪它的时候,它会自动从文件中消失。
计算机病毒的发展过程 • 接着,就出现了一些能对自身进行简单加密的病毒,譬如当内存有1741病毒,用DIR列目录表的时候,这个病毒就会掩盖被感染文件后增加的字节数,使人看起来文件的大小没有什么变化。 • 1992年以后,出现了是一种叫做DIR2的病毒,这种病毒非常典型,并且其整个程序大小只有263个字节。
计算机病毒的发展过程 • 20世纪内,绝大多数病毒是基于DOS系统的,有80%的病毒能在Windows中传染。 • 宏病毒的出现,代表有美丽莎,台湾一号等 • 病毒生产机现身,1996年下半年在国内终于发现了“G2、IVP、VCL”三种“病毒生产机软件”
计算机病毒的发展过程 Internet的广泛应用,激发了病毒的活力。病毒通过网络的快速传播和破坏,为世界带来了一次一次的巨大灾难。 • 1998年2月,台湾省的陈盈豪,编写出了破坏性极大的恶性病毒CIH-1.2版,并定于每年的4月26日发作破坏
CIH介绍 • 陈盈豪:当时台湾的一个大学生 • 1998年2月,1.2版 • 1998年4月26日,台湾少量发作 • 1999年4月26日,全球发作 • 破坏主板BIOS
CIH特点 • 通过网络(软件下载)传播 • 全球有超过6000万台的机器被感染 • 第一个能够破坏计算机硬件的病毒 • 全球直接经济损失超过10亿美元
计算机病毒的发展过程 • 1999年2月,“美丽莎”病毒席卷了整个欧美大陆 这是世界上最大的一次病毒浩劫,也是最大的一次网络蠕虫大泛滥。
“美丽莎” 介绍 • 大卫.史密斯,美国新泽西州工程师 • 在16小时内席卷全球互联网 • 至少造成10亿美元的损失! • 通过email传播 • 传播规模(50的n次方,n为传播的次数)
计算机病毒的发展过程 • 2000年5月,在欧美又爆发了“爱虫”网络蠕虫病毒,造成了比“美丽莎”病毒破坏性更大的经济损失。这个病毒属于vbs脚本病毒,可以通过html,irc,email进行大量的传播。
爱虫病毒介绍 • 菲律宾“AMA”电脑大学计算机系的学生 • 一个星期内就传遍5大洲 • 微软、Intel等在内的大型企业网络系统瘫痪 • 全球经济损失达几十亿美元
爱虫病毒特点 • 通过电子邮件传播,向地址本中所有用户发带毒邮件 • 通过聊天通道IRC、VBS、网页传播 • 能删除计算机内的部分文件 • 制造大量新的电子邮件,使用户文件泄密、网络负荷剧增。 • 一年后出现的爱虫变种VBS/LoveLetter.CM它还会在Windows目录下驻留一个染有CIH病毒的文件,并将其激活。
计算机病毒的发展过程 • 再后来就出现有更多的网络蠕虫。譬如,红色代码,蓝色代码、求职者病毒、尼姆达(Nimda)、FUN_LOVE,最近还在流行的新欢乐时光等等。
计算机病毒的发展过程 • 7月18日午夜,红色代码大面积暴发,被攻击的电脑数量达到35.9万台。被攻击的电脑中44%位于美国,11%在韩国,5%在中国,其余分散在世界各地。 • 7月19日, “红色代码”病毒开始疯狂攻击美国白宫网站,白宫网站管理员将白宫网站从原来的IP地址转移到另外一个地址,才幸免于难。
红色代码的特点 • 该病毒通过微软公司IIS系统漏洞进行感染,它使IIS服务程序处理请求数据包时溢出,导致把此“数据包”当作代码运行,病毒驻留后再次通过此漏洞感染其它服务器。 • 它只存在于内存,传染时借助这个服务器的网络连接攻击其它的服务器,直接从一台电脑内存传到另一台电脑内存。 • 它所造成的破坏主要是涂改网页,对网络上的其它服务器进行攻击,被攻击的服务器又可以继续攻击其它服务器。 • 在每月的20-27日,向美国白宫网站发动攻击。 • 将WWW英文站点改写为“Hello! Welcome to www.Worm.com! Hacked by Chinese!”。
计算机病毒的发展过程 • 7月31日,格林尼治时间午夜整点,“红色代码II ”爆发,在全球大面积蔓延 。 • 据统计: • 红色代码发作的行业集中在计算机信息行业和网站,约占70-80% • 其次就是企事业单位,包括学校,政府机构等,约占20%-30%。 • 其中北京地区发作最为严重,约占80%。
红色代码II 特点 • 具有红色代码的特点 • 可以攻击任何语言的系统。 • 在遭到攻击的机器上植入“特洛伊木马”,拥有极强的可扩充性。 • 未感染则注册Atom并创建300个病毒线程。 • 当判断到系统默认的语言ID是中华人民共和国或中国台湾时,线程数猛增到600个 。 • IP随机数发生器产生用于病毒感染的目标电脑IP地址。(40万/天) • 当病毒在判断日期大于2002年10月时,会立刻强行重启计算机
红色代码造成的危害 • 网络性能急剧下降,路由器、交换机等网络设备负载加重,甚至崩溃等。 • 硬盘数据能够被远程读写 • 直接经济损失:26亿美元
计算机病毒的发展过程 • 2001年9月18日出现的尼姆达病毒 • 2001年最为凶猛的恶意蠕虫病毒,岂今为止已给全球带来不可估量的经济损失。 • 该病毒不仅传播速度快、危害性强,而且自我繁殖能力更是位居各大病毒之首。 • 已有五种新变种相继粉墨登场,作恶不可谓不大。 • 利用unicode漏洞,与黑客技术相结合。
尼姆达病毒的传播过程 • 2001年9月18日,首先在美国出现,当天下午,有超过130,000台服务器和个人电脑受到感染。(北美洲) • 2001年9月18日晚上,在日本、香港、南韩、新加坡和中国都收到了受到感染的报告。(亚洲) • 2001年9月19日,有超过150000个公司被感染,西门子在他的网络受到渗透之后,被迫关掉服务器。(欧洲)
尼姆达的四种传播方式 • 文件感染 • Email • WWW • 局域网
尼姆达的四种传播方式 • 文件感染 :尼姆达在本地机器上寻找系统中的EXE文件,并将病毒代码置入原文件体内,从而达到对文件的感染。当用户执行像游戏一类的受感染的程序文件时,病毒就开始传播。 • 邮件感染 :尼姆达通过MAPI从邮件的客户端及本地的HTML文件中搜索邮件地址,然后将病毒发送给这些地址。这些邮件都包含一个名为README.EXE的附件,在某些系统中该附件能够自动执行,从而感染整个系统。 • 网络蠕虫 :它还会通过扫描internet,来试图寻找www服务器,一旦找到WEB服务器,该病毒便会利用已知的安全漏洞来感染该服务器,若感染成功,就会任意修改该站点的WEB页,当在WEB上冲浪的用户浏览该站点时,不知不觉中便会被自动感染。 • 通过局域网:查找.doc文件,找到就会把自身复制到目录中命名为riched20.dll(word,notepad打开时会调用文件riched20.dll)。
SirCam 网络蠕虫病毒 • 首发于英国的恶性网络蠕虫病毒 • 触发日期:10月16日 • 病毒行为: • 蠕虫将染毒机器中产生的随机文档隐藏到自身代码中; • 蠕虫将删除C盘上的所有文件及文件夹,仅当系统日期格式为 D/M/Y(日/月/年); • 每次启动时蠕虫通过向c:\recycled\sircam.sys文件中添加文本使硬盘上的空余空间被充满 • 当蠕虫执行8000次后,会停止执行。 • 直接经济损失:11.5亿美元
SirCam 病毒的传播途径 • 病毒传播: • 1)邮件:从两种渠道获取邮件地址: • 搜索下列文件:sho*., get*., hot*., *.htm并将邮件地址拷贝到%Windows%\sc??.dll (其中?代表随机的数字或字母) • 搜索所有驱动器,寻找*.wab文件( Windows地址簿)并拷贝其中的邮件地址。 • 2)共享驱动器:搜索所有共享驱动器将蠕虫复制到该驱动器中。并: • 将自身拷贝到\recycled\sirc32.exe • 在\autoexec.bat文件中添加一行:"@win \recycled\sirc32.exe“ • 复制文件\Windows\rundll32.exe到\Windows\run32.exe • 用本地文件 c:\recycled\sirc32.exe替换\Windows\rundll32.exe
求职信病毒特征 • “求职信”系列变种病毒利用微软系统的漏洞,可以自动感染,无须打开附件,因此危害性很大。 • 其变种具有很强的隐蔽性,可以“随机应变”地自动改换不同的邮件主题和内容,瓦解邮件接收者的警惕性。 • 在邮件内部存放发送信息的一部分,这些变种病毒会伪造虚假信息,掩盖病毒的真实来源。
求职信病毒特征 • 能够绕开一些流行杀毒软件的监控,甚至专门针对一些杀毒软件进行攻击。 • 利用局域网上的共享文件夹进行传染,其传播特点类似“尼姆达”病毒。 • 在网络上出现的一些“求职信”变种的专杀工具,由于无法适用于所有的变种,因此在杀除一些变种病毒时,会连病毒带文件一同删除,结果造成杀病毒把电脑一起“杀死”的情况。
“中国黑客”介绍 • 2002年6月6日,“中国黑客”病毒出现,它发明了全球首创的“三线程”技术。 • 主线程:往硬盘写入病毒文件或感染其他执行文件。 • 分线程1:监视主线程并保证主线程的运行,一旦主线程被清除,这个监视器就将主病毒体再次调入。 • 分线程2:不断监视注册表的某个值(run项),一旦被人工或反病毒软件修改,他立即重新写入这个值,保证自己下次启动时拿到控制权。
“中国黑客”病毒的特点 • 很多反病毒软件一般都是直接修改会引起病毒自动加载的注册表选项,但是它没有注意到这个病毒马上又将这个值改回去了。 • 在传播方式上,“中国黑客”寻找用户邮件地址薄来向外发病毒邮件传播,或通过局域网传播,这一点与求职信病毒非常相似。 • 另外,在Windows 95/98/Me系统下,“中国黑客”病毒学习了CIH病毒,它取得了系统的最高权限。 • 此外,“中国黑客”病毒还预留了接口,只要作者愿意的话很多破坏功能与传播方式很快就可以加上。 • 还有,病毒体内的感染开关没有打开,所以目前此病毒还不能感染文件,但实际上病毒体内的感染代码已经比较完整,加上几行代码就可以实现感染Windows下的.EXE、.DLL、.SCR等文件。
病毒的发展趋势 从以上病毒的发展过程我们可以看出病毒有如下的发展趋势: • 病毒向有智能和有目的的方向发展 • 未来凡能造成重大危害的,一定是“蠕虫”。“蠕虫”的特征是快速地不断复制自身,以求在最短的时间内传播到最大范围。 • 病毒开始与黑客技术结合,他们的结合将会为世界带来无可估量的损失
病毒的发展趋势 • 从Sircam、“尼姆达”、“求职信”、“中文求职信”到“中国黑客”,这类病毒越来越向轻感染文件、重复制自身的方向发展。 • 病毒的大面积传播与网络的发展密不可分 • 基于分布式通信的病毒很可能在不久即将出现 • 未来病毒与反病毒之间比的就是速度,而增强对新病毒的反应和处理速度,将成为反病毒厂商的核心竞争力之一。
Dos病毒 40000多种 Win9x病毒 600多种 winnt/win2000病毒 200多种 Word宏病毒 7500多种 excel宏病毒 1500多种 ( 2000年12月统计数据) powerpoint 病毒 100多种 Script脚本病毒 500多种 macintos苹果机病毒 50种 linux 病毒 5种 手机病毒 2种 合计 550000多种 计算机病毒的种类和数量
病毒所采用的技术 • 花指令 • 防止静态反汇编 • 简单自加密 • 对抗特征值查毒法 • 多态 • poly一般就是用random key加密相同的vir主体代码,解码部分是变化的,存储在磁盘上的代码因此是各不相同,AVER因而就无法简单地根据特征值扫描. • 变形(变态) • 每传染一次加密算法变化,原病毒体也发生变化 • meta就更深入一步,使每次infect后的代码主体都不相同,这样显然使查杀的难度增加.效果比poly好. 一个通俗的比喻poly就是象给相同的芯加了不同的外壳,从外表看来是不一样,但是芯的内容并没有变化,只要击破外壳里面都是一样的,但meta是使整体发生变化,没有完全相同的芯或外壳.
当今的几种典型反病毒技术 • 特征值技术 • 虚拟机技术 • 启发式扫描技术 • 计算机病毒疫苗
编写Win32病毒的几个关键 • Api函数的获取 • 不能直接引用动态链接库 • 需要自己寻找api函数的地址,然后直接调用该地址 • 一点背景:在PE Loader装入我们的程序启动后堆栈顶的地址是是程序的返回地址,肯定在Kernel中! 因此我们可以得到这个地址,然后向低地址缩减验证一直到找到模块的起始地址,验证条件为PE头不能大于4096bytes,PE header的ImageBase值应该和当前指针相等. • 病毒没有.data段,变量和数据全部放在.code段
编写Win32病毒的几个关键 • 偏移地址的重定位 Call delta delta: pop ebp sub ebp,offset delta 那么变量var1的真正偏移地址为:var1+ebp • 对PE文件格式的了解
PE header Pe header 由三部分组成 • 字串 “PE\0\0”(Signature) • 映像文件头(FileHeader) • 可选映像头(OptionalHeader)
字串 “PE\0\0” • Signature一dword类型,值为50h, 45h, 00h, 00h(PE\0\0)。本域为PE标记,我们可以此识别给定文件是否为有效PE文件。 • 这个字串在文件中的位置(e_lfanew),可以在DOS程序头中找到它的指针,它占用四个字节,位于文件开始偏移3CH字节中。
映像文件头 • 该结构域包含了关于PE文件物理分布的信息,比如节数目、文件执行机器等。 • 它实际上是结构IMAGE_FILE_HEADER的简称。
映像文件头结构 IMAGE_FILE_HEADER STRUCT Machine WORD ? NumberOfSections WORD ? TimeDateStamp dd ? PointerToSymbolTable dd ? NumberOfSymbols dd ? SizeOfOptionalHeader WORD ? Characteristics WORD ? IMAGE_FILE_HEADER ENDS
可选映像头 • optional header 结构是IMAGE_NT_HEADERS中的最后成员。包含了PE文件的逻辑分布信息。该结构共有31个域,一些是很关键,另一些不太常用。这里只介绍那些真正有用的域。 • 这儿有个关于PE文件格式的常用术语: RVA RVA 代表相对虚拟地址。它是相对虚拟空间里的一个地址 。 • 举例说明,如果PE文件装入虚拟地址(VA)空间的400000h处,且进程从虚址401000h开始执行,我们可以说进程执行起始地址在RVA 1000h。每个RVA都是相对于模块的起始VA的。
DataDirectory数据目录 • 一个IMAGE_DATA_DIRECTORY数组,里面放的是这个可执行文件的一些重要部分的RVA和尺寸,目的是使可执行文件的装入更快,数组的项数由上一个域给出。IMAGE_DATA_DIRECTORY包含有两个域,如下: IMAGE_DATA_DIRECTORY VitualAddress DD? Size DD? IMAGE_DATA_DIRECTORY ENDS
节表 • 节表其实就是紧挨着 PE header 的一结构数组。该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 NumberOfSections域的域值来决定。节表结构又命名为 IMAGE_SECTION_HEADER。 • 结构中放的是一个节的信息,如名字、地址、长度、属性等。