基于系统调用的系统异常检测的可用数据集总结

因为我主要研究的是通过监控系统调用进而判断系统是否异常,所以最近在整理关于系统异常检测可用的数据集。目前搜集到的数据集主要有UNM,ADFA等。

(一)UNM Dataset

  • UNM数据集是新墨西哥大学为了研究入侵免疫系统而采集的数据集。该网站的主页是这样的:

  下载的地址是:https://www.cs.unm.edu/~immsec/systemcalls.htm  

  UNM数据集主要包含在活跃进程下系统调用的若干数据集。 这些进程主要包括守护进程以及那些不是守护进程的应用进程(这些应用程序在大小和复杂程度上分布广泛),还包括了不同种类的入侵(缓冲区溢出,符号链接攻击,木马程序),其中也包括了特权程序,因为这些程序也是可以引起潜在的严重威胁。

  正常数据有”静态“和”动态“之分。静态追踪通过运行准备好的脚本,进而在成品环境下收集数据。选择程序选项完全是为了执行程序,而不是为了满足任何实际用户的要求。实时正常数据是在计算机系统成品正常使用期间收集的程序的跟踪。

  在某些情况下,我们从多个位置和/或多个版本的程序中获取同一程序的数据。每一个都是不同的数据集;来自一个集合的正常跟踪可能与来自另一个集合的正常跟踪大不相同。在一个位置或程序的某个版本收集的入侵不应该与来自不同集合的正常数据进行比较。

  每个跟踪是单个进程从执行开始到结束发出的系统调用的列表。由于程序复杂性的差异以及一些跟踪是守护进程而另一些不是,所以跟踪长度差异很大。

  下面是每个程序数据集描述的链接。每个跟踪文件(*.int)列出一对数字,每行一对。一对中的第一个数字是执行进程的PID,第二个数字是表示系统调用的系统调用号。注意,在一个文件中可能有多个进程,它们可能是交错的。

  系统调用号和实际系统调用名称之间的映射在文件中系统内核文件中给出。由于使用了各种跟踪包和不同型号的操作系统,所以并非所有程序都使用相同的映射文件。单独的程序页指示哪种映射是适当的。每个映射文件只是一个系统调用名称列表,其中每个名称的行号表示用于该系统调用的编号。行号从0开始。

  我们使用了一种叫做“序列时延嵌入”(stide)的方法来建模数据。在训练阶段,stide构建一个数据库,其中包含跟踪中出现的所有预定固定长度的惟一的、连续的系统调用序列。在测试期间,stide将新跟踪中的序列与数据库中的序列进行比较,并报告一个异常度量,指出新跟踪与常规训练数据的差异有多大。

  • DRAFT: User Documentation for the STIDE software package

  目前该方法已被新墨西哥大学的学生Steve Hofmeyr开发成一款软件。他是新墨西哥大学计算机科学系的一名研究生,是将免疫学的思想应用于计算机安全问题研究项目的一部分。特别是,STIDE是通过识别入侵时可能创建的异常的系统调用序列来帮助检测入侵的。在这种情况下,被考虑的时间序列由单个进程进行的系统调用组成。我们首先记录正常行为模型,然后使用STIDE将连续的系统调用流划分为给定长度的序列,并将他们存储在数据库中。随后,当我们想知道是否攻击了同一个程序的另一个实例时,我们记录进程生成的系统滴用,并将使用STIDE将系统调用的结果序列与正常序列的数据库进行比较。

  实际上,因为可用系统调用追踪机制,对我们来说,更容易记录运行在同一时间的若干进程的系统调用。STIDE就是为了处理这种情况而设计的。它可以同时加工多个交织的时间序列,仅仅需要在输入流中每个元素之前都有一个标识符指定它来自哪个系列。在STIDE中,这个标识符是进程ID。

  STIDE分析新数据与现有数据库一致性信息最简单的方法是报告异常序列的数量,即,表示输入中不存在于数据库中的序列的数量。

  它还可以报告最小汉明距离(轻量级)。给定一个来自数据流的序列和一个来自数据库的序列,我们可以计算不同条目的数量得到两个序列之间的汉明距离。输入序列与数据库中所有序列之间的最小汉明距离就是输入序列的最小汉明距离。

  最后一个选项是,他可以报告一个“本地帧数”。当一个过程被利用时,可能会有一个短时间内异常序列的百分比要高得多。虽然在长期运行过程中出现的10个异常可能不会引起关注,但在这30个序列中出现的10个异常可能会引起关注。因此,观察有多少异常是有用的。序列的数量被认为是“本地”的另一个称为大小的局部性帧。在这种模式下,STIDE报告它在任何局域框架中发现额罪大量的一异常。

  输入数据由待分析的时间序列组成。它是从标准输入读取的。它应该是一系列正整数对,每行一对,其中第一个整数标识数据流,第二个整数是数据流的元素。数据流的末尾可以由文件的末尾指定,也可以由数字-1的出现指定为流标识符。在我们的工作中,流标识符是进程标识号(PID),数据流的元素是系统调用号。

 (二)FADA Dataset

  Github上发现的项目,使用LSTM长短期记忆网络对系统进行基于系统调用的异常检测的例子。ADFA数据集是澳大利亚国防学院(缩写为ADFA)对外发布的一套主机级入侵检测系统的数据集合,被广泛应用于入侵检测类产品的测试。数据集内已经将各类系统调用完成了特征化,并针对攻击类型进行了标注。该数据集包括Linux(ADFA-LD)和Windows(ADFA-WD)两个OS平台,分别记录了各类系统调用次序。

  ADFA数据集官方介绍及下载地址:https://www.unsw.adfa.edu.au/australian-centre-for-cyber-security/cybersecurity/ADFA-IDS-Datasets/  

  本文主要对其中的ADFA-LD数据集进行介绍。

  • ADFA-LD

  主机配置信息:

  1. 操作系统:Ubuntu Linux version 11.04
  2. Apache 2.2.17
  3. PHP 5.3.5
  4. FTP、SSH、MySQL14.14使用默认端口开启服务。
  5. TikiWiki 8.1(一个基于web的协同工具)
    • 选择这个版本的原因是因为它有一个已知的远程php代码注入漏洞,从而可以让我们发起基于web的攻击。

  这个配置合理概括了当前(ADFA数据集是2012年的一个数据集)市面上最常见的linux local服务器——提供文件共享、数据库服务、远程连接和web服务器的功能,同时也有一些小型的残余漏洞。  在制作这个数据集的时候,配置人员已经非常小心仔细地考虑了渗透测试人员和黑客通常采用的方法,并在目标系统的脆弱性与现实主义之间进行了微妙的权衡。

  包含的攻击类型有:

  那么为什么设置这些攻击呢?

  密码爆破(FTP AND SSH):前两个攻击类型代表了攻击方尝试在开放服务上暴力猜解密码的系统序列。因为FTP和SSH是常用的服务,如果暴露于外部来源,它们就会经常受到攻击。 因此,在这个数据集也包含了这样的攻击类型。

  添加新的超级用户:在Linux系统中进行提权的常见方法之一。在该数据集中使用了客户端侧攻击来实现添加新用户的操作。攻击者通过使用Metasploit将一个payload编码为Linux可执行文件,然后在模拟社会工程攻击中将这个可执行文件上传到服务器。然后攻击者就可以使用诸如包含在本地文件和模拟社会工程等技术来远程或本地触发这个注入。

  Java-Meterpreter:Meterpreter是免费的Metasploit框架所独有的自定义的有效载荷。Metasploit是最受欢迎的开源黑客工具包,被安全界的人士广泛使用。Meterpreter是增强的功能命令shell,极大地促进了目标系统的远程妥协。TiKiWiKi漏洞用于上传Java Meterpreter有效载荷的副本,该副本在执行时启动了与攻击者计算机的反向TCP连接。一旦shel建立,攻击者就可以在主机上执行各种操作。类似地,使用社会工程等操作上传有效载荷的linux可执行版本,也可以进行各种操作,这代表了Java版本的不同攻击。

  C100 WebShell:使用基于PHP的远程文件包含漏洞来上传C100 WebShell,后者用于进一步破坏主机系统并升级权限。C100 WebShell是复杂的PHP代码。通过web浏览器为攻击者提供了非法的GUI界面,从而允许操作底层的操作系统。

  这种攻击的集合代表了中级技能水平的黑客可能采用的攻击方式。它利用所有可用的攻击途径,从低级密码猜测到社会社会工程和基于web的攻击到远程攻击,这是代表性的做法, 为IDS评估提供了现代化的攻击手段。

参考文献:

[1] https://baijiahao.baidu.com/s?id=1595426742680707340&wfr=spider&for=pc

[2] https://www.researchgate.net/post/What_are_anomaly_detection_benchmark_datasets

[3] https://www.cs.unm.edu/~immsec/systemcalls.htm

[4] https://www.zuozuovera.cn/archives/918/

原文地址:https://www.cnblogs.com/xlwang1995/p/10014922.html

时间: 2024-11-07 04:28:34

基于系统调用的系统异常检测的可用数据集总结的相关文章

基于机器学习的web异常检测

基于机器学习的web异常检测 Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活的黑客面前,很容易被绕过,且基于以往知识的规则集难以应对0day攻击:另一方面,攻防对抗水涨船高,防守方规则的构造和维护门槛高.成本大. 基于机器学习技术的新一代web入侵检测技术有望弥补传统规则集方法的不足,为web对抗的防守端带来新的发展和突破.机器学习方法能够基于大量数据进行

异常检测(2)——基于概率统计的异常检测(1)

某个工厂生产了一批手机屏幕,为了评判手机屏幕的质量是否达到标准,质检员需要收集每个样本的若干项指标,比如大小.质量.光泽度等,根据这些指标进行打分,最后判断是否合格.现在为了提高效率,工厂决定使用智能检测进行第一步筛选,质检员只需要重点检测被系统判定为“不合格”的样本. 智能检测程序需要根据大量样本训练一个函数模型,也许我们的第一个想法是像监督学习那样,为样本打上“正常”和“异常”的标签,然后通过分类算法训练模型.假设xtest是数据样本,predict(xtest)来判断xtest是否是合格样

异常检测及欺诈

一.无监督异常检测模型   1.在线流数据异常检测(iforest隔离森林算法) 该方法的主要思想是,通过随机选定样本属性及其值将样本空间进行随机划分,分割的过程可以看成类似于随机森林中树建立的过程,对于新的样本,基于建立的隔离树求其分割深度,深度值越小,表明越容易被隔离,也就意味着异常的概率越大:反之则为正常样本.该方法是基于异常数据"少且不同"的特征,来采用随机隔离的思想设计异常检查. 该方法的主要优点是,在构建初始模型时不需要任何实际的数据,从而能快速构建初始探测模型,它符合数据

Kafka+Flink 实现准实时异常检测系统

1.背景介绍异常检测可以定义为"基于行动者(人或机器)的行为是否正常作出决策",这项技术可以应用于非常多的行业中,比如金融场景中做交易检测.贷款检测:工业场景中做生产线预警:安防场景做***检测等等. 根据业务要求的不同,流计算在其中扮演着不同的角色:既可以做在线的欺诈检测,也可以做决策后近实时的结果分析.全局预警与规则调整等. 本文先介绍一种准实时的异常检测系统. 所谓准实时,即要求延迟在100ms以内.比如一家银行要做一个实时的交易检测,判断每笔交易是否是正常交易:如果用户的用户名

如何开发一个异常检测系统:如何评价一个异常检测算法

利用数值来评价一个异常检测算法的重要性 使用实数评价法很重要,当你用某个算法来开发一个具体的机器学习应用时,你常常需要做出很多决定,如选择什么样的特征等等,如果你能找到如何来评价算法,直接返回一个实数来告诉你算法的好坏,那样你做决定就会更容易一些.如现在有一个特征,要不要将这个特征考虑进来?如果你带上这个特征运行你的算法,再去掉这个特征运行你的算法,得到返回的实数,这个实数直接告诉你加上这个特征算法是变好了还是变坏了,这样你就有一种更简单的算法来确定是否要加上这个特征. 为了更快地开发出一个异常

【R笔记】使用R语言进行异常检测

本文转载自cador<使用R语言进行异常检测> 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局部异常因子)进行异常检测 (3)通过聚类进行异常检测 (4)对时间序列进行异常检测 一.单变量异常检测 本部分展示了一个单变量异常检测的例子,并且演示了如何将这种方法应用在多元数据上.在该例中,单变量异常检测通过boxplot.stats()函数实现,并且返回产生箱线图的统计量.在返回的结果中,有一个部分是o

技术实战:基于 MHA 方式实现 MySQL 的高可用(转)

转自:http://os.51cto.com/art/201307/401702_all.htm MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据.本文分享了基于 MHA 方式实现 Mysql 的高可用的技术实战,希望对您有所帮助. AD:51CTO网+ 首届中国APP创新评选大赛火热招募中…… 数据的重要性对于人们来说重要程度不说自明,在信息时代,数据有着比人们更大的力量,我们也知道最近的斯诺登事件,军事专家对于他掌握的数据给出的评价是,相当于美军十个重装

基于Keepalived实现LVS双主高可用集群

前言 前面说过基于heartbeat的LVS高可用方案,今天带来另一种解决方案:基于Keepalived实现LVS双主高可用集群.什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生.本文将详细讲述Keepalived工作原理及高可用解决方案的实现. 相关介绍 Keepalived简介 Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余

ng机器学习视频笔记(十三) ——异常检测与高斯密度估计

ng机器学习视频笔记(十三) --异常检测与高斯密度估计 (转载请附上本文链接--linhxx) 一.概述 异常检测(anomaly detection),主要用于检查对于某些场景下,是否存在异常内容.异常操作.异常状态等.异常检测,用到了一个密度估计算法(density estimation)--高斯分布(Gaussian distribution),又称正态分布(normal distribution). 该算法只用到了样本的特征值,不需要分类标签,故该算法是无监督学习算法 主要内容是,对于