恶意代码的概念,恶意代码编写

一.常见的恶意代码

(1)恶意代码(恶意软件)的定义:
主要是指以危害信息的安全等不良意图的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息
(2)恶意代码分类:
1)计算机病毒:显著特点:依附性 需要依附于其他文件进行繁殖; 隐蔽性
(最常见的分类 引导型病毒:感染磁盘的引导系统,在系统启动时载入内存;文件型病毒:感染各类文件,在文件执行时载入内存)
2)蠕虫:不需要依附于其他文件,可以再计算机系统自行繁殖;蠕虫 恶意代码一旦被激活常通过以下步骤复制自己:a) 搜索系统或网络,确 认下一步的感染目标 b)建立与其他系统或远程主机的连接 c)将自身复 制到其他系统或远程主机,并尽可能激活他们
3)特洛伊木马:通过冒名顶替的方式,伪装成能够正常功能或在系统 中正常运行的程序,随后与攻击者建立远程连接为攻击者打开入侵的通 道
(3)恶意代码危害:
1)攻击系统,造成信息系统瘫痪或操作异常
2)危害数据文件的安全存储和使用
3)泄露文件,配置或隐私信息
4)肆意占用资源,影响系统或网络的性能
(4)恶意代码的基本特征:
1)恶意代码是一类程序,也是由人编制的,而不是在计算机环境或系 统中自生的
2)恶意代码对系统具有破坏性或威胁性
3)恶意代码具有潜伏性、传染性、依附性

二.恶意代码的机理

(1)恶意代码的生命周期:
编制代码 传播 感染 触发 运行
(2)恶意代码机理:
1)传播机制:
a)文件流动
b)网页脚本和插件
c)电子邮件
d)数字内容播放:一些视频和音频播放器支持显示网页或用弹出窗口显示它们,然而播放器缺乏浏览器那样的安全检查,因此更容易 受通过网页的恶意代码攻击
e)网络攻击:在信息系统存在安全漏洞时,网络攻击可能使攻击者截获系统的控制权,实施非授权的操作
f)自我传播
2)感染机制:
a)感染引导系统:
恶意代码在侵入计算机系统后,可以选择感染操作系统。在每次计算机启动中,BIOS首先被执行,之后主引导记录(MBR,Master Boot Record)和分区引导记录中的代码被执行;感染的方法一般是将原来的引导代码存储到其他扇区中,用病毒代码 替换它。
病毒修改主引导记录(图12-2),这样在系统启动中,病毒程序 先于原引导程序执行,在执行中,病毒程序可以直接破坏,如果造成不能启动或修改BIOS已经设置好的中断向量,它们原来指向的BIOS中的中断程序,现在指向病毒程序,被病毒修改的中断程序(如图12-3),病毒程序再指向原来的中断程序,这样等中断程序调用来后病毒可以截获控制权并可以在执行完后调用原来的中断程序

b)感染执行文件
外壳型恶意代码:并不改变被攻击宿主文件的主体,而是将病毒依附于宿主的头部或尾部,这类似于给程序加壳,恶意代码将程序开始或结束时截获系统控制权
嵌入型恶意代码:寄生在文件的中间,隐蔽性很强
源代码型恶意代码:专门攻击计算机开发语言,并能和后者一道编译
覆盖型恶意代码:替换全部或者部分宿主,从而对宿主直接造成破坏
填充型恶意代码:仅仅填充宿主的空闲区域,它不直接破坏宿主,也不改变宿主文件的长度,因此隐蔽性更强
c)感染结构化文档
d)感染网络服务或客户端
e)假冒文件
3)触发机制:
恶意代码的触发机制主要取决于前面介绍的感染机制。最简单地,当程序、组件和宏命令等执行时,其中感染的恶意代码将获得执行权。对于引导型病毒,系统自动启动可以直接导致它们获得执行的 权限;由于系统在启动中要根据配置启动网络服务和一些内存驻留程序,因此,这些程序感染的恶意代码将获得执行权限

三.恶意代码分析

(1)静态分析:
优点在于分析覆盖率较高
由于恶意代码经常使用各种加壳工具进行自我保护、妨碍分析过程,以及采用了加壳工具,事实上,有很多查壳工具,比如:PEiD,该工具利用不同加壳工具的不同特点, 能够识别出常见的加密壳和压缩壳(比如:UPX/ASProtect)。
针对Windows平台的恶意代码,直接查看代码代码的PE文件也能 得到一些有用的信息(常见的PE文件查看的工具有:LordPE/File Format Identifier(FFI)),分析人员可以通过这些工具来查看恶意 代码的导入表、导出表、资源文件(FFI能够修改这些PE文件中的关键数据)
(2)动态分析:
动态分析是指通过实际运行恶意代码,跟踪和观察其执行的细节来帮助分析人员理解恶意代码的行为和功能;
局限性:执行过程中受环境的限制,分析人员通常无法是恶意代码实际执行所有分支路径,因此需要与静态分析结合使用

四.恶意代码检测

常见的恶意代码检测方法:
(1)特征代码法(以下为两个重要的步骤)
1)建立特征代码库:
a)基本思路:通过分析、抽取得到特征代码。抽取的特征代码要具有特殊性,能够在大范围的匹配中唯一标识一个恶意代码程序
b)提取特征代码的注意事项:不宜过长,也不宜过短,特征代码一般被列入特征代码库,它存储了大量已知恶意代码的特征代码,是常用检测工具的必备构建之一
2)特征代码匹配
根据特征代码库,检测工具对检测目标实施代码扫描,逐一检查 特征代码库中的特征代码存在;为了加快匹配,特征代码库一般也记录了特征代码出现的位置
(2)校验和法
(3)行为检测法
(4)软件模拟法
(5)比较法
(6)感染实验法

飞艇稳赚不赔的打法截获系统的控制权,实施非授权的操作
f)自我传播
2)感染机制:
a)感染引导系统:
恶意代码在侵入计算机系统后,可以选择感染操作系统。在每次计算机启动中,BIOS首先被执行,之后主引导记录(MBR,Master Boot Record)和分区引导记录中的代码被执行;感染的方法一般是将原来的引导代码存储到其他扇区中,用病毒代码 替换它。
病毒修改主引导记录(图12-2),这样在系统启动中,病毒程序 先于原引导程序执行,在执行中,病毒程序可以直接破坏,如果造成不能启动或修改BIOS已经设置好的中断向量,它们原来指向的BIOS中的中断程序,现在指向病毒程序,被病毒修改的中断程序(如图12-3),病毒程序再指向原来的中断程序,这样等中断程序调用来后病毒可以截获控制权并可以在执行完后调用原来的中断程序

b)感染执行文件
外壳型恶意代码:并不改变被攻击宿主文件的主体,而是将病毒依附于宿主的头部或尾部,这类似于给程序加壳,恶意代码将程序开始或结束时截获系统控制权
嵌入型恶意代码:寄生在文件的中间,隐蔽性很强
源代码型恶意代码:专门攻击计算机开发语言,并能和后者一道编译
覆盖型恶意代码:替换全部或者部分宿主,从而对宿主直接造成破坏
填充型恶意代码:仅仅填充宿主的空闲区域,它不直接破坏宿主,也不改变宿主文件的长度,因此隐蔽性更强
c)感染结构化文档
d)感染网络服务或客户端
e)假冒文件
3)触发机制:
恶意代码的触发机制主要取决于前面介绍的感染机制。最简单地,当程序、组件和宏命令等执行时,其中感染的恶意代码将获得执行权。对于引导型病毒,系统自动启动可以直接导致它们获得执行的 权限;由于系统在启动中要根据配置启动网络服务和一些内存驻留程序,因此,这些程序感染的恶意代码将获得执行权限

三.恶意代码分析

(1)静态分析:
优点在于分析覆盖率较高
由于恶意代码经常使用各种加壳工具进行自我保护、妨碍分析过程,以及采用了加壳工具,事实上,有很多查壳工具,比如:PEiD,该工具利用不同加壳工具的不同特点, 能够识别出常见的加密壳和压缩壳(比如:UPX/ASProtect)。
针对Windows平台的恶意代码,直接查看代码代码的PE文件也能 得到一些有用的信息(常见的PE文件查看的工具有:LordPE/File Format Identifier(FFI)),分析人员可以通过这些工具来查看恶意 代码的导入表、导出表、资源文件(FFI能够修改这些PE文件中的关键数据)
(2)动态分析:
动态分析是指通过实际运行恶意代码,跟踪和观察其执行的细节来帮助分析人员理解恶意代码的行为和功能;
局限性:执行过程中受环境的限制,分析人员通常无法是恶意代码实际执行所有分支路径,因此需要与静态分析结合使用

四.恶意代码检测

常见的恶意代码检测方法:
(1)特征代码法(以下为两个重要的步骤)
1)建立特征代码库:
a)基本思路:通过分析、抽取得到特征代码。抽取的特征代码要具有特殊性,能够在大范围的匹配中唯一标识一个恶意代码程序
b)提取特征代码的注意事项:不宜过长,也不宜过短,特征代码一般被列入特征代码库,它存储了大量已知恶意代码的特征代码,是常用检测工具的必备构建之一
2)特征代码匹配
根据特征代码库,检测工具对检测目标实施代码扫描,逐一检查 特征代码库中的特征代码存在;为了加快匹配,特征代码库一般也记录了特征代码出现的位置
(2)校验和法
(3)行为检测法
(4)软件模拟法
(5)比较法
(6)感染实验法

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注