浅析PowerShell攻击的检测与防御

2026-04-08 国家保密科技测评中心

五、针对PowerShell攻击的防御方法

在Windows 7及更高版本的系统中,PowerShell是内置组件,无法直接卸载。为了降低PowerShell攻击的风险隐患,提高系统的安全性,可采取以下措施。

升级PowerShell 到更新版本。在命令行中运行“Get-Host”即可查看当前PowerShell的版本号。为使用PowerShell内置的安全特性,建议升级到5.0 以上版本。

检查是否存在旧版本。由于PowerShell支持多版本并存,即使已安装高版本,也应当在命令行中尝试运行形如“PowerShell.exe -version 2 Get-Host”的命令,判断系统中是否依然存在较低版本的PowerShell,避免“降级攻击”。

检查“执行策略”是否已设置为“Restricted”。如果不是,可通过“Set-ExecutionPolicy Restricted”命令进行设置。

限制PowerShell的语言模式。如仅需保留PowerShell最基本的运行环境,不需要调用.Net 框架的类库,则可限制PowerShell支持的语言种类。具体做法是,首先在系统的环境变量中添加名为“__PSLockdownPolicy”的变量,取值为“4”;然后可以在PowerShell命令行中输入“$ExecutionContext.SessionState.LanguageMode” 进行验证,如返回结果由“FullLanguage” 变为“ConstrainedLanguage”,则表明语言模式修改成功。此时,大部分恶意程序都会因无法调用.Net 框架的类库而无法正常运行,从而不会对系统造成显著破坏。

安装杀毒软件并定期升级。一些杀毒软件能够检测PowerShell 脚本文件的恶意特征,有的还能够在执行PowerShell 脚本文件时发现其恶意行为,这也有助于防范恶意PowerShell 脚本的运行。

对于Windows XP系统,由于PowerShell是可选组件,如在日常工作中确实无需使用PowerShell的,还可通过控制面板中的“添加/删除程序”功能卸载该组件。

与此同时,用户还应提高辨别意识,养成良好的上网习惯,不访问来路不明的网站、邮件及其附件,不运行可疑的程序和脚本文件,定期更新杀毒软件和系统补丁,防止PowerShell恶意脚本的植入和运行。

(原载于《保密科学技术》杂志2020年2月刊)

正文暂未发布

当前稿件尚未补充正文内容,后续可在后台完善内容后自动恢复显示。你也可以先返回栏目页浏览其他资讯。

上一篇
下一篇