DARPA-TC-engagement5-theia部分数据格式分析

转换出来的jsons数据主要分为四大类:EventSubjectObjectPrincipal,分别代表系统事件、主体、客体和用户。各种大类中子类的数量,取决于CDM的版本。ShadeWatcher使用的是e3的数据,采用的是CDM18,而e5默认使用的是CDM20。相较于cdm18,发生了一些变化,主要是改变了一些字段,增加了一些类型。这些类型大多是系统调用,用于细化事件类型。本文以ShadeWatcher和转换出来的小样本数据为参考依据对数据格式进行分析,可能存在遗漏。json数据样例(只包含EVENT)可在我GitHub进行下载,或是参考之前的博客自行转换。DARPA TC-engagement5数据集解析为json格式输出到本地

image-20230809094825929

1. Event

e3数据集采用cdm18进行解析,Event一共有23种类型。ShadeWatcher采用了其中的19种类型,丢弃了4种类型EVENT_BOOTEVENT_MMAPEVENT_OTHEREVENT_MPROTECT。cdm20新增了五种,目测这几个类型的数据占比都不大。

syscallMap["EVENT_EXECUTE"] = SyscallType_t::Execve;
syscallMap["EVENT_CLONE"] = SyscallType_t::Clone;
syscallMap["EVENT_FORK"] = SyscallType_t::Clone;
syscallMap["EVENT_OPEN"] = SyscallType_t::Open;
syscallMap["EVENT_CLOSE"] = SyscallType_t::Close;
syscallMap["EVENT_CONNECT"] = SyscallType_t::Connect;
syscallMap["EVENT_UNLINK"] = SyscallType_t::Delete;
syscallMap["EVENT_READ"] = SyscallType_t::Read;
syscallMap["EVENT_WRITE"] = SyscallType_t::Write;
syscallMap["EVENT_RECVFROM"] = SyscallType_t::Recvfrom;
syscallMap["EVENT_SENDTO"] = SyscallType_t::Sendto;
syscallMap["EVENT_RECVMSG"] = SyscallType_t::Recvmsg;
syscallMap["EVENT_SENDMSG"] = SyscallType_t::Sendmsg;
syscallMap["EVENT_RENAME"] = SyscallType_t::Rename;
syscallMap["EVENT_READ_SOCKET_PARAMS"] = SyscallType_t::Recv;
syscallMap["EVENT_WRITE_SOCKET_PARAMS"] = SyscallType_t::Send;
syscallMap["EVENT_LOADLIBRARY"] = SyscallType_t::Load;
syscallMap["EVENT_CREATE_OBJECT"] = SyscallType_t::Create;
syscallMap["EVENT_UPDATE"] = SyscallType_t::Update;

一个数据样例如下所示:

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_EVENT","#":"会话号,shadewatcher采用了这个字段但是没有采用它的值,而是将一个图视为一个会话","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.Event": {"#":"第二个对象,update和rename事件会有两个对象(对应两条边),其余对象该字段为全0","predicateObject2": {"com.bbn.tc.schema.avro.cdm20.UUID": "00000000-0000-0000-0000-000000000000"},"predicateObjectPath": null,"subject": {"com.bbn.tc.schema.avro.cdm20.UUID": "2A266F68-012B-5E22-9CA7-575CE8BEE27C"},"programPoint": null,"properties": {"map": {}},"predicateObject": {"com.bbn.tc.schema.avro.cdm20.UUID": "B5AF11CE-7902-5F60-8E72-4ECB30FDAEDA"},"threadId": {"int": 1958},"predicateObject2Path": null,"type": "EVENT_READ","uuid": "FD4496E1-54A8-598C-9408-5E123500A8D4","size": {"long": 272},"timestampNanos": "1557235299707","names": null,"parameters": null,"#":"表示事件相对于同一执行线程中的其他事件的逻辑顺序","sequence": {"long": 1},"location": null}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2019-05-07T13:21:39.707Z"
}

2. Subject

Subject有且只有一种,那就是进程。

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_SUBJECT","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.Subject": {"privilegeLevel": null,"unitId": null,"#":"ppid是父进程的进程号,path为程序地址,其余字段为一些文件权限","properties": {"map": {"sgid": "1003","suid": "1003","egid": "1003","gid": "1003","uid": "1003","tgid": "1911","fsgid": "1003","fsuid": "1003","euid": "1003","path": "/usr/lib/gvfs/gvfs-afc-volume-monitor","ppid": "1"}},"iteration": null,"type": "SUBJECT_PROCESS","uuid": "C6A9DF04-D14A-57F2-97C3-3CBE2C0FF4FF","parentSubject": {"com.bbn.tc.schema.avro.cdm20.UUID": "DD56B598-9E74-58C3-B3E8-2C623780B8ED"},"importedLibraries": null,"#":"进程号","cid": 1912,"localPrincipal": {"com.bbn.tc.schema.avro.cdm20.UUID": "991869FF-5610-5CCB-9BA4-346353351B12"},"startTimestampNanos": {"long": 1557235386887758779},"count": null,"#":"内核启动参数,相当于是启动该进程的命令","cmdLine": {"string": "/usr/lib/gvfs/gvfs-afc-volume-monitor"},"exportedLibraries": null}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2023-08-08T02:36:47.351Z"
}

3. Object

object一共4种,分别为RECORD_MEMORY_OBJECTRECORD_IPC_OBJECTRECORD_FILE_OBJECTRECORD_NET_FLOW_OBJECT。ShadeWatcher中只采用了后两种。

3.1 memory_object

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_MEMORY_OBJECT","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.MemoryObject": {"pageNumber": null,"baseObject": {"epoch": null,"properties": {"map": {"rc": "0"}},"permission": null},"uuid": "B83AA80F-B1CD-5E10-B8A4-365281753277","memoryAddress": 139867157049344,"pageOffset": null,"size": {"long": 2327040}}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2023-08-08T02:36:40.315Z"
}

3.2 ipc_object

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_IPC_OBJECT","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.IpcObject": {"uuid1": null,"baseObject": {"epoch": null,"properties": {"map": {"path": "@/tmp/.X11-unix/X0"}},"permission": null},"type": "IPC_OBJECT_SOCKET_ABSTRACT","uuid": "B5AF11CE-7902-5F60-8E72-4ECB30FDAEDA","fd1": null,"uuid2": null,"fd2": null}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2023-08-08T02:36:40.327Z"
}

3.3 file_object

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_FILE_OBJECT","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.FileObject": {"fileDescriptor": null,"hashes": null,"peInfo": null,"localPrincipal": {"com.bbn.tc.schema.avro.cdm20.UUID": "B6C54489-38A0-5F50-A60A-FD8D76219CAE"},"baseObject": {"epoch": null,"properties": {"map": {"uid": "0","inode": "0x520ca3","mode": "0","dev": "0xfd00001","#":"少部分文件对象不具有这个字段","filename": "/lib/x86_64-linux-gnu/libutil-2.15.so","ids": "0/0","gid": "0"}},"permission": null},"type": "FILE_OBJECT_BLOCK","uuid": "0100D00F-A30C-5200-0000-0000BB90005A","size": null}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2023-08-08T02:36:40.827Z"
}

3.4 netflow_object

{"CDMVersion": "20","source": "SOURCE_LINUX_THEIA","type": "RECORD_NET_FLOW_OBJECT","sessionNumber": 5,"datum": {"com.bbn.tc.schema.avro.cdm20.NetFlowObject": {"fileDescriptor": null,"localAddress": {"string": "10.0.6.60"},"remoteAddress": {"string": "10.0.4.2"},"localPort": {"int": 22},"remotePort": {"int": 36764},"ipProtocol": null,"baseObject": {"epoch": null,"properties": {"map": {}},"permission": null},"uuid": "0A00063C-1600-0A00-0402-9C8F00000000","initTcpSeqNum": null}},"hostId": "37345038-89F2-5899-8FD2-B6D0844A7DBF","@timestamp": "2023-08-08T02:36:40.324Z"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61002.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言:函数栈帧的创建和销毁(32位下观察)

一、寄存器(0:3:35) 1.寄存器有哪些?(6种)(0:38:50) 2.esp和ebp这两个寄存器中,存放的是什么?用来干嘛的?&a…

UDP简介

UDP 1. UDP格式2. UDP特点3. 差错检验 1. UDP格式 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度; 如果校验和出错,就会直接丢弃; 2. UDP特点 无连接: 知道对端的IP和端口号就直接进行传输,不需…

Vue——webpack

webpack 一、Install1.全局安装2.局部安装 二、总结1.打包2.定义脚本3.配置文件定义(webpack.config.js)4.项目重新加载依赖5.webpack打包Css6.style-loader 一、Install 1.全局安装 npm install webpack webpack-cli -g2.局部安装 以项目为单位,一个项…

git 报错 protocol ‘https‘ is not supported解决

报错原因:选择不了其他分支代码,甚至都看不到其他分支,我这边解决了两次报错,情况如下: 第一种报错: idea中刷新分支报错如下: Fetch Failed protocol https is not supported 话不多说&#…

爬虫013_函数的定义_调用_参数_返回值_局部变量_全局变量---python工作笔记032

然后再来看函数,可以避免重复代码 可以看到定义函数以及调用函数

HCIA---路由器--静态路由

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 一.路由器简介 二.路由器转发原理 三.骨干链路 四.路由分类 五.静态路由 总结 一.路由器简介 路由器是一种网络设备,用于将数据包从一个网络发送…

最大子数组和——力扣53

文章目录 题目描述解法一 动态规划题目描述 解法一 动态规划 int maxSubArray(vector<int>& nums){int pre=0, res=nums

探索ES高可用:滴滴自研跨数据中心复制技术详解

Elasticsearch 是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎&#xff0c;其每个字段均可被索引&#xff0c;且能够横向扩展至数以百计的服务器存储以及处理TB级的数据&#xff0c;其可以在极短的时间内存储、搜索和分析大量的数据。 滴滴ES发展至今&#xf…

windows配置git公钥,读写远程git项目

首先Windows电脑需要下载并安装git&#xff1a; 从官网直接下载然后安装即可&#xff1a;https://git-scm.com/download/win 添加公钥 ssh-keygen -t rsa -C "xxxxxxx.com"注意&#xff1a;这个xxxxxxx.com与github注册的邮箱一致 然后一路回车&#xff0c;生成完…

uniapp支付宝微信支付功能实现

大纲&#xff1a; 具体实现逻辑如下&#xff1a; 页面初始化时&#xff0c;通过onLoad方法获取传入的钱包(wallet)信息。 用户输入充值金额&#xff0c;使用watch监听输入值的变化&#xff0c;并更新选中的充值金额选项。判断金额是否大于0&#xff0c;若是小于0&#xff0c;则…

CTF之Web安全SSI注入

前言 如何从外部进入主机&#xff1f; SSI注入攻击介绍 SSI(server side inject)的出现是为了赋予HTML静态页面动态的效果&#xff0c;通过SSI来执行系统命令&#xff1b;并返回对应的结果。 如果再网站目录中发现了.stm&#xff1b;.shtm&#xff1b;.shtml&#xff1b;这…

【Three.js】遮挡剔除

背景 考虑到场景中模型顶点过多会让fps过低&#xff0c;所以想把相机看不到的模型从场景中移除&#xff0c;来提高渲染性能&#xff0c;但是后续测试结果让我恍然大悟。虽然场景中的顶点数降低了很多&#xff0c;但是每次渲染检查遮挡的过程本身就是一个消耗性能的行为&#x…