【异常检测】基于常用数据集LANL和CERT的异常检测源代码(https://github.com/pnnl/safekit)解读

本文介绍了基于LANL和CERT数据集的异常检测源代码,主要关注`safekit`库的代码结构与重要文件解读,包括LSTM和DNN模型的实现。`examples`文件夹包含实践代码,如dnn_agg.ipynb用于DNN训练,而simple_lm.ipynb涉及LSTM模型。`test`文件夹包含测试代码,如agg_tests.py和lanl_lm_tests.py。文章还讨论了模型训练过程和损失函数计算。
摘要由CSDN通过智能技术生成

写在前面

最近在做一个异常检测项目,采用LANL数据集进行实践,找到了一份基于LANL数据集和CERT数据集的异常检测实践源码。花了一些时间研究源代码,这里把研究的结果记录下来。

源代码

使用的源代码链接为:https://github.com/pnnl/safekit。基于这篇源代码有两篇异常检测论文,如果有兴趣的也可以去下载阅读。一篇是Recurrent Neural Network Language Models for Open Vocabulary Event-Level Cyber Anomaly Detection,另一篇是Deep Learning for Unsupervised Insider Threat Detection in Structured Cybersecurity Data Streams。

代码结构

代码结构如下:
|—data_examples 存放原始LANL和CERT数据集处理后得到的特征值数据
      |—cert 存放cert处理后得到的特征
      |—lanl 存放lanl处理后得到的特征
           |—agg_feats 应该是对应DNN模型的特征
           |—lm_feats 应该是对应LSTM模型的特征
|—docs 这部分目前还没看
|—examples 存放了几个DNN和LSTM的实践ipynb代码
      |—dnn_agg.ipynb 基于LANL的DNN实践代码
      |—LANL_LM_data.ipynb 对于LANL原始数据集的数据处理
      |—simple_lm.ipynb 基于LANL的LSTM实践代码
|—safekit 存放特征提取,模型的代码等
      |—features 对于两个数据集的特征提取代码
      |—models 原始的dnn,孤立森林等算法的模型实现代码
|—test 基于两个数据集的LSTM和DNN实践测试代码
      |—agg_test.py DNN实践代码
      |—lanl_lm_tests.py LSTM实践代码
|—setup.py 用于配置代码环境,安装需要的包等

重要文件解读

examples文件夹

(1)dnn_agg.ipynb
首先是导入LANL数据集对应的特征json文件lanl_count_in_count_out_agg.json,然后得到事件计数特征值在特征向量中对应的起始位置index,用datastart_index表示。

dataspecs = json.load(open('../safekit/features/specs/agg/lanl_count_in_count_out_agg.json', 'r'))
datastart_index = dataspecs['counts']['index'][0]

我们来看一下lanl_count_in_count_out_agg.json文件中有些什么
num_features是特征向量的维度,也就是特征数目;time是发生的时间;user是用户标识,这里有30000个用户class类别;redteam是代表是否为redteam事件;counts中就是事件计数值。加起来就是137维的特征向量。

{
   
  "num_features": 137,
  "time": {
   
	"index": [0],
  	"num_classes": 0,
    "meta": 1,
    "feature": 0,
    "target": 0 },
  "user": {
   
	"index": [1],
    "num_classes": 30000,
    "meta": 1,
    "feature": 0,
    "target": 0 },
  "redteam": {
   
	"index": [2],
    "num_classes": 0,
    "meta": 1,
    "feature": 0, 
    "target": 0
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值