containerscrew/rootisnaked
GitHub: containerscrew/rootisnaked
基于 eBPF 技术的 Linux 内核级提权检测工具,通过监控 commit_creds 函数实时捕获 root 提权行为并支持告警推送。
Stars: 35 | Forks: 5
rootisnaked
使用 eBPF 进行简单的 root 提权检测
# rootisnaked
`Rootisnaked` 是一个简单的 [eBPF](https://ebpf.io/) 程序,旨在监控 Linux 系统上用户凭据(具体而言是 UID)的更改。它挂钩到 `commit_creds` 内核函数,该函数在进程的凭据被更新时调用。该程序检测进程的 UID 何时更改为 0 (root),并将此事件记录到环形缓冲区,以便在用户空间进行进一步分析。
例如,它可用于检测潜在的 Linux 提权行为。

```
2025-09-24 11:06:30 [INFO]: Starting rootisnaked
2025-09-24 11:06:30 [INFO]: eBPF program loaded and attached. Waiting for commit_creds_events...
2025-09-24 11:06:33 [INFO]: event=file_perm, pid=35890, user=root, uid=0, comm=chmod, mode=777, filename=/etc/test, hostname=arch
2025-09-24 11:06:41 [INFO]: event=commit_creds, user=dcr, tgid=36064, old_uid=1000, new_uid=0, cmdline=sudo su - , executable_path=/usr/bin/sudo, hostname=arch
```
Alerting using alertmanager and telegram
# 运行 `rootisnaked`
## 安装系统依赖 (Ubuntu)
```
sudo apt install -y linux-headers-$(uname -r) vim gcc make clang libbpf-dev curl clang-format libcurl4-openssl-dev build-essential libelf-dev
```
## 可选:配置 Alertmanager 以实现集中告警(通过 Telegram)
```
cp docker/.env.example docker/.env
# 编辑 docker/.env 并设置 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID
set -a; source docker/.env; set +a
envsubst < docker/alertmanager/alertmanager.yml.tpl > docker/alertmanager/alertmanager.yml
docker-compose -f docker/compose.yml up -d
```
## 编译并运行
```
make # Using all available threads
# 或者仅使用 1 个线程
# make -j1
# make -j4 # 使用 4 个线程
DEBUG=false ALERTS=true sudo -E ./bin/rootisnaked
# 或者禁用 alerts
DEBUG=false ALERTS=false sudo -E ./bin/rootisnaked
```
## 使用 Docker
```
sudo docker build -f docker/Dockerfile -t containerscrew/rootisnaked:latest .
```
```
sudo podman run -itd --restart always --name rootisnaked --privileged \
-v /proc:/proc:ro \
-v /sys:/sys:ro \
-e DEBUG=false \
-e ALERTS=false \
containerscrew/rootisnaked:latest
```
## 使用 `scripts/install.sh` 脚本和 systemd 服务
目前我还没有创建任何软件包(deb, rpm...),因此我创建了一个简单的脚本来安装和配置 systemd 服务,以便在系统启动时运行 `rootisnaked`。
```
./scripts/install.sh
```
# 许可证
**`rootisnaked`** 根据 [GPL3](./LICENSE-GPL3) 和 [MIT](./LICENSE-MIT) 许可证的条款进行分发。
标签:commit_creds, CSV导出, Docker镜像, root检测, SQLite数据库, UID监控, Web截图, 内核监控, 协议分析, 客户端加密, 容器安全, 提权检测, 权限提升, 网络安全, 请求拦截, 隐私保护