hongson11698

Các checklist cơ bản khi phân tích firmware IoT

Jul 19, 2025

IoT security basic analysis notes

New episode every third Saturday, 2025-08-16 –__–

Attack surface reconnaissance

  1. Một số vector tấn công đối với các thiết bị IOT
  1. Các thông tin có thể recon
    • Fccid: Thông qua fccid.io, có thể tìm thấy thông tin về thiết bị, các thành phần của thiết bị.
    • Part number: Tìm các catalog, datasheet, hướng dẫn sử dụng, sửa chữa,..
    • Firmware: Tìm các phiên bản firmware của thiết bị
    • Nếu có thiết bị hoặc giả lập được firmware, có thể sử dụng nmap để scan các cổng tcp/udp đang mở và chờ ở chế độ listening.
    • Tìm các CVE đã được công bố, diff các phiên bản firmware để phân tích các lỗi có thể đã được vá ở phiên bản mới nhất. - Có thể tìm các thiết bị IOT đang mở Internet thông qua các trang web như Shodan, Censys, Fofa:
    • Các keyword có thể dùng như: tên thiết bị, giao thức,..

Boot process of embemd linux

Tổng quan: U-Boot program -> Embemd linux kernel -> rootfs -> initd (/etc/init.d) -> device embemed program

Extract firmware

  1. Tải firmware từ internet
    • Có thể tìm và tải firmware thông qua website của nhà sản xuất, các forums, hội nhóm sử dụng thiết bị hoặc các firmware open source hỗ trợ thiết bị..
    • Các firmware đã được mã hóa thì cần thực hiện dump từ UART Shell hoặc dump bootloader để thực hiện phân tích cách decrypt.

2.Thông qua UART Shell

Enumerating rootfs

Sau khi có được firmware, có thể tìm và phân tích từ phân vùng rootfs. Phân vùng rootfs có định 1 số định dạng hay gặp: squashfs, ubifs, romfs, rootfs, jffs2, yaffs2, cramfs, initramfs,..

Các firmware IoT thường sử dụng busybox với nhiều chức năng, và sử dụng alias để gán các command trong /bin hay /usr/bin tới các chức năng của busybox

Beginner firmware binary analysis

Thông tin tham khảo