Apakah Plugin WordPress aman digunakan?

Diterbitkan: 2020-04-16

Selama bertahun-tahun, penelitian telah mengidentifikasi bahwa lebih dari 20% dari 50 plugin WordPress paling populer rentan terhadap serangan Web umum. Selanjutnya, penelitian yang ditargetkan ke dalam plugin e-niaga menemukan bahwa 7 dari 10 plugin e-niaga paling populer mengandung kerentanan. Sayangnya, peretas biasanya mengeksploitasi aplikasi rentan ini untuk mengakses informasi sensitif seperti catatan kesehatan dan detail keuangan. Dalam kasus lain, kerentanan memungkinkan peretas untuk merusak situs atau mengarahkannya ke situs lain yang dikendalikan penyerang.

WordPress-Keamanan-Statistik

Dalam kasus yang lebih baru, kami telah melihat plugin WordPress berbahaya digunakan tidak hanya untuk mempertahankan akses pada server yang disusupi, tetapi juga untuk menambang cryptocurrency. Jadi, ini menimbulkan pertanyaan tentang seberapa aman plugin WordPress.

Di blog ini, kami akan sangat fokus pada Plugin WordPress sebagai sumber potensial pelanggaran keamanan.

Pengembangan Web Berbasis Plugin.

Secara umum, WordPress adalah Sistem Manajemen Konten (CMS) paling populer di dunia karena mendukung lebih dari 30% Web.

Yang mengatakan, kekuatan inti WordPress terletak pada kemampuannya untuk memungkinkan penyesuaian situs melalui penawaran ekstensif puluhan ribu plugin dan tema. Plugin ini bervariasi dalam jenis dan fungsionalitas - mulai dari menambahkan formulir kontak ke situs hingga mengoptimalkan blog untuk SEO, atau bahkan menerbitkan posting baru ke Facebook secara otomatis.

Pengembangan Pihak Ketiga.

Ide utama di balik pengembangan berbasis plugin adalah untuk menawarkan fitur tambahan untuk memperluas kemampuan inti dari suatu sistem. Pada dasarnya, inti aplikasi biasanya dikelola oleh sekelompok pengembang jangka panjang sementara pihak ketiga membangun sejumlah plugin di sekitar inti aplikasi.

Proses ini bermanfaat bagi penyedia aplikasi dan penyedia plugin karena penyedia aplikasi dapat lebih fokus pada fungsionalitas inti sementara penyedia plugin tidak perlu khawatir dengan infrastruktur plugin, yang disediakan oleh fungsionalitas inti aplikasi. Secara umum, WordPress juga didukung oleh komunitas global yang terdiri dari ribuan pengembang dan penggemar perangkat lunak komersial dan sumber terbuka.

Tidak Ada Pedoman Keamanan

Secara keseluruhan, meskipun ada beberapa standar dan rekomendasi pengkodean, secara teknis tidak ada pedoman keamanan atau persyaratan standar yang harus dipatuhi secara ketat oleh pengembang plugin. Ini berarti bahwa kerentanan dalam satu plugin dapat menyebar ke jutaan situs web.

Dan karena WordPress digunakan secara luas, akibatnya menjadi target serangan yang populer. Jadi, pada dasarnya, peretas yang mengeksploitasi kerentanan plugin dapat menginfeksi ribuan situs. Sebuah skenario yang sudah disaksikan oleh banyak blogger.

Sayangnya, kerentanan terkait plugin juga cenderung berulang, dapat dieksploitasi, dan sulit dideteksi. Oleh karena itu, ada kebutuhan untuk lebih memahami kerentanan tersebut untuk mengurangi ancaman keamanan yang relevan. Mari kita menggali lebih dalam, ya?

Jenis-of-Malware

Apakah WordPress Benar-Benar Aman?

Hal pertama yang pertama, mari kita jawab pertanyaan ini. Untuk sebagian besar, WordPress sebagai ekosistem mentah sangat aman selama praktik terbaik keamanan WordPress dipatuhi. Rata-rata, sekitar 30.000 situs web baru diretas setiap hari di web. Peretas ini cenderung menargetkan situs web WordPress karena kerentanan plugin, kata sandi yang lemah, dan perangkat lunak yang usang. Jadi, mencapai keamanan terbaik memerlukan tingkat kesengajaan, yang berarti mengikuti beberapa praktik terbaik keamanan WordPress dasar untuk mengurangi kerentanan Anda terhadap serangan.

Baca Selengkapnya: 11 Cara Efektif untuk Meningkatkan Situs WordPress Anda untuk Lalu Lintas Tinggi

Dari mana Kerentanan ini berasal?

Sebuah laporan baru-baru ini oleh wpscan.org mengungkapkan bahwa WordPress memiliki hampir 4.000 kerentanan keamanan yang diketahui. Sebagian besar kerentanan ini disebabkan oleh plugin. Dan sementara beberapa kerentanan terkait plugin ini mungkin memiliki konsekuensi yang parah, banyak yang tetap tidak diperhatikan selama bertahun-tahun sebelum diperbaiki. Dalam kebanyakan contoh, mereka biasanya dapat diperbaiki dengan perubahan kecil dan lokal pada kode sumbernya.

Namun, sebelum kita maju dari diri kita sendiri, mari kita mundur selangkah.

Apa itu Plugin?

Pada dasarnya, plugin adalah ekstensi perangkat lunak yang melengkapi aplikasi dengan fungsionalitas dan perilaku baru yang disesuaikan dengan kebutuhan. Secara khusus, WordPress menawarkan ribuan plugin (lebih dari 52.000), yang telah digunakan untuk membangun ribuan aplikasi web yang disesuaikan.

Sejak aplikasi web berbasis plugin menjadi lebih umum, lebih banyak pengembang mengalihkan perhatian mereka untuk mengeksplorasi potensi mereka untuk menata ulang aplikasi web dengan menyusun, mengonfigurasi, dan memperluas berbagai plugin dengan fungsionalitas mutakhir.

Implikasi Pengembangan Plugin

Meskipun demikian, kemampuan untuk mengeksploitasi plugin untuk memperluas sistem web dengan fungsionalitas tambahan dan kustom memiliki implikasi positif dan negatif bagi pengembang. Pertama, sisi positifnya, biasanya ada beberapa opsi penyesuaian yang dapat dipilih, memberi pengembang kemampuan untuk dengan cepat dan mudah membangun aplikasi web yang disesuaikan dengan kebutuhan pengguna. Dengan demikian, memfasilitasi pembuatan prototipe dan pengembangan yang cepat.

Namun, di sisi negatifnya, aplikasi web dapat menjadi komposisi kompleks dari beberapa plugin dari sumber yang berbeda. Yang pada akhirnya menimbulkan kekhawatiran terkait dengan keamanan plugin. Misalnya, TimThumb, sebuah plugin yang digunakan oleh jutaan aplikasi berbasis WordPress dilaporkan terbuka untuk dieksploitasi di mana penyerang dapat dengan sengaja mengeksekusi kode jarak jauh.

Faktanya, sekitar 15% dari kerentanan dalam sistem web dapat dianggap kritis menurut Database Kerentanan Nasional (NVD) Amerika Serikat, dengan hampir 35% di antaranya merupakan kerentanan yang mudah dieksploitasi.

Apa Konsekuensi dari Plugin yang Disusupi?

Selain pengguna kehilangan informasi keuangan atau bahkan catatan kesehatan mereka terganggu, kerentanan yang lebih parah, dampak keuangan yang lebih besar pada perusahaan perangkat lunak. Selain itu, ini semakin diperburuk jika pengembang gagal merilis jalur yang layak pada saat pengungkapan. Dengan demikian, vendor plugin biasanya berusaha untuk membuat aplikasi yang lebih aman

Sekarang mari kita selidiki beberapa kerentanan keamanan yang biasanya ditemukan di plugin untuk mendapatkan pemahaman yang lebih luas tentang konsekuensi dan implikasinya.

Kerentanan Keamanan

Seperti yang telah kami kumpulkan, kerentanan membuka peluang bagi potensi penyalahgunaan sistem perangkat lunak. Pada akhirnya, karena WordPress memungkinkan jutaan pengembang di seluruh dunia untuk membuat plugin mereka sendiri, tidak realistis untuk tidak mengharapkan tingkat kompromi terjadi pada plugin.

Akibatnya, keamanan dapat dilanggar oleh interaksi plugin yang tidak terduga dengan sistem inti, yang mengarah ke kerentanan yang berpotensi dieksploitasi oleh penyerang. Ini kemudian menyiratkan bahwa keamanan sistem web bergantung pada menjaga kerentanan sistem inti dan plugin.

Kompleksitas WordPress

Karena kompleksitas WordPress, terkadang cenderung diganggu oleh kerentanan. Misalnya, WordPress menyediakan infrastruktur intuitif di mana plugin dapat menyumbangkan fitur baru dengan memodifikasi status global bersama atau menjalankan fungsi pada titik tertentu dalam eksekusi inti sistem. Akibatnya, kerentanan plugin dapat muncul ketika plugin mengirimkan data input berbahaya ke komponen inti tanpa sanitasi yang tepat atau validasi input.

Contoh Kerentanan Plugin

Pada akhirnya, kerentanan plugin yang paling umum adalah skrip lintas situs, Injeksi SQL, dan Pemalsuan Permintaan Lintas Situs. Secara keseluruhan, jenis kerentanan paling berbahaya yang dapat dengan mudah dieksploitasi oleh penyerang adalah SQL Injection. Namun, kerentanan lain, sumber pelanggaran dan kompromi memang ada, yaitu:

  • Kesalahan Pemrosesan Data
  • Validasi Input yang Tidak Tepat
  • Paparan Informasi
  • Lintasan Jalur
  • Fitur keamanan
  • Kontrol Akses
  • Kontrol Akses yang Tidak Benar
  • Otorisasi yang Tidak Benar
  • Otentikasi yang Tidak Benar
  • Pemalsuan Permintaan Lintas Situs
  • Unggah File Tanpa Batas
  • File Dapat Diakses oleh Pihak Eksternal
  • Tautan Mengikuti
  • Buka Pengalihan
  • Injeksi Perintah
  • Injeksi Perintah OS
  • Scripting lintas situs
  • Injeksi SQL
  • Injeksi Kode
Contoh-Kerentanan-Plugin

Untuk konteks lebih lanjut, mari kita jelajahi serangan dan kerentanan yang paling umum.

  • · SQL Injection: Suntikan SQL biasanya terjadi ketika penyerang memperoleh akses ke database WordPress pengguna dan semua data situs web mereka. Injeksi SQL juga dapat digunakan untuk memasukkan data baru ke dalam database, termasuk tautan ke situs web jahat atau spam.

Injeksi SQL memungkinkan eksekusi perintah di server back-end, seperti ekstraksi informasi sensitif. Dalam lingkungan yang dihosting, serangan SQL Injection selanjutnya dapat digunakan sebagai batu loncatan untuk serangan terhadap situs yang tidak rentan.

  • · Cross-Site Scripting: Serangan ini memungkinkan menjalankan skrip pada klien untuk melewati kontrol akses. Ini biasanya menargetkan semua pengunjung ke situs. Di lingkungan yang dihosting, serangan semacam itu dapat digunakan untuk mencuri cookie sesi dari admin situs, memungkinkan penyerang untuk menyamar sebagai admin.
  • · Pemalsuan Permintaan Lintas Situs: Kerentanan ini memungkinkan peretas untuk melakukan transaksi tingkat aplikasi atas nama korban. Di lingkungan yang dihosting, penyerang dapat masuk ke situs atas nama admin dan melakukan aktivitas jahat seperti mengarahkan ulang pengguna atau melakukan transaksi admin.

Umum di plugin WordPress, kerentanan skrip lintas situs bekerja dengan cara seperti ini – penyerang menemukan cara untuk membuat korban memuat halaman web dengan skrip JavaScript yang tidak aman.

Di mana sebagian besar kerentanan muncul?

Sebuah studi teknis menemukan bahwa sebagian besar kerentanan (sekitar 92%) muncul dalam kode plugin. Selanjutnya, menurut hasil, kerentanan seperti Cross-site Scripting dan Cross-site Request Forgery lebih umum terjadi pada kode plugin, sementara kerentanan lainnya lebih umum pada kode inti. Terkait, penelitian tersebut mengungkapkan bahwa kualitas plugin bervariasi dan tidak ada korelasi antara peringkat plugin dan jumlah kerentanan yang ditemukan di dalamnya.

Sumber-Kerentanan-dari-WordPress

Proses Penulisan Kode PHP

Proses penulisan kode dapat menjadi asal mula kerentanan atau kompromi apa pun. Secara umum, PHP terkenal karena mendukung eksekusi kode arbitrer di sisi server tanpa secara langsung menggunakan sistem operasi host. Yang mengatakan, setiap kali pengembang lalai selama proses penulisan kode, itu meningkatkan kemungkinan pengenalan kerentanan Cross-site Scripting ke dalam kode plugin.

Di sisi lain, SQL Injection merupakan kerentanan umum karena dapat dengan mudah dideteksi dan dieksploitasi. Ironisnya, bahkan situs web dengan basis pengguna kecil kemungkinan akan menjadi sasaran percobaan serangan SQL Injection.

Beberapa paparan kerentanan berasal dari pengembang yang menggunakan sumber daya yang tidak aman. Demikian pula, validasi input yang tepat masih merupakan tantangan besar bagi pengembang plugin karena banyak dari plugin yang baru dikembangkan telah dibuat oleh pengembang yang tidak terlalu terampil.

Apakah Kerentanan yang disebabkan oleh Plugin WordPress penting?

Semua hal dipertimbangkan; kerentanan dapat mempengaruhi sistem web secara negatif dalam beberapa cara. Misalnya, eksploitasi kerentanan yang berhasil dapat menyebabkan hilangnya kerahasiaan sepenuhnya, meskipun tanpa kehilangan ketersediaan.

Seperti yang telah dicatat, SQL Injection tampaknya menjadi jenis kerentanan yang paling berbahaya, meskipun hanya sebagian mempengaruhi integritas, ketersediaan, dan kerahasiaan sistem. Namun, kerentanan semacam itu berpotensi memungkinkan penyerang mengakses file atau informasi tanpa batas.

Jadi, secara tidak sengaja, sebagian besar kerentanan berpotensi menyebabkan pelanggaran data sementara beberapa kerentanan tidak selalu membuat aplikasi web terkena risiko keamanan yang serius. Baik, penting untuk menghindari mengambil risiko dengan peluang seperti itu.

Berapa lama kerentanan dapat bertahan dalam kode plugin WordPress?

Biasanya, kerentanan dalam kode cenderung melewati status yang berbeda, bervariasi dari pengenalan, melewati pengungkapan, hingga rilis tambalan yang memperbaiki ancaman keamanan.

Biasanya, kerentanan diungkapkan ketika penemu mengungkapkan rincian ancaman keamanan kepada khalayak yang lebih luas. Akhirnya, kerentanan diperbaiki ketika pengembang merilis tambalan yang memperbaiki ancaman keamanan yang mendasarinya. Namun, terkadang kerentanan tetap tidak diperhatikan dalam aplikasi web selama bertahun-tahun sebelum diidentifikasi dan kemudian diperbaiki.

Kemungkinan Mitigasi dan Metode Deteksi

Mencegah lebih baik daripada mengobati seperti yang dikatakan kebanyakan orang. Jadi, jika pengembang plugin dapat sepenuhnya memahami, mendeteksi, dan menghilangkan Skrip Lintas Situs, Injeksi SQL, dan Pemalsuan Permintaan Lintas Situs, kemungkinan kami akan memiliki plugin dengan kerentanan 75% lebih sedikit.

Namun, perlu dicatat bahwa ketiga kerentanan ini bukan satu-satunya kerentanan yang dapat dimanfaatkan oleh penyerang. Melainkan, adalah kerentanan yang paling umum.

Jadi, sementara strategi mitigasi yang diusulkan ini tidak menjamin bahwa plugin yang diberikan akan sepenuhnya aman, mereka, bagaimanapun, menetapkan prinsip yang baik untuk pencegahan kerentanan. Sebagai contoh:

  1. Pahami bagaimana data digunakan dan pengkodean yang diharapkan oleh bagian inti WordPress. Dalam hal ini, pengembang harus selalu menganggap semua masukan sebagai berbahaya dan menolak masukan apa pun yang tidak sepenuhnya sesuai dengan pola penyandian yang diperlukan, atau mengubahnya menjadi masukan yang valid.
  2. Untuk melindungi database dari SQL Injection, pengembang harus menggunakan pernyataan SQL berparameter dengan memisahkan kode dari manipulasi data. Juga, selalu periksa tajuk untuk memverifikasi apakah permintaan berasal dari asal yang sama. Selain itu, mungkin juga berguna untuk menghindari memaparkan data kepada penyerang yang tidak diautentikasi.
  3. Praktik yang baik adalah menghindari metode GET untuk setiap permintaan yang memicu perubahan status.

Deteksi Kerentanan

Sayangnya, tidak ada metode yang konsisten untuk mendeteksi kelemahan kode yang paling umum dengan akurasi dan cakupan 100%. Sayangnya, bahkan teknik modern yang menggunakan analisis aliran data untuk mendeteksi Cross-site Scripting, terkadang memberikan hasil positif yang salah.

Sebaliknya, metode analisis manual seperti tinjauan kode cenderung lebih efektif daripada metode yang sepenuhnya otomatis, terutama untuk kerentanan yang terkait dengan desain. Sebagai contoh, Pemalsuan Permintaan Lintas Situs sangat sulit dideteksi secara andal menggunakan metode otomatis karena setiap aplikasi memiliki kebijakan dan cara keamanannya sendiri untuk menunjukkan permintaan mana yang memerlukan keyakinan kuat bahwa pengguna bermaksud membuat permintaan.

Namun, di sisi lain, analisis manual dapat berguna untuk menemukan SQL Injection, meskipun mungkin tidak mencapai cakupan kode yang diinginkan dalam batasan waktu yang terbatas. Ini bisa menjadi sulit untuk kelemahan yang harus dipertimbangkan untuk semua input, karena permukaan serangan bisa terlalu besar.

Akibatnya, beberapa organisasi menekankan pentingnya pendekatan yang seimbang yang mencakup tinjauan manual dan analisis otomatis yang mencakup semua fase proses pengembangan sistem web.

Praktik Terbaik untuk Melindungi Aplikasi WordPress Anda

  • Unduh plugin hanya dari sumber tepercaya seperti WordPress.org: Karena siapa pun dapat mengembangkan plugin WordPress, peretas terkenal mengeksploitasi kerentanan ini untuk menyembunyikan plugin berbahaya mereka sendiri. Pasar yang memiliki reputasi baik mungkin tidak sepenuhnya menjamin akses ke plugin yang tidak berbahaya, tetapi direkomendasikan sebagai praktik mitigasi.
  • Selalu pastikan bahwa semua plugin Anda mutakhir: Pengguna WordPress biasanya mendapatkan email pemberitahuan yang sering mereka abaikan. Pastikan untuk mengatur plugin Anda untuk memperbarui secara otomatis, atau setidaknya secara manual memutakhirkannya sendiri.
  • Verifikasi postur keamanan plugin dengan memindainya untuk masalah keamanan: Sebagian besar plugin adalah open-source, yang berarti bahwa kode sumbernya tersedia. Jadi, pastikan untuk menggunakan alat analisis kode sumber statis yang akan memberi Anda "tagihan kesehatan" plugin. Beberapa pemindai tingkat lanjut bahkan dapat mengarahkan Anda dengan rekomendasi perbaikan yang optimal dan tercepat.
  • Hapus semua plugin yang tidak digunakan: Sayangnya, kode plugin lama yang tidak digunakan biasanya tetap ada di server – bahkan ketika plugin tidak aktif. Jadi, pastikan untuk selalu menghapus plugin yang tidak digunakan sebagai bagian dari pemeliharaan situs WordPress Anda

Rekomendasi untuk Pengembang Plugin

  • Selalu sertakan keamanan selama pengembangan plugin: Kerentanan menimbulkan biaya yang lebih tinggi untuk diperbaiki nanti, jadi, selalu integrasikan keamanan dalam pengembangan plugin sebagai bagian dari proses Siklus Hidup Pengembangan Perangkat Lunak (SDLC) Anda yang aman.
  • Jalankan plugin melalui pemindai kode untuk memastikan plugin memenuhi standar keamanan terbaru. Pastikan untuk melakukan tes analisis kode sumber yang komprehensif selama pengembangan dan sebelum rilis.

Mengembangkan Plugin Aman

Seperti yang telah dicatat, pengembang plugin perlu berusaha untuk menulis kode yang aman. Sayangnya, masih banyak developer yang tidak tahu caranya, karena mereka tidak terlalu ahli. Khususnya, mengingat sifat dari kerentanan paling umum yang disebutkan di atas, jelas bahwa banyak pengembang tidak memahami serangan umum, fungsi keamanan yang disediakan oleh bahasa dan platform yang mereka gunakan, dan cara menggunakan praktik yang berlaku untuk mengurangi masalah keamanan.

Oleh karena itu, rekomendasi kami di Creole Studios adalah mungkin metodologi baru harus dikembangkan disesuaikan dengan pengembang plugin. Metodologi tersebut harus mempromosikan keamanan dalam persyaratan dan fase desain karena pengembang adalah entitas yang paling penting dalam keamanan perangkat lunak.

Pikiran Akhir

Untuk meringkas topik, Plugin WordPress dapat dikompromikan, dengan kerentanan yang paling umum adalah Cross-site Scripting, SQL Injection, dan Cross-site Request Forgery.

Sayangnya, penelitian tampaknya menunjukkan bahwa frekuensi terjadinya kerentanan ini tampaknya tidak menurun seiring waktu. Aman untuk mengasumsikan bahwa alasan utama untuk ini adalah bahwa sebagian besar pengembang plugin WordPress masih kurang terampil dalam hal pemrograman yang aman.

Karena itu, garis pertahanan pertama seharusnya adalah tim pengembangan! Dan kami percaya bahwa setelah praktik keamanan terbaik diterapkan, maka pengguna dapat tidur lebih nyenyak di malam hari, mengetahui bahwa mereka terlindungi dari penjahat dunia maya.

Untuk informasi lebih lanjut tentang praktik keamanan WordPress kami, pastikan untuk berkonsultasi dengan baik.