In Wareville the townspeople started to frown,
A problem with smart lights all over the town!
Was SOC-mas ruined? The chances were zero,
Because this they knew, the Glitch was their hero!
In Wareville the townspeople started to frown,
A problem with smart lights all over the town!
Was SOC-mas ruined? The chances were zero,
Because this they knew, the Glitch was their hero!
Kota Wareville telah menginvestasikan teknologi smart lights dan sistem HVAC (Heating, Ventilation, and Air Conditioning). Dengan teknologi ini, mengontrol pencahayaan dan pengaturan suhu secara jarak jauh menjadi sangat mudah. Namun, setelah beberapa insiden baru-baru ini, McSkidy mulai memantau protokol komunikasi perangkat pintar tersebut. Tidak lama setelah sistem pencahayaan dan HVAC aktif, Mayor Malware berhasil memahami cara perangkat ini dikendalikan dan melakukan sabotase terhadapnya. Untungnya, McSkidy lebih sigap dan mendeteksi perintah berbahaya yang telah dikirim. Dapatkah Anda membantu McSkidy mengidentifikasi perintah yang dikirim? Dengan temuan ini, kita dapat memperbarui konfigurasi perangkat dan menyelamatkan situasi!
Tujuan Pembelajaran:
Dasar-dasar protokol MQTT
Cara menggunakan Wireshark untuk menganalisis traffic MQTT
Teknik reverse engineering protokol jaringan sederhana
Perangkat pintar membuat hidup kita lebih mudah. Kita tidak lagi perlu secara fisik menghidupkan atau mematikan saklar untuk mengontrolnya. Dengan sistem HVAC pintar, kita dapat menjaga suhu rumah agar tetap nyaman, tidak terlalu dingin atau panas saat kita tiba di rumah. Vacuum cleaner pintar dapat membersihkan rumah ketika kita sibuk atau sedang keluar untuk makan malam. Banyak perangkat pintar dilengkapi aplikasi yang memungkinkan kita mengontrolnya melalui ponsel. Bahkan lebih baik, karena perangkat ini dapat dikendalikan jarak jauh melalui aplikasi dan antarmuka yang terhubung ke Internet, desain perangkat dapat dibuat lebih minimalis tanpa perlu tombol atau kontrol fisik pada perangkat itu sendiri.
Walaupun mempermudah hidup, sebagian besar perangkat pintar membutuhkan koneksi jaringan untuk memberikan kontrol kepada pengguna. Banyak perangkat pintar terhubung melalui Internet (itulah mengapa disebut Internet of Things atau IoT). Dari sudut pandang keamanan, hal ini berarti siapa pun berpotensi mengambil alih kendali perangkat ini. Kita dapat membatasi paparan perangkat tersebut dengan menambahkan kontrol keamanan seperti isolasi jaringan dan mekanisme autentikasi. Namun, jika gagal melakukannya, akibatnya bisa sangat merugikan. Sistem yang paling aman adalah sistem yang dimatikan, tetapi hal ini tidak menghentikan kita untuk menggunakan berbagai sistem untuk membantu aktivitas sehari-hari. Sama halnya dengan perangkat pintar; kita hanya perlu memahami cara kerjanya dan memastikan keamanan yang memadai.
Meskipun perangkat IoT dan perangkat pintar menggunakan berbagai bahasa pemrograman tergantung pada platform dan vendor, mereka sering membutuhkan bahasa yang sama untuk berkomunikasi satu sama lain. Misalnya, perangkat IoT mungkin menggunakan C++ atau Java untuk berinteraksi dengan compiler dan perangkat keras, tetapi memerlukan bahasa seperti HTTP atau MQTT untuk berkomunikasi dengan sistem atau perangkat seluler Anda.
MQTT (Message Queuing Telemetry Transport) adalah bahasa yang sangat umum digunakan dalam perangkat IoT untuk keperluan komunikasi. Protokol ini bekerja dengan model publish/subscribe, di mana perangkat klien dapat mempublikasikan pesan, dan perangkat klien lainnya dapat berlangganan pesan yang relevan dengan topik yang diminati. MQTT broker bertugas menghubungkan klien-klien yang mempublikasikan dan berlangganan pesan.
Konsep Utama dalam MQTT
MQTT Clients: Klien MQTT adalah perangkat IoT, seperti sensor dan pengendali, yang mempublikasikan atau berlangganan pesan menggunakan protokol MQTT. Contohnya, sensor suhu dapat menjadi klien yang mempublikasikan data suhu di berbagai tempat. Pengendali HVAC juga dapat bertindak sebagai klien yang berlangganan pesan dari sensor suhu dan menghidupkan atau mematikan sistem HVAC berdasarkan input yang diterima.
MQTT Broker: Broker MQTT menerima pesan dari klien yang mempublikasikan dan mendistribusikannya ke klien yang berlangganan berdasarkan preferensi mereka.
MQTT Topics: Topik digunakan untuk mengklasifikasikan jenis pesan yang berbeda. Klien dapat berlangganan pesan berdasarkan topik yang diminati. Misalnya, sensor suhu yang mengirimkan pembacaan suhu dapat menggunakan topik “room temperature”, sementara pengendali HVAC akan berlangganan pesan dengan topik “room temperature”. Sebaliknya, sensor cahaya dapat mempublikasikan pesan dengan topik “light readings”. Pengendali HVAC tidak perlu berlangganan topik ini, tetapi pengendali cahaya akan melakukannya.
Challenge
Setelah running sebuah skrip untuk mengaktifkan broker dan klient MQTT, muncul sebuah Lights Controller. Jika mencoba dijalankan (Lights ON), tidak memunculkan apapun.
Akan dicari cara mengaktifkannya dengan melihat traffic pada wireshark yang sebelumnya telah di capture.
Rencananya, pesan akan di terbitkan ke broker MQTT guna menyalakan lampu. Hasilnya, semua perangkat lampu yang berlangganan broker MQTT ini akan menyalakan lampunya.
Dari hasil Wireshark, ditemukan Publish Message yang berisikan Topic. Topic tersebut akan digunakan dengan bantuan tool mosquitto.
Setelah dijalan, Berhasil dijalankan dan mendapatkan Flag.