基于Python模仿流量攻击的方法对字节编码攻击

基于Python模仿流量攻击的方法对字节编码攻击 一,总目标 NIDS 配置:FE(bytes encoding)+ ML(textCNN) 二

本文包含相关资料包-----> 点击直达获取<-------

基于Python模仿流量攻击的方法对字节编码攻击

一、总目标

NIDS 配置:FE(bytes encoding)+ ML(textCNN)

二、PGA(FE knowledge==100%)

2.1 实验目标

在完全了解 bytes encoding 的情况下,对 textCNN 进行攻击,以 PDR/MMR 为评价指标。

假正例率 FPR = FP / (TN + FP)

表示的,预测为良性流量例但真实情况为恶性的比率。

PDR=1-(改造后恶意包个数/原恶意包个数)

2.2 实验步骤

准备流量数据:准备 train 和 test 数据集。采用 mawilab 数据集进行测试。

改造原始 textCNN 字节编码文件 init.py

c++ Python extractor.py -i 0.pcap -o 0.npy

c++ Python extractor.py -i mawilab_20_30w.pcap -o mawilab_20_30w.npy

修改 textCNN,把它作为目标 NIDS 中的 ML。

改造原始 textCNN 字节编码文件 mavilab.py

Train:

c++ Python model.py -M train

Test:

c++ Python model.py -M test

归一化

使用传统方法和使用 Kitsune Normalizer 均无用。突然想到不需要归一化,因为字节编码里面得到的都是 0,1,似乎没有太大必要归一化,对代码进行改动,隐去归一化部分。

生成对抗性特征

数据准备:

test.pcap :10000 条数据,就是测试集

mimic_set.npy:从这 10000 条里面选 1000 条良性(先转 npy 再截取)

c++ python main.py -m dataPGA/t1000.pcap -b dataPGA/mimic_set.npy

c++ python main.py -m 2.pcap -b dataPGA/mimic_set.npy

原因:维度的原因。

具体分析代码,可以看到报错信息中的 norm_feature 的 shape 是(100,100)表示 100 个包里面的 100 个向量,即论文中的算法每次处理 100 个包。Mimic_set 是我们要模仿的流量,他是(1000,64,256)维度的。这两个量之间是无法相减的,原因在于字节编码生成的维度和 Manipulator.py 文件中使用到的 afterImage 提取器提取后的特征维度不能相容。

```python

Createglobalfeatureextractor

init_scapy_in=rdpcap(init_pcap_file) self.global_FE=Kitsune(init_scapy_in,np.Inf) ```

如果 FGA 中要改动 GAN-PSO 中使用的 afterImage 提取器提取特征进行迭代,是一件很麻烦的事情。

PSO 算法学习:

1 粒子群算法简介

粒子群算法(Particle Swarm Optimization,简称 PSO)是 1995 年 Eberhart 博士和 Kennedy 博士一起提出的。粒子群算法是通过模拟鸟群捕食行为设计的一种群智能算法。区域内有大大小小不同的食物源,鸟群的任务是找到最大的食物源(全局最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自位置的信息,让其他的鸟知道食物源的位置最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,问题收敛。学者受自然界的启发开发了诸多类似智能算法,如蚁群算法、布谷鸟搜索算法、鱼群算法、捕猎算法等等。

2 算法原理

这是一个根据鸟群觅食行为衍生出启发式的算法,现在有一群鸟,他们一起出发觅食,目标就是找到可行域食物最丰富的位置。小鸟们在同一个微信群聊中,可以不断共享自己找到的事物最丰富的地方。策略如下:

1. 每只鸟随机找一个地方,按照一个随机的方向出发。

2. 每飞一分钟后, 每只鸟将自己找到的最优地点以及事物存量共享到群里,然后计算出群体找到的最优位置。

3. 每只鸟回顾自己的路径,综合考虑自己走过的最优的位置和群体最优位置决定下一步的方向。

4. 如果大家都到了同一个地方附近,就停止寻找,否则重复 2 ,3 步。

整个群体的位置更新如下图,每一个红点即一个粒子: (图片来自 scikit-opt)

具体见

```c++ pklList 恶意流量 grp_size=100 每次处理100个包 pso_iter(迭代次数),pso_num(粒子个数),pso_size(组数) =3,6,3 max_cft_pkt 与一个原始数据包聚合的最大手工数据包数量。是精心编制的数据包数与原始数据包数的比率 max_time_extend 变异流量中每两个变异数据包的间隔时间不超过max_time_extend 倍原始间隔时间。是变异流量与原始流量之间经过的时间比率

             min_time_extend:
             如上,接最小
             `grp_size`:每次处理变异的网络数据包数量(注意它与上面的 `grp_size` 不同)
             proto_max_lmt: v:最大协议层数,与TCP/UDP IP有关

```

```python proto_max_lmt=[]#maximumprotocollayernumber(最大协议层数) foriinrange(grp_size): ifgroupList[i].haslayer(TCP)orgroupList[i].haslayer( UDP)orgroupList[i].haslayer(ICMP): proto_max_lmt.append(3.) elifgroupList[i].haslayer(IP)orgroupList[i].haslayer( IPv6)orgroupList[i].haslayer(ARP): proto_max_lmt.append(2.) elifgroupList[i].haslayer(Ether): proto_max_lmt.append(1.) else: proto_max_lmt.append(0.)

```

```c++ classUnit: def__init__(self,grp_size,max_cft_pkt):

生成一个100*2矩阵

self.mal=np.zeros((grp_size,2))

print(grp_size,max_cft_pkt)

生成一个100 5 3矩阵

         self.craft=np.zeros((grp_size,max_cft_pkt,3))

```

PSO 算法

基本参数设置:

max_iter,particle_num,local_grp_size=3,6,3

STA_best_X,STA_best_feature,STA_best_pktList,STA_gbl_dis,STA_avg_dis,STA_best_all_feature,fe_time

X

```c++ self.mal = np.zeros((grp_size, 2))

X.mal[i][0]=groupList[i].time + ics_time 修改后的时间 X.mal[i][1] 变异次数

```

```c++ self.craft = np.zeros((grp_size, max_cft_pkt, 3))

X.craft[nxt_mal_no][cft_no][0] = X.mal[nxt_mal_no][0] - slot_time X.craft[nxt_mal_no][cft_no][1] = random.choice([1., 2., 3.]) X.craft[nxt_mal_no][cft_no][2] = random.uniform(0, mtu) nxt_mal_no表示第几个包,cft_no表示变异次数 [0]是超过时间片的时间,[1]是协议的层级,[2]是最大传输单元

```

proto_max_lmt

每个包的协议层级

Class PSO

```python

    self.max_iter = max_iter#最大迭代次数
    self.particle_num = particle_num#粒子个数
    self.grp_size = grp_size#每组大小

    self.grp_best_dis = [-1.] * (self.particle_num // self.grp_size)
    self.grp_best_index = [-1] * (self.particle_num // self.grp_size)

    self.global_best_dis = -1.
    self.global_best_index = -1

    self.global_best_pktlist = None

    self.swarm = []

    self.STA_glb_dis_list = []
    self.STA_avg_dis_list = []

```

Class Particle

``` self.show_info = show_info

    self.grp_size = len(groupList)
    self.groupList = groupList
    self.max_cft_pkt = max_cft_pkt
    self.max_time_extend = max_time_extend
    self.last_end_time = last_end_time
    self.proto_max_lmt = []

    self.pktList = None
    self.feature = None
    self.all_feature = None
    self.local_FE = None

    if self.show_info:
        print("----@Particle: Initializing...")

    #PSO算法中X和V的初始值
    # initialize X and V
    #proto_max_lmt最大协议层
    #X.mal X.craft
    self.X, self.proto_max_lmt = initialize(self.grp_size, last_end_time,
                                            groupList, max_time_extend,
                                            max_cft_pkt, min_time_extend,
                                            max_crafted_pkt_prob)
    #初始化两个矩阵V.mal V.craft
    self.V = Unit(self.grp_size, self.max_cft_pkt)

    self.indi_best_X = None
    self.indi_best_dis = -1.
    self.dis = -1.

```

这里要改

```c++ defrebuild( grp_size, X, groupList,

tmp_pcap_file

):

newList=[]

        foriinrange(grp_size):

        forjinrange(int(round(X.mal[i][1]))):
        pkt=copy.deepcopy(groupList[i])
        ifround(X.craft[i][j][1])==1:
            ifgroupList[i].haslayer(Ether):
            pkt[Ether].remove_payload()
        else:
                raiseRuntimeError("Errorinrebuilder!")

        elifround(X.craft[i][j][1])==2:
                ifgroupList[i].haslayer(IP):
                pkt[IP].remove_payload()
                elifgroupList[i].haslayer(IPv6):
                pkt[IPv6].remove_payload()
                elifgroupList[i].haslayer(ARP):
                pkt[ARP].remove_payload()
        else:
                    raiseRuntimeError("Errorinrebuilder!")
        elifround(X.craft[i][j][1])==3:
                    ifgroupList[i].haslayer(ICMP):
                    pkt[ICMP].remove_payload()
                    elifgroupList[i].haslayer(TCP):
                    pkt[TCP].remove_payload()
                    elifgroupList[i].haslayer(UDP):
                    pkt[UDP].remove_payload()
        else:
                raise RuntimeError("Error in rebuilder!")
        else:
            raise RuntimeError("Error in rebuilder!")
        pkt.add_payload(random_bytes(int(round(X.craft[i][j][2]))))
        pkt.time = X.mal[i][0] - X.craft[i][j][0]
        newList.append(pkt)

    mal_pkt = copy.deepcopy(groupList[i])
    mal_pkt.time = X.mal[i][0]
    newList.append(mal_pkt)

# wrpcap(tmp_pcap_file, newList)
return newList

```

c++ D: \1111\MyTrafficManiputor>python main.py -m dataPGA/test2.pcap -b dataPGA/mimic_set.npy -i dataPGA/init.pcap @Manipulator: Initializing ... read 100 packets in malicious pcap feature vectors shape : (1, 64, 256) save successfully @Mani: Save configurations... <class 'int'> <class 'int'> @Mani: Begin processing... @Manipulator: Processing pkt ( 0 to 100 ) ... @Manipulator: Create PSO 6 3 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 485.8573669026338 6 3 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 --@PSO:Step 1 Finished...Global best value: 485.8573669026338 6 3 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 --@PSO:Step 2 Finished...Global best value: 485.8573669026338 @Manipulator:All Finished! 100 Pkts Processed,Time elapsed: 354.7077798843384 FE_time: 1.3028541999999383

实验结果:

RuntimeError:expected scalar type Double but found Float

原因:tensor 的数据类型不正确

解决: 将数据类型转为 float32

并不是因为他 expected Double 你就要弄成 Double

查了一些博文说

tensor.to(torch.float32)

但其实这里面的 tensor 指的是 tensor 类型的数据

在你自己的代码上他可能是 x 可能是 data

这个要你自己多尝试

我的是 x.to(torch.float32)

torch 里有一些 Bug

还有包括 target 后面要接.long()

分享出来希望帮到大家

我也用 numpy 转了,真尼玛坑人,两个不一样,tensor 的数据格式,长的和 numpy 不一样

c++ @Manipulator: Initializing ... read 100 packets in malicious pcap feature vectors shape : (1, 64, 256) save successfully @Mani: Save configurations... <class 'int'> <class 'int'> @Mani: Begin processing... @Manipulator: Processing pkt ( 0 to 100 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 485.8573669026338 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 --@PSO:Step 1 Finished...Global best value: 485.8573669026338 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 --@PSO:Step 2 Finished...Global best value: 485.8573669026338 STA_all_feature_list.shape: (103, 64, 256) @Manipulator:All Finished! 100 Pkts Processed,Time elapsed: 105.79559588432312 FE_time: 1.2491151000000262

泪目!!!

老子成功了!

c++ --@PSO:Step 2 Finished...Global best value: 657.3402129797578 STA_all_feature_list.shape: (10055, 64, 256) @Manipulator:Time elapsed: 14053.927922964096 @Manipulator:statistics.pkl is updated... @Manipulator:All Finished! 10000 Pkts Processed,Time elapsed: 14061.498632669449 FE_time: 138.91846340000095

为什么用 10000 个效果不好呢

c++ Warning: under EXECUTE mode! test feature shape : (100000, 64, 256) test time = 0.9862239360809326 origin_benign : 4806 origin_malicious: 5194 craft_benign : 4814 craft_malicious: 5241 恶意包下降率 -0.0018332173048235534

有个严重的问题,在于我怎么迭代都没有用

Global best value: 286.4195683208163 不会改变

```c++ ----@Particle: Evaluate distance... 变异后流量的长度 106 原始流量长度 100 --@PSO:Step 3 Finished...Global best value: 231.52981927084232 STA_all_feature_list.shape: (1019, 64, 256) @Manipulator:Time elapsed: 3004.4800028800964 @Manipulator:statistics.pkl is updated... @Manipulator:All Finished! 1000 Pkts Processed,Time elapsed: 3004.9838354587555 FE_time: 26.390950299998956

```

c++ Warning: under EXECUTE mode! test feature shape : (100000, 64, 256) test time = 0.18503451347351074 origin_benign : 562 origin_malicious: 438 craft_benign : 573 craft_malicious: 446 PDR -0.0182648401826484

为什么效果不好

效果不好的原因:

而我的全是 0,就是除了新增的包,原始包内容是不变的?

为什么呢

ics_time,

cur_end_time,\

STA_best_X,

STA_best_feature,STA_best_pktList,STA_gbl_dis,STA_avg_dis,STA_best_all_feature,fe_time\

c++ D: \1111\MyTrafficManiputor>python main.py -m dataPGA/t1000.pcap -b dataPGA/mimic_set.npy @Manipulator: Initializing ... read 1000 packets in malicious pcap @Mani: Save configurations... <class 'int'> <class 'int'> @Mani: Begin processing... @Manipulator: Processing pkt ( 0 to 100 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 485.8573669026338 STA_feature_list.shape: (100, 64, 256) @Manipulator: Processing pkt ( 100 to 200 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 106 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 593.8675307430922 STA_feature_list.shape: (200, 64, 256) @Manipulator: Processing pkt ( 200 to 300 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 108 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 47.36084085451695 STA_feature_list.shape: (300, 64, 256) @Manipulator: Processing pkt ( 300 to 400 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 106 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 108 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 197.82631779265958 STA_feature_list.shape: (400, 64, 256) @Manipulator: Processing pkt ( 400 to 500 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 108 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 123.25356683631604 STA_feature_list.shape: (500, 64, 256) @Manipulator: Processing pkt ( 500 to 600 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 108 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 283.9442696869444 STA_feature_list.shape: (600, 64, 256) @Manipulator: Processing pkt ( 600 to 700 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 286.4195683208163 STA_feature_list.shape: (700, 64, 256) @Manipulator: Processing pkt ( 700 to 800 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 106 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 107 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 108 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 357.00435757113564 STA_feature_list.shape: (800, 64, 256) @Manipulator: Processing pkt ( 800 to 900 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 351.6456913004583 STA_feature_list.shape: (900, 64, 256) @Manipulator: Processing pkt ( 900 to 1000 ) ... @Manipulator: Create PSO ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 103 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 102 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 100 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 105 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 101 原始流量长度 100 ----@Particle: Evaluate distance... 变异后流量的长度 104 原始流量长度 100 --@PSO:Step 0 Finished...Global best value: 231.52981927084232 STA_feature_list.shape: (1000, 64, 256) @Manipulator:Time elapsed: 806.9346022605896 @Manipulator:statistics.pkl is updated... @Manipulator:All Finished! 1000 Pkts Processed,Time elapsed: 807.45871925354 FE_time: 8.423769400000257

攻击结果不怎么好,发现对于原来的包没办法降,原因应该是和字节编码不看重 mtu\time\协议有关系,不太好攻击

现在猜想,那三个量的变化对字节编码来说不那么明显

那么现在来看别的数据集

是不是也这样呢?

确实,为了验证猜想,我用 afterImage 提取了一下:

发现

还是有区别的

但是用字节编码,啥区别也没有了

结论是两个一样

```c++ dst : DestMACField = '64:f6:9d:19:6a:52' ('None') src : SourceMACField = '88:e0:f3:7a:66:f0' ('None') type : XShortEnumField = 2048 ('36864') -- version : BitField (4 bits) = 4 ('4') ihl : BitField (4 bits) = 5 ('None') tos : XByteField = 0 ('0') len : ShortField = 32 ('None') id : ShortField = 64226 ('1') flags : FlagsField = (' ') frag : BitField (13 bits) = 0 ('0') ttl : ByteField = 59 ('64') proto : ByteEnumField = 1 ('0') chksum : XShortField = 28337 ('None') src : SourceIPField = '203.179.179.237' ('None') dst : DestIPField = '108.195.233.228' ('None') options : PacketListField = [] ('[]') -- type : ByteEnumField = 8 ('8') code : MultiEnumField (Depends on 8) = 0 ('0') chksum : XShortField = 16576 ('None') id : XShortField (Cond) = 41079 ('0') seq : XShortField (Cond) = 4568 ('0') ts_ori : ICMPTimeStampField (Cond) = None ('50788887') ts_rx : ICMPTimeStampField (Cond) = None ('50788887') ts_tx : ICMPTimeStampField (Cond) = None ('50788887') gw : IPField (Cond) = None ("'0.0.0.0'") ptr : ByteField (Cond) = None ('0') reserved : ByteField (Cond) = None ('0') length : ByteField (Cond) = None ('0') addr_mask : IPField (Cond) = None ("'0.0.0.0'") nexthopmtu : ShortField (Cond) = None ('0') unused : MultipleTypeField (ShortField, IntField, StrFixedLenField) = b'' ("b''")

```

参考文献

  • 轻量级分布式虚假信息爬虫的设计与实现(辽宁大学·韩昱)
  • 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
  • 基于双向时间卷积和图注意力网络的恶意流量检测方法研究(江苏大学·吕天翔)
  • 基于通用中间表示的脚本语言漏洞静态挖掘技术(哈尔滨工业大学·王一航)
  • 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
  • 数据驱动的物联网安全威胁检测与建模(战略支援部队信息工程大学·杨威超)
  • 基于特征注入的XSS漏洞检测模型研究(兰州理工大学·张伟伟)
  • 基于深度学习的验证码识别技术(大连交通大学·慕亚东)
  • 审查规避类加密流量恶意性检测(西安电子科技大学·邵佳杰)
  • 基于动静态结合的网页恶意脚本检测技术研究(上海交通大学·宋寅)
  • 轻量级分布式虚假信息爬虫的设计与实现(辽宁大学·韩昱)
  • 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
  • 基于图注意力机制的攻击路径预测技术研究(广州大学·马丽婷)
  • 数据驱动的物联网安全威胁检测与建模(战略支援部队信息工程大学·杨威超)
  • 基于特征注入的XSS漏洞检测模型研究(兰州理工大学·张伟伟)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设导航 ,原文地址:https://m.bishedaima.com/yuanma/36138.html

相关推荐

发表回复

登录后才能评论