【软件与系统安全】六、恶意代码的机理及其防护
这是《【软件与系统安全】笔记与期末复习》系列中的一篇
病毒, 蠕虫, 木马, (侧重:差异, 共性, 如何隐藏)
木马
一个典型的特洛伊木马(程序)通常具有以下四个特点:
- 有效性
- 隐蔽性
- 顽固性
- 易植入性
此外,木马还具有以下辅助型特点:
- 自动运行
- 欺骗性
- 自动恢复
- 功能的特殊
木马的实现原理与攻击步骤
-
木马实现原理
-
本质上说,木马大多都是网络客户/服务(Client/Server)程序的组合。常由一个攻击者控制的客户端程序和一个运行在被控计算机端的服务端程序组成
-
当攻击者要利用“木马”进行网络入侵,一般都需完成如下环节:
- 向目标主机植入木马
- 启动和隐藏木马
- 服务器端(目标主机)和客户端建立连接
- 进行远程控制
-
-
植入技术
-
主动植入
-
本地安装
-
远程安装
- 利用系统自身漏洞植入
- 利用第三方软件漏洞植入
-
-
被动植入
- 网页浏览植入
- 利用电子邮件植入
- 利用网络下载植入
- 利用即时通工具植入
- 与其它程序捆绑
- 利用移动存储设备植入
-
-
自动加载技术
-
在Windows系统中木马程序的自动加载技术主要有:
- 修改系统文件
- 修改系统注册表
- 添加系统服务
- 修改文件打开关联属性
- 修改任务计划
- 修改组策略
- 利用系统自动运行的程序
- 修改启动文件夹
- 替换系统DLL
-
-
隐藏技术
- 隐蔽性是木马程序与其它程序的重要区别
- 伪隐藏、真隐藏
- 设置窗口不可见 (从任务栏中隐藏)
- 把木马程序注册为服务 (从进程列表中隐藏)
- 欺骗查看进程的函数 (从进程列表中隐藏)
- 使用可变的高端口 (端口隐藏技术)
- 使用系统服务端口 (端口隐藏技术)
- 替换系统驱动或系统DLL (真隐藏技术)
- 动态嵌入技术 (真隐藏技术)
-
连接技术
- 反弹窗口的连接技术:更容易通过防火墙
-
监控技术
木马的远程监控功能概括起来有以下几点:
- 获取目标机器信息
- 记录用户事件
- 远程操作
木马的防御技术
-
木马的检测
- 端口扫描和连接检查
- 检查系统进程
- 检查ini文件、注册表和服务
- 监视网络通讯
-
木马的清除与善后
-
木马的防范
- 及时修补漏洞,安装补丁
- 运行实时监控程序
- 培养风险意识,不使用来历不明的软件
- 即时发现,即时清除
木马的发展趋势
- 跨平台
- 模块化设计
- 无连接木马
- 主动植入
- 木马与病毒的融合
病毒
计算机病毒的定义
算机病毒一般依附于其他程序或文档,是能够自身复制,并且产生用户不知情或不希望、甚至恶意的操作的非正常程
计算机病毒的特点
- 隐藏性
- 传染性
- 潜伏性
- 破坏性
以上列举的定义指的是狭义上的病毒。
但是随着黑客技术的发展,病毒、木马、蠕虫往往交叉在一起相互借鉴技术,因此人们经常说的计算机病毒往往是指广义上的病毒,它是一切恶意程序的统称。
计算机病毒的破坏性
- 破坏系统数据
- 破坏目录/文件
- 修改内存
- 干扰系统运行
- 效率降低
- 破坏显示
- 干扰键盘操作
- 制造噪音
- 修改CMOS参数
- 影响打印
计算机病毒引起的异常状况
- 计算机系统运行速度明显降低
- 系统容易死机
- 文件改变
- 磁盘可用空间迅速减少
- 系统参数被修改
- 文件被破坏
- 频繁产生错误信息
- 系统异常频繁重启动
- Office宏病毒提
计算机病毒的分类
我们针对狭义上的病毒,按照不同的标准对它进行分类。
-
按照计算机病毒攻击的对象或系统平台分类
- 攻击DOS系统的病毒
- 攻击WINDOWS系统的病毒
- 攻击UNIX 系统的病毒
- 攻击OS/2系统的病毒
- 其它操作系统上的病毒:如手机病毒
-
按照计算病毒的攻击目标机类型分类:
- 攻击微型计算机的病毒
- 攻击小型计算机的病毒
- 攻击工作站的病毒
-
按照计算机病毒的链接方式分类
- 源码型病毒
- 嵌入型病毒
- 外壳型病毒:包围在主程序的四周
- 操作系统型病毒
-
按照计算机病毒的破坏情况分类
- 良性病毒:是不包含有对计算机系统产生直接破坏作用的代码的计算机病毒。
- 恶性病毒:指在代码中包含有损伤和破坏计算机系统的操作
-
按传播媒介来分类
- 单机病毒:单机病毒的载体是磁盘或光盘。常见的是通过从软盘传入硬盘,感染系统后,再传染其它软盘。软盘又感染其它系统。
- 网络病毒:网络为病毒提供了最好的传播途径。网络病毒利用计算机网络的协议或命令以及Email等进行传播,常见的是通过QQ、 BBS、Email、 FTP、 Web等传播
计算机病毒的命名
虽然每个反病毒公司的命名规则都不太一样,但大体都是采用一个统一的命名方法来命名的。一般格式为: <病毒前缀>.<病毒名>.<病毒后缀>
计算机病毒的工作机制
-
计算机病毒程序模块划分
-
感染模块
- 寻找一个可执行文件。
- 检查该文件中是否有感染标记。
- 如果没有感染标记,进行感染,将病毒代码放入宿主程序
-
触发模块
- 检查预定触发条件是否满足。
- 如果满足,返回真值。
- 如果不满足,返回假值
-
破坏模块(表现模块)
-
主控模块
- 调用感染模块,进行感染。
- 调用触发模块,接受其返回值。
- 如果返回真值,执行破坏模块。
- 如果返回假值,执行后续程序。
-
-
计算机病毒的生命周期
- 感染
- 潜伏
- 繁殖
- 发作
-
计算机病毒的传播机制
-
病毒入侵宿主程序的基本方式有两种: 替代方式和链接方式。
-
病毒的宿主程序可分为两类: 操作系统和应用程序。
-
交叉感染
-
寄生感染
- 插入感染
- 逆插入感染
-
没有入口点的感染
-
零长度感染
-
-
计算机病毒的触发机制
-
计算机病毒的破坏机制
典型的计算机病毒
DOS病毒
Win32 PE病毒
宏病毒
脚本病毒
HTML病毒
蠕虫
病毒的隐藏技术
隐藏技术主要有:
- 反跟踪技术
- 避开修改中断向量
- 请求在内存中的合法身份
- 维持宿主程序的外部特性
- 不使用明显的感染标志
花指令
病毒的多态
多态技术中的密钥和解密代码都变化多端,多态技术将对解密代码进行等价指令替换、寄存器替换、插入垃圾指令或者随机调换指令的前后位置(有些指令的前后位置调换之后不影响代码功能)等变化,以产生功能相同但是代码截然不同的解密代码
多态引擎的组成:
- 指令位置变换模块
- 寄存器变换模块
- 指令扩展模块
- 指令收缩模块
- 等价指令替换模块
- 无用指令随机插入
- 垃圾指令插
蠕虫
它与其他的病毒相比,具有传染的主动性
计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它”。
Eugene H. Spafford对蠕虫的定义:“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上”