PowerShell 安全运行指南
1. 应用程序控制
应用程序控制解决方案可防止未经授权的应用程序运行。除了第三方应用(如 Trellix)外,Windows 10 及更高版本自带两个内置应用:Windows Defender 应用程序控制(WDAC)和 AppLocker。它们可用于创建策略,强制执行允许执行的应用程序白名单,并阻止其他任何程序运行。由于 AppLocker 已停止开发,因此推荐使用 WDAC。这些解决方案适用于企业环境,支持集中控制。目前暂未发现适用于 Linux 或 macOS 上 PowerShell 的相关解决方案。当 PowerShell 在默认 WDAC 策略下运行时,可通过语言模式功能,使受信任的模块和脚本比不受信任的脚本获得更多访问权限。
2. 语言模式
语言模式用于控制在受应用程序控制策略约束的 PowerShell 环境中脚本的运行方式。需要注意的是,网上很多文章介绍使用变量设置语言模式,这仅用于测试代码在特定模式下的行为,并不安全。微软表示,使用语言模式强制执行安全策略的唯一方法是通过 WDAC 等应用程序。语言模式有以下三种:
- FullLanguage :在未运行应用程序控制策略时为默认模式。
- ConstrainedLanguage :防止创建和使用某些 .NET 类型,限制从 PowerShell 访问 C# 代码,还会限制对 ScheduledJob 等功能的访问。许多脚本在受限语言模式下无法运行,需要进行签名,并将发布机构添加到白名单中。
- NoLanguage :完全禁用
超级会员免费看
订阅专栏 解锁全文

104

被折叠的 条评论
为什么被折叠?



