SDimitri05/windows-11-stig-remediation

GitHub: SDimitri05/windows-11-stig-remediation

基于 PowerShell 和 Tenable 的 Windows 11 DISA STIG 自动化修复项目,涵盖扫描验证、策略实施、回滚测试和完整证据文档。

Stars: 0 | Forks: 0

Windows 11 STIG 修复实验

基于 Windows 11 的 DISA STIG 实施、PowerShell 自动化以及 Tenable 验证

Windows 11 DISA STIG Tenable PowerShell Security Hardening MIT License

Windows 11 STIG Remediation Lab banner

## 目录 - [概述](#overview) - [目标](#objectives) - [项目范围](#project-scope) - [主要修复组](#primary-remediation-groups) - [STIG 覆盖摘要](#stig-coverage-summary) - [所用工具](#tools-used) - [仓库结构](#repository-structure) - [扫描进展](#scan-progression) - [重要发现与经验总结](#notable-findings-and-lessons-learned) - [已知问题](#known-issue) - [证据](#evidence) - [脚本](#scripts) - [相关项目](#related-projects) - [许可证](#license) ## 概述 本仓库记录了一个围绕迭代加固、验证和证据收集构建的 **Windows 11 DISA STIG 修复实验**。 该项目侧重于识别 **Tenable Vulnerability Management** 中未通过的 Windows 11 STIG 发现,利用 **PowerShell 自动化** 进行修复,并通过重复的扫描周期验证进度。它还记录了现实世界中的修复行为,例如: - **FAILED → WARNING → PASSED** 进展过程 - 策略支持与仅注册表强制执行的区别 - 由相关配置更新引起的间接 STIG 状态变更 - 某些加固措施带来的操作副作用 该项目是作为一个务实的 **安全工程 / 蓝队** 项目进行的,而不仅仅是一项清单检查任务。 ## 目标 - 修复选定的 **Windows 11 DISA STIG** 发现 - 使用 **PowerShell** 自动化执行强制策略 - 使用 **Tenable** 扫描验证修复效果 - 记录跨多次扫描迭代的修复生命周期 - 保留适合作为公开 **GitHub 作品集项目** 的证据 ## 项目范围 该项目最初围绕 **10 个修复组** 制定,但最终影响了 **大约 12 个或更多的 STIG**,因为某些控制在相关修复、策略刷新或扫描器重新评估后间接改变了状态。 本仓库侧重于经过积极处理和记录的修复组: - **Secondary Logon Service(二次登录服务)** - **Lock Screen Hardening(锁屏加固)** - **Account Lockout Policy(账户锁定策略)** - **Password Policy(密码策略)** 此外: - **SMBv1 相关 STIG** 在其他修复后间接解决 - **Windows Firewall STIG (WN11-00-000135 — 必须安装并启用基于主机的防火墙)** 因其对身份验证扫描行为的影响而被有意推迟 更广泛路线图中的某些后续组在此未完成,因为项目要求已得到满足并超越。 ## 主要修复组 ### 1) Secondary Logon Service(二次登录服务) - **WN11-00-000175** — 必须禁用 Secondary Logon 服务 ### 2) Lock Screen Hardening(锁屏加固) - **WN11-CC-000005** — 必须禁用从锁屏访问摄像头 - **WN11-CC-000010** — 必须禁用锁屏幻灯片放映 ### 3) Windows Firewall(已实施、测试并回滚) - **WN11-00-000135** — 必须安装并启用基于主机的防火墙 此控制使用 PowerShell 实施,并通过以下方式验证: - Verify 模式(基线状态) - Apply 模式(启用防火墙) - Rollback 模式(禁用防火墙) ### 观察到的行为 启用 Windows Firewall 后: - Tenable 扫描仍成功执行 - 然而,**Audits / Compliance(审计/合规)选项卡消失了** - 扫描持续时间显著下降 这表明 **身份验证合规性检查未完全执行**。 ### 调查 引入了额外的防火墙规则允许: - Windows Management Instrumentation (WMI) - File and Printer Sharing (SMB) - Remote Event Log Management 尽管进行了这些调整,问题仍然存在。 ### 决定 防火墙配置被 **回滚到原始状态**(禁用),以便: - 恢复身份验证扫描的可见性 - 在其余 STIG 中保持一致的验证 ### 结果 - 修复已在技术上实施并测试 - 识别并分析了操作影响 - 回滚后有意推迟该控制 ### 为什么这很重要 此场景展示了一个现实世界中的安全工程挑战: - 应用控制会影响监控和验证系统 - 安全性必须与操作可见性相平衡 - 修复决策有时需要回滚和重新评估 这代表了真实的企业环境,其中必须调整控制而非盲目执行。 ### 4) SMBv1 Hardening(间接修复) - **WN11-00-000160** — 必须在系统上禁用 SMBv1 - **WN11-00-000165** — 必须在 SMB 服务器上禁用 SMBv1 - **WN11-00-000170** — 必须在 SMB 客户端上禁用 SMBv1 *(基线中已合规)* 这些 STIG 未通过专用脚本直接修复。 - **WN11-00-000170** 在基线扫描中已合规 - 其余 SMBv1 相关发现 **间接** 转换为合规状态,发生在以下修复之后: - **WN11-00-000175 (Secondary Logon Service)** 此行为突显了某些 STIG 控制如何可以作为更广泛的系统配置更改的副作用而被满足。 ### 5) Account Lockout Policy(账户锁定策略) - **WN11-AC-000005** — 账户锁定持续时间 - **WN11-AC-000010** — 错误登录尝试阈值 - **WN11-AC-000015** — 在此时间后重置账户锁定计数器 ### 6) Password Policy(密码策略) - **WN11-AC-000020** — 密码历史记录 - **WN11-AC-000030** — 密码最短使用期限 - **WN11-AC-000035** — 密码最小长度 - **WN11-AC-000040** — 密码复杂性 ## STIG 覆盖摘要 | 类别 | STIG IDs | 备注 | |---|---|---| | Secondary Logon | WN11-00-000175 | 服务加固 | | Lock Screen | WN11-CC-000005, WN11-CC-000010 | 包含 FAILED → WARNING → PASSED 进展过程 | | Windows Firewall | WN11-00-000135 | 已实施;影响了身份验证扫描(审计数据不可用) | | SMBv1 Hardening | WN11-00-000160, WN11-00-000165, WN11-00-000170 | 部分基线合规;其余发现间接解决 | | Account Lockout | WN11-AC-000005, WN11-AC-000010, WN11-AC-000015 | 分组策略修复 | | Password Policy | WN11-AC-000020, WN11-AC-000030, WN11-AC-000035, WN11-AC-000040 | 分组策略修复 | ## 所用工具 - **Windows 11** - **Tenable Vulnerability Management** - **PowerShell 5.1** - **DISA Windows 11 STIG** - **Local Security Policy / Group Policy 支持的注册表路径** - **GitHub**(用于文档和作品集展示) ## 仓库结构 ``` windows-11-stig-remediation/ │ ├── README.md ├── images/ │ ├── windows11-stig-banner-light.png │ ├── windows11-stig-banner-dark.png │ ├── scans/ │ ├── scan-1-baseline.pdf │ ├── scan-2-secondary-logon.pdf │ ├── scan-3-lock-screen-v1.pdf │ ├── scan-4-lock-screen-v2.pdf │ ├── scan-5-account-lockout.pdf │ └── scan-6-password-policy.pdf │ ├── scripts/ │ ├── Invoke-STIG-SecondaryLogon.ps1 │ ├── Invoke-STIG-LockScreenHardening.ps1 │ ├── Invoke-STIG-WindowsFirewall.ps1 │ ├── Invoke-STIG-AccountLockout.ps1 │ └── Invoke-STIG-PasswordPolicy.ps1 │ ├── evidence/ │ ├── secondary-logon/ │ ├── lock-screen/ │ ├── firewall/ │ ├── smbv1/ │ ├── account-lockout/ │ └── password-policy/ │ └── reports/ ├── remediation-summary.md └── final-report.md ``` ## 扫描进展 | 扫描 | 重点 | 高层级结果 | |---|---|---| | Scan 1 | 基线 | 识别出初始未通过发现 | | Scan 2 | Secondary Logon | Secondary Logon 已修复;SMBv1 相关 STIG 也转为合规状态 | | Scan 3 | Lock Screen v1 | 一个锁屏设置通过;另一个改善为警告 | | Scan 4 | Lock Screen v2 | 锁屏幻灯片放映设置达到通过状态 | | Scan 5 | Account Lockout | 账户锁定策略发现已修复 | | Scan 6 | Password Policy | 密码策略发现已修复 | ## 重要发现与经验总结 ### 1) 策略支持的强制执行很重要 某些管理模板设置仅通过设置值并不能完全满足要求,除非该值是在预期的 **策略支持的注册表路径** 下强制执行的。 ### 2) 改善并不意味着合规 一个锁屏设置在达到 **PASSED** 之前,从 **FAILED** 变为 **WARNING**,这表明扫描器可以区分: - 部分配置 - 正确的值位置 - 完全合规的策略强制执行 ### 3) 安全控制会影响工具 Windows Firewall 修复突显了一个重要的操作现实:一个控制在技术上可能是正确的,但仍然会干扰身份验证扫描行为。 ### 4) 部分 STIG 发生了间接变化 一些发现即使未被直接针对也改变了状态,原因可能是: - 重启效应 - 策略刷新 - 相关控制交互 - 扫描器重新评估行为 ### 5) 部分 STIG 可以被间接满足 SMBv1 相关发现转换为合规状态而未进行直接修复,这展示了某些控制如何依赖于更广泛的系统状态,而非孤立的配置更改。 这正是该项目作为现实世界加固练习的价值的一部分。 ## 已知问题 ### Windows Firewall STIG (WN11-00-000135) 在实施 Windows Firewall STIG 期间: - 防火墙通过 PowerShell 成功启用 - 扫描执行成功完成 - 然而,**Audits / Compliance 选项卡消失了** - 扫描持续时间显著下降(约 6 分钟) ### 分析 此行为表明身份验证扫描被中断,原因可能是防火墙限制影响了: - WMI (Windows Management Instrumentation) - SMB / RPC 通信 - 远程事件日志访问 - 基于凭据的合规性检查 ### 缓解尝试 调整了防火墙规则以允许: - WMI 流量 - File and Printer Sharing - Remote Event Log Management 尽管进行了这些更改,身份验证扫描可见性未能恢复。 ### 最终行动 系统回滚到原始状态(禁用防火墙),以便: - 恢复完整的扫描功能 - 确保对剩余 STIG 的准确验证 ### 结论 - STIG 修复在技术上是有效的 - 该问题突显了 **安全控制与扫描工具之间的交互** - 生产环境中需要额外的规则调整 ### 状态 - 已实施 → 已测试 → 已调查 → 已回滚 - 推迟以供将来优化 ## 证据 本仓库的证据类别: ### Secondary Logon - Verify 输出 - Apply 输出 - 服务状态前后对比 ### 锁屏加固 - 相关 Tenable 审计详细信息截图 - 脚本 Verify / Apply 输出 - `WN11-CC-000010` 未通过截图 - `WN11-CC-000010` 警告截图 - `WN11-CC-000010` 通过截图 ### Windows Firewall - Verify 模式输出(基线状态) - Apply 模式输出(防火墙已启用) - Rollback 模式输出(防火墙已禁用) - 防火墙状态验证(启用与禁用) - 由于身份验证扫描中断,无合规性截图 ### 账户锁定策略 - 相关 Tenable 审计详细信息截图 - 脚本 Verify / Apply 输出 ### 密码策略 - 相关 Tenable 审计详细信息截图 - 脚本 Verify / Apply 输出 示例: ![Secondary Logon Verify](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/85ae8d8e45012229.png) ![Secondary Logon Apply](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5674f4d2bf012231.png) ## 脚本 所有修复脚本遵循基于以下内容的可重用结构: - `-Mode Verify|Apply|Rollback` - 前后状态捕获 - 模式感知摘要 - 下一步指导 - 必要时的可选重启提示 这使得脚本更易于测试、记录,并可在多个 STIG 修复类别中重用。 当前脚本集: - `Invoke-STIG-SecondaryLogon.ps1` - `Invoke-STIG-LockScreenHardening.ps1` - `Invoke-STIG-WindowsFirewall.ps1` - `Invoke-STIG-AccountLockout.ps1` - `Invoke-STIG-PasswordPolicy.ps1` ## 相关项目 - [漏洞管理项目实施](https://github.com/SDimitri05/vulnerability-management-program) - [程序化漏洞修复](https://github.com/SDimitri05/programmatic-vulnerability-remediation) ## 许可证 本项目采用 **MIT License** 授权。
标签:AI合规, BlazeGraph, CISA项目, CSV导出, DevSecOps, DISA STIG, GPT, IPv6, IT 运维, Libemu, OpenCanary, PowerShell, RFI远程文件包含, Tenable, Windows 11, Windows 安全, 上游代理, 安全合规, 安全基线, 安全脚本, 教学环境, 漏洞管理, 端点安全, 系统加固, 网络代理, 网络安全, 美国政府标准, 自动化运维, 补丁管理, 隐私保护