Tidak
Serangan itu, seperti yang dijelaskan pada awalnya, tidak pernah menjadi ancaman. Sementara kompiler secara teoritis bisa melakukan ini, sebenarnya melakukan serangan akan membutuhkan pemrograman kompiler untuk
- Kenali kapan kode sumber yang dikompilasi adalah dari kompiler, dan
- Cari tahu cara memodifikasi kode sumber sewenang-wenang untuk memasukkan retasan ke dalamnya.
Ini mencakup mencari tahu bagaimana kompiler bekerja dari kode sumbernya, agar dapat memodifikasinya tanpa kerusakan.
Misalnya, bayangkan bahwa format penautan menyimpan panjang data atau offset kode mesin yang dikompilasi di suatu tempat di executable. Kompiler harus mencari tahu sendiri mana yang perlu diperbarui, dan di mana, saat memasukkan muatan eksploitasi. Versi selanjutnya dari kompiler (versi tidak berbahaya) dapat mengubah format ini secara sewenang-wenang, sehingga kode exploit akan secara efektif perlu memahami konsep-konsep ini.
Ini adalah pemrograman tingkat tinggi yang diarahkan sendiri, masalah AI yang sulit (terakhir saya periksa, teknologi canggih ini menghasilkan kode yang secara praktis ditentukan oleh tipenya). Lihatlah: beberapa manusia bahkan dapat melakukan ini; Anda harus mempelajari bahasa pemrograman dan memahami basis kode terlebih dahulu.
Bahkan jika masalah AI diselesaikan, orang akan melihat jika kompilasi hasil kompilasi kecil mereka dalam biner dengan perpustakaan AI besar yang terhubung ke dalamnya.
Serangan analog: kepercayaan bootstrap
Namun, generalisasi serangan itu relevan. Masalah dasarnya adalah bahwa rantai kepercayaan Anda harus dimulai di suatu tempat, dan di banyak domain asalnya dapat menumbangkan seluruh rantai dengan cara yang sulit untuk dideteksi.
Contoh yang bisa dengan mudah ditarik dalam kehidupan nyata
Sistem operasi Anda, misalnya Ubuntu Linux, memastikan keamanan (integritas) pembaruan dengan memeriksa paket pembaruan yang diunduh terhadap kunci penandatanganan repositori (menggunakan kriptografi kunci publik). Tetapi ini hanya menjamin keaslian pembaruan jika Anda dapat membuktikan bahwa kunci masuk dimiliki oleh sumber yang sah.
Dari mana Anda mendapatkan kunci masuk? Ketika Anda pertama kali mengunduh distribusi sistem operasi.
Anda harus percaya bahwa sumber rantai kepercayaan Anda, kunci penandatanganan ini, tidak jahat.
Siapa pun yang dapat MITM koneksi Internet antara Anda dan server unduh Ubuntu — ini bisa berupa ISP Anda, pemerintah yang mengontrol akses Internet (misalnya China), atau penyedia hosting Ubuntu — dapat membajak proses ini:
- Mendeteksi bahwa Anda mengunduh gambar CD Ubuntu. Ini sederhana: lihat bahwa permintaan akan ke salah satu mirror Ubuntu (yang terdaftar secara publik) dan meminta nama file dari gambar ISO.
- Layani permintaan dari server mereka sendiri, memberikan Anda gambar CD yang berisi kunci publik dan lokasi penyimpanan penyerang alih-alih milik Ubuntu.
Sejak saat itu, Anda akan mendapatkan pembaruan Anda dengan aman dari server penyerang. Pembaruan dijalankan sebagai root, sehingga penyerang memiliki kontrol penuh.
Anda dapat mencegah serangan dengan memastikan yang asli otentik. Tetapi ini mengharuskan Anda untuk memvalidasi gambar CD yang diunduh menggunakan hash ( hanya sedikit orang yang melakukan ini ) —dan hash itu sendiri harus diunduh dengan aman, misalnya melalui HTTPS. Dan jika penyerang Anda dapat menambahkan sertifikat di komputer Anda (umum di lingkungan perusahaan) atau mengendalikan otoritas sertifikat (misalnya Cina), bahkan HTTPS tidak memberikan perlindungan.