| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> eBPF在网络安全进程审计以及外连检测方面的应用 -> 正文阅读 |
|
[网络协议]eBPF在网络安全进程审计以及外连检测方面的应用 |
作为hids功能的一部分,进程审计以及外连检测,我了解的有 三种实现方式:1,通过 kprobe 编写内核代码,加载 ko 模块,检测内核运行中的网络外连代码 2,使用 netlink 协议与内核通信,获取 链接跟踪 以及 connector 模块的信息 3,使用 eBPF 跟踪 _do_fork / exit 函数,对外连跟踪?tcp_connect 函数 优缺点比较:
????????目前业界比较常用的是基于 netlink 协议做进程审计,主要的是基于易于维护,稳定性以及对内核无侵入性的考虑。 eBPF有哪些优点:首先看看通过netlink获取进程审计为什么可能会丢失数据? 看上面的connector模块的内核代码,问题出在应用层仅能拿到pid的信息,应用层做进程关联时,系统的 /proc/pid 文件可能已经消失了。而eBPF能克服信息不足的缺点。 使用eBPF做网络外连检测:????????通过跟踪 tcp_connect 函数,我能直接拿到外连进程的pid信息,五元组信息,以及task名称。明天国庆我就直接贴代码了: #include "ebpf_agent.h" #define F_OUTBOUND 0x1 struct tcp_connect_event_t { struct bpf_map_def SEC("maps") tcp_connect_counts = { // struct { SEC("kprobe/tcp_connect") ? ? if (!sk) return 0; ? ? u64 *val, one = 1, key = 1; ? ? struct tcp_connect_event_t data = {}; ? ? // 忽略本机通信 ? ? bpf_probe_read(&data.lport, sizeof(data.lport), &inet->inet_sport); ? ? bpf_get_current_comm(&data.task, sizeof(data.task)); ? ? val = bpf_map_lookup_elem(&tcp_connect_counts, &key);? //仅在性能调试使用 ? ? my_bpf_printk("tcp_connect %s dport:%d\n", data.task, data.rport); ? ? bpf_perf_event_output(ctx, &tcp_connect_events, BPF_F_CURRENT_CPU, &data, sizeof(data)); ? ? return 0; 实现效果
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 6:44:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |