Estou tentando entender por que minha política do WDAC não está permitindo que os programas que eu permiti usando os logs do Visualizador de Eventos sejam executados.
Foi assim que fiz minha lista de permissões da Política WDAC com base nos logs de auditoria do Visualizador de Eventos:
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level FilePath –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
Eu só quero usar o FilePath porque a política não precisará ser atualizada quando os programas forem atualizados para versões mais recentes.
Algumas das partes responsáveis pela lista de permissões de aplicativos da política do EventViewer:
<Allow ID="ID_ALLOW_A_6" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7zFM.exe FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7zFM.exe" />
<Allow ID="ID_ALLOW_A_14" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7-zip.dll FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7-zip.dll" />
<Allow ID="ID_ALLOW_A_11" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\Mullvad VPN\resources\mullvad-daemon.exe FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\Mullvad VPN\resources\mullvad-daemon.exe" />
depois de criar essa política, fiz a mesclagem com uma política que fiz anteriormente que é baseada no Microsoft ISG (modo assinado e respeitável) e na política final, o resultado da mesclagem, estas são as regras de política que defini:
<Rules>
<Rule>
<Option>Enabled:Unsigned System Integrity Policy</Option>
</Rule>
<Rule>
<Option>Enabled:UMCI</Option>
</Rule>
<Rule>
<Option>Enabled:Inherit Default Policy</Option>
</Rule>
<Rule>
<Option>Enabled:Update Policy No Reboot</Option>
</Rule>
<Rule>
<Option>Enabled:Intelligent Security Graph Authorization</Option>
</Rule>
<Rule>
<Option>Enabled:Developer Mode Dynamic Code Trust</Option>
</Rule>
<Rule>
<Option>Enabled:Revoked Expired As Unsigned</Option>
</Rule>
<Rule>
<Option>Required:Enforce Store Applications</Option>
</Rule>
<Rule>
<Option>Required:WHQL</Option>
</Rule>
<Rule>
<Option>Enabled:Dynamic Code Security</Option>
</Rule>
<Rule>
<Option>Disabled:Runtime FilePath Rule Protection</Option>
</Rule>
<Rule>
<Option>Enabled:Invalidate EAs on Reboot</Option>
</Rule>
<Rule>
<Option>Enabled:Allow Supplemental Policies</Option>
</Rule>
<Rule>
<Option>Enabled:Advanced Boot Options Menu</Option>
</Rule>
<Rule>
<Option>Enabled:Unsigned System Integrity Policy</Option>
</Rule>
A princípio, pensei que os programas executados no usuário SYSTEM fossem drivers de modo Kernel. lendo o comentário e a resposta abaixo, percebi que não é o caso. o que me fez pensar assim foi 1)
aqui : ao lado de "FilePath"
ele diz: "As regras do FilePath se aplicam apenas aos binários do modo de usuário e não podem ser usadas para permitir drivers do modo kernel."
e 2)
Quando usei isso para criar uma lista de permissões de política do WDAC com base nos logs do Visualizador de Eventos, apenas o programa em execução como SYSTEM não pôde ser executado e outros programas, como o 7-zip, tiveram permissão para serem executados.
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level FileName -Fallback FilePath –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
A política WDAC criada usando isso permitiu que todos os programas que teriam sido bloqueados pelo WDAC fossem executados:
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level hash –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
Não, os processos executados como SYSTEM não estão sendo executados no modo kernel. Uma breve explicação é:
Por exemplo, aqui está o processo do kernel no qual todos os drivers do modo kernel são executados (PID 4):
Não tenho certeza sem ver sua regra FilePath ou como você a criou, mas há muitas razões pelas quais pode não funcionar:
*
Runtime FilePath Rule Protection
EDIT: Eu pessoalmente não uso caminhos de arquivos,
\Device\HarddiskVolume4\
pois o número do volume não é garantido. Tente usar-ScanPath
para gerar regras de caminho de arquivo válidas: