1) Signatur pruefen
$sig = Get-AuthenticodeSignature .\setup.exe
$sig | Select-Object Status, SignerCertificate
if ($sig.Status -ne 'Valid') { throw 'Signatur ungueltig.' }
2) Hash validieren
$expected = 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789'
$actual = (Get-FileHash .\setup.exe -Algorithm SHA256).Hash
if ($actual -ne $expected) { throw 'Hash mismatch.' }
3) Tamper Checks
# Nur von freigegebenem Pfad installieren
$source = Split-Path -Path .\setup.exe -Parent
if ($source -notlike '\\fileserver\trusted*') { throw 'Untrusted source path.' }
# Optional: Mark-of-the-Web entfernen nur nach Pruefung
# Unblock-File .\setup.exe
4) Trusted Sources Policy
- Nur Herstellerseiten oder internes Software-Repository
- Versions- und Hash-Archiv pflegen
- Freigabeprozess mit Vier-Augen-Prinzip