病毒防护:恶意代码检测技术,病毒分类、传播方式,恶意代码的清除与防护

news2024/10/5 17:25:28

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

在这里插入图片描述

这一章节我们需要知道病毒的分类、传播方式、清除与防护方式,重点是恶意代码检测技术的实现原理。

在这里插入图片描述

「计算机病毒」的定义是:编制或者在计算机程序中插入的 破坏计算机功能或者损坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。

病毒是「恶意代码」的一部分,凡是能够引起计算机故障,破坏计算机数据,影响计算机系统的正常使用的代码或指令,都是恶意代码。比如exe、dll这种二进制代码,或者asp、php、jsp这种脚本语言,或者微软提供给offic用户的宏语言都属于恶意代码。

也就是说,病毒只是恶意代码的一种,所以后续内容中,我们会围绕着恶意代码的防护来讲解。

恶意代码

  • 1、恶意代码分类
  • 2、恶意代码的传播方式
  • 3、恶意代码检测技术
    • 3.1、特征匹配
    • 3.2、行为检测
    • 3.3、云查杀
  • 4、恶意代码的清除
  • 6、恶意代码的防护

1、恶意代码分类

除了病毒,恶意代码还分为以下几类:

  1. 病毒(Virus):依赖宿主文件传播,本身无法独立存在。
  2. 蠕虫(Worm):不依赖宿主文件就能传播,有独立的进程和文件。
  3. 后门程序(Backdoor):负责远程控制
  4. 木马(Torjan):盗取账号、文件、数据
  5. 流氓软件(Adware/Spyware):盗取用户隐私数据,浏览器首页锁定,捆绑安装等
  6. 逻辑炸弹(Logic bomb):以破坏为目的,锁定硬盘或操作系统

2、恶意代码的传播方式

恶意代码的传播方式有文件传播、网络传播、软件传播三种。

文件传播:

  1. 病毒感染:在正常的文件中插入恶意代码,使文件感染病毒,文件被发送到别的电脑上,实现传播。
  2. 移动介质:U盘等移动存储设备,利用电脑的自动播放(Autorun.inf)功能执行恶意代码,实现传播。

网络传播:

  1. 网页:(水坑式攻击)黑客在网页上挂马,用户访问网站,恶意代码就会执行,实现传播。
  2. 电子邮件:(鱼叉式攻击)黑客发送钓鱼邮件,邮件的内容包含恶意url或二维码,点击或扫码恶意代码就会执行;或者邮件的附件中包含恶意程序,点击附件就会执行恶意代码,实现传播。
  3. 即时通讯:通过QQ、微信等通讯攻击发送恶意url、二维码、恶意程序等,执行恶意代码,实现传播。
  4. 共享:黑客拿下文件共享服务器,用户通过共享服务器下载文件时,文件中被插入恶意代码,实现传播。
  5. 漏洞;利用系统漏洞,比如永恒之蓝的MS17010漏洞。

软件传播:主要是后门文件,黑客入侵服务器以后,上传后门文件,实现长期控制。

3、恶意代码检测技术

3.1、特征匹配

使用「静态分析技术」(不执行恶意代码,直接分析文件内容),根据已知病毒的特征码进行查杀,也叫特征库或「病毒库」

安全厂商通过各种途径获取病毒「样本」,将病毒文件的MD5(校验和)或部分代码特征当做「特征码」保存到数据库中。定期扫描或实时监控文件操作,当文件出现创建、修改操作时,就用病毒库的特征码去匹配文件的内容,匹配到了就判定有毒。

对于「加密」的文件,也就是病毒加壳,安全厂商会先解密,再分析解密后文件的特征码,
即使无法解密,病毒在内存中执行时也会还原成原本的代码,杀软对「内存」中的代码匹配特征码,实现查杀。

病毒库准确率高、误报率低,但病毒库依赖于安全厂商的能力,需要持续更新,不更新就检测不到;并且具有滞后性,先有病毒才能提取病毒特征,无法查杀未知病毒。

3.2、行为检测

使用「动态分析技术」(执行恶意代码,分析程序行为),从最原始的病毒定义出发,根据程序的「行为」进行查杀,也叫「主动防御」

自动防御会实时监控程序的文件操作、注册表操作、网络操作、进程操作、关键函数调用等行为,发现自启动、释放文件、调用敏感DLL等操作时,每有一个操作,就累加恶意权重,权重超过阈值,就判定有毒。

行为检测能够检测到未知的病毒,但误报率高。如果自动处置,则可能误杀正常的业务程序;如果弹窗让用户选择处置,用户的安全能力很难做出正确的选择。

3.3、云查杀

云查杀是特征匹配的一种延伸技术,将病毒库的角色从终端设备转移到了云端服务器。

因为病毒库是要下载到终端本地的,不能占用太大的空间,而云查的病毒库在「云端」,不担心空间占用问题,可以存储巨量的病毒特征,是一个十亿甚至百亿级别的巨大的「黑白灰名单数据库」

终端将本地无法检测的可疑文件的「MD5」等信息发送给云查服务器,由云查服务器匹配检检测。

如果MD5无法识别,终端就发送「文件样本」给云查服务器,云查服务器放到沙箱里运行样本,检测样本的行为。由于这个操作比较敏感,很多场景下都不会发送文件样本,只发送MD5。

终端就像云查服务器的样本采集设备,终端数量越多,样本就越多,云查能力就越强。
除了终端采集,安全厂商还会根据已有的病毒库,通过「机器学习」做模型训练,加强云查能力。

因此在实际项目中 ,通常使用病毒库+云查的组合形式,互联网终端直连或通过代理连接公有云查服务器,隔离网在网络中部署私有云查服务器,提高病毒查杀能力。

4、恶意代码的清除

根据恶意代码对系统的影响,分为4种:

  1. 感染引导区:不常见,系统启动前执行恶意代码,需要修复/重建引导区。
  2. 感染文件:删除文件中的恶意代码或使用正常的文件替换感染文件。
  3. 独立文件:结束相关进程,删除文件。
  4. 嵌入型:不常见,将恶意代码嵌入到现有程序中,很难编写,需要重装系统。

6、恶意代码的防护

恶意代码的防护主要体现在三个方面:

1)增强安全意识:根据恶意代码的传播方式来增强安全意识,比如不熟悉的U盘不要插,陌生网页不要访问,链接不要随便点,收到邮件时根据邮箱地址而不是名字判断收件人,与相关人员确认邮件内容是否属实。

2)减少漏洞:该升级的升级,该打补丁的打补丁。

3)三方安全产品:

  1. 终端上装防病毒。
  2. 网络边界部署IPS、IDS、防毒墙等设备,
  3. 网络中部署蜜罐、蜜网

蜜罐(Honeypot)技术就是部署一个存在漏洞的网站,然后检测用户对这个网站的访问流量,从而进行预警。工作中只要有人访问蜜罐,就很可能有问题,原因很简单:我没有这个业务网站你为什么要访问。

多个蜜罐组成的网络叫做蜜网(Honeynet),蜜网可以帮助业务网站抵挡很多攻击,因为蜜罐也不做实际业务,所有的性能都可以用来监测攻击,可以帮助我们分析攻击者的行为,提供威胁情报,并及时阻断。

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

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

相关文章

HarmonyOS Next开发学习手册——ExtensionAbility

概述 EmbeddedUIExtensionAbility 是EMBEDDED_UI类型的ExtensionAbility组件,提供了跨进程界面嵌入的能力。 EmbeddedUIExtensionAbility需要和 EmbeddedComponent 一起配合使用,开发者可以在UIAbility的页面中通过EmbeddedComponent嵌入本应用的Embed…

联邦学习——学习笔记2:联邦学习×资源受限下的自适应本地迭代次数

文章目录 一、符号二、应用场景三、与FedAvg算法区别 本笔记参考自b站up主:丸一口 论文参考自Adaptive Federated Learning in Resource Constrained Edge Computing Systems 原视频链接 一、符号 原文的符号解释如下图绿色字体所注 二、应用场景 就是在资源小…

【详述】BP神经网络建模流程一步一步详述

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、BP神经网络的建模流程二、BP神经网络的建模分步讲解2.1.数据归一化2.2.数据划分2.3.网络结构设置2.4.网络训练2.5.训练效果评估 本文梳理BP神经网络的建模流程,供大家建模时进行借鉴。 一、BP神经…

C# VTK 移动旋转

对vtk 场景中一个或多个选中物体进行移动旋转。 交互移动旋转坐标系 首先我们创建旋转的交互坐标系,三个移动Actor,三个旋转Actor,还需要4个定位坐标的小球Actor。 public class CoordinateActor 中添加Actor// 当前选中的Actorpublic vtkAc…

数据结构与算法:回溯算法约束条件:剪枝详解、示例(C#、C++)与回溯典型例题详解

文章目录 一、约束条件二、剪枝三、典型例题四、常用术语五、示例N 皇后问题 C# 示例N 皇后问题 C 示例 六、常见用用回溯算法解决的问题汇总组合问题:图论问题:棋盘游戏问题:优化问题:调度问题:其他问题: …

Study--Oracle-04-SQL练习

一、SQL语句思维导图 二、SQL练习 -- 以employee_id 为排序,列出前5个人 -- FETCH select employee_id,first_name from employees order by employee_id FETCH FIRST 5 rows only; -- 以employee_id 为排序,从第6个人开始 到第10个人 -- offset …

48、基于深度学习的离群值输入向量(matlab)

1、基于深度学习的离群值输入向量原理及流程 基于深度学习的离群值检测的输入向量原理是通过神经网络模型对数据进行学习和表示,在该表示中探测异常样本。其流程大致如下: 数据预处理:将数据进行归一化处理,确保神经网络模型能够…

【MDK5问题】:MDK5无法跳转,并且提示:no browse information available in xxxxx

1、问题: MDK5原来的函数调用可以直接跳转到原函数,但是出现不能跳转原函数的情况,且提示:no browse information available in xxxxx 的情况; 2、解决: 如下图所示:在魔术棒(pro…

Springboot启动mongoDB报错后禁用mongoDB自动配置

一、背景 最近在项目当中使用到MongoDB的驱动及相关依赖,发现在启动的时候有MongoDB启动报错信息,目前也不直接使用MongoDB,所以把自动配置这一块在启动的时候去除掉。 二、操作方式 Application启动类,修改启动SpringBootAppli…

【STM32】GPIO复用和映射

1.什么叫管脚复用 STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 STM32F4系列微控制器IO引脚通过一个…

GPT-5:人工智能的新篇章,未来已来

目录 GPT-5:人工智能的新篇章,未来已来 引言 1.人工智能的快速发展和对现代社会的影响 2.OpenAI首席技术官米拉穆拉蒂关于GPT-5发布的消息 3.GPT-5对AI领域的潜在影响和期待 4.迎接GPT-5时代的准备 方向一:GPT-5技术突破预测 1.1 GPT-…

百度大模型安全荣获2024世界智能产业博览会“Find智能科技创新应用典型案例”

6月20日,2024世界智能产业博览会在天津开幕。会议聚焦人工智能、智能网联汽车、智能制造等年度热点议题,由世界智能产业博览会组委会指导,世界智能产业博览会组委会秘书处、中国新一代人工智能战略发展研究院、中国软件行业协会、中国网络空间…

第二证券:港交所上市24周年 市值增长38倍

香港交易及结算所有限公司(下称香港交易所)于近来举办庆典活动,庆祝上市24周年。 据介绍,自2000年起,香港交易所逐步发展成为全球领先的商场营运机构,也成为连接中国内地与国际商场的主要桥梁。到2024年6月…

3 话题通信-API的使用

目录 (一)常用API 1 初始化 1.1 初始化函数(c++) (1)函数一般表达式: (2)使用 (3)举例(c++) 案例1:argc与argv使用 要求 cmakelists.txt配置 代码 效果图 案例2:options的使用 要求 cmakelists.txt配置 代码 效果图 1.2 初始化函数(python) (…

如何绘制网络安全运营的“谷歌地图”?

正如Google Maps(谷歌地图)彻底改变了驾车出行时的导航模式一样,通过流程映射绘制一张指导网络安全运营的“电子地图”,可以彻底改变组织理解和管理网络安全运营工作的方式。 现代企业网络安全运营的核心并不是部署防火墙和杀毒软…

如何系统学习机器学习?

我不是计算机专业,第一次接触机器学习还是在研一的时候,当时是看到机器学习可以做号码识别,就觉得好厉害,想学这个。 首次了解到Python这门语言,知道了机器学习可以做什么后,就感觉打开了新世界一样。再后来…

数据质量管理-准确性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档,当前数据质量评价指标框架中包含6评价指标,在实际的数据治理过程中,存在一个关联性指标。7个指标中存在4个定性指标,3个定量指标; 定性指标&am…

IT入门知识第六部分《后端开发》(6/10)

目录 后端开发:构建强大的服务端逻辑 1.引言 2.后端技术概述 2.1 数据库 2.2 服务器 2.3 API 2.4 安全性 3.服务器和API 3.1 服务器的作用 3.2 API的作用 4.后端框架 4.1 Node.js 4.1.1 特点 4.1.2 用途 4.1.3 代码案例分析 4.2 Django 4.2.1 特点 …

《Redis设计与实现》阅读总结-1

第 2 章 简单动态字符串(SDS) 1. Redis使用自己构建一种名为简单动态字符串(simple dynamic string ,SDS)的抽象类型,作为Redis的默认字符串。 2. SDS的结构: free属性:表示这个SDS没有分配任何…

【SQL Server数据库】熟悉DBMS的基本操作及数据库的创建

目录 一、SQL SERVER基本操作 二、用Management Studio创建数据库 1、使用Management Studio创建数据库bookdb,各项参数采用默认设置。 2、使用Management Studio创建数据库EDUC 3. 在EDUC中创建三个表,根据下面要求创建Student,Course&am…