基于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 =
```
参考文献
- 轻量级分布式虚假信息爬虫的设计与实现(辽宁大学·韩昱)
- 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
- 基于双向时间卷积和图注意力网络的恶意流量检测方法研究(江苏大学·吕天翔)
- 基于通用中间表示的脚本语言漏洞静态挖掘技术(哈尔滨工业大学·王一航)
- 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
- 数据驱动的物联网安全威胁检测与建模(战略支援部队信息工程大学·杨威超)
- 基于特征注入的XSS漏洞检测模型研究(兰州理工大学·张伟伟)
- 基于深度学习的验证码识别技术(大连交通大学·慕亚东)
- 审查规避类加密流量恶意性检测(西安电子科技大学·邵佳杰)
- 基于动静态结合的网页恶意脚本检测技术研究(上海交通大学·宋寅)
- 轻量级分布式虚假信息爬虫的设计与实现(辽宁大学·韩昱)
- 基于J2EE权限管理系统平台设计与实现(吉林大学·任翔)
- 基于图注意力机制的攻击路径预测技术研究(广州大学·马丽婷)
- 数据驱动的物联网安全威胁检测与建模(战略支援部队信息工程大学·杨威超)
- 基于特征注入的XSS漏洞检测模型研究(兰州理工大学·张伟伟)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设导航 ,原文地址:https://bishedaima.com/yuanma/36138.html