Cadangan terbuka dan file yang tidak direferensikan dan cara menemukannya
Diterbitkan: 2021-08-24Menjaga keamanan WordPress Anda melibatkan proses pengujian, pengerasan, pemantauan, dan peningkatan yang berkelanjutan. Ada beberapa hal yang dapat dilakukan oleh administrator WordPress untuk membantu mereka memastikan situs web mereka aman. Dari memastikan kata sandi memenuhi kriteria khusus hingga memperkuat PHP, proses ini dapat membantu Anda memastikan Anda menjalankan kapal yang ketat dan bersih. Satu hal yang cenderung diabaikan adalah file cadangan dan file yang tidak direferensikan. File-file ini dapat menimbulkan risiko keamanan yang dapat dengan mudah dikelola dengan mengikuti praktik terbaik.
WordPress menggunakan direktori untuk mengatur informasi. Semua halaman dan media berada dalam struktur ini. Dalam instalasi biasa, struktur ini akan terlihat seperti var/www/html/wordpress/wp-content.
Server web, termasuk server yang menghosting situs web WordPress, biasanya dikonfigurasi untuk melayani klien semua file yang berada dalam direktori tertentu. Ada beberapa pengecualian, seperti file PHP; namun, kecuali jika administrator secara eksplisit memblokir akses, kemungkinan besar jika klien memintanya, server web akan mewajibkannya.
Secara umum, ini adalah hal yang baik, dan inilah yang Anda inginkan terjadi karena ini adalah bagaimana file yang berkaitan dengan halaman web Anda, seperti file CSS, file JS, dan gambar, disajikan kepada pengunjung. Namun, perilaku ini juga berarti bahwa Anda dapat tanpa disadari menyajikan file yang tidak pernah Anda maksudkan untuk dilihat publik, seperti file cadangan dan file yang tidak direferensikan.
Apa itu file cadangan dan file yang tidak direferensikan?
Seperti namanya, file cadangan dan tidak direferensikan adalah cadangan aktual yang diambil yang dapat berupa cadangan file tertentu, biasanya dibuat saat mengedit file seperti file konfigurasi, atau bahkan cadangan penuh. Memahami apa file cadangan ini dan bagaimana mereka dihasilkan adalah langkah pertama yang perlu kita ambil untuk mengatasi masalah tersebut.
Ada banyak alasan mengapa Anda mungkin perlu mengedit file WordPress. Mengedit file situs WordPress Anda, bagaimanapun, tanpa mengambil cadangan terlebih dahulu membutuhkan keberanian — satu titik koma yang hilang dapat menurunkan situs web Anda!
Tentu saja, karena kesalahan seperti itu mudah dilakukan, tidak disarankan untuk mengedit file secara langsung di server web produksi. Praktik terbaik memberi tahu kami untuk terlebih dahulu menguji setiap perubahan dalam server pengujian atau pementasan. Hanya setelah pengujian menyeluruh dan berhasil, perubahan dapat dipindahkan ke server live/produksi.
Namun, dalam kehidupan nyata, praktik terbaik tidak selalu diikuti. Ini bisa menjadi benar terutama ketika itu adalah perubahan yang sangat kecil. Proses mengunduh file, membuat perubahan, menguji, dan mengunggah ulang bisa memakan waktu jauh lebih lama daripada mengedit file di server langsung. Kita semua pernah ke sana.
Mengedit di server langsung bisa sangat mudah. Dengan klien SSH dan Vi (atau Vim jika Anda lebih suka versi yang ditingkatkan), Anda dapat melakukan keajaiban. Setelah Anda terhubung ke server dan masuk ke direktori, kemungkinan Anda akan terlebih dahulu mengambil cadangan file (mis. wp-config.php.bak), edit yang langsung, pastikan semuanya beres, dan itu semua keren. Namun, file cadangan yang tertinggal di folder (untuk berjaga-jaga, Anda tahu) dapat menjadi sumber dari banyak rasa sakit dan nyeri. Kemungkinan besar siapa saja dapat mengunduhnya dan dengan itu seluruh konfigurasi, dalam teks biasa, tidak kurang.
Selain itu, banyak administrator WordPress mungkin tidak menyadari bahwa mengedit file di tempat menggunakan editor file seperti Vim dapat secara otomatis membuat cadangan, pemulihan, dan mengunci file. Vim membuat file-file ini untuk memungkinkan Anda memulihkan pekerjaan Anda jika Vim mogok atau berhenti tiba-tiba. Meskipun ini tidak diragukan lagi merupakan fitur yang berharga untuk dimiliki, ini juga berarti bahwa Anda mungkin secara tidak sengaja berakhir dengan file cadangan yang tidak pernah Anda maksudkan untuk dibuat tersebar di sekitar situs web Anda, menunggu siapa pun untuk mengaksesnya.
Demikian pula, cadangan seluruh direktori yang tersisa di folder publik dapat merusak. Meskipun mengambil cadangan situs web WordPress Anda sangat penting, ini perlu dilakukan dengan aman tanpa menimbulkan risiko keamanan baru. Kami akan membicarakan ini secara lebih rinci nanti di artikel ini.
Contoh umum file cadangan termasuk versi lama yang diubah namanya dari file konfigurasi yang dimodifikasi, file PHP atau kode sumber lainnya, dan pencadangan otomatis atau manual dalam bentuk arsip terkompresi (seperti arsip .zip, .gz, atau .tar.gz).
Di sisi lain, file yang tidak direferensikan adalah file yang salah tempat, karena keputusan konfigurasi atau desain, berakhir di tempat yang bukan tempatnya.
Apa risikonya?
Cadangan dan file yang tidak direferensikan secara tidak sengaja dibiarkan dapat diakses dapat membocorkan informasi sensitif. Bergantung pada filenya, data sensitif dapat menyertakan parameter konfigurasi atau kode sumber yang membantu pengguna jahat lebih memahami cara kerja situs web Anda, sehingga memudahkan untuk membuat serangan terhadap situs web Anda. Dalam beberapa kasus, kata sandi yang mungkin memberi penyerang kendali atas seluruh instalasi WordPress juga bisa bocor.
Ada beberapa cara agar seseorang dapat menemukan file sisa di server web Anda. Sementara beberapa metode memerlukan beberapa keahlian teknis, yang lain sesederhana pencarian Google, yang meningkatkan risiko paparan. Jika Anda tidak yakin apakah Anda memiliki file yang tersisa di server Anda, lanjutkan membaca untuk mempelajari bagaimana Anda dapat mencarinya dan menemukannya sebelum orang lain melakukannya.
Cara menemukan file cadangan dan file yang tidak direferensikan di situs WordPress Anda
Ada beberapa metode berbeda yang dapat digunakan seseorang untuk menemukan file cadangan dan file yang tidak direferensikan. Sebagai pemilik server, Anda memiliki keunggulan karena Anda dapat melakukannya secara lebih langsung. Bagian ini akan mengeksplorasi berbagai alat ini, dimulai dengan alat yang dapat Anda gunakan untuk berburu dan menghapus file-file ini. Kami kemudian akan melihat bagaimana kucing yang ingin tahu mungkin mencari cadangan dan file yang tidak direferensikan di server Anda.
Saat mencari file cadangan yang mungkin tertinggal di server web Anda, Anda dapat mengambil satu (atau lebih) dari tiga pendekatan. Cara termudah adalah menginstal plugin yang memonitor file untuk perubahan. Atau, Anda dapat mencoba mencari file cadangan yang tersisa di sistem file menggunakan alat baris perintah seperti find atau, Anda dapat mencoba mencari file cadangan menggunakan teknik yang disebut fuzzing .
Plugin pemantauan integritas file
Solusi pemantauan integritas file untuk WordPress dapat dengan mudah membantu memantau perubahan file di server web Anda dan memperingatkan Anda jika mendeteksi ada sesuatu yang telah ditambahkan, dihapus, atau diubah.
Ini dapat dicapai dengan plugin Monitor Perubahan Berkas Situs Web. Plugin mengambil sidik jari direktori Anda dan kemudian membandingkannya dengan sidik jari berikutnya. Intinya, ia bekerja dengan prinsip yang sama dengan checksum, membuatnya sangat aman dan andal.
Monitor integritas file bisa sangat efektif jika Anda tidak mengetahui rahasia semua direktori yang digunakan oleh WordPress. Satu keuntungan signifikan lainnya dari plugin ini adalah bahwa pemantauan dilakukan secara otomatis, jadi Anda tidak perlu ingat untuk memeriksa file – plugin melakukannya secara otomatis.
Menemukan
Sekarang mari kita lihat bagaimana kita dapat menemukan file cadangan menggunakan perintah find. Perintah berikut akan mencari beberapa ekstensi file yang umum digunakan yang digunakan saat membuat file cadangan.
temukan /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -name '*.jar' -o -name '*.log' -o -name '*.swp' -o -name '*~' -o -name '*.old' -o - nama '*.~bk' -o -nama '*.orig' -o -nama '*.tmp' -o -nama '*.exe' -o -nama '*.0' -o -nama '*. 1' -o -nama '*.2' -o -nama '*.3' -o -nama '*.gz' -o -nama '*.bz2' -o -nama '*.7z' -o - nama '*.s7z' -o -nama '*.lz' -o -nama '*.z' -o -nama '*.lzma' -o -nama '*.lzo' -o -nama '*.apk ' -o -name '*.cab' -o -name '*.rar' -o -name '*.war' -o -name '*.ear' -o -name '*.tar.gz' -o -nama '*.tgz' -o -nama '*.tar.z' -o -nama '*.tar.bz2' -o -nama '*.tbz2' -o -nama '*.tar.lzma' - o -name '*.tlz' -o -name '*.zipx' -o -name '*.iso' -o -name '*.src' -o -name '*.dev' -o -name '* .a' -o -name '*.ar' -o -name '*.cbz' -o -name '*.cpio' -o -name '*.shar' -o -name '*.lbr' -o -nama '*.mar' -o -nama '*.f' -o -nama '*.rz' -o -nama '*.sfark' -o -nama '*.xz' -o -nama '*. ace' -o -nama '*.afa' -o -nama '*.alz' -o -nama '*.arc' -o -nam e '*.arj' -o -name '*.ba' -o -name '*.bh' -o -name '*.cfs' -o -name '*.cpt' -o -name '*.dar ' -o -name '*.dd' -o -name '*.dgc' -o -name '*.dmg' -o -name '*.gca' -o -name '*.ha' -o -name '*.hki' -o -name '*.ice' -o -name '*.inc' -o -name '*.j' -o -name '*.kgb' -o -name '*.lhz' -o -name '*.lha' -o -name '*.lzk' -o -name '*.pak' -o -name '*.partimg.' -o -name '*.paq6' -o -name '*.paq7' -o -name '*.paq8' -o -name '*.pea' -o -name '*.pim' -o -name '*.pit' -o -name '*.qda' -o -name '*.rk' -o -name '*.sda' -o -name '*.sea' -o -name '*.sen' -o -name '*.sfx' -o -name ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -name '*s.xz' -o -name '*.tar.7z' -o -name '*. tar.xz' -o -name '*.uc' -o -name '*.uc0' -o -name '*.uc2' -o -name '*.ucn' -o -name '*.ur2' - o -name '*.ue2' -o -name '*.uca' -o -name '*.uha' -o -name '*.wim' -o -name '*.xar' -o -name '* .xp3' -o -name '*.yz1' -o -name '*.zoo' -o -name '*.zpaq' -o -name '*.zz' -o -name '*.include' -o -nama '*_1' -o -nama '*_2' -o -nama '*_x' -o -nama '*bak' -o -name '*_bak' -o -name '*old' -o -name '*_old' -o -name '*_a' -o -name '*_b' -o -name '*_c' -o -name '*_d' -o -name '*_e' -o -name '*_f' -o -name '*inc' -o -name '*_inc' -o -name '*_backup' -o -name '* – Copy' -o -name '* – Copy (2)' -o -name '* – Copy (3)' -o -name '*backup' -o -name '*-backup' -o -name '*-bak' -o -name '*-old' -o -name '*-1' -o -name '*-2' -o -name '* – Copy – Copy' -o -name '*( copy)' -o -name '*(salinan lain)' -o -name '*(salinan kedua)' -o -name '*(salinan ketiga)' -o -name '*(salinan keempat)' -o - nama '*(salinan ke-2)' -o -nama '*(salinan ke-3)' -o -name '*(salinan ke-4)' -o -name '* (salinan)' -o -name '* (salinan lain) ' -o -name '* (salinan kedua)' -o -name '* (salinan ketiga)' -o -name '* (salinan keempat)' -o -name '* (salinan kedua)' -o -name ' * (salinan ke-3)' -o -name '* (salinan ke-4)' -o -name 'Salinan *' -o -nama 'Salinan (2) dari *' -o -nama 'Salinan (3) dari *' -o -name 'Salinan Salinan *' -o -name 'backup*' -o -name 'backup_*' -o -name 'backup-*' -o -name 'bak*' -o -name 'bak_ *' -o -nama 'bak-*' -o -nama'lama*' -o -nama 'lama_*' -o -nama 'lama-*' -o -nama '1*' -o -nama '1_*' -o -nama '1-*' -o -nama '2*' -o -nama '2_*' -o -nama '2-*' \)
kabur
Metode berikut menggunakan alat berbasis baris perintah yang disebut ffuf dengan daftar kata (daftar nama file dan jalur file yang dikumpulkan dalam teks biasa) yang berfokus pada file WordPress. ffuf dapat dikonfigurasi untuk membuat permintaan menggunakan daftar ekstensi file cadangan umum yang dipisahkan koma ( contoh ini hanya menggunakan daftar singkat yang hanya menyertakan .bak dan .backup, tetapi pada kenyataannya, kemungkinan akan lebih lama).
ffuf -u http://example.com/FUZZ -w wordlist.txt -e '.bak,.backup'
Pencarian Mesin Pencari
Mesin pencari sangat, sangat baik dalam menemukan dan membuat katalog informasi di server web. Seseorang dapat melakukan ini dengan menggunakan operator tingkat lanjut yang dapat, misalnya, menelusuri kueri untuk menemukan jenis file tertentu di server tertentu.
Jenis pencarian ini juga dikenal sebagai Google Dorking dan dapat menggunakan kombinasi filter dan inferensi lanjutan. Inferensi adalah bagaimana seseorang yang tidak memiliki pengetahuan tentang apa yang berada di server menggunakan informasi umum untuk menyimpulkan jenis file dan struktur apa yang mungkin berada di server dan kemudian mencari hal-hal spesifik tersebut.
Pemindai keamanan
Ada berbagai jenis pemindai yang dapat memindai direktori situs web. Jenis pemindai pertama disebut perayap situs, yang merupakan teknologi dasar yang sama yang digunakan mesin telusur untuk membaca situs web. Jenis pemindai ini, bagaimanapun, tidak eksklusif untuk mesin pencari dan dapat diunduh secara bebas.
Memindai situs web target di sebagian besar negara adalah ilegal, meskipun niat Anda baik. Anda dapat dan hanya boleh menggunakan pemindai terhadap situs web yang Anda miliki. Jika Anda memindai situs web pihak ketiga, pastikan Anda memiliki izin. Meski begitu, seseorang dengan niat jahat dapat menggunakan pemindai keamanan untuk mempelajari lebih lanjut tentang situs web Anda dan memahami jenis file apa yang ada di dalamnya.
Jenis pemindai lainnya adalah pemindai pengujian penetrasi, yang dapat memindai kerentanan situs web, termasuk file sisa.
Menemukan cadangan atau file yang tidak direferensikan? Inilah yang harus dilakukan
Menyimpan file cadangan di situs web bukanlah ide yang baik. Sayangnya, tidak jarang pemilik dan administrator situs WordPress mengonfigurasi pekerjaan cron (tugas terjadwal) untuk mengambil cadangan basis data, hanya untuk menyimpan cadangan ini di server yang sama. Meskipun Anda pasti harus mencadangkan situs web Anda, Anda harus berhati-hati agar file cadangan tidak disimpan di mana pun di sistem yang Anda cadangkan.
Memiliki strategi pencadangan WordPress yang dipikirkan dengan matang yang mengikuti praktik terbaik sangat penting tidak hanya dari perspektif keamanan tetapi juga dari sudut pandang kelangsungan bisnis. Lagi pula, cadangan tidak terlalu berharga jika Anda tidak dapat menggunakannya untuk memulihkan data.
Bagaimana mencegah pencacahan file cadangan
Seperti yang telah kita lihat di seluruh artikel ini, menyimpan file cadangan di situs WordPress Anda bisa sangat berisiko. Karena itu, Anda harus selalu menggunakan lingkungan pengujian atau staging untuk melakukan perubahan sebelum mendorongnya ke server live/produksi. Sebagian besar akun hosting WordPress yang dikelola datang dengan lingkungan pementasan langsung dari kotak. Anda juga dapat menggunakan perangkat lunak seperti Lokal, yang memungkinkan Anda menjalankan instans WordPress di PC Anda.
Namun demikian, jika Anda memilih untuk menyimpan file cadangan di server web Anda, idealnya, jauhkan dari direktori yang telah Anda konfigurasikan untuk server web Anda layani.
Selain itu, konfigurasikan izin file WordPress Anda untuk melarang akses ke pengguna server web — ini memastikan bahwa bahkan jika terjadi kesalahan konfigurasi, server web tidak akan diizinkan untuk menyajikan file ke klien yang memintanya. Sebagai tindakan tambahan, ada baiknya untuk mengenkripsi cadangan basis data apa pun dan memastikan kunci enkripsi tidak dapat diakses oleh pengguna server web.