《Web安全之机器学习入门》一 3.2 数据集

简介: 本节书摘来自华章出版社《Web安全之机器学习入门》一 书中的第3章,第3.2节,作者:刘焱,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 数据集

数据集合和算法就像黄油和面包一样缺一不可,很多时候数据比算法还要重要。本书的例子涉及的数据主要来自多年搜集的开源数据集合以及部分脱敏的测试数据。

3.2.1 KDD 99数据

KDD是知识发现与数据挖掘(Knowledge Discovery and Data Mining)的简称,KDD CUP是由ACM组织的年度竞赛如图3-1所示。KDD 99 数据集就是KDD竞赛在1999年举行时采用的数据集。

screenshot

1998年美国国防部高级研究计划局(DARPA)在MIT林肯实验室进行了一个入侵检测评估项目。林肯实验室建立了模拟美国空军局域网的一个网络环境,收集了9周的网络连接和系统审计数据,仿真各种用户类型、各种不同的网络流量和攻击手段,使它就像一个真实的网络环境。一个网络连接定义为:在某个时间内从开始到结束的TCP数据包序列,并且在这段时间内,数据在预定义的协议下从源IP地址到目的IP地址的传递。每个网络连接被标记为正常(normal)或异常(attack),异常类型被细分为4大类共39种攻击类型,其中22种攻击类型出现在训练集中,另有17种未知攻击类型出现在测试集中,见表3-2。
screenshot

随后来自哥伦比亚大学的Sal Stolfo 教授和来自北卡罗莱纳州立大学的 Wenke Lee 教授采用数据挖掘等技术对以上数据集进行特征分析和数据预处理,形成了一个新的数据集。该数据集用于1999年举行的KDD竞赛中,成为著名的KDD 99数据集。虽然年代有些久远,但KDD99数据集仍然是网络入侵检测领域的权威测试集,为基于计算智能的网络入侵检测研究奠定基础。
KDD99数据集中每个连接用41个特征来描述:

0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,snmpgetattack.

上面是数据集中的3条记录,以CSV格式写成,加上最后的标记(label),一共有42项,其中前41项特征分为4大类。
TCP连接基本特征(见表3-3),基本连接特征包含了一些连接的基本属性,如连续时间、协议类型、传送的字节数等。
TCP连接的内容特征,见表3-4。
基于时间的网络流量统计特征,见表3-5。
基于主机的网络流量统计特征,见表3-6。
screenshot

screenshot
screenshot

screenshot
screenshot

3.2.2 HTTP DATASET CSIC 2010

HTTP DATASET CSIC 2010包含大量标注过的针对Web服务的36 000个正常请求以及25 000个攻击请求,攻击类型包括sql注入、缓冲区溢出、信息泄露、文件包含、xss等,被广泛用于WAF类产品的功能评测。
正常请求格式如图3-2所示。

screenshot

攻击请求格式如图3-3所示。

3.2.3 SEA数据集

2001年Schonlau等人第一次将内部攻击者分类为“叛徒”(Traitor)与“伪装者”(Masquerader),其中“叛徒”指攻击者来源于组织内部,本身是内部合法用户;而“伪装者”指外部攻击者窃取了内部合法用户的身份凭证,从而利用内部用户身份实施内部攻击。随后该团队构造了一个公开的检测伪装者攻击的数据集SEA,该数据集被广泛用于内部伪装者威胁检测研究。
SEA数据集涵盖70多个UNIX系统用户的行为日志,这些数据来自于UNIX系统acct机制记录的用户使用的命令。SEA数据集中每个用户都采集了15 000条命令,从用户集合中随机抽取50个用户作为正常用户,剩余用户的命令块中随机插入模拟命令作为内部伪装者攻击数据。SEA数据集中的用户日志类似于下面的命令序列:
screenshot

每个用户的数据按照每100个命令为一块,分为150个块,前三分之一数据块用作训练该用户正常行为模型,剩余三分之二数据块随机插入了测试用的恶意数据。SEA数据集中恶意数据的分布具有统计规律,任意给定一个测试集命令块,其中含有恶意指令的概率为1%;而当一个命令块中含有恶意指令,则后续命令块也含有恶意指令的概率达到80%。可以看出SEA中的数据集将连续数据块看作一个会话,只能模拟连续会话关联的攻击行为;此外由于缺乏用户详细个人信息(职位、权限等)、数据维度单一(仅有命令信息)以及构造性(恶意数据由人工模拟)等因素,数据集在内部威胁检测研究中作用有限。
Schonlau在他的个人网站上发布了SEA数据集,见图3-4。

3.2.4 ADFA-LD数据集

ADFA-LD数据集是澳大利亚国防学院对外发布的一套主机级入侵检测系统的数据集合,被广泛应用于入侵检测类产品的测试。该数据集包括Linux和Windows,记录了系统调用数据,Gideon Creech是这个项目的负责人,见图3-5。

screenshot

screenshot

ADFA-LD数据集已经将各类系统调用完成了特征化,并针对攻击类型进行了标注,各种攻击类型列举见表3-7。
screenshot

ADFA-LD数据集的每个数据文件都独立记录了一段时间内的系统调用顺序,每个系统调用都用数字编号,对应的编号举例如下:

#define __NR_io_setup 0 __SYSCALL(__NR_io_setup, sys_io_setup)
#define __NR_io_destroy 1 __SYSCALL(__NR_io_destroy, sys_io_destroy)
#define __NR_io_submit 2 __SYSCALL(__NR_io_submit, sys_io_submit)
#define __NR_io_cancel 3 __SYSCALL(__NR_io_cancel, sys_io_cancel)
#define __NR_io_getevents 4 __SYSCALL(__NR_io_getevents, sys_io_getevents)
#define __NR_setxattr 5 __SYSCALL(__NR_setxattr, sys_setxattr)
#define __NR_lsetxattr 6 __SYSCALL(__NR_lsetxattr, sys_lsetxattr)

3.2.5 Alexa域名数据

Alexa是一家专门发布网站世界排名的网站。以搜索引擎起家的Alexa创建于1996年4月(美国),目的是让互联网网友在分享虚拟世界资源的同时,更多地参与互联网资源的组织。Alexa每天在网上搜集超过1 000GB的信息,不仅给出多达几十亿的网址链接,而且为其中的每一个网站进行了排名。可以说,Alexa是当前拥有URL数量最庞大、排名信息发布最详尽的网站。Alexa排名是常被引用的用来评价某一网站访问量的指标之一。事实上,Alexa排名是根据用户下载并安装了 Alexa Tools Bar 嵌入到IE、FireFox等浏览器,从而监控其访问的网站数据进行统计的,因此,其排名数据并不具有绝对的权威性。但其提供了包括综合排名、到访量排名、页面访问量排名等多个评价指标信息,且尚没有而且也很难有更科学、合理的评价参考。Alexa对外提供了全球排名TOP一百万的网站域名的下载,文件是CSV格式,以排名、域名组成,如图3-6所示。

screenshot

3.2.6 Scikit-Learn数据集

Scikit-Learn自带的数据集合也十分经典,其中最常见的是iris数据集。
iris中文指鸢尾植物,这里存储了其萼片和花瓣的长宽,一共4个属性,鸢尾植物又分3类。与之相对,iris里有2个属性:iris.data和iris.target。data里是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,一共采样了150条记录。target是一个数组,存储了data中每条记录属于哪一类鸢尾植物,所以数组的长度是150,数组元素的值因为共有3类鸢尾植物,所以不同值只有3个。

3.2.7 MNIST数据集

MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,如图3-7所示。

screenshot

MNIST也包含每一张图片对应的标签,告诉我们这是数字几。比如,图3-7中4张图片的标签分别是5,0,4,1。数据集包括60 000个训练数据和10 000个测试数据。每一个MNIST数据单元由两部分组成:一张包含手写数字的图片和一个对应的标签。每一张图片包含28×28个像素点,可以把这个数组展开成一个向量,长度是28×28 = 784。MNIST数据集详解见表3-8。
screenshot

文件读取方式为:

import pickle
import gzip
def load_data():
    with gzip.open('./mnist.pkl.gz') as fp:
        training_data, valid_data, test_data = pickle.load(fp)
    return training_data, valid_data, test_data

3.2.8 Movie Review Data

Movie Review Data数据集包含1 000 条正面的评论和1 000条负面评论,被广泛应用于文本分类,尤其是恶意评论识别方面。本书使用其最新的版本,polarity dataset v2.0。其官网如图3-9所示。

screenshot

Movie Review Data数据集记录的都是原始评论数据,全部为英文,文本内容举例如下:

films adapted from comic books have had plenty of success , whether they're about superheroes ( batman , superman , spawn ) , or geared toward kids ( casper ) or the arthouse crowd ( ghost world ) , but there's never really been a comic book like from hell before . 
for starters , it was created by alan moore ( and eddie campbell ) , who brought the medium to a whole new level in the mid '80s with a 12-part series called the watchmen . 
the film , however , is all good . 
2 : 00 - r for strong violence/gore , sexuality , language and drug content 

文件包含在neg和pos两个文件夹下面,见图3-10,分别代表正面和负面评价。

screenshot

3.2.9 SpamBase数据集

SpamBase是入门级的垃圾邮件分类训练集,其主页如图3-11所示。

screenshot

SpamBase的数据不是原始的邮件内容而是已经特征化的数据,对应的特征是统计的关键字以及特殊符号的词频,一共58个属性,其中最后一个是垃圾邮件的标记位。
特征属性举例如图3-12所示。

screenshot

数据来源为4601封邮件,其中1813封为垃圾邮件,数据内容举例如下:

0,0.64,0.64,0,0.32,0,0,0,0,0,0,0.64,0,0,0,0.32,0,1.29,1.93,0,0.96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.778,0,0,3.756,61,278,1 0.21,0.28,0.5,0,0.14,0.28,0.21,0.07,0,0.94,0.21,0.79,0.65,0.21,0.14,0.14,0.07,0.28,3.47,0,1.59,0,0.43,0.43,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0.132,0,0.372,0.18,0.048,5.114,101,1028,1

3.2.10 Enron数据集

Enron(安然公司)在2001年宣告破产之前,拥有约21 000名雇员,曾是世界上最大的电力、天然气以及电讯公司之一,2000年披露的营业额达1010亿美元之巨。公司连续六年被财富杂志评选为“美国最具创新精神公司”,然而真正使Enron公司在全世界声名大噪的,却是这个拥有上千亿资产的公司2002年在几周内破产,以及持续多年精心策划、乃至制度化系统化的财务造假丑闻。Enron欧洲分公司于2001年11月30日申请破产,美国本部于2日后同样申请破产保护。但在其破产前的资产规模为498亿美元,并有312亿的沉重债务。过度膨胀的快速发展使其无法应对经济环境的逆转,从而导致无法经营运作状况的恶化,最终以破产结束企业。机器学习领域使用Enron公司的归档邮件来研究文档分类、词性标注、垃圾邮件识别等,由于Enron的邮件都是真实环境下的真实邮件,非常具有实际意义。本书使用的Enron数据集是经过人工标注过的正常邮件和垃圾邮件(见图3-13),属于狭义的Enron数据集合,广义的Enron数据集指全量真实且未被标记的Enron公司归档邮件。
Enron数据集合使用不同文件夹区分正常邮件和垃圾邮件,如图3-14所示。
正常邮件内容举例如下:

Subject: christmas baskets
the christmas baskets have been ordered .
we have ordered several baskets .
individual earth - sat freeze - notis
smith barney group baskets
rodney keys matt rodgers charlie
notis jon davis move
team
phillip randle chris hyde
harvey
freese
faclities

screenshot

垃圾邮件内容举例如下:

Subject: fw : this is the solution i mentioned lsc
oo
thank you ,
your email address was obtained from a purchased list ,
reference # 2020 mid = 3300 . if you wish to unsubscribe
from this list , please click here and enter
your name into the remove box . if you have previously unsubscribed
and are still receiving this message , you may email our abuse
control center , or call 1 - 888 - 763 - 2497 , or write us at : nospam ,
6484 coral way , miami , fl , 33155 " . 2002
web credit inc . all rights reserved .
相关文章
|
25天前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
26天前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
23 6
网易web安全工程师进阶版课程
|
21天前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
53 1
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
61 1
|
4天前
|
域名解析 Linux PHP
[CTF]ctfshow web入门
[CTF]ctfshow web入门
12 0
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
8天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
9天前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
10天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【4月更文挑战第9天】本文介绍了使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先,简述了机器学习的基本概念和类型。接着,展示了如何安装Python和Scikit-learn,加载与处理数据,选择模型进行训练,以及评估模型性能。通过本文,读者可了解机器学习入门步骤,并借助Python和Scikit-learn开始实践。
|
26天前
|
机器学习/深度学习 前端开发 算法
利用机器学习优化Web前端性能的探索与实践
本文将介绍如何利用机器学习技术来优化Web前端性能,探讨机器学习在前端开发中的应用,以及通过实际案例展示机器学习算法对前端性能优化的效果。通过结合前端技术和机器学习,提升Web应用的用户体验和性能表现。