网络安全文章解读:针对僵尸网络逃避攻击的深度强化对抗学习

原文标题:Deep Reinforcement Adversarial Learning against Botnet Evasion Attacks

0x01 太长不看版

有监督学习得到的网络流量classifier容易被规避,并且无法面对新颖的攻击。

为了让classifier更鲁棒,使用了DRL来自动生成逼真的攻击样本,然后用这些样本会扔到数据集里强化classifier。此时,我们甚至可以面对以前没出现过的攻击。

0x02 intro

针对基于ML检测器的对抗攻击希望生成能够骗过检测器的对抗样本,即真正的攻击样本被识别为无害的。

这些对抗样本可以在训练的时候引入,也可以在做分类的时候引入。我们考虑在做分类的时候引入对抗样本的情形。这种事情在图像和语音领域中已经被做烂了。

我们考虑的场景如下图所示:企业网络。内含许多主机,至少一个成为了bot。网络通信被NIDS监视。这是一个灰箱模型,因为攻击者把内网配置包括检测配置知道了个遍也不太现实。
在这里插入图片描述

攻击者不知道IDS用啥来训练的,但是攻击者可以猜IDS用的是具有啥特征的数据来训练。

事实上,攻防双方考虑的特征确实有很大的重合。

在这里插入图片描述
例如,灰色的属性就是攻击者使用的属性。攻击者试图稍微修改botnet属性来逃避检测。这些修改会稍微更改原始流量特征,但是不改变botnet的属性,例如,加点通信延迟或者扔点垃圾包就行了,只需要稍稍改变botnet的控制逻辑。

0x03 解决方案

原文用DRL来生成现实的对抗样本,使得恶意性保留,但是不会被检测。

这个解决方案分成三个阶段。

在这里插入图片描述

阶段一:准备

创造一个DRL agent,可以根据botnet的网络流来生成对抗性样本。

我们认为,botnet软件的底层逻辑不会别改变,而且攻击者探测检测模型所提交的sample数量也受限。

agent将会学习如何提交尽量多的逃逸攻击样本。

环境包括两个部分:

  • 状态生成器,将输入流翻译成可以被agent识别的状态s;
  • botnet检测器,用来做入侵检测的。

reward就是对生成的样本判断对错。Agent会持续修改样本,直到生成样本可以逃脱检测或者一直失败。

action是对数据流的微小改动。agent会改动下面的几个特征:持续时间,已发送字节,已接收字节,已发送数据包(即表中灰色的特征)。

使用DDQN主要是为了防止高估。DDQN会产生和初始变体明显不同的样本。

使用SARSA是为了尽力避免被检测出。

总之,阶段一的输出是DRL agent A(b),其中b是botnet。这个agent被用来生成恶意对抗样本。

阶段二:自动生成样本

A(b)用来生成恶意样本。步骤如下:

在这里插入图片描述

  1. 系统接收b的恶意流作为输入,送给状态生成器生成状态;
  2. 状态送给agent A(b);
  3. agent把最佳action传送给生成器,进而生成修改后的样本;
  4. 把修改后的样本交给检测器判断,
  5. 如果成功骗过检测器,则这个数据被detector用来进行学习;否则把状态回传给生成器并重复2-4,进一步修改数据包。

这个过程中agent没有得到任何收益。

这个过程中会得到恶意流,它们是b的恶意流的魔改版。

阶段三:增强

使用増广训练集训练detector。其分类阈值是増广数据集中恶意样本的比率。

猜你喜欢

转载自blog.csdn.net/weixin_43466027/article/details/116992604