호스트 기반 방화벽 및 애플리케이션 허용 목록
호스트 기반 방화벽(Windows Defender Firewall, iptables)과 승인되지 않은 소프트웨어의 실행을 차단하는 애플리케이션 허용 목록을 구성합니다.
호스트 기반 방화벽 및 애플리케이션 허용 목록은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
호스트 기반 방화벽과 네트워크 방화벽 비교
네트워크 방화벽은 네트워크 경계에 위치하여 네트워크 세그먼트 간 트래픽을 필터링합니다. 호스트 기반 방화벽은 개별 엔드포인트에서 실행되며 해당 컴퓨터로 들어오고 나가는 트래픽을 필터링합니다. 호스트 기반 방화벽은 심층 방어를 제공합니다. 공격자가 네트워크 방화벽을 우회하더라도( VPN, 침해된 내부자 또는 감염된 다른 호스트에서의 측면 이동 등을 통해) 호스트 방화벽은 로컬 트래픽 규칙을 적용합니다. 특히 기업 경계를 벗어나 이동하며 신뢰할 수 없는 네트워크에 연결되는 노트북에 중요합니다.
Windows Defender Firewall
Windows Defender Firewall (WDF)은 최신 Windows 버전에 기본 제공되는 호스트 방화벽입니다. 세 가지 프로필을 지원합니다. Domain(기업 도메인에 연결됨 — 일반적으로 더 허용적), Private(신뢰할 수 있는 가정 네트워크), Public(신뢰할 수 없는 네트워크 — 가장 제한적)입니다. WDF 규칙은 포트, 프로토콜, 애플리케이션 경로, 원격 IP 및 사용자 ID를 기준으로 필터링할 수 있습니다. Windows Defender Firewall with Advanced Security (WFAS) MMC 스냅인과 Group Policy를 사용하면 모든 도메인 가입 컴퓨터의 방화벽 규칙을 중앙에서 관리할 수 있습니다.
# Windows: create inbound firewall rule
netsh advfirewall firewall add rule \
name='Block Telnet' \
dir=in \
action=block \
protocol=TCP \
localport=23
# PowerShell equivalent
New-NetFirewallRule \
-DisplayName 'Block Telnet Inbound' \
-Direction Inbound \
-Protocol TCP \
-LocalPort 23 \
-Action BlockLinux iptables와 nftables
Linux 호스트 방화벽은 넷필터 커널 프레임워크를 사용하며, 레거시 방식으로 여전히 널리 사용되는 iptables 또는 최신 nftables을 통해 구성할 수 있습니다. 규칙은 테이블(filter, nat, mangle) 내의 체인(INPUT, OUTPUT, FORWARD)으로 구성됩니다. 기본 정책은 DROP으로 설정하고 필요한 트래픽에 대해서만 명시적인 ACCEPT 규칙을 지정해야 합니다. 이것이 기본 거부 방식입니다. ufw(Ubuntu)와 firewalld(RHEL/CentOS) 같은 상위 수준 도구는 내부적으로 넷필터를 사용하면서도 더 편리한 인터페이스를 제공합니다.
# iptables: deny-by-default with selective allow
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow SSH from specific subnet only
iptables -A INPUT -s 10.10.0.0/24 -p tcp --dport 22 -j ACCEPT
# Allow HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Save rules
iptables-save > /etc/iptables/rules.v4애플리케이션 계층 방화벽 규칙
호스트 기반 방화벽은 애플리케이션 계층에서 규칙을 적용하여 포트뿐 아니라 트래픽을 생성한 애플리케이션을 기준으로 필터링할 수 있습니다. Windows Defender Firewall은 애플리케이션 기반 규칙을 지원합니다. 예를 들어 C:\Program Files\MyApp\app.exe의 외부 연결은 허용하고 같은 포트의 다른 모든 연결은 차단할 수 있습니다. 이렇게 하면 악성 코드가 신뢰할 수 있는 애플리케이션인 것처럼 가장하여 허용된 포트를 가로채는 것을 방지할 수 있습니다. 포트만 기준으로 하는 규칙은 악성 코드가 443과 같은 일반적인 포트에 연결하여 우회할 수 있으므로, 애플리케이션 계층 규칙이 훨씬 효과적입니다.
# Windows: firewall rule scoped to a specific app
New-NetFirewallRule \
-DisplayName 'Allow Chrome HTTPS' \
-Direction Outbound \
-Program 'C:\Program Files\Google\Chrome\Application\chrome.exe' \
-Protocol TCP \
-RemotePort 443 \
-Action Allow
# Blocks any OTHER process trying to use port 443
# unless that process also has an explicit ALLOW rule애플리케이션 Allowlisting이란?
애플리케이션 Allowlisting(이전에는 화이트리스트라고 함)은 엔드포인트에서 명시적으로 승인된 애플리케이션만 실행하도록 허용하는 보안 통제입니다. Allowlist에 없는 실행 파일은 악성 코드인지 단순히 승인되지 않은 소프트웨어인지와 관계없이 차단됩니다. 승인 목록에 없기만 하면 새로운 제로데이 악성 코드도 차단되므로 강력한 악성 코드 방어 수단입니다. 문제는 운영 측면에 있습니다. 규모가 크고 변화가 많은 환경에서 Allowlist를 관리하려면 성숙한 변경 관리 프로세스가 필요하며, 제대로 조정하지 않으면 지원 요청이 크게 증가합니다.
Windows AppLocker
AppLocker는 Enterprise 및 Education 에디션에서 사용할 수 있는 Windows 기본 제공 애플리케이션 제어 기능입니다. 다음 기준으로 실행을 필터링합니다. 경로(%TEMP% 또는 사용자가 쓰기 가능한 디렉터리에서 실행 파일 차단), 파일 해시(검증된 해시만 허용), publisher(Microsoft 또는 Adobe에서 서명한 소프트웨어 허용)입니다. AppLocker 정책은 Group Policy를 통해 배포되며 Windows 이벤트 로그에 기록됩니다(이벤트 ID 8003 = 차단됨). 먼저 감사 모드에서 AppLocker를 실행하면, 적용하지 않고 차단 내역만 기록하므로 적용을 시작하기 전에 팀에서 Allowlist를 조정할 수 있습니다.
# AppLocker rule examples (Group Policy)
# Block executables in user-writable locations
Path Rule: C:\Users\*\AppData\*.exe -> DENY
Path Rule: C:\Windows\Temp\*.exe -> DENY
# Allow by publisher (certificate)
Publisher Rule: O=Microsoft, CN=* -> ALLOW
Publisher Rule: O=Adobe, CN=Adobe Acrobat -> ALLOW
# Hash rule for specific approved version
Hash Rule: SHA256:a1b2c3d4... -> ALLOW
# Check AppLocker events:
Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL'Windows Defender Application Control (WDAC)
WDAC는 AppLocker의 더 강력한 후속 기능으로, 사용자 공간이 아니라 커널 수준에서 적용됩니다. AppLocker와 달리 WDAC는 로컬 관리자 권한을 가진 공격자도 우회할 수 없으므로 보안 수준이 높은 환경에서 선호되는 통제 수단입니다. WDAC 정책은 XML로 작성한 후 이진 정책 파일로 변환하여 MDM (Intune) 또는 Group Policy를 통해 배포합니다. 또한 WDAC는 Intelligent Security Graph (ISG) 통합을 지원합니다. 이를 통해 Microsoft의 클라우드 평판 서비스를 사용하여 신뢰할 수 있는 평판을 가진 소프트웨어를 자동으로 허용하므로, Allowlist를 수동으로 선별하고 관리해야 하는 운영 부담을 줄일 수 있습니다.
Allowlisting의 과제
Allowlisting은 강력하지만 운영이 까다롭습니다. 일반적인 과제는 다음과 같습니다. LOLBins(Living-Off-the-Land Binaries) — 공격자는 일반적으로 모든 Allowlist에 포함된 PowerShell, wscript.exe 및 mshta.exe 같은 Windows 시스템 도구를 사용합니다. 따라서 Allowlisting은 이러한 도구의 실행 여부뿐 아니라 호출 방식도 제한해야 합니다. 스크립팅 언어(PowerShell, Python)는 Allowlist에 포함되는 경우가 많지만 악성 코드를 실행할 수 있습니다. 오탐 — Allowlist에 의해 차단된 정상 소프트웨어 — 은 헬프데스크 요청을 발생시키고 통제를 약화하라는 압력을 높입니다. 성숙한 Allowlisting 프로그램은 추가적인 제한된 언어 모드 정책을 통해 LOLBins에 대응합니다.
# Restricting PowerShell with Constrained Language Mode
# Applied via WDAC when non-WDAC code runs
$ExecutionContext.SessionState.LanguageMode
# Full Language mode -> normal PowerShell
# Constrained Language -> no .NET, no COM objects
# Blocks many attack techniques
# Via Group Policy: force PowerShell logging
# Computer Config > Admin Templates > Windows Components
# > Windows PowerShell
# Enable: Module Logging, Script Block Logging, TranscriptionAllowlisting과 Denylisting 비교
Allowlisting은 명시적으로 승인된 항목만 허용하고 나머지는 모두 차단하므로 더 강력한 보안 태세를 제공합니다. Denylisting(블랙리스트)은 명시적으로 악성으로 알려진 항목을 차단하고 나머지는 모두 허용하는 전통적인 백신 모델입니다. Denylisting은 알려지지 않은 위협에 대응하지 못하며, Allowlisting은 LOLBins와 지나치게 광범위한 허용 항목에 취약합니다. 대부분의 성숙한 보안 프로그램은 중요 시스템의 주요 통제로 Allowlisting을 사용하고, 허용된 애플리케이션의 오용은 행동 기반 탐지(EDR)로 포착합니다. 덜 중요한 시스템에서는 잘 조정된 Denylist와 행동 모니터링을 함께 사용하는 방식도 허용될 수 있습니다.
방화벽과 Allowlisting 결합
호스트 기반 방화벽과 애플리케이션 Allowlisting은 서로 보완하는 계층형 통제입니다. Allowlist는 승인되지 않은 코드의 실행을 방지하고, 방화벽은 승인되었지만 침해된 코드의 승인되지 않은 네트워크 연결을 방지합니다. 두 통제를 함께 사용하면 엔드포인트의 애플리케이션 계층과 네트워크 계층 모두에 최소 권한 원칙을 적용할 수 있습니다. 여기에 세 번째 계층으로 EDR을 추가하면 심층 방어 체계가 구성됩니다. 각 통제가 다른 통제가 놓칠 수 있는 위협을 포착하므로 엔드포인트에 대한 공격 성공에 필요한 비용과 복잡성이 크게 증가합니다.
# Endpoint defense-in-depth stack
Layer 1: Application Allowlisting (WDAC)
-> Blocks unauthorized executables from running
Layer 2: Host-Based Firewall (WDF)
-> Blocks unauthorized network connections
-> Even from allowlisted apps on non-standard ports
Layer 3: EDR (CrowdStrike/Defender for Endpoint)
-> Detects behavioral anomalies in allowed processes
-> Catches LOLBin misuse, process injection
-> Provides forensic telemetry for investigation방화벽 기록 및 모니터링
호스트 기반 방화벽의 가치는 생성하는 기록만큼이나 중요합니다. 공격 시도와 정책 위반을 포착하려면 차단된 연결 기록을 활성화하십시오. 관리 도구를 허용하는 규칙처럼 민감한 규칙에서는 감사 추적을 유지하기 위해 허용된 연결 기록도 활성화하십시오. 상관 분석을 위해 방화벽 기록을 SIEM으로 전달하십시오. 한 호스트에서 외부로 나가는 차단된 연결이 반복되면 악성 코드가 명령 및 제어 서버로 콜백을 시도하고 있음을 나타낼 수 있습니다. Windows에서는 기본적으로 방화벽 기록이 %systemroot%\System32\LogFiles\Firewall\pfirewall.log에 기록되며, Windows Event Forwarding (WEF) 또는 기록 에이전트를 통해 전달해야 합니다.
# Enable Windows Firewall logging via PowerShell
Set-NetFirewallProfile -All \
-LogBlocked True \
-LogAllowed True \
-LogMaxSizeKilobytes 16384 \
-LogFileName '%systemroot%\System32\LogFiles\Firewall\pfirewall.log'
# Linux: log dropped packets with iptables
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 5/min -j LOG \
--log-prefix 'IPtables-Dropped: ' --log-level 4
iptables -A LOGGING -j DROP빠른 확인
이 강의에서 다룬 CompTIA Security+ (SY0-701) 개념에 대한 이해도를 확인해 보십시오.
강의 요약
이 강의에서는 다음을 배웠습니다. 호스트 기반 방화벽(Windows Defender Firewall, iptables)은 엔드포인트별로 트래픽을 필터링하며 기본 거부 방식과 애플리케이션 범위 규칙을 사용합니다. 애플리케이션 Allowlisting(AppLocker, WDAC)은 악성 코드를 포함한 승인되지 않은 실행 파일의 실행을 차단합니다. 또한 방화벽, Allowlisting 및 EDR을 계층화하면 심층 방어가 구현되어 공격에 필요한 비용이 크게 증가합니다. 다음으로 이메일 인증인 SPF, DKIM 및 DMARC를 살펴보겠습니다.
자주 묻는 질문
“호스트 기반 방화벽 및 애플리케이션 허용 목록” 강의는 무료인가요?
네 — “호스트 기반 방화벽 및 애플리케이션 허용 목록” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“호스트 기반 방화벽 및 애플리케이션 허용 목록”에서 뭘 배우나요?
호스트 기반 방화벽(Windows Defender Firewall, iptables)과 승인되지 않은 소프트웨어의 실행을 차단하는 애플리케이션 허용 목록을 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“호스트 기반 방화벽 및 애플리케이션 허용 목록” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 안티바이러스, EDR, XDR 플랫폼
- OS 강화: 패치, 기준선 구성, CIS 벤치마크
- 모바일 기기 관리(MDM) 및 BYOD 정책
- 호스트 기반 방화벽 및 애플리케이션 허용 목록