MQTT 보안 감사 체크리스트: 방어 항목 점검
MQTT 환경의 취약점을 체계적으로 점검하는 상세 체크리스트와 mqtt 보안 설정 필수 항목, mqtt 보안 권장 사항을 포함한 운영자용 점검표
목차
개요
이 문서는 MQTT 기반 시스템의 보안 감사를 위한 실무 중심 체크리스트를 제공한다. 처음 접하는 운영자도 이해하기 쉽게 구성했다. 각 항목은 점검 목적과 방법, 권장 조치를 포함한다. 주요 키워드는 mqtt 보안 체크리스트, mqtt 보안 설정 필수, mqtt 보안 권장 사항이다.
감사 준비
자산 식별
우선 환경에 포함된 브로커, 클라이언트, 게이트웨이, 인증 서버, 네트워크 구간을 목록화한다. 자산 목록은 감사 범위와 우선순위를 결정하는 기준이다.
로그 수집 범위 정의
브로커 접속 로그, 인증 실패 로그, 메시지 발행/구독 로그, 시스템 이벤트를 수집 대상으로 정한다. 로그 보관 기간과 접근 권한도 함께 정의한다.
핵심 체크리스트
1. 인증 및 권한 관리
- 익명 접속 비활성화 여부 확인
- 클라이언트별 인증(계정, 인증서) 사용 여부 점검
- 토픽별 권한 제한(Publish/Subscribe 제어) 확인
- 비밀번호 저장 방식(해시·솔트) 검토
권장 조치: 익명 접속을 끄고, 가능하면 TLS 클라이언트 인증 또는 외부 인증(예: OAuth2)을 도입한다. 토픽 정책은 최소 권한 원칙으로 설계한다.
2. 통신 보호 (네트워크/TLS)
- 암호화된 포트(예: 8883) 사용 여부 점검
- 약한 암호화 알고리즘 사용 여부 확인
- 중간자 공격 예방을 위한 인증서 검증 정책 점검
권장 조치: TLS 1.2 이상 사용, 약한 암호화 스위트 비활성화, 인증서 유효성 검증 강제. 내부 통신에도 암호화를 적용한다.
3. 브로커 설정
- 접속 제어 목록(ACL) 적용 여부
- 세션 지속성 및 클라이언트 아이디 검증 정책 확인
- 플러그인·확장 모듈의 신뢰성 검토
권장 조치: 기본 설정 그대로 운영하지 않는다. ACL을 통해 토픽 접근을 제어하고, 불필요한 플러그인은 비활성화한다.
4. 클라이언트 보안
- 클라이언트 쪽 인증서·자격 증명 관리 체계 점검
- 펌웨어와 라이브러리의 최신 보안 패치 적용 여부 확인
- 자격 증명 탈취 방지를 위한 저장소 암호화 여부 검토
권장 조치: 자격 증명은 안전한 키 저장소에 보관하고, OTA나 배포 시 서명된 업데이트만 허용한다.
5. 로깅 및 모니터링
- 실시간 이상 징후 탐지(비정상 접속, 과도한 발행 등) 설정
- 로그 무결성 및 중앙 수집 체계 확인
- 침해사고 대응 절차 문서화 여부
권장 조치: SIEM과 연동해 알림 규칙을 구성하고, 정기적으로 로그를 검토한다. 침해 시 조치 흐름을 미리 정의한다.
운영·관리 체크 포인트
백업 및 복구
브로커 구성 파일과 인증서, ACL, 사용자 데이터의 정기적인 백업 정책을 수립한다. 복구 절차를 주기적으로 테스트한다.
패치 및 구성 관리
브로커 소프트웨어와 의존 라이브러리의 보안 패치 적용 주기를 정의한다. 구성 변경은 변경 이력과 승인 절차를 거쳐 반영한다.
보안 정책과 교육
운영팀과 개발팀을 대상으로 mqtt 보안 설정 필수 항목을 포함한 교육을 정기적으로 실시한다. 권장 사항과 실제 사례를 공유해 인식 수준을 높인다.
실제 점검 예시
아래는 Mosquitto 브로커의 최소 보안 설정 예시다. 운영 환경에 맞춰 추가 설정이 필요하다.
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
require_certificate true
use_identity_as_username true
allow_anonymous false
password_file /etc/mosquitto/passwords
acl_file /etc/mosquitto/aclfile
인증서 생성과 관리를 위해 OpenSSL을 활용할 수 있다. 개인 키와 CSR 생성 후 CA로 서명한다.
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
점검 표준 절차
- 사전 준비: 자산 목록과 로그 수집 범위 확정
- 설정 검토: 브로커와 클라이언트 설정 파일 점검
- 통신 검사: 포트·TLS·인증서 검증
- 취약성 스캔: 공개된 CVE와 패치 여부 확인
- 운영 검증: 로그·모니터링·백업 절차 점검
마무리
정기적인 감사는 보안 수준을 유지하는 핵심 활동이다. 위의 mqtt 보안 체크리스트와 mqtt 보안 권장 사항을 기준으로 점검 주기를 정하고, mqtt 보안 설정 필수 항목을 우선 적용한다. 점검 결과는 문서화해 개선 활동으로 연결한다.