对Bringing a GAN to a Knife-fight Adapting Malware Communication to Avoid Detectio的简单理解

本文主要是介绍对Bringing a GAN to a Knife-fight Adapting Malware Communication to Avoid Detectio的简单理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要技术:
提出利用GANS生成网络流量,以模拟其他类型的流量。
:即修改了恶意软件的网络行为,从而去模仿合法的申请行为,然后避免了堵截,或者检测。

这里设想了自适应恶意软件和自适应IPS的可能性。
(IPS: 入侵防御系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为)

eg.通过修改恶意软件的源代码从GAN接收参数,通过参数的反馈,可以调整其命令和控制通道的行为,以模拟Facebook聊天网络的行为。这种方法可以让恶意软件避免检测成为可能。
(GAN使用真实的Facebook聊天网络流量参数来训练预定的时间。经过训练的GAN生成器将其输出参数与恶意软件通信。恶意软件根据这些参数调整其通信量,并继续其工作。恶意软件的流量在网络中从不停止,它只是改变而已。恶意软件检测它是否在最后一次窗口中被阻止,并使用这些信息向GAN发出需要额外培训和数据的信号.)

两个约束:
1.首先,恶意软件应该是真实的,并在网络中执行真正的恶意操作,这是知道修改了恶意软件而没有影响其操作的唯一方法。
2.第二个限制是恶意软件的拦截也应该是真实的,因为这可能会扰乱其操作。
(其:指的应该是对GAN生成器参数的修改,还有对恶意软件修改动作)

贡献contributions:
1.使用GAN模拟给定流量配置文件的网络流量行为。(即使给了正常的文件网络流量)
2.基于GAN给的参数让恶意软件模拟正常的流量行为。
3.在实验中用了IPS做阻塞实验。 (即是对修改了行为的恶意软件检测其效果)
4.提出了一种新的基于恶意软件被IPS阻塞之后用GAN进行回馈调整的机制。

背景工作:
A.生成对抗性网络(GAN)
主要部分:生成器G与辨别器D
先对G输入一个随意的值,然后放入D中,让G利用D对其的反馈值完善G生成的样本,使G生成D无法辨认其真假的样本。
B.隐秘恶意软件通信Stealthy Malware Communication
恶意软件通常隐藏其C2通道以保持未被检测到。一类规避方法并不试图模仿其他通信量,而是使用各种不同的、可信的和难以找到的基础设施去实现这个避规功能。另外一类则通过描述其网络协议将流量转化为另外一个应用协议。
(C2通道:在数据传输中的一个通道)
C.红队工具Red Team Tools
在渗透测试期间,红色团队通常依赖于利用后开发框架来模拟网络和主机环境中的恶意软件行为。
(红队:即是开发者吧)

以下对核心方法的图像化:
在这里插入图片描述
GAN是独立实现的,并通过Web服务与恶意软件进行通信。恶意软件获取参数并实时修改其通信量。维护C2通道并应投入运作,IPS阻止所有看起来不像正常软件的流量。

生成方法:
A.风险模型(我的理解:决定整个过程效果的部分)
风险模型的三个主要部分:检测器,恶意软件,C2服务器。
检测器检查受感染主机与Internet之间的所有网络流量,并决定是否允许每个IP地址的流量通过。若是恶意软件的流量并不与正常软件流量相似,则会被封锁流量。
B.GAN
web服务器用来促进GAN与恶意软件之间的交流。Web有两个API调用get params 和 feedback.
Get params API调用加载保存的生成器模型并生成新的流量参数,然后将这些参数作为JSON对象发送回恶意软件。生成的参数也保存到本地文件中。
Feedback反馈API调用加载已保存的生成器和鉴别器模型,并基于收到的反馈(阻塞的流量),将上一次窗口的参数添加到当前数据集。随后,使用增强数据集执行五次另一训练循环。
C.恶意软件
为了评估此方法,使用了名为流感的开源远程访问特洛伊木马RAT(流感病毒)。对流感病毒进行了修改,以接收来自GAN发生器的输入,并调整其网络行为。
客户端与服务器之间的通信是通过HTTP建立的。流感客户端依次执行以下操作:
1)检查服务器是否联机。
2)发送心跳消息 唯一标识符。
3)从预先配置的URL路径中检索XML文件。XML文件包含一个命令id和客户端执行所需的命令列表。(即是在文件有着GAN回馈回来的信息)
3)执行任何“新”命令 在xml文件中。(修改了恶意软件的网络行为,如影响每个流的时间、持续时间和请求大小)
步骤之间按顺序执行,每个步骤之间间隔5秒,所以是可以预测的。
D.入侵预防系统Intrusion Prevention System
使用Stratosphere Linux IPS (slips) system(平流层Linux IPS系统),因为它对网络中的行为进行建模,并使用机器学习算法检测网络中的行为。
该方法的核心是读取从流量到模型的网络流,并为每个流提取三个特征:持续时间、大小和周期性(最后三个流动之间的时间差之比),每个流的每个特征组合都被分配一个状态。由于流是顺序的,状态是顺序的,所以从中建立了一种模型(Markov模型,被存储在磁盘上)。在检测过程中,未知流量被转换为状态序列,然后,计算每个未知状态序列与生成的存储模型(正常软件的状态模型)匹配的概率,并且阻止不匹配普通模型或与恶意软件模型匹配的ip地址。

OK,以上。

这篇关于对Bringing a GAN to a Knife-fight Adapting Malware Communication to Avoid Detectio的简单理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_43971116/article/details/89304647
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/283756

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav