我正在编写一个脚本,可以将其推送到几十台 Windows Server 2012/2012R2 服务器,以启用 FSRM 文件屏幕,当它们检测到特定文件名被写入磁盘时,它会向事件日志中写入警报。
$a = gwmi win32_logicaldisk -filter DriveType=3 | Select -ExpandProperty DeviceID
Install-WindowsFeature -Name FS-Resource-Manager -IncludeManagementTools
New-FsrmFileGroup -Name "CryptoWall File Monitor" -IncludePattern @("*DECRYPT*")
$Notification = New-FsrmAction -Type Event -EventType Warning -Body "Alert text here" -RunlimitInterval 30
foreach ($i in $a){
New-FsrmFileScreen -Path "$i" -IncludeGroup "CryptoWall File Monitor" -Notification $Notification
}
现在,脚本本身运行良好,但有一个小问题:运行时,第一个文件屏幕(通常在 C: 上)具有正确的设置:
Active : False
Description :
IncludeGroup : {CryptoWall File Monitor}
MatchesTemplate : False
Notification : {MSFT_FSRMAction}
Path : C:\
Template :
PSComputerName :
但后续屏幕却没有(请注意下面的 Active : True 输出)
Active : True
Description :
IncludeGroup : {CryptoWall File Monitor}
MatchesTemplate : False
Notification : {MSFT_FSRMAction}
Path : D:\
Template :
PSComputerName :
应该-Active
在运行New-FSRMFileScreen
cmdlet 时使用标志明确设置“Active”属性,我非常确信我不会以某种方式将其插入到循环的后续迭代中。
这是一个问题,因为我们确实希望在端点感染 Cryptowall 时将文件写入磁盘。恶意软件通常会将文件写入受影响的目录,并附带有关如何支付赎金的“有用”说明,这是为了尽快警告我们发生了什么事情。如果文件筛选器主动阻止将文件写入磁盘,事后识别受影响的文件将变得更加困难。
那么这是一个错误,还是我犯了一个错误?
答案1
您是否出于某种原因没有传递开关-Active:$false
以明确将选项设置为 false?我还没有测试过,但这肯定似乎应该强制它始终关闭。