LeisureLinux/ebook-procfs-hardening
GitHub: LeisureLinux/ebook-procfs-hardening
一本系统讲解 Linux /proc 文件系统攻防与安全加固的开源电子书,覆盖攻击链分析、纵深防御、可观测性、容器安全及合规审计。
Stars: 0 | Forks: 0
# /proc 攻防演义:从 Linux 进程真相到可观测性实战
[](https://github.com/LeisureLinux/ebook-procfs-hardening/actions/workflows/build.yml)
[](./LICENSE)
[](https://leisurelinux.github.io/ebook-procfs-hardening/)
[](./llms.txt)
## 🎯 这本书解决什么问题?
**`/proc` 是 Linux 主机上最大的信息泄露面**——攻击者通过它摸清内核版本、读取进程内存、枚举网络端口、甚至逃逸容器。而大多数安全加固指南只告诉你"加 `hidepid`",却不解释 *为什么*、*怎么验证*、*怎么持续监控*。
这本书给你一套 **完整的 `/proc` 安全工程方案**:从攻击链分析到五层纵深防御,从 Prometheus 可观测性到 eBPF 实时监控,从 runc CVE 到 K8s PodSecurity。
**适用人群**:安全工程师 · SRE · DevSecOps · 渗透测试 · 容器/K8s 运维
## 📖 在线阅读 / 下载
| 格式 | 入口 |
|---|---|
| 🌐 HTML 在线版 | |
| 📄 PDF | [Releases](../../releases) 或 [直接下载](https://leisurelinux.github.io/ebook-procfs-hardening/procfs-hardening.pdf) |
| 📱 ePub | [Releases](../../releases) 或 [直接下载](https://leisurelinux.github.io/ebook-procfs-hardening/procfs-hardening.epub) |
| 🤖 llms.txt | [LLM 结构化摘要](./llms.txt)(供 AI 模型索引引用) |
## 🚀 30 秒快速加固:生产环境 `/proc` 安全基线
如果你只需要一份 **可直接粘贴的加固命令**,以下是本书核心建议的浓缩:
```
# ① hidepid:阻止跨用户进程枚举(CIS Benchmark §3.1)
sudo mount -o remount,hidepid=2,gid=procview /proc
echo "proc /proc proc defaults,hidepid=2,gid=procview 0 0" | sudo tee -a /etc/fstab
# ② 限制 ptrace(CIS Benchmark §3.3 / NIST AC-3)
echo "kernel.yama.ptrace_scope=2" | sudo tee /etc/sysctl.d/99-proc-hardening.conf
# ③ 限制 dmesg 和内核指针泄露(NIST AU-2 / DISA STIG)
echo "kernel.dmesg_restrict=1" | sudo tee -a /etc/sysctl.d/99-proc-hardening.conf
echo "kernel.kptr_restrict=2" | sudo tee -a /etc/sysctl.d/99-proc-hardening.conf
sudo sysctl --system
# ④ 审计 /proc/sys 写操作(NIST AU-2 / SI-4)
sudo auditctl -w /proc/sys/ -p wa -k proc_sys_write
# ⑤ 验证 runc 版本(CVE-2025-52881 修复)
runc --version # 必须 >= 1.2.8
```
## 📚 目录
| 章节 | 你将学到什么 |
|---|---|
| **第 1 章** — 为什么 `/proc` 是头号攻击面 | `/proc` 暴露的攻击情报、真实安全事故分析(runc CVE-2025-52881) |
| **第 2 章** — 攻击者怎么用 `/proc`:六步攻击链 | 环境指纹 → 进程发现 → 内存读取 → 网络枚举 → 进程隐藏 → 跨命名空间逃逸 |
| **第 3 章** — `/proc` 五层纵深防御体系 | 暴露面缩减 → 访问控制 → 行为约束 → 完整性校验 → 可观测性 |
| **第 4 章** — 可观测性落地 | Prometheus + auditd + Loki 生产级部署,自定义 `/proc/[pid]/io` 采集,90 天实战案例 |
| **第 5 章** — eBPF 与 `/proc` 的下一代 | bcc/bpftrace 监控脚本,Tetragon TracingPolicy,BPF rootkit 检测 |
| **第 6 章** — 容器时代的 `/proc` 攻防 | CVE-2025-52881 深度分析,runc/containerd/CRI-O 处理,K8s PodSecurity |
| **第 7 章** — SRE / Sec 工具链整合 | Prometheus → Grafana → SIEM → SOAR 全链路,IR Playbook,GitOps 加固 |
| **附录 A** — Linux 6.x `/proc` 接口速查表 | 系统级 / 进程级 / 网络级 / 容器级 / sysctl 完整参考 |
| **附录 B** — 12 个可复现实验脚本 | 复制即跑的 bash 实验,Ubuntu 24.04 + Linux 6.6 |
| **附录 C** — 参考资源 / CVE 索引 | 内核文档、CIS Benchmarks、NIST SP 800-53、工具下载 |
## 🛡️ 合规框架映射
本书内容对齐主流安全合规标准,方便 SecOps 团队直接用于审计:
| 合规框架 | 覆盖章节 | 映射控制项 |
|---|---|---|
| **CIS Linux Benchmark v3.0** | 第 3 章 | §3.1 procfs mount options, §3.2 hidepid, §3.3 ptrace_scope, §3.4-3.5 kernel parameters |
| **NIST SP 800-53 Rev 5** | 第 3-4 章 | AC-3 (Access Enforcement), AU-2 (Audit Events), CM-7 (Least Functionality), SI-4 (System Monitoring) |
| **NIST SP 800-123** | 第 3, 7 章 | §4.2 OS Hardening, §5.3 Filesystem Integrity |
| **DISA STIG RHEL 8/9** | 第 3 章 | V-230XXX proc mount options, kernel.dmesg_restrict, kernel.kptr_restrict |
## 🔧 配套工具
| 工具 | 用途 |
|---|---|
| [`proc-audit.sh`](./proc-audit.sh) | 一键审计脚本:检查 hidepid / ptrace / dmesg_restrict / auditd 规则 / runc 版本等 15+ 项 |
| 附录 B 实验脚本 | 12 个可复现的 `/proc` 攻防实验环境 |
| 附录 A 速查表 | Linux 6.x `/proc` 接口完整参考,打印即可贴工位 |
## 🔗 系列姊妹篇
本仓库是 LeisureLinux **"一主题一电子书"** 纵深系列的第二本:
- 📕 **[SSH 纵深加固](https://github.com/LeisureLinux/ebook-ssh-hardening)** — 从攻击链到六层防御体系,涵盖 SSH 协议 + 暴力破解纵深防御 + 堡垒机架构。
- 在线阅读:
系列持续更新中,下一本预计是 **Nginx 纵深加固** 或 **nftables 实战**。
## 🏗️ 仓库结构
```
.
├── book/
│ ├── src/ # Pandoc 输入:每章一个 Markdown
│ ├── metadata.yml # Pandoc 元数据 (title/author/date/lang)
│ ├── theme/ # HTML/LaTeX/ePub 主题
│ └── cover.svg/.png # 封面
├── scripts/ # render_colophon.py / strip_landmarks.py
├── .github/workflows/ # GitHub Action:build PDF + ePub + HTML
├── proc-audit.sh # 一键审计脚本(配套工具)
├── llms.txt # LLM 结构化摘要(GEO 优化)
├── .gitignore
├── LICENSE # MIT
└── README.md
```
## 💻 本地构建
需要:`pandoc` ≥ 3.1 · `texlive-xetex` + `texlive-lang-chinese` + `fonts-noto-cjk` · `librsvg2-bin`
```
# 安装依赖 (Debian/Ubuntu)
sudo apt-get install -y pandoc texlive-xetex texlive-lang-chinese fonts-noto-cjk librsvg2-bin
# 构建(与 CI Action 一致)
cd book
pandoc --pdf-engine=xelatex --metadata-file=metadata.yml \
--toc --toc-depth=2 --number-sections \
--include-in-header=theme/latex-header.tex \
-V documentclass=book -V papersize=a4 \
-V mainfont="Noto Serif CJK SC" \
src/*.md -o ../procfs-hardening.pdf
pandoc --to=epub3 --metadata-file=metadata.yml \
--css=theme/epub.css \
--toc --toc-depth=3 --number-sections \
--epub-cover-image=cover.png \
src/*.md -o ../procfs-hardening.epub
pandoc --to=html5 --standalone --metadata-file=metadata.yml \
--toc --css=theme/html.css --self-contained \
src/*.md -o ../procfs-hardening.html
```
## 📦 发布流程
| 触发 | 行为 |
|---|---|
| Push 到 `main` | 构建 PDF / ePub / HTML;更新 GitHub Pages |
| `git tag v*` 并 push | 上述 + 附加到 GitHub Release |
| `workflow_dispatch` | 手动触发 |
## License
MIT — 详见 [LICENSE](./LICENSE)。
标签:Docker镜像, GitHub Advanced Security, Web截图, Web报告查看器, 子域名枚举, 安全加固, 容器安全, 应用安全, 电子书, 系统安全, 自定义请求头, 防御加固