eduard-daily/eBPF-dns-monitor

GitHub: eduard-daily/eBPF-dns-monitor

基于 eBPF 和 Python 的轻量级 Linux DNS 流量监控与威胁检测工具,支持进程关联和实时日志记录。

Stars: 10 | Forks: 3

使用 eBPF 监控 Linux DNS 流量

🔎 基于 eBPF 的 Linux 主机监控与威胁检测

轻量级且高性能的监控与安全工具,利用 eBPF 和 Python 提供实时的 DNS 监控。通过在内核空间执行,eBPF 工具避免了昂贵的上下文切换,并通过监控出站连接,为您的网络提供高效的恶意行为检测防御

## 目录 - [简介](#introduction-) - [依赖项](#dependencies-) - [使用方法](#usage-) - [将脚本作为 systemd 服务运行](#running-script-as-a-systemd-service) - [日志](#logging-) ## 简介 🌼 强大的监控工具,专注于 DNS 监控,利用 eBPF 和 Python 的强大功能提供实时监控和可行的洞察,以识别和缓解潜在威胁。 该工具是 DNS 流量的替代监控解决方案。 基于 [Nurkholish Halim](https://medium.com/@nurkholish.halim/a-deep-dive-into-ebpf-writing-an-efficient-dns-monitoring-2c9dea92abdf) 的开源 eBPF DNS 监控工具。 源代码 gist 可在[此处](https://gist.github.com/oghie/b4e3accf1f87afcb939f884723e2b462)找到。 ## 依赖项 🧵 ###### 安装 `apt install python3-dnslib python3-bpfcc bpfcc-tools libbpfcc linux-headers-$(uname -r)` ## 使用方法 ⚙ 此工具在 eBPF 级别捕获出站 DNS 请求和响应。 运行 `python3 ebpf_dns_main.py` 开始使用。注意:根据您的 Linux 内核版本,可能需要 sudo 权限。 ``` $ root@host:~/# python3 ebpf_dns_main.py ``` 示例输出: ``` The program is running. Press Ctrl-C to abort. 2023-08-27T17:43:21Z COMM=systemd-resolve PID=645 TGID=645 DEV=ens33 PROTO=UDP SRC=192.168.40.130 DST=192.168.40.2 SPT=47892 DPT=53 UID=101 GID=103 DNS_QR=0 DNS_NAME=visitukraine.today. DNS_TYPE=A 2023-08-27T17:43:21Z COMM=systemd-resolve PID=645 TGID=645 DEV=ens33 PROTO=UDP SRC=192.168.40.2 DST=192.168.40.130 SPT=53 DPT=47892 UID=101 GID=103 DNS_QR=1 DNS_NAME=visitukraine.today. DNS_TYPE=A DNS_DATA=104.21.71.200 ``` ## 将脚本作为 systemd 服务运行 要将脚本设置为自动作为服务运行,请将主脚本复制到 `/etc/ebpf-dns-monitor`,并将 ebpf-dns-monitor.service 复制到 `/etc/systemd/system/` 在 `/etc` 下创建一个新文件夹: ``` sudo mkdir /etc/ebpf-dns-monitor. ``` 将主 .py 脚本复制到该文件夹。 ``` cp ebpf-dns-main.py /etc/ebpf-dns-monitor/ ``` 将 .service 文件复制到 `/etc/systemd/system/`。 ``` cp ebpf-dns-monitor.service /etc/systemd/system/ ``` 重新加载 daemon。 ``` sudo systemctl daemon-reload ``` 现在我们可以启用新服务并启动它。 ``` sudo systemctl enable ebpf-dns-monitor.service sudo systemctl start ebpf-dns-monitor.service sudo systemctl status ebpf-dns-monitor.service ``` ## 日志 📈 应用程序会将所有请求和响应记录到 `/var/log/ebpf-dns-monitor.log`,可以使用日志管理解决方案 (SIEM) 轻松监控。 日期时间格式为 RFC 3339。
标签:AMSI绕过, DNS监控, Docker镜像, IP 地址批量处理, LangChain, Python, UDP, WSL, 内核态, 威胁检测, 安全渗透, 开源, 异常检测, 性能监控, 无后门, 流量捕获, 网络安全, 网络拓扑, 轻量级, 逆向工具, 速率限制, 隐私保护