【问题标题】:Prevent bypassing PowerShell execution policy防止绕过 PowerShell 执行策略
【发布时间】:2019-08-02 19:10:08
【问题描述】:

我们在 RDS 环境中安装了 PowerShell。它目前用于远程管理和App-V 虚拟应用程序发布等任务。据我了解,绕过受限执行策略相当容易。

但是,我找不到任何有用的信息来防止绕过执行策略(或使其变得更加困难)。我正在考虑使用文件屏蔽 (AppLocker) 来阻止 PowerShell 文件,但我想攻击者可以只使用附加到 Microsoft Office 文件的 VBA 脚本来执行 PowerShell 脚本。

目前我们专注于监控,但我希望更多地关注预防。

【问题讨论】:

  • PowerShell 的执行策略不是安全边界;这是一项安全功能。

标签: powershell malware executionpolicy


【解决方案1】:

你想要达到的目标毫无意义。有很多方法可以绕过执行策略。事实上,它并非出于安全原因而设计。

  1. 随处安装 PS 5+ 并实现脚本块日志记录。您可以将所有日志放在某个共享目录中以分析\摄取它们。
  2. 到处移除 PS2
  3. 阻止来自网络文件的宏
  4. 使用应用程序白名单

这应该是一个很好的起点。

PS:您还可以监控事件 400,以便在重新安装 PS2 时检测绕过 PS2(这是您不希望在用户计算机上出现的情况)。

【讨论】:

    【解决方案2】:

    实际上,有一些方法可以防止滥用 PowerShell(并使绕过执行策略变得毫无用处):

    1. 配置 AppLocker:还有锁定脚本
    2. 将 PowerShell 配置为使用约束模式,因此无法执行 .NET 代码
    3. 对于应支持 .NET 代码的您自己的脚本,您可以使用代码签名者证书对脚本进行签名(这些将允许在受限模式 + AppLocker 下运行)

    除此之外,配置所有 PowerShell 命令的日志记录并通过中心位置发送它们(以便 IDS 可以监控)也是一个很好的做法。

    请参阅 Detecting Offensive PowerShell Attack Tools,了解有关如何实现此目的的更多详细信息。

    【讨论】:

    • 最好管理管理访问而不是试图阻止 PowerShell 代码运行,这在安全方面确实是错误的方法。 (PowerShell 是一个程序,而不是安全边界。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2020-10-08
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多