大数据最新DARPA TC-engagement5数据集官方工具可视化_darpa数据集(2),2024年上半年最接地气的大数据开发面经

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

elasticsearch数据库

grafana

说说我目前的情况。前面大差不差,elasticsearch能看到 json 数据,但是最后一步grafana玩不懂。我找不到增加数据源的入口,或是内置了入口我不知道怎么看。

其实从上面的流程就可以看出来,别的都是开源工具辅助查看,重点就是从日志构建溯源图并以流式传输。elssticsearch是为了存数据,配合grafana为溯源图的节点编辑标签,logstash是为了捕获流式数据。
这里推荐UNICORN,作者开源了数据集和代码。里面包含了四种日志解析器和构建好的溯源图。代码在这里,数据集在这里,我自己写的论文笔记在这里

如果你还是想走个流程感受一下,建议先看完文章再动手,因为作者的readme有点抽象。

1. 相关资料

对于数据集的介绍不再赘述,参考绿盟的文章:AISecOps:从DARPA TC项目看终端攻防
数据集地址:engagement5(是谷歌云盘,需要科学上网),或者github,里面有下载脚本(我没试过)。
如果下载存在问题,我推荐分批下载。具体来说,就是每次选中几十个压缩包(我是20个一批)作为一批下载,谷歌云盘会自动进一步压缩之后开始下载。下载下来之后再解压缩就ok了。千万别贪多,不然会出现漏包、网络原因中断等情况。


2. 数据集概况

在这里插入图片描述
engagement5 包含四个文件夹和三个文件,其具体内容如下:

文件内容
Data原始数据(已压缩),包含 cadets、clearscope、fivedirections、marple、strarc、theia、trace 五个部分共超300G的数据,每个部分代表了一种采集系统捕获到的审计日志
Ground_TruthTA5.1的攻击报告,详细描述了每次攻击的时间目标过程等
Schema一个溯源图构建工具CDM(已停止更新)
Tools可视化工具ELG(elasticsearch+logstash+grafana),docker环境。内含数据解压工具importers,具体使用方法见根目录下的 README.md
Engagement-5-Event-Log.md整个过程的日志,按照日期为单位,记录了每天发生的事,如收集系统的崩溃和修复
README.md包含了整个数据集的基本信息和可视化方法,接下来会详细介绍
README.pdfREADME的 pdf 版,内容同上

3. Transparent Computing (TC) Data Annotation Stack (DAS)

3.1. 背景

TC DAS由 “ELG” 框架实现(基于ELK技术栈),包含开源工具Elasticsearch、Logstsash和Grafana。这些工具结合在一起提供了一个完全集成的平台,用于处理大量数据,为这些数据添加上下文并提供了一种在数据来源的上下文中查看数据的方式。

3.2. 依赖环境

  • Docker Engine version 17.05+
  • Docker Compose version 1.12.0+

3.3. 文件结构和内容

  • docker-compose.yml:一个总的配置文件,用于设置初始配置、启动、管理 DAS
  • grafana_var_data: 用于 Docker 中的Grafana容器挂载到本地的存储路径。会保存Grafana接口使用和存储的所有数据。
  • elasticsearch:一个目录,包含 Elasticsearch 的配置和 Docker 挂载到本地的数据存储路径。
  • logstash:一个目录,包含 logstash 服务的基础配置以及传送数据到 Elasticsearch 的管道设置。
    • logstash/config/logstash.yml: logstash 的基础配置文件
    • logstash/pipeline/logstash.conf:logstash输入设置的配置文件,允许CDM数据被DAS使用。
  • env.grafana:grafana在运行时使用的环境变量

3.4. 运行数据注释框架

在包含docker-compose.yml的目录下运行命令

docker-compose up -d

启动并运行后,在浏览器中访问[host]:3000以查看数据可视化。如果存在运行异常,要检查这三个服务中任何一个的启动状态,可以使用服务名称运行docker-logs命令查看单个容器的运行日志,使用 -ft 可以跟踪这些服务的日志。Grafana的用户名和密码都是darpa

3.5. 添加数据

该工具预装了来自三次主机攻击的数据。此注释数据旨在在添加自己的注释数据或导入其他注释数据之前演示此平台的功能。

3.6. 添加新数据

导入新数据是使用 Logstash 的输入插件功能实现的。Logstash提供的导入功能允许使用几乎任何格式的事件数据,并将其转换为存储在 Elasticsearch 中。我们已经预先配置了 Logstash ,以接收来自 log4j 的事件数据作为输出,同时也支持从文件中读取。

3.7. 从压缩文件添加数据

这个数据集的压缩数据下载下来是以.bin.gz结尾的,例如ta1-cadets-1-e5-official-2.bin.1.gz

  • 找到压缩文件.bin.gz 的目录
  • 使用命令./import.sh [directory] [avro file] [host] [port] -v 启动/imports/from_file/目录下的import.sh文件。各参数含义如下
    • [directory]:压缩文件的路径
    • [avro file]:AVRO 模式的启用,用于将序列化的数据反序列化为适当的JSON格式的。这个功能由TCCDMDatum.avsc 提供的,位于与脚本相同的目录中。
    • [host]:部署 DAS 容器的主机地址
    • [port]:Logstash 接收数据的端口,默认4721

比如:

./import.sh /.../tc_data_delivery/ /.../TCCDMDatum.avsc 0.0.0.0 4712 -v

这里的[port]均应与logstash/pipeline/logstash.conf中的一致,才能确保Logstash正常接收到数据。0.0.0.0表示本服务器,如果脚本运行的机器就是部署DAS的机器,可以两处都不改。但是如果是自己电脑上解压到服务器,命令里的[host]应该为服务器IP,logstash.conf中保持不变。

3.8. 为已有数据加载注释

(这个脚本谷歌云盘已经没有了,不知道弃用了还是丢失了)
  如果你当前存的是纯数据,你希望同步别人对于数据的标注,可以使用TC DAS的预先配置的API密钥从./importers/annotations/运行注释导入脚本程序来实现(需要python3):

./import_annotations.py -ga [host-1]:3000 -gb [host-2]:3000 -bk eyJrIjoiU0Z4bWdTNjBTaDFHY3oxU21CZFVoaHRWSmF6RThQTG4iLCJuIjoiS0VZIiwiaWQiOjF9 -ak eyJrIjoiU0Z4bWdTNjBTaDFHY3oxU21CZFVoaHRWSmF6RThQTG4iLCJuIjoiS0VZIiwiaWQiOjF9 --verbose

3.9. Grafana使用指南

  • 创建注释:“Add Annotations” 面板的设计目的是便于根据Ground Truth文件输入为数据添加注释。通过浏览上面的图表,可以为屏幕上的条目添加注释。
  • 审阅注释:“Review Annotations”仪表板旨在允许用户审阅现有注释,并尝试从所提供的数据中得出有意义的结论。
  • 详细事件查看器:"Timeslice Viewer"面板显示在特定时间戳发生的所有事件的详细JSON数据。

4. 你可能遇到的一些问题及解决方案

4.1. elasticsearch启动失败

执行docker-compose up -d后,可以使用docker psdocker stats,查看容器运行情况。如果发现意外关闭,可以使用docker logs +容器名查看运行日志。如果elasticsearch出现如下错误:\

{"type": "server", "timestamp": "2023-04-03T13:13:17,201+0000", "level": "WARN", "component": "o.e.b.ElasticsearchUncaughtExceptionHandler", "cluster.name": "docker-cluster", "node.name": "86d7fb89ee33", "message": "uncaught exception in thread [main]" , "stacktrace": ["org.elasticsearch.bootstrap.StartupException: ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];",

是由于你文件路径没有给写入权限,而配置文件里挂载了elasticsearch的写入目录,所以需要给整个目录给权限。
例如,我的所有文件都位于app/TC_Data_Visualization_Tool下,则需要运行如下命令(-R表示所有子目录也给777权限):

chmod -R 777 /app/TC_Data_Visualization_Tool

4.2. 导入数据脚本运行报错

4.2.1 JAVA命令报错

导入数据的脚本import.sh中使用了java命令,如果你没有安装java环境,会出现如下报错:

./import.sh: 行 36: java: 未找到命令

此时随便运行一个java命令,会有如下提示:

root@ycl-ubuntu:/app/Tools/TC_Data_Visualization_Tool/importers/from_file# java -version
找不到命令 “java”,但可以通过以下软件包安装它:
apt install default-jre # version 2:1.11-72build2, or
apt install openjdk-11-jre-headless # version 11.0.18+10-0ubuntu1~22.04
apt install openjdk-17-jre-headless # version 17.0.6+10-0ubuntu1~22.04
apt install openjdk-18-jre-headless # version 18.0.2+9-2~22.04
apt install openjdk-19-jre-headless # version 19.0.2+7-0ubuntu3~22.04
apt install openjdk-8-jre-headless # version 8u362-ga-0ubuntu1~22.04

根据提示的命令随便选一个安装,我安装的是第二个。

4.2.2 JAVA报错

如果遇到如下报错:
Exception in thread "main" java.lang.NumberFormatException: For input string: "/app/TC_Data_Visualization_Tool/importers/from_file/TCCDMDatum.avsc" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:638) at java.base/java.lang.Integer.parseInt(Integer.java:770) at main.java.com.bbn.tc.DASImporter.handleArguments(DASImporter.java:137) at main.java.com.bbn.tc.DASImporter.main(DASImporter.java:44)

是由于文件名导致,数据集的路径不能有中文,最好空格也别要吧。改完路径之后有遇到如下错误:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

转存中…(img-pSPouEt4-1715764409007)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值