MQTT · 2026-02-11

MQTT 브로커의 DDoS 및 공격 방어 전략

MQTT 브로커를 대상으로 한 DDoS와 각종 공격에 대한 위협 모델, 네트워크·브로커 설정·인증·모니터링을 아우르는 방어 전략

작성일 : 2026-02-11 ㆍ 작성자 : 관리자
post
목차

개요

사물인터넷 환경에서 MQTT 브로커는 많은 장치와 서비스의 흐름을 중계한다. 따라서 DDoS나 연결 남용, 인증 우회 같은 공격은 서비스 전체의 가용성을 위협한다. 이 글은 mqtt ddos 방어 및 브로커 보안 설정 ddos, mqtt 공격 방지 방법을 중심으로, 처음 접하는 운영자도 이해할 수 있게 단계별로 정리한다.

위협 모델 정리

주요 공격 유형

  • DDoS: 다수의 소스가 브로커에 과도한 연결/패킷을 전송해 자원 고갈을 유발
  • 연결 증폭 및 연결 남용: 짧은 간격으로 연결/해제를 반복해 세션을 과도하게 생성
  • 인증 우회·권한 남용: 취약한 인증이나 약한 토큰을 통한 무단 구독/게시
  • 페이로드 악용: 대용량 메시지나 지속적 QoS 재전송으로 큐·메모리 소모

방어 목적

목표는 가용성 유지, 정상 클라이언트의 서비스 품질 보장, 악성 트래픽의 신속한 탐지와 완화이다. 이를 위해 네트워크·호스트·브로커 설정·모니터링을 계층적으로 설계한다.

네트워크 레벨 방어

엣지에서의 필터링

퍼블릭 엔드포인트라면 클라우드 제공 방화벽이나 CDN, DDoS 보호 서비스(예: 클라우드 벤더의 DDoS Shield)를 엣지에 두는 것이 우선이다. 대량의 트래픽을 내부로 전달하기 전에 차단하면 브로커의 부담을 크게 줄일 수 있다.

IP 레벨 제어와 레이트 리미팅

네트워크 장비나 iptables 등의 호스트 방화벽에서 기본적인 레이트 리밋을 적용한다. 예를 들어, 과도한 SYN이나 초당 연결 수를 제한해 연결 남용을 완화할 수 있다.

iptables -A INPUT -p tcp --dport 1883 -m connlimit --connlimit-above 100 -j REJECT
iptables -A INPUT -p tcp --dport 1883 -m recent --set
iptables -A INPUT -p tcp --dport 1883 -m recent --update --seconds 60 --hitcount 200 -j DROP

브로커 설정(기본 방어)

인증과 권한 관리

브로커는 인증을 필수로 구성하고, 클라이언트별 최소 권한 원칙을 적용한다. 사용자 기반 인증, 토큰 기반 인증을 모두 로그와 연계해 비정상 인증 시도를 탐지한다. 가능하면 TLS 클라이언트 인증을 도입해 장치 수준 인증을 강화한다.

연결·세션 제한

브로커에서 각 클라이언트의 최대 동시 연결 수, 세션 지속시간, 최대 접속 빈도를 제한한다. 세션과 큐 사이즈를 작게 유지하면 악성 메시지로 인한 메모리 고갈을 방지할 수 있다.

# mosquitto.conf 예시
allow_anonymous false
password_file /etc/mosquitto/passwd
max_connections 1000
message_size_limit 1048576
max_inflight_messages 20
max_queued_messages 100

QoS와 메시지 크기 제어

QoS 설정은 시스템 요구사항에 맞춰 제한한다. 무조건 높은 QoS를 허용하면 재전송과 중복 처리로 리소스가 증대될 수 있다. 또한 최대 페이로드 크기 설정을 통해 대용량 메시지로 인한 자원 소모를 막는다.

애플리케이션·클라이언트 관리

클라이언트 설계 원칙

  • 재연결 로직에서 지수 백오프를 적용해 동시 재연결 폭주 방지
  • 세션 유휴 타임아웃 설정으로 오래된 세션 자동 정리
  • 클라이언트 식별자와 토픽 네이밍 규칙으로 접근 통제 단순화

키·토큰 관리

토큰 유효기간을 짧게 설정하고, 토큰 사용 로그를 수집해 이상 패턴이 보이면 해당 토큰을 차단한다. 롤링 키 또는 OAUTH 연동을 통해 키 유출의 영향을 최소화한다.

모니터링과 탐지

핵심 지표 수집

모니터링 항목은 연결 수, 연결 증감률, 초당 메시지량(PUB/SUB), 오류율, 큐 길이, 인증 실패 횟수 등이다. 이상 급증이 감지되면 자동 스케일이나 알림을 연계한다.

로그 분석과 이상 탐지

로그를 중앙화(예: ELK 스택, Prometheus+Grafana 연동)해 상관 분석을 수행한다. 특정 IP의 반복적 연결/종료, 동일 클라이언트의 과도한 게시, 비정상 토큰 사용 등은 룰 기반 탐지 또는 머신러닝 기반 이상 탐지로 보완한다.

비상 대응과 복구 절차

사전 대비

  • 정의된 차단 리스트와 격리 절차 문서화
  • 스케일 아웃 설계: 브로커 클러스터링 또는 로드밸런서 배치
  • 정기 복구 연습으로 실제 대응 시간 단축

실시간 대응 흐름

이상 트래픽 감지 시 우선적으로 엣지에서 트래픽 필터링을 적용하고, 의심 IP를 일시 차단한 뒤 세부 로그를 분석한다. 공격 타입에 따라 연결 제한 강화, 토큰 회수, 서비스 일부의 셧다운 또는 트래픽 셰이핑을 단계적으로 적용한다.

테스트와 지속 개선

정기적인 침투 테스트와 부하 테스트로 브로커 설정의 유효성을 검증한다. 부하 테스트에서는 정상 장치 트래픽과 악성 패턴을 혼합해 실환경에 가까운 시나리오로 점검한다. 테스트 결과를 바탕으로 룰, 임계값, 모니터링 경보를 조정한다.

결론

MQTT 브로커의 DDoS 방어는 단일 기술로 해결되지 않는다. 네트워크 엣지의 필터링, 브로커의 보안 설정, 클라이언트의 설계 변경, 그리고 효과적인 모니터링과 대응 절차가 조화되어야 한다. 위 내용은 mqtt ddos 방어와 브로커 보안 설정 ddos, mqtt 공격 방지 방법을 실무 관점에서 정리한 전략으로, 운영 환경에 맞춰 단계적으로 적용하면 방어 태세를 크게 개선할 수 있다.

mqtt ddos 방어 브로커 보안 설정 ddos mqtt 공격 방지 방법 MQTT 보안 DDoS 방어 브로커 설정 네트워크 보안 TLS 인증