Sandler73/Linux-Security-Audit-Project
GitHub: Sandler73/Linux-Security-Audit-Project
一款模块化的 Linux 系统安全审计框架,支持对 8 大主流安全合规框架进行超过一千项检查并提供自动化修复方案。
Stars: 6 | Forks: 2
# Linux 安全审计项目
[](https://github.com/Sandler73/Linux-Security-Audit-Project)
[](LICENSE)
[](https://www.python.org/)
[](https://www.kernel.org/)
[]()
[](https://github.com/sponsors/Sandler73)
一个全面、模块化的 Linux 系统安全审计框架,支持多种合规框架,具备自动修复功能、合规评分以及交互式报告。
## 🚀 快速开始
```
# 克隆 repository
git clone https://github.com/Sandler73/Linux-Security-Audit-Project.git
cd Linux-Security-Audit-Project
# 运行完整 security audit(需要 sudo)
sudo python3 linux_security_audit.py
# 查看交互式 HTML report
# 在默认 browser 中自动打开
```
**大功告成!** 该工具将根据所有 8 个安全框架对您的系统进行审计,并生成一份详尽的报告。
## 📋 目录
- [功能](#-features)
- [安全框架](#-security-frameworks)
- [系统要求](#-system-requirements)
- [安装说明](#-installation)
- [基本用法](#-basic-usage)
- [文档](#-documentation)
- [输出格式](#-output-formats)
- [修复](#-remediation)
- [项目结构](#-project-structure)
- [贡献](#-contributing)
- [许可证](#-license)
- [支持](#-support)
## ✨ 功能
### 核心功能
- **🔍 1,207 项安全检查**:涵盖 8 个合规框架的全面评估
- **📊 合规评分**:加权评分、简单评分和基于严重性调整的评分,带通过/失败阈值
- **🎨 交互式 HTML 报告**:包含 18 项以上功能,如 SVG 图表、可点击仪表板、列宽调整、多格式导出
- **⚡ 高性能引擎**:共享缓存(约 50% 命中率)、并行执行、直接读取 /proc
- **🔧 自动修复**:使用单条命令或选择性批量操作修复安全问题
- **📁 多格式输出**:HTML、CSV、JSON、XML 和 Console,并附带 JSON 元数据
- **🔐 权限感知**:可在有或无 root 权限下运行(平滑降级)
- **📝 结构化日志**:双控制台/文件输出、可配置级别、用于 SIEM 的 JSON 日志格式
### 高级功能
- **动态模块发现**:自动检测并验证 `modules/` 目录中的模块
- **系统感知检查**:针对特定发行版的优化(Debian、Red Hat、SUSE、Arch 家族)
- **IP 地址识别**:配对的主机识别(主机名 + OS + IP)用于 SIEM 归因
- **智能权限检测**:识别在没有 root 权限下可以/无法检查的内容
- **全面的错误处理**:带有详细错误报告的优雅失败
- **零依赖**:仅使用 Python 标准库(Python 3.7+,无需 pip install)
- **完全离线**:无需互联网连接,不传输任何数据
## 🛡️ 安全框架
该项目包含 8 个专用安全模块:
| 模块 | 检查项 | 描述 | 最适用于 |
|--------|--------|-------------|----------|
| **[Core](../../wiki/Module-Documentation#core-module)** | 153 | 行业最佳实践,特定于 OS 的安全 | 所有人 |
| **[CIS](../../wiki/Module-Documentation#cis-module)** | 212 | CIS Benchmarks 合规 | 常规加固、合规 |
| **[CISA](../../wiki/Module-Documentation#cisa-module)** | 147 | 关键基础设施保护 | 政府、关键部门 |
| **[ENISA](../../wiki/Module-Documentation#enisa-module)** | 97 | 欧盟网络安全指南 | 欧洲组织 |
| **[ISO27001](../../wiki/Module-Documentation#iso27001-module)** | 115 | 信息安全管理 | ISMS 认证 |
| **[NIST](../../wiki/Module-Documentation#nist-module)** | 172 | NIST 800-53、CSF 2.0、800-171 | 联邦政府、承包商 |
| **[NSA](../../wiki/Module-Documentation#nsa-module)** | 144 | 高级安全加固 | 高安全环境 |
| **[STIG](../../wiki/Module-Documentation#stig-module)** | 167 | 国防部 (DoD) 安全要求 | 国防、承包商 |
**总计**:1,207 项全面的安全检查(已验证)
### 框架选择指南
**一般组织**:从 `Core + CIS` 开始
**金融/医疗**:使用 `ISO27001 + NIST + CIS`
**政府/联邦**:使用 `NIST + STIG + CISA`
**欧盟组织**:使用 `ISO27001 + ENISA + CIS`
**国防承包商**:使用 `STIG + NIST + NSA`
📖 **[完整的框架参考 →](../../wiki/Framework-Reference)**
## 💻 系统要求
### 最低要求
- **操作系统**:Linux(任何现代发行版)
- **Python**:3.7 或更高版本
- **磁盘空间**:100 MB 可用空间
- **内存**:512 MB RAM(建议 1 GB)
- **权限**:建议使用 root/sudo 以获取完整结果
### 支持的发行版
#### 完全测试
- Ubuntu 18.04+、20.04 LTS、22.04 LTS、24.04 LTS
- Debian 9+、10、11、12
- RHEL 7、8、9
- CentOS 7、8 Stream
- Fedora 28+、35+、38+
- Rocky Linux 8、9
- AlmaLinux 8、9
#### 同样支持
- Linux Mint 19+
- Kali Linux 2020+
- SUSE/openSUSE Leap 15+
- Arch Linux(滚动发布)
### 前置条件
**无需安装!** 所有依赖项均为 Python 标准库的一部分:
- `os`、`sys`、`json`、`csv`、`argparse`、`subprocess`
- `platform`、`socket`、`datetime`、`pathlib`、`typing`
- `xml.etree.ElementTree`、`html`、`dataclasses` (Python 3.7+)
- `concurrent.futures`、`ipaddress`、`logging`
## 📦 安装说明
### 选项 1:Git Clone(推荐)
```
# 克隆 repository
git clone https://github.com/Sandler73/Linux-Security-Audit-Project.git
# 导航到 directory
cd Linux-Security-Audit-Project
# 验证 installation
python3 linux_security_audit.py --list-modules
```
### 选项 2:下载 ZIP
```
# 下载最新 release
wget https://github.com/Sandler73/Linux-Security-Audit-Project/archive/refs/heads/main.zip
# 解压
unzip main.zip
cd Linux-Security-Audit-Project-main
# 设置为 executable
chmod +x linux_security_audit.py
```
### 选项 3:直接下载
下载并保留目录结构:
- `linux_security_audit.py`(主脚本)
- `modules/module_*.py`(全部 8 个模块文件)
- `shared_components/audit_common.py`(共享库)
## 🎯 基本用法
### 简单命令
```
# 列出可用 modules
python3 linux_security_audit.py --list-modules
# 运行完整 audit(所有 modules)
sudo python3 linux_security_audit.py
# 运行特定 modules
sudo python3 linux_security_audit.py -m Core,CIS,NIST
# 生成 CSV report
sudo python3 linux_security_audit.py -f CSV -o security-audit.csv
# 快速 console 输出
sudo python3 linux_security_audit.py -f Console
```
### 常见用例
#### 安全基线评估
```
# 建立初始 security baseline
sudo python3 linux_security_audit.py -m Core,CIS -o baseline-$(date +%Y%m%d).html
```
#### 合规审计
```
# 生成 compliance report
sudo python3 linux_security_audit.py -m ISO27001,NIST,CIS -f HTML -o compliance-report.html
```
#### 自动化监控
```
# 每日自动化 audit(添加到 crontab)
0 2 * * * /usr/bin/python3 /opt/audit/linux_security_audit.py -f JSON -o /var/log/audit-$(date +\%Y\%m\%d).json
```
#### SIEM 集成
```
# 生成 XML 以供 SIEM 摄取
sudo python3 linux_security_audit.py -f XML -o siem-feed.xml
```
### 命令行选项
| 选项 | 描述 | 示例 |
|--------|-------------|---------|
| `-m, --modules` | 指定要运行的模块 | `-m Core,CIS,NIST` |
| `-f, --output-format` | 输出格式 | `-f HTML` |
| `-o, --output-path` | 输出文件路径 | `-o report.html` |
| `--list-modules` | 列出可用模块 | |
| `--parallel` | 并行执行模块 | |
| `--workers N` | 并行工作进程数 | `--workers 4` |
| `--profile` | 显示性能统计 | |
| `--log-level LEVEL` | 设置日志级别 | `--log-level DEBUG` |
| `--log-file PATH` | 自定义日志文件路径 | |
| `--json-log` | JSON 结构化日志输出 | |
| `--verbose` / `--quiet` | 控制控制台输出详细程度 | |
| `--remediate` | 交互式修复 | |
| `--remediate-fail` | 仅修复 FAIL 状态 | |
| `--auto-remediate` | 自动修复 | |
| `--remediation-file` | 从 JSON 修复特定问题 | |
📖 **[完整使用指南 →](../../wiki/Usage-Guide)**
## 📚 文档
### 快速链接
- **[🏠 Wiki 首页](../../wiki/Home)** - 完整的文档中心
- **[⚡ 快速开始](../../wiki/Quick-Start-Guide)** - 几分钟内上手
- **[📖 使用指南](../../wiki/Usage-Guide)** - 全面的使用说明
- **[🔍 模块文档](../../wiki/Module-Documentation)** - 详细的模块功能
- **[📊 输出参考](../../wiki/Output-Reference)** - 了解报告和格式
- **[🛡️ 框架参考](../../wiki/Framework-Reference)** - 安全标准详情
- **[💻 开发指南](../../wiki/Development-Guide)** - 贡献和扩展
- **[🔧 故障排除](../../wiki/Troubleshooting-Guide)** - 常见问题和解决方案
- **[❓ FAQ](../../wiki/Frequently-Asked-Questions-(FAQ))** - 常见问题解答
### 文档亮点
#### 面向用户
- **安装**:[快速开始指南](../../wiki/Quick-Start-Guide#installation)
- **首次运行**:[快速开始指南](../../wiki/Quick-Start-Guide#first-run)
- **了解结果**:[输出参考](../../wiki/Output-Reference#data-field-definitions)
- **修复**:[使用指南](../../wiki/Usage-Guide#remediation-options)
- **常见问题**:[故障排除指南](../../wiki/Troubleshooting-Guide)
#### 面向开发者
- **架构**:[开发指南](../../wiki/Development-Guide#project-architecture)
- **创建模块**:[开发指南](../../wiki/Development-Guide#creating-security-modules)
- **代码标准**:[开发指南](../../wiki/Development-Guide#code-standards)
- **贡献**:[开发指南](../../wiki/Development-Guide#contributing)
#### 面向合规
- **框架详情**:[框架参考](../../wiki/Framework-Reference)
- **模块覆盖**:[模块文档](../../wiki/Module-Documentation)
- **合规映射**:[框架参考](../../wiki/Framework-Reference#compliance-mapping)
## 📁 输出格式
### HTML(默认)
基于浏览器的交互式报告,具有:
- ✅ 可排序和过滤的表格
- ✅ 跨所有字段的全文搜索
- ✅ 深色/浅色主题切换
- ✅ 将选定问题导出为 JSON
- ✅ 内联修复命令
- ✅ 汇总统计仪表板
```
sudo python3 linux_security_audit.py -f HTML
```
### CSV
兼容电子表格的格式,用于:
- ✅ Excel/Google Sheets 分析
- ✅ 自定义报告和绘图
- ✅ 历史趋势分析
- ✅ 数据操作
```
sudo python3 linux_security_audit.py -f CSV -o audit.csv
```
### JSON
结构化数据,用于:
- ✅ API 集成
- ✅ SIEM 摄取
- ✅ 自动化工作流
- ✅ 选择性修复
- ✅ 自定义脚本
```
sudo python3 linux_security_audit.py -f JSON -o audit.json
```
### XML
企业工具集成:
- ✅ SIEM 系统 (Splunk, QRadar)
- ✅ GRC 平台
- ✅ 配置管理
- ✅ 旧系统兼容性
```
sudo python3 linux_security_audit.py -f XML -o audit.xml
```
### Console
实时终端输出:
- ✅ 彩色状态标识
- ✅ 无需创建文件
- ✅ SSH 友好
- ✅ 快速验证
```
sudo python3 linux_security_audit.py -f Console
```
📖 **[完整输出参考 →](../../wiki/Output-Reference)**
## 🔧 修复
该工具提供多种修复方法来解决安全问题:
### 交互式修复
单独检查并批准每个修复:
```
sudo python3 linux_security_audit.py --remediate
```
**工作流**:
1. 显示每个问题的详细信息
2. 显示修复命令
3. 提示确认
4. 批准后执行
5. 报告结果
### 过滤修复
仅修复特定严重级别的问题:
```
# 仅修复严重的 FAIL 问题
sudo python3 linux_security_audit.py --remediate-fail
# 修复 WARNING 级别问题
sudo python3 linux_security_audit.py --remediate-warning
# 与 auto-remediation 结合
sudo python3 linux_security_audit.py --remediate-fail --auto-remediate
```
### 选择性修复
**最精确的方法** - 仅修复特定问题:
1. 运行审计并生成 HTML 报告
2. 在浏览器中审查发现的问题
3. 使用复选框选择特定问题
4. 点击“Export Selected”按钮
5. 使用导出的文件运行修复:
```
sudo python3 linux_security_audit.py --auto-remediate --remediation-file Selected-Report.json
```
### 自动化修复
带确认的批量修复所有问题:
```
sudo python3 linux_security_audit.py --auto-remediate
```
⚠️ **安全注意事项**:
- 始终先在非生产环境中进行测试
- 执行前审查修复命令
- 备份关键配置
- 准备好控制台访问权限,以防 SSH 中断
- 在维护窗口期安排执行
📖 **[修复指南 →](../../wiki/Usage-Guide#remediation-options)**
## 📂 项目结构
```
Linux-Security-Audit-Project/
├── linux_security_audit.py # Main orchestrator (3,487 lines)
├── modules/ # Security framework modules
│ ├── module_core.py # Core baseline (153 checks)
│ ├── module_cis.py # CIS Benchmarks (212 checks)
│ ├── module_cisa.py # CISA guidance (147 checks)
│ ├── module_enisa.py # ENISA guidelines (97 checks)
│ ├── module_iso27001.py # ISO 27001 controls (115 checks)
│ ├── module_nist.py # NIST frameworks (172 checks)
│ ├── module_nsa.py # NSA hardening (144 checks)
│ └── module_stig.py # DISA STIGs (167 checks)
├── shared_components/ # Shared library
│ └── audit_common.py # Caching, parallel, /proc reads (2,174 lines)
├── logs/ # Structured log files (auto-created)
├── reports/ # Generated reports (auto-created)
├── README.md # This file
├── LICENSE # MIT License
├── CHANGELOG.md # Version history
├── SECURITY.md # Security policy
├── CONTRIBUTING.md # Contribution guidelines
└── .gitignore # Git ignore rules
```
## 🤝 贡献
我们欢迎您的贡献!以下是您可以提供帮助的方式:
### 贡献方式
1. **🐛 报告 Bug**:[ Issue](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)
2. **💡 提出功能建议**:[请求增强](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)
3. **📝 改进文档**:修复错误,添加示例
4. **💻 编写代码**:实现功能,修复 Bug
5. **🛡️ 添加检查**:创建新的安全检查
6. **🔍 审查 PR**:协助审查 Pull Request
### 贡献流程
1. **Fork** 该仓库
2. **创建** 功能分支 (`git checkout -b feature/amazing-feature`)
3. **进行** 更改
4. **彻底** 测试(root 和非 root 环境)
5. 使用清晰的信息**提交** (`git commit -m 'Add amazing feature'`)
6. **推送** 到您的 Fork (`git push origin feature/amazing-feature`)
7. **发起** Pull Request
### 开发设置
```
# 克隆你的 fork
git clone https://github.com/YOUR_USERNAME/Linux-Security-Audit-Project.git
cd Linux-Security-Audit-Project
# 创建开发 branch
git checkout -b feature/your-feature
# 验证 directory 结构
ls modules/ shared_components/
# 进行更改并测试
python3 linux_security_audit.py --list-modules
sudo python3 linux_security_audit.py -m YourModule --profile
# 运行 tests(如果可用)
python3 -m pytest tests/
```
### 编码标准
- 遵循 PEP 8 风格指南
- 尽可能使用类型提示
- 编写全面的 docstring
- 为复杂的逻辑添加行内注释
- 包含错误处理
- 测试 root 和非 root 执行环境
📖 **[完整的开发指南 →](../../wiki/Development-Guide)**
## 📄 许可证
该项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
### MIT 许可证摘要
✅ **授权**:
- 商业用途
- 修改
- 分发
- 私人使用
✅ **条件**:
- 许可证和版权声明
✅ **限制**:
- 无责任
- 无担保
## 🆘 支持
### 获取帮助
1. **📖 查阅文档**:从 [Wiki](../../wiki/Home) 开始
2. **🔍 搜索 Issue**:查找 [现有 Issue](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)
3. **❓ 阅读 FAQ**:查看[常见问题解答](../../wiki/Frequently-Asked-Questions-(FAQ))
4. **🔧 故障排除**:查阅[故障排除指南](../../wiki/Troubleshooting-Guide)
5. **💬 创建 Issue**:[创建新 Issue](https://github.com/Sandler73/Linux-Security-Audit-Project/issues/new)
### Issue 指南
创建 Issue 时,请包含:
**对于 Bug 报告**:
- 问题的清晰描述
- 复现步骤
- 预期与实际行为
- 环境详情(OS、Python 版本)
- 错误消息和日志
- 截图(如适用)
**对于功能请求**:
- 用例描述
- 为什么需要它
- 提议的实现方式
- 对其他用户的好处
### 社区
- **GitHub Issues**:Bug 报告和功能请求
- **Pull Requests**:代码贡献
- **Discussions**:问题和想法(如已启用)
- **Wiki**:全面的文档
## 🌟 致谢
### 标准组织
该项目实现了以下机构的指南:
- **[CIS](https://www.cisecurity.org/)** - Center for Internet Security
- **[NIST](https://www.nist.gov/cyberframework)** - National Institute of Standards and Technology
- **[DISA](https://public.cyber.mil/stigs/)** - Defense Information Systems Agency
- **[NSA](https://www.nsa.gov/What-We-Do/Cybersecurity/)** - National Security Agency
- **[CISA](https://www.cisa.gov/)** - Cybersecurity and Infrastructure Security Agency
- **[ENISA](https://www.enisa.europa.eu/)** - European Union Agency for Cybersecurity
- **[ISO](https://www.iso.org/)** - International Organization for Standardization
### 安全社区
感谢开源安全社区的:
- 安全研究和漏洞披露
- 框架开发和维护
- 最佳实践文档
- 工具开发和测试
## 📊 项目统计
- **版本**:2.0
- **发布日期**:2026 年 3 月
- **总检查项**:1,207(已验证)
- **模块**:8 个安全框架
- **输出格式**:5 种 (HTML、CSV、JSON、XML、Console)
- **评分方法**:3 种(简单、加权、严重性调整)
- **Python 版本**:3.7+
- **许可证**:MIT
- **状态**:积极开发中
## 🔗 快速链接
### 文档
- [Wiki 首页](../../wiki/Home)
- [快速开始](../../wiki/Quick-Start-Guide)
- [使用指南](../../wiki/Usage-Guide)
- [模块文档](../../wiki/Module-Documentation)
- [框架参考](../../wiki/Framework-Reference)
### 项目
- [GitHub 仓库](https://github.com/Sandler73/Linux-Security-Audit-Project)
- [Issue](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)
- [Pull Request](https://github.com/Sandler73/Linux-Security-Audit-Project/pulls)
- [发布](https://github.com/Sandler73/Linux-Security-Audit-Project/releases)
### 标准
- [CIS Benchmarks](https://www.cisecurity.org/cis-benchmarks/)
- [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework)
- [DISA STIGs](https://public.cyber.mil/stigs/)
- [NSA Cybersecurity](https://www.nsa.gov/What-We-Do/Cybersecurity/)
- [CISA Resources](https://www.cisa.gov/)
**⭐ 如果该项目能帮助您保护 Linux 系统的安全,请考虑给它点个 Star! ⭐**
**[⬆ 返回顶部](#linux-security-audit-project)**
用 ❤️ 为 Linux 安全社区打造
**[📖 文档](../../wiki/Home)** • **[🐛 报告 Bug](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)** • **[✨ 请求功能](https://github.com/Sandler73/Linux-Security-Audit-Project/issues)**
标签:Python, 应用安全, 无后门, 系统加固, 自动化运维, 逆向工具