Tetragon:一款基于eBPF的运行时环境安全监控工具
关于Tetragon
Tetragon是一款基于eBPF的运行时环境安全监控工具,该工具可以帮助广大研究人员检测并应对安全重大事件,例如流程执行事件、系统调用活动、I/O活动(包括网络和文件访问等)。
在 Kubernetes 环境中使用时,Tetragon 具有 Kubernetes 感知能力,也就是说,它可以了解 Kubernetes 身份,例如命名空间、pod 等,从而可以根据各个工作负载配置安全事件检测。
工具概览
工具特征
1、基于eBPF的实时安全监控与执行;
2、灵活性强,支持多种安全监测和安全性用例;
3、内核感知,可访问Linux内核状态;
工具要求
Kubernetes
Docker
工具安装
Kubernetes快速安装
创建集群
以下命令使用Google Kubernetes Engine创建单节点 Kubernetes 集群:
export NAME="$(whoami)-$RANDOM"export ZONE="us-west2-a"gcloud container clusters create "${NAME}" --zone ${ZONE} --num-nodes=1gcloud container clusters get-credentials "${NAME}" --zone ${ZONE}
以下命令使用Azure Kubernetes 服务创建单节点 Kubernetes 群集:
export NAME="$(whoami)-$RANDOM"export AZURE_RESOURCE_GROUP="${NAME}-group"az group create --name "${AZURE_RESOURCE_GROUP}" -l westus2az aks create --resource-group "${AZURE_RESOURCE_GROUP}" --name "${NAME}"az aks get-credentials --resource-group "${AZURE_RESOURCE_GROUP}" --name "${NAME}"
部署Tetragon
helm repo add cilium https://helm.cilium.iohelm repo updatehelm install tetragon ${EXTRA_HELM_FLAGS[@]} cilium/tetragon -n kube-systemkubectl rollout status -n kube-system ds/tetragon -w
Docker本地安装
docker run -d --name tetragon --rm --pull always \--pid=host --cgroupns=host --privileged \-v /sys/kernel/btf/vmlinux:/var/lib/tetragon/btf \quay.io/cilium/tetragon:v1.3.0
工具配置
Kubernetes配置
kubectl edit cm -n kube-system tetragon-config# Change your configuration setting, save and exit# Restart Tetragon daemonsetkubectl rollout restart -n kube-system ds/tetragon
Docker配置
# Change configuration inside /etc/tetragon/ then restart container.# Example:# 1. As a privileged user, write to the file /etc/tetragon/tetragon.conf.d/export-file# the path where to export events, example "/var/log/tetragon/tetragon.log"# 2. Bind mount host /etc/tetragon into container /etc/tetragon# Tetragon events will be exported to /var/log/tetragon/tetragon.logecho "/var/log/tetragon/tetragon.log" > /etc/tetragon/tetragon.conf.d/export-filedocker run --name tetragon --rm -d \--pid=host --cgroupns=host --privileged \-v /etc/tetragon:/etc/tetragon \-v /sys/kernel:/sys/kernel \-v /var/log/tetragon:/var/log/tetragon \quay.io/cilium/tetragon:v1.3.0 \/usr/bin/tetragon
工具使用
Kubernetes单节点
kubectl exec -ti -n kube-system ds/tetragon -c tetragon -- tetra getevents -o compact --pods xwing
Kubernetes多节点
POD=$(kubectl -n kube-system get pods -l 'app.kubernetes.io/name=tetragon' -o name --field-selector spec.nodeName=$(kubectl get pod xwing -o jsonpath='{.spec.nodeName}'))kubectl exec -ti -n kube-system $POD -c tetragon -- tetra getevents -o compact --pods xwing
Docker
docker exec tetragon tetra getevents -o compact
输出结果
{"process_exec": {"process": {"exec_id": "Z2tlLWpvaG4tNjMyLWRlZmF1bHQtcG9vbC03MDQxY2FjMC05czk1OjEzNTQ4Njc0MzIxMzczOjUyNjk5","pid": 52699,"uid": 0,"cwd": "/","binary": "/usr/bin/curl","arguments": "https://ebpf.io/applications/#tetragon","flags": "execve rootcwd","start_time": "2023-10-06T22:03:57.700327580Z","auid": 4294967295,"pod": {"namespace": "default","name": "xwing","container": {"id": "containerd://551e161c47d8ff0eb665438a7bcd5b4e3ef5a297282b40a92b7c77d6bd168eb3","name": "spaceship","image": {"id": "docker.io/tgraf/netperf@sha256:8e86f744bfea165fd4ce68caa05abc96500f40130b857773186401926af7e9e6","name": "docker.io/tgraf/netperf:latest"},"start_time": "2023-10-06T21:52:41Z","pid": 49},"pod_labels": {"app.kubernetes.io/name": "xwing","class": "xwing","org": "alliance"},"workload": "xwing"},"docker": "551e161c47d8ff0eb665438a7bcd5b4","parent_exec_id": "Z2tlLWpvaG4tNjMyLWRlZmF1bHQtcG9vbC03MDQxY2FjMC05czk1OjEzNTQ4NjcwODgzMjk5OjUyNjk5","tid": 52699},"parent": {"exec_id": "Z2tlLWpvaG4tNjMyLWRlZmF1bHQtcG9vbC03MDQxY2FjMC05czk1OjEzNTQ4NjcwODgzMjk5OjUyNjk5","pid": 52699,"uid": 0,"cwd": "/","binary": "/bin/bash","arguments": "-c \"curl https://ebpf.io/applications/#tetragon\"","flags": "execve rootcwd clone","start_time": "2023-10-06T22:03:57.696889812Z","auid": 4294967295,"pod": {"namespace": "default","name": "xwing","container": {"id": "containerd://551e161c47d8ff0eb665438a7bcd5b4e3ef5a297282b40a92b7c77d6bd168eb3","name": "spaceship","image": {"id": "docker.io/tgraf/netperf@sha256:8e86f744bfea165fd4ce68caa05abc96500f40130b857773186401926af7e9e6","name": "docker.io/tgraf/netperf:latest"},"start_time": "2023-10-06T21:52:41Z","pid": 49},"pod_labels": {"app.kubernetes.io/name": "xwing","class": "xwing","org": "alliance"},"workload": "xwing"},"docker": "551e161c47d8ff0eb665438a7bcd5b4","parent_exec_id": "Z2tlLWpvaG4tNjMyLWRlZmF1bHQtcG9vbC03MDQxY2FjMC05czk1OjEzNTQ4NjQ1MjQ1ODM5OjUyNjg5","tid": 52699}},"node_name": "gke-john-632-default-pool-7041cac0-9s95","time": "2023-10-06T22:03:57.700326678Z"}
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可协议。
项目地址
Tetragon:【GitHub传送门】
参考资料
https://tetragon.io/
相关文章:
Tetragon:一款基于eBPF的运行时环境安全监控工具
关于Tetragon Tetragon是一款基于eBPF的运行时环境安全监控工具,该工具可以帮助广大研究人员检测并应对安全重大事件,例如流程执行事件、系统调用活动、I/O活动(包括网络和文件访问等)。 在 Kubernetes 环境中使用时,…...
CAS单点登录(第7版)23.Webflow 管理
如有疑问,请看视频:CAS单点登录(第7版) Webflow 管理 概述 Webflow定制 CAS 使用 Spring Webflow 对登录和注销协议进行脚本处理。Spring Web Flow 构建在 Spring MVC 之上,并允许实现 Web 应用程序的“流”。流封装…...
word文档中标题的自动编号问题
最近研究了下标题自动编号,记录下来,以备后用。 (1)从编号1开始,如: 1 ------------------------ 标题1 1.1 ------------------- 标题2 1.1.1 ------------------- 标题3 1.1.1.1 ------------------- 标题…...
kkFileView二开之pdf转图片接口
kkFileView二开之Pdf转图片接口 kkFileView二开系列文章:1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 kkFileView二开系列文章&#x…...
利用亚马逊云科技RDS for SQL Server配置向量数据存储
生成式人工智能(AI)正迎来又一个快速发展期,引起了开发者们的广泛关注。将生成式能力集成到商业服务和解决方案中变得非常重要。当前的生成式AI解决方案是机器学习和深度学习模型逐步进化迭代的结果。从深度学习到生成式AI的质变飞跃主要是由…...
vLLM 部署 DeepSeek 大模型避坑指南
本文基于实战经验,提供从环境准备到性能调优的全流程避坑指南。 一、环境准备:驱动与硬件兼容性 1. NVIDIA 驱动与 CUDA 版本对齐 确保NVIDIA驱动和CUDA版本相互匹配是关键。例如,CUDA 12.x需要至少525.60的驱动版本。 # 使用 nvidia-smi…...
本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6
部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中 实现过程如下: 2.1 MindSearch 简…...
【大模型系列】Windows系统上运行大语言模型方式
在Windows系统上运行大语言模型(LLMs)有多种方式,以下是一些具体的方法: GPT4All 简介:GPT4All是一个适用于所有操作系统的LLM框架和聊天机器人应用程序,可以本地运行LLMs,并通过API将其与任何…...
Linux Mem -- Where the mte store and check in the real hardware platform
目录 1 前言 2 MTE tag分类 3 Address tag 4 Memory tag 5 Tag Check 6 Cortex-A710 和 CI-700 系统示例: 1 前言 ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后,应该会产生如下疑问&#…...
连锁企业管理系统的五大核心功能
连锁管理系统对于连锁企业的运营和发展至关重要,以下以核货宝连锁管理系统为例,介绍其五大核心功能: 门店管理功能 门店信息管理:核货宝连锁管理系统可集中管理所有门店的详细信息,包括门店地址、联系方式、营业时间、…...
Docker配置镜像加速-解决黑马商城部署Mysql失败问题
随着 Docker 在容器化应用中的广泛应用,越来越多的开发者选择通过 Docker 来简化开发和部署过程。然而,在使用 Docker 部署应用时,有时会遇到因为镜像下载速度慢或者 MySQL 部署失败等问题,特别是在中国地区,由于网络环…...
Cherno C++ P54 内存:栈与堆
这篇文章我们来谈论一下计算机的内存。在这里,我们着重讨论内存的两个部分:栈与堆。我们需要注意的一点是,这两个概念不是虚拟的,而是在计算机内部真实存在的。它们是我们的CPU当中RAM部分物理上存在的两个区域。我们之所以要重点…...
对项目交接的一些思考
天下大势,分久必合合久必分。这些年交接了很多项目,也从别人那里接手了很多项目。最近又接收了一些项目,但团队接收的效果不是很好,或者说掌握的不全面,所以就在想怎么能够做的更好一些? 团队关系 其实我…...
【PYTORCH】官方的turoria实现中英文翻译
参考 https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html 背景 pytorch官方的是seq2seq是法语到英文,做了一个中文到英文的。 数据集 下载后解压,使用的data\testsets\devset\UNv1.0.devset.zh和UNv1.0.devset.en&#x…...
【算法与数据结构】并查集详解+题目
目录 一,什么是并查集 二,并查集的结构 三,并查集的代码实现 1,并查集的大致结构和初始化 2,find操作 3,Union操作 4,优化 小结: 四,并查集的应用场景 省份…...
【动态路由】系统web url整合系列【springcloud-gateway实现】【不改hosts文件版】组件一:多个Eureka路由过滤器
需求 实现URL web资源整合,实现使用一个web地址访问多个web资源 方案 本方案使用SpringCloud Gateway实现,不需要在hosts文件加添加域名映射(也不需要定义一系列域名),通过url路径来将请求转发到不同的Web资源 如&…...
Mybatis-扩展功能
逻辑删除乐观锁 MyBatisPlus从入门到精通-3(含mp代码生成器) Db静态工具类 Spring依赖循环问题 代码生成器 MybatisPlus代码生成器 枚举处理器 我们这里用int来存储状态 需要注解,很不灵活 希望用枚举类来代替这个Integer 这样的话我…...
基于SpringBoot实现的大学社团平台系统实现功能六
一、前言介绍: 1.1 项目摘要 随着高校社团活动的日益丰富和多样化,学生对于社团管理和参与的需求也在不断增加。传统的社团管理方式往往存在效率低下、信息不透明等问题,无法满足现代学生对于便捷、高效社团管理的需求。因此,利…...
电子电气架构 --- 机器学习推动车载雷达的发展
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...
python从入门到进去
python从入门到进去 第一章、软件和工具的安装一、安装 python 解释器二、安装 pycharm 第二章、初识 python一、注释可分三种二、打印输入语句三、变量1、基本数据类型1.1、整数数据类型 int1.2、浮点数数据类型 float1.3、布尔数据类型 boolean1.4、字符串数据类型 string 2、…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
免费批量Markdown转Word工具
免费批量Markdown转Word工具 一款简单易用的批量Markdown文档转换工具,支持将多个Markdown文件一键转换为Word文档。完全免费,无需安装,解压即用! 官方网站 访问官方展示页面了解更多信息:http://mutou888.com/pro…...
[特殊字符] Spring Boot底层原理深度解析与高级面试题精析
一、Spring Boot底层原理详解 Spring Boot的核心设计哲学是约定优于配置和自动装配,通过简化传统Spring应用的初始化和配置流程,显著提升开发效率。其底层原理可拆解为以下核心机制: 自动装配(Auto-Configuration) 核…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
timestamp时间戳转换工具
作为一名程序员,一款高效的 在线转换工具 (在线时间戳转换 计算器 字节单位转换 json格式化)必不可少!https://jsons.top 排查问题时非常痛的点: 经常在秒级、毫秒级、字符串格式的时间单位来回转换,于是决定手撸一个…...
2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题
2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题 (二)模块 A:安全事件响应、网络安全数据取证、应用安全、系统安全任务一:漏洞扫描与利用:任务二:Windows 操作系统渗透测试 :任务三&…...
