다음을 통해 공유


WSL(Linux용 Windows 하위 시스템)용 엔드포인트용 Microsoft Defender 플러그 인

적용 대상:

개요

WSL(Linux용 Windows 하위 시스템) 2는 이전 버전의 WSL(플러그 인 없이 엔드포인트용 Microsoft Defender에서 지원됨)을 대체하며, Windows와 원활하게 통합되지만 가상화 기술을 사용하여 격리된 Linux 환경을 제공합니다. WSL용 엔드포인트용 Defender 플러그 인을 사용하면 엔드포인트용 Defender가 격리된 하위 시스템에 연결하여 실행 중인 모든 WSL 컨테이너에 대한 가시성을 높일 수 있습니다.

알려진 문제점 및 제한

시작하기 전에 다음 사항을 고려해야 합니다.

  1. 플러그 인은 이전 1.24.522.2버전에 대한 자동 업데이트를 지원하지 않습니다. 버전 1.24.522.2 이상에서는 모든 링에서 Windows 업데이트를 통해 업데이트가 지원됩니다. WSUS(Windows Server 업데이트 서비스), SCCM(System Center Configuration Manager) 및 Microsoft 업데이트 카탈로그를 통한 업데이트는 패키지 안정성을 보장하기 위해 프로덕션 링에서만 지원됩니다.

  2. 플러그 인이 완전히 인스턴스화되는 데 몇 분, WSL2 인스턴스가 자체적으로 온보딩되는 데 최대 30분이 걸립니다. 수명이 짧은 WSL 컨테이너 인스턴스로 인해 WSL2 인스턴스가 Microsoft Defender 포털(https://security.microsoft.com)에 표시되지 않을 수 있습니다. 배포가 충분히 오래 실행되면(최소 30분) 표시됩니다.

  3. 사용자 지정 커널 및 사용자 지정 커널 명령줄 실행은 지원되지 않습니다. 플러그 인이 해당 구성에서 실행을 차단하지는 않지만 사용자 지정 커널 및 사용자 지정 커널 명령줄을 실행할 때 WSL 내에서 가시성을 보장하지는 않습니다. Microsoft Intune wsl 설정의 도움으로 이러한 구성을 차단하는 것이 좋습니다.

  4. OS 배포는 Microsoft Defender 포털에 있는 WSL 디바이스의 디바이스 개요 페이지에 없음으로 표시됩니다.

  5. 플러그 인은 ARM64 프로세서가 있는 컴퓨터에서 지원되지 않습니다.

  6. 플러그 인은 WSL의 이벤트에 대한 가시성을 제공하지만 WSL 논리 디바이스에는 맬웨어 방지, 위협 및 취약성 관리 및 응답 명령과 같은 다른 기능을 사용할 수 없습니다.

소프트웨어 필수 구성 요소

  • WSL 버전 2.0.7.0 이상은 하나 이상의 활성 배포판으로 실행되어야 합니다.

    를 실행 wsl --update 하여 최신 버전에 있는지 확인합니다. 보다 2.0.7.0오래된 버전이 표시되면 wsl -–version 를 실행 wsl -–update –pre-release 하여 최신 업데이트를 가져옵니다.

  • Windows 클라이언트 디바이스는 엔드포인트용 Defender에 온보딩되어야 합니다.

  • Windows 클라이언트 디바이스는 Windows 10, 버전 2004 이상(빌드 19044 이상) 또는 Windows 11을 실행하여 플러그 인과 함께 작동할 수 있는 WSL 버전을 지원해야 합니다.

소프트웨어 구성 요소 및 설치 관리자 파일 이름

설치 관리자: DefenderPlugin-x64-0.24.426.1.msi. Microsoft Defender 포털의 온보딩 페이지에서 다운로드할 수 있습니다. (설정>으로 이동끝점>온보딩.)

설치 디렉터리:

  • %ProgramFiles%

  • %ProgramData%

설치된 구성 요소:

  • DefenderforEndpointPlug-in.dll. 이 DLL은 WSL 내에서 작동하도록 엔드포인트용 Defender를 로드하는 라이브러리입니다. 에서 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\plug-in찾을 수 있습니다.

  • healthcheck.exe. 이 프로그램은 엔드포인트용 Defender의 상태를 확인하고 설치된 버전의 WSL, 플러그 인 및 엔드포인트용 Defender를 볼 수 있도록 합니다. 에서 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools찾을 수 있습니다.

설치 단계

Linux용 Windows 하위 시스템이 아직 설치되지 않은 경우 다음 단계를 수행합니다.

  1. 터미널 또는 명령 프롬프트를 엽니다. (Windows에서 시작으로> 이동명령 프롬프트. 또는 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 터미널을 선택합니다.)

  2. wsl -–install 명령을 실행합니다.

  3. WSL이 설치되고 실행 중인지 확인합니다.

    1. 터미널 또는 명령 프롬프트를 사용하여 를 실행 wsl –-update 하여 최신 버전이 있는지 확인합니다.

    2. wsl 명령을 실행하여 테스트하기 전에 WSL이 실행되고 있는지 확인합니다.

  4. 다음 단계에 따라 플러그 인을 설치합니다.

    1. Microsoft Defender 포털의 온보딩 섹션에서 다운로드한 MSI 파일을 설치합니다>(설정>엔드포인트Linux 2용 Windows 하위 시스템온보딩>(플러그 인)).

    2. 명령 프롬프트/터미널을 열고 를 실행합니다 wsl.

    Microsoft Intune을 사용하여 패키지를 배포할 수 있습니다.

참고

가 실행 중인 경우 WslService 설치 프로세스 중에 중지됩니다. 하위 시스템을 별도로 온보딩할 필요가 없습니다. 대신 플러그 인은 Windows 호스트가 온보딩되는 테넌트로 자동으로 온보딩됩니다.

설치 유효성 검사 검사 목록

  1. 업데이트 또는 설치 후 플러그 인이 로그 출력을 완전히 초기화하고 쓸 때까지 5분 이상 기다립니다.

  2. 터미널 또는 명령 프롬프트를 엽니다. (Windows에서 시작으로> 이동명령 프롬프트. 또는 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 터미널을 선택합니다.)

  3. 명령을 cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"실행합니다.

  4. .\healthcheck.exe 명령을 실행합니다.

  5. Defender 및 WSL의 세부 정보를 검토하고 다음 요구 사항과 일치하거나 초과하는지 확인합니다.

    • 플러그 인 버전: 1.24.522.2
    • WSL 버전: 2.0.7.0 이상
    • Defender 앱 버전: 101.24032.0007
    • Defender 상태: Healthy

WSL에서 실행되는 Defender에 대한 프록시 설정

이 섹션에서는 엔드포인트용 Defender 플러그 인에 대한 프록시 연결을 구성하는 방법을 설명합니다. 엔터프라이즈에서 프록시를 사용하여 Windows 호스트에서 실행되는 엔드포인트용 Defender에 대한 연결을 제공하는 경우 플러그 인에 대해 구성해야 하는지 여부를 확인하기 위해 계속 읽어보세요.

WSL 플러그 인에 MDE에 대한 호스트 창 EDR 원격 분석 프록시 구성을 사용하려는 경우 더 이상 필요하지 않습니다. 이 구성은 플러그 인에서 자동으로 채택됩니다.

WSL 플러그 인용 MDE에 호스트 winhttp 프록시 구성을 사용하려는 경우 더 이상 필요하지 않습니다. 이 구성은 플러그 인에서 자동으로 채택됩니다.

WSL 플러그 인용 MDE에 호스트 네트워크 및 네트워크 프록시 설정을 사용하려는 경우 더 이상 필요하지 않습니다. 이 구성은 플러그 인에서 자동으로 채택됩니다.

참고

WSL Defender는 프록시만 http 지원합니다.

플러그 인 프록시 선택

호스트 컴퓨터에 여러 프록시 설정이 포함된 경우 플러그 인은 다음 계층 구조를 사용하여 프록시 구성을 선택합니다.

  1. 엔드포인트용 Defender 정적 프록시 설정(TelemetryProxyServer).

  2. Winhttp proxy(명령을 통해 netsh 구성됨).

  3. 네트워크 & 인터넷 프록시 설정.

예를 들어 호스트 머신에 및 가 모두 Winhttp proxy 있는 경우 플러그 인이 프록시 구성으로 선택됩니다Winhttp proxy.Network & Internet proxy

참고

DefenderProxyServer 레지스트리 키는 더 이상 지원되지 않습니다. 이 문서의 앞부분에서 설명한 단계에 따라 플러그 인에서 프록시를 구성합니다.

WSL에서 실행되는 Defender에 대한 연결 테스트

Defender 연결 테스트는 디바이스에 프록시 수정이 있을 때마다 트리거되며 매시간 실행되도록 예약됩니다.

wsl 컴퓨터를 시작할 때 5분 동안 기다린 다음(연결 테스트 결과에 대해 에 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools 있음) 을 실행 healthcheck.exe 합니다. 성공하면 연결 테스트가 성공했는지 확인할 수 있습니다. 실패한 경우 연결 테스트 invalid 가 WSL용 MDE 플러그 인에서 엔드포인트용 Defender 서비스 URL로의 클라이언트 연결이 실패했음을 나타내는 것을 확인할 수 있습니다.

참고

ConnectivityTest 레지스트리 키는 더 이상 지원되지 않습니다. WSL 컨테이너(하위 시스템의 배포판)에서 사용할 프록시를 설정하려면 WSL의 고급 설정 구성을 참조하세요.

기능 및 SOC 분석가 환경 확인

플러그 인을 설치한 후 하위 시스템 및 실행 중인 모든 컨테이너가 Microsoft Defender 포털에 온보딩됩니다.

  1. Microsoft Defender 포털에 로그인하고 디바이스 보기를 엽니다.

  2. WSL2 태그를 사용하여 필터링합니다.

디바이스 인벤토리 필터를 보여 주는 스크린샷

WSL용 활성 엔드포인트용 Defender 플러그 인을 사용하여 환경의 모든 WSL 인스턴스를 볼 수 있습니다. 이러한 인스턴스는 지정된 호스트의 WSL 내에서 실행되는 모든 배포를 나타냅니다. 디바이스의 호스트 이름은 Windows 호스트의 호스트 이름과 일치합니다. 그러나 Linux 디바이스로 표시됩니다.

  1. 디바이스 페이지를 엽니다. 개요 창에는 디바이스가 호스트되는 위치에 대한 링크가 있습니다. 링크를 사용하면 디바이스가 Windows 호스트에서 실행되고 있음을 이해할 수 있습니다. 그런 다음 추가 조사 및/또는 응답을 위해 호스트로 피벗할 수 있습니다.

    디바이스 개요를 보여 주는 스크린샷

타임라인은 Linux의 엔드포인트용 Defender와 비슷하게 하위 시스템(파일, 프로세스, 네트워크) 내부의 이벤트로 채워집니다. 타임라인 보기에서 활동 및 검색을 관찰할 수 있습니다. 경고 및 인시던트도 적절하게 생성됩니다.

WSL 컴퓨터에 대한 사용자 지정 태그 설정

플러그 인은 태그 WSL2를 사용하여 WSL 머신을 온보딩합니다. 사용자 또는 조직에 사용자 지정 태그가 필요한 경우 아래에 설명된 단계를 따르세요.

  1. 관리자 권한으로 레지스트리 편집기 열기

  2. 다음 세부 정보를 사용하여 레지스트리 키를 만듭니다.

    • 이름: GROUP
    • 형식: REG_SZ 또는 레지스트리 문자열
    • 값: Custom tag
    • 길: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection\DeviceTagging
  3. 레지스트리가 설정되면 다음 단계를 사용하여 wsl을 다시 시작합니다.

    1. 명령 프롬프트를 열고 명령을 wsl --shutdown실행합니다.

    2. wsl 명령을 실행합니다.

  4. 포털이 변경 내용을 반영할 때까지 5-10분 동안 기다립니다.

참고

레지스트리의 사용자 지정 태그 집합 뒤에 _WSL2가 옵니다. 예를 들어 레지스트리 값 집합이 Microsoft이면 사용자 지정 태그가 되고 Microsoft_WSL2 포털에 동일한 태그가 표시됩니다.

플러그 인 테스트

설치 후 플러그 인을 테스트하려면 다음 단계를 수행합니다.

  1. 터미널 또는 명령 프롬프트를 엽니다. (Windows에서 시작으로> 이동명령 프롬프트. 또는 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 터미널을 선택합니다.)

  2. wsl 명령을 실행합니다.

  3. 에서 https://aka.ms/MDE-Linux-EDR-DIY스크립트 파일을 다운로드하고 추출합니다.

  4. Linux 프롬프트에서 명령을 ./mde_linux_edr_diy.sh실행합니다.

    WSL2 인스턴스에서 검색하려면 몇 분 후에 포털에 경고가 표시됩니다.

    참고

    이벤트가 Microsoft Defender 포털에 표시되는 데 약 5분이 걸립니다.

컴퓨터를 사용자 환경에서 테스트를 수행하는 일반 Linux 호스트인 것처럼 처리합니다. 특히 새 플러그 인을 사용하여 잠재적으로 악의적인 동작을 노출하는 기능에 대한 피드백을 받으려고 합니다.

고급 헌팅

고급 헌팅 스키마의 표 아래에 DeviceInfo WSL 인스턴스를 Windows 호스트 디바이스에 매핑하는 데 사용할 수 있는 라는 HostDeviceId 새 특성이 있습니다. 다음은 몇 가지 샘플 헌팅 쿼리입니다.

현재 조직/테넌트용 모든 WSL 디바이스 ID 가져오기

//Get all WSL device ids for the current organization/tenant 
let wsl_endpoints = DeviceInfo  
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct DeviceId; 

wsl_endpoints

WSL 디바이스 ID 및 해당 호스트 디바이스 ID 가져오기

//Get WSL device ids and their corresponding host device ids 
DeviceInfo  
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct WSLDeviceId=DeviceId, HostDeviceId

curl 또는 wget이 실행된 WSL 디바이스 ID 목록을 가져옵니다.

//Get a list of WSL device ids where curl or wget was run
let wsl_endpoints = DeviceInfo  
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct DeviceId; 

DeviceProcessEvents   
| where FileName == "curl" or FileName == "wget" 
| where DeviceId in (wsl_endpoints) 
| sort by Timestamp desc

문제 해결

  1. 이 명령은 healthcheck.exe "'bash' 명령을 사용하여 WSL 배포판을 시작하고 5분 후에 다시 시도"라는 출력을 보여 줍니다.

    PowerShell 출력을 보여 주는 스크린샷

  2. 앞에서 언급한 오류가 발생하는 경우 다음 단계를 수행합니다.

    1. 터미널 인스턴스를 열고 명령을 wsl실행합니다.

    2. 상태 검사를 다시 실행하기 전에 5분 이상 기다립니다.

  3. 명령에 " healthcheck.exe 원격 분석 대기 중" 출력이 표시될 수 있습니다. 5분 후에 다시 시도하세요."

    상태 원격 분석 상태를 보여 주는 스크린샷

    이 오류가 발생하면 5분 동안 기다렸다가 를 다시 실행 healthcheck.exe합니다.

  4. Microsoft Defender 포털에 디바이스가 표시되지 않거나 타임라인에 이벤트가 표시되지 않는 경우 다음 항목을 확인합니다.

    • 컴퓨터 개체가 표시되지 않는 경우 온보딩이 완료될 때까지 충분한 시간이 경과했는지 확인합니다(일반적으로 최대 10분).

    • 올바른 필터를 사용하고 모든 디바이스 개체를 볼 수 있는 적절한 권한이 할당되어 있는지 확인합니다. (예를 들어 계정/그룹이 특정 그룹으로 제한되는가요?)

    • 상태 검사 도구를 사용하여 전체 플러그 인 상태에 대한 개요를 제공합니다. 터미널을 열고 에서 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools도구를 실행 healthcheck.exe 합니다.

      PowerShell의 상태를 보여 주는 스크린샷

    • 연결 테스트를 사용하도록 설정하고 WSL에서 엔드포인트용 Defender 연결을 확인합니다. 연결 테스트가 실패하는 경우 지원 팀에 상태 검사 도구의 출력을 제공합니다.

    • 연결 테스트가 상태 검사에서 "유효하지 않음"을 보고하는 경우 에 다음 구성 설정을 .wslconfig 포함하고 WSL을 다시 시작합니다 %UserProfile% . 설정에 대한 자세한 내용은 WSL 설정에서 찾을 수 있습니다.

      • Windows 11에서

        # Settings apply across all Linux distros running on WSL 2
        [wsl2]
        
        dnsTunneling=true
        
        networkingMode=mirrored  
        
      • Windows 10에서

        # Settings apply across all Linux distros running on WSL 2
        [wsl2]
        
        dnsProxy=false
        
    • 연결 문제가 지속되면 다음 단계를 실행하여 네트워킹 로그를 수집합니다.

      1. 관리자 권한(관리자) PowerShell 프롬프트 열기

      2. 다운로드 및 실행: .\collect-networking-logs.ps1

        Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-networking-logs.ps1" -OutFile collect-networking-logs.ps1
        Set-ExecutionPolicy Bypass -Scope Process -Force
        .\collect-networking-logs.ps1
        
      3. 새 명령 프롬프트를 열고 다음을 실행합니다. wsl

      4. 관리자 권한(관리자) 명령 프롬프트를 열고 다음을 실행합니다. wsl --debug-shell

      5. 디버그 셸에서 다음을 실행합니다. mdatp connectivity test

      6. 연결 테스트 완료 허용

      7. 2단계에서 실행된 .ps1 중지

      8. 생성된 .zip 파일과 단계에서 설명한 대로 수집할 수 있는 지원 번들을 공유 합니다.

번들 컬렉션 지원

  1. 다른 문제 또는 문제가 발생하는 경우 터미널을 열고 다음 명령을 실행하여 지원 번들을 생성합니다.

    cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"
    
    .\healthcheck.exe --supportBundle 
    

    지원 번들은 이전 명령에서 제공한 경로에서 찾을 수 있습니다.

    PowerShell 출력의 상태를 보여 주는 스크린샷

  2. WSL용 Microsoft Defender 엔드포인트는 WSL 2에서 실행되는 Linux 배포를 지원합니다. WSL 1과 연결된 경우 문제가 발생할 수 있습니다. 따라서 WSL 1을 사용하지 않도록 설정하는 것이 좋습니다. Intune 정책을 사용하여 이렇게 하려면 다음 단계를 수행합니다.

    1. Microsoft Intune 관리 센터로 이동합니다.

    2. 디바이스>구성 프로필>새 정책만들기>로 이동합니다.

    3. Windows 10 이상>설정 카탈로그를 선택합니다.

    4. 새 프로필의 이름을 만들고 Linux용 Windows 하위 시스템을 검색하여 사용 가능한 설정의 전체 목록을 보고 추가합니다.

    5. WSL 2 배포만 사용할 수 있도록 WSL1 허용 설정을 사용 안 함으로 설정합니다.

      또는 WSL 1을 계속 사용하거나 Intune 정책을 사용하지 않으려면 PowerShell에서 명령을 실행하여 설치된 배포를 WSL 2에서 실행하도록 선택적으로 연결할 수 있습니다.

      wsl --set-version <YourDistroName> 2
      

      시스템에 설치할 새 배포판의 기본 WSL 버전으로 WSL 2를 사용하려면 PowerShell에서 다음 명령을 실행합니다.

      wsl --set-default-version 2
      
  3. 플러그 인은 기본적으로 Windows EDR 링을 사용합니다. 이전 링으로 전환하려면 레지스트리에서 다음 중 하나로 설정하고 OverrideReleaseRing WSL을 다시 시작합니다.

    • 이름: OverrideReleaseRing
    • 형식: REG_SZ
    • : Dogfood or External or InsiderFast or Production
    • 경로: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Defender for Endpoint plug-in for WSL
  4. "플러그 인 'DefenderforEndpointPlug-in' 오류 코드: Wsl/Service/CreateInstance/CreateVm/Plugin/ERROR_FILE_NOT_FOUND"와 같은 WSL을 시작할 때 오류가 발생하면 WSL 설치용 엔드포인트용 Defender 플러그 인에 결함이 있습니다. 복구하려면 다음 단계를 수행합니다.

    1. 제어판에서 프로그램 프로그램>및 기능으로 이동합니다.

    2. WSL용 엔드포인트용 Microsoft Defender 플러그 인을 검색하여 선택합니다. 그런 다음 , 복구를 선택합니다. 이 작업은 필요한 디렉터리에 올바른 파일을 배치하여 문제를 해결해야 합니다.

    제어판의 WSL 복구 옵션에 대한 MDE 플러그 인을 보여 주는 스크린샷