作者:yueji0j1anke
首发于公号:剑客古月的安全屋
字数:726
阅读时间: 10min
声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。本文章内容纯属虚构,如遇巧合,纯属意外
目录
-
前言
-
数据集
-
加载、处理数据
-
数据可视化
-
构建模型
-
模型评估
-
特征性排序
-
模型预测
-
总结
0x00 前言
本着不一直进行枯燥理念乱糊的原则,本期出一期算法应用实践,通过对网络流量数据的分析,提取攻击特征,并训练模型,提高模型识别攻击行为
0x01 数据集
拿了waf的六万多条数据,通过探针收集了12个变量
0x02 加载处理数据
importmatplotlib.pyplotasplt
importnumpyasnp
importpandasaspd
importseabornassns
sns.set(font='SimHei')
importwarnings
warnings.filterwarnings('ignore')
df = pd.read_csv('log2.csv')
df.head()
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
查看数据大小
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
查看数值型变量描述性统计
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
非数值型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
统计缺失值情况
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
统计重复值并删除
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
0x03 数据可视化
首先看看action的具体情况
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
将其转换成数值型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
然后直接看看相关因素
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
0x04 构建模型
看不出来太多相关,直接准备构造数据建立模型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
1.逻辑回归模型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
2.KNN模型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
3.决策树模型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
4.xgboost模型
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
综合四个模型下来,可以看到xgboost模型准确率最高
0x05 模型评估
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
可以看到0,1,2被分类的很好,3分类出错率蛮高。。
我们将其可视化
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
0x06 特征性排序
# 打印特征重要性评分
feat_labels = X_train.columns[0:]
importances = xgb.feature_importances_
indices = np.argsort(importances)[::-1]
index_list = []
value_list = []
forf, jinzip(range(X_train.shape[1]), indices):
index_list.append(feat_labels[j])
value_list.append(importances[j])
print(f+1, feat_labels[j], importances[j])
plt.figure(figsize=(10,6))
plt.barh(index_list[::-1], value_list[::-1])
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
可以看到持续时间占主导
0x07 模型预测
随便挑15条数据看看
![ai攻防应用-基于xgboost算法的waf异常行为识别 ai攻防应用-基于xgboost算法的waf异常行为识别]()
准确率还是蛮高。
0x08 总结
粗略构建了几个简单模型,更多还是基于行为阻断,可能后期还会涉及到比如说常见应用端口、ddos攻击识别、蜜罐攻击等等的模型构建,从而给出更加多元化的模型构建
原文始发于微信公众号(剑客古月的安全屋):ai攻防应用-基于xgboost算法的waf异常行为识别
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论