当前位置: 首页 > 软件库 > 云计算 > 云原生 >

Tetragon

基于 eBPF 的安全可观测性 & 运行时增强组件
授权协议 Apache 2.0
开发语言 C/C++ Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 皇甫高阳
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Tetragon 是 Cilium 开源的基于 eBPF 的安全可观察性和运行时增强组件。

Tetragon 能够检测并对重要的安全事件做出反应,例如

  • 流程执行事件
  • 系统调用活动
  • I/O 活动,包括网络和文件访问

在 Kubernetes 环境中使用时,Tetragon 是 Kubernetes 感知的 —— 也就是说,它了解 Kubernetes 身份,例如命名空间、Pod 等——因此可以针对单个工作负载配置安全事件检测。

功能概述

eBPF 实时

Tetragon 是一个运行时安全实施和可观察性工具。这意味着 Tetragon 直接在内核的 eBPF 中应用策略和过滤。它直接在内核中执行过滤、阻止和对事件做出反应,而不是将事件发送到用户空间代理。

对于可观察性用例,直接在内核中应用过滤器会大大减少观察开销。通过避免昂贵的上下文切换和唤醒,特别是对于高频事件,例如发送、读取或写入操作,eBPF 减少了所需的资源。

相反,Tetragon 在 eBPF 中提供了丰富的过滤器(文件、套接字、二进制名称、命名空间/功能等),允许用户在其特定上下文中指定重要且相关的事件,并仅将这些事件传递给用户空间代理。

eBPF 灵活性

Tetragon 可以连接到 Linux 内核中的任何函数并过滤其参数、返回值、Tetragon 收集的有关进程的相关元数据(例如,可执行文件名称)、文件和其他属性。通过编写跟踪策略,用户可以解决各种安全性和可观察性用例。

Tetragon 允许在内核深处挂钩,用户空间应用程序无法操作数据结构,避免了系统调用跟踪的常见问题,即数据被错误读取、被攻击者恶意更改或由于页面错误和其他用户/内核边界错误而丢失。许多 Tetragon 开发人员也是内核开发人员。通过利用这个知识库,Tetragon 创建了一组跟踪策略,可以解决许多常见的可观察性和安全用例。

eBPF 内核感知

Tetragon 通过 eBPF 可以访问 Linux 内核状态。然后,Tetragon 可以将这个内核状态与 Kubernetes 感知或用户策略相结合,以创建由内核实时执行的规则。这允许注释和强制执行进程命名空间和功能、进程的套接字、进程文件描述符到文件名等等。

例如,当应用程序更改其权限时,我们可以创建一个策略来触发警报,甚至在进程有机会完成系统调用并可能运行其他系统调用之前终止该进程。

开发指南

本地开发入门可以参考开发指南

  • D. Tetragon time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output You're given the centers of three equal sides of a strictly convex tetragon. Y

  • 题目链接:https://codeforces.com/contest/23/problem/D 调哭了QAQ #include <iostream> #include <cmath> using namespace std; typedef double db; static const db EPS=1e-2; static const db PI=acos(-1.0); int sgn(db

  • Brief Intro: 给3条相同长度的边的中点,问是否存在一个严格凸四边形   Algorithm: 明显只要求出一个点就能利用对称性算出其他点的坐标 设中点K,L,M分别在边AB,BC,CD上,易知B、C分别在KL、LM的垂直平分线上   但仍需一个点才能确定B点的位置 于是我们想办法将现有的信息整合:做M关于L的对称点M’,从而发现M’B=KB=LB 接下来手算出KL、LM’的垂直平分线的

  • 【题意】给定3个点,判定是否存在一个严格凸四边形,使得其中三条边的中点恰好是这3个点。不超过50000组数据。 坐标范围比较小。 【解题方法】 假设四边形四个点是a , b , c , d。中点为k , l , m分别为ab , bc , cd的中点。 那么作m点关于l点的对称点m‘,容易得到m’b = bl = bk ,所以b是三角形klm’的外心。 那么剩下点就可以求出,然后 判断下ab =

 相关资料
  • 数据响应作为Vue最核心的特性,在我们的日常开发中被大量使用,能够极大地提高前端开发体验和效率,我们在框架设计初期最早考虑的就是如何将数据响应特性加入到小程序开发中。在数据响应的实现上,我们引入了MobX,一个实现了纯粹数据响应能力的知名开源项目。借助MobX和mixins,我们在小程序组件创建初期建立了一个响应式数据管理系统,该系统观察着小程序组件中的所有数据(data/props/comput

  • 当前的增删改查,无论登陆与否都可以操作,实在太不靠谱了,所以,还是加个检查吧. 判断用户登陆 UserModule添加一个注解 @Filters(@By(type=CheckSession.class, args={"me", "/"})) 含义是,如果当前Session没有带me这个attr,就跳转到/页面,即首页. 同时,为login方法设置为空的过滤器,不然就没法登陆了 @Filters(

  • 我有一个web应用程序+一组使用Spring创建的rest API。它本质上是一些html页面向rest服务器发送ajax请求。结构看起来有点像这样: 相同的凭据可用于静态内容和rest调用。 用户可以通过登录页登录,对于进一步的rest调用,可以使用某种令牌或从服务器返回的东西。 我已经检查了rest API的Spring Security方案,并找到了一些关于静态内容安全的资源,但无法找到如何

  • 问题内容: 我希望表中的行仅可由组成员访问。我创建用户并通过以下方法将其添加到组中, 然后,我编写的策略使其仅对当前用户可用。但是我需要整个小组来访问它。 pgUser命名可以访问该行的用户。我希望将pgUser列替换为pgRole,其中提到了组的名称,该组的成员可以访问该特定行。任何使行可被整个组访问的提示或方法都是值得赞赏的。 问题答案: 这似乎可行:

  • 在我的Spring Boot应用程序中,我有一个组件,用来监视另一个外部系统的运行状况。该组件还提供了一种公共方法,反应链可以订阅该方法,以等待外部系统启动。 方法是公共的,可以从许多不同的线程调用。这背后的想法是为应用程序中的一些反应性磁链提供一种暂停其处理的方法,直到外部系统启动。当外部系统关闭时,这些链无法处理其元素。 这里的问题是,我无法真正理解这段代码的哪一部分需要同步。我认为多个线程同

  • URL处的指南说我应该“在迁移包之前等待依赖项迁移”,但我现在想使用NNBD。 我怎么能那么做?

  • 我有两个RESTendpoint: 我想只为提供登录,并直接访问。 当我在中使用以下模式时 我只在中得到登录提示,而在中没有得到,这是预期的。 但是当我使用下面的模式时,我得到了和的登录提示,这对我来说是非常意外的。 我已经知道我做错了什么,所以我想知道为什么我不能只登录和直接访问。 更新 @Nully这有一定的意义,但却打破了我对其他情况的理解。假设我使用这个模式: 只允许user=“java

  • 问题内容: 您如何在NetBeans 6.5上获得特定的外观?我的意思是通过将标志传递给netbeans脚本(在Ubuntu上)或修改netbeans脚本或进行一些设置。 问题答案: 在您的netbeans.conf文件中,将“ –laf”添加 到您的值中。 查看Netbeans Wiki。 注意:从2008年8月25日起,不再开发Netbeans Substance插件 。