病毒 的发展与技术

61
病病 病病 病病病病病病 病病病病病病 病病病 病病病 病病病 病病病

description

病毒 的发展与技术. 主讲人:彭国军. 传染性 破坏性 寄生性 隐蔽性 程序性(可执行性). 潜伏性 可触发性 衍生性 欺骗性 不可预见性. 计算机病毒的特点. 什么是计算机病毒?. 一组具有能够进行自我传播的破坏性代码或程序。. 计算机病毒的发展过程. 20 世纪 60 年代初,美国贝尔实验室三个年轻的程序员编写了一个名为 “ 磁芯大战 ” 的游戏,游戏中的一方通过复制自身来摆脱对方的控制,这就是所谓 “ 计算机病毒第一个雏形。 - PowerPoint PPT Presentation

Transcript of 病毒 的发展与技术

Page 1: 病毒 的发展与技术

病毒病毒的发展与技术的发展与技术

主讲人:彭国军主讲人:彭国军

Page 2: 病毒 的发展与技术

计算机病毒的特点计算机病毒的特点

传染性传染性 破坏性破坏性 寄生性寄生性 隐蔽性隐蔽性 程序性(可执行性)程序性(可执行性)

潜伏性潜伏性 可触发性可触发性 衍生性衍生性 欺骗性欺骗性 不可预见性不可预见性

Page 3: 病毒 的发展与技术

什么是计算机病毒?什么是计算机病毒?

一组具有能够进行自我传播的破坏性代码或一组具有能够进行自我传播的破坏性代码或程序。 程序。

Page 4: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 2020 世纪世纪 6060 年代初,美国贝尔实验室三个年轻的年代初,美国贝尔实验室三个年轻的

程序员编写了一个名为“磁芯大战”的游戏,游程序员编写了一个名为“磁芯大战”的游戏,游戏中的一方通过复制自身来摆脱对方的控制,这戏中的一方通过复制自身来摆脱对方的控制,这就是所谓“计算机病毒第一个雏形。就是所谓“计算机病毒第一个雏形。

2020 世纪世纪 7070 年代,美国作家雷恩在其出版的《年代,美国作家雷恩在其出版的《 P1P1的青春》一书中构思了一种能够自我复制的计算的青春》一书中构思了一种能够自我复制的计算机程序,并第一次称之为“计算机病毒”。机程序,并第一次称之为“计算机病毒”。

Page 5: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 到了到了 2020 世纪世纪 8080 年代后期,巴基斯坦有两个以编年代后期,巴基斯坦有两个以编

软件为生的兄弟(也就是现在的程序员),他们软件为生的兄弟(也就是现在的程序员),他们为了打击那些盗版软件的使用者,设计出了一个为了打击那些盗版软件的使用者,设计出了一个名为“巴基斯坦智囊”的病毒,该病毒只传染软名为“巴基斯坦智囊”的病毒,该病毒只传染软盘引导区。这就是最早在世界上流行的第一个真盘引导区。这就是最早在世界上流行的第一个真正的病毒。正的病毒。

19881988 年至年至 19891989 年,我国也相继出现了能感染硬年,我国也相继出现了能感染硬盘和软盘引导区的盘和软盘引导区的 StonedStoned (石头)病毒,该病毒(石头)病毒,该病毒替代码中有明显的标志“替代码中有明显的标志“ Your Pc is now StoneYour Pc is now Stonedd !”。!”。

Page 6: 病毒 的发展与技术

2020 世纪世纪 9090 年代以前病毒的弱点年代以前病毒的弱点 被感染的文件大小明显增加被感染的文件大小明显增加 病毒代码主体没有加密。病毒代码主体没有加密。 访问文件的日期得到更新。访问文件的日期得到更新。 很容易被很容易被 debugdebug 工具跟踪工具跟踪

这些病毒中,稍微有点对抗反病毒手段的只有这些病毒中,稍微有点对抗反病毒手段的只有 YankYankee Dooleee Doole 病毒,当它发现你用病毒,当它发现你用 DebugDebug 工具跟踪工具跟踪它的时候,它会自动从文件中消失。它的时候,它会自动从文件中消失。

Page 7: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 接着,就出现了一些能对自身进行简单加密的病接着,就出现了一些能对自身进行简单加密的病

毒,譬如当内存有毒,譬如当内存有 17411741 病毒,用病毒,用 DIRDIR 列目录表列目录表的时候,这个病毒就会掩盖被感染文件后增加的的时候,这个病毒就会掩盖被感染文件后增加的字节数,使人看起来文件的大小没有什么变化。字节数,使人看起来文件的大小没有什么变化。

19921992 年以后,出现了是一种叫做年以后,出现了是一种叫做 DIR2DIR2 的病毒,的病毒,这种病毒非常典型,并且其整个程序大小只有这种病毒非常典型,并且其整个程序大小只有 262633 个字节。个字节。

Page 8: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 2020 世纪内,绝大多数病毒是基于世纪内,绝大多数病毒是基于 DOSDOS 系统的,系统的,

有有 80%80% 的病毒能在的病毒能在 WindowsWindows 中传染。中传染。

宏病毒的出现,代表有美丽莎宏病毒的出现,代表有美丽莎 ,, 台湾一号等台湾一号等

病毒生产机现身,病毒生产机现身, 19961996 年下半年在国内终年下半年在国内终于发现了“于发现了“ G2G2、、 IVPIVP 、、 VCL”VCL” 三种“病三种“病毒生产机软件” 毒生产机软件”

Page 9: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 InternetInternet的广泛应用,激发了病毒的活力。病的广泛应用,激发了病毒的活力。病

毒通过网络的快速传播和破坏,为世界带来了一毒通过网络的快速传播和破坏,为世界带来了一次一次的巨大灾难。次一次的巨大灾难。

19981998 年年 22月,台湾省的陈盈豪,编写出了破坏性月,台湾省的陈盈豪,编写出了破坏性极大的恶性病毒极大的恶性病毒 CIH-1.2CIH-1.2 版,并定于每年的版,并定于每年的 44月月 2266 日发作破坏日发作破坏

Page 10: 病毒 的发展与技术

CIHCIH 介绍介绍 陈盈豪:当时台湾的陈盈豪:当时台湾的

一个大学生一个大学生 19981998 年年 22月,月, 1.21.2 版版 19981998 年年 44月月 2626 日,日,

台湾少量发作台湾少量发作 19991999 年年 44月月 2626 日,日,全球发作全球发作

破坏主板破坏主板 BIOSBIOS

Page 11: 病毒 的发展与技术

CIHCIH 特点特点 通过网络(软件下载)传播通过网络(软件下载)传播

全球有超过全球有超过 60006000万台的机器被感染 万台的机器被感染

第一个能够破坏计算机硬件的病毒第一个能够破坏计算机硬件的病毒

全球直接经济损失超过全球直接经济损失超过 1010亿美元亿美元

Page 12: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 19991999 年年 22月,“美丽莎”病毒席卷了整个月,“美丽莎”病毒席卷了整个欧美大陆 欧美大陆

这是世界上最大的一次病毒浩劫,也是最大这是世界上最大的一次病毒浩劫,也是最大的一次网络蠕虫大泛滥。 的一次网络蠕虫大泛滥。

Page 13: 病毒 的发展与技术

““ 美丽莎” 介绍美丽莎” 介绍 大卫大卫 .. 史密斯,美国新史密斯,美国新泽西州工程师泽西州工程师

在在 1616 小时内席卷全球小时内席卷全球互联网 互联网

至少造成至少造成 1010亿美元的亿美元的损失! 损失!

通过通过 emailemail 传播传播 传播规模(传播规模( 5050 的的 nn 次次

方,方, nn 为传播的次为传播的次数)数)

Page 14: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 20002000 年年 55 月,在欧美又爆发了“爱虫”网月,在欧美又爆发了“爱虫”网络蠕虫病毒,造成了比“美丽莎”病毒破络蠕虫病毒,造成了比“美丽莎”病毒破坏性更大的经济损失。这个病毒属于坏性更大的经济损失。这个病毒属于 vbsvbs脚本病毒,可以通过脚本病毒,可以通过 htmlhtml ,, ircirc ,, emailemail进行大量的传播。进行大量的传播。

Page 15: 病毒 的发展与技术

爱虫病毒介绍爱虫病毒介绍 菲律宾菲律宾““ AMA”AMA”电脑电脑

大学计算机系的学生大学计算机系的学生 一个星期内就传遍一个星期内就传遍 55

大洲 大洲 微软、微软、 IntelIntel 等在内的等在内的

大型企业网络系统瘫大型企业网络系统瘫痪 痪

全球经济损失达几十全球经济损失达几十亿美元 亿美元

Page 16: 病毒 的发展与技术

爱虫病毒特点爱虫病毒特点 通过电子邮件传播,向地址本中所有用户发带毒通过电子邮件传播,向地址本中所有用户发带毒邮件邮件

通过聊天通道通过聊天通道 IRCIRC 、、 VBSVBS、网页传播、网页传播 能删除计算机内的部分文件 能删除计算机内的部分文件 制造大量新的电子邮件,使用户文件泄密、网络制造大量新的电子邮件,使用户文件泄密、网络负荷剧增。 负荷剧增。

一年后出现的爱虫变种一年后出现的爱虫变种 VBSVBS// LoveLetterLoveLetter .. CMCM它还会在它还会在 WindowsWindows 目录下驻留一个染有目录下驻留一个染有 CIHCIH病病毒的文件,并将其激活。 毒的文件,并将其激活。

Page 17: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 再后来就出现有更多的网络蠕虫。譬如,再后来就出现有更多的网络蠕虫。譬如,红色代码,蓝色代码、求职者病毒、尼姆红色代码,蓝色代码、求职者病毒、尼姆达(达( NimdaNimda )、)、 FUN_LOVEFUN_LOVE ,最近还在,最近还在流行的新欢乐时光等等。流行的新欢乐时光等等。

Page 18: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 77月月 1818 日午夜,红色代码大面积暴发,被攻击的日午夜,红色代码大面积暴发,被攻击的电脑数量达到电脑数量达到 35.935.9万台。被攻击的电脑中万台。被攻击的电脑中 44%44%位于美国,位于美国, 11%11% 在韩国,在韩国, 5%5% 在中国,其余分散在中国,其余分散在世界各地。 在世界各地。

77月月 1919 日, “红色代码”病毒开始疯狂攻击美国日, “红色代码”病毒开始疯狂攻击美国白宫网站,白宫网站管理员将白宫网站从原来的白宫网站,白宫网站管理员将白宫网站从原来的 IIPP地址转移到另外一个地址,才幸免于难。地址转移到另外一个地址,才幸免于难。

Page 19: 病毒 的发展与技术

红色代码的特点红色代码的特点 该病毒通过微软公司该病毒通过微软公司 IISIIS 系统漏洞进行感染,它使系统漏洞进行感染,它使 IISIIS 服务程序处理服务程序处理请求数据包时溢出,导致把此“数据包”当作代码运行,病毒驻留后请求数据包时溢出,导致把此“数据包”当作代码运行,病毒驻留后再次通过此漏洞感染其它服务器。再次通过此漏洞感染其它服务器。

它只存在于内存,传染时借助这个服务器的网络连接攻击其它的服务它只存在于内存,传染时借助这个服务器的网络连接攻击其它的服务器,直接从一台电脑内存传到另一台电脑内存。 器,直接从一台电脑内存传到另一台电脑内存。

它所造成的破坏主要是涂改网页它所造成的破坏主要是涂改网页 ,, 对网络上的其它服务器进行攻击,对网络上的其它服务器进行攻击,被攻击的服务器又可以继续攻击其它服务器。被攻击的服务器又可以继续攻击其它服务器。

在每月的在每月的 20-2720-27 日,向美国白宫网站发动攻击。日,向美国白宫网站发动攻击。

将将 WWWWWW 英文站点改写为“英文站点改写为“ Hello! Welcome to www.Worm.com! HHello! Welcome to www.Worm.com! Hacked by Chinese!”acked by Chinese!” 。 。

Page 20: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 77月月 3131 日,格林尼治时间午夜整点,“红日,格林尼治时间午夜整点,“红色代码色代码 II ”II ” 爆发,在全球大面积蔓延 。爆发,在全球大面积蔓延 。 据统计:据统计:

红色代码发作的行业集中在计算机信息行业和网站,红色代码发作的行业集中在计算机信息行业和网站,约占约占 70-80%70-80%

其次就是企事业单位,包括学校,政府机构等,约其次就是企事业单位,包括学校,政府机构等,约占占 20%-30%20%-30% 。。

其中北京地区发作最为严重,约占其中北京地区发作最为严重,约占 80%80% 。。

Page 21: 病毒 的发展与技术

红色代码红色代码 II II 特点特点 具有红色代码的特点具有红色代码的特点

可以攻击任何语言的系统。 可以攻击任何语言的系统。

在遭到攻击的机器上植入“特洛伊木马”,拥有极强的可扩充性。在遭到攻击的机器上植入“特洛伊木马”,拥有极强的可扩充性。

未感染则注册未感染则注册 AtomAtom 并创建并创建 300300 个病毒线程。个病毒线程。

当判断到系统默认的语言当判断到系统默认的语言 IDID 是中华人民共和国或中国台湾时,线程是中华人民共和国或中国台湾时,线程数猛增到数猛增到 600600 个 。个 。

IPIP 随机数发生器产生用于病毒感染的目标电脑随机数发生器产生用于病毒感染的目标电脑 IPIP 地址。地址。 (40(40 万万 //天) 天)

当病毒在判断日期大于当病毒在判断日期大于 20022002 年年 1010 月时,会立刻强行重启计算机 月时,会立刻强行重启计算机

Page 22: 病毒 的发展与技术

红色代码造成的危害红色代码造成的危害 网络性能急剧下降,路由器、交换机等网网络性能急剧下降,路由器、交换机等网络设备负载加重,甚至崩溃等。络设备负载加重,甚至崩溃等。

硬盘数据能够被远程读写硬盘数据能够被远程读写

直接经济损失:直接经济损失: 2626亿美元亿美元

Page 23: 病毒 的发展与技术

计算机病毒的发展过程计算机病毒的发展过程 20012001 年年 99月月 1818 日出现的尼姆达病毒日出现的尼姆达病毒

20012001 年最为凶猛的恶意蠕虫病毒,岂今为止已给全球年最为凶猛的恶意蠕虫病毒,岂今为止已给全球带来不可估量的经济损失。带来不可估量的经济损失。

该病毒不仅传播速度快、危害性强,而且自我繁殖能该病毒不仅传播速度快、危害性强,而且自我繁殖能力更是位居各大病毒之首。力更是位居各大病毒之首。

已有五种新变种相继粉墨登场,作恶不可谓不大。已有五种新变种相继粉墨登场,作恶不可谓不大。 利用利用 unicodeunicode漏洞,与黑客技术相结合。漏洞,与黑客技术相结合。

Page 24: 病毒 的发展与技术

尼姆达病毒的传播过程尼姆达病毒的传播过程 20012001 年年 99月月 1818 日,首先在美国出现,当日,首先在美国出现,当天下午,有超过天下午,有超过 130130 ,, 000000 台服务器和个台服务器和个人电脑受到感染。(北美洲)人电脑受到感染。(北美洲)

20012001 年年 99月月 1818 日晚上,在日本、香港、日晚上,在日本、香港、南韩、新加坡和中国都收到了受到感染的南韩、新加坡和中国都收到了受到感染的报告。(亚洲)报告。(亚洲)

20012001 年年 99月月 1919 日,有超过日,有超过 150000150000 个公司个公司被感染,西门子在他的网络受到渗透之后,被感染,西门子在他的网络受到渗透之后,被迫关掉服务器。(欧洲)被迫关掉服务器。(欧洲)

Page 25: 病毒 的发展与技术

尼姆达的四种传播方式尼姆达的四种传播方式 文件感染文件感染

EmailEmail

WWWWWW

局域网局域网

Page 26: 病毒 的发展与技术

尼姆达的四种传播方式尼姆达的四种传播方式 文件感染 :尼姆达在本地机器上寻找系统中的文件感染 :尼姆达在本地机器上寻找系统中的 EXEEXE文件,并将病毒文件,并将病毒

代码置入原文件体内,从而达到对文件的感染。当用户执行像游戏一代码置入原文件体内,从而达到对文件的感染。当用户执行像游戏一类的受感染的程序文件时,病毒就开始传播。 类的受感染的程序文件时,病毒就开始传播。

邮件感染 :尼姆达通过邮件感染 :尼姆达通过 MAPIMAPI 从邮件的客户端及本地的从邮件的客户端及本地的 HTMLHTML 文件中文件中搜索邮件地址,然后将病毒发送给这些地址。这些邮件都包含一个名搜索邮件地址,然后将病毒发送给这些地址。这些邮件都包含一个名为为 README.EXEREADME.EXE的附件,在某些系统中该附件能够自动执行,从而的附件,在某些系统中该附件能够自动执行,从而感染整个系统。 感染整个系统。

网络蠕虫 :它还会通过扫描网络蠕虫 :它还会通过扫描 internetinternet,来试图寻找,来试图寻找 wwwwww 服务器,服务器,一旦找到一旦找到 WEBWEB 服务器,该病毒便会利用已知的安全漏洞来感染该服服务器,该病毒便会利用已知的安全漏洞来感染该服务器,若感染成功,就会任意修改该站点的务器,若感染成功,就会任意修改该站点的 WEBWEB 页,当在页,当在 WEBWEB 上冲上冲浪的用户浏览该站点时,不知不觉中便会被自动感染。浪的用户浏览该站点时,不知不觉中便会被自动感染。

通过局域网:查找通过局域网:查找 .doc.doc文件,找到就会把自身复制到目录中命名为文件,找到就会把自身复制到目录中命名为 rriched20.dlliched20.dll (( word,notepadword,notepad 打开时会调用文件打开时会调用文件 riched20.dll)riched20.dll)。。

Page 27: 病毒 的发展与技术

SirCam SirCam 网络蠕虫病毒网络蠕虫病毒 首发于英国的恶性网络蠕虫病毒 首发于英国的恶性网络蠕虫病毒 触发日期:触发日期: 1010月月 1616 日日

病毒行为:病毒行为: 蠕虫将染毒机器中产生的随机文档隐藏到自身代码中;蠕虫将染毒机器中产生的随机文档隐藏到自身代码中; 蠕虫将删除蠕虫将删除 CC 盘上的所有文件及文件夹,仅当系统日期格式为 盘上的所有文件及文件夹,仅当系统日期格式为

D/M/YD/M/Y (日(日 //月月 //年);年); 每次启动时蠕虫通过向每次启动时蠕虫通过向 c:\recycled\sircam.sysc:\recycled\sircam.sys 文件中添加文文件中添加文本使硬盘上的空余空间被充满 本使硬盘上的空余空间被充满

当蠕虫执行当蠕虫执行 80008000 次后,会停止执行。 次后,会停止执行。 直接经济损失:直接经济损失: 11.511.5 亿美元亿美元

Page 28: 病毒 的发展与技术

SirCam SirCam 病毒的传播途径病毒的传播途径 病毒传播:病毒传播:

11 )邮件:从两种渠道获取邮件地址:)邮件:从两种渠道获取邮件地址: 搜索下列文件:搜索下列文件: sho*., get*., hot*., *.htmsho*., get*., hot*., *.htm并将邮件地址拷贝到并将邮件地址拷贝到 %Wi%Wi

ndows%\sc??.dll (ndows%\sc??.dll (其中?代表随机的数字或字母其中?代表随机的数字或字母 ))

搜索所有驱动器,寻找搜索所有驱动器,寻找 *.wab*.wab 文件( 文件( WindowsWindows地址簿)并拷贝其中地址簿)并拷贝其中的邮件地址。 的邮件地址。

22 )共享驱动器:搜索所有共享驱动器将蠕虫复制到该驱动器中。)共享驱动器:搜索所有共享驱动器将蠕虫复制到该驱动器中。并:并:

将自身拷贝到将自身拷贝到 \recycled\sirc32.exe\recycled\sirc32.exe 在在 \autoexec.bat\autoexec.bat文件中添加一行:文件中添加一行:"@win \recycled\sirc32.exe“"@win \recycled\sirc32.exe“

复制文件复制文件 \Windows\rundll32.exe\Windows\rundll32.exe 到到 \Windows\run32.exe\Windows\run32.exe 用本地文件 用本地文件 c:\recycled\sirc32.exec:\recycled\sirc32.exe替换替换 \Windows\rundll32.exe\Windows\rundll32.exe

Page 29: 病毒 的发展与技术

求职信病毒特征求职信病毒特征 ““求职信”系列变种病毒利用微软系统的漏洞,求职信”系列变种病毒利用微软系统的漏洞,

可以自动感染,无须打开附件,因此危害性很大。可以自动感染,无须打开附件,因此危害性很大。

其变种具有很强的隐蔽性,可以“随机应变”地自其变种具有很强的隐蔽性,可以“随机应变”地自动改换不同的邮件主题和内容,瓦解邮件接收者的动改换不同的邮件主题和内容,瓦解邮件接收者的警惕性。警惕性。

在邮件内部存放发送信息的一部分,这些变种病毒在邮件内部存放发送信息的一部分,这些变种病毒会伪造虚假信息,掩盖病毒的真实来源。会伪造虚假信息,掩盖病毒的真实来源。

Page 30: 病毒 的发展与技术

求职信病毒特征求职信病毒特征 能够绕开一些流行杀毒软件的监控,甚至专门针能够绕开一些流行杀毒软件的监控,甚至专门针

对一些杀毒软件进行攻击。对一些杀毒软件进行攻击。  

利用局域网上的共享文件夹进行传染,其传播特利用局域网上的共享文件夹进行传染,其传播特点类似“尼姆达”病毒。点类似“尼姆达”病毒。

在网络上出现的一些“求职信”变种的专杀工具,在网络上出现的一些“求职信”变种的专杀工具,由于无法适用于所有的变种,因此在杀除一些变由于无法适用于所有的变种,因此在杀除一些变种病毒时,会连病毒带文件一同删除,结果造成种病毒时,会连病毒带文件一同删除,结果造成杀病毒把电脑一起“杀死”的情况。杀病毒把电脑一起“杀死”的情况。

Page 31: 病毒 的发展与技术

““ 中国黑客”介绍中国黑客”介绍 20022002 年年 66月月 66 日,“中国黑客”病毒出现,它发日,“中国黑客”病毒出现,它发

明了全球首创的“三线程”技术。 明了全球首创的“三线程”技术。

主线程:往硬盘写入病毒文件或感染其他执行文件。主线程:往硬盘写入病毒文件或感染其他执行文件。

分线程分线程 11 :监视主线程并保证主线程的运行,一旦主:监视主线程并保证主线程的运行,一旦主线程被清除,这个监视器就将主病毒体再次调入。 线程被清除,这个监视器就将主病毒体再次调入。

分线程分线程 22 :不断监视注册表的某个值(:不断监视注册表的某个值( runrun项),一项),一旦被人工或反病毒软件修改,他立即重新写入这个值,旦被人工或反病毒软件修改,他立即重新写入这个值,保证自己下次启动时拿到控制权。 保证自己下次启动时拿到控制权。

Page 32: 病毒 的发展与技术

““ 中国黑客”病毒的特点中国黑客”病毒的特点

很多反病毒软件一般都是直接修改会引起病毒自动加载的注册表选项,很多反病毒软件一般都是直接修改会引起病毒自动加载的注册表选项,但是它没有注意到这个病毒马上又将这个值改回去了。 但是它没有注意到这个病毒马上又将这个值改回去了。

在传播方式上,“中国黑客”寻找用户邮件地址薄来向外发病毒邮件在传播方式上,“中国黑客”寻找用户邮件地址薄来向外发病毒邮件传播,或通过局域网传播,这一点与求职信病毒非常相似。传播,或通过局域网传播,这一点与求职信病毒非常相似。

另外,在另外,在 Windows 95/98/MeWindows 95/98/Me 系统下,“中国黑客”病毒学习了系统下,“中国黑客”病毒学习了 CIHCIH病毒,它取得了系统的最高权限。 病毒,它取得了系统的最高权限。

此外,“中国黑客”病毒还预留了接口,只要作者愿意的话很多破坏此外,“中国黑客”病毒还预留了接口,只要作者愿意的话很多破坏功能与传播方式很快就可以加上。 功能与传播方式很快就可以加上。

还有,病毒体内的感染开关没有打开,所以目前此病毒还不能感染文还有,病毒体内的感染开关没有打开,所以目前此病毒还不能感染文件,但实际上病毒体内的感染代码已经比较完整,加上几行代码就可件,但实际上病毒体内的感染代码已经比较完整,加上几行代码就可以实现感染以实现感染 WindowsWindows 下的下的 .EXE.EXE 、、 .DLL.DLL 、、 .SCR.SCR 等文件。等文件。

Page 33: 病毒 的发展与技术

病毒的发展趋势病毒的发展趋势从以上病毒的发展过程我们可以看出病毒有如下的发展从以上病毒的发展过程我们可以看出病毒有如下的发展

趋势:趋势:

病毒向有智能和有目的的方向发展病毒向有智能和有目的的方向发展

未来凡能造成重大危害的,一定是“蠕虫”。未来凡能造成重大危害的,一定是“蠕虫”。“蠕虫”的特征是快速地不断复制自身,以求在“蠕虫”的特征是快速地不断复制自身,以求在最短的时间内传播到最大范围。最短的时间内传播到最大范围。

病毒开始与黑客技术结合,病毒开始与黑客技术结合,他们的结合将会为世他们的结合将会为世界带来无可估量的损失界带来无可估量的损失

Page 34: 病毒 的发展与技术

病毒的发展趋势病毒的发展趋势

从从 SircamSircam、“尼姆达”、“求职信”、“中文求职、“尼姆达”、“求职信”、“中文求职信”到“中国黑客”,这类病毒越来越向轻感染文信”到“中国黑客”,这类病毒越来越向轻感染文件、重复制自身的方向发展。件、重复制自身的方向发展。

病毒的大面积传播与网络的发展密不可分病毒的大面积传播与网络的发展密不可分

基于分布式通信的病毒很可能在不久即将出现基于分布式通信的病毒很可能在不久即将出现

未来病毒与反病毒之间比的就是速度,而增强对新未来病毒与反病毒之间比的就是速度,而增强对新病毒的反应和处理速度,将成为反病毒厂商的核心病毒的反应和处理速度,将成为反病毒厂商的核心竞争力之一。竞争力之一。

Page 35: 病毒 的发展与技术

计算机病毒的种类和数量计算机病毒的种类和数量 DosDos 病毒 病毒 4000040000 多种 多种

Win9xWin9x病毒 病毒 600600 多种 多种

winnt/win2000winnt/win2000 病毒 病毒 200200 多多种 种

WordWord 宏病毒 宏病毒 75007500 多种 多种

excelexcel 宏病毒 宏病毒 15001500 多种多种

( ( 20002000 年年 1212月统计数据)月统计数据)

powerpoint powerpoint 病毒 病毒 100100 多种多种

ScriptScript 脚本病毒 脚本病毒 500500 多种 多种

macintosmacintos苹果机病毒 苹果机病毒 5050 种种 linux linux 病毒 病毒 55种 种

手机病毒 手机病毒 22 种 种 合计 合计 550000550000 多种多种

Page 36: 病毒 的发展与技术

病毒所采用的技术病毒所采用的技术 花指令花指令

防止静态反汇编防止静态反汇编

简单自加密简单自加密 对抗特征值查毒法对抗特征值查毒法

多态多态 polypoly一般就是用一般就是用 random keyrandom key加密相同的加密相同的 virvir主体代码主体代码 ,,解码部分是变化的解码部分是变化的 ,, 存储存储

在磁盘上的代码因此是各不相同,在磁盘上的代码因此是各不相同, AVERAVER因而就无法简单地根据特征值扫描因而就无法简单地根据特征值扫描 ..

变形(变态)变形(变态) 每传染一次加密算法变化,原病毒体也发生变化每传染一次加密算法变化,原病毒体也发生变化 metameta 就更深入一步就更深入一步 ,, 使每次使每次 infectinfect后的代码主体都不相同后的代码主体都不相同 ,, 这样显然使查杀的难这样显然使查杀的难度增加度增加 ..效果比效果比 polypoly好好 ..

一个通俗的比喻一个通俗的比喻 polypoly就是象给相同的芯加了不同的外壳就是象给相同的芯加了不同的外壳 ,, 从外表看来从外表看来是不一样是不一样 ,,但是芯的内容并没有变化但是芯的内容并没有变化 ,, 只要击破外壳里面都是一样的只要击破外壳里面都是一样的 ,,但但 metameta 是使整体发生变化是使整体发生变化 ,, 没有完全相同的芯或外壳没有完全相同的芯或外壳 ..

Page 37: 病毒 的发展与技术

当今的几种典型反病毒技术当今的几种典型反病毒技术 特征值技术特征值技术

虚拟机技术虚拟机技术

启发式扫描技术启发式扫描技术

计算机病毒疫苗计算机病毒疫苗

Page 38: 病毒 的发展与技术

编写编写 Win32Win32 病毒的几个关键病毒的几个关键 ApiApi函数的获取函数的获取

不能直接引用动态链接库不能直接引用动态链接库 需要自己寻找需要自己寻找 apiapi函数的地址,然后直接调用该地址函数的地址,然后直接调用该地址

一点背景一点背景 ::在在 PE LoaderPE Loader 装入我们的程序启动后堆装入我们的程序启动后堆栈顶的地址是是程序的返回地址栈顶的地址是是程序的返回地址 ,,肯定在肯定在 KernelKernel 中中 !! 因此我们可以得到这个地址因此我们可以得到这个地址 ,,然后向低地址缩减验然后向低地址缩减验证一直到找到模块的起始地址证一直到找到模块的起始地址 ,, 验证条件为验证条件为 PEPE头不头不能大于能大于 4096bytes,PE header4096bytes,PE header的的 ImageBaseImageBase值应值应该和当前指针相等该和当前指针相等 ..

病毒没有病毒没有 .data.data 段,变量和数据全部放在段,变量和数据全部放在 .code.code 段段

Page 39: 病毒 的发展与技术

编写编写 Win32Win32 病毒的几个关键病毒的几个关键 偏移地址的重定位偏移地址的重定位

Call deltaCall deltadelta: pop ebpdelta: pop ebp sub ebp,offset deltasub ebp,offset delta那么变量那么变量 var1var1 的真正偏移地址为:的真正偏移地址为: var1+ebpvar1+ebp

对对 PEPE 文件格式的了解文件格式的了解

Page 40: 病毒 的发展与技术

PEPE 文件格式一览文件格式一览

DOS MZ headerDOS MZ header

DOS stubDOS stub

PE headerPE header

Section tableSection table

Section 1Section 1

Section 2Section 2

Section ...Section ...

Section nSection n

Page 41: 病毒 的发展与技术

PE headerPE header

Pe header Pe header 由三部分组成由三部分组成 字串 “字串 “ PE\0\0”PE\0\0” (( SignatureSignature )) 映像文件头(映像文件头( FileHeaderFileHeader )) 可选映像头(可选映像头( OptionalHeaderOptionalHeader ))

Page 42: 病毒 的发展与技术

字串 “字串 “ PE\0\0”PE\0\0”

SignatureSignature 一一 dworddword 类型,值为类型,值为 50h, 4550h, 45h, 00h, 00hh, 00h, 00h (( PE\0\0PE\0\0 )。)。 本域为本域为 PEPE 标记,标记,我们可以此识别给定文件是否为有效我们可以此识别给定文件是否为有效 PEPE 文文件。件。

这个字串在文件中的位置(这个字串在文件中的位置( e_lfanewe_lfanew ),),可以在可以在 DOSDOS 程序头中找到它的指针,它占程序头中找到它的指针,它占用四个字节,位于文件开始偏移用四个字节,位于文件开始偏移 3CH3CH字节字节中。 中。

Page 43: 病毒 的发展与技术

映像文件头映像文件头 该结构域包含了关于该结构域包含了关于 PEPE 文件物理分布的信文件物理分布的信息,息, 比如节数目、文件执行机器等。比如节数目、文件执行机器等。

它实际上是结构它实际上是结构 IMAGE_FILE_HEADERIMAGE_FILE_HEADER 的的简称。简称。

Page 44: 病毒 的发展与技术

映像文件头结构映像文件头结构 IMAGE_FILE_HEADER STRUCT IMAGE_FILE_HEADER STRUCT

Machine WORD ? Machine WORD ? NumberOfSections WORD ? NumberOfSections WORD ? TimeDateStamp dd ? TimeDateStamp dd ? PointerToSymbolTable dd ? PointerToSymbolTable dd ? NumberOfSymbols dd ? NumberOfSymbols dd ? SizeOfOptionalHeader WORD ? SizeOfOptionalHeader WORD ? Characteristics WORD ? Characteristics WORD ? IMAGE_FILE_HEADER ENDSIMAGE_FILE_HEADER ENDS

Page 45: 病毒 的发展与技术

映像文件头的基本信息映像文件头的基本信息

顺序顺序 名字名字 大小大小(字(字节)节)

描述描述

11 Machine Machine * * 22 机器类型,机器类型, x86x86 为为 14ch14ch22 NumberOfSection NumberOfSection **** 22 文件中节的个数文件中节的个数33 TimeDataStampTimeDataStamp 44 生成该文件的时间生成该文件的时间44 PointerToSymbleTablPointerToSymbleTabl

ee44 COFFCOFF符号表的偏移符号表的偏移

55 NumberOfSymbolsNumberOfSymbols 44 符号数目符号数目66 SizeOfOptionalHeadeSizeOfOptionalHeade

rr22 可选头的大小可选头的大小

77 Characteristics Characteristics ** 22 关于文件信息的标记,比如关于文件信息的标记,比如文件是文件是 exeexe 还是还是 dlldll

Page 46: 病毒 的发展与技术

可选映像头可选映像头 optional header optional header 结构是结构是 IMAGE_NT_HEADERSIMAGE_NT_HEADERS 中的最中的最

后成员。包含了后成员。包含了 PEPE文件的逻辑分布信息。该结构共有文件的逻辑分布信息。该结构共有 3131个域,一些是很关键,另一些不太常用。这里只介绍那些个域,一些是很关键,另一些不太常用。这里只介绍那些真正有用的域。真正有用的域。

这儿有个关于这儿有个关于 PEPE文件格式的常用术语文件格式的常用术语 : RVA : RVA RVA RVA 代表相对虚拟地址。代表相对虚拟地址。它是相对虚拟空间里的一个地址它是相对虚拟空间里的一个地址 。。

举例说明,如果举例说明,如果 PEPE文件装入虚拟地址文件装入虚拟地址 (VA)(VA) 空间的空间的 40000400000h0h 处,且进程从虚址处,且进程从虚址 401000h401000h 开始执行,我们可以说进开始执行,我们可以说进程执行起始地址在程执行起始地址在 RVA 1000hRVA 1000h。每个。每个 RVARVA都是相对于模都是相对于模块的起始块的起始 VAVA的。的。

Page 47: 病毒 的发展与技术

可选映像头可选映像头名字名字 描述描述

AddressOfEntryPoint AddressOfEntryPoint **PEPE装载器准备运行的装载器准备运行的 PEPE文件的第一个指令文件的第一个指令的的 RVARVA。若要改变整个执行的流程,可以将。若要改变整个执行的流程,可以将该值指定到新的该值指定到新的 RVARVA,这样新,这样新 RVARVA 处的指令处的指令首先被执行。首先被执行。

ImageBaseImageBasePEPE文件的优先装载地址。比如,如果该值是文件的优先装载地址。比如,如果该值是400000h400000h,, PEPE装载器将尝试把文件装到虚装载器将尝试把文件装到虚拟地址空间的拟地址空间的 400000h400000h 处。若该地址区域已处。若该地址区域已被其他模块占用,那被其他模块占用,那 PEPE装载器会选用其他装载器会选用其他空闲地址。空闲地址。

SectionAlignmentSectionAlignment 内存中节对齐的粒度。内存中节对齐的粒度。

FileAlignmentFileAlignment 文件中节对齐的粒度。文件中节对齐的粒度。

Page 48: 病毒 的发展与技术

可选映像头可选映像头名字名字 描述描述MajorSubsystemVersioMajorSubsystemVersio

nn

MinorSubsystemVersioMinorSubsystemVersion n

win32win32 子系统版本。若子系统版本。若 PEPE文件是专门为文件是专门为 WiWin32n32 设计的,该子系统版本必定是设计的,该子系统版本必定是 4.04.0 否则否则对话框不会有对话框不会有 33 维立体感。维立体感。

SizeOfImageSizeOfImage 内存中整个内存中整个 PEPE映像体的尺寸。映像体的尺寸。SizeOfHeadersSizeOfHeaders 所有头所有头 ++ 节表的大小,也就等于文件尺寸减节表的大小,也就等于文件尺寸减

去文件中所有节的尺寸。可以以此值作为去文件中所有节的尺寸。可以以此值作为 PEPE文件第一节的文件偏移量。文件第一节的文件偏移量。

SubsystemSubsystem NTNT 用来识别用来识别 PEPE文件属于哪个子系统。文件属于哪个子系统。DataDirectoryDataDirectory 一一 IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY 结构数组。结构数组。

每个结构给出一个重要数据结构的每个结构给出一个重要数据结构的 RVARVA,比,比如引入地址表等。如引入地址表等。

Page 49: 病毒 的发展与技术

DataDirectoryDataDirectory 数据目录数据目录

一个一个 IMAGE_DATA_DIRECTORYIMAGE_DATA_DIRECTORY 数组,里面数组,里面放的是这个可执行文件的一些重要部分的放的是这个可执行文件的一些重要部分的 RVARVA和尺寸,目的是使可执行文件的装入更快,数和尺寸,目的是使可执行文件的装入更快,数组的项数由上一个域给出。组的项数由上一个域给出。 IMAGE_DATA_DIIMAGE_DATA_DIRECTORYRECTORY包含有两个域,如下:包含有两个域,如下:

IMAGE_DATA_DIRECTORYIMAGE_DATA_DIRECTORY VitualAddress DD?VitualAddress DD? Size DD?Size DD? IMAGE_DATA_DIRECTORY ENDSIMAGE_DATA_DIRECTORY ENDS

Page 50: 病毒 的发展与技术

节表节表 节表其实就是紧挨着 节表其实就是紧挨着 PE header PE header 的一结的一结

构数组。该数组成员的数目由 构数组。该数组成员的数目由 file headfile header (er (IMAGE_FILE_HEADERIMAGE_FILE_HEADER) ) 结构中 结构中 NuNumberOfSectionsmberOfSections 域的域值来决定。节域的域值来决定。节表结构又命名为 表结构又命名为 IMAGE_SECTION_HEIMAGE_SECTION_HEADERADER 。。

结构中放的是一个节的信息,如名字、结构中放的是一个节的信息,如名字、地址、长度、属性等。地址、长度、属性等。

Page 51: 病毒 的发展与技术

IMAGE_SECTION_HEADERIMAGE_SECTION_HEADER

顺序顺序 名字名字 大小大小(字(字节)节)

描述描述

11 Name Name ** 88 节名节名22 PhysicalAddressPhysicalAddress 或或 VirtVirt

ualSizeualSize44 OBJOBJ 文件用作表示本节物理地址文件用作表示本节物理地址

EXEEXE文件中表示节的真实尺寸文件中表示节的真实尺寸33 Virtual Virtual ** 44 这个值这个值 ++ 映像基地址映像基地址 == 本节在内本节在内

存中的真正地址。存中的真正地址。 OBJOBJ 中无意中无意义。义。

44 SizeOfRawData SizeOfRawData ** 44 本节的原始尺寸本节的原始尺寸55 PointerToRawData PointerToRawData ** 44 本节原始数据在文件中的位置本节原始数据在文件中的位置

Page 52: 病毒 的发展与技术

IMAGE_SECTION_HEADERIMAGE_SECTION_HEADER

顺序顺序 名字名字 大小大小(字(字节)节)

描述描述

66 PointerToRelocationsPointerToRelocations 44 OBJOBJ 中表示该节重定位信息的偏中表示该节重定位信息的偏移移 EXEEXE文件中无意义文件中无意义

77 PointerToLinenumberPointerToLinenumberss

44 行号偏移行号偏移

88 NumberOfRelocationsNumberOfRelocations 22 本节要重定位的数目本节要重定位的数目

99 NumberOfLinenumbeNumberOfLinenumbersrs

22 本节在行号表中的行号数目本节在行号表中的行号数目

1010 Characteristics Characteristics ** 44 节属性节属性

Page 53: 病毒 的发展与技术

节节 “ “ 节(节( Section)”Section)” 跟在节表之后,一般跟在节表之后,一般 PEPE文文

件都有几个“节”。比较常见的有:件都有几个“节”。比较常见的有: 代码节代码节 已初始化的数据节已初始化的数据节 未初始化的数据节未初始化的数据节 资源节资源节 引入函数节引入函数节 引出函数节引出函数节

Page 54: 病毒 的发展与技术

代码节代码节 代码节一般名为代码节一般名为 .text.text或或 CODECODE,该节含有程序的,该节含有程序的

可执行代码。可执行代码。 每个每个 PEPE文件都有代码节文件都有代码节 在代码节中,还有一些特别的数据,是作为调用映在代码节中,还有一些特别的数据,是作为调用映入函数之用。如:入函数之用。如:

Call MessageBoxACall MessageBoxA的调用,反汇编后该指令被换的调用,反汇编后该指令被换为为 call 0040101A,call 0040101A,而地址而地址 0040101A0040101A仍在仍在 .text.text中,中,它放有一个跳转指令它放有一个跳转指令 jmp dword ptr[0040304c],jmp dword ptr[0040304c],即这条跳转指令的目的地址处于即这条跳转指令的目的地址处于 .idata.idata 节中的节中的 0040040304C0304C 处,其中放的才是处,其中放的才是 MessageBoxAMessageBoxA的真正地的真正地址,如下图:址,如下图:

Page 55: 病毒 的发展与技术
Page 56: 病毒 的发展与技术

已初始化的数据节已初始化的数据节 这个节一般取名为这个节一般取名为 .data.data 或或 DATADATA

已初始化的数据节中放的是在编译时刻就已初始化的数据节中放的是在编译时刻就已确定的数据。如已确定的数据。如 Hello World Hello World 中的字符中的字符串“串“ Hello World!”Hello World!” 。。

Page 57: 病毒 的发展与技术

未初始化的数据节未初始化的数据节 这个节的名称一般叫这个节的名称一般叫 .bbs.bbs 。。

这个节里放有未初始化的全局变量和静态这个节里放有未初始化的全局变量和静态变量。变量。

Page 58: 病毒 的发展与技术

资源节资源节 资源节一般名为资源节一般名为 .rsrc.rsrc 这个节放有如图标、对话框等程序要用到这个节放有如图标、对话框等程序要用到

的资源。的资源。 资源节是树形结构的,它有一个主目录,资源节是树形结构的,它有一个主目录,

主目录下又有子目录,子目录下可以是子主目录下又有子目录,子目录下可以是子目录或数据。目录或数据。

都是一个都是一个 IMAGE_RESOURCE_DIRECTORYIMAGE_RESOURCE_DIRECTORY结构。结构如下:结构。结构如下:

Page 59: 病毒 的发展与技术

IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY 结构结构

顺序顺序 名字名字 大小大小(字(字节)节)

描述描述

11 CharacteriticsCharacteritics 44 通常为通常为 0022 TimeDateStampTimeDateStamp 44 资源生成时间资源生成时间33 MajorVersionMajorVersion 22 主版本号主版本号44 MinorVersionMinorVersion 22 次版本号次版本号55 NumberOfNamedEntrieNumberOfNamedEntrie

ss22 以名字标识的资源以名字标识的资源

数数66 NumberOfldEntriesNumberOfldEntries 22 以以 IDID标识的资源数标识的资源数

Page 60: 病毒 的发展与技术

引入函数节引入函数节 一个引入函数是被某模块调用的但又不在调一个引入函数是被某模块调用的但又不在调

用者模块中的函数 用者模块中的函数 这个节一般名为这个节一般名为 .idata.idata ,也叫引入表。,也叫引入表。 它包含从其它(系统或第三方写的)它包含从其它(系统或第三方写的) DLLDLL中中引入的函数,例如引入的函数,例如 user32.dlluser32.dll、、 gdi32.dllgdi32.dll等。等。

它的开始是一个它的开始是一个 IMAGE_IMPORT_DESCRIPIMAGE_IMPORT_DESCRIPTORTOR 数组。这个数组的长度不定,但他的最数组。这个数组的长度不定,但他的最后一项是全后一项是全 00 ,可以以此判断数组的结束。,可以以此判断数组的结束。

Page 61: 病毒 的发展与技术

^_^ ^_^ 谢谢!谢谢!