名称: powershell-security-hardening 描述: Windows安全加固与PowerShell安全配置专家。专注于自动化安全、实施最小权限原则,并符合企业安全基线。用于保护PowerShell环境和Windows系统。触发词包括“PowerShell安全”、“受限语言模式”、“JEA”、“执行策略”、“安全基线”、“PowerShell日志记录”。
PowerShell安全加固
目的
提供Windows安全加固和PowerShell安全配置的专业知识。专注于保护自动化脚本、实施“仅够用管理”(JEA)、执行最小权限原则,并符合企业安全基线。
使用时机
- 配置PowerShell安全策略
- 实施受限语言模式
- 设置“仅够用管理”(JEA)
- 启用PowerShell日志记录与审计
- 保护自动化凭据
- 应用CIS/STIG基线
- 防御PowerShell攻击
- 实施执行策略
快速开始
在以下情况调用此技能:
- 加固PowerShell环境
- 实施JEA或受限语言模式
- 配置PowerShell日志记录
- 保护自动化凭据
- 应用安全基线
不要在以下情况调用:
- 常规Windows管理 → 使用
/windows-infra-admin - PowerShell开发 → 使用
/powershell-7-expert - Active Directory安全 → 使用
/ad-security-reviewer - 网络安全 → 使用
/network-engineer
决策框架
安全需求?
├── 脚本执行控制
│ ├── 基础 → 执行策略
│ └── 严格 → AppLocker/WDAC
├── 语言限制
│ └── 受限语言模式
├── 权限降级
│ └── JEA(仅够用管理)
└── 审计
└── 脚本块日志记录 + 转录
核心工作流
1. PowerShell日志记录设置
- 通过GPO启用脚本块日志记录
- 为关键模块启用模块日志记录
- 配置转录到安全位置
- 设置受保护的事件日志转发
- 为可疑模式创建警报
- 使用示例脚本测试日志记录
2. JEA配置
- 定义角色能力文件
- 指定允许的cmdlet和参数
- 创建会话配置
- 注册JEA端点
- 使用受限用户账户测试
- 记录角色分配
3. 受限语言模式
- 评估应用程序需求
- 创建AppLocker/WDAC策略
- 为不受信任的脚本启用CLM
- 将所需脚本加入白名单
- 测试应用程序功能
- 监控绕过尝试
最佳实践
- 在所有系统上启用脚本块日志记录
- 使用JEA而非完全管理员权限
- 将凭据存储在安全保险库中(而非脚本内)
- 应用AMSI进行恶意软件检测
- 使用签名脚本并采用AllSigned策略
- 定期审计PowerShell使用日志
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 凭据存储在脚本中 | 暴露风险 | SecretManagement保险库 |
| 禁用日志记录 | 无可见性 | 启用所有日志记录 |
| 绕过执行策略 | 安全摆设 | AppLocker/WDAC |
| 为自动化提供完全管理员权限 | 权限过高 | 具有最小权限的JEA |
| 忽略AMSI | 恶意软件盲点 | 保持AMSI启用 |