L1tf

时间:2018-08-21 12:52:33

标签: powershell

当我运行此脚本时:

$SaveExecutionPolicy = Get-ExecutionPolicy 
#  
Set-ExecutionPolicy RemoteSigned -Scope Currentuser 

Import-Module .\SpeculationControl.psd1 
Get-SpeculationControlSettings 

Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

它将给出以下输出:

  

有关以下输出的更多信息,请参阅   https://support.microsoft.com/en-in/help/4074629

     

CVE-2017-5715 [分支目标的推测控制设置   注射]

     

为分支目标注入缓解提供了硬件支持:   错误的Windows OS支持缓解分支目标注入   目前:对分支目标注入的真正Windows OS支持   启用了缓解:分支目标的错误Windows OS支持   系统策略禁用了注入缓解:False Windows OS   缺少支持分支目标注入缓解的支持   支持的硬件:True

     

CVE-2017-5754 [恶意数据缓存加载]的推测控制设置

     

硬件需要内核VA阴影:真正的Windows OS支持   存在内核VA阴影:内核VA的True Windows OS支持   启用了阴影:真正的Windows OS支持PCID性能   启用了优化:True [安全性不是必需的]

     

CVE-2018-3639的推测控制设置[推测商店   绕过]

     

存在Windows OS对推测性存储绕过禁用的支持:   错误

     

CVE-2018-3620 [L1终端故障]的推测控制设置

     

硬件容易受到L1终端故障的影响:真正的Windows OS支持   存在用于L1终端故障缓解的解决方案:错误的Windows OS支持   L1终端故障缓解的启用:False

     

建议的动作

     
      
  • 安装由设备OEM提供的BIOS /固件更新   为分支目标注入缓解提供硬件支持。      
        
    • 安装Windows的最新可用更新,并支持推测控制缓解措施。 *请遵循启用指南   Windows Client支持的推测控制缓解措施   在https://support.microsoft.com/help/4073119
    • 中   
  •   
     

BTIHardwarePresent:假BTIWindowsSupportPresent
  :真BTIWindowsSupportEnabled:假   BTIDisabledBySystemPolicy:False   BTIDisabledByNoHardwareSupport:True KVAShadowRequired
  :正确KVAShadowWindowsSupportPresent:正确   KVAShadowWindowsSupportEnabled:True KVAShadowPcidEnabled
  :True SSBDWindowsSupportPresent:False   SSBDHardwareVulnerable:SSBDHardwarePresent
  :False SSBDWindowsSupportEnabledSystemWide:False   L1TFHardwareVulnerable:True L1TFWindowsSupportPresent
  :假L1TFWindowsSupportEnabled:假L1TFInvalidPteBit   :0 L1DFlushSupported:错误

我想以此自动化:

if ($string -like '*L1TFHardwareVulnerable : True*') { }
{
   write-output "1"   (stderr)
}
else
{
   Write-Output "0" (stdout)
}

总脚本如下:

$SaveExecutionPolicy = Get-ExecutionPolicy 
#  
Set-ExecutionPolicy RemoteSigned -Scope Currentuser 

Import-Module .\SpeculationControl.psd1 
Get-SpeculationControlSettings 

Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

if ($string -like '*L1TFHardwareVulnerable : True*') { }
{
   write-output "1"
}
else
{
   Write-Output "0"
}

有人可以帮我吗?预先感谢

1 个答案:

答案 0 :(得分:0)

Get-SpeculationControlSettings的输出分配给变量并检查该对象的属性:

$Settings = Get-SpeculationControlSettings 
if($Settings.L1TFHardwareVulnerable -and -not($Settings.L1TFWindowsSupportEnabled))
{
    return 1
}
else
{
    return 0
}

有关逻辑运算符(例如-and-not)的更多信息,请参见about_Logical_Operators help file