악용 방지 사용
적용 대상:
팁
엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.
Exploit Protection은 디바이스를 감염시키고 확산하는 맬웨어의 악용으로부터 보호하는 데 도움이 됩니다. Exploit Protection은 운영 체제나 개별 앱에 적용될 수 있는 여러 가지 완화 방법으로 구성됩니다.
중요
.NET 2.0은 일부 Exploit Protection 기능, 특히 EAF(Export Address Filtering) 및 IAF(Import Address Filtering)와 호환되지 않습니다. .NET 2.0을 사용하도록 설정한 경우 EAF 및 IAF 사용은 지원되지 않습니다.
EMET(Enhanced Mitigation Experience Toolkit)의 많은 기능이 Exploit Protection에 포함되어 있습니다.
다음 방법 중 원하는 방법을 사용하여 각 완화를 개별적으로 사용하도록 설정할 수 있습니다.
- Windows 보안 앱
- Microsoft Intune
- MDM(모바일 장치 관리)
- Microsoft Endpoint Configuration Manager
- 그룹 정책
- PowerShell
Exploit Protection은 Windows 10 및 Windows 11에서 기본적으로 구성됩니다. 각 완화를 설정, 해제 또는 기본값으로 설정할 수 있습니다. 일부 완화에는 더 많은 옵션이 있습니다. 해당 설정들을 XML 파일로 내보내 다른 디바이스에 배포할 수 있습니다.
완화를 감사 모드로 설정할 수도 있습니다. 감사 모드를 사용하면 디바이스의 정상적인 사용에 영향을 주지 않고 완화 기능이 작동하는 방식을 테스트하고 이벤트를 검토할 수 있습니다.
Windows 보안 앱
작업 표시줄에서 방패 아이콘을 선택하거나 시작 메뉴에 보안 을 검색해 Windows 보안 앱을 엽니다.
앱 및 브라우저 컨트롤 타일(또는 왼쪽 메뉴 모음의 앱 아이콘)을 선택한 후 Exploit Protection 설정 을 선택합니다.
프로그램 설정 으로 이동하여 완화를 적용할 앱을 선택합니다.
- 구성하려는 앱이 이미 나열된 경우 해당 앱을 선택한 다음 편집 을 선택합니다.
- 앱이 목록에 없으면 목록 맨 위에서 사용자 지정할 프로그램 추가 를 선택한 다음 앱을 추가할 방법을 선택합니다.
- 프로그램 이름으로 추가 를 사용해 해당 이름으로 실행 중인 모든 프로세스에 완화를 적용합니다. 확장명으로 파일을 지정합니다. 완화를 해당 위치에서 해당 이름의 앱으로만 제한하는 전체 경로를 입력할 수 있습니다.
- 정확한 파일 경로 선택 을 사용하여 표준 Windows 탐색기 파일 선택 창에서 원하는 파일을 찾아 선택합니다.
앱을 선택하면 적용할 수 있는 모든 완화 기능 목록이 표시됩니다. 감사 를 선택하면 감사 모드에서만 완화를 적용합니다. 프로세스 또는 앱을 다시 시작해야 하거나 Windows를 다시 시작해야 하는 경우 알림을 받습니다.
구성하려는 모든 앱 및 완화에 대해 3-4단계를 반복합니다.
시스템 설정 섹션에서 구성할 완화를 찾은 뒤 다음 설정 중 하나를 지정합니다. 프로그램 설정 섹션에서 개별적으로 구성되지 않은 앱은 여기에 구성된 설정을 사용합니다.
- 기본적으로 켜기: 앱별 프로그램 설정 섹션에서 이 완화 기능이 설정되지 않은 앱에 대해 완화를 사용하도록 설정됩니다.
- 기본적으로 끄기: 앱별 프로그램 설정 섹션에서 이 완화 기능이 설정되지 않은 앱에 대해 완화를 사용하지 않도록 설정됩니다.
- 기본 사용: Windows 10 또는 Windows 11 설치로 설정된 기본 구성에 따라 완화 기능이 사용되거나 사용하지 않도록 설정됩니다. 기본값(켜짐 또는 꺼짐)은 항상 각 완화에 대해 기본 사용 레이블 옆에 지정됩니다.
구성하려는 모든 시스템 수준 완화에 대해 6단계를 반복합니다. 구성 설정이 완료되면 적용 을 선택합니다.
프로그램 설정 섹션에 앱을 추가하고 개별 완화 설정을 구성하는 경우 시스템 설정 섹션에 지정된 것과 동일한 완화에 대한 구성 위에 적용됩니다. 다음 행렬 및 예제는 기본값의 작동 방식을 보여 줍니다.
| 프로그램 설정 에서 사용 | 시스템 설정 에서 사용 | 동작 |
|---|---|---|
| 예 | 아니요 | 프로그램 설정 에서 정의한 대로 |
| 예 | 예 | 프로그램 설정 에서 정의한 대로 |
| 아니오 | 예 | 시스템 설정 에서 정의한 대로 |
| 아니요 | 아니요 | 기본 사용 옵션에서 정의된 기본값 |
예제 1: Mikael은 데이터 실행 방지가 시스템 설정 섹션에서 기본적으로 해제되도록 구성합니다.
Mikael은 test.exe 앱을 프로그램 설정 섹션에 추가합니다. 해당 앱 옵션의 DEP(데이터 실행 방지) 에서 Mikael은 시스템 설정 재정의 옵션을 사용하도록 설정하고 스위치를 켜짐 으로 설정합니다. 프로그램 설정 섹션에 나열된 다른 앱이 없습니다.
그 결과, DEP는 test.exe 에 대해서만 사용하도록 설정됩니다. 다른 모든 앱에는 DEP가 적용되지 않습니다.
예제 2: Josie는 데이터 실행 방지가 시스템 설정에서 기본적으로 해제되도록 구성합니다.
Josie는 test.exe 앱을 프로그램 설정 섹션에 추가합니다. 해당 앱 옵션의 DEP(데이터 실행 방지) 에서 Josie는 시스템 설정 재정의 옵션을 사용하도록 설정하고 스위치를 켜짐 으로 설정합니다.
또한, Josie는 miles.exe 앱을 프로그램 설정 섹션에 추가하고 CFG(제어 흐름 보호) 를 켜짐 으로 구성합니다. Josie는 DEP 또는 해당 앱에 대한 다른 완화에 대한 재정의 시스템 설정 옵션을 사용하도록 설정하지 않습니다.
그 결과, DEP는 test.exe 에 대해 사용하도록 설정됩니다. miles.exe 을 비롯한 다른 앱에는 DEP를 사용할 수 없습니다. miles.exe 에서는 CFG를 사용할 수 있습니다.
작업 표시줄에서 방패 아이콘을 선택하거나 시작 메뉴에 Windows 보안 을 검색해 Windows 보안 앱을 엽니다.
앱 및 브라우저 컨트롤 타일(또는 왼쪽 메뉴 모음의 앱 아이콘)을 선택한 후 Exploit Protection 을 선택합니다.
프로그램 설정 으로 이동하여 완화를 적용할 앱을 선택합니다.
- 구성하려는 앱이 이미 나열된 경우 해당 앱을 선택한 다음 편집 을 선택합니다.
- 앱이 목록에 없으면 목록 맨 위에서 사용자 지정할 프로그램 추가 를 선택한 다음 앱을 추가할 방법을 선택합니다.
- 프로그램 이름으로 추가 를 사용해 해당 이름으로 실행 중인 모든 프로세스에 완화를 적용합니다. 확장명으로 파일을 지정합니다. 완화를 해당 위치에서 해당 이름의 앱으로만 제한하는 전체 경로를 입력할 수 있습니다.
- 정확한 파일 경로 선택 을 사용하여 표준 Windows 탐색기 파일 선택 창에서 원하는 파일을 찾아 선택합니다.
앱을 선택하면 적용할 수 있는 모든 완화 기능 목록이 표시됩니다. 감사 를 선택하면 감사 모드에서만 완화를 적용합니다. 프로세스 또는 앱을 다시 시작해야 하거나 Windows를 다시 시작해야 하는 경우 알림을 받습니다.
구성하려는 모든 앱 및 완화에 대해 3-4단계를 반복합니다. 구성 설정이 완료되면 적용 을 선택합니다.
Intune
Azure Portal에 로그인해 Intune을 엽니다.
디바이스 구성 > 프로필 > 프로필 만들기 로 이동합니다.
프로필 이름을 지정하고 Windows 10 이상 을 선택한 다음 엔드포인트 보호 를 선택합니다.
구성 > Windows Defender Exploit Guard > Exploit Protection 을 선택합니다.
Exploit Protection 설정을 사용하여 XML 파일을 업로드합니다.
확인 을 선택해 열려 있는 각각의 블레이드를 저장한 다음 만들기 를 선택합니다.
프로필 할당 탭을 선택하고 정책을 모든 사용자 및 모든 디바이스 에 할당한 뒤 저장 을 선택합니다.
MDM
./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings CSP(구성 서비스 공급자)를 사용하여 Exploit Protection 완화를 사용 또는 사용하지 않도록 설정하거나 감사 모드를 사용합니다.
Microsoft Endpoint Manager
Microsoft Endpoint Manager에서 엔드포인트 보안 > 공격 표면 감소 로 이동합니다.
정책 만들기 > 플랫폼 을 선택하고 프로필 에서 Exploit Protection 을 사용합니다. 만들기 를 선택합니다.
이름과 설명을 지정하고 다음 을 선택합니다.
XML 파일 선택 을 선택한 후 Exploit Protection XML 파일의 위치를 찾습니다. 파일을 선택하고 다음 을 선택합니다.
필요한 경우 범위 태그 및 할당 을 구성합니다.
검토 + 만들기 에서, 구성 설정을 검토한 다음 만들기 를 선택합니다.
Microsoft Endpoint Configuration Manager
Microsoft Endpoint Configuration Manager에서 자산 및 규정 준수 > 엔드포인트 보호 > Windows Defender Exploit Guard 로 이동합니다.
홈 > Exploit Guard 정책 만들기 를 선택합니다.
이름과 설명을 지정하고 Exploit Protection 을 선택한 후 다음 을 선택합니다.
Exploit Protection XML 파일의 위치를 찾고 다음 을 선택합니다.
설정을 검토하고 다음 을 선택해 정책을 만듭니다.
정책을 만든 후 닫기 를 선택합니다.
그룹 정책
그룹 정책 관리 디바이스에서 그룹 정책 관리 콘솔을 열고 구성하려는 그룹 정책 개체를 마우스 오른쪽 단추로 클릭한 다음 편집 을 클릭합니다.
그룹 정책 관리 편집기 에서 컴퓨터 구성 으로 이동하여 관리 템플릿 을 선택합니다.
트리를 Windows 구성 요소 > Windows Defender Exploit Guard > Exploit Protection > 일반적인 Exploit Protection 설정 사용 까지 확장합니다.
사용 을 선택한 다음 대상 XML 파일의 위치를 입력하고 확인 을 선택합니다.
PowerShell
PowerShell 동사 Get 또는 Set을 cmdlet ProcessMitigation과 함께 사용할 수 있습니다. Get을 사용하면 디바이스에서 사용하도록 설정된 완화의 현재 구성 상태가 나열됩니다.-Name cmdlet과 app exe을 추가해 해당 앱에 대한 완화를 확인합니다.
Get-ProcessMitigation -Name processName.exe
중요
구성되지 않은 시스템 수준 완화에는 NOTSET상태가 표시됩니다.
- 시스템 수준 설정의 경우
NOTSET은 해당 완화에 대한 기본 설정이 적용되었음을 나타냅니다. - 앱 수준 설정의 경우
NOTSET은 해당 완화에 대한 시스템 수준 설정이 적용되었음을 나타냅니다. 각 시스템 수준 완화에 대한 기본 설정은 Windows 보안에서 볼 수 있습니다.
Set을 사용하여 각 완화를 다음 형식으로 구성합니다.
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
여기서,
- <Scope>:
- 완화를 특정 앱에 적용해야 함을 표시하는
-Name. 이 플래그 뒤에 앱의 실행 파일을 지정합니다.- 완화를 시스템 수준으로 적용해야 함을 표시하는
-System
- 완화를 시스템 수준으로 적용해야 함을 표시하는
- 완화를 특정 앱에 적용해야 함을 표시하는
- <Action>:
- 완화를 사용하도록 설정하는
-Enable - 완화를 사용하지 않도록 설정하는
-Disable
- 완화를 사용하도록 설정하는
- <Mitigation>:
- 완화의 cmdlet과 하위 옵션(공백으로 묶임). 각 완화는 쉼표로 구분됩니다.
예를 들어 ATL 썽크 에뮬레이션을 사용해 C:\Apps\LOB\tests 폴더에서 testing.exe 이라는 실행 파일에 대한 DEP(데이터 실행 방지) 완화를 사용하도록 설정하고 해당 실행 파일이 자식 프로세스를 만들지 못하도록 하려면 다음 명령을 사용합니다.
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
중요
각 완화 옵션을 쉼표로 구분합니다.
시스템 수준에서 DEP를 적용하려면 다음 명령을 사용합니다.
Set-Processmitigation -System -Enable DEP
완화를 사용하지 않도록 설정하려면 -Enable을 -Disable로 바꾸면 됩니다. 단, 앱 수준 완화의 경우 이 작업을 수행하면 해당 앱에 대해서만 완화 기능을 사용할 수 없게 됩니다.
완화를 시스템 기본값으로 다시 복원해야 하는 경우 다음 예제와 같이 -Remove cmdlet도 포함해야 합니다.
Set-Processmitigation -Name test.exe -Remove -Disable DEP
다음 표에서는 -Enable 또는 -Disable cmdlet 매개 변수와 함께 사용할 개별 완화(및 사용 가능한 경우에는 Audits)를 나열합니다.
| 완화 유형 | 적용 대상 | 완화 cmdlet 매개 변수 키워드 | 감사 모드 cmdlet 매개 변수 |
|---|---|---|---|
| CFG(제어 흐름 가드) | 시스템 및 앱 수준 | CFG, StrictCFG, SuppressExports |
감사를 사용할 수 없음 |
| 데이터 실행 방지(DEP) | 시스템 및 앱 수준 | DEP, EmulateAtlThunks |
감사를 사용할 수 없음 |
| 이미지에 대한 강제 임의 지정(필수 ASLR) | 시스템 및 앱 수준 | ForceRelocateImages |
감사를 사용할 수 없음 |
| 메모리 할당 임의 지정(상향식 ASLR) | 시스템 및 앱 수준 | BottomUp, HighEntropy |
감사를 사용할 수 없음 |
| 예외 체인 확인(SEHOP) | 시스템 및 앱 수준 | SEHOP, SEHOPTelemetry |
감사를 사용할 수 없음 |
| 힙 무결성 확인 | 시스템 및 앱 수준 | TerminateOnError |
감사를 사용할 수 없음 |
| 임의 코드 가드(ACG) | 앱 수준만 | DynamicCode |
AuditDynamicCode |
| 낮은 무결성 이미지 차단 | 앱 수준만 | BlockLowLabel |
AuditImageLoad |
| 원격 이미지 차단 | 앱 수준만 | BlockRemoteImages |
감사를 사용할 수 없음 |
| 신뢰할 수 없는 글꼴 차단 | 앱 수준만 | DisableNonSystemFonts |
AuditFont, FontAuditOnly |
| 코드 무결성 가드 | 앱 수준만 | BlockNonMicrosoftSigned, AllowStoreSigned |
AuditMicrosoftSigned, AuditStoreSigned |
| 확장 지점 사용 안 함 | 앱 수준만 | ExtensionPoint |
감사를 사용할 수 없음 |
| Win32k 시스템 호출 사용 안 함 | 앱 수준만 | DisableWin32kSystemCalls |
AuditSystemCall |
| 자식 프로세스 허용 안 함 | 앱 수준만 | DisallowChildProcessCreation |
AuditChildProcess |
| 주소 필터링 내보내기(EAF) | 앱 수준만 | EnableExportAddressFilterPlus, EnableExportAddressFilter [1] |
감사를 사용할 수 없음 [2] |
| 주소 필터링 가져오기(IAF) | 앱 수준만 | EnableImportAddressFilter |
감사를 사용할 수 없음 [2] |
| 실행 시뮬레이션(SimExec) | 앱 수준만 | EnableRopSimExec |
감사를 사용할 수 없음 [2] |
| API 호출 확인(CallerCheck) | 앱 수준만 | EnableRopCallerCheck |
감사를 사용할 수 없음 [2] |
| 핸들 사용 확인 | 앱 수준만 | StrictHandle |
감사를 사용할 수 없음 |
| 이미지 종속성 무결성 확인 | 앱 수준만 | EnforceModuleDepencySigning |
감사를 사용할 수 없음 |
| 스택 무결성 확인(StackPivot) | 앱 수준만 | EnableRopStackPivot |
감사를 사용할 수 없음 [2] |
[1]: 다음 형식을 사용해 프로세스에 대해 DLL에 EAF 모듈을 사용하도록 설정합니다.
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]: 이 완화에 대한 감사는 PowerShell cmdlet을 통해 사용할 수 없습니다.
알림 사용자 지정
규칙이 트리거되고 앱이나 파일이 차단되는 경우의 알림을 사용자 지정하는 방법에 대한 내용은 Windows 보안을 참조하세요.