Serangan Ransomware dapat menggunakan eksploitasi nol hari, tetapi seringkali penyerang hanya akan membodohi pengguna yang mudah tertipu untuk menjalankan yang dapat dieksekusi dengan mengunduh dan mengklik.
Misalkan kita memiliki pengguna yang naif dan ingin membatasi mereka ke jalur normal. Apakah ada cara untuk membatasi mereka dari membuat file dengan hak istimewa yang dapat dieksekusi?
Atau, secara lebih umum, adakah cara untuk membuat daftar kontrol akses dan menetapkan bahwa pengguna ini hanya dapat menjalankan file dalam daftar ini?
noexec
, di sepanjang garis bagaimana ChromeOS menggunakandm_verity
untuk memastikan integritas sistem file root. Untuk orang-orang yang tidak terlalu hardcore, seseorang dapat menggunakan modul EVM; lihat wiki.gentoo.org/wiki/Extended_Verification_Module untuk dokumentasi Gentoo yang sama.Jawaban:
Serangan spesifik yang telah Anda khawatirkan adalah:
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:
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:. ./evil
atausource ./evil
menjalankan perintah dievil
dalam shell yang sedang berjalan .bash ./evil
berjalanevil
dibash
.python3 evil
berjalanevil
dipython3
.perl evil
berjalanevil
diperl
.interpreter evil
berjalanevil
di interpreterinterpreter
./lib64/ld-linux-x86-64.so.2 ./evil
jalankan biner yang dapat dieksekusievil
.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 :
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.
sumber
. ./evil
atausource ./evil
menjalankan perintah dievil.sh
" -source
Perintah itu akan menjalankan perintah dievil
kecuali jika mereka menentukan ekstensi, misalnya. ./evil.sh
YA *
Ini disebut shell terbatas.
Anda dapat menggunakan
/bin/rbash
, yang sudah tersedia di Ubuntu dan menggabungkannya dengan variabel PATH terbatas . Therbash
akan melarang eksekusi dari sesuatu yang tidak di$PATH
.Tambahkan pengguna terbatas:
Buat direktori baru, tempat kami dapat menautkan binari, yang akan dibatasi oleh pengguna:
Ubah
.profile
file:sudo vim /home/res-user/.profile
Buat
.profile
,bashrc
dan.bash_profile
berubah:Sekarang kami memberi pengguna satu-satunya hal yang ia boleh lakukan, yaitu buka Firefox:
Sekarang, jika kita masuk karena
res-user
kita hanya bisa membuka Firefox:Kami tidak dapat dengan mudah keluar dari cangkang terbatas kami:
Pengguna terbatas tidak dapat membuat file dapat dieksekusi, atau memulainya:
Pengguna terbatas tidak dapat menjalankan skrip jahat dari internet, karena pengguna tidak dapat menjalankan perintah yang diperlukan:
* Ada cara untuk keluar dari cangkang terbatas , tetapi jika pengguna Anda mampu melakukannya, maka mereka mungkin tidak mudah tertipu seperti yang Anda pikirkan.
sumber
res-user
tidak dapat masuk secara grafis. Satu-satunya hal berguna yang dapat mereka lakukan adalahssh -X
menjalankan dan menjalankanfirefox
. Anda dapat mengizinkan lebih banyak perintah sehingga pengguna dapat melakukan pekerjaan mereka. Maka keluar lebih mudah. Beberapa metode yang ditautkan dapat dibuat menjadi satu-liner (yang mungkin disediakan oleh penyerang). Jika pengguna menemukan pembatasan yang menyesakkan, mereka akan menjadi ahli dalam mengelaknya, namun tetap cerdas atau mudah tertipu seperti sebelumnya.