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

개요

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

알려진 문제점 및 제한

시작하기 전에 다음 사항을 유의하세요.

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

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

  3. 이 버전에서는 사용자 지정 커널 및 사용자 지정 커널 명령줄 실행이 지원됩니다. 그러나 플러그 인은 사용자 지정 커널 및 사용자 지정 커널 명령줄을 실행할 때 WSL 내의 표시 유형에 대한 보장을 제공하지 않습니다.

소프트웨어 필수 구성 요소

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

    를 실행 wsl --update 하여 최신 버전에 있는지 확인합니다. 2.0.7 이전 버전을 표시하는 경우 wsl -–version 를 실행 wsl -–update –pre-release 하여 최신 업데이트를 가져옵니다.

  • 엔드포인트용 Defender는 Windows 호스트 OS에서 온보딩되고 실행되어야 합니다.

  • 호스트 OS는 Windows 10 클라이언트, 버전 2004 이상(빌드 19044 이상) 또는 Windows 11 클라이언트를 실행하여 플러그 인과 함께 사용할 수 있는 Linux용 Windows 하위 시스템 버전을 지원해야 합니다.

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

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

설치 디렉터리:

  • %ProgramFiles%

  • %ProgramData%

설치된 구성 요소:

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

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

설치 단계

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

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

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

    1. WSL이 설치 및 실행 중인지 확인

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

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

    2. 플러그 인 설치

    WSL이 실행되고 완전히 최신 상태이면 다음 단계에 따라 플러그 인을 설치합니다.

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

    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의 세부 정보를 검토하고 다음 요구 사항과 일치하거나 초과하는지 확인합니다.

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

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

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

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

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

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

플러그 인 프록시 선택

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

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

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

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

예: 호스트 컴퓨터에 Winhttp 프록시네트워크 & 인터넷 프록시가 모두 있는 경우 플러그 인이 프록시 구성으로 선택됩니다 Winhttp proxy .

참고

DefenderProxyServer 레지스트리 키는 더 이상 지원되지 않습니다. 위에서 언급한 단계에 따라 플러그 인에서 프록시를 구성합니다.

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

다음 절차에서는 WSL의 엔드포인트에서 Defender가 인터넷에 연결되어 있는지 확인하는 방법을 설명합니다.

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

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

    • 이름: ConnectivityTest
    • 형식: REG_DWORD
    • : Number of seconds plug-in must wait before running the test. (Recommended: 60 seconds)
    • 경로: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Defender for Endpoint plug-in for WSL
  3. 레지스트리가 설정되면 다음 단계를 사용하여 wsl을 다시 시작합니다.

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

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

  4. 5분 동안 기다렸다가 실행 healthcheck.exe 합니다(연결 테스트 결과에 대해 에 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools 있음).

    성공하면 연결 테스트가 성공했는지 확인할 수 있습니다.

참고

WSL 컨테이너(하위 시스템의 배포판)에서 사용할 프록시를 설정하려면 WSL의 고급 설정 구성을 참조하세요.

기능 및 SOC 분석가 환경 확인

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

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

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

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

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

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

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

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

플러그 인 테스트

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

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

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

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

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

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

    참고

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

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

고급 헌팅

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

현재 organization/테넌트용 모든 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. 터미널 instance 열고 명령을 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 연결에 대한 연결 테스트 및 검사 사용하도록 설정합니다. 연결 테스트가 실패하면 상태 검사 도구의 출력을 에 mdeforwsl-preview@microsoft.com제공합니다.

    • 연결 테스트가 상태 검사 "유효하지 않음"을 보고하는 경우 에 다음 구성 설정을 .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
        
  5. 다른 문제 또는 문제가 발생하는 경우 터미널을 열고 다음 명령을 실행하여 지원 번들을 생성합니다.

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

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

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

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

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

    2. 디바이스>구성 프로필>Create>새 정책으로 이동합니다.

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

    4. 새 프로필의 이름을 Create 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
    
  7. 플러그 인은 기본적으로 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