恶意代码(Malware):人为编制或设置的、对网络或系统安全存在威胁或潜在威胁的计算机代码。
类型:计算机病毒、特洛伊木马、计算机蠕虫后门、间谍软件等。
典型的恶意代码应具有3个基本特征:
(1)恶意代码是一段可以执行的程序
(2)恶意代码的编写通常是以趋利或破坏为目的
(3)恶意代码只有在执行后才能发挥作用
按照恶意代码的运行特点,可以将其分为两类:需要宿主的程序和独立运行的程序。前者实际上是程序片段,它们不能脱离某些特定的应用程序或系统环境而独立存在;而独立程序是完整的程序,操作系统能够调度和运行它们。
按照恶意代码的传播特点,还可以把恶意程序分成不能自我复制和能够自我复制的两类。不能自我复制的是程序片段,当调用宿主程序完成特定功能时,就会激活它们;能够自我复制的可能是程序片段(如计算机病毒),也可能是一个独立的程序(如蠕虫)。具体的恶意代码类型如下表所示。
恶意代码名称 | 类型及主要特征 |
---|---|
计算机病毒 | 需要宿主;可自动复制 |
蠕虫独立程序 | 可自动复制;人为干预少 |
恶意移动代码 | 由轻量级程序组成;独立程序 |
后门 | 独立程序或片段,提供入侵通道 |
特洛伊木马 | 一般需要宿主;隐蔽性较强 |
Rootkit | 一般需要宿主;替换或修改系统状态 |
WebShell | 需要宿主;以asp、php、jsp或者cgi等网页文件形式存在 |
组合恶意代码 | 上述几种技术的组合以增强破坏力,如僵尸网络 |
🕒 2. 恶意代码的行为机制
1、入侵系统
这是恶意代码实现目的的前提条件
方式:远程攻击、网页木马、邮件病毒、网络钓鱼
2、维持或提升权限
恶意代码的传播与破坏必须使用用户或进程的合法权限才能完成
3、隐蔽
为了躲避安全软件检测,可以通过改名、删除文件或修改系统安全策略来隐藏自己
4、潜伏
平时不运行,等待触发条件满足时才发作并进行破坏
5、破坏
恶意代码的本质具有破坏性,包括信息窃取、破坏系统完整性等
🕒 3. 恶意代码的生存技术
1、反调试技术
恶意代码采用反调试技术可以增加分析工具对其检测和清除的难度,并提高自身的伪装能力。
2、压缩技术
俗称“压缩加壳”,利用特殊的算法,对可执行文件里的资源进行压缩,压缩后的文件可以独立运行,解压过程在内存中完成。
3、加密技术
加密技术是恶意代码自我保护的主流手段,分类:数据加密和程序代码加密。
4、多态技术
多态变换俗称花指令或模糊变换,即用不同的方式实现同样功能的代码。
方法:指令替换、寄存器变换、位置替换、指令压缩、指令扩展、垃圾指令等。
5、变形技术
变形技术在多态变换的基础上针对整个恶意代码程序而不是其中几段代码进行处理,经过变形的代码与原始代码完全不同,而且也不存在特定的加密和解密代码段。
🕒 4. 恶意代码的隐蔽技术
1、进程注入
恶意代码以操作系统运行的许多系统和网络服务进程的可执行代码作为载体,将自身注入到其中,实现隐蔽执行的目标,并且确保在系统运行时自身始终保持激活状态。
嵌入方式:将自身代码写入目标进程的虚拟地址空间。
2、三线程
主线程:负责具体的功能实现
监视线程:时刻检查恶意代码的状态
守护线程:注入其他可执行代码
3、端口复用
端口复用是指利用系统已打开的某个服务端口与外界进行通信,可以躲避防火墙的阻拦。
4、端口反向连接
端口反向连接就是利用防火墙配置的疏忽,不是攻击者向目标主机发起连接,而是目标主机主动发起向远端控制者的连接。
5、文件隐藏
设置文件的隐藏属性或将文件名设置为类似的某些系统文件名。
修改与文件操作有关的程序,如dir、ls等。
将某些硬盘扇区标志为坏区,把恶意代码存放在这些”坏区“中”
6、Rootkits技术
Rootkits技术指恶意代码以内核模块或驱动程序方式运行,安全软件无法对其进行检查和清除同时文件系统中也没有任何该代码存在的痕迹
7、原始分发隐藏
原始分发隐藏是指恶意代码在正常应用程序初始发布时就植入应用程序,例如使用经过修改的编译器对正常的源代码进行编译,生成的可执行程序中就可能携带恶意代码。
🕒 5. 恶意代码的防范
1、基于特征的扫描技术
建立恶意代码的特征文件,在扫描时根据特征进行匹配查找,这是安全软件最常用的技术。
2、校验合法
在系统部署之前对需要监控的文件生成校验和,然后周期性地生成新校验和并与原始值比较,判断文件是否改变。
3、沙箱技术
根据程序需要的资源和拥有的权限建立程序的运行沙箱,使得每个程序运行在隔离沙箱中,无法影响其他进程,可以安全地检测和分析恶意代码的行为。
4、基于蜜罐的检测技术
蜜罐是虚拟系统,伪装成有许多服务正在运行的主机以吸引攻击者,同时安装强大的监测系统用于监测恶意代码的攻击过程,采用黑盒分析方法,制定防范该恶意代码的策略。
🕒 6. 恶意代码的演进
高级恶意软件在功能和防御策略方面更为先进,其造成的影响和损失也更为严重。
目前新的恶意软件采用自动生成工具、第三方库以及借用现有的恶意软件代码生成。
🕒 7. 网络蠕虫
在蠕虫出现后,对计算机病毒重新进行了定义,即计算机病毒是一段代码,能把自身加到其他程序包括操作系统上,但计算机病毒不能独立运行,需要由它的宿主程序运行来激活它。与计算机病毒不同,网络蠕虫强调自身的主动性和独立性,网络蠕虫是通过网络传播,无须用户干预能够独立地或者依赖文件共享主动攻击的恶意代码。根据传播策略,网络蠕虫主要分为电子邮件蠕虫、文件共享蠕虫和传统蠕虫。
网络蠕虫是一种智能化、自动化,综合网络攻击、密码学和计算机病毒技术,不需要计算机使用者干预即可运行的攻击程序或代码。它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者互联网从一个节点传播到另外一个节点。
网络蠕虫由攻击模块、感染模块、传播模块和功能模块4个功能模块组成。其中,攻击模块和感染模块最为关键,决定了蠕虫的影响范围和传播速度,关系到能否对目标主机造成破坏。网络蠕虫的一般传播过程如图所示,主要包括:
(1)扫描:由蠕虫的扫描功能负责探测存在漏洞的主机。当程序向某个主机发送探测漏洞信息并收到成功的反馈信息后,就得到一个可传播的对象。
(2)攻击:攻击模块自动攻击在第(1)步中找到的对象,取得该主机的权限,一般为管理员权限。
(3)现场处理:使计算机在被感染后保留一个后门以便发动分布式拒绝服务攻击。
(4)复制:复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并激活。
计算机网络系统的建立是为了使多台计算机能够共享数据资料和外部资源,然而也给计算机蠕虫带来了更为有利的生存和传播的环境。在网络环境下,蠕虫可以按指数增长模式进行传染。蠕虫侵入计算机网络,可以导致计算机网络效率急剧下降、系统资源遭到严重破坏,短时间内造成网络系统的瘫痪。
🕒 8. 脚本病毒
脚本病毒是主要是由Visual Basic Script语言和Java Script语言来编写的计算机病毒。
脚本病毒的传播途径比较多,由于Visual Basic Script和Java Script编写的代码可以直接插入到HTML文件中,同时浏览器也直接支持对这两种语言所编写的代码的解释,所以脚本病毒多通过Web页面进行传播,也可以经常插入到电子邮件的附件或通过局域网的共享设置来传播。
🕒 9. 木马病毒
在恶意代码家族中,木马主要用来作为远程控制和窃取用户隐私信息,它同时具有计算机病毒和后门程序的特征。
一般的木马程序包括客户端和服务器端两个程序,其中客户端用于攻击者远程控制植入木马的计算机(即服务器端),而服务器端即是植入木马程序的远程计算机。当木马程序或带有木马的其他程序执行后,木马首先会在系统中潜伏下来,并修改系统的配置参数,每次启动系统时都能够实现木马程序的自动加载。有时,木马程序会修改某一类型文件的关联,从而使木马的潜伏变得更加容易,并不易被用户发现。运行木马的客户端和服务器端在工作方式上属于客户机/服务器模式(Client/Server,C/S),其中,客户端在本地主机执行,用来控制服务器端。而服务器端则在远程主机上执行,一旦执行成功该主机就中了木马,就可以成为一台服务器,可以被控制者进行远程管理。
木马通常采取如图所示的方式实施攻击:配置木马(伪装木马)→传播木马(通过文件下载或电子邮件等方式)→运行木马(自动安装并运行)→信息泄露→建立连接→远程控制。
🕒 10. 间谍软件
间谍软件是目前计算机网络中继病毒、蠕虫、木马之后新出现的一种以窃取他人信息和进行广告宣传为主的程序,已成为网络安全的重要隐患之一。
间谍软件一般具有以下三大特征:
(1)能够在用户不知情的情况下,将用户个人计算机的识别信息发送到互联网的某处,这些信息中也可能包括一些敏感的个人隐私信息。
(2)没有病毒的传染性,同时不像病毒隐藏那么深,更不会感染文件。
(3)能监视用户在网络上进行的一些操作、活动等,甚至访问了哪些网站都能监视到。
🕒 11. 计算机病毒
🕘 11.1 概述
计算机病毒(virus)的传统定义是指人为编制或在计算机程序中插入的破坏计算机功能或者毁坏数据、影响计算机使用、并能自我复制的一组计算机指令或者程序代码。现在计算机病毒的定义已远远超出了以上的定义,其中破坏的对象不仅仅是计算机,同时还包括交换机、路由器等网络设备;影响的不仅仅是计算机的使用,同时还包括网络的运行性能。就像许多生物病毒具有传染性一样,绝大多数计算机病毒具有独特的复制能力和感染良性程序的特性。
🕘 11.2 特征
计算机或网络病毒本身也是一个或一段计算机程序,只是该程序是用来破坏计算机系统或影响计算机系统正常运行的“恶性”程序。从计算机病毒的本质来看,它具有以下的几个明显特征:
1、非授权可执行性
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
29473)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!