MQTT(Message Queuing Telemetry Transport)
MQTT(Message Queuing Telemetry Transport) - 메시지 큐잉 텔레메트리 트랜스포트
ISO 표준으로 발행-구독 기반의 메시징 프로토콜이다. 해당 프로토콜은 TCP/IP 프로토콜 위에서 동작한다. 작은 코드 공간이 필요하거나 네트워크 대역폭이 제한되는 원격 위치와의 연결을 위해 설계되어 있다. 즉, 소형 센서 및 모바일 기기와의 통신, 경량 메시지를 전달하기 위한 프로토콜이다. 여기서 발행-구독 기반은 비동기 메시징 패러다임으로 해당 모델에서 발신자의 메시지는 특별한 수신자가 정해져 있지 않다. 대신 발행된 메시지는 정해진 범주에 따라, 각 범주에 대한 구독을 신청한 수신자에게 전달된다. 즉, 발신자에 대해 구독한 대상에게 메시지를 전달하는 모델이다. 구독자에게만 정보를 제공하는 형태이다. 이러한 발행자와 구독자 형태의 모델은 더 유동적인 망 구성과 확장성을 허용한다.
발행-구독 모델은 서버리스, 마이크로 서비스 아키텍쳐에서 주로 사용되는 비동기 메시지 패턴이다. 해당 모델은 발행자인 Publisher, 구독자인 Subscriber, 중계하는 Broker, 구독하기 위한 주제인 Topic으로 구성 되어있다. 구조를 간단하게 표현하면 다음과 같다.
발행자가 토픽을 나누어 메시지를 브로커에 전달하면 브로커는 토픽을 구독한 구독자에게 전달한다. 해당 방식을 사용하면 느슨한 결합으로 서로의 동작 과정을 몰라도 메시지를 쉽게 전달할 수 있으며 느슨한 결합의 장점으로 확장 또한 쉽다. 하지만 중간에 브로커를 거쳐가는 과정이 추가되어 서버-클라이언트 방식에 비해 속도가 느려질 수 있다. 즉, 부하가 발생할 수 있다.
최근 이슈
최근 리얼텍 와이파이 모듈에서 취약점이 발생했다. 리얼텍의 RTL8195A 와이파이 모듈에서 루트 액세스 권한을 얻고 장치의 무선 통신을 완전히 제어하는데 악용될 수 있는 치명적인 취약점이다. 해당 모듈은 농업, 스마트홈, 의료, 게임, 자동차 등 여러 임베디드 장비에 사용되는 독립형 저전력 와이파이 하드웨어 모듈이다. 또한, Ameba API를 사용하여 와이파이, HTTP, 소형 센서, 모바일 장치를 위한 경량 메시지 프로토콜인 MQTT로 기기와 통신할 수 있다.
해당 취약점은 WPA2 4-way-handshake 메커니즘에서의 스택오버플로우와 경계값 읽기이다. 총 6개의 취약점 중 가장 치명적인 것은 스택오버플로우 취약점이다 해당 취약점을 이용하면 와이파이 암호를 몰라도 해당 기기에 접근할 수 있게 된다. 나머지 취약점으로는 DoS공격을 할 수 있으며 이 공격들을 조합하면 클라이언트에 접근하여 원격코드를 실행할 수도 있는 치명적인 공격이 된다.
리얼텍에서는 취약점을 패치하였으며 해당 모듈을 사용하는 사용자들은 신속히 펌웨어 업데이트를 할 필요가 있다.