1077. DDoS 반사 증폭 원조 (NTP, DNS) - Reflection Amplification Attack 분산 서비스 거부 공격 IP 스푸핑 DRDoS UDP 취약점 비대칭 패킷 공격망

핵심 인사이트: (511, 1049, 1062번 심화) 나(해커) 혼자서 청와대 서버를 터뜨리고 싶다. 내가 패킷을 100만 번 쏘면 내 컴퓨터가 먼저 뻗는다. 꼼수를 쓴다. 전 세계에 널려있는 순진한 동네 바보 서버(DNS, NTP 서버) 10만 대한테 편지를 쓴다. "저기요! 질문 하나 할게요!(1바이트)" 근데 이 편지 겉봉투의 '보낸 사람 주소(Source IP)'를 내 주소가 아니라 '청와대 주소'로 구라(IP 스푸핑)를 쳐서 보낸다. 바보 서버들은 편지를 까보고 친절하게 "답장입니다!(100바이트)" 하고, 가짜 보낸 사람 주소인 청와대로 100배 큰 답장을 단체로 쏴버린다! 나는 손가락 하나 튕겼는데, 청와대 서버는 전 세계 10만 대의 바보들이 날린 거대한 똥구름(증폭 폭탄)을 맞고 흔적도 없이 터져버린다. 해커가 손 안 대고 코 푸는 역대급 테러, 반사 증폭(DRDoS)이다.

Ⅰ. 기존 봇넷(Botnet) DDoS의 한계

  • 기존 디도스는 해커가 좀비 PC 1만 대를 감염시켜서 일제히 청와대를 때렸습니다.
  • 단점: 좀비 1만 대를 감염시키려면 시간이 엄청 오래 걸리고(비용 발생), 백신 회사에 들통나면 좀비들이 치료되어 화력이 떨어집니다. 게다가 공격 패킷을 까보면 좀비 PC의 진짜 IP가 찍혀있어 역추적 당해 경찰에 잡히기 쉽습니다.

Ⅱ. DRDoS (반사 증폭 디도스)의 탄생 🌟

  • Reflection (반사): 내 손에 피를 묻히지 않습니다. 출발지 IP를 타겟(청와대) IP로 위장(IP Spoofing)하여 제3자(정상적인 공공 서버)에게 질문을 던지면, 3자는 친절하게 타겟(청와대)을 향해 빗나가게 답장을 반사(Reflect)해 버립니다. 역추적 시 공격자는 정상 서버로 나오므로 해커 본인은 절대 안 잡힙니다.
  • Amplification (증폭): 1을 주면 1이 돌아오는 건 재미가 없습니다. 질문 패킷의 크기는 코딱지만 한데(10바이트), 대답 패킷의 크기가 거대한(1,000바이트) 특정 취약점 프로토콜들을 골라서 때립니다(비대칭성). 내 노트북 1대로도 슈퍼컴퓨터를 침몰시킬 수 있는 핵폭탄(100배 증폭)을 던지는 셈입니다.

Ⅲ. 증폭 공격에 이용되는 3대 멍청한 프로토콜 (시험 단골) 🌟 핵심 🌟

왜 이 프로토콜들이 타겟이 될까요? 모두 969번 **UDP(비연결형)**를 쓰기 때문입니다. (TCP는 3-way Handshake를 해야 해서 남의 IP로 구라 치면 연결 자체가 안 맺어집니다.)

1. DNS 증폭 공격 (증폭률 약 40배~50배)

  • 해커가 오픈 DNS 서버(구글 8.8.8.8 등)에게 60바이트짜리 질문을 쏩니다. "야! 도메인 ANY 쿼리(니가 아는 모든 정보 다 줘봐) 날릴게!"
  • DNS 서버는 친절하게 캐시에 있는 수십 개의 IP 주소와 1062번에서 배운 거대한 암호화 서명(DNSSEC RRSIG 덩어리)까지 꽉꽉 눌러 담아 3,000바이트짜리(50배 뻥튀기) 거대한 답장 패킷을 청와대(타겟)로 날려버립니다.

2. NTP 증폭 공격 (증폭률 약 500배) 🌟 최악의 핵폭탄 🌟

  • 1049번 컴퓨터 시계 맞추는 프로토콜입니다.
  • 구형 NTP 서버에는 monlist라는 관리자 명령어가 열려 있었습니다. 이 명령어를 던지면 서버가 "지금까지 나랑 시계 맞췄던 최근 600명의 접속자 IP 명단"을 몽땅 뱉어냅니다.
  • 해커가 10바이트짜리 monlist 질문을 던지면, 서버는 600개의 IP 리스트가 담긴 **5,000바이트(500배 증폭)**짜리 미친 텍스트 덩어리를 청와대로 쏟아붓습니다. 역대급 볼륨 공격의 주범입니다.

3. Memcached / SSDP (증폭률 수만 배)

  • 보안 세팅 안 하고 인터넷에 그대로 노출된 메모리 캐시 서버(Memcached 포트 11211)나 UPnP 기기들은 1바이트를 던지면 무려 5만 바이트(50,000배)를 뱉어내는 버그가 터져 디도스 1Tbps 시대를 열었습니다.

Ⅳ. 궁극의 방어 대책

청와대는 답장을 막을 수 없습니다. 전 세계 길목(통신사 라우터)에서 방어해야 합니다.

  1. Ingress Filtering (BCP38): 통신사 라우터가 패킷이 들어올 때, "어? 우리 동네 가입자 IP 대역이 아닌데 보낸 사람 IP가 우리 동네로 찍혀있네? 이 새끼 IP 스푸핑(구라) 치네!" 하고 입구 컷을 때려버려서 반사 공격의 뿌리를 뽑아야 합니다. (현재 가장 안 지켜지는 글로벌 과제입니다.)
  2. NTP/DNS 패치: 멍청한 서버를 운영하는 자들이 NTP monlist 기능을 삭제하고 패치를 해야 바보 같은 반사판 역할을 면합니다.

📢 섹션 요약 비유: 기존 봇넷 디도스가 해커가 동네 불량배 10,000명(좀비 PC)을 돈 주고 고용해서 한날한시에 타겟(청와대)에게 돌을 던지게 하는 **'인해전술 깡패 짓'**이라면, **DRDoS(반사 증폭 디도스)**는 해커가 직접 나서지 않고 평범한 시민들(정상 DNS/NTP 서버)을 교묘하게 속이는 **'역대급 사기 배달극'**입니다. 해커는 짜장면집, 피자집, 치킨집 100군데에 전화를 걸어 "여기 청와대인데, 가게에 있는 모든 음식 메뉴 다 만들어서 1초 만에 배달해 주세요!(증폭)"라고 구라 주문(IP 스푸핑)을 넣습니다. 해커는 주문 전화(수십 바이트 패킷) 한 번만 돌리고 자빠져 잡니다. 아무것도 모르는 성실한 식당 사장님들은 트럭 수십 대 분량의 엄청난 음식(수천 바이트 패킷)을 청와대 앞마당으로 일제히 배달해 버립니다(반사). 청와대는 난데없이 날아온 수백 톤의 배달 음식 쓰레기 더미(증폭된 디도스 트래픽)에 깔려 숨통이 끊어지고 맙니다. 해커의 위치는 철저히 은폐되고 파괴력은 500배로 뻥튀기되는 UDP 쌩얼 통신의 최악의 취약점입니다.