720. Memcached 증폭 공격 (5만 배의 괴물 반사)

핵심 인사이트: 앞서 배운 NTP(500배)와 DNS(100배) 증폭 공격은 귀여운 수준이었다. 2018년, 인터넷 보안 업계를 경악시킨 역대급 괴물이 나타났다. 무려 공격력을 '5만 배(51,000배)'로 뻥튀기시켜 쏘는 Memcached(멤캐시드) 공격이다. 해커가 서버 메모리 안에 1MB짜리 거대한 쓰레기 텍스트를 몰래 저장해 놓고, 15바이트짜리 명령어로 "그거 꺼내와!"라고 시키면, 메모리에서 거대한 1MB 데이터 폭포수가 쏟아져 나와 타겟을 찢어버린다.

Ⅰ. Memcached (멤캐시드)의 원래 용도

  • 개념: 멤캐시드는 구글, 트위터 같은 대형 사이트들이 느려터진 데이터베이스(DB)를 매번 뒤지는 시간을 아끼기 위해, 램(RAM) 메모리에 자주 쓰는 데이터를 임시로 올려두고 빛의 속도로 꺼내 쓰는 초고속 분산 메모리 캐싱 시스템입니다.
  • 치명적 특징: 오직 "속도" 하나만을 위해 만들어진 내부망 전용 소프트웨어라, **사용자 인증(비밀번호 검사) 기능이 아예 없고, UDP 포트(11211번)**를 활짝 열어두고 아무나 던지는 패킷을 빛의 속도로 처리해 버리는 극강의 멍청함과 순진함을 가졌습니다.

Ⅱ. 사상 최악의 증폭 시나리오 (51,000배 폭발) 🌟

이 순진한 내부용 램(RAM) 서버를 외부 인터넷망에 방화벽도 없이 그냥 노출해 둔 수만 명의 멍청한 관리자들 때문에 역대급 참사가 벌어졌습니다.

1단계: 악성 페이로드 심기 (장전)

  • 해커는 외부 인터넷에 노출된 멍청한 Memcached 서버(UDP 11211)를 찾아냅니다.
  • 비밀번호도 없으니 해커가 당당하게 접속하여, set 명령어 하나로 서버 램(RAM) 안에 수백 KB ~ 1MB짜리 덩치가 엄청나게 거대한 쓰레기 데이터 덩어리를 쑤셔 넣고 저장시킵니다. (마치 폭탄을 미리 창고에 숨겨두는 것)

2단계: 방아쇠 당기기 (IP 스푸핑 반사)

  • 공격 디데이가 오면, 해커는 자신의 출발지 IP를 '타겟(피해자) IP'로 스푸핑합니다.
  • 해커는 방금 그 멍청한 서버를 향해 딱 15바이트짜리 짧은 명령어를 날립니다. "야, 아까 내가 저장해 둔 그 데이터(Get 명령) 싹 다 뱉어내!"
  • 폭발: 멍청한 서버는 타겟(피해자)이 요청한 줄 알고, 아까 품고 있던 거대한 1MB짜리 쓰레기 데이터를 피해자에게 냅다 토해냅니다. 해커가 던진 15바이트의 조약돌이 무려 1MB (약 51,000배 증폭) 크기의 핵폭탄이 되어 피해자의 서버를 완전히 부숴버립니다. (2018년 Github가 이 공격으로 1.35 Tbps라는 사상 초유의 트래픽을 얻어맞고 기절했습니다.)

Ⅲ. 현대의 방어 및 조치 (업데이트 패치)

원리가 밝혀지자 보안 업계는 충격에 빠져 긴급 조치에 들어갔습니다.

  1. UDP 통신 비활성화: 캐시 서버에 속도를 위해 뚫어놨던 골칫덩어리 UDP 옵션 자체를 차단하고, 무조건 신원 확인과 연결이 필요한 TCP로만 통신하도록 강제 변경했습니다. (최신 버전은 UDP가 디폴트로 꺼져 있습니다.)
  2. 방화벽 11211 포트 차단: 멤캐시드는 원래 우리 회사 사내망 안에서만 자기들끼리 쓰는 '내부용' 툴입니다. 제발 외부에 11211번 포트를 함부로 열어두지 말고, 라우터단에서 인바운드 트래픽을 완전히 격리(Drop)하라는 캠페인이 대대적으로 벌어졌습니다.

📢 섹션 요약 비유: Memcached 서버는 돈통이 털리는 줄도 모르는 바보 같은 '무인 대형 창고'입니다. 해커는 새벽에 아무나 들어갈 수 있는 창고에 몰래 거대한 바위(1MB 쓰레기 데이터)를 숨겨놓습니다(Set). 낮이 되자 해커는 피해자 행세를 하며 창고 관리인에게 쪽지(15바이트) 한 장을 쓱 던집니다. "아까 그거 피해자 집으로 다 빼줘요(Get)." 순진한 창고 직원은 아무 의심 없이 1MB짜리 거대한 바위 수만 개를 억울한 피해자 집 지붕 위로 일제히 쏟아부어 집을 박살 내버립니다. 역사상 가장 효율이 좋은 5만 배 뻥튀기 공격입니다.