Solution:
Root Cause: LSA Protected Process Light (PPL) Code Integrity Block
When Credential Guard is enabled, Windows automatically enforces LSA Protection (Protected Process Light / PPL). Under LSA PPL,
lsass.exe will only load DLL modules that are digitally signed with a valid Microsoft WHQL or Microsoft Software Verification Root certificate. Any third-party Security Support Provider (SSP) or Authentication Package (AP) lacking an ELAM/PPL-compatible signature is blocked at kernel load time.
# Diagnostic Verification:
1. Open
Event Viewer (
eventvwr.msc).
2. Navigate to
Applications and Services Logs -> Microsoft -> Windows -> CodeIntegrity -> Operational.
3. Search for
Event ID 3033 or
3004.
4. Note the file path of the blocked module (e.g.,
C:\Windows\System32\customssp.dll) and verify error message: *Code Integrity determined that a process (\Device\HarddiskVolume2\Windows\System32\lsass.exe) attempted to load a image that did not meet the Microsoft signing level requirements*.
# Step-by-Step Fix:
1.
Identify and Audit the Registered Module: Inspect LSA security packages in the Windows Registry:
powershell
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'Security Packages'
2.
Update Module to WHQL/PPL Signed Version: Contact the software vendor to obtain an updated binary signed with a Microsoft PPL-compatible certificate.
3.
Enable LSA Audit Mode (Temporary Troubleshooting): Test whether PPL signature enforcement is the sole root cause by setting LSA Protection to Audit Mode:
powershell
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'AuditLevel' -Value 8 -Type DWord
*Reboot the machine. If the application works, the binary signature is confirmed as the blocker.*
4.
Remove Unsigned Package (If Obsolete): Edit the
Security Packages multi-string key in
HKLM\SYSTEM\CurrentControlSet\Control\Lsa and remove the unsigned DLL name.
# Prevention & Long-Term Monitoring:
Verify all custom authentication binaries prior to deployment using PowerShell:powershell
Get-AuthenticodeSignature -FilePath 'C:\Windows\System32\vendor_ssp.dll'