Tuya nói rằng họ đã có 11.000 sản phẩm trên toàn cầu sử dụng hạ tầng Tuya IoT của mình để vận hành hệ thống smarthome, đồ Tuya ở Việt Nam cũng khá phổ biến và giá rẻ, có thể tích hợp được với cả Google Assistant và Amazon Alexa rất tiện lợi. Tuy nhiên, mấy anh bạn làm bảo mật ở Đức đã tìm thấy một số lỗ hổng của nền tảng Tuya có thể ảnh hưởng đến các phần cứng đang dùng nền tảng IoT này.
Tại một hội nghị về truyền thông, chuyên gia bảo mật người Đức Michael Steigerwald đã trình diễn một đoạn script để hack thiết bị Tuya và chứng minh rằng tuyên bố "bảo mật cấp quân đội" của Tuya là không đúng.
Tuya sử dụng một quy trình tên mà "smartconfig" để đưa thông tin Wi-Fi và thông tin về máy chủ cho thiết bị smarthome. Bạn sẽ tải về app Tuya trên điện thoại, bật chế độ reset để sẵn sàng ghép đôi thiết bị, sau đó bạn nhập password Wi-Fi của nhà mình vào. Trong lúc đó, app Tuya cũng lấy một token từ máy chủ của Tuya IoT. Khi 2 dữ liệu này đã sẵn sàng, chúng sẽ được gửi lên mạng Wi-Fi đã chỉ định.
Nghe qua thì đây có vẻ như là giải pháp tốt: khi password Wi-Fi và token của server được gửi vào mạng Wi-Fi nhà bạn, thiết bị Tuya (lúc này chưa vào mạng) sẽ quét các mạng xung quanh mình để tìm xem mạng nào đang có dữ liệu nó cần thì mới kết nối, còn không thì sẽ bỏ qua (ví dụ: mạng nhà hàng xóm đâu có thông tin về password và token đâu). Vì mạng nhà bạn đã được mã hoá nên thiết bị IoT không đọc được nội dung gói tin mà điện thoại bạn gửi ra, nhưng nó biết được chiều dài của gói tin, và app Tuya mã hoá password Wi-Fi + token bằng cách sử dụng thông tin chiều dài này. Nhưng vì giao thức không bảo mật nên kẻ tấn công nằm trong phạm vi kết nối của smartphone có thể giải mã ngược lại gói tin và lấy được password Wi-Fi nhà bạn.
Lỗ hổng bảo mật cho phép flash firmware dễ và đánh cắp pass WiFi
Tuya sử dụng một quy trình tên mà "smartconfig" để đưa thông tin Wi-Fi và thông tin về máy chủ cho thiết bị smarthome. Bạn sẽ tải về app Tuya trên điện thoại, bật chế độ reset để sẵn sàng ghép đôi thiết bị, sau đó bạn nhập password Wi-Fi của nhà mình vào. Trong lúc đó, app Tuya cũng lấy một token từ máy chủ của Tuya IoT. Khi 2 dữ liệu này đã sẵn sàng, chúng sẽ được gửi lên mạng Wi-Fi đã chỉ định.
Nghe qua thì đây có vẻ như là giải pháp tốt: khi password Wi-Fi và token của server được gửi vào mạng Wi-Fi nhà bạn, thiết bị Tuya (lúc này chưa vào mạng) sẽ quét các mạng xung quanh mình để tìm xem mạng nào đang có dữ liệu nó cần thì mới kết nối, còn không thì sẽ bỏ qua (ví dụ: mạng nhà hàng xóm đâu có thông tin về password và token đâu). Vì mạng nhà bạn đã được mã hoá nên thiết bị IoT không đọc được nội dung gói tin mà điện thoại bạn gửi ra, nhưng nó biết được chiều dài của gói tin, và app Tuya mã hoá password Wi-Fi + token bằng cách sử dụng thông tin chiều dài này. Nhưng vì giao thức không bảo mật nên kẻ tấn công nằm trong phạm vi kết nối của smartphone có thể giải mã ngược lại gói tin và lấy được password Wi-Fi nhà bạn.
Chưa hết, khi thiết bị Tuya đã vào được Wi-Fi, nó gửi token về lại cho máy chủ mà chỉ dùng giao thức HTTP, và khi máy chủ gửi chìa khoá để mã hoá dữ liệu (bằng kết nối MQTT) thì nó cũng dùng HTTP. Khi một khi bạn có token này trong tay thì bạn có thể thay thế firmware đang chạy của nhà sản xuất bằng một bản khác có nhúng mã độc để kiểm soát mạng nhà bạn. Hoặc, kẻ tấn công có thể gửi lại thiết bị về nhà sản xuất và hack vào hệ thống của họ, vậy càng nguy hiểm hơn.
Nói dễ hiểu thì như thế này: Các lỗ hổng nói trên có thể bị lợi dụng để chỉnh sửa firmware trái phép và lén lấy cắp mật khẩu Wi-Fi của nhà bạn. Kẻ tấn công phải ở gần bạn, vào đúng thời điểm bạn thiết lập món đồ smarthome mới của mình thì mới khai thác được lỗ hổng, nhưng với một động lực đủ mạnh và tiền đủ nhiều, có thể hacker sẽ tìm mọi cách để thực hiện điều đó.
Mà cũng nhờ lỗ hổng này mà Steigerwald đã tìm được cách khiến cho các thiết bị Tuya chỉ nói chuyện với server trong nhà của bạn, ví dụ như hệ thống Home Assistant chẳng hạn. Khi đó bạn sẽ không phụ thuộc vào server của Tuya, dữ liệu của bạn không đi ra Internet mà chỉ chạy lòng vòng trong nhà nên sẽ an toàn. Và cách flash này không cần phải mở thiết bị hay làm gì vật lý cả, chỉ cần vài đoạn script là xong (vì nó khai thác lỗ hổng bảo mật ở trên mà).
Anh em quan tâm có thể xem thêm ở link này https://www.heise.de/ct/artikel/Tuya-Convert-Escaping-the-IoT-Cloud-no-solder-need-4284830.html. Nhưng nhớ là nếu flash thì sẽ có thể bị nhà sản xuất từ chối bảo hành nếu thiết bị có hư hỏng gì đó, cũng như bị mất tính năng hoặc hư hỏng thiết bị.
Tuya-Convert: Escaping the IoT-Cloud, no solder needed
IoT company Tuya claims to have made over 11.000 products worldwide smart home ready, possibly gathering data from millions of homes in the process. If you don't want your information in the cloud, we show how to free your smart home devices...
heise.de
Vậy có nên dùng đồ smarthome Tuya không?
Với lỗ hổng bên trên, mình sẽ không mua thêm đồ smarthome Tuya về nữa, vì mình nghĩ rằng lỗi không dùng HTTP là một lỗi không nền tồn tải với một sản phẩm thương mại. Giao thức HTTPS sẽ mã hoá không chỉ đường link mà còn cả những thông tin được gửi kèm theo nên an toàn hơn nhiều, còn dữ liệu gửi qua HTTP thì chỉ cần là một bạn sinh viên năm 3-4 học ngành IT cũng có thể dễ dàng xem được. Những kẻ xấu cũng có thể chui vào mạng Wi-Fi của bạn để đánh cắp những thông tin nhạy cảm được gửi qua đường này.
Ngoài ra việc có thể flash firmware của thiết bị IoT quá dễ dàng chỉ bằng script, không cần tiếp cận vật lý tới thiết bị smarthome, cũng làm mình cảm thấy lo lắng. Thà không biết gì về lỗ hổng này, chứ biết rồi thì khó mà yên tâm được 😁 Tất nhiên, như mình có nói ở trên, kẻ tấn công phải ở đúng nơi, đúng thời điểm, nhưng mình nghĩ rằng không đáng để thoả hiệp.
Ngoài Tuya, chúng ta cũng còn nhiều lựa chọn khác về smarthome, ví dụ như hệ sinh thái của Xiaomi chẳng hạn, hoặc các món đồ của Philips, Samsung SmartThings... Chúng đắt hơn đồ Tuya một chút, nhưng khi sử dụng thì yên tâm hơn. Ít nhất dữ liệu của bạn chỉ có nhà sản xuất nắm được, chứ không phải là những kẻ tấn công sống trong khu hàng xóm.
Quảng cáo
Cho đến khi mình tìm hiểu được nhiều thông tin hơn, hoặc có thông tin từ Tuya, thì mình khuyên anh em nên cân nhắc thật kĩ trước khi mua các món đồ smarthome Tuya nhé. Thực ra mấy vụ HTTPS có thể được khắc phục bằng một bản update firmware từ nhà sản xuất, như vậy thì việc flash firmware cũng có thể được loại bỏ.
Mình chưa rõ là sau khi các báo cáo về lỗ hổng bảo mật của Tuya được đăng tải thì các nhà sản xuất (hay Tuya) đã khắc phục vấn đề hay chưa. Tìm trên Google không ra các thông tin này, anh em có thông tin thì comment vào bài viết giúp mình nhé.