探索aarch64架构上使用ftrace的BPF LSM

译者注 笔者在MacBook M2上搭建Linux虚拟机上开发eBPF程序时,遇到一些LSM eBPF类型程序无法运行的问题。 在笔者尝试定位这些差异时,看到这篇文章,可以让大家更直观地了解LSM eBPF在ARM64、AMD64 内核上的差异。 原文地址:Exploring BPF LSM support on aarch64 with ftrace 原文 本博客文章是我们在Linux中对于aarch64上BPF LSM支持的内部研究的摘要。如果你对内核代码库不熟悉,要开

美团RASP大规模研发部署实践总结

背景 RASP是Runtime Application Self-Protection(运行时应用自我保护)的缩写,是一种应用程序安全技术。RASP 技术能够在应用程序运行时检测并阻止应用级别的攻击。随着云计算和大数据的发展,应用程序安全越来越受到重视。RASP 技术作为一种新型的安全防护手段,正在逐渐被业界接受并广泛应用。其中Java RASP 是一种针对 Java 应用程序的 RASP 技术。通过在 Java 虚拟机(JVM)级别进行监控和防护,能够有效防止对 Java

手机镜头下的2023年 by CFC4N

去年的这个时候,你在干什么,你还记得吗?半年前呢?上个月呢?恍惚之间,一年又过去了。那时的记忆还清晰吗? 笔者挑选了2023年自己手机拍摄的一些照片,分享给大家。 设备与软件 摄影设备:iPhone 12 Pro Max 调色软件:iPhone自带照片软件 记录瞬间 一月 江苏苏州 上方山 春节期间,跟家人游玩。时间太久,心情记不清了。 二月 光大安石中心 节后,跟许同学到公司另外一个办公点拜访专家,交流RASP建设事宜。等待老友高同学时抓拍。 三月 慕田裕长城 去北京出

击败 eBPF Uprobe 监控

这篇文章介绍了一种可以用于监控用户空间程序的 eBPF 程序。它首先向您介绍了 eBPF 和 uprobes,然后探讨了我们在 uprobes 中发现的缺陷,所有演示示例都适用于 Linux 和 x86_64 架构。原文地址:Defeating eBPF Uprobe Monitoring 简介 监控系统发生的事情非常重要。eBPF 可以通过将特定程序钩入各种系统范围的事件来帮助您在 Linux 服务器上执行此操作。您可以通过将内核或用户空间函数钩入来收集大量信息。例如,您可

GitHub 7K星:eCapture新版支持Android 13、14

eCapture是一个无需CA证书,即可捕获HTTPS/TLS明文的抓包工具,常用语网络分析、故障定位等。最初定位是Linux上的抓包工具,在2022年9月支持了Android系统,在Android 12起,只要是Linux内核是5.5以上的ARM架构,都可以正常运行。支持TLS 1.2、TLS1.3版本的协议,只需要root,无需应用重启、更改等,很受大家欢迎。 今天,eCapture v0.6.5 版本发布,支持了两个功能:支持所有端口的网络包、支持Android 13

eBPF应用程序开发:快人一步

这篇文章提供了关于eBPF应用程序开发的指南。正如标题所示,文章主要关注eBPF 201的概念,而不是提供另一篇关于eBPF技术是什么的入门级文章。我们提供了简短的介绍,但主要关注需要部署生产eBPF应用程序的开发团队的下一组概念和最佳实践。我们将探讨使BPF应用程序可以在多个内核版本和环境中部署和维护的编程语言和工具链。 eBPF 101: 简短回顾 BPF/eBPF是由轻量级的隔离虚拟机和一组辅助函数组成的操作系统内核技术。在本文中,我们关注Linux内核中的eBPF,尽

eCapture支持流量转发的进展同步

大家好,eCapture项目距上次新版发布也已经过去2-3个月了,在这期间,社区论坛里很多网友提了一些问题以及需求,等我来解决。这几个月博主工作特别忙,一直没时间更新eCapture。这个周末特地抽时间解决了社区中反应的一些bug、优化点等。至于新功能,主要的就是流量转发功能,这个功能还是比较复杂的。 今天,博主先把发布一个修复bug的版本,等过段时间博主不是那么忙了,再构思流量转发功能,分享给大家。 新版发布 功能介绍 增加了Linux 5.2一下内核的异常提示 移除了c

GitHub万星项目进度70%,eCapture旁观者7K Stars达成

简述 是的,一年半时间,笔者的首个7000星的GitHub开源项目来了,它就是eCapture旁观者。未来一年,争取过万星。 项目背景 eCapture一个无需CA证书,无侵入的HTTPS/TLS明文抓包工具。可以在Linux 4.18以上版本使用,同时也支持Android arm64 5.5以上版本。 eCapture的中文名叫「旁观者」,即「当局者迷,旁观者清」,与其本身功能「旁路、观察」契合,且发音与英文有相似之处。此工具切入大家痛点,不需要CA证书,也不需要进程

eBPF挂钩TC egress时,被TCP Checksum搞死了

译者注 我最近也在尝试用eBPF TC类型程序,挂钩egress网络包,修改IP包、TCP包内容,实现路由跟踪的功能。除了eBPF验证器的奇葩问题外,剩下的就是skb_buff修改后,被客户端内核丢弃、中间路由丢弃、服务端内核丢弃的各种问题,头发那是一把一把的掉。幸运的是,我找到了这篇文章Checksum-or-fxxk-up,写的特别好。看标题就知道作者被折腾不清,这点我感同身受。 TL;DR 如果你不想自讨苦吃,就千万别对checksum进行任何不当操作。但如果你想看到

golang uretprobe的崩溃与模拟实现

前言 在eCapture最初支持golang的https明文捕获时,是不支持request\response完整的匹配的。这点不同于C语言编写的程序,是因为golang的uretprobe类型钩子有个较为致命的bug,会导致被挂载进程崩溃,这问题在BCC社区也有讨论过:Go crash with uretprobe #1320, 火焰图作者brendangregg也提到,在他的一篇博客里,用户评论如下: Another problem I ran into: the ure