777 Izin Tulis: Sebuah Celah Keamanan?
Pertanyaan itu menarik, dan saya senang bisa menanggapinya. Kita harus berhati-hati agar tidak membuat epik dari ini, karena itu mudah terjadi jika Anda sudah mendalami materi ini.
Pertama-tama: Di dunia yang ideal, pakar informatika Anda benar. Di dunia itu, semua risiko dihilangkan, dan itu adalah bagian dari solusi 100% untuk lingkungan dengan keamanan sangat kritis.
Sekarang, saya tidak mengatakan bahwa toko bukanlah tempat yang kritis keamanan, karena tentu saja iya. Pertanyaannya adalah apakah standar Pentagon layak diterapkan di sini, dan apa syarat-syaratnya agar masalah izin file mulai berperan.
Pertama-tama, saya akan mengajukan premis berikut:
Rekan tersebut mengatakan: Kita berasumsi dalam model ini bahwa sudah ada celah lain yang dapat dieksploitasi. Untuk itu, kita berusaha keras agar celah seperti itu tidak muncul. Namun jika suatu celah ditemukan dan kita mengetahuinya, maka akan selalu ada tambalan keamanan dalam waktu singkat, dan kami akan segera memberitahukannya. Kita bicara tentang hitungan jam hingga maksimal beberapa hari, tergantung jenis dan luas celah serta perbaikannya. Yang penting adalah premis: Harus selalu ada celah lain terlebih dahulu.
Sekarang anggaplah kita mengalami kasus buruk di mana celah seperti itu ada dan seseorang dapat menjalankan kode PHP sendiri. Kita juga berasumsi bahwa semua izin tulis yang bisa dicabut sudah dicabut. Jadi, kecuali folder cache dan beberapa lainnya, tidak ada izin tulis yang diberikan. Dengan demikian, kita memiliki lingkungan yang diidealkan seperti yang disarankan, dengan asumsi masalah keamanan yang disebutkan. Kita kemudian menghadapi situasi masalah lain yang ada di 99% lingkungan hosting yang kami ketahui: PHP menyertakan perintah yang dapat mengubah izin file, dan biasanya perintah tersebut tidak diblokir untuk dieksekusi. Jika kode jahat pertama-tama berkata "Hapus perlindungan tulis, lalu saya lakukan...", maka perlindungan apa pun melalui izin file menjadi tidak berguna dan langsung dinonaktifkan.
Di lingkungan pakar informatika Anda, hal itu akan dimatikan, tetapi di luar sana biasanya tidak demikian.
Apa yang ada di sisi lain jika kita tetap mencoba memaksakan izin file yang sebaik mungkin, seperti yang Anda lakukan?
Pertama, ada masalah praktis. Tidak ada satu pun varian yang tepat untuk izin file yang diminimalkan untuk toko yang benar bagi semua penyedia hosting. Pada beberapa penyedia, izin file untuk pemilik file yang relevan, pada yang lain hanya grup pemilik. Pada pelanggan berikutnya, izin file "untuk semua orang lain" juga memainkan peran besar. Ini berarti secara faktual bahwa Anda tidak bisa menyelesaikan semua penyedia hosting dengan solusi universal. Konfigurasi server penyedia hosting memainkan peran besar, dan tergantung pada pengaturan penyedia, ada perbedaan besar. Oleh karena itu, pengaturan yang tepat harus dicari dan ditemukan per pelanggan (atau setidaknya untuk setiap penyedia secara terpisah). Karena penyedia hosting jarang mendokumentasikan hal ini dengan baik (karena kurangnya permintaan dari pelanggan...), ini adalah proses yang memakan waktu, sehingga mahal. Dalam proyek besar, hal ini dapat ditawarkan, tetapi dalam semua proyek kecil dan menengah, biasanya secara kalkulatif tidak dapat diterima.
Bahkan tidak mudah untuk menemukan varian yang berfungsi secara universal untuk semua penyedia hosting ketika menggunakan izin file yang permisif, meskipun secara perlahan mulai bergerak ke arah itu.
Apa yang kita dapatkan dengan izin permisif pada direktori utama toko?
Ada beberapa kasus bagus, misalnya Anda dapat mengimplementasikan fungsi pembaruan terintegrasi untuk bagian atau seluruh toko. Klik tombol, tidak perlu unggahan manual yang menjengkelkan, toko dapat memperbarui dirinya sendiri. WordPress sebagai contoh sudah dapat melakukannya beberapa waktu, Magnalister dan Mailbeez di toko juga, kami sedang mempelajarinya secara perlahan untuk bagian kami. Dengan izin file yang ketat, hal itu hampir tidak dapat diwujudkan.
Saya rangkum lagi:
- Harus selalu ada celah lain yang dieksploitasi terlebih dahulu untuk suatu masalah. Ini adalah tugas fokus yang kami coba cegah.
- Sejak saya bisa mengingat, kami belum pernah mengalami masalah yang awalnya disebabkan oleh izin file, meskipun secara ketat itu sudah menjadi vektor serangan potensial selama bertahun-tahun, kami tidak pernah sepenuhnya ketat. Jika orang membobol toko Gambio, 99% kasusnya adalah menebak kata sandi FTP atau Login toko, dan setelah itu semuanya berakhir.
- Jika kami memaksakan hal ini, banyak orang yang pertama-tama tidak akan bisa menjalankan toko, dan hampir semua penyedia hosting akan menghalangi.
- Jika kami melakukannya, kami hampir tidak bisa mengejar hal-hal bagus lainnya, seperti pembaruan mandiri toko.
Apakah itu cukup sebagai jawaban? Apakah Anda bisa menggunakannya?