콤푸타/Windows

[Windows] 윈도우 11 디펜더(Defender) 끄기

어둠의다크 2024. 11. 24. 21:21

필자는 업무 특성상 악성코드를 다루는 작업이 많은데, 디펜더의 실시간 탐지 기능이 가끔 소중한(?) 악성코드를 차단 or 격리 해버리는 바람에 불편한 상황이 발생하곤 한다.  그래서 윈도우 디펜더를 영구적으로 비활성화 하는 방법에 대해 알아보았다. (Disable Windows Defender permanently)

* 디펜더를 비활성화하면 시스템이 악성 코드에 취약해질 수 있음. 전문가가 아니라면 수행하지 않는 것을 권고함

 컴퓨터를 잘 모르고 단순히 실시간 탐지만 끄고싶은 독자1-A 설정 옵션 과 2-A 설정에서 비활성화 를 확인하면 되겠다.

1. 디펜더와 관련된 윈도우 설정들

 우선은 우리가 생각해보아야 할 부분은 크게 한 5가지 정도가 될 것 같다.

A. 설정 옵션

다음 순서로 윈도우 보안센터로 접근할 수있다.

  1. win + i 키를 눌러 설정 창 오픈
  2. 개인 정보 및 보안 → Windows 보안 → 바이러스 및 위협 방지 순서로 클릭

 다만 여기서는 디펜더를 완전히 비활성화 할 수는 없고 실시간 탐지 기능을 비활성화 할 수있다. 또 변조 보호(Tamper Protection) 기능을 비활성화 할 수 있는데, 여러분은 이 기능을 꼭 기억해주길 바란다.

 

B. 그룹 정책 편집기

 그룹 정책 편집기는 PC 또는 개인 사용자들에 대한 컴퓨팅 정책을 설정하는 기능이다. 참고로 Windows Home 버전에서는 기본적으로 그룹정책 편집기가 없으며, 별도의 방법으로 활성화 시킬 수 있다.

실행 창을 켜셔 gpedit.msc 를 입력 후 실행하면 그룹 정책 설정 페이지를 볼 수 있다. 그 중 윈도우 디펜더와 관련있는 값들은 아래 그림과 같다.

 

C. 레지스트리

 레지스트리는 윈도우 운영체제 구동을 위한 다양한 설정 값들을 모아놓은 데이터베이스라 할 수 있다. 디펜더 관련 설정 값들도 확인할 수 있다.

아래 다섯가지 키가 디펜더와 관련된 것으로 추정된다.

HKLM\SOFTWARE\Microsoft\Windows Defender
HKLM\SOFTWARE\Microsoft\Windows Defender\Features
HKLM\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Policy Manager
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection

 

D. 서비스

  서비스는 운영체제가 시작할 때 백그라운드에서 동작 할 프로그램들을 실행시켜주는 역할을 한다. 서비스는 실행창에서 services.msc 를 입력하면 확인할 수 있다. 다양한 서비스들 중 윈도우 디펜더와 관련 된 두 개항목을 확인할 수 있다.

 일반적인 서비스는 운영체제 부팅 시 자동으로 서비스를 시작할 지, 현재 동작 중인 서비스를 중지할 것인지를 결정할 수 있지만 윈도우 디펜더의 경우 알 수 없는 이유로 이러한 동작들이 비활성화 되어있다.

 

E. 파워쉘

 파워쉘을 통해 운영체제의 다양한 정보들을 확인하거나 수정할 수 있다. 자세한 방법은 참조에 있는 MSDN 링크를 확인하면 되겠다.
 우선 관리자 권한으로 파워쉘을 실행시켜 준 후 Get-MpComputerStatus 명령을 실행하면 다양한 값들을 볼 수 있다.

 

2. 디펜더 비활성화 하기

 디펜더와 관련있는 여러 값들을 변경해보면서 어떤 동작을 통해 윈도우 디펜더를 비활성화 할 수 있을지 알아보자

A. 설정에서 비활성화

 필자가 가장 불편해하는 기능은 바로 실시간 보호 기능이다. 그리고 이 실시간 보호기능은 손쉽게 비활성화 할 수 있다.

 그런데 분명 실시간 보호 기능을 비활성화 했는데 시간이 지나면 다시 활성화되어 악성파일들을 잡아내기 시작한다. 그 이유는 바로...

 바로 이 변조 보호(Tamper Protection) 기능 때문이다. 이 기능은 디펜더의 중요한 기능들을 변조할 수 없도록, 즉 이 기능이 켜져있다면 다른 값들을 아무리 변경해도 MS가 의도한 기본값대로 다시 돌아간다는 의미다. 따라서 디펜더와 관련된 중요한 설정들을 비활성화 하려면 가장 먼저 이 변조 보호(Tamper Protection) 기능을 비활성화 해야한다.

* 단 잠시 임시로만 실시간 탐지 기능을 끄겠다면 변조 보호 기능은 건드리지 않는 것이 좋다.

 

B. 그룹 정책 편집

 그룹 정책 편집기에는 실시간 보호 기능 끄기라는 정책이 있는것을 볼 수 있다.

해당 정책을 사용으로 바꿔주고 확인을 눌러주자. 그리고 시스템 재시작을 하면 해당 정책이 활성화되어 실시간 탐지가 비활성화 된 것을 확인할 수 있다. (단 변조 보호 기능은 꼭 수동으로 비활성화 해 주어야 한다)

아래 Microsoft Defender 바이러스 백신 끄기는 직접적으로 디펜더를 비활성화 할 수 있는 정책이다.

여담이지만 Tamper Protection 과 관련된 정책은 MS에서 제공하지 않는 것으로 확인된다.

 

C. 레지스트리 편집

 위에서 5개의 의심스러운 레지스트리 키 값을 확인했다.

HKLM\SOFTWARE\Microsoft\Windows Defender
HKLM\SOFTWARE\Microsoft\Windows Defender\Features
HKLM\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Policy Manager
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection

 

 미리 말하자면 위 레지스트리 키 중 아래 두 키는 그룹 정책과 연동되어 있는 값이다. 따라서 이 절에서는 다루지 않겠다. 나머지 키에 있는 값들을 수정하려고 시도하였으나, 관리자 권한으로는 수정할 수 없었다.

 아마 디펜더가 수정을 막고 있을 것으로 추측되는데 '시스템 권한' 을 사용해 이를 시도해보겠다.

시스템 권한 확보

위 그림처럼 시스템 권한을 획득했다. 참고로 얘기해보자면 윈도우 시스템에는 '관리자 권한' 보다 상위 개념인 '시스템 권한'이 존재한다. System 권한을 가진 채로 레지스트리 수정을 시도했으나, 여전히 수정을 할 수가 없었다. 따라서 '일반적인 방법' 으로는 해당 레지스트리 키와 값들을 변경할 수 없음으로 결론 내렸다.

 

D. 서비스 중지 or 삭제

 간단하게 말하자면 디펜더 관련한 서비스 또한 중지나 삭제를 할 수 없었다.

 

E. 파워쉘로 자동화 하기

 컴퓨터쟁이들은 이런것들을 자동화하고 싶어하는 슬픈 습성이 있다. 그래서 이를 자동화할 수 있는 방법을 찾아보았다. 아까 위에서 언급했던 두 레지스트리 키 값들은 그룹정책 편집기와 관련되어 있다 언급했었다.
 HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection 에 있는 DisableRealtimeMonitoring 값은 바로 실시간 보호 기능 끄기 정책과 연동된다.

* 단 변조 보호(Tamper Protection) 기능이 비활성화 되어있어야 한다

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /t "DWORD32" /d "1"

위 명령을 수행하면 된다. 또는 powershell 아래 방법을 사용하면 된다.

# 레지스트리 경로 정의
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection"

# 키가 존재하지 않으면 생성
if (-not (Test-Path $RegistryPath)) {
    New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "Real-Time Protection" -Force
}

# 키에 값 추가
New-ItemProperty -Path $RegistryPath -Name "DisableRealtimeMonitoring" -Value 1 -PropertyType DWord -Force

 또는 Set-MpPreference 기능을 이용해서 실시간 탐지 기능을 비활성화 할 수도 있다.

# 실시간 탐지 기능 상태 확인
Get-MpPreference | Select-Object DisableRealtimeMonitoring

# 실시간 탐지 기능 비활성화
Set-MpPreference -DisableRealtimeMonitoring $true

 또 HKLM\SOFTWARE\Policies\Microsoft\Windows Defender 의 DisableAntiSpyware 값은 Windows Defender 바이러스 백신 끄기 정책과 연동된다. 이 역시 아래 스크립트로 수행 가능하다.

# 디펜더 끄기
# 레지스트리 경로 정의
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender"

# 키에 값 추가
New-ItemProperty -Path $RegistryPath -Name "DisableAntiSpyware" -Value 1 -PropertyType DWord -Force

 

 위 명령을 수행한 후 Get-MpComputerStatus | select AMRunningMode 명령으로 디펜더가 비활성화 되어있는지 확인할 수있다.

 그리고 당연하지만, 위 레지스트리 경로에 있는 값들을 직접 수정해도 된다!

* 파워쉘에서도 역시 변조 보호(Tamper Protection)를 비활성화 하는 기능은 제공하지 않는다.

 

3. 외부 프로그램 사용

관련 설정을 제어하는 외부 프로그램을 사용할 수도 있다.

https://www.sordum.org/9480/defender-control-v2-1/

 

Defender Control v2.1

In Windows there is no option to completely turn off Microsoft Defender , Defender control is a Portable freeware to disable Ms Defender.

www.sordum.org

실제로 공격자들이 자주 사용하는 도구로 손쉽게 윈도우 디펜더를 비활성화 할 수있다. 자세한 설명은 생략 :)

 

4. 결론

 윈도우 디펜더를 비활성화 하기 위한 다양한 방법을 알아보았다. 여러 테스트로 얻은 결론은 다음과 같다.

  1. 디펜더 기능은 설정, 그룹정책 편집, 레지스트리, 파워쉘 등 다양한 방법을 통해 비 활성화 할 수 있다.
  2. 변조 보호(Tamper Protection)을 끄지 않으면 관련 설정들을 비활성화 해도 재부팅 시 다시 활성화된다.
  3. 변조 보호(Tamper Protection)관련 그룹 정책은 없으며, 일부 레지스트리 값도 변조할 수 없도록 제한되어 있다.
  4. 따라서 변조 보호(Tamper Protection) 기능은 설정페이지에서 직접 비활성화 해야한다.

끝!

 

5. 참조

https://learn.microsoft.com/en-us/powershell/module/defender/?view=windowsserver2022-ps

 

Defender Module

Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware

 

DisableAntiSpyware

DisableAntiSpyware 및 DisableAntivirus

learn.microsoft.com