恶意代码种类
病毒
计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或数据,影响计算机使用并能自我复制的一组计算机指令或者程序代码,包括寄生和传染
病毒特性
病毒具有可执行性,传染性,隐蔽性,潜伏性,可触发性,破坏性,寄生性,衍生性,诱骗性
计算机病毒命名的国际惯例
<病毒前缀>.<病毒名>.<病毒后缀>
病毒前缀是指一个病毒的种类,病毒名是指一个病毒的名称及家族特性,病毒后缀是指一个病毒的变种特性
计算机病毒的结构组成
病毒都具有相同的逻辑程序结构,一般包含3大模块,即:引导模块、感染模块和表现(破坏)模块,其中后两个模块都需要触发条件
引导模块:想办法让用户执行这个病毒程序,并且激活后面的模块
感染模块:把病毒感染到电脑上
表现模块:让病毒在对方电脑上起作用
病毒的传播途径
非常多,总的来说只要能传文件的方式都能传病毒
通过计算机硬件比如硬盘传播
通过移动存储设备比如U盘来传播
通过有线网络,无线通信来传播
计算机病毒的感染对象及感染过程
感染对象主要有两种:一种是寄生在磁盘引导扇区;另一种是寄生在可执行文件中 (扇区+文件)
病毒寄生在磁盘引导扇区时怎么发挥作用?
当病毒寄生在磁盘引导扇区时,它可以控制计算机的启动过程,在用户启动计算机时,病毒先行施加危害,让用户无法正常启动操作系统,甚至控制系统中所有程序,对系统文件及软件进行改动,以其为己任。当用户使用反病毒程序对病毒进行清除时,它将消除病毒的攻击,不能清除病毒的引导扇区。
宏病毒、脚本病毒是比较特殊的病毒,在用户使用Office或浏览器的时候获取执行权;还有一些蠕虫只寄生在内存中,而不感染引导扇区和文件
蠕虫:蠕虫是一种计算机病毒,它可以自动复制自身,并在计算机网络中传播。
脚本病毒是主要采用脚本语言设计的计算机病毒。
宏病毒的具体定义
宏病毒是一种寄存在文档或模板的宏(联想#define)中的计算机病毒,使用宏语言编写,利用宏语言的功能将自己寄生到其他数据文档或模板中。宏病毒可以对计算机造成不同程度的损坏,例如删除文件、修改数据、弹出警告框等
寄生在可执行文件中的病毒和脚本病毒有什么不同?(答案来自chatGPT,仅供参考)
寄生在可执行文件中的病毒和脚本病毒的主要区别是,前者是一种独立的程序,可以自行复制和传播,并且可以对计算机系统造成损害;后者是一种特殊的病毒,不能自行复制和传播,而是依赖于其他程序来执行它们的指令,并且可以通过网络或电子邮件等方式传播。
病毒的感染过程
当宿主程序运行时,获取控制权
寻找感染的突破口
将病毒代码放入新的宿主程序
就像生物病毒一样,不断寻找机会攻击宿主细胞,控制宿主细胞并将自身注入到宿主细胞
病毒的感染机理
引导型病毒
引导型病毒是指寄生在磁盘或硬盘的引导区或主引导区的计算机病毒。它们利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中侵入系统,驻留内存,监视系统运行,待机传染和破坏。它们的传染机理是通过感染软盘或硬盘的引导记录,使之指向病毒代码,从而在下次启动时执行病毒程序。被感染的软盘又会传染给其它计算机。
文件型病毒
执行被感染的可执行文件后,病毒进入内存,监视系统,并找机会感染其他文件
混合感染
既感染引导扇区又感染文件
交叉感染
一个宿主程序上感染多种病毒
除此之外,还有 网络病毒等
网络病毒通过网络传播,可以感染网络中的服务器、客户端、邮件等
文件型病毒的感染方式
寄生感染
分类
替代法和链接法
替代法一般用于寄生在引导扇区的病毒,病毒程序用自己的部分或全部指令代码,替代磁盘引导扇区或文件中的全部或部分内容;
链接法一般用于寄生在可执行文件中的病毒,将自身代码接在正常程序中
文件头部寄生
两种方法,一是将HOST文件头接在病毒文件末尾,再将病毒代码覆盖文件头;二是生成用病毒代码生成一个新的文件,替代原来的文件
文件尾部寄生
感觉总结起来就是修改文件头,加入一些病毒进入文件末尾的必要信息,如地址信息等
插入感染
病毒将自己插入到要插入的文件中,可整段也可分段插入
逆插入感染
将病毒分成头部和尾部两大块,将HOST程序放入中间
利用空洞——零长度感染
病毒查找宿主程序中的空洞(足够长度的全部为零的数据区或堆栈区),并把病毒代码放入
空洞中,改变宿主程序开始处代码或入口地址以优先执行病毒代码。
就是在HOST程序中找一个能塞得下自己的地方将自己塞进去
无入口点感染
病毒的无入口点感染是指病毒不需要通过明确的入口点来进入系统,而是可以“自行介入”,从而获得访问权限。例如,病毒可以通过漏洞利用或VBScript、JavaScript等Web技术实施攻击,从而间接入侵系统。
滋生感染
又称作伴侣病毒或伴随型病毒
此类病毒不改变被感染文件,而是为被感染文件创建一个伴随文件(病毒),当用户执行被感染文件时会激活病毒。
链式感染
病毒在感染时完全不改动宿主程序本体,而是改动或利用与宿主程序相关的信息,将病毒程序与宿主程序链成一体,当宿主程序欲运行时,利用相关关系使病毒部分首先运行
OBJ、LIB和源码感染
病毒感染编译器生成的中间对象文件或库文件,使用被感染的.OBJ或.LIB链接生成.EXE(.COM)程序之后,才能完成实际的感染过程,所生成的可执行文件中包含了病毒
源码感染则直接对源代码进行修改,在源代码文件中增加病毒的内容
木马
特洛伊木马程序是这样一种程序,它提供了一些有用的,或仅仅是有意思的功能。但是通常要做一些用户不希望的事,诸如在你不了解的情况下拷贝文件或窃取你的密码
木马程序由客户端+服务端组成
木马和病毒的区别
病毒依附于其它文件或程序并自我复制,在运行指定的程序时被激活运行
木马通常把自己伪装成一个有用的程序,一般来说自我复制并不是木马功能的一部份
传染性是病毒最本质的性质之一,木马一般具有很好的隐蔽性,不具有自我复制性
蠕虫
计算机蠕虫的两个最基本特征:可以从一台计算机移动到另一台计算机,可以自我复制
蠕虫可以独立运行,并且自动复制自身并传播到另一台主机
蠕虫具有传染性,并且传染性感觉比病毒更强
病毒和蠕虫的区别
网络蠕虫功能结构
大致了解各个模块的作用
探索模块:寻找下一台要感染的机器,可以采用一系列的扫描算法。
传输模块:完成蠕虫副本在不同机器之间传递的功能
网络蠕虫扫描策略
指网络蠕虫在扩散的过程中,选择下一步潜在感染对象时所采用的方法(联系上面的探索模块)
扫描策略主要有:随机性扫描、顺序扫描、目标列表扫描、路由信息扫描、DNS扫描、分治扫描等
选择性随机扫描
对整个地址空间的IP随机抽取进行扫描,即IP地址没有任何的规律
所选的目标地址按照一定的算法随机生成,具有算法简单、实现容易的特点,但容易引起网
络阻塞,使得网络蠕虫在爆发之前易被发现,隐蔽性差
顺序扫描
被感染主机上网络蠕虫会随机选择一个C类网络地址进行传播
遵循本地优先的原则,一般会选择它所在网络内的IP地址
基于目标列表的扫描
指网络蠕虫在寻找受感染的目标之前预先生成一份可能易传染的目标列表,然后对该列表进行攻击尝试和传播
基于路由的扫描
网络蠕虫根据网络中的路由信息,对IP地址空间进行选择性扫描的一种方法
基于DNS扫描
网络蠕虫从DNS服务器获取IP地址来建立目标地址库
优点在于,所获得的IP地址具有针对性和可用性强的特点
总之网络蠕虫就是通过各种途径扫描,筛选合适的IP地址
网络蠕虫感染一台主机的时间取决于蠕虫搜索到易感染主机所需要的时间。因此,网络蠕虫快速传播的关键在于设计良好的扫描策略
目前,网络蠕虫首先采用路由扫描
病毒,蠕虫和木马的区别:(牢记)
恶意代码技术
恶意代码技术-启动
通过注册表启动
注册表编辑器
注册表是Windows操作系统中的一个核心 数据库,其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用。注册表用于存储系统和应用程序的设置信息,例如文件关联、字体、颜色、用户偏好等。注册表可以让用户自定义系统和应用程序的行为,提高工作效率和安全性。
注册表编辑器是Windows提供给用户的一个查看和维护注册表的工具。
Windows注册表中是容易被植入病毒或者木马的,因为它们可以通过修改注册表来实现自启动或者劫持系统进程。
通过注册表启动恶意代码是一种常见的自启动方式,它是指恶意代码修改注册表中的某些键值,使得每次开机或登录时,系统会自动执行恶意代码。例如,恶意代码可以在注册表键下添加自己的路径
比如,RunOnce子键下的键值在Windows启动时执行完后会被清空,木马可以在系统关闭时写入该子键,下次启动时,可以隐蔽地启动木马
通过启动项启动
启动项是开机后系统自动加载运行的程序。启动项可以让用户快速打开常用的软件,节省时间和资源
可以使用任务管理器,注册表编辑器等管理和设置启动项
恶意程序通过启动项启动
可以在注册表中添加或修改一些字符串值,使得它们在系统启动或用户登录时自动运行
可以在计划任务文件夹中添加或修改一些任务,使得它们在系统启动或用户登录时自动运行
可以在快速启动文件夹中添加或修改一些快捷方式,使得它们在用户登录时自动运行
通过任务计划启动
任务计划服务让用户指定系统在一个特定的时间、特定的日期或者特定事件发生时(计算机启动时、登录时)执行特定的程序
通过配置文件启动
批处理文件
System.ini和Win.ini文件
通过应用程序的配置文件启动
通过文件关联启动
文件关联,可以理解成比如打开.docx文档,系统自动打开Word程序一样
通过伪装成服务启动
伪装成注册表中的一个子键
通过其它特定程序启动
寄生在特定程序中或代替其他程序启动
通过驱动启动
有的木马将自己伪装成驱动程序来实现自启动。
通过自动运行功能启动
Windows系统在默认状态下都开启了光盘和硬盘的自动运行功能,如果能借助硬盘的自动运行,木马也是可以进行启动的
可以借助AutoRun.inf文件来完成这一功能
通过浏览器启动
恶意代码技术-隐藏
隐藏方式
进程隐藏技术
进程隐藏技术是一种使进程在任务管理器或其他工具中不可见的技术,常被病毒或木马利用来逃避检测
进程隐藏包括两方面:伪隐藏和真隐藏
伪隐藏
木马程序的进程仍然存在,只不过是消失在进程列表里
真隐藏
让木马程序彻底的消失,不以一个进程或者服务的方式工作
可以使用注册表插入,通过调试程序插入,通过CreateProcess插入、远程线程插入
进程隐藏方法
远程线程注入技术:将木马插入到其它进程
文件隐藏技术
北邮这一节的PPT是真的多...
通信隐藏技术
通信隐藏是在用户毫无感知的情况下完成木马客户端与服务器端的数据交互
传播
网络蠕虫传播模型
传染病模型,SI模型,SIS模型,SIR模型,无尺度网络模型