2026년 7월 14일
2분 분량
Incident
TeamWicked

내 인프라가 처음으로 큰 DDoS 공격을 받았을 때

2026년 7월, TeamWicked는 일주일 가까이 이어진 DDoS 공격을 받았습니다. 공격이 노드를 넘어 관리 IP까지 이동하는 동안 배운 것들을 정리했습니다.

이완우 (Ingwannu)
이완우 (Ingwannu)TeamWicked
내 인프라가 처음으로 큰 DDoS 공격을 받았을 때
실제로 돌아가는 시스템을 운영하며 쓴 기록입니다. 무언가 고장 난 뒤, 혹은 고친 직후에 씁니다.TeamWicked를 운영하고 OpenCodex를 개발하면서 쓴 글입니다. 다음 장애에 필요한 숫자, 순서, 실수를 그대로 남깁니다.
읽기 시작

2026년 7월 8일부터 13일까지, TeamWicked가 받은 가장 큰 공격이었습니다. 처음에는 게임 서버 하나의 UDP 포트로 시작했는데, 막을수록 공격이 다른 곳으로 옮겨갔습니다. 노드 게임 포트에서 팬아웃 프록시로, 마지막에는 Oracle 관리 IP까지.

숫자로 보는 공격

가장 큰 대역폭 공격은 node3 게임 포트로 온 UDP 플러드로, pmacct 기준 피크 3.7Gbps / 약 39만 PPS였습니다. 가장 큰 패킷률 공격은 관리 IP로 온 443/udp 재공격으로, 인터페이스 실측 약 121만 PPS를 찍었습니다. 관리 UDP 두 파동의 합계만 최소 42억 패킷, 126GiB였습니다.

공격자는 단순히 트래픽만 보낸 게 아니라, 제가 대응할 때마다 다음 표적을 골랐습니다. IP를 바꾸면 따라왔고, 포트를 닫으면 다른 포트를 쳤습니다. "막는다"는 게 일회성 조치가 아니라 계속 이어지는 관찰과 대응이라는 걸 여기서 배웠습니다.

그 주에 바꾼 것들

  • 관리 웹을 Cloudflare Tunnel 뒤로. 공인 IP에 직접 열려 있던 관리 표면을 아웃바운드 전용 터널로 바꿨습니다. 관리 IP가 알려져도 두들길 문이 없어집니다.
  • 팬아웃 VNIC 분리. 노드별 공인 IP를 전용 VNIC과 정책 라우팅 테이블로 나눠, 한 노드의 공격이 다른 노드와 관리 경로로 번지지 않게 했습니다.
  • 공격받은 IP는 과감하게 포기. 플러드를 계속 받던 예약 IP를 OCI에서 해제하고 새 주소 체계로 옮겼습니다. IP에 대한 애착이 대응을 늦춘다는 걸 배웠습니다.
  • 오탐 정리. 공격 와중에 상태 페이지가 실제 장애가 아닌 다운을 보고한 사례를 분리해서 기록했습니다. 모니터링도 공격 표면의 일부였습니다.

남은 것

이 일주일의 기록은 지금도 장애 대응 문서의 기준 타임라인으로 쓰고 있습니다. 그리고 이 경험이 이후 PAHIDC 보호 인그레스 도입이라는, 더 근본적인 재설계로 이어졌습니다. 공격은 불쾌했지만, 인프라를 진지하게 다시 생각하게 만든 계기였습니다.