
이 저장소는 eWeLink IoT 기기의 QR 코드 기반 페어링 프로세스에 영향을 미치는 취약점(CVE-2020-12702)을 설명합니다.
QR 코드 페어링 모드에서 eWeLink 모바일 애플리케이션(Android 4.9.2 이하, iOS 4.9.1 이하)을 통해 기기의 개인 암호화 키에 대한 제약 없는 웹 접근으로 인해, 물리적으로 근접한 공격자가 기기 페어링 과정 중 Wi-Fi 스펙트럼을 모니터링하여 Wi-Fi 자격 증명 및 기타 민감 정보를 도청할 수 있습니다.
사용자 관점에서 eWeLink 애플리케이션을 통한 IoT 기기와 사용자 Wi-Fi 간의 QR 코드 기반 페어링 과정은 다음과 같이 진행됩니다:
지원되는 기기(ITEAD의 Sonoff Micro)에 제공된 QR 코드 라벨은 다음 URL을 인코딩합니다: https://api.coolkit.cn:8080/add-ap-device?brand=ewelink\&ssid=ITEAD-device_id, 여기서:
첫 번째 단계에서 애플리케이션은 eu-api.coolkit.cc:8080/api/user/fdbaseinfo?deviceid=device_id&other_parameters 엔드포인트에 연결하여 기기 비밀 키와 기타 기기 정보를 검색합니다. 위에서 설명한 흐름에 따르면, 애플리케이션이 호출하는 서비스는 키를 반환하고, 이 키는 전용 소프트 AP Wi-Fi 네트워크를 통해 IoT 기기로 전송되기 전에 사용자의 Wi-Fi 자격 증명을 암호화(AES 알고리즘 사용)하는 데 사용됩니다.
암호화된 JSON 메시지는 개방형 기기 HTTP 서버로의 http post 요청을 통해 전송됩니다. 원본 페이로드는 아래에 보고된 구조를 따릅니다:
{"ssid" : "Test-Network", "password" : "Test-Password", "serverName" : "eu-disp.coolkit.cc", "port" : 443}
여기서 "Test-Network" 및 "Test-Password" 매개변수는 테스트베드 구성에 사용한 네트워크 자격 증명이며, eu-disp.coolkit.cc는 유럽 지역을 서비스하는 클라우드 플랫폼입니다.
우리는 다양한 테스트를 수행했으며, 페어링 과정 중 Wi-Fi 소프트 AP 근처에 있는 모든 사람이 device_id 매개변수를 검색할 수 있음을 발견했습니다. 이는 device_id가 기기 소프트 AP Wi-Fi SSID의 일부이기 때문입니다.
특정 기기 비밀 키를 검색하려면 다음이 필요합니다:
결과적으로, 기기 ID만 알면 해당 기기 비밀 키를 쉽게 검색할 수 있습니다. 이를 통해 근처의 악의적인 사용자가 사용자의 스마트폰에서 IoT 기기로 전송되는 구성 메시지를 도청하여 사용자의 Wi-Fi 자격 증명을 가로챌 수 있습니다. 참고로, 기기 소프트 AP Wi-Fi는 기본적으로 개방형이며 보호되지 않으므로 도청이 가능합니다.
클라우드 서비스에서 비밀 키를 검색한 후(이미 알려진 device_id 매개변수와 함께), 악의적인 사용자는 구성 메시지를 복호화하여 사용자의 Wi-Fi 자격 증명을 추출할 수 있습니다. 결과적으로 고객의 전체 홈 네트워크가 손상됩니다.
이 취약점은 Android(v4.11.0 이하) 및 iOS(v4.9.1 이하) 버전의 eWeLink 모바일 애플리케이션에서 테스트되었습니다.
[1] Daniele Granata, Massimiliano Rak, Giovanni Salzillo, Umberto Barbato. "IoT 페어링 및 인증 프로토콜의 보안, 위협 모델 및 사례 연구 분석", ITASEC 2021.
MIT