安徽师范大学——计算机与信息学院————作者(授课老师):周文
从“消毒软件”到“防毒卡”
– 早期的消毒程序是一对一的,即一个程序清除一种病毒
– 90年初,我国最早的一个防病毒卡诞生在深圳的“华星”公司
– 93-94年
,防病毒卡迪销售达到了一个顶峰
“查杀防三合一”实时反病毒软件的诞生
– 20世纪90年代末期,出现了具有实时防病毒功能的反病毒软件
第一代反病毒技术
– 采用单纯的病毒特征代码分析,清除染毒文件中的病毒
第二代反病毒技术
– 采用静态广谱特征扫描技术检测病毒,可以检测变形病毒,但是误报率高
第三代反病毒技术
– 将静态扫描技术和动态仿真跟踪技术结合起来,将查找病毒和清除病毒合二为一
– 全面实现防、查、杀等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵,能清除检测到的病毒,不会破坏文件和数据
第四代反病毒技术
– 基于病毒家族体系的命名规则、基于多位CRC
校验和扫描机理、启发式智能代码分析模块、动态数据还原模块(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒模块、自身免疫模块等先进的解毒技术
– 启发式扫描,源于人工智能技术,是基于给定的判断规则和定义的扫描技术,若发现被扫描程序中存在可疑的程序功能指令,则作出存在病毒的预警或判断
Active K
)技术,是在操作系统和网络的内核中嵌入反病毒功能,使反病毒成为系统本身的底层模块,实现各种反毒模块与操作系统和网络无缝连接,而不是一个系统外部的应用软件手工检测
– 利用Debug、PCTools、SysInfo、WinHex
等工具软件进行病毒的检测
– 这种方法比较复杂,费时费力
– 可以剖析病毒、可以检测一些自动检测工具不能识别的新病毒
自动检测
– 利用一些专业诊断软件来判断引导扇区、磁盘文件是否有毒的方法
– 自动检测比较简单,一般用户都可以进行,但需要较好的诊断软件
– 可方便地检测大量的病毒,自动检测工具的发展总是滞后于病毒的发展
特征串
特征值数据库可以定义如下:
– 如果行头第一个字符为空格,则视为注释行
– 每行中用一个或多个链接的空格分隔病毒特征值、病毒名、备注三个部分,每一部分中不能有空格,病毒名中可以用下横线连接多个单词
在病毒样本中,抽取特征值
– 抽取的特征值应比较特殊,不要与普通正常程序代码吻合
– 抽取的特征值要有适当长度
获取病毒特征值的方法
– 把病毒在计算机屏幕上出现的信息作为病毒的特征串
– 用病毒标识作为病毒的特征值
– 从病毒代码的任何地方开始取出连续的、不大于64字节且不含空格(ASCII
值为32)的字符串都可以作为计算机病毒的特征串
将特征串纳入病毒特征数据库
– 在实际应用中,使用扫描引擎实现病毒特征的匹配
(1)抽取特征串时未对特征串进行分析,没有对同种病毒的多个同种染毒宿主上相同位置处的特征串进行比较,找出共同点,再以此为特征串
(2)搜索病毒时只是单纯地依次比较特征串,没有智能化处理
广谱特征串
建立的方法如下:
(1)提取变形病毒的多个感染样本,最好是对同一宿主的多次单独感染样本,不是多次重复感染
(2)在每个样本的相同位置抽取适当长度的病毒代码,这是传统意义的病毒特征串
(3)比较这些病毒特征串,依次记下各个样本完全相同的代码,如果一定位置上的代码各个样本不是完全相同或根本不同,那么把这些常变换的代码用两个问号“??”来代替,每一个双问号代表一个字节
广谱特征串例子
B8 ?? 42 ?? ?? ?? ?? %% B4 40 %% %% B8 ?? 57
建立病毒广谱特征串有以下几个注意事项:
??
”和百分号“%%
”可交叉使用32
个字节时,大于部分可增加一些双问号来接续,或多用几个双百分号。每一个双百分号最多可代表32
个字节特征值检测方法的优点是:
检测准确快速、可识别病毒的名称、误报警率低、并且依据检测结果可做解毒处理
其缺点是:
包括文件名称、大小、时间、日期及内容
),计算其校验和比较的对象可分为
INT 13H
DOS
系统数据区的内存总量API
函数地址极少数正常程序也有类似的病毒行为,称为类病毒行为
使用分析法的目的在于:
– 确认被观察的引导扇区和程序中是否含有病毒
– 确认病毒的类型和种类,判定其是否是一种新病毒
– 搞清楚病毒体的大致结构,提取特征识别用的字符串或特征字,并增添到病毒代码库供病毒扫描和识别程序使用
– 详细分析病毒代码,为制定相应的反病毒措施制定方案
病毒和正常程序的区别
Windows
下,一般正常的应用程序不会往系统目录中释放可执行程序然后进行自删除,或者直接搜索其他可执行程序进行修改静态代码分析法
”和“代码相似比较法
”判定是否含有病毒可疑程序功能的权值与报警标准
发现病毒
”病毒报警
”的装置减少和避免误报(谎报) ,必须努力做好以下几点
无罪假定
”的功能CPU
的模拟。模拟了一个基本运行环境的计算机,对可能是病毒的文件先进行模拟运行,等加密病毒自解密后再进行静态启发式扫描代码数据库的建立
– 对病毒行为特征的提取是启发式扫描技术效果好坏的关键
病毒特征权值的设定
– 对各个特征码进行统计分析,根据具有这种特征码的文件是病毒的可能性的大小来分配权值
权值底线的设置
– 针对不同的情况对安全性的要求不同,权值底线的设置可以根据具体情况来进行
启发式判定结果 | 传统式判定结果 | 可能的真正结果 |
---|---|---|
干净 | 干净 | 非常可能干净 |
干净 | 有毒 | 很可能有毒 |
有毒 | 干净 | 可能有毒 |
有毒 | 有毒 | 确实染毒 |
启发式反毒技术的未来展望
VM
)是一种软件仿真器或软件分析器,通过软件软件虚拟化、硬件虚拟化,让程序中一个虚拟/仿真环境中运行CPU
,它可以象真正CPU
一样取指令、译码、执行,可以模拟一段代码在真正CPU
上运行得到的结果Ring3
下客户程序的通信问题Windows 9x
下病毒实时监控的实现主要依赖于以下三项技术VxD
)编程IFSHook
)VxD
与Ring3
下客户程序的通信(APC/EVENT
)Windows NT/2000
下病毒实时监控的实现主要依赖于以下三项技术
NT
内核模式驱动编程
– Windows NT/2000
下不再支持VxD
拦截IRP
驱动与Ring3
下客户程序的通信(命名的事件与信号量对象)
目前已知的基于免疫的计算机病毒检测系统的研究主要分为两个方向
Forrest
等人为代表的基于免疫算法的研究,主要探讨免疫基本原理在病毒检测的可行性IBM
试验室为代表的利用免疫框架构建大规模免疫应用系统的研究New Mexico
大学的Forrest
和她所在的研究小组最早将免疫学的原理应用于计算机安全领域人工免疫系统
self
)和”非自体”(non-self
)的机制基于文件异常的病毒检测
基于进程异常的检测系统
Virus Analysis Machine
)、管理机(Administrative Machine
)和客户机(Client Machine
)构成(3)
,根据可疑的行为和已知的病毒特征码自动提取特征码(1)
,并向病毒分析机提交(2)
。(4,7)
,并向受感染和没受感染的客户机传播(5,6)
应用程序
、反病毒引擎
和病毒库
三部分构成交互接口
。引擎的主要功能就是对应用程序传入的扫描对象进行格式分析和病毒扫描,并将扫描的中间结果和最终结果通过应用程序回调接口返回给应用程序,并根据应用程序的返回结果进行相应的处理。
引擎
本身还负责病毒库的加载、管理、升级、遍历及卸载目前引擎的体系架构
本节结束 2019年10月4日