요약
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가 활성화되고 신뢰할 수 없는 파일이 발견되면 블록 이벤트가 생성됩니다. 감사 모드에서는 파일을 계속 실행할 수 있지만 적용 모드에서는 파일이 실행되지 않습니다.
WDAC(Windows Defender 애플리케이션 제어) 정책을 배포하는 경우를 포함하여 여러 가지 방법으로 CI를 사용하도록 설정할 수 있습니다. 그러나 이 상황에서 MDATP는 백 엔드에서 CI를 사용하도록 설정하여 Microsoft에서 시작된 서명되지 않은 NI(네이티브 이미지) 파일이 발견되면 이벤트를 트리거합니다.
파일 서명은 해당 파일의 신뢰성을 확인하도록 하기 위한 것입니다. CI는 서명에 따라 파일이 수정되지 않고 신뢰할 수 있는 기관에서 시작되었는지 확인할 수 있습니다. Microsoft에서 시작된 대부분의 파일은 서명되지만 일부 파일은 여러 가지 이유로 서명할 수 없거나 서명되지 않습니다. 예를 들어 NI 이진 파일(.NET Framework 코드에서 컴파일됨)은 릴리스에 포함된 경우 일반적으로 서명됩니다. 그러나 일반적으로 디바이스에서 다시 생성되며 서명할 수 없습니다. 이와는 별도로 많은 애플리케이션에는 설치 시 신뢰성을 확인하기 위해 CAB 또는 MSI 파일만 서명되어 있습니다. 실행하면 서명되지 않은 추가 파일을 만듭니다.
완화
이러한 이벤트는 실제 보안 문제를 나타낼 수 있으므로 무시하지 않는 것이 좋습니다. 예를 들어 악의적인 공격자가 Microsoft에서 시작된 모습으로 서명되지 않은 이진 파일을 로드하려고 할 수 있습니다.
그러나 ExploitGuardNonMicrosoftSignedBlocked ActionType이 있는 이벤트를 제외하여 고급 헌팅에서 다른 이벤트를 분석하려고 할 때 이러한 이벤트를 쿼리로 필터링할 수 있습니다.
이 쿼리는 이 특정 과잉 검색과 관련된 모든 이벤트를 보여 줍니다.
DeviceEvents | where ActionType == "ExploitGuardNonMicrosoftSignedBlocked" 및 InitiatingProcessFileName == "powershell.exe" 및 FileName은 "ni.dll"로 끝납니다. | 타임스탬프가 > 전(7d)
이 이벤트를 제외하려면 쿼리를 반전해야 합니다. 다음을 제외한 모든 ExploitGuard(EP 포함) 이벤트가 표시됩니다.
DeviceEvents | 여기서 ActionType이 "ExploitGuard"로 시작됩니다. | where ActionType != "ExploitGuardNonMicrosoftSignedBlocked" 또는 (ActionType == "ExploitGuardNonMicrosoftSignedBlocked" 및 InitiatingProcessFileName != "powershell.exe 또는 (ActionType == "ExploitGuardNonMicrosoftSignedBlocked" 및 InitiatingProcessFileName == "powershell.exe" 및 FileName !endswith "ni.dll") | 타임스탬프가 > 전(7d)
또한 .NET Framework 4.5 이상 버전을 사용하는 경우 NI 파일을 다시 생성하여 불필요한 많은 이벤트를 resolve 수 있습니다. 이렇게 하려면 NativeImages 디렉터리의 모든 NI 파일을 삭제한 다음 ngen update 명령을 실행하여 다시 생성합니다.