Serangan spesifik yang telah Anda khawatirkan adalah:
seringkali seorang penyerang hanya akan membodohi pengguna yang mudah tertipu untuk menjalankan yang dapat dieksekusi dengan mengunduh dan mengklik.
Setidaknya dalam kasus umum di mana file diunduh di browser web, ini seharusnya sudah dicegah di Ubuntu oleh kepatuhan browser terhadap kebijakan Execute-Permission Bit Required . Bagian paling relevan dari kebijakan itu adalah:
- File yang diunduh dari browser web, klien email, dll. Tidak boleh disimpan sebagai file yang dapat dieksekusi.
Jadi, jika pengguna diperintahkan untuk mengunduh suatu program di peramban web, ia melakukannya, dan mencoba menjalankan file dengan mengklik dua kali di sana, itu tidak akan berjalan. Ini berlaku bahkan jika file yang diunduh adalah skrip shell atau bahkan file .desktop. (Jika Anda pernah bertanya-tanya mengapa file .desktop di direktori home Anda harus ditandai dieksekusi meskipun mereka tidak benar-benar program, itu sebabnya.)
Mungkin bagi pengguna untuk mengubah perilaku ini melalui perubahan konfigurasi. Sebagian besar tidak akan, dan sementara mereka yang melakukannya mungkin tidak, itu tidak benar-benar apa yang harus Anda khawatirkan. Kekhawatiran yang lebih besar adalah serangan yang lebih kompleks yang saya pikir Anda sudah khawatirkan, di mana orang jahat (atau bot) menginstruksikan pengguna untuk mengunduh file tertentu, menandainya dapat dieksekusi sendiri (melalui browser file atau dengan chmod
), dan kemudian jalankan.
Sayangnya, membatasi kemampuan pengguna untuk mengatur bit eksekusi pada file atau untuk mengeksekusi file selain yang ada di daftar putih tidak akan mengurangi masalah. Beberapa serangan sudah bekerja, dan yang tidak bisa dimodifikasi sepele sehingga bisa dilakukan. Masalah mendasar adalah bahwa efek menjalankan file dapat dicapai bahkan jika file tersebut tidak memiliki izin yang dapat dieksekusi .
Ini paling baik digambarkan dengan contoh. Misalkan evil
adalah file dalam direktori saat ini yang, jika diberikan izin yang dapat dieksekusi ( chmod +x evil
) dan dijalankan ( ./evil
), akan melakukan sesuatu yang jahat. Tergantung pada jenis programnya, efek yang sama dapat dicapai oleh salah satu dari berikut ini:
Tidak satu pun dari mereka, bahkan yang terakhir, mengharuskan file memiliki izin yang dapat dieksekusi atau bahkan pengguna dapat memberikan izin file yang dapat dieksekusi.
Tetapi instruksi jahat itu bahkan tidak harus serumit itu. Pertimbangkan perintah tidak berbahaya ini , yang merupakan salah satu cara yang direkomendasikan secara resmi untuk menginstal atau memperbarui NVM :
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
Alasan yang tidak berbahaya adalah bahwa NVM bukan malware, tetapi jika URL itu bukan untuk skrip seseorang yang melakukan kejahatan saat dijalankan, perintah itu akan mengunduh dan menjalankan skrip. Pada titik apa pun file tidak perlu diberikan izin yang dapat dieksekusi. Mengunduh dan menjalankan kode yang terdapat dalam file jahat dengan satu perintah seperti ini, saya percaya, adalah tindakan yang cukup umum yang dilakukan penyerang untuk menipu pengguna.
Anda mungkin berpikir untuk mencoba membatasi penerjemah apa yang tersedia untuk dijalankan oleh pengguna. Tetapi sebenarnya tidak ada cara untuk melakukan ini yang tidak secara substansial mempengaruhi tugas-tugas biasa yang Anda mungkin ingin para pengguna dapat lakukan. Jika Anda menyiapkan lingkungan yang sangat terbatas di mana hampir semua hal yang dipikirkan pengguna untuk dilakukan di komputer tidak diperbolehkan, seperti kios yang hanya menjalankan beberapa program, maka ini mungkin memberikan perlindungan yang berarti. Tapi itu tidak terdengar seperti itu kasus penggunaanmu.
Jadi jawaban perkiraan untuk pertanyaan Anda adalah, "Tidak." Jawaban yang lebih lengkap adalah Anda mungkin bisa mengatur untuk mencegah pengguna mengeksekusi file apa pun kecuali yang Anda berikan pada daftar putih. Tapi itu dalam pengertian teknis yang ketat untuk "mengeksekusi," yang tidak diperlukan untuk mencapai efek penuh dari menjalankan sebagian besar program atau skrip. Untuk mencegah itu , Anda bisa mencoba untuk membuat daftar putih yang sangat kecil, sehingga tidak daftar setiap juru kecuali yang bisa sangat terbatas. Tetapi bahkan jika Anda berhasil, pengguna tidak bisa berbuat banyak, dan jika Anda membuatnya sangat kecil mereka tidak bisa melukai diri mereka sendiri, mereka mungkin tidak bisa melakukan apa-apa. (Lihat komentar Thomas Ward .)
Jika pengguna Anda dapat melukai diri mereka sendiri, mereka bisa tertipu untuk menyakiti diri mereka sendiri.
Anda mungkin dapat membatasi program tertentu agar tidak digunakan atau berperilaku dengan cara yang mungkin berbahaya, dan jika Anda melihat pola tertentu yang cenderung diikuti ransomware, Anda mungkin dapat mencegah beberapa kasus umum tertentu. (Lihat AppArmor .) Itu mungkin memberikan beberapa nilai. Tapi itu tidak akan memberi Anda apa pun yang dekat dengan solusi komprehensif yang Anda harapkan.
Apa pun tindakan teknis (jika ada) yang akhirnya Anda ambil, taruhan terbaik Anda adalah mengedukasi pengguna. Ini termasuk memberi tahu mereka untuk tidak menjalankan perintah yang tidak mereka pahami dan tidak menggunakan file yang diunduh dalam situasi di mana mereka tidak dapat menjelaskan mengapa itu cukup aman untuk dilakukan. Tapi itu juga termasuk hal-hal seperti membuat cadangan, sehingga jika ada yang tidak beres (karena malware atau lainnya), kerusakan yang dilakukan akan sesedikit mungkin.