📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 258편
이전 글: 257. ACL · 다음 글: 259. Destination IP 정책

1. 개념

Source IP 정책은 패킷의 출발지 IP 주소를 조건으로 허용·차단을 결정하는 규칙입니다. "누가 보낸 트래픽인가"를 기준으로 삼는 가장 기본적인 통제이며, 다음 세 가지 목적으로 쓰입니다.

목적정책 형태예
허용 목록(Allowlist)특정 출발지만 허용관리망 10.99.10.0/24에서만 서버 SSH 허용
차단 목록(Blocklist)특정 출발지 차단위협 인텔리전스의 악성 IP 차단
위조 방지(Anti-spoofing)있을 수 없는 출발지 차단인터넷 쪽 인터페이스로 들어온 사설 IP 출발지 차단

출발지 IP 정책은 출발지 IP가 진짜라는 전제 위에서만 의미가 있습니다. 이 전제가 언제 성립하는지가 이 글의 핵심입니다.


2. 동작 원리

출발지 IP 정책은 보통 정책 테이블의 상단에 배치됩니다. 위조·악성 출발지는 업무 허용 규칙보다 먼저 걸러야 하기 때문입니다.

외부 인터페이스로 패킷 도착 (SRC=?)
   ↓
[위조 방지] SRC가 사설·예약 대역이거나 우리 조직 대역인가? → Drop + 로그
   ↓
[차단 목록] SRC가 악성 IP 목록에 있는가? → Drop + 로그
   ↓
[허용 목록] 관리 서비스라면 SRC가 허가 대역인가? → 아니면 Drop
   ↓
[일반 서비스 규칙] 목적지·포트 기준 판단

출발지 IP를 신뢰할 수 있는 정도는 프로토콜에 따라 다릅니다.

  • TCP 연결이 수립(3-way handshake 완료)된 경우: 응답(SYN/ACK)이 그 IP로 돌아가야 연결이 완성되므로, 출발지 IP는 실제 통신 상대일 가능성이 높습니다.
  • SYN만 있고 연결이 완성되지 않은 경우, UDP, ICMP: 출발지 IP를 쉽게 위조할 수 있습니다. 반사·증폭 공격의 "출발지"는 실제로는 피해자 IP인 경우가 많습니다.

3. 주요 특징

인터넷에서 출발지로 나타나면 안 되는 대역(bogon)의 일부입니다. 경계 방화벽 외부 인터페이스에서 이 대역을 출발지로 한 패킷은 위조로 판단해 차단합니다.

대역용도근거
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16사설 주소RFC 1918
127.0.0.0/8루프백RFC 1122
169.254.0.0/16링크 로컬RFC 3927
100.64.0.0/10통신사 공유 주소(CGN)RFC 6598
192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24문서용RFC 5737
224.0.0.0/4멀티캐스트(출발지로 부적합)RFC 5771
  • 반대로 내부에서 밖으로 나가는 패킷의 출발지가 우리 조직 대역이 아니면 차단합니다(Egress 필터링, BCP 38). 내부 호스트가 위조 패킷 발신지로 악용되는 것을 막습니다. 설정 방법은 04 영역 182. Inbound 정책과 183. Outbound 정책을 참고합니다.
  • NAT·프록시 뒤의 출발지는 개별 사용자가 아닙니다. 공유기·통신사 NAT·클라우드 프록시 IP를 차단하면 같은 IP를 쓰는 다수 사용자가 함께 차단될 수 있습니다.
  • 차단 목록 IP는 시간이 지나면 다른 주체에게 재할당됩니다. 만료 기간 없는 차단은 오래된 IOC를 쌓아 정상 통신을 막습니다.

4. 예시

nftables의 set으로 허용 목록과 차단 목록을 분리하는 실습 예시입니다(Rocky/Ubuntu 공통, 값은 환경마다 다름).

# 실습 예시 (inet fw 테이블의 input 체인 일부)
set mgmt_allow { type ipv4_addr; flags interval; elements = { 10.99.10.0/24 } }
set block_src  { type ipv4_addr; flags interval, timeout; }

chain input {
    type filter hook input priority 0; policy drop;
    ip saddr @block_src counter log prefix "FW-BLOCKLIST " drop
    ct state established,related accept
    tcp dport 22 ip saddr @mgmt_allow accept
    tcp dport 22 counter log prefix "FW-SSH-NOT-MGMT " drop
}
# 차단 목록에 24시간 만료로 추가 (만료 후 자동 삭제)
sudo nft add element inet fw block_src '{ 198.51.100.23 timeout 24h }'

firewalld를 쓰는 환경(Rocky 기본)에서는 trusted·drop zone에 출발지를 지정(firewall-cmd --zone=drop --add-source=...)하는 방식으로 출발지 기반 정책을 표현할 수 있습니다.


5. 보안 관점

  • 관리 서비스(SSH·RDP·장비 관리 웹)는 출발지 허용 목록으로 제한하는 것이 기본입니다.
  • 차단 목록은 이미 알려진 것만 막습니다. 새 공격 인프라에는 효과가 없으므로 보조 수단으로 봅니다.
  • 위조 방지 필터는 비용이 낮고 효과가 확실해 경계 장비에 반드시 두는 규칙입니다.
  • 출발지 기반 차단은 우회가 쉽습니다(다른 IP, 프록시). 반복되는 공격은 출발지보다 행위 패턴으로 탐지해야 합니다.

6. SOC 관점

관제자가 확인할 질문

  • 로그의 출발지 IP는 연결이 완성된 TCP인가, 위조 가능한 UDP·ICMP·SYN만인가?
  • 이 출발지는 NAT·프록시·클라우드 대역인가? 차단 시 영향 범위는?
  • 내부 출발지라면 NAT 이전의 실제 내부 IP는 무엇인가(268. Firewall NAT)?
  • 같은 출발지가 다른 목적지·포트에도 접근했는가(240. Source IP 분석)?
로그 상황해석
외부 인터페이스에 사설 IP 출발지 차단위조, 또는 잘못된 라우팅·설정
관리 포트에서 허용 목록 외 출발지 차단비인가 관리 접근 시도
차단 목록 적중 후 같은 대역 다른 IP 접근공격 인프라 교체 가능성

오탐 주의: 위협 인텔리전스의 IP는 CDN·클라우드 공유 IP인 경우가 많습니다. 차단 목록 적중만으로 악성 통신이라고 단정하지 말고, 도메인·통신 내용과 함께 판단합니다.


7. 핵심 정리

  • Source IP 정책은 허용 목록, 차단 목록, 위조 방지의 세 목적으로 쓰입니다.
  • 출발지 IP는 연결이 완성된 TCP에서만 비교적 신뢰할 수 있고, UDP·ICMP·SYN은 위조될 수 있습니다.
  • 경계에서는 bogon 출발지를 들어올 때 차단하고, 나갈 때는 우리 대역이 아닌 출발지를 차단합니다.
  • NAT·프록시 뒤의 출발지 IP는 다수 사용자를 대표하므로 차단 영향 범위를 고려합니다.
  • 차단 목록에는 만료 기간을 두고, 적중 결과는 다른 증거와 함께 해석합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글