什么是恶意代码?

news2024/11/16 3:47:01

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

目录

一.什么是恶意代码 

二.恶意代码的发展史

三.恶意代码的相关定义

四.恶意代码攻击机制

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.coloradmin.cn/o/1141240.html

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

相关文章

Go基础——数组、切片、集合

目录 1、数组2、切片3、集合4、范围(range) 1、数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 Go 语言数组声明需要指定元素类型及元素个数,与…

docker - DockerFile 编写 指令

文章目录 前言docker - DockerFile 编写 指令1. FROM2. MAINTAINER3. RUN4. CMD5. LABEL6. EXPOSE7. ENV8. ADD9. COPY10. ENTRYPOINT11. VOLUME12. USER13. WORKDIR14. ARG15. ONBUILD16. STOPSIGNAL 前言 如果您觉得有用的话,记得给博主点个赞,评论&am…

Virtual DOM

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

【软考】系统集成项目管理工程师(九)项目成本管理【4分】

一、成本概念 1、产品全生命周期成本 产品或系统的整个使用生命周期内,在获得阶段(设计、生产、安装和测试等活动,即项目存续期间)、运营与维护、生命周期结束时对产品的处置所发生的全部成本 2、成本类型 成本类型描述可变成…

【Matlab2016】Matlab中文版的下载、安装、激活(不建议安装过高版本!!)

这里写目录标题 首先双击R2016_win64.iso加载镜像文件双击setup.exe开始安装选择使用文件密钥安装填入密钥修改安装路径并记住此路径建议全部勾选等待安装完成 激活复制补丁到matlab路径下 创建快捷方式进入bin目录,找到matlab.exe 安装包 首先双击R2016_win64.iso加…

会声会影2023永久激活序列号密钥(支持各版本会声会影注册机)

会声会影2023永久激活序列号密钥(支持各版本)。会声会影2023是一款强大专业的视频编辑软件。会声会影2023产品序列号,支持专业版和旗舰版,可免费激活会声会影2023软件。会声会影2023序列号激活码目前网上很难找到了,这些会声会影序列号是小编…

如何编写一份完整的软件测试报告?

背景 作为测试从业者,编写测试用例,测试计划,测试报告都是必经之路,最近完成了年终述职以及版本准出,感觉测试报告或者各类报告真是职场人不可或缺的一项技能,趁着热乎劲🔥,写下一些…

Spring Cloud 实战 | 解密负载均衡Ribbon底层原理,包含实战源码

专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https:/…

车载音频ADI-ADSP21569音频DSP开发

车载音频ADI-ADSP21489音频DSP开发 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送蓝牙音频,车载DSP音频项目核心开发资料, 1 芯片手册 2 电路原理图

fl studio2023最新版本如何设置中文?

FL Studio编曲软件真的是个神器,不过一开始打开看到全是英文,有点头大,对吧?其实切换成中文版超级简单,只需要几个步骤就搞定啦!我自己也是用中文版的,觉得用起来更得心应手,效率也提…

分享一个基于asp.net的供销社农产品商品销售系统的设计与实现(源码调试 lw开题报告ppt)

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

MySQL主从复制(基于GTID--事务ID方式)

目录 一、GTID相关概念1.GTID 是什么?2.GTID主从复制方式概念3.GTID的优缺点 二、GTID工作原理三、部署主从复制四、测试同步1.主库上新建数据库2.从库上查看是否同步成功 五、重设从库六、常见故障七、故障切换八、GTID的一些疑问1.为什么基于GTID的同步也要打开bi…

Dataworks API:调取 MC 项目下所有表单

文章目录 前言Dataworks API 文档解读GetMetaDBTableList 接口文档 API 调试在线调试本地调试运行环境账密问题请求数据进一步处理 小结 前言 最近,我需要对公司的数据资产进行梳理,这其中便包括了Dataworks各个项目下的表单。这些表单,作为…

Java进击框架:Spring-Test(六)

Java进击框架:Spring-Test(六) 前言单元测试模拟对象 集成测试上下文管理和缓存事务管理集成测试的支持类执行SQL脚本WebTestClientMockMvc JDBC测试支持其它注释 前言 Spring团队提倡测试驱动开发(TDD)。Spring团队发现,控制反转…

Ai创作系统ChatGPT网站源码+图文搭建教程+支持GPT4.0+支持ai绘画(Midjourney)

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 关注作者的uu们可以进群啦~ 目录 方法一&#xff…

C嘎嘎之类和对象中

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:掌握c的初始化和销毁,熟练运用拷贝构造…

Tuxera NTFS2024破解版本下载

当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。Tuxera 的 Microsoft NTFS for Mac 是一款易于使用的软件,可以在 Mac 上打开、编辑、复制、移动或删…

python二次开发Solidworks:齿轮生成器

目录 1、参数 2、手动建模 2.1方程式驱动曲线画渐开线 2.2画基圆、齿根圆、分度圆和齿顶圆 2.3画单个齿廓 2.4以齿厚拉伸基圆草图 2.5以齿厚拉伸单齿廓草图 2.6阵列齿数个单齿 3、python自动化建模 4、总结 1、参数 模数 "m" 2 齿数"z" 50 压…