Praktik Terbaik Keamanan WordPress

Diterbitkan: 2022-03-10

Ada banyak mitos dan FUD (ketakutan, ketidakpastian, dan keraguan) tentang keamanan WordPress di luar sana. Dan ada banyak hal yang perlu dipertimbangkan saat memperkuat situs web terhadap potensi serangan. Jadi, bagaimana bisnis dapat mempelajari praktik terbaik keamanan WordPress yang akan memberi mereka perlindungan web terbaik?

Minggu lalu, saya mengadakan percakapan webinar untuk mengungkap masalah keamanan WordPress. Bergabung dengan saya untuk sesi itu adalah Ayush Malakar (full-stack dan pengembang WordPress di Fresh Consulting) dan Sean O'Shaughnessy (pemimpin Teknik Solusi VIP WordPress).

Melalui empat pertanyaan panduan, kedua pakar ini mengeksplorasi praktik terbaik keamanan yang harus diingat oleh pengembang, admin, pemilik situs, dan eksekutif. Mari kita rekap apa yang kita bicarakan.

Apakah perangkat lunak sumber terbuka aman?

Tidak semua open source diciptakan sama. Tetapi karena WordPress telah ada selama 18 tahun, dan mendukung lebih dari 40% situs web dunia, jelas bahwa adopsi semakin meningkat. Tetapi bahkan dengan perangkat lunak sumber terbuka paling populer di dunia, muncul pertanyaan tentang kerentanan keamanannya. Bukankah semua kode itu, di tempat terbuka, rentan terhadap serangan?

Belum tentu, kata Ayush: "Karena kita memiliki begitu banyak mata yang melihat ke dalamnya, itu lebih aman."

Meskipun mungkin tampak berlawanan dengan intuisi, perangkat lunak sumber terbuka sebenarnya bisa lebih aman daripada perangkat lunak berpemilik sumber tertutup. Inilah alasannya.

Lebih memperhatikan potensi ancaman

Karena open source beroperasi di tempat terbuka, tidak ada yang disembunyikan. Banyak pengembang di komunitas melihatnya dan membuat pembaruan, menginspirasi kepercayaan dan kepercayaan. Jika kerentanan ditemukan, itu ditambal sesegera mungkin—seringkali dalam satu atau dua hari.

Pengujian kode berkelanjutan dan hadiah bug

Siapa pun dapat berkontribusi ke WordPress, dan kodenya diuji oleh komunitas ribuan kontributor inti WordPress. Karena kode terus diuji, kode ini semakin dapat diandalkan.

Selain itu, program bug bounty mendorong publik untuk menemukan lubang dan kerentanan, termasuk serangan brute force, DDoS, phishing, dan banyak lagi.

Pembaruan keamanan

Saat pembaruan keamanan terjadi, pengembang situs web bertanggung jawab untuk memastikan bahwa kode inti selalu diperbarui dan dilindungi dari vektor serangan terbaru. Pembaruan otomatis juga tersedia, dan pengembang perusahaan harus mempertimbangkan apakah ini pilihan yang tepat untuk setiap proyek.

Apakah kode saya aman?

Inti WordPress hanyalah salah satu dari "ember" kode yang membentuk situs web WordPress. Duduk di atas perangkat lunak yang dikembangkan komunitas adalah kode aplikasi situs web— tema atau ujung depannya, dan plugin.

Sementara kode inti WordPress open source dikembangkan oleh komunitas, kode aplikasi yang ditulis untuk atau disebarkan ke situs web individual juga dapat menyebabkan kerentanan keamanan.

Ada berbagai tindakan yang dapat Anda ambil untuk memastikan bahwa kode aplikasi Anda sekuat mungkin melawan serangan. Meskipun Anda mungkin membuat keputusan yang berbeda untuk proyek yang berbeda, tergantung pada tingkat risiko yang dapat diterima, hal terpenting adalah menyadari potensi vektor serangan.

Di sini, pakar webinar kami memiliki beberapa saran.

Alat untuk keamanan WordPress

Ada berbagai alat yang dapat digunakan pengembang untuk membantu mengidentifikasi kelemahan keamanan pada kode pihak pertama dan pihak ketiga.

“Setiap kali kita berbicara tentang alat, kita perlu memahami apa pro dan kontra dari alat ini dan bagaimana sebaiknya kita menggunakan alat untuk keuntungan kita?”

— Ayush Malakar, Konsultan Baru

Alat-alat ini dapat melakukan analisis kode statis atau dinamis. Analisis statis dilakukan tanpa mengeksekusi salah satu kode, dan biasanya dapat mengambil sekitar 85% dari kekurangan dalam kode. Analisis kode dinamis bergantung pada mempelajari bagaimana kode berperilaku selama eksekusi, dan memiliki kemampuan tambahan untuk menemukan masalah keamanan yang disebabkan oleh interaksi kode dengan komponen sistem lain seperti database SQL, server aplikasi, atau layanan web.

Penting untuk mempertimbangkan manfaat manusia vs mesin yang melakukan analisis kode ini. Pembelajaran mesin (ML) dan kecerdasan buatan (AI) dapat digunakan sebagai garis pertahanan pertama untuk memastikan bahwa sekuritas umum diidentifikasi. Tetapi ada juga nilai dalam melihat kode secara manusiawi sesudahnya. Ini memastikan bahwa manusia dapat bekerja pada aspek yang berbeda, seperti kerentanan berbasis fitur, kasus tepi, dll.

Beberapa alat yang direkomendasikan oleh pakar kami:

  • WPScan adalah alat CLI yang dapat digunakan pengembang untuk memindai kode mereka dari lubang keamanan. Ayush merekomendasikan pengembang menjalankan ini dalam pekerjaan cron.
  • PHP_CodeSniffer (PHPCS) memeriksa kode dan menyoroti masalah mulai dari sintaks hingga kerentanan keamanan. Ada seperangkat standar khusus untuk WordPress. Ini dapat diatur untuk berjalan dalam pipa Continuous Integration (CI), dan berjalan di semua repositori VIP WordPress.
  • Sonar Cloud, yang digunakan oleh Fresh Consulting untuk analisis kode statis, memindai kode PHP dan JS untuk mengetahui kerentanan dan implementasi yang lebih aman.

“Apakah kita melakukan validasi input dalam jumlah yang tepat? Apakah kita benar membersihkan segala jenis output yang akan kita miliki dalam kode kita?”

— Sean O'Shaughnessy, WordPress VIP

Keamanan dan plugin WordPress

Saat memilih plugin pihak ketiga, carilah plugin yang memiliki ulasan dan peringkat yang baik, jumlah unduhan yang tinggi, dan fleksibilitas untuk digunakan di situs web Anda. Pastikan plugin diperbarui dan kompatibel dengan versi terbaru WordPress.

Jangan gunakan plugin yang bisa Anda tulis sendiri. Terutama dalam kasus di mana hanya sedikit kode yang dibutuhkan, tulis kode ini di tema Anda alih-alih menggunakan plugin. Itu akan memastikan bahwa tidak ada kerentanan yang akan muncul saat memperbarui plugin.

“Apa yang saya sarankan adalah menulis kode di dalam tema itu sendiri, karena apa yang saya lihat di masa lalu adalah plugin yang melakukan pekerjaan yang sangat minim untuk membuat pembaruan apa pun. Dan kemungkinan besar, seiring perkembangan teknologi, plugin tersebut tidak. Potensi plugin yang memperkenalkan kerentanan mungkin lebih tinggi dari yang kami antisipasi.”

— Ayush Malakar, Konsultan Baru

Seperti biasa, penting untuk selalu memperbarui kode Anda. Perhatikan pembaruan inti dan plugin, dan terus perbarui WordPress, plugin, dan tema.

Keamanan dan titik akhir WordPress

XML-RPC dan REST API adalah titik akhir yang digunakan WordPress untuk berkomunikasi dengan sistem lain, atau ujung depan aplikasi. Sangat penting untuk memiliki pemahaman tentang titik akhir ini, dan apakah titik akhir itu penting bagi aplikasi Anda, karena mereka adalah vektor serangan potensial yang dapat dinonaktifkan jika tidak diperlukan.

XML-RPC sebagai vektor serangan potensial

XML-RPC adalah spesifikasi yang memungkinkan komunikasi antara WordPress dan sistem lain. Di versi awal WordPress, XML-RPC dimatikan secara default. Tapi sejak versi 3.5, sudah diaktifkan secara default. Alasan utamanya adalah untuk mengizinkan aplikasi seluler WordPress untuk berbicara dengan instalasi WordPress Anda.

REST API sebagai vektor serangan potensial

Pastikan menggunakan praktik keamanan terbaik saat menggunakan WordPress REST API. Meskipun bisnis mungkin perlu tetap membukanya, misalnya dalam arsitektur tanpa kepala di mana konten perlu mengalir ke ujung depan yang terpisah, pastikan bahwa mereka yang tersisa memiliki otentikasi dan otorisasi yang tepat.

“Anda memiliki kastil ini, WordPress, aplikasi Anda, dan keberadaan jembatan gantung tidak secara inheren membuat aplikasi Anda aman. Tapi itu adalah jalan. Ini adalah jalan menuju kastil itu. Jadi hanya memiliki pemahaman yang baik dan mengetahui dan memperhitungkan hal-hal itu pasti penting untuk memiliki postur yang lebih baik di sekitar keamanan aplikasi Anda.

— Sean O'Shaughnessy, WordPress VIP

Apakah hosting saya aman?

Ada banyak pertimbangan yang harus dibuat ketika menentukan apakah host Anda cukup aman untuk kebutuhan Anda. Sebaiknya pertimbangkan semua opsi keamanan yang tersedia, dan jangan lupa tentang pentingnya dukungan cepat jika terjadi keadaan darurat—seperti pembaruan plugin yang menyebabkan insiden keamanan.

“Apakah penyedia hosting Anda menawarkan dukungan yang cepat dan proaktif? Selain itu, bagaimana mereka merespons ketika kerentanan aplikasi atau plugin dipublikasikan?”

— Sean O'Shaughnessy, WordPress VIP

Secara keseluruhan, cari platform yang menganggap hosting sebagai tanggung jawab bersama. Beberapa fitur yang perlu dipertimbangkan antara lain:

Izin sistem file

Beberapa host menawarkan sistem file hanya-baca, daripada kemampuan untuk menulis file. Ini mencegah pengguna proses web untuk dapat menulis file di mana saja, menutup vektor serangan potensial.

Kontainerisasi

Cari host yang mengisolasi sumber daya situs Anda dari situs web pelanggan mereka yang lain. Meskipun ini bukan ukuran keamanan yang komprehensif, containerization memang memberikan ukuran dasar keamanan. Sebagai bonus, ini juga memungkinkan sumber daya khusus untuk skalabilitas horizontal atau bahkan vertikal.

Kontrol versi

Ketika platform hosting WordPress memblokir SFTP dan memungkinkan pembaruan kode melalui sistem yang dikontrol versi, mereka mengurangi permukaan serangan aplikasi Anda. Selain itu, mengelola kode sumber aplikasi melalui kontrol versi menyediakan salinan kode yang "murni" sebagai sumber kebenaran, bersama dengan riwayat kode tersebut yang lengkap, dapat diaudit, dan kaya konteks.

Bagaimana perusahaan saya dapat menerapkan keamanan WordPress?

Keamanan bukan hanya pertimbangan di tingkat kode atau host. Ada juga faktor manusia, dan perusahaan dapat membangun proses seperti pemeriksaan keamanan reguler dan aturan kebersihan kata sandi, yang akan sangat membantu meningkatkan keamanan situs web Anda.

“Pada tingkat organisasi, penting untuk berpikir dalam hal menempatkan beberapa lapisan otentikasi lanjutan atau validasi pada tempatnya.”

— Sean O'Shaughnessy, WordPress VIP

Tanpa kepercayaan dan manajemen akses hak istimewa

Melalui peran dan manajemen akses yang dipertimbangkan dengan cermat, organisasi dapat memperlengkapi orang untuk melakukan pekerjaan mereka dengan hak istimewa yang paling sedikit—oleh karena itu, risiko yang paling sedikit—mungkin. Pastikan Anda mendefinisikan dan menetapkan peran dan kemampuan pengguna dengan benar. Kemampuan ini hadir dengan WordPress di luar kotak, dan dapat diperluas untuk kasus penggunaan apa pun.

Kebersihan kata sandi

Pengguna harus membuat kata sandi yang unik dan sulit ditebak untuk setiap aplikasi. Sean sangat menyukai komik ini, yang menganjurkan untuk menggunakan kumpulan kata-kata acak, daripada kombinasi huruf, angka, dan simbol:

komik XKCD

2FA dan SSO

Meskipun teknologi otentikasi dua faktor (2FA) dan sistem masuk tunggal (SSO) tidak secara inheren meningkatkan keamanan situs web Anda, teknologi tersebut memang menawarkan manfaat pengelolaan pengguna terpusat di semua aplikasi yang didukung.

Takeaways keamanan WordPress utama

  • Sumber terbuka memiliki manfaat keamanan
  • Tetap perbarui WordPress dan plugin
  • Gunakan kontrol versi
  • Pahami titik akhir WordPress
  • Cari host yang memperhitungkan keamanan
  • Mengadopsi praktik keamanan yang matang di tingkat organisasi

Kami membahas lebih banyak hal tentang keamanan WordPress di webinar selama satu jam. Jika Anda melewatkannya secara langsung, saya mendorong Anda untuk memeriksa rekamannya di sini.