SuperAPI AI 工具集

powershell-security

安全与审计

查看项目

更新于 10-15 13:54

技能介绍

用途

本技能提供 2025 年现代 PowerShell 安全实践,用于加固 PowerShell 脚本与自动化流程。核心目标是避免在脚本中硬编码凭据,并通过官方模块与系统策略实现凭据保护、权限委派、脚本执行控制和审计。

主要能力

凭据管理与 SecretManagement

推荐使用 Microsoft.PowerShell.SecretManagement 作为 2025 年标准方案,用于安全存储凭据。支持跨平台密钥存储、多种保管库提供程序(如 Azure Key Vault、1Password、KeePass),并可与 Azure Key Vault 集成。提供安装命令、注册保管库、存储/读取/列出/删除密钥的示例,以及使用 SecretManagement 的安全自动化脚本模板。

凭据管理最佳实践

明确禁止硬编码凭据或明文密码,推荐使用 SecretManagement、交互式提示(Get-Credential)或托管标识(Managed Identity)。同时给出 Azure 服务主体认证的示例流程。

Just Enough Administration (JEA)

JEA 可将 PowerShell 远程会话限制为特定 cmdlet 和参数。适用于委派管理任务而不授予完整管理员权限、满足合规要求(SOC 2、HIPAA、PCI-DSS)、生产环境加固以及特权操作审计。技能提供创建角色能力文件、会话配置文件、注册 JEA 端点及连接测试的完整示例,并说明 JEA 审计日志(转录)的启用方式。

Windows Defender 应用控制 (WDAC)

WDAC 替代 AppLocker 用于控制可执行的 PowerShell 脚本。技能提供创建仅允许签名脚本的 WDAC 策略、转换为二进制策略并重启应用的命令示例。

代码签名与执行策略

说明签名脚本的原因(验证完整性、满足安全策略、启用 WDAC 强制、防止篡改),并提供获取代码签名证书、签名脚本、验证签名以及查看/设置执行策略的命令。

约束语言模式

约束语言模式可限制 PowerShell 语言功能以防止恶意代码执行。技能说明如何检查当前语言模式,以及通过环境变量或组策略设置系统级约束模式,并对比 FullLanguage 与 ConstrainedLanguage 的行为差异。

脚本块日志记录

提供通过组策略或注册表启用脚本块日志记录的方法,日志位于 Windows 事件日志中,并给出查询事件 ID 4104 的示例。

输入验证

强调防止注入攻击,推荐使用参数化查询、[ValidatePattern]、[ValidateSet] 等验证属性,并给出错误与正确写法的对比示例。

使用方式

技能以文档形式提供代码示例、安装命令和配置步骤。用户可根据需要复制相应命令执行,例如安装 SecretManagement 模块、注册保管库、创建 JEA 端点或配置 WDAC 策略。所有示例均需在具备相应权限的环境中运行。

适用场景

  • 编写或维护 PowerShell 自动化脚本的开发者与运维人员
  • 需要满足合规要求(SOC 2、HIPAA、PCI-DSS)的组织
  • 生产环境中的特权操作管理与审计
  • 需要委派管理任务而不授予完整管理员权限的场景
  • 需要控制脚本执行(仅允许签名脚本)的环境

限制

资料未提供该技能的具体安装方式、依赖要求、支持的 PowerShell 版本范围(仅提及保持更新至 7.5+)、收费信息或平台限制。部分命令需要管理员权限或特定环境(如 Azure 订阅、域环境)才能执行。