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, 入侵防御, 内核模块, 内核监控, 子域名枚举, 安全基线, 安全资源, 攻击面缩减, 教学环境, 权限控制, 白名单, 系统加固, 系统安全, 运维工具, 防御工具, 黑名单