一种动态防御策略——移动目标防御(MTD)

news2024/12/23 11:03:37

文章速览:

1、高级规避攻击

2、用移动目标防御对抗欺骗

  • 常见做法
  • 操作系统和应用程序才是真正的战场
  • 打破游戏规则

网络攻击的技术变得愈发难测,网络攻击者用多态性、混淆、加密和自我修改乔装他们的恶意软件,以此逃避防御性的检测,于是移动目标防御(MTD)技术出现了,通过动态地改变攻击面,有效地对抗日益复杂和隐蔽的网络攻击。

一、高级规避攻击

高级规避攻击可以反复修改网络攻击,包括其源、静态签名和行为签名,它们隐藏了防御系统的恶意意图。这些欺骗手段使传统的防御机制力不从心,攻击者明确地知道他们要攻击谁,何时何地,使用什么武器,而防御者却始终处于不确定状态。我们来看一些常见类型的高级规避攻击技术。

1、多态性通常被攻击者用来躲避反病毒软件的检测

通过加密恶意软件的有效载荷(包括代码和数据),攻击者可以获得两大优势:首先,攻击者可以通过使用多个加密密钥轻松生成同一恶意软件的不同实例。这使得基于签名的反恶意软件设施失去作用,因为新的实例具有新的、未知的静态签名。其次,恶意软件可以绕过更深入的静态分析,因为其代码和数据是加密的,因此不会暴露在扫描仪面前。利用变形技术,恶意软件的作者在每次执行时都会改变内存代码,从而使检测变得更加复杂。

2、多态性和变态性的目的是躲避自动扫描和内存扫描

利用混淆技术,恶意软件的编写者可以编写出人类分析人员难以理解的代码。具体做法是在有效载荷中加入模糊字符串、虚假代码和复杂的函数调用图,这些代码可以在恶意软件的每个实例中随机生成。

3、反虚拟机和反沙箱机制是另一种先进的攻击方法

沙箱和虚拟机是恶意软件分析人员必不可少的工具。这些方法可以检测恶意软件是否在虚拟化或沙盒环境中运行。如果检测到虚拟机或沙箱,恶意软件就会改变其行为,避免任何恶意行为。一旦在真实系统上执行,在被标记为良性后,恶意软件就会开始其恶意活动。

4、反调试技术被用来来避免调试和运行时分析

如果在运行过程中,恶意软件检测到调试工具正在运行,它就会改变执行路径,执行良性操作。一旦恶意软件不受运行时检查,它就会开始其恶意行为。

5、加密和有针对性的漏洞利用

为了避免被发现,URL模式、主机服务器、加密密钥和漏洞名称在每次发送时都会改变。这些漏洞利用程序还可以通过限制从同一IP地址访问漏洞利用程序的次数来躲避蜜罐。最后,某些类型的攻击只有在真正的用户交互(如网页滚动)之后才开始利用阶段。这样,攻击者就能确保在真实机器上执行,而不是进行自动动态分析。

二、用移动目标防御对抗欺骗

然而,攻击者使用的欺骗技术也可以被防御者利用来反向平衡。移动目标防御(MTD)就是这样一种防御技术。

(一)常见做法

在实践中,移动目标防御安全主要分为三类:

l网络级MTD

l主机级MTD

l应用程序级MTD

1、网络级MTD包括多年来开发的几种机制。IP跳转会改变主机的IP地址,从而增加攻击者看到的网络复杂性。后来,这一想法被扩展为允许以透明方式保持主机IP变更。通过保留真实主机的IP地址,并将每台主机与一个虚拟随机IP地址关联起来,从而实现了透明性。有些技术的目的是在网络映射和侦察阶段欺骗攻击者。这些技术包括使用随机端口号、额外开放或关闭的端口、伪造监听主机和混淆端口跟踪。这包括防止操作系统识别的随机网络服务响应。

2、主机级MTD包括更改主机和操作系统级资源、命名和配置,以欺骗攻击者。

3、应用程序级MTD包括更改应用程序环境以欺骗攻击者。微软推出的地址空间布局随机化(ASLR)实现了MTD的基本水平。它包括随机安排进程地址空间的内存布局,使对手更难执行其shellcode。其他技术包括改变应用程序类型和版本,并在不同主机之间轮换使用。一些应用程序级MTD使用不同的设置和编程语言编译源代码,每次编译都会生成不同的代码。

下表概述了不同类别MTD中使用的常用技术:

(二)操作系统和应用程序才是真正的战场

移动目标防御模式打破了攻防双方之间的不对称。现在,攻击者也必须在不确定和不可预测的情况下行动。

虽然网络级MTD提供了一定的弹性,但随机化IP地址、网络拓扑结构和配置并不是有效的防御手段。攻击者的最终目的地是位于网络、防火墙和路由器后面的主机、服务器和终端。操作系统和应用程序是0日漏洞、恶意软件和高级持续性威胁(APT)的有利可图的目标,是攻击者与防御者斗争的主要战场。

操作系统和应用程序层面的MTD大有可为;为了成功发起攻击,攻击者必须收集切实的情报,并对目标操作系统和应用程序做出假设。这些信息需要包括相关版本、配置、内存结构、资源名称等因素。如果攻击者将攻击步骤建立在错误元素(即使是一个内存地址)的基础上,攻击就会失败。

(三)打破游戏规则

Morphisec以攻击者无法追踪的方式对应用程序和操作系统进行环境修改,从而将移动目标防御提升到一个新的水平。因此,对攻击者而言,每次函数调用、地址跳转或资源访问都有可能失败,同时攻击、其发起者和来源也会完全暴露。在这种情况下,攻击的成本会急剧上升,而成功的概率则会下降到接近于零。这些因素加在一起,使得攻击在实际和经济上都不那么可行。

移动目标防御与基于检测的保护模式截然不同,后者必须首先检测或预测恶意活动,才能阻止其发生。人工智能和机器学习确实能更好、更快地进行检测,但也受到限制,因为要检测到威胁,需要对威胁有一定程度的了解,且高级闪避攻击仍具有不可预测性。而移动目标防御迫使攻击者在不确定的战场上作战,从而彻底改变了冲突规则。

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

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

相关文章

正基塑业邀您参观2024长三角快递物流供应链与技术装备展览会

2024.7.8-10 杭州国际博览中心 科技创新,数字赋能 同期举办:数字物流技术展新能源商用车及物流车展 电商物流包装展 冷链物流展 展会介绍 2024长三角快递物流供应链与技术装备展览会(杭州),于2024年7月8-10日在杭州…

机器学习中的激活函数

激活函数存在的意义: 激活函数决定了某个神经元是否被激活,当这个神经元接收到的信息是有用或无用的时候,激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数,神经元仅仅做线性变换,那么该神经网…

【C++】priority_queuepriority_queue模拟实现

个人主页 : zxctscl 如有转载请先通知 文章目录 1. priority_queue的介绍2. priority_queue的使用3. 函数模板与类模板4. 仿函数5. priority_queue模拟实现5.1 push5.2 pop5.3 empty5.4 size5.5 top5.6 仿函数实现大小堆5.7 实现自定义类型的优先级队列 6. 附模拟实…

Linux的启动过程,了解一下?

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 init程序的类型: SysV: init, CentO…

Linux系统编程开发环境搭建

开发环境搭建 桥接网络(Bridged Network)、网络地址转换(NAT, Network Address Translation)和主机模式网络(Host-only Networking) 在虚拟化环境中,常见的三种网络模式是桥接网络&#xff08…

好用的Python开发工具合集

​ Python是一种功能强大且易于学习的编程语言,被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛,越来越多的Python开发工具也涌现出来。但是,对于新手来说,选择一款合适的Python开发工具可…

OpenHarmony开发实例:【鸿蒙.bin文件烧录】

使用HiBurn烧录鸿蒙.bin文件到Hi3861开发板 鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了——如何使用DevEco Device Tool工具烧录二进制文件到Hi3861开发板; 本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板。 获取HiBurn工具 通过鸿蒙…

云仓酒庄品酒师培训破大世界基尼斯纪录,市场专业化趋势势如破竹

近日,云仓酒庄举办的品酒师培训活动成功创下大世界基尼斯纪录,这一荣誉不仅彰显了云仓酒庄在酒类培训领域的专业实力,更折射出酒类市场专业化趋势的势如破竹。随着酒类市场的日益成熟和消费者品鉴需求的提升,酒类市场专业化趋势对…

通义千问:官方开放API开发基础

目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 开通DashScope并创建API-KEY 2.2 设置API-KEY 三、基于DashScope SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 通义千问是由阿里云自主研发的大语言模型,用于理解和分…

Vitis HLS 学习笔记--BLAS库之WideType

目录 1. WideType 数据类型 2. WideType 类模板参数 2.1 SFINAE技术 3. WideType 类中的函数 3.1 operator[](unsigned int p_Idx) 3.2 operator(const WideType& p_w) const 3.3 getValAddr() 3.4 operator const t_TypeInt() 4. 总结 1. WideType 数据类型 在 …

Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码

Javasaas模式 智慧校园系统源码Java Android MySQL IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园,也指按智慧化标准进行的校园建设,按标准《智慧校园总体框架》中对智慧校园的标准定义是:物理空间和信息空间的有机衔接&#…

前端学习<四>JavaScript基础——26-闭包

闭包的引入 我们知道,变量根据作用域的不同分为两种:全局变量和局部变量。 函数内部可以访问全局变量和局部变量。 函数外部只能访问全局变量,不能访问局部变量。 当函数执行完毕,本作用域内的局部变量会销毁。 比如下面这样…

Ubuntu20从0开始选择合适版本手动安装cuda,torch-geometric,jax

一个全新的ubuntu20台式机,在Additional Drivers安装nvidia-470-server(一开始安装450,cunda版本只能到11.0,torch有些库用不了,可以直接切换点击Apply Changes重启就行) nvidia-smi查看CUDA Version可到…

Redis 配置与使用 (Linux 虚拟机Windows客户端)

Centos7 安装Redis详细教程 - JcongJason - 博客园 (cnblogs.com) 安装 下载redis安装包并解压 # 下载,我是在root下执行的下载,所以我的下载目录为:/root/redis-5.0.5,这里按照自己的实际情况调整 wget https://download.redi…

JVM、maven、Nexus

一、jvm简介 1.应用程序申请内存时出现的三种情况: ①OOM:内存溢出,是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出&#xff0c…

css3实现微信扫码登陆动画

在做微信扫码登陆时,出现一个背景光图上下扫码动画,用css3图片实现。 实现原理: 1.准备一个渐变的背景.png图 2.css动画帧实现动画 看效果: css代码: #wx-scan{position: absolute;top:0px;left: 50%;z-index: 3;ma…

错误分析 (Machine Learning研习十九)

错误分析 您将探索数据准备选项,尝试多个模型,筛选出最佳模型,使用 Grid SearchCV微调其超参数,并尽可能实现自动化。在此,我们假设您已经找到了一个有前途的模型,并希望找到改进它的方法。其中一种方法就…

数据密集型应用系统设计 PDF 电子书(Martin Kleppmann 著)

简介 《数据密集型应用系统设计》全书分为三大部分: 第一部分,主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第 1 章即瞄准目标:可靠性、可扩展性与可维护性,如何认识这些问题以及如何达成目标。第 2 章我们比…

JQuery(四)---【使用JQuery实现动画效果】

目录 前言 一.隐藏和显示 1.1使用方法 1.2案例演示(1) 1.3隐藏/显示效果一键切换 二.淡入淡出效果 2.1使用方法 2.2案例演示(fadeIn) 2.3案例演示(fadeOut) 2.4案例演示(fadeToggle) 2.5案例演示(fadeTo) 三.滑动 3.1使用方法 3.2案例演示(slideDown) 3.3案例演示…

三道模拟题

P1003 [NOIP2011 提高组] 铺地毯 题目描述 原题点这里-->P1003 [NOIP2011 提高组] 铺地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺…