요약
Microsoft Defender MDATP(Advanced Threat Protection) 포털에서 수집하는 블록 이벤트의 수가 매우 방대할 수 있습니다. 이러한 이벤트는 CI(코드 무결성) 엔진에서 생성하며 ExploitGuardNonMicrosoftSignedBlocked ActionType으로 식별할 수 있습니다.
엔드포인트 이벤트 로그에 있는 이벤트
ActionType |
공급자/원본 |
이벤트 ID |
설명 |
ExploitGuardNonMicrosoftSignedBlocked |
Security-Mitigations |
12 |
코드 무결성 보호 블록 |
타임라인에서 볼 수 있는 이벤트
'\Device\HarddiskVolume3\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' 프로세스(PID 8780)가 Microsoft 서명되지 않은 이진 '\Windows\assembly\NativeImages_v4.0.30319_64\Microsoft.M870d558a#\08d37b687669e97c65681029a1026d28\Microsoft.Management.Infrastructure.Native.ni.dll'를 로드하지 못했습니다.
자세한 내용
CI 엔진은 신뢰할 수 있는 파일만 디바이스에서 실행할 수 있는지 확인합니다. CI를 사용하도록 설정하고 트러블되지 않은 파일이 발생하면 블록 이벤트가 생성됩니다. 감사 모드에서는 파일을 계속 실행할 수 있는 반면 강제 적용 모드에서는 파일이 실행되지 않습니다.
CI는 WDAC(애플리케이션 제어) 정책을 배포하는 경우를 포함하여 여러 Windows Defender 사용할 수 있습니다. 그러나 이 경우 MDATP는 백 엔드에서 CI를 사용하도록 설정하고 있습니다. 이 백 엔드는 Microsoft에서 시작된 부호 없는 NI(네이티브 이미지) 파일이 발생할 때 이벤트를 트리거합니다.
파일의 서명은 해당 파일 인증을 사용하도록 설정하기 위한 것입니다. CI는 서명을 기반으로 신뢰할 수 있는 기관에서 파일이 변경되지 않은 것을 확인할 수 있습니다. Microsoft에서 시작된 대부분의 파일은 서명이 됐지만 일부 파일은 다양한 이유로 서명될 수 없습니다. 예를 들어 NI 이진(.NET Framework 코드에서 컴파일)은 일반적으로 릴리스에 포함된 경우 서명됩니다. 그러나 일반적으로 디바이스에서 다시 생성되어 서명할 수 없습니다. 별도로, 많은 애플리케이션에는 설치 시 해당 인증을 확인하기 위해 해당 CAB 또는 MSI 파일만 서명됩니다. 실행하면 서명되지 않은 추가 파일이 생성됩니다.
완화
이러한 이벤트는 진정한 보안 문제를 나타낼 수 있는 경우 무시하지 않는 것이 좋습니다. 예를 들어 악의적인 공격자가 Microsoft에서 시작한 것으로 보아 부호 없는 이진 파일을 로드하려고 할 수 있습니다.
그러나 이러한 이벤트는 ExploitGuardNonMicrosoftSignedBlocked ActionType이 있는 이벤트를 제외하여 고급 헌팅에서 다른 이벤트를 분석하려고 할 때 쿼리를 통해 필터링할 수 있습니다.
이 쿼리는 이 특정 과도 감지와 관련된 모든 이벤트를 보여 주게 됩니다.
DeviceEvents
| where ActionType == "ExploitGuardNonMicrosoftSignedBlocked" and InitiatingProcessFileName == "powershell.exe" and FileName endswith "ni.dll" | where Timestamp > ago(7d)이 이벤트를 제외하려는 경우 쿼리를 반전해야 합니다. 그러면 다음을 제외한 모든 ExploitGuard(EP 포함) 이벤트가 모두 표시됩니다.
DeviceEvents
| where ActionType startswith "ExploitGuard" | where ActionType != "ExploitGuardNonMicrosoftSignedBlocked" or (ActionType == "ExploitGuardNonMicrosoftSignedBlocked" and InitiatingProcessFileName != "powershell.exe powershell.exe") 또는 (ActionType == "ExploitGuardNonMicrosoftSignedBlocked" and InitiatingProcessFileName == "powershell.exe" and FileName !endswith "ni.dll") | where Timestamp > ago(7d)또한 .NET Framework 4.5 이상 버전을 사용하는 경우 NI 파일을 다시 재생성하여 많은 불투명한 이벤트를 해결할 수 있습니다. 이렇게하려면 NativeImages 디렉터리에서 모든 NI 파일을 삭제한 다음 ngen 업데이트 명령을 실행하여 다시 생성합니다.