샌드박스에서 Microsoft Defender 바이러스 백신 실행
적용 대상:
- Microsoft Defender XDR
- 엔드포인트용 Microsoft Defender 플랜 2
- 비즈니스용 Microsoft Defender
- 엔드포인트용 Microsoft Defender 플랜 1
- Microsoft Defender 바이러스 백신
플랫폼:
- Windows
엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.
이 문서에서는 변조 방지를 강화하기 위해 샌드박스 환경에서 Microsoft Defender 바이러스 백신을 실행하는 방법을 설명합니다.
기본 제공 바이러스 백신 기능이 있는 Microsoft Defender 바이러스 백신은 2018년 10월 26일부터 Windows의 샌드박스 내에서 실행할 수 있습니다. 이 기능을 갖춘 최초의 완전한 바이러스 백신 솔루션이며 보안을 위한 기준을 높이는 데 있어 업계를 계속 이끌고 있습니다.
시작하기 전에 다음 요구 사항을 충족해야 합니다.
- Microsoft Defender 바이러스 백신(활성 모드)
- Windows 11 또는 Windows 10 버전 1703 이상
- Windows Server 2022 또는 Windows Server 2019 또는 Windows Server 2016 이상
Microsoft 내부 및 외부의 보안 연구원은 이전에 공격자가 임의 코드 실행을 가능하게 할 수 있는 바이러스 백신의 콘텐츠 파서에 Microsoft Defender 취약성을 활용할 수 있는 방법을 확인했습니다. 악의적인 콘텐츠 및 아티팩트에 대한 전체 시스템을 검사하기 위해 바이러스 백신은 높은 권한(로컬 시스템, NT Authority\SYSTEM)으로 실행되어 공격의 대상이 됩니다.
샌드박스에서 권한 상승은 최신 버전의 Windows 10 이상에서는 매우 어렵고, 샌드박스에서 Microsoft Defender 바이러스 백신을 실행하면 손상이 발생할 가능성이 거의 없는 경우 악의적인 작업이 격리된 환경으로 제한되어 시스템의 나머지 부분을 해로부터 보호합니다. 이는 보안 혁신을 통해 공격자보다 앞서 나가기 위한 Microsoft의 지속적인 투자의 일부입니다.
최신 맬웨어 방지 제품은 디스크의 파일, 메모리의 데이터 스트림 및 동작 이벤트와 같은 많은 입력을 실시간으로 검사합니다. 이러한 기능의 대부분은 문제의 리소스에 대한 모든 권한이 필요합니다. 첫 번째 주요 샌드박싱 작업은 Microsoft Defender 바이러스 백신의 검사 기능을 전체 권한과 샌드박스로 실행할 수 있는 구성 요소로 계층화하는 것과 관련이 있었습니다. 샌드박스 구성 요소의 목표는 신뢰할 수 없는 입력 검사, 컨테이너 확장 등과 같은 가장 높은 위험 기능을 포괄하도록 하는 것이었습니다. 동시에 상당한 성능 비용을 방지하기 위해 두 계층 간의 상호 작용 수를 최소화해야 했습니다.
리소스 사용량은 또한 상당한 투자가 필요한 또 다른 문제입니다. 권한 있는 프로세스와 샌드박스 프로세스 모두 Security Intelligence 업데이트, 기타 검색 및 수정 메타데이터에 액세스할 수 있어야 합니다. 상태를 공유하는 안전하지 않은 방법을 방지하거나 프로세스 간에 데이터/콘텐츠를 전달하는 데 상당한 런타임 비용을 초래하는 강력한 보안 보장을 복제하지 않도록 하려면 대부분의 보호 데이터가 런타임에 읽기 전용인 메모리 매핑된 파일에서 호스트되는 모델을 사용합니다. 즉, 보호 데이터는 오버헤드 없이 여러 프로세스로 호스트될 수 있습니다.
다음 단계에 따라 머신 전체 환경 변수를 설정하여 샌드박싱을 사용하도록 설정할 수 있습니다.
PowerShell 또는 CMD에서 관리자 권한으로 다음 명령을 실행합니다.
setx /M MP_FORCE_USE_SANDBOX 1
디바이스를 다시 시작합니다. 다시 시작하면 다음 폴더에 있는 MsMpEng.exe
MsMpEngCP.exe
외에 새 프로세스가 표시됩니다.경로 프로세스 설명 C:\ProgramData\Microsoft\Windows Defender\Scans MsMpEngCP.exe 맬웨어 방지 서비스 실행 파일 콘텐츠 프로세스 C:\Users\All Users\Microsoft\Windows Defender\Scans MsMpEngCP.exe 맬웨어 방지 서비스 실행 파일 콘텐츠 프로세스 참고
의
MsMpEngCP.exe
CP는 콘텐츠 프로세스입니다.
Microsoft Defender 바이러스 백신에 대한 샌드박싱을 사용하지 않도록 설정하려면 PowerShell 또는 CMD에서 관리자로 다음 명령을 실행합니다.
setx /M MP_FORCE_USE_SANDBOX 0
Microsoft Defender 바이러스 백신은 권한 있는/부모 프로세스에서 콘텐츠 검사를 호스트하여 보호를 제공하는 프로시전 대체를 수행합니다.
낮은 권한으로 실행되는 콘텐츠 프로세스도 사용 가능한 모든 완화 정책을 적극적으로 사용하여 표면 공격을 줄입니다. DEP(데이터 실행 방지), ASLR(주소 공간 레이아웃 임의화) 및 CFG(제어 흐름 보호)와 같은 최신 익스플로잇 완화 기술에 대한 런타임 변경을 사용하도록 설정하고 방지합니다. 또한 Win32K 시스템 호출 및 모든 확장성 지점을 사용하지 않도록 설정하고 서명되고 신뢰할 수 있는 코드만 로드되도록 적용합니다.
샌드박스를 사용하도록 설정된 MDAV의 성능
성능은 특히 맬웨어 방지 제품이 파일 작업을 동기적으로 검사하고 많은 수의 런타임 이벤트를 처리 및 집계하거나 일치시키는 것과 같은 많은 중요한 경로에 있다는 점을 감안할 때 샌드박싱과 관련하여 발생하는 기본 문제입니다. 성능이 저하되지 않도록 하려면 샌드박스와 권한 있는 프로세스 간의 상호 작용 수를 최소화해야 했습니다. 동시에 I/O가 수행되는 경우와 같이 비용이 중요하지 않은 중요한 순간에만 이러한 상호 작용을 수행합니다.
Microsoft Defender 바이러스 백신은 불필요한 I/O를 방지하기 위해 오케스트레이션된 노력을 기울입니다. 예를 들어 검사된 모든 파일에 대해 읽은 데이터의 양을 최소화하는 것이 특히 이전 하드웨어(회전 디스크, 원격 리소스)에서 좋은 성능을 유지하는 데 가장 중요합니다. 따라서 샌드박스가 전체 콘텐츠를 전달하는 대신 필요에 따라 검사를 위해 데이터를 요청할 수 있는 모델을 유지하는 것이 중요했습니다.
샌드박스를 사용하도록 설정된 MDAV의 안정성
참고
샌드박스에 핸들을 전달하는 것은(실제 콘텐츠 전달 비용을 방지하기 위해) 실시간 검사, AMSI 등과 같은 많은 시나리오가 있기 때문에 샌드박스에 상당한 권한을 부여하지 않고 샌드박스에서 사용할 수 있는 '공유 가능한' 핸들이 없어 보안을 저하시키는 옵션이 아닙니다.
샌드박싱과 관련된 또 다른 중요한 관심사는 교착 상태 및 우선 순위 반전과 같은 잠재적인 문제를 피하기 위한 프로세스 간 통신 메커니즘과 관련이 있습니다. 통신은 호출자를 제한하거나 처리할 수 있는 동시 요청 수를 제한하여 잠재적인 병목 상태를 유발해서는 안 됩니다. 또한 샌드박스 프로세스는 검사 작업 자체를 트리거해서는 안 됩니다. 모든 검사는 더 많은 검사를 트리거하지 않고 발생해야 합니다. 이를 위해서는 샌드박스의 기능을 완전히 제어하고 예기치 않은 작업을 트리거할 수 없도록 해야 합니다. 낮은 권한의 AppContainers는 기능 기반 모델을 통해 샌드박스 프로세스가 수행할 수 있는 작업을 세분화하여 제어할 수 있으므로 강력한 보장을 구현하는 완벽한 방법입니다.
샌드박스를 사용하도록 설정된 MDAV 수정
마지막으로, 보안 관점에서 중요한 과제는 콘텐츠 수정 또는 소독과 관련이 있습니다. 작업의 중요한 특성(이진 파일을 원래 사전 인플렉션 콘텐츠로 복원하려고 시도함)을 감안할 때 콘텐츠 프로세스(샌드박스)가 손상되고 소독을 사용하여 검색된 이진 파일을 예기치 않은 방식으로 수정할 수 있는 경우를 완화하기 위해 높은 권한으로 이 문제가 발생하는지 확인해야 했습니다.
프로세스가 중지될 무렵에 연결된 Windows 오류 보고(WER) 이벤트가 있는 경우 지원 진단 로그 및 관련 덤프/크래시 정보를 수집합니다.