Dengan perangkat IoT yang biasanya dibangun dengan margin laba rendah dan spesifikasi daya rendah, fungsionalitas biasanya terbatas pada apa yang diperlukan. Tetapi untuk perangkat yang diperkirakan akan bertahan beberapa tahun, akan ada kerentanan keamanan dan masalah yang perlu diperbaiki (lihat botnet Mirai sebagai contoh)
Sebagai produsen IoT, bagaimana saya bisa mengaktifkan penambalan atau peningkatan algoritma enkripsi atau protokol keamanan dari jarak jauh, atau hanya memastikan bahwa perangkat itu tetap aman? Standar apa yang harus saya ikuti?
security
over-the-air-updates
Rory Alsop
sumber
sumber
Jawaban:
Sejumlah besar produsen IoT memiliki solusi sederhana untuk ini: "jangan repot-repot" . Ini cenderung merupakan pengembang yang sama yang menambahkan kata sandi default (atau bahkan tidak dapat diubah) ke perangkat mereka, yang menyebabkan Mirai di tempat pertama.
Seperti disebutkan dalam jawaban Rory , ada biaya yang cukup besar untuk menyediakan mekanisme dan waktu pengembangan aktual untuk merancang dan menggunakan perbaikan. Saya sangat curiga bahwa tanpa tekanan regulasi (atau permintaan konsumen, yang tampaknya tidak menjadi masalah), tidak akan ada insentif bagi produsen untuk menaikkan harga produk mereka untuk keamanan tambahan. Australia tampaknya mengambil langkah ini dengan mempertimbangkan sistem peringkat keamanan wajib untuk semua perangkat IoT.
Saya pikir bagi sebagian besar produsen, ide terbaik adalah meminta orang lain menangani keamanan. Sama seperti kebanyakan pengembang web menggunakan kerangka kerja mapan seperti Django dan Ruby on Rails untuk menghindari membuat yang sama kesalahan berulang, IOT pengembang harus melakukan hal yang sama. Ada beberapa opsi, tergantung pada kompleksitas perangkat Anda:
Perangkat kelas atas dapat menggunakan sistem operasi seperti Ubuntu IoT atau Windows 10 IoT Core di mana pembaruan keamanan dilakukan oleh pengembang OS dan didorong secara otomatis. Sebagian besar ini tidak spesifik untuk IoT, tetapi jauh lebih disukai untuk setiap perangkat IoT menggunakan sistem operasi internal yang tidak mungkin menerima perawatan apa pun.
Perangkat low-end seperti modul ESP8266 mungkin lebih terbatas, karena mereka tidak dapat menjalankan sistem operasi yang kompleks dan cenderung menjalankan kode yang dikembangkan secara khusus untuk perangkat itu. Masih ada opsi seperti Mongoose OS yang menawarkan pembaruan firmware over-the-air
Pabrikan IoT umumnya harus memanfaatkan solusi yang ada jika tersedia. Pengembang web biasanya tidak membuat ulang kerangka kerja web untuk setiap situs web baru, jadi mengapa IoT harus jauh berbeda? Jawaban Rory menawarkan daftar fitur yang luar biasa yang harus diimplementasikan oleh sistem operasi yang baik untuk IoT, dan hanya menggunakan "IoT OS" tidak akan memperbaiki semua masalah Anda. Seperti yang dijelaskan dalam panduan IoT Windows ini , seseorang harus mengambil langkah-langkah untuk memastikan perangkat keras dan firmware diamankan serta OS itu sendiri. Ide-ide dalam jawaban Rory cukup komprehensif dalam hal ini.
Berikut adalah beberapa contoh dari sistem operasi yang saya sarankan tentang sistem apa yang mereka gunakan untuk meningkatkan keamanan:
Windows IoT:
Ubuntu Core :
sumber
Moran memposting draf IETF ini yang berjudul Arsitektur Pembaruan Firmware untuk Internet of Things Devices pada 30 Oktober 2017.
Ringkasan utama yang diuraikan di komputer Bleeping adalah
Ini sangat banyak konsep, karena ini adalah area baru. Harapan saya adalah bahwa hal itu akan lebih didorong oleh regulasi daripada permintaan konsumen, karena konsumen benar-benar tidak peduli dengan pembaruan atau keamanan kecuali jika mereka secara langsung berdampak pada mereka. Setiap perbaikan di bidang ini akan berdampak pada biaya perangkat.
sumber
Jika firmware perangkat Anda dapat dibuat lebih kompleks daripada bootloader yang diperlukan untuk pembaruan jarak jauh yang aman, maka jangan terapkan pembaruan jarak jauh .
Saya tahu konsensus adalah untuk memiliki bootloader yang aman dan kuat, dengan otentikasi kripto publik yang kuat, mekanisme rollover aman, mungkin tumpukan jaringan dasar, dan kemudian menambahkan RTOS, dengan tumpukan jaringan IP + TLS lengkap, kemudian tambahkan di atas itu aplikasi Anda. Ini adalah kegilaan murni untuk perangkat berdaya rendah berbiaya rendah. IMHO, ini mengarah ke produk yang diperbarui setiap minggu atau lebih, yang cenderung mengganggu pengguna karena kadang-kadang pembaruan dimulai pada saat yang salah, gagal atau merusak sesuatu. Pembaruan menghabiskan banyak daya juga, jadi pengguna harus mengisi daya lebih sering. Dan keamanan masih jauh dari terjamin karena permukaan serangan besar.
Perangkat Anda melakukan penginderaan dasar / penggerak, mungkin beberapa pemicu / tampilan lokal tetapi tidak banyak? Lewati semua itu.
Tulis kode logam kosong, gunakan tumpukan yang sangat mendasar, audit dengan saksama, lakukan verifikasi formal jika memungkinkan. Dan kemudian Anda dapat relatif yakin bahwa perangkat Anda tidak akan memiliki masalah keamanan untuk dekade berikutnya.
Jika yang Anda miliki adalah palu, semuanya terlihat seperti paku. Dan itulah sebabnya kebanyakan coder mencoba menulis kode untuk mengamankan kode yang ada tanpa jaminan mereka. Menulis lebih sedikit kode tidak selalu muncul secara alami.
sumber