什么是恶意代码?

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

目录

一.什么是恶意代码 

二.恶意代码的发展史

三.恶意代码的相关定义

四.恶意代码攻击机制

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地址,接着对这一地址段的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。 然后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫程序生成多个副本,重复上述流程。 各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第13期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

p5.js map映射

本文简介 带尬猴,我嗨德育处主任 p5.js 为开发者提供了很多有用的方法,这些方法实现起来可能不难,但却非常实用,能大大减少我们的开发时间。 本文将通过举例说明的方式来讲解 映射 map() 方法。 什么是映射 从 p5.js 文档 中可…

Corel Products Keygen-X-FORCE 2023(Corel会声会影2023注册机)

Corel All Products Universal Keygens通用注册机是一款非常实用的激活工具,专门用于激活Corel全系列产品。尤其是被广泛使用的CorelDRAW作图软件和Corel VideoStudio会声会影视频编辑处理软件。小编也是一直关注由X-Force团队制作的注册机,目前已更新至…

接口自动化测试实操

实现思路 使用excel管理用例用例信息,requests模块发送http请求,实现了记录日志,邮件发送测试报告的功能 目录结构如下: 下面直接上代码: 统筹脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24…

2023/10/26MySQL学习

事务 询问当前是什么提交方式 1代表默认提交,0代表手动提交 将事务设为手动提交 将事务设置为手动提交后,mysql语句只会执行,但不会对原本表中数据进行更改, 只有执行以下两个语句之一,才会继续进行 commit完成原本操作,更改数据 rollback取消原来事务,不会进行任何更改 如…

foo = foo || bar 的深入解析

目录 前言 用法 代码示例 理解 注意点 结论 前言 在JavaScript中,foo foo || bar 是一种常见的编程模式,用于设置变量的默认值或者确保变量被赋值。这种写法利用了JavaScript中逻辑运算符的短路特性,即在逻辑运算中,一旦结…

HCL模拟器选路实验案例

此选路题目选自职业院校技能竞赛中的一道题比较考验思路,适合于参加新华三杯大赛以及网络专业的同学,当做练习题目进行解题​​​​​​​ 题目 1.S1、S2、R1、R2运行ospf进程100,区域0,R1、R2、R3、R4、R5运行ospf进程200&#…

LabVIEW在 XY Graph中选择一组点

LabVIEW在 XY Graph中选择一组点 问题:有一个包含许多点的XY Graph,在程序开发中,对于显示XY Graph中的多个点,如何进行选取。最好能像图像处理中的ROI一样,并且它们的颜色可以更改,可以在其中选择一些ROI…

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

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

【API篇】六、Flink输出算子Sink

文章目录 1、输出到外部系统2、输出到文件3、输出到KafKa4、输出到MySQL(JDBC)5、自定义Sink输出 Flink做为数据处理引擎,要把最终处理好的数据写入外部存储,为外部系统或应用提供支持。与输入算子Source相对应的,输出…

VSCode远程连接

1 VSCode 远程连接服务器 1、下载vscode 百度搜索vscode(注意不是visual studio),进入vscode官网进行下载。 2、安装ssh插件 根据你的操作系统选择对应的版本进行下载和安装。 安装完成之后,启动vscode,选择左侧Exten…

记一次任意文件下载到Getshell

任意文件下载(Arbitrary File Download)是一种常见的 Web 攻击技术,用于窃取服务器上任意文件的内容。攻击者利用应用程序中的漏洞,通过构造恶意请求,使应用程序将任意文件(如配置文件、敏感数据等&#xf…

WebSocket—STOMP详解(官方原版)

WebSocket协议定义了两种类型的消息(文本和二进制),但其内容未作定义。该协议定义了一种机制,供客户端和服务器协商在WebSocket之上使用的子协议(即更高级别的消息传递协议),以定义各自可以发送…

构建客户门户的痛点及低代码工具解决方案

企业如何做好数字化转型呢? 如果笼统地说起“数字化转型”,这个概念太大了,它涉及到了企业管理中的方方面面。数字化转型是一个持续不断的过程,既要在整体上进行数字规划,也需要从细节入手,将每一个步骤进…

web安全-原发抗抵赖

原发抗抵赖 原发抗抵赖也称不可否认性,主要表现以下两种形式: 数据发送者无法否认其发送数据的事实。例如,A向B发信,事后,A不能否认该信是其发送的。数据接收者事后无法否认其收到过这些数据。例如,A向B发…

【Linux】开发工具

目录 Linux编译器-gcc/g使用执行命令:我们的.o和库是如何链接的? make/Makefile依赖关系、依赖方法 Linux编译器-gcc/g使用 gcc只能编译c语言,g可以编译c语言也可以编译g 背景知识: 预处理(进行宏替换)编译(生成汇编)…

Spring MVC 中文文档

1. Spring Web MVC Spring Web MVC是建立在Servlet API上的原始Web框架,从一开始就包含在Spring框架中。正式名称 “Spring Web MVC” 来自其源模块的名称( spring-webmvc),但它更常被称为 “Spring MVC”。 与Spring Web MVC并…

海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电

高精度三维扫描技术已经在大型工件制造领域发挥着重要作用,特别是在质量检测环节,高效、高精度,可以轻松实现全尺寸三维测量。本期,CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件,是将…

用过才知道AI配音软件有多方便,推荐四款高度好评的配音工具~

配音是平时剪辑视频时经常要做的一步,现在很多视频的背景音都是配音而成的,给大家安利4个好用的配音软件,操作简单,还有很多种音色可以选择,有需要的小伙伴可以操作看看。 1.悦音配音 这是个智能配音的软件&#xff0…

利用nicegui开发ai工具示例

from fastapi import FastAPI import uvicorn from nicegui import uiclass PipRequirement:def __init__(self):ui.label("依赖安装与依赖展示")class BasicSettings:def __init__(self):self.project_select ui.select(["test"], label"项目选择&q…