恶意代码防范-刘功申 第3章 恶意代码防范原理

上传人:f****u 文档编号:126694741 上传时间:2020-03-27 格式:PPT 页数:55 大小:3.65MB
返回 下载 相关 举报
恶意代码防范-刘功申 第3章 恶意代码防范原理_第1页
第1页 / 共55页
恶意代码防范-刘功申 第3章 恶意代码防范原理_第2页
第2页 / 共55页
恶意代码防范-刘功申 第3章 恶意代码防范原理_第3页
第3页 / 共55页
恶意代码防范-刘功申 第3章 恶意代码防范原理_第4页
第4页 / 共55页
恶意代码防范-刘功申 第3章 恶意代码防范原理_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《恶意代码防范-刘功申 第3章 恶意代码防范原理》由会员分享,可在线阅读,更多相关《恶意代码防范-刘功申 第3章 恶意代码防范原理(55页珍藏版)》请在金锄头文库上搜索。

1、恶意代码防范原理 刘功申上海交通大学信息安全工程学院 本章学习目标 掌握恶意代码防范理论模型掌握恶意代码防范的层次结构理解恶意代码检测知识及实验掌握恶意代码清除知识掌握恶意代码预防知识掌握恶意代码免疫思路 本章内容 恶意代码防范技术的发展我国恶意代码防范技术的发展恶意代码预防理论模型恶意代码防范思路恶意代码的检测恶意代码的清除恶意代码的预防恶意代码的免疫恶意代码的处理流程 1恶意代码防范技术的发展 起初 1个防范程序仅仅对付1个恶意代码随着恶意代码数量的迅速增长 出现了专业反病毒研究人员 一是俄罗斯的EugeneKaspersky另一位是DoctorSoloman这些公司推出了专业的便于商业化

2、的恶意代码防范工具 2我国恶意代码防范技术的发展 DOS时代静态的防范Windows时代引入了实时监控等技术互联网时代应对蠕虫 木马等恶意代码 3恶意代码预防理论模型 F Cohen 四模型 理论 1 基本隔离模型该模型的主要思想是取消信息共享 将系统隔离开来 使得恶意代码既不能从外部入侵进来 也不可能把系统内部的病毒扩散出去 2 分隔模型将用户群分割为不可能互相传递信息的若干封闭子集 由于信息处理流的控制 使得这些子集可被看作是系统被分割成的相互独立的子系统 使得恶意代码只能感染整个系统中的某个子系统 而不会在子系统之间进行相互传播 3 流模型对共享的信息流通过的距离设定一个阀值 使得一定量

3、的信息处理只能在一定的区域内流动 若该信息的使用超过设定的阀值 则可能存在某种危险 4 限制解释模型即限制兼容 采用固定的解释模式 就有可能不被恶意代码感染 类 IPM 模型 把计算机程序或磁盘文件类比为不断生长变化的植物 把计算机系统比作一个由许多植物组成的田园 把恶意代码看成是侵害植物的害虫 把计算机信息系统周围的环境看作农业事物处理机构 3恶意代码防范思路 防治技术概括成6个层次 检测清除预防被动防治免疫主动防治防范策略数据备份及恢复 三分技术 七分管理 十二分数据 内容 计算机病毒的诊断原理计算机病毒的诊断方法高速模式匹配自动诊断的源码分析 4恶意代码的检测 用什么来判断 染毒后的特征

4、常用方法 比较法校验和特征码扫描法行为监测法感染试验法分析法 1 比较法 比较法是用原始或正常的对象与被检测的对象进行比较 手工比较法是发现新病毒的必要方法 比较法又包括 注册表比较法工具RegMon弱点 正常程序也操作注册表文件比较法通常比较文件的长度和内容两个方面工具FileMon弱点 长度和内容的变化有时是合法的病毒可以模糊这种变化 内存比较法主要针对驻留内存病毒判断驻留特征中断比较法将正常系统的中断向量与有毒系统的中断向量进行比较比较法的好处 简单比较法的缺点 无法确认病毒 依赖备份 2 校验和法 首先 计算正常文件内容的校验和并且将该校验和写入某个位置保存 然后 在每次使用文件前或文

5、件使用过程中 定期地检查文件现在内容算出的校验和与原来保存的校验和是否一致 从而可以发现文件是否感染 这种方法叫校验和法 它既可发现已知病毒又可发现未知病毒 优点 方法简单能发现未知病毒被查文件的细微变化也能发现缺点 必须预先记录正常态的校验和会误报警不能识别病毒名称程序执行附加延迟不对付隐蔽性病毒 3 特征码扫描法 扫描法是用每一种病毒体含有的特定字符串 Signature 对被检测的对象进行扫描 如果在被检测对象内部发现了某一种特定字符串 就表明发现了该字符串所代表的病毒 扫描器由两部分组成 特征串 Signature 和扫描算法 Scanner 选择代码串的规则是 代码串不应含有病毒的数

6、据区 数据区是会经常变化的 在保持唯一性的前提下 应尽量使特征代码长度短些 以减少时间和空间开销 代码串一定要在仔细分析了程序之后才能选出最具代表性的 足以将该病毒区别于其他病毒和该病毒的其他变种的代码串 特征串必须能将病毒与正常的非病毒程序区分开 例如 给定特征串为 E97C0010 37CB 则 E97C00102737CB 和 E97C00109C37CB 都能被识别出来 特征码示例 其优点包括 1 当特征串选择得很好时 病毒检测软件让计算机用户使用起来方便快速 对病毒了解不多的人也能用它来发现病毒 2 不用专门软件 用编辑软件也能用特征串扫描法去检测特定病毒 3 可识别病毒的名称 4

7、误报警率低 5 依据检测结果 可做杀毒处理 缺点 1 当被扫描的文件很长时 扫描所花时间也较多 2 不容易选出合适的特征串 有时会发出假警报 3 新病毒的特征串未加入病毒代码库时 老版本的扫毒程序无法识别出新病毒 4 怀有恶意的计算机病毒制造者得到代码库后 会很容易地改变病毒体内的代码 生成一个新的变种 使扫描程序失去检测它的能力 5 容易产生误警报 只要正常程序内带有某种病毒的特征串 即使该代码段已不可能被执行 而只是被杀死的病毒体残余 扫描程序仍会报警 6 不易识别变异类病毒 7 搜集已知病毒的特征代码 费用开销大 8 在网络上使用效率低 4 行为监测法 利用病毒的特有行为特性来监测病毒的

8、方法称为行为监测法 常用行为 占用INT13H修改DOS系统数据区的内存总量对COM和EXE文件做写入动作写注册表自动联网请求优点 发现未知病毒缺点 难度大 误报警 5 感染实验法 这种方法的原理是利用了病毒的最重要的基本特征 感染特性 观察正常程序和可疑程序的表现是非不同 1 检测未知引导型病毒的感染实验法a 先用一张软盘 做一个清洁无毒的系统盘 用DEBUG程序 读该盘的BOOT扇区进入内存 计算其校验和 并记住此值 同时把正常的BOOT扇区保存到一个文件中 上述操作必须保证系统环境是清洁无毒的b 在这张实验盘上拷贝一些无毒的系统应用程序 c 启动可疑系统 将实验盘插入可疑系统 运行实验盘

9、上的程序 重复一定次数 d 再在干净无毒机器上 检查实验盘的BOOT扇区 可与原BOOT扇区内容比较 如果实验盘BOOT扇区内容已改变 可以断定可疑系统中有引导型病毒 2 检测未知文件型病毒的感染实验法a 在干净系统中制作一张实验盘 上面存放一些应用程序 这些程序应保证无毒 应选择长度不同 类型不同的文件 既有COM型又有EXE型 记住这些文件正常状态的长度和校验和 b 在实验盘上制作一个批处理文件 使盘中程序在循环中轮流被执行数次c 将实验盘插入可疑系统 执行批处理文件 多次执行盘中程序 d 将实验盘放人干净系统 检查盘中文件的长度和校验和 如果文件长度增加 或者校验和变化 则可断定系统中有

10、病毒 6 分析法 分析法的目的在于 1 确认被观察的磁盘引导区和程序中是否含有2 确认病毒的类型和种类 判定其是否是一种新病毒 3 搞清楚病毒体的大致结构 提取特征识别用的字符串或特征字 用于增添到病毒代码库供扫描和识别程序用 4 详细分析病毒代码 为制定相应的反病毒措施制定方案 检测方法 手工检测工具软件 Debug UltraEdit EditPlus SoftICE TRW Ollydbg等 优点 Aver发现并分析新病毒缺点 不可能普及自动检测自动检测是指通过一些自动诊断软件来判断系统是否有毒的方法 优点 易于普及缺点 滞后性 自动检测的源码分析 讨论自动诊断病毒 查毒 的最简单方法

11、特征码扫描法自动诊断程序至少要包括两个部分 病毒特征码 VirusPattern VirusSignature 库扫描引擎 ScanEngine 病毒特征码意义重大获得方法手工自动 扫描引擎是杀毒软件的精华部分考虑杀毒速度待杀毒文件的类型支持的硬盘格式其他特殊技术虚拟执行行为识别等等 简单的查毒程序 VirScan是一个简单的示例程序 其功能 根据病毒特征码发现特定病毒 CIH和Klez VirScan从程序入口点开始查找病毒特征码 对抗Klez病毒会卸载杀毒引擎的功能 CIH病毒不会动态地改变程序入口点处的标记 我们可以自接从入口点处开始 Klez病毒会动态的改变程序入口点处的前16个字节

12、所以 VirScan跳过了前16个字节 构造病毒库virus pattern 病毒库virus pattern的结构如下 Klez A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 58 53 56 57 89 Cih 55 8D 44 24 F8 33 DB 64 87 03 初始化病毒库 转化函数 字符 55 数字 30经过转换后的格式为 unsignedcharKlezSignature 0 xA1 0 x00 0 x00 0 x00 0 x00 0 x50 0 x64 0 x89 0 x25 0 x00 0 x00 0 x00 0 x00 0 x

13、83 0 xEC 0 x58 0 x53 0 x56 0 x57 0 x89 unsignedcharCihSignature 0 x55 0 x8D 0 x44 0 x24 0 xF8 0 x33 0 xDB 0 x64 0 x87 0 x03 保护VirScan程序 首先 编写一个普通的DLL 该DLL将导出一个名字为DontAllowForDeletion的函数 BOOLWINAPIDontAllowForDeletion LPSTRStr HANDLEhFile if hFile CreateFile Str GENERIC READ FILE SHARE READ NULL OPEN

14、 EXISTING FILE ATTRIBUTE READONLY NULL INVALID HANDLE VALUE returnFALSE returnTRUE 然后 在VirScan的启动时 调用DLL的导出函数 实现对VirScan程序的保护 DontAllowDeletion DLLFUNC GetProcAddress hLib DontAllowForDeletion DontAllowDeletion TmpPath TmpPath为VirScan在系统中的物理位置 病毒查找模块 查找前需要定位文件 定位PE入口 查找KlezSetFilePointer hFile pCode

15、Bytes 16 NULL FILE BEGIN ReadFile hFile pBytes sizeof KlezSignature 查找CIH病毒SetFilePointer hFile pCodeBytes NULL FILE BEGIN ReadFile hFile pBytes sizeof CihSignature 演示程序 5恶意代码的清除 清除 将感染病毒的文件中的病毒模块摘除 并使之恢复为可以正常使用的文件的过程称为病毒清除 杀毒的不安全因素 清除过程可能破坏文件有的需要格式化才能清除清除的方法分类引导型病毒的清除原理文件型病毒的清除原理特殊病毒的清除原理 引导型病毒的清除原

16、理 引导型病毒感染时的破坏行为有 1 硬盘主引导扇区 2 硬盘或软盘的BOOT扇区 3 为保存原主引导扇区 BOOT扇区 病毒可能随意地将它们写入其他扇区 而毁坏这些扇区 4 引导型病毒发做 执行破坏行为造成种种损坏 根据感染和破坏部位的不同 可以分以下方法进行修复 第一种 硬盘主引导扇区染毒 是可以修复的 1 用无毒软盘启动系统 2 寻找一台同类型 硬盘分区相同的无毒机器 将其硬盘主引导扇区写入一张软盘中 将此软盘插入染毒机器 将其中采集的主引导扇区数据写入染毒硬盘 即可修复 第二种 硬盘 软盘BOOT扇区染毒也可以修复 寻找与染毒盘相同版本的无毒系统软盘 执行SYS命令 即可修复 第三种 引导型病毒如果将原主引导扇区或BOOT扇区覆盖式写入根目录区 被覆盖的根目录区完全损坏 不可能修复 第四种 如果引导型病毒将原主引导扇区或BOOT扇区覆盖式写入第一FAT表时 第二FAT表未破坏 则可以修复 可将第二FAT表复制到第一FAT表中 第五种 引导型病毒占用的其他部分存储空间 一般都采用 坏簇 技术和 文件结束簇 技术占用 这些被空间也是可以收回的 文件型病毒的消毒原理 覆盖型文件病毒清

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号