breca/kmod-profiler
GitHub: breca/kmod-profiler
通过观测系统实际加载的内核模块并自动生成黑名单,帮助减少 Linux 内核攻击面的加固工具。
Stars: 0 | Forks: 0
# kmod-profiler
通过观察和数据收集来配置 kernel-module 允许列表。分析您的机器实际加载了哪些模块,通过将其他所有模块列入黑名单来减少攻击面,并在内核更新期间保持一致性。
`kmod-profiler` 会在一个分析时间窗口内监控 `/proc/modules`,累积收集*曾观测到已加载*的模块集合,并为每一个可用但从未被观测到的模块生成 `modprobe.d` 黑名单。它会挂钩到内核软件包的安装过程以及 `/lib/modules` 目录的变更中,以确保内核升级、DKMS 重建和树外驱动(out-of-tree driver)的放入不会导致黑名单与实际情况悄悄脱节。
完整的设计文档、部署指南、威胁模型和操作参考请参阅 `docs/kmod-profiler.md`。
## 快速安装
### 从发布版 tarball 安装(任何带有 systemd 的发行版)
```
tar xzf kmod-profiler-1.0.0.tar.gz
cd kmod-profiler-1.0.0
sudo make install
sudo systemctl daemon-reload
sudo systemctl enable --now kmod-profiler.timer kmod-profiler-rescan.path
```
### 从独立安装程序安装
```
sudo ./install.sh
```
### 发行版软件包
```
# Debian / Ubuntu / Devuan
sudo dpkg -i kmod-profiler_1.0.0-1_all.deb
# Fedora / RHEL / openSUSE
sudo rpm -i kmod-profiler-1.0.0-1.noarch.rpm
# Arch / Artix
makepkg -si # from the arch/ subdirectory
# Alpine
abuild -r # from the alpine/ subdirectory
sudo apk add ./kmod-profiler-1.0.0-r0.apk
```
### 非 systemd 发行版
独立的 `install.sh` 会自动检测 systemd、OpenRC,或者退回到 cron。如果需要,您可以通过 `SCHEDULER=systemd|openrc|cron` 进行覆盖。
```
sudo SCHEDULER=cron ./install.sh
```
通过 Make(跳过 systemd 单元,与其余部分一起安装 cron 和 OpenRC):
```
sudo make install-no-systemd
```
## 包含内容
- `/usr/sbin/kmod-profiler` — 主脚本
- `kmod-profiler.timer` — 每分钟对已加载的模块进行采样
- `kmod-profiler-rescan.path` — 监控 `/lib/modules` 的变更
- `/etc/kernel/postinst.d/60-kmod-profiler` — Debian/Ubuntu 内核挂钩
- `/etc/kernel/install.d/40-kmod-profiler.install` — systemd kernel-install 挂钩
- `/usr/share/doc/kmod-profiler/` — 完整文档
## 操作说明
```
# 在至少 1–4 周的正常使用之后:
sudo kmod-profiler status # check progress
sudo kmod-profiler generate # produce candidate blacklist
less /var/lib/kmod-profiler/generated-blacklist.conf # review!
sudo kmod-profiler apply # install it
sudo update-initramfs -u # (or dracut -f, or mkinitcpio -P)
sudo reboot
```
## 构建软件包
```
make tarball # source tarball
make deb # .deb (needs debhelper)
make rpm # .rpm (needs rpmbuild)
# Arch: cd arch && makepkg
```
## 许可证
GPL-3.0-or-later。请参阅 LICENSE。
## AI 声明
本项目在代码生成、文档编写和审查过程中借助了 AI 工具(例如 GitHub Copilot、ChatGPT)。所有输出均由作者进行了审查和验证。
标签:Cron, Cutter, DKMS, kmod, modprobe, OpenRC, proc/modules, SQLite数据库, Systemd, TLS, 入侵防御, 内核模块, 内核监控, 子域名枚举, 安全基线, 安全资源, 攻击面缩减, 教学环境, 权限控制, 白名单, 系统加固, 系统安全, 运维工具, 防御工具, 黑名单