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

news2024/9/25 15:24:28

转换出来的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.coloradmin.cn/o/854123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP——十一、Web的攻击技术

HTTP 一、针对Web的攻击技术1、HTTP 不具备必要的安全功能2、在客户端即可篡改请求3、针对Web应用的攻击模式 二、因输出值转义不完全引发的安全漏洞1、跨站脚本攻击2、SQL 注入攻击3、OS命令注入攻击4、HTTP首部注入攻击5、邮件首部注入攻击6、目录遍历攻击7、远程文件包含漏洞…

Win10的日历软件中怎么新增日程安排及提醒?

在经济发展加速的时代,职场中做好时间管理的重要性不言而喻,而想要在工作中做好时间管理,关键在于按时完成每项日程安排。所以每天在使用win10电脑办公时新增日程安排并设置提醒不仅是非常有必要的,而且是提高效率和生活质量的重要…

Java课题笔记~ JavaWeb概述/开发基础

JavaWeb概述/开发基础 1.XML基础 (1)XML概述 (2)XML语法 (3)DTD约束 (4)Schema约束(XML Schema 比 DTD 更强大) 2.Web基础知识 Web是一个分布式的超媒…

Celery的基本使用

1.Celery介绍 1.1 Celery是什么? Celery是Python开发的简单、灵活可靠的、处理大量消息的分布式任务调度模块专注于实时处理的异步任务队列同时也支持任务调度 Celery本身不含消息服务,它使用第三方消息服务来传递任务,目前,Ce…

设置height:100%无效的原因以及两种解决方法

原因&#xff1a;我们知道在把盒子宽度自适应为浏览器窗口宽度&#xff0c;只需设置width:100%就可轻松解决问题&#xff0c;但是让盒子的高度自适应浏览窗口的高度并非那么容易&#xff0c;这是因为css内部计算的原因 <!-- 高度实际为字体大小 --> <div class"…

ElasticSearch:环境搭建步骤

1、拉取镜像 docker pull elasticsearch:7.4.0 2、创建容器 docker run -id --name elasticsearch -d --restartalways -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.typesingle-node" elasti…

logo设计用什么工具比较好?为你推荐这9个

在海报设计工作中&#xff0c;logo设计是必不可少的一步&#xff0c;今天本文为大家推荐9个特别好用的logo生成器&#xff0c;一起来看看吧&#xff01; 1、即时设计 即时灵感是一个结合了AI技术的logo生成器&#xff0c;它无需设计师提供设计素材&#xff0c;只要在文本框中…

软件系统测试报告

1.简介 1.1.编写目的 本文档是对重庆市XXX项目验收测试所做的说明&#xff0c;为充分利用已有的软硬件资源&#xff0c;配合对系统应用模块的运行测试方案,查缺补漏完善系统的各项具体功能,保证项目的顺利进行&#xff0c;本测试报告有助于实现以下目标&#xff1a; 明确本次…

【Linux命令详解 | grep命令】 grep命令用于在文件中搜索指定模式的文本,功能强大且常用

文章标题 简介一&#xff0c;参数列表二&#xff0c;使用介绍1. 使用基本模式搜索2. 忽略大小写匹配3. 反向匹配4. 递归搜索目录5. 显示文件名6. 显示行号7. 显示上下文行8. 启用扩展正则表达式9. 将模式视为固定字符串10. 使用颜色高亮显示匹配文本 总结 简介 在Linux系统中&…

12v转5v降压模块

问&#xff1a;什么是12V转5V降压模块&#xff1f;它的功能是什么&#xff1f; 答&#xff1a;12V转5V降压模块是一种电子设备&#xff0c;用于将输入电压为12V的直流电转换为输出电压为5V的直流电。它的主要功能是为电子设备提供所需的适当电压&#xff0c;以便它们能够正常运…

AI里的烟火气:实在RPA数字员工频频上岗九阳、海尔、美的等多家上市家电企业

1994年&#xff0c;九阳创始人王旭宁研发出了世界上第一台豆浆机&#xff0c;他将原本需要耗费七八个小时来泡豆子、推磨、过滤、蒸煮的时间&#xff0c;缩短到了几分钟。这是生产力的一次重大进步&#xff0c;也标志着九阳这样一家品质小家电领导品牌&#xff0c;开始走入大众…

logistic的分叉图

logistic是最基础、最常用的混沌序列。 了解其分叉图很关键。 下面&#xff0c;是混沌序列的分叉图。 分叉图是怎么得到的呢&#xff0c;实际上就是通过不断地迭代&#xff0c;观察其最终值在哪。 那到底在哪呢&#xff0c;我们分别绘制了最后20个序列的分叉图如下。 很显然…

【算法篇C++实现】五大常规算法

文章目录 &#x1f680;一、分治法⛳&#xff08;一&#xff09;算法思想⛳&#xff08;二&#xff09;相关代码 &#x1f680;二、动态规划算法⛳&#xff08;一&#xff09;算法思想⛳&#xff08;二&#xff09;相关代码 &#x1f680;三、回溯算法⛳&#xff08;一&#xf…

2000-2022年上市公司环境不确定性(原始数据+测算代码+测算结果)

2000-2022年上市公司环境不确定性指数&#xff08;含原始数据 代码和计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;gupiao代码、名称、日期、年份、总资产净利润率ROA、营业收入、上市日期、成立日期、行业代码、年末是否ST或PT、行业、EU未调整…

【CSS3】CSS3 动画 ③ ( 动画属性 | CSS3 常见动画属性简介 | 动画属性简写方式 | 动画属性简写语法 | 使用动画制作热点地图 )

文章目录 一、CSS3 动画属性1、CSS3 常见动画属性简介2、代码示例 - CSS3 常见动画属性使用 二、CSS3 动画属性简写方式1、CSS3 动画属性简写语法2、animation 简写动画属性提示3、动画属性简写形式与原形式对比4、代码示例 - CSS3 动画属性简写示例 三、使用动画制作热点地图1…

关于在c++中使用数组名作为函数参数,或者使用数组名的地址作为函数参数问题的一些研究

前言 使用数组名作为函数参数&#xff0c;或者使用数组名的地址作为函数参数&#xff0c;常常出现于对于字符串的读入问题之中。 常有以下两种写法&#xff1a; 这是使用数组名作为函数参数 #include<cstdio> char s[100]; int main() {scanf("%s",s); }在…

Java课题笔记~ 使用 AspectJ 的 AOP 配置管理事务(掌握)

使用 XML 配置事务代理的方式的不足是&#xff0c;每个目标类都需要配置事务代 理。当目标类较多&#xff0c;配置文件会变得非常臃肿。 使用 XML 配置顾问方式可以自动为每个符合切入点表达式的类生成事务代 理。其用法很简单&#xff0c;只需将前面代码中关于事务代理的配置…

【C++】开源:CGAL计算几何库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍CGAL计算几何库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;…

COCOS项目运行的时候图片模糊的原因

1、首先。用X坐标来分析&#xff0c;如果size*Anchor Position有小数&#xff0c;如上图57*0.5667695.5。这样就会导致x模糊。如果y同样计算结果包含小数&#xff0c;那么y也会模糊。xy同时模糊的情况是最模糊的。 2、如果当前node没有问题&#xff0c;那么就要检查上级node是…

Linux学习之awk字段

awk把每行内容称之为记录&#xff0c;而使用特殊字符分割之后的字符串称为 字段。 字段的引用 echo a : 1 : good :::: >> awktest.txt echo b : 2 : well :::: >> awktest.txt echo c : 3 : food :::: >> awktest.txt echo d : 4 : hood :::: >> aw…