什么是恶意代码?

前言:本文旨在分享交流技术,在这里对恶意代码进行全面的介绍和讲解

目录

一.什么是恶意代码 

二.恶意代码的发展史

三.恶意代码的相关定义

四.恶意代码攻击机制

PE病毒

PE文件的格式

脚本病毒

脚本文件隐藏方法

宏病毒

 浏览器恶意代码

U盘病毒

AutoRun.inf的关键字

网络蠕虫

网络蠕虫的工作流程


一.什么是恶意代码 

目前,对于恶意代码始终没有一个统一的概念定义:

        在百度百科中它是这样被定义的,恶意代码(Malicious Code)是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。

        定义一:恶意代码又称恶意软件。这些软件也可称为广告软件(adware)、间谍软件(spyware)、恶意共享软件(malicious shareware)。是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。与病毒或蠕虫不同,这些软件很多不是小团体或者个人秘密地编写和散播,反而有很多知名企业和团体涉嫌此类软件。有时也称作流氓软件。

        定义二:恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。

        在网络安全事件中,恶意代码造成的经济损失占有最大的比例,与此同时,恶意代码成为信息战、网络战的重要手段。日益严重的恶意代码问题,不仅使企业及用户蒙受了巨大经济损失,而且使国家的安全面临着严重威胁。恶意代码的机理研究成为解决恶意代码问题的必需途径,只有掌握当前恶意代码的实现机理,加强对未来恶意代码趋势的研究,才能在恶意代码问题上取得先决之机。


二.恶意代码的发展史

        恶意代码经过20多年的发展,破坏性、种类和感染性都得到增强。随着计算机的网络化程度逐步提高,网络传播的恶意代码对人们日常生活影响越来越大。

        1988 年11 月泛滥的Morris蠕虫,顷刻之间使得6000 多台计算机(占当时Internet 上计算机总数的10%多)瘫痪,造成严重的后果,并因此引起世界范围内关注。

        1998 年CIH病毒造成数十万台计算机受到破坏。1999 年Happy 99、Melissa 病毒大爆发,Melissa 病毒通过E-mail 附件快速传播而使E-mail 服务器和网络负载过重,它还将敏感的文档在用户不知情的情况下按地址簿中的地址发出。

        2000 年5 月爆发的“爱虫”病毒及其以后出现的50 多个变种病毒,是近年来让计算机信息界付出极大代价的病毒,仅一年时间共感染了4000 多万台计算机,造成大约87 亿美元的经济损失。

        2001 年,国信安办与公安部共同主办了我国首次计算机病毒疫情网上调查工作。结果感染过计算机病毒的用户高达73%,其中,感染三次以上的用户又占59%多,网络安全存在大量隐患。

        2001 年8月,“红色代码”蠕虫利用微软Web 服务器IIS 4.0 或5.0 中Index服务的安全漏洞,攻破目标机器,并通过自动扫描方式传播蠕虫,在互联网上大规模泛滥。

        2003 年,SLammer 蠕虫在10 分钟内导致互联网90%脆弱主机受到感染。同年8月,“冲击波”蠕虫爆发,8天内导致全球电脑用户损失高达20亿美元之多。

        2004年到2006年,振荡波蠕虫、爱情后门、波特后门等恶意代码利用电子邮件和系统漏洞对网络主机进行疯狂传播,给国家和社会造成了巨大的经济损失。

        2006年的熊猫烧香,短短几个月中感染的个人用户数就达到了几百万。

        2010年6月首次被检测出来震网病毒(Stuxnet),是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。“震网”代码非常精密,主要有两个功能,一是使伊朗的离心机运行失控,二是掩盖发生故障的情况,“谎报军情”,以“正常运转”记录回传给管理部门,造成决策的误判。在2011年2月的攻击中,伊朗纳坦兹铀浓缩基地至少有1/5的离心机因感染该病毒而被迫关闭。

        2011-12年,勒索软件时代的到来 Reveton 是现代勒索软件的原型,它基本包含现代勒索软件的全部要素,比如锁屏,支付赎金,解密文件等。 Reveton还具备由专业攻击组织运营的所有特征。它不仅在外观上很专业,而且还第一次使用了模板。锁屏将根据地理位置向用户显示不同的内容,并向受害者显示当地执法机构的信息,以及如何付款的说明。

        2016年:第一个物联网僵尸网络Mirai,与传统的网络和终端用户设备不同,大多数物联网设备不需要维护。也就是说,它们不像电脑或智能手机那样自动接收更新信息。相反,它们经常被忽视,几乎从未被更新 Mirai 利用了这个漏洞,让它毫无困难地传播。

        2017年,美国国家安全局(NSA)的“ShadowBroker”事件。 美国政府正在开发的秘密恶意软件遭到泄露,攻击者有效地重新利用了被发布的工具和漏洞,其中最著名的一个是“永恒之蓝” “永恒之蓝”是美国国家安全局保存的一个零日漏洞,其目标是微软的SMB(服务器消息块)协议(CVE-2017-0444)。

目前,恶意代码问题成为信息安全需要解决的,迫在眉睫的、刻不容缓的安全问题。如图显示了过去20 多年主要恶意代码事件:

        恶意代码日趋复杂和完善:从非常简单的,感染游戏的Apple II 病毒发展到复杂的操作系统内核病毒和今天主动式传播和破坏性极强的蠕虫。恶意代码在快速传播机制和生存性技术研究取得了很大的成功。

        恶意代码编制方法及发布速度更快:恶意代码刚出现时发展较慢,但是随着网络飞速发展,Internet 成为恶意代码发布并快速蔓延的平台。特别是近年来,不断涌现的恶意代码,证实了这一点。


三.恶意代码的相关定义


四.恶意代码攻击机制

 

  • 感染标志模块:检测目标是否已经被感染过,若已感染过就不再感染,以避免重复感染次数过多而被检测出来。
  • 引导模块:首先确定操作系统类型、内存容量、现行区段、磁盘设置等参数,根据参数的情况引导病毒,保护内存中的病毒代码不被覆盖。设置病毒激活和触发条件,使病毒处于可激活状态,以便病毒被激活后,根据满足的条件调用感染模块或破坏表现模块。
  • 感染模块:检查目标中是否存在感染标识或感染条件是否满足,如果没有感染标识或条件满足,则进行感染,将病毒代码放入宿主程序。
  • 破坏表现模块:实现方式各种各样,根据编写者的特定目标,对系统进行修改。

PE病毒

        计算机病毒发展初期因为个人操作系统大多为DOS系统,这一时期大多为DOS病毒。由于Windows的广泛使用,DOS病毒几乎绝迹。但DOS病毒在Win9X环境中仍可以发生感染,因此若执行染毒文件,Windows用户也会被感染。DOS系统病毒主要分成三类:引导型病毒,文件型病毒,以及混合引导型和文件型的病毒。

        Win32指的是32位Windows操作系统,Win32的可执行文件,如*.exe、*.dll、*.ocx等,都是PE(Portable Executable)格式文件,意思是可移植的执行体。感染PE格式文件的Win32病毒,简称为PE病毒。它感染Windows下所有PE格式文件,因为它通常采用Win32汇编编写,而且格式为PE,因此得名。

        PE病毒数量多,破坏性大,技巧性强 PE病毒在任何Windows环境下都能运行,但是使用Win32汇编语言编写,需要做复杂的文件格式处理,对编程技术要求高。

PE文件的格式


脚本病毒

        脚本(Script)病毒是以脚本程序语言编写而成的病毒,主要使用的脚本语言是VBScript和JavaScript。脚本病毒编写比较简单,并且编写的病毒具有传播快、破坏力大等特点。但脚本病毒必须通过Microsoft的WSH(Windows Scripting Host,Windows脚本宿主)才能够启动执行以及感染其他文件。

        VBScript是Visual Basic Script的简称,即Visual Basic 脚本语言,有时也被缩写为VBS。因为VBScript 是微软公司出品的脚本语言,因此Windows下大部分脚本病毒都使用VBS编写。例如,爱虫病毒、新欢乐时光病毒等都是用VBScript编写的,称做VBS脚本病毒。

        VBS病毒流行的另一个原因是,VBS程序在Windows环境下运行非常方便,在文本文件中输入代码,将文件的保存为“*.VBS”,双击就可以执行。例如在在文本文件中输入:MsgBox "Hello VBS",保存成“a.vbs”,双击就可以执行。

        曾经广为流传的“新欢乐时光”病毒,将自己的代码附加在HTML文件的尾部,并在顶部加入一条调用病毒代码的语句。这里实现该病毒的部分感染功能,只感染病毒所在目录下的所有HTML文件,在HTML文件后面加上代码。

脚本文件隐藏方法

脚本文件为了实现自身隐藏,通常有三种方法:

  • 方法一:通过将Windows安装的组件“Windows Scripting Host”卸载,来阻止VBS脚本程序执行。
  • 方法二:通过改变VBS文件打开方式来阻止VBS脚本程序的执行。默认情况下VBS脚本文件使用wscrip.exe来打开并解释执行的,因此只要将VBS脚本文件改为用“记事本”notepad.exe来打开,那就不会感染这类病毒了。
  • 方法三:脚本用户可在运行脚本之前验证其真实性。脚本开发人员对其脚本进行签名,以免发生未经授权的修改。管理员可以强制实施严格的策略,确定哪些用户有权修改本地或远程运行脚本。

宏病毒

        宏病毒是单独的一类病毒,因为它与传统的病毒有很大的不同,他不感染.EXE、.COM等可执行文件,而是将病毒代码以“宏”的形式潜伏在Office文档中,当采用Office软件打开这些染毒文件时,这些代码就会被执行并产生破坏作用。

        由于“宏”是使用VBA(Visual Basic For Application)这样的高级语言写的,因此其编写过程相对来说也比较简单,而功能又十分强大,如直接使用DOS系统命令调用Windows API、DLL等。这些操作均可能对系统直接构成威胁。

        宏病毒的产生标志着制造病毒不再是专业程序员的专利,任何人只要掌握一些基本的“宏”编写技巧即可编写出破坏力极大的宏病毒。随着Office软件在全世界的不断普及,宏病毒成为传播最广泛、危害最大的一类病毒。

        宏病毒是能够循环复制自身的,具有破坏作用的一个或多个宏的集合。目前常见的宏病毒根据破坏性主要有以下几种:

  • 只进行自身的传播,并不具有破坏性的类型。
  • 只对用户进行骚扰,但不破坏系统的类型。
  • 使打印中途中断或打印出混乱信息的类型。
  • 极具破坏性的类型。

 浏览器恶意代码

        搜索引擎公司Google曾公布一组调查数据显示,10%的网页含有恶意代码。Google调研人员从全球数以十亿计的网站中抽取的450万个网页的分析测试中发现,至少有45万个页面中含有恶意脚本,即平均每十个搜寻结果里,就有一个含有可能会破坏用户电脑的隐藏性恶意程序。而这还只是一个保守的估计,另外还有70万个网页被视为可疑页面。

        国内的反病毒厂商江民科技发布了类似的数据,80%以上的用户是因为浏览网页而感染病毒,有近一半以上的用户是在使用搜索引擎搜索查看信息时感染病毒,同时上正规网站浏览信息未进行其它任何操作而莫名染毒的也占到了近三成的比例。

        由于Windows自带的浏览器Internet Explorer使用的非常广泛,因此攻击这个浏览器的恶意代码非常多。因为浏览器大部分配置信息都存储在注册表中,所以针对浏览器的攻击大多是通过修改注册表来实现的。


U盘病毒

        U盘病毒也称AutoRun病毒,能通过产生的AutoRun.inf进行传播的病毒,都可以称为U盘病毒。随着U盘、移动硬盘、存储卡等移动存储设备的普及,U盘病毒也开始泛滥,最典型的地方就是各个打字复印社,几乎所有电脑都带有这种病毒。 U盘病毒会在系统中每个磁盘目录下创建AutoRun.inf病毒文件(不是所有的AutoRun.inf都是病毒文件);

        借助“Windows自动播放”的特性,使用户双击盘符时就可立即激活指定的病毒。病毒首先向U盘写入病毒程序,然后更改AutoRun.inf文件。 AutoRun.inf文件记录用户选择何种程序来打开U盘。如果AutoRun.inf文件指向了病毒程序,那么Window就会运行这个程序,引发病毒。一般病毒还会检测插入的U盘,并对其实行上述操作,导致一个新的病毒U盘的诞生。

AutoRun.inf的关键字

网络蠕虫

        计算机蠕虫是一种可以通过网络连接进行自身复制的程序,与以往病毒方式不同,文件型病毒、宏病毒需要在计算机的硬盘、软盘或文件系统中繁殖,而典型的蠕虫只会在内存中维持一个活动副本,甚至根本不向硬盘写入任何信息。

        自从1988年莫里斯从实验室研制出第一个蠕虫以来,蠕虫以其快速、多样化的传播方式不断给网络世界带来灾害。 特别是1999年以来,高危蠕虫不断出现,使世界蒙受了轻则几十亿,重则几百亿美元的巨大经济损失。

从编程角度来看,蠕虫由两部分组成:

  • 主程序。一旦在计算机中建立,就开始收集与当前计算机联网的其他计算机的信息,能通过读取公共配置文件并检测当前计算机的联网状态信息,尝试利用系统的缺陷在远程计算机上建立引导程序
  • 引导程序。负责把“蠕虫”病毒带到它所感染的每一台计算机中,主程序中最重要的是传播模块,实现了自动入侵的功能,U盘病毒具备蠕虫的一些特性,也可以将其归为蠕虫病毒

网络蠕虫的工作流程

        根据蠕虫病毒的程序其工作流程可以分为漏洞扫描、攻击、传染、现场处理四个阶段 首先蠕虫程序随机(或在某种倾向性策略下)选取某一段IP地址,接着对这一地址段的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。 然后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫程序生成多个副本,重复上述流程。 各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/120648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化改进YOLOv5算法:加入ODConv+ConvNeXt提升小目标检测能力——(超详细)

为了提升无人机视角下目标检测效果,基于YOLOv5算法,在YOLOv5主干中实现了Omnidimensional Convolution(ODConv),以在不增加网络宽度和深度的情况下提高精度,还在YOLOv5骨干网中用ConvNeXt块替换了原始的C3块,以加快检测速度。 1 Omni-dimensional dynamic convolution …

Jenkins 重新定义 pom 内容,打包

文章目录 源码管理构建 源码管理 添加仓库地址,拉取凭证,选择需要的分支 构建 勾选 构建环境 下删除原始 build 配置,防止文件错误 Pre Steps 构建前处理 pom.xml ,例如我是需要删除该模块的所有子模块配置,我这里…

面试题之Vue和React的区别是什么?

一提到前端框架,相信大家都对Vue和React不陌生,这两个前端框架都是比较主流的,用户也都比较多,但是我们在使用这些框架的时候,是否对这两个框架之间的区别有所了解呢?接下来,让我们来一起的系统…

vscode下ssh免密登录linux服务器

vscode使用ssh免密登录linux 1、安装SSH插件2、生成密钥3、linux安装ssh服务4、linux下配置公钥5、vscode远程登录 注:测试环境为window10Ubuntu1804/Ubuntu2204 1、安装SSH插件 扩展->搜索SSH->点击install进行安装,如下图所示: 2、…

Docker 容器服务的注册、发现及Docker安全

目录 Docker容器服务的注册和发现 1、什么是服务注册与发现? 2、什么是consul consul的部署 1、环境准备 2、部署consul服务器 1)建立 Consul 服务 2)设置代理,在后台启动 consul 服务端 3)查看集群信息 4&a…

Linux C语言开发-D7D8运算符

算术运算符&#xff1a;-*/%&#xff0c;浮点数可以参与除法运算&#xff0c;但不能参与取余运算 a%b&#xff1a;表示取模或取余 关系运算符&#xff1a;<,>,>,<,,! 逻辑运算符:!,&&,|| &&,||逻辑运算符是从左到右&#xff0c;依次运算&#…

OpenCV学习(三)——响应鼠标事件(获取点击点坐标和颜色,利用鼠标进行绘图)

响应鼠标事件 3. 响应鼠标事件3.1 获取鼠标点击的坐标3.2 获取鼠标点击像素点的颜色3.3 在鼠标点击的位置生成圆3.4 通过拖动鼠标来绘制填充矩形3.5 通过拖动鼠标绘制未填充矩形3.6 使用鼠标选点绘制多边形3.7 按住鼠标左键进行绘图 3. 响应鼠标事件 使用OpenCV读取图像&#…

Virtual DOM

目录 Virtual DOM 前言 用法 代码 理解 Virtual DOM的工作原理&#xff1a; 为什么使用Virtual DOM? 哪些库/框架使用Virtual DOM? 总结 Virtual DOM&#xff08;虚拟DOM&#xff09;是一种编程概念&#xff0c;它是对真实DOM的轻量级抽象表示。在前端开发中&#x…

基于机器视觉的车道线检测 计算机竞赛

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…

Linux两条服务器实现相互免密登录

1.准备两台虚拟机&#xff0c;一台充当服务器端&#xff08;server&#xff09;&#xff0c;一台充当客户端&#xff08;client&#xff09; 服务器端&#xff08;server&#xff09;&#xff1a;192.168.75.139 客户端&#xff08;client&#xff09;&#xff1a;192.168.75…

redis学习(三)——java整合redis

Jedis Jedis可以用于java连接redis数据库 新建一个maven项目&#xff0c;导入Jedis依赖 <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test…

Linux 云服务器磁盘挂载简介

云服务器磁盘挂载 一、挂载须知 一般涉及工具或命令&#xff1a;fdisk/gdisk/parted等挂载&#xff08;mounting&#xff09;是指由操作系统使一个存储设备&#xff08;诸如硬盘、CD-ROM或共享资源共享资源上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。…

H5营销观察:H5破圈传播有什么秘诀

在移动互联网时代&#xff0c;流量越加碎片化&#xff0c;场景变得相对短促和兴趣导向&#xff0c;一个营销H5产生的每一次点击、每一次互动、每一次流量停留背后都会有相应的动机&#xff0c;也是营销流量效果的成因。 今天&#xff0c;我们一起来探究下什么样的内容更容易传播…

视频相关学习笔记

YUV 和rgb一样是一种表示色彩的格式&#xff0c;Y表示亮度&#xff0c;UV表示色度&#xff08;U是蓝色投影&#xff0c;V是红色投影&#xff09;&#xff0c;只有Y就是黑白的&#xff0c;所以这个格式的视频图片可以兼容黑白电视&#xff0c;所以彩色电视使用的都是YUV 存储方…

使用 DDPO 在 TRL 中微调 Stable Diffusion 模型

引言 扩散模型 (如 DALL-E 2、Stable Diffusion) 是一类文生图模型&#xff0c;在生成图像 (尤其是有照片级真实感的图像) 方面取得了广泛成功。然而&#xff0c;这些模型生成的图像可能并不总是符合人类偏好或人类意图。因此出现了对齐问题&#xff0c;即如何确保模型的输出与…

卡尔曼滤波(Kalman Filter)原理及Python实现

Kalman-Filter-Example 项目地址 https://github.com/zhengjie9510/kalman-filter-example 理论公式 详细理论可参考DR_CAN关于卡尔曼滤波器的视频讲解。https://www.bilibili.com/video/BV1dV411B7ME 卡尔曼滤波公式分为预测和更新两部分。 预测公式为&#xff1a; x_hat…

CVE-2022-32991靶场复现

靶场环境&#xff1a; 题目提示了该CMS的welcome.php中存在SQL注入攻击。 CVE官方给出的提示&#xff1a; welcome.php页面存在SQL注入&#xff0c;并且这个参数是eid 打开靶场环境&#xff1a; 页面是一个登陆注册的界面 用户注册&#xff1a; 1 010.com 123456 123456 点击Re…

国家数据局正式揭牌,数据专业融合型人才迎来发展良机

文章目录 每日一句正能量摘要《数据要素安全流通》《Python数据挖掘&#xff1a;入门、进阶与实用案例分析》《数据保护&#xff1a;工作负载的可恢复性 》《Data Mesh权威指南》《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》《云原生数据中台&#xff1a;架构、方…

计算机网络之数据链路层(全)

[复习提示] 王道&#xff1a;本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上&#xff0c;重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议&#xff0c;特别是CSMA/CD协议和以太网帧格式&#xff0c;以及局域网的争用期和最…

Oracle(6) Control File

一、oracle控制文件介绍 1、ORACLE控制文件概念 Oracle控制文件是Oracle数据库的一个重要元素&#xff0c;用于记录数据库的结构信息和元数据。控制文件包含了数据库的物理结构信息、数据字典信息、表空间和数据文件的信息等。在Oracle数据库启动时&#xff0c;控制文件会被读…