992. 방화벽 (Stateful Inspection) - 패킷 필터링 한계 극복 연결 상태 추적 메모리 기반 동적 허용망 접근 제어 보안 시스템 진화 모델

핵심 인사이트 (3줄 요약)

  • 1세대 패킷 필터링 방화벽은 문맥(Context) 파악 없이 패킷의 단편적 정보만으로 통과 여부를 결정해 보안과 편의성에 한계가 존재했습니다.
  • 2세대 상태 추적(SPI) 방화벽은 내부에 '상태 테이블(State Table)'을 두어 통신 세션의 연결 상태를 메모리에 기록하고 추적합니다.
  • 내부에서 외부로 향하는 정상적인 요청에 대한 응답 패킷만 동적으로 허용하며, 상태 테이블에 없는 불법 패킷은 즉시 차단하여 보안성을 획기적으로 높였습니다.

Ⅰ. 1세대 방화벽의 멍청함 (패킷 필터링)

  • 원리: 들어오는 패킷의 껍데기(출발지 IP, 목적지 IP, 포트 번호)만 보고, 미리 엑셀로 적어둔 ACL(접근 제어 목록)과 비교해 통과/차단을 결정합니다.
  • 치명적 약점 (Stateless):
    • 과거의 기억을 3초 만에 잊어버리는 금붕어입니다. 패킷 간의 **'연관성(맥락)'**을 전혀 모릅니다.
    • 내가 사내망에서 외부 웹서버로 접속(SYN)을 시도했습니다. 웹서버가 나에게 답장(ACK)을 보냅니다.
    • 1세대 방화벽은 "어? 밖에서 사내망으로 들어오는 패킷이네? 차단!" 이래버립니다. 이걸 막으려면 "외부 웹서버 포트 80번에서 들어오는 모든 패킷은 허용해라"라고 문을 휑하게 열어둬야 했고, 해커들은 이 열린 문(포트)으로 유유히 걸어 들어왔습니다.

📢 섹션 요약 비유: 1세대 방화벽은 손님의 얼굴이나 목적을 기억하지 못하는 나이트클럽 문지기와 같습니다. "청바지 입은 사람은 무조건 통과"라는 규칙만 있어서, 해커가 폭탄을 들고 청바지만 입고 와도 그냥 문을 열어줍니다.

Ⅱ. 2세대 상태 추적 방화벽 (Stateful Packet Inspection, SPI) 🌟

이스라엘의 체크포인트(Check Point) 사가 발명한 현대 모든 방화벽의 영원한 표준(디폴트) 아키텍처입니다.

1. 연결 상태(State) 장부의 도입 🌟

  • 방화벽 뱃속 램(RAM) 메모리에 **'상태 테이블(State Table)'**이라는 출입 명부를 만듭니다.
  • 사내 PC가 외부 웹서버로 첫 패킷(SYN)을 쏠 때, 방화벽이 문을 열어주면서 명부에 적습니다. "오케이, 사내 PC(A)가 외부 서버(B)한테 문 두드렸다! (TCP 연결 확립 중, 상태=ESTABLISHED)"

2. 문맥을 아는 똑똑한 검사 (동적 허용) 🌟 핵심 🌟

  • 이제 밖(외부 웹서버)에서 사내망으로 무언가 쏟아져 들어옵니다.
  • SPI 방화벽은 무작정 차단하지 않고, 자신의 출입 명부(State Table)를 먼저 뒤져봅니다.
  • 정상 응답: "어? 이거 아까 우리 회사 A 직원이 요청했던 웹페이지(B 서버)에 대한 답장 패킷이잖아? 내 명부에 있네! 이건 합법적인 맥락이니까 묻지도 말고 즉시 임시 문을 열어줘(통과)!"
  • 해커의 기습: 명부에 없는 쌩판 모르는 해커(C 서버)가 갑자기 사내망으로 패킷을 밀어 넣습니다. "명부에 넌 없는데? 누군데 함부로 들어와? 당장 찢어버려!(Drop)"

📢 섹션 요약 비유: 2세대 상태 추적 방화벽은 천재적인 기억력을 가진 초엘리트 문지기입니다. 클럽 안의 VIP 손님(사내 PC)이 밖으로 피자 배달을 시킬 때 장부(상태 테이블)에 꼼꼼히 적어두고, 잠시 후 피자 배달원(응답 패킷)이 오면 장부를 확인해 문을 열어줍니다. 아무도 부르지 않은 해커가 오면 즉시 쫓아냅니다.

Ⅲ. SPI 방화벽의 장단점

  • 장점:
    • 밖에서 들어오는 구멍(포트)을 평소엔 100% 콱 닫아둘 수 있습니다(초강력 보안). 내부에서 요청한 놈의 답장이 돌아올 때만 그 찰나의 순간에만 포트를 스르륵 열어주고(동적 포트 허용), 대화가 끝나면 다시 꽉 정밀하게 닫습니다.
    • 매번 무겁게 방화벽 룰(ACL) 1만 줄을 끝까지 엑스레이 스캔할 필요 없이, 상태 명부(캐시)만 슬쩍 보고 넘겨주므로 패킷 필터링보다 속도도 미친 듯이 빠릅니다.
  • 단점 (DDoS 공격의 먹잇감):
    • 방화벽이 명부(State Table)를 램(RAM)에 꾹꾹 눌러 적다 보니, 해커가 SYN Flooding (가짜 연결 요청) 공격을 1초에 10만 개씩 때려버리면, 방화벽의 명부(세션 테이블 메모리)가 1초 만에 꽉 차버려 방화벽이 뇌사 상태에 빠지는 아킬레스건이 있습니다.

📢 섹션 요약 비유: 상태 테이블이라는 '캐시 메모리' 덕분에 매번 규칙을 뒤적거릴 필요 없이 초고속으로 통과시켜 줄 수 있지만, 해커가 가짜 배달 주문을 1초에 10만 개씩 넣어 장부(RAM)를 꽉 채워버리면 문지기가 과부하로 쓰러지는 약점이 있습니다.

[상태 추적 방화벽 (SPI) 동작 구조]

   내부 네트워크 (사내 PC)                          외부 네트워크 (인터넷)
        (10.0.0.5)                                     (8.8.8.8)
            │                                              │
            │  1. 접속 요청 (SYN)                          │
            ├─────────────────┐                            │
            │                 ▼                            │
            │       ┌───────────────────┐                  │
            │       │    SPI 방화벽     │                  │
            │       │ ┌───────────────┐ │                  │
            │       │ │ 상태 테이블   │ │                  │
            │       │ │ (State Table) │ │                  │
            │       │ ├───────────────┤ │  2. 허용 & 기록  │
            │       │ │ 10.0.0.5 <->  │ │─────────────────▶│
            │       │ │ 8.8.8.8       │ │                  │
            │       │ │ (상태 기록됨) │ │                  │
            │       │ └───────────────┘ │                  │
            │       └───────────────────┘                  │
            │                 ▲                            │
            │                 │  3. 정상 응답 (SYN+ACK)    │
            │                 └────────────────────────────┤
            │                                              │
            │  4. 테이블 확인 후 허용 통과                 │
            │◀────────────────────────────────────────────┤
            │                                              │
            │                                              │   해커 (9.9.9.9)
            │                                              │         │
            │                 5. 무단 침입 패킷            │         │
            │                 ┌──────────────────────────────────────┤
            │                 ▼                                      │
            │       ┌───────────────────┐                            │
            │       │    SPI 방화벽     │                            │
            │       │ ┌───────────────┐ │                            │
            │       │ │ 상태 테이블   │ │ 차단 (Drop)                │
            │       │ │ (State Table) │ │ (명부에 없으므로 즉시 폐기)│
            │       │ ├───────────────┤ │                            │
            │       │ │ 10.0.0.5 <->  │ │                            │
            │       │ │ 8.8.8.8       │ │                            │
            │       │ └───────────────┘ │                            │
            │       └───────────────────┘                            │

👶 어린이를 위한 3줄 비유 설명

  1. 패킷 필터링 방화벽: 사람 얼굴을 못 외우는 멍청한 놀이공원 알바생이에요. "파란 티셔츠 입은 사람 통과!"라는 종이만 보고 나쁜 사람도 파란 옷만 입으면 그냥 들여보내 줬어요.
  2. 상태 추적 방화벽 (SPI): 천재적인 기억력을 가진 똑똑한 아파트 경비 아저씨예요. 우리 가족이 밖으로 나갈 때 "아, 701호 가족이 피자를 시켰구나!" 하고 장부에 딱 적어둬요.
  3. 상태 테이블 검사: 잠시 후 피자 배달원이 오면 경비 아저씨가 장부를 보고 "아! 701호에서 시킨 피자 맞네, 통과!" 하고 문을 열어줘요. 하지만 아무도 안 불렀는데 몰래 들어오려는 수상한 사람은 장부에 없으니 바로 내쫓아 버린답니다!