Firewall (방화벽)
Firewalls (방화벽)
방화벽은 네트워크 경계에서 트래픽을 필터링하는 장치다. 신뢰할 수 없는 외부 네트워크(인터넷)와 내부 네트워크 사이에 위치해서, 정책에 따라 패킷을 허용하거나 차단한다.
핵심 원칙은 **기본 거부(default deny)**다. 명시적으로 허용된 트래픽만 통과시키고, 나머지는 차단한다.
방화벽의 필요성
인터넷에 연결된 네트워크는 다양한 위협에 노출된다:
- DoS 공격으로 서비스 마비
- 악성코드 침투
- 내부 데이터 유출
- 불법적인 자원 접근
방화벽은 이러한 위협으로부터 내부 네트워크를 보호하는 첫 번째 방어선이다.
패킷 필터링 (Stateless Packet Filter)
가장 기본적인 방화벽 유형이다. 각 패킷을 독립적으로 검사하며, 헤더 정보만 보고 판단한다:
- 출발지/목적지 IP 주소
- 출발지/목적지 포트 번호
- 프로토콜 (TCP, UDP, ICMP)
- TCP 플래그 (SYN, ACK 등)
라우터의 ACL(Access Control List)이 대표적인 예다.
ACL 규칙 예시
ACL 규칙은 순서대로 평가된다. 첫 번째로 매칭되는 규칙이 적용된다.
| 규칙 | 출발지 | 목적지 | 프로토콜 | 포트 | 동작 |
|---|---|---|---|---|---|
| 1 | any | 웹서버 | TCP | 80, 443 | 허용 |
| 2 | 내부망 | any | TCP | any | 허용 |
| 3 | any | any | any | any | 거부 |
규칙 3이 기본 거부(default deny) 정책이다.
Stateless의 한계
Stateless 방화벽은 연결의 맥락을 모른다. 각 패킷을 개별적으로 판단하기 때문에:
- 내부에서 시작한 연결의 응답 패킷인지, 외부에서 시작한 공격인지 구분할 수 없다
- ACK 스캔 같은 기법으로 우회될 수 있다
- 포트가 아닌 애플리케이션 레벨 공격을 탐지하지 못한다
Stateful Packet Inspection
Stateful 방화벽은 연결 상태를 추적한다. **연결 테이블(connection table)**을 유지하면서:
- 내부에서 외부로 나가는 SYN 패킷을 보면 새 연결로 기록
- 외부에서 들어오는 SYN-ACK는 기존 연결의 응답으로 허용
- 연결 테이블에 없는 외부 발신 패킷은 차단
이렇게 하면 "내부에서 시작한 연결의 응답"만 허용하고, "외부에서 시작한 연결"은 차단할 수 있다.
연결 상태 테이블
연결 테이블에는 각 연결의 상태가 기록된다:
| 출발지 IP | 출발지 포트 | 목적지 IP | 목적지 포트 | 상태 | 타임아웃 |
|---|---|---|---|---|---|
| 192.168.1.10 | 52341 | 93.184.216.34 | 443 | ESTABLISHED | 3600s |
| 192.168.1.15 | 49152 | 142.250.190.78 | 80 | TIME_WAIT | 120s |
연결이 종료되거나 타임아웃되면 테이블에서 제거된다.
Application Gateway (Proxy)
Application Gateway는 특정 애플리케이션의 트래픽을 중계하고 검사한다.
예를 들어 HTTP 프록시는:
- 클라이언트가 프록시에 HTTP 요청을 보낸다
- 프록시가 요청 내용을 검사한다 (URL, 헤더, 바디)
- 정책에 맞으면 실제 서버에 대신 요청한다
- 응답도 검사 후 클라이언트에게 전달한다
L7 레벨에서 검사하므로 SQL Injection, XSS 같은 애플리케이션 공격도 탐지할 수 있다. 단점은 성능 오버헤드가 크다는 것.
DMZ (Demilitarized Zone)
외부에 공개해야 하는 서버(웹서버, 메일서버)를 내부망에 두면 위험하다. 해당 서버가 뚫리면 내부망 전체가 위험해진다.
해결책은 DMZ를 두는 것이다:
인터넷 ─── [외부 방화벽] ─── DMZ ─── [내부 방화벽] ─── 내부망
│
웹서버, 메일서버
- 외부 방화벽: 인터넷 → DMZ (웹 포트만 허용)
- 내부 방화벽: DMZ → 내부망 (거의 대부분 차단)
DMZ 서버가 해킹당해도 내부망은 별도의 방화벽으로 보호된다.
방화벽의 한계
방화벽만으로는 모든 위협을 막을 수 없다:
- 내부 위협: 방화벽은 외부-내부 경계에 있다. 내부자 공격은 탐지 못함
- 암호화 트래픽: HTTPS 내용은 볼 수 없다 (TLS 복호화 없이는)
- 허용된 포트 공격: 80번 포트가 열려있으면 HTTP 기반 공격은 통과
- Zero-day 공격: 알려지지 않은 공격 패턴은 탐지 불가
그래서 IDS/IPS, WAF, EDR 등 다른 보안 솔루션과 함께 사용해야 한다.
차세대 방화벽 (NGFW)
NGFW(Next-Generation Firewall)는 기존 방화벽에 추가 기능을 통합한 것이다:
- Deep Packet Inspection: 패킷 페이로드까지 검사
- 애플리케이션 인식: 포트가 아닌 애플리케이션 기반 정책 (Skype, BitTorrent 등)
- 사용자 인식: IP가 아닌 사용자 기반 정책
- IPS 통합: 침입 방지 시스템 내장
- TLS 복호화: HTTPS 트래픽 검사 (인증서 대체 방식)
Palo Alto, Fortinet, Cisco 등이 대표적인 NGFW 벤더다.
방화벽 유형 비교
| 유형 | 검사 레벨 | 상태 추적 | 장점 | 단점 |
|---|---|---|---|---|
| Packet Filter | L3-L4 | X | 빠름, 단순 | 우회 쉬움 |
| Stateful | L3-L4 | O | 연결 맥락 이해 | L7 공격 못 막음 |
| Application GW | L7 | O | 깊은 검사 | 성능 저하 |
| NGFW | L3-L7 | O | 통합 보안 | 복잡, 고가 |