计算机病毒及其防范技术 978-7-302-16923-9 第十一章 oav代码分析与使用配置新_第1页
计算机病毒及其防范技术 978-7-302-16923-9 第十一章 oav代码分析与使用配置新_第2页
计算机病毒及其防范技术 978-7-302-16923-9 第十一章 oav代码分析与使用配置新_第3页
计算机病毒及其防范技术 978-7-302-16923-9 第十一章 oav代码分析与使用配置新_第4页
计算机病毒及其防范技术 978-7-302-16923-9 第十一章 oav代码分析与使用配置新_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章 OAV代码分析与使用配置上海交通大学信息安全工程学院2018/8/9 1本章学习目标 了解杀毒引擎的框架 掌握 OAV使用方法 2018/8/9 2OAV简介 OAV( OpenAntiVirus)项目()是在 2000年 8月 30日由德国开源爱好者发起,旨在为开源社区的反病毒开发者提供一个交流和项目管理的资源平台。 2018/8/9 3 该项目具有明确的路线图: 为网络 (邮件服务器、 internet网关、文件服务器等 )终端用户和企业客户提供病毒防护的开源解决方案。 为网络终端用户和企业客户提供计算机和网络安全的开源解决方案。 研发开源的扫描引擎,从而使未来的安全需求不再依赖于商业提供商。 通过开源系统和软件产品,为系统管理员提供系统恢复能力。 建立网站,提供最新的病毒和安全信息。 建立 How-To项目提供相关信息和白皮书,用户和系统管理员可以通过该项目提供的信息,利用开源安全解决方案,从而确定反病毒策略。 2018/8/9 4 项目组成: ScannerDaemon, VirusHammer和 PatternFinder是符合 GPL规范的病毒扫描器的一个简单而基础的实现,用 Java语言写成。 squid-vscan可以利用 Squid Http-Proxy扫描网络流量,从而侦测病毒。 samba-vsan利用 samba服务器提供 on-access病毒扫描。最新的 SUSE Linux已经包含了该工具。 此外,很多开源爱好者还开发了很多小工具,详细情况参见 /projects.php2018/8/9 5ScannerDaemon架构 ScannerDaemon基本上可以分为如下几个模块:扫描引擎模块扫描配置模块病毒签名文件解析模块文件系统支持模块(扫描目标文件 /文件夹时所需要) 2018/8/9 62018/8/9 7Main-class类 主要包括两个重要的类:RequestHandlerScannerDaemon2018/8/9 8扫描配置模块 该模块(源代码的组织结构看,可归入到扫描引擎模块中,这里单独拿出来分析)。 该模块主要包括两个类:WriteableScanConfiguration 这个类放了一些扫描引擎的属性名。 DefaultScanConfiguration 该类是默认的属性配置类,其构造函数就是对扫描引擎的属性赋以默认值。2018/8/9 9病毒签名模块 这个模块中涉及到的类 /接口包括CredoFile类、 CredoEntry类、PositionFoundEvent类、PositionFoundListener接口、StringFoundListener类、 StringsParser类、 WildcardPattern类、 StringFinder类等,其中 StringsParser类、 WildcardPattern类和 StringFinder类尤为重要。 2018/8/9 10 病毒签名文件首先看看病毒签名文件到底是什么形式。下载 VirusSignatures-latest.zip,然后解压缩,可以看到里面包括 clamav.strings和clamav2.strings两个子文件,这两个子文件可以用 notepad文本工具打开。 摘取 clamav2.strings文件中的一段内容如下 (一行 ): Oror-fam (Clam)1*0*3*0*3=495243*56697275*53455859330F5455*4B617A61*536E617073686F 2018/8/9 11 摘取 clamav.strings文件中的一段内容如下(一行): Eicar-Test-Signature32=58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E4441 从这段代码大致可以认为, Oror-fam(Clam)、VBS.Kristen等为病毒名称,1*0*3*0*3=495243*56697275*53455859330F5455*4B617A61*536E617073686F等字串为该病毒的一段特征模式串。 2018/8/9 12 CredoFile类该类只是把普通文件包装成 jar格式输入流 CredoEntry类根据(病毒签名文件)的介绍,病毒签名文件 .credo文件是一个 jar package,这个package里的每一个文件就用一个 credoEntry类实例来表示。这个类十分简单,此处不做进一步分析。2018/8/9 13 CredoParser类 这个类的作用是:在指定的目录下查找 .credo文件,供 StringsParser类解析 .credo文件的具体内容。 StringsParser类 这个类具体完成对 .strings文件的解析。 WildcardPattern类 这个类是用来处理不包含 “*”字符的模式串,即模式串具有统一的形式,无须用 “*”字符分隔开,例如(5.StringsParser类)节中文本行 2和 3中 “=”后面的模式串。该类是病毒签名模块中的一个重要类。 2018/8/9 14 StringFinder类这个类是病毒签名模块中的核心类,该类具体保存了各种病毒的名称和特征串,并给每个相应的病毒加上了一个侦听器。 2018/8/9 15扫描引擎模块 这个模块是 ScannerDaemon的中心模块,先简单看看对几个与事件侦听器有关的类 /接口,然后按着扫描的整个过程逐个对相关类分析。主要包括PositionFoundEvent类、PositionFoundListener接口和StringFoundListener类 。2018/8/9 16 MatchArray类 这个类包括两方面的功能。第一,根据病毒签名文件,建立模式串 hash表,在 ScanEngine类的初始化函数中,调用函数 loadCredoFiles(scanConfiguration),这个函数经过层层调用,最终调用 MatchArray类的 addString函数建立 hash表。第二,通过调用 createCensor函数返回MatchArrayCensor类实例,而MatchArrayCensor类提供对文件的扫描。2018/8/9 17文件系统支持模块 文件系统支持模块主要包括 VfsEnty类、FileVfsEntry类、 VfsContainerFactory接口、 ScanEngine类和容器类等。2018/8/9 18 VfsEntry类这是个抽象类,表示一个文件 /文件夹节点。 FileVfsEntry类该类是 VfsEntry抽象类的子类。该类实现了VfsEntry中为定义的抽象函数。 2018/8/9 19测试实例 test1.txt(不含病毒 ): Its a good day! test2.txt(含 Eicar-Test-Signature病毒): X5O!P%AP4PZX54(P)7CC)7$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* test3.txt(含 W32.GriYo病毒): Coded by GriYo 29A W32.GriYo2018/8/9 20 test4.txt(不含病毒): 29A Coded by GriYo W32.GriYo test5.txt(含 Eicar-Test-Signature和 W32.GriYo病毒): X5O!P%AP4PZX54(P)7CC)7$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* Coded by GriYo 29A W32.GriYo test6.zip(含含 Eicar-Test-Signature和 W32.GriYo病毒): 包含 test2.txt和 test3.txt两个子文件 test7.zip(不含任何病毒): 包含 test1.txt和 test4.txt两个子文件2018/8/9 21 1.对不含病毒模式串文件的测试测试文件名为 test1.txt(放在项目文件夹下),内容为:Its a good day!客户端和服务器建立 telnet连接后,输入scan test1.txt就会在客户端命令行窗口中输出:OK表明未发现任何病毒。2018/8/9 22 2.对第一类模式串的测试 测试文件名为 test2.txt(放在项目文件夹下),内容为: X5O!P%AP4PZX54(P)7CC)7$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* 其中 X5O!P%AP4PZX54(P)7CC)7$EICAR-STANDA 是 Eicar-Test-Signature32病毒的模式串 58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E4441 翻译后得到的字符串(每两个 16进制码翻译成一个 ascii字符,例如 58X , 355 ),运行 ScannerDaemon,然后客户端连接 telnet localhost 8127 之后输入 scan test2.txt,就会输出 Found Eicar-Test-Signature in test2.txt。 说明匹配成功。 2018/8/9 23 3.对第三类模式串的测试 测试文件名为 test3.txt(放在项目文件夹下),内容为: Coded by GriYo 29A W32.GriYo 其中 Coded by GriYo和 29A是 W32.GriYo病毒的两个顺序子串 436F64656420627920477269596F和 323941的 ascii码翻译串,同样测试后,客户端会输出: Found W32.GriYo(Clam)in test3.txt。 说明匹配成功。 为了说明第三类模式串必须按模式字串的顺序得到匹配,另测试文件 test4.txt,内容为: 29A Coded by GriYo W32.GriYo 运行后,客户端输出: OK。 说明子串顺序改变后,匹配未成功。2018/8/9 24 4.对含多个病毒模式的文件的测试测试文件名为 test5.txt,内容如下:X5O!P%AP4PZX54(P)7CC)7$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*Coded by GriYo 29A W32.GriYo输出为:Found Eicar-Test-Signature in test5.txt。说明扫描并未发现 W32.GriYo病毒。2018/8/9 25 5.对含多个病毒的 zip压缩包的测试测试的压缩包文件为 test6.zip,包含 test2.txt和 test3.txt两个子文件。其中 test2.txt含有Eicar-Test-Signature病毒, test3.txt含有W32.GriYo病毒,扫描的输出结果是:FOUND W32.GriYo (Clam) in test6.zip zip:test3.txt说明只发现了一个病毒。2018/8/9 26 6.对不含任何病毒的 zip压缩包的测试测试的压缩包文件为 test7.zip,包含 test1.txt和 test4.txt两个子文件,不含任何病毒,扫描后,客户端的输出为:OK表明未发现任何病毒。 2018/8/9 27ScannerDaemon配置 在 %ScannerDaemonDir%目录下建立 credo目录和 temp目录,把 VirusSignatures-latest.zip解压缩得到的 VirusSignatures.credo文件放到credo目录下, temp目录为扫描压缩包文件所必须。 用 wordpad(或 notepad)工具打开ScannerDperties文件,要使该文件中的配置信息起作用,只要去掉属性名前的 “#”(以 “#”字符开头表示注释行)字符便可。 2018/8/9 28ScannerDaemon使用说明 服务器端启动 ScannerDaemon 1) 启动命令说明 启动 ScannerDaemon时可以接受的参数列表为: nosignature:表示病毒签名文件无需检查签名( VirusSignatures-latest.zip中的病毒签名文件是没有签名的,所以运行 ScannerDaemon必须加上此参数) configfile filename:指定配置文件,为指定该参数,默认的配置文件为%ScannerDaemonDir%ScannerDperties。 2018/8/9 29 name_of_property value_of_property:指定属性名和属性值。 使命令行的当前工作目录进入 %ScannerDaem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论