Enam Langkah Terbukti untuk Mengamankan Sistem Tertanam IoT
Mark Pitchford dari LDRA
Keamanan tetap menjadi kekhawatiran utama untuk berbagai macam perangkat tertanam yang mendorong Internet of Things—dari jaringan listrik dan sistem otomotif hingga perangkat medis dan alat sehari-hari. Jika terkompromi, sistem ini dapat mengekspos infrastruktur kritis, data pribadi, dan keselamatan publik pada risiko yang signifikan, kata Mark Pitchford dari LDRA.
Pencegahan adalah strategi hemat biaya yang paling efektif, mengedepankan filosofi “shift left” yang memindahkan keamanan dari akhir proses ke awal. Dengan menyematkan keamanan ke dalam tahap desain dan pengembangan, tim dapat mengurangi kerentanan sejak awal dan menghindari penggalian ulang yang mahal nanti.
Berikut adalah enam praktik yang didukung oleh industri yang memberikan perangkat lunak tertanam berkualitas tinggi dan aman.
1. Bangun keamanan ke dalam siklus hidup pengembangan perangkat lunak
Pemeriksaan kode aman tradisional sering bersifat reaktif—kode ditulis dengan pedoman luas lalu diperiksa untuk kekurangan. Baik menggunakan Agile atau pendekatan waterfall yang lebih klasik, kunci adalah memperlakukan persyaratan keamanan sebagai warga kelas pertama selama seluruh siklus hidup. Mengintegrasikan threat modeling, pola desain aman, dan kontrol keamanan tingkat kode sejak awal memastikan produk akhir yang lebih kuat.
Dalam model linear dan iteratif, keamanan harus diwoven ke dalam setiap fase—persyaratan, desain, implementasi, dan pengujian—daripada diperlakukan sebagai tambahan pasca-fakta.
2. Pastikan traceabilitas dua arah
Standar keselamatan fungsional menuntut bukti traceabilitas dua arah di seluruh fase pengembangan. Ketik ketelitian yang sama berlaku untuk keamanan: traceabilitas menjamin bahwa setiap persyaratan memiliki elemen desain, blok kode, dan kasus uji yang sesuai, dan bahwa perubahan menyebar dengan benar. Alat otomatis dapat menghasilkan artefak kepatuhan sesuai permintaan, menyederhanakan audit dan mengurangi risiko backdoor tersembunyi.
3. Pilih subset bahasa yang aman
Dalam C dan C++, sekitar 80 persen defect berasal dari penyalahgunaan sebagian kecil dari fitur bahasa. Dengan membatasi bahasa ke subset yang telah diseleksi—seperti MISRA C atau CERT C—pengembang dapat menghilangkan banyak kerentanan umum pada waktu kompilasi. Sementara penerapan manual memerlukan tenaga, mengintegrasikan statik analyzer ke dalam pipeline build mengotomatiskan kepatuhan dan mempertahankan produktivitas.
4. Gunakan standar proses yang berfokus pada keamanan
Meski standar keamanan masih berkembang, pemimpin industri dengan cepat mengadopsi mereka. Misalnya, ISO/SAE 21434 “Road Vehicles Cybersecurity Engineering” menyediakan panduan detail untuk konektivitas otomotif, melengkapi SAE J3061 tingkat lebih tinggi. Mengadopsi standar seperti ini memastikan pendekatan yang terstruktur dan dapat diulang terhadap mitigasi ancaman.
5. Otomatisasi sebanyak mungkin
Otomatisasi di setiap tahap—dari pengambilan persyaratan dalam alat seperti IBM Rational DOORS hingga pengujian berbasis model—mengurangi kesalahan manusia dan mempercepat siklus umpan balik. Mesin analisis statis memverifikasi kepatuhan dengan standar kode dan keselamatan, sementara analisis dinamis dan pengujian penetrasi mengonfirmasi bahwa perangkat lunak berperilaku dengan aman di bawah serangan.
6. Pilih fondasi perangkat lunak yang aman
Perangkat lunak tertanam yang aman harus berjalan pada platform yang dapat dipercaya. Pemisahan domain mengisolasi aplikasi dari komponen lain, membatasi radius dampak dari kompromi. Integrated test harnesses yang mencakup persyaratan hingga dokumentasi memungkinkan pengembang untuk memvalidasi keamanan selama lingkungan build.
Mengadopsi enam proses ini memberikan strategi yang kohesif untuk membangun sistem tertanam IoT yang aman, aman, dan andal.