Saat mengembangkan halaman di localhost, saya terkadang mendapatkan kesalahan "Izin ditolak" yang bisa saya selesaikan dengan menjalankan chmod -R 777 /var/www
. Namun, orang-orang mengatakan kepada saya bahwa ini adalah ide yang buruk untuk alasan keamanan.
Mengapa tidak /var/www
memiliki chmod 777?
permissions
security
apache2
www
Luis Alvarado
sumber
sumber
Jawaban:
777 adalah izin yang buruk secara umum dan saya akan tunjukkan alasannya.
Meskipun terlihat seperti di Kasino atau Las Vegas, 777 tidak berarti jackpot untuk Anda. Sebaliknya, jackpot untuk siapa saja yang ingin memodifikasi file Anda. 777 (dan sepupunya yang jelek 666) memungkinkan izin Baca dan Tulis (dan dalam kasus 777, Jalankan) ke yang lain . Anda dapat mempelajari lebih lanjut tentang cara kerja izin file , tetapi singkatnya ada tiga grup izin: pemilik, grup, dan lainnya . Dengan menetapkan izin ke 6 atau 7 (
rw-
ataurwx
) untuk orang lain, Anda memberi pengguna mana pun kemampuan untuk mengedit dan memanipulasi file dan folder tersebut. Biasanya, seperti yang bisa Anda bayangkan, ini buruk untuk keamanan.Inilah contoh saya:
Sejauh ini saya telah membuat folder dan membuat file dengan izin "buruk" (777 dan 666). Sekarang saya akan beralih ke pengguna lain dan mencoba memanipulasi file-file itu.
Sebagai pengguna "jahat" ini saya dapat menempatkan file ke direktori dan menyuntikkan teks ke file yang sudah ada. Sedangkan di bawah ini, dalam direktori dengan 755 dan file dengan 644, saya dapat melihat di dalam file dan direktori tetapi saya tidak dapat mengedit file atau membuat yang baru:
Untuk izin Apache, Anda ingin tetap menggunakan 0755 dan 0644 (AKA
umask 022
) untuk masing-masing folder dan file. Ini memungkinkan Anda, sebagai pemilik file, untuk mengedit dan memanipulasi mereka sambil memberi Apache tingkat akses minimum yang diperlukan untuk beroperasi.sumber
/etc/passwd
dan Anda akan melihat pengguna sepertimail
,news
, dannobody
. Bahkan jika tidak apa-apa bagi semua pengguna manusia nyata dari sistem Anda untuk dapat mengubah konten/var/www
, itu tidak berarti Anda ingin semua proses berjalan karena pengguna "buatan" ini dapat melakukannya.ls -lah
,touch bad
atau perintah lainnya. Bagaimana mereka bisa memanipulasi folder dan file? 2) Warisan. Anda tidak mencakup warisan apa pun antara folder dan file di dalamnya. Setidaknya ada 2-3 langkah sebelum file:/var
,/var/www
,/var/www/project
. Izin pengguna / grup apa yang seharusnya/var
dimiliki? Izin pengguna / grup apa yang seharusnya/var/www
dimiliki? Dan seterusnya. Bagaimana mereka bekerja sama?Pada dasarnya, memiliki izin 777 tidak akan membuat Anda diretas sendiri, tetapi jika seseorang mendapatkan tumpuan di mana saja, itu dapat digunakan untuk meningkatkan izin dan mendapatkan kontrol penuh atas komputer Anda. Bagian terburuknya adalah izin Anda menggunakan "7" - itu artinya membaca, menulis, dan mengeksekusi izin.
Katakanlah seorang peretas ingin mengambil alih komputer Anda. Dia mungkin terhubung ke komputer Anda menggunakan browser web, menghubungkan ke http://yourcomputer.example.com:80/. Jika Anda memiliki halaman yang tersedia yang memungkinkannya mengunggah gambar, ia dapat mengganti nama yang dapat dieksekusi untuk diakhiri dengan ".jpg" dan mengunggahnya ke server Anda. Sekarang dia mencari file itu di browser webnya dan menjalankannya, karena linux tidak peduli dengan ekstensi, itu hanya melihat bahwa itu adalah file yang dapat dieksekusi. Itu mungkin tidak membuatnya banyak, tetapi karena itu berjalan sama sekali, ia tahu itu berjalan sebagai pengguna apache. Dia kemudian mengunggah versi modifikasi yang akan mengedit file konfigurasi apache, memberinya lebih banyak akses - katakanlah sehingga apache akan menampilkan konten / etc / passwd. Dia kemudian dapat menggunakan informasi itu untuk melihat apa yang ada di sistem. Dia kemudian dapat terhubung menggunakan ssh dan mencoba kata sandi umum untuk login sebagai pengguna tersebut - jika itu tidak berhasil, dia akan meningkatkan penggunaan serangan brute-force penuh. Jika dia masuk sebagai pengguna dengan akses sudo,
Sekarang, Anda mungkin mengatakan itu tidak mungkin, atau bahwa itu bukanlah cara kerja peretas yang sebenarnya. Itu benar, tetapi intinya adalah bahwa dengan mengatur file menjadi chmod 777, Anda telah membuka lubang keamanan yang dapat digunakan oleh peretas namun ia mau.
Jika Anda mengikuti Prinsip privilege paling tidak , maka lubang itu tidak terjadi, dan sistem Anda jauh lebih sulit untuk diretas. Meskipun lebih sulit untuk melakukan hal-hal dengan benar, Anda tetap harus melakukan segala upaya untuk melakukannya.
sumber