Sandler73/Linux-Security-Audit-Project

GitHub: Sandler73/Linux-Security-Audit-Project

一款模块化的 Linux 系统安全审计框架,支持对 8 大主流安全合规框架进行超过一千项检查并提供自动化修复方案。

Stars: 6 | Forks: 2

# Linux 安全审计项目
[![Version](https://img.shields.io/badge/version-2.0-blue.svg)](https://github.com/Sandler73/Linux-Security-Audit-Project) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/platform-Linux-lightgrey.svg)](https://www.kernel.org/) [![Security Focus](https://img.shields.io/badge/Focus-CIS%20%7C%20NIST%20%7C%20STIG%20%7C%20CISA%20%7C%20NSA-red.svg)]() [![Sponsor](https://img.shields.io/badge/Sponsor-Support%20the%20Project-pink.svg)](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, 应用安全, 无后门, 系统加固, 自动化运维, 逆向工具