网络安全文章研读:用深度强化学习来逃脱机器学习的检测

研究介绍了一种基于深度强化学习(DRL)的框架,通过向网络流量中添加扰动,成功地欺骗了机器学习入侵检测系统(IDS),显著提高了攻击的漏检率。该工作特别关注黑盒攻击策略,能避开决策树和CNN模型的检测。
摘要由CSDN通过智能技术生成

0x01 太长不看版

ML技术可以被用来做botnet入侵检测而且效果海星。但是现在可以用对抗性ML构造特定样本来逃脱检测,因为ML模型对扰动很敏感…

这个工作提出来一个基于DRL的通用框架,通过往样本里加扰动来欺骗入侵检测系统IDS。整个过程中,IDS被攻击者当成一个黑盒模型来日,agent会根据feedback(是否被IDS识别)和动作序列a(更改包的时空特征)来更新他扔给黑盒的样本。这么做的结果是黑盒的漏检率大大提高了。

0x02 intro

虽然ML做入侵检测效果很好,但是还是需要模型能预测对手将干什么事情。一般来说,攻击者可能会污染训练集或者搞一些对抗样本。

搞对抗样本的做法是在里面注入一些随机扰动。但是,对抗样本需要保持可用性,即不能乱改数据包,否则可能直接到不了目标主机。

模型设定:
IDS是个黑盒;攻击者只能知道自己发的数据包是否被识别;防御者不会标注入侵变量训练自己。

主要贡献:
提出一个攻击的框架。日穿了决策树和CNN。

0x03 一些背景知识

攻击可以分为三类:基于锑度、基于得分、基于决策。

  1. 基于梯度:模型结构和参数为攻击者所知。则攻击者利用梯度来攻击模型。常见的例如李宏毅机器学习中的“模型攻防”相关内容和GAN。
    这个防御也简单,可以把梯度掩盖掉,比如加入不可微的分类器。
  2. 基于得分:攻击者不知道面对的模型,但是可以通过发包探测来为自己的动作打分。
    防御方法是添加随机元素阻碍梯度的数值估算。
  3. 基于决策:攻击者完全不知道模型啥样,只知道自己发的包被判别为好/坏。

0x04 架构设计

使用技术:DQN

框架结构
在这里插入图片描述使用openAI gym构建上述框架。使用keras-rl构建agent

  • (单步)收益:每一次agent发送的包是不是被检测出来了,未检出收益为R=10,检出为R=0
  • 观测:对当前数据流采样所形成的特征向量
  • Done:0-1变量,标识当前步骤是否完成。

状态空间

botnet发的东西在环境中以比特流的形式存在。使用auto-encoder对流做降维。

在将流放入auto-encoder之前,流被整理成为1024B长度,转化为32*32的灰度图。不够长的话则补0x00。

随后使用卷积auto-encoder,将图像降维成32维特征向量。

动作空间
agent会对流做改动。这些改动不会更改原始功能,也不会破坏流文件格式:

  • 修改时间戳(±0.3ms)
  • 修改数据包长度并随机补0
  • 追加4比特的0
  • 追加4比特随机字符
  • 追加一个良性数据包

上述动作可能会对样本产生干扰,并且在实践中大多数都是随机的。 例如,附加数据包时,新数据包将自动生成,或从良性流中找到的数据包列表中进行选择。

此后进行网络训练,实验结果部分略。

0x05 原文标题

Evading Machine Learning Botnet Detection Models
via Deep Reinforcement Learning

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PenguinLeee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值