既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
+ [3.9. Grafana使用指南](#39__Grafana_92)
0. 说在前面
这篇文章只是在根据官方给的可视化工具和相关文档进行的机械式配置和一些错误排查,可以用来练手顺便感受下ELK技术栈。真正后续做的一些工作在这里DARPA TC-engagement5数据集解析为json格式输出到本地。欢迎大家进一步交流讨论,共同学习进步!
里面提供的可视化工具大致流程如下:
#mermaid-svg-iF5DnuEuyF5LAyst {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .error-icon{fill:#552222;}#mermaid-svg-iF5DnuEuyF5LAyst .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iF5DnuEuyF5LAyst .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-iF5DnuEuyF5LAyst .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iF5DnuEuyF5LAyst .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iF5DnuEuyF5LAyst .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iF5DnuEuyF5LAyst .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iF5DnuEuyF5LAyst .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iF5DnuEuyF5LAyst .marker.cross{stroke:#333333;}#mermaid-svg-iF5DnuEuyF5LAyst svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iF5DnuEuyF5LAyst .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .cluster-label text{fill:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .cluster-label span{color:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .label text,#mermaid-svg-iF5DnuEuyF5LAyst span{fill:#333;color:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .node rect,#mermaid-svg-iF5DnuEuyF5LAyst .node circle,#mermaid-svg-iF5DnuEuyF5LAyst .node ellipse,#mermaid-svg-iF5DnuEuyF5LAyst .node polygon,#mermaid-svg-iF5DnuEuyF5LAyst .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iF5DnuEuyF5LAyst .node .label{text-align:center;}#mermaid-svg-iF5DnuEuyF5LAyst .node.clickable{cursor:pointer;}#mermaid-svg-iF5DnuEuyF5LAyst .arrowheadPath{fill:#333333;}#mermaid-svg-iF5DnuEuyF5LAyst .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iF5DnuEuyF5LAyst .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iF5DnuEuyF5LAyst .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-iF5DnuEuyF5LAyst .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-iF5DnuEuyF5LAyst .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iF5DnuEuyF5LAyst .cluster text{fill:#333;}#mermaid-svg-iF5DnuEuyF5LAyst .cluster span{color:#333;}#mermaid-svg-iF5DnuEuyF5LAyst div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iF5DnuEuyF5LAyst :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}
CDM工具
Logstash
可视化查看
原始压缩数据.bin.gz
溯源图json
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_Truth | TA5.1的攻击报告,详细描述了每次攻击的时间目标过程等 |
Schema | 一个溯源图构建工具CDM(已停止更新) |
Tools | 可视化工具ELG(elasticsearch+logstash+grafana),docker环境。内含数据解压工具importers,具体使用方法见根目录下的 README.md |
Engagement-5-Event-Log.md | 整个过程的日志,按照日期为单位,记录了每天发生的事,如收集系统的崩溃和修复 |
README.md | 包含了整个数据集的基本信息和可视化方法,接下来会详细介绍 |
README.pdf | README的 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
:一个总的配置文件,用于设置初始配置、启动、管理 DASgrafana_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
。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
vY0ut-1715609055249)]
[外链图片转存中…(img-OQEGMMEp-1715609055249)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新