Seberapa aman web server Anda?
Apakah data sensitif pelanggan Anda terlindungi dengan baik?
Jika tidak menjaga keamanan web server, website Anda berpotensi rusak akibat serangan dari pihak yang tidak bertanggung jawab.
Anda pasti tidak mau rugi belasan juta rupiah karena website down dan menghentikan operasional bisnis, kan?
Kami paham itu dan tidak ingin Anda mengalaminya.
Maka dari itu, mari simak panduan lengkap untuk menjaga keamanan server Anda.
Apa itu Web Server?
Web server adalah kombinasi perangkat lunak (software) dan perangkat keras (hardware) yang berperan menyediakan data sebagai respons terhadap permintaan dari browser web melalui protokol HTTP atau HTTPS.
Masih bingung?
Sederhananya begini:
- Anda mengetikkan alamat website (URL) di browser;
- Browser mengirimkan permintaan HTTP atau HTTPS ke web server;
- Web server menerima permintaan tersebut dan mencari file yang sesuai di dalam penyimpanannya;
- Jika file ditemukan, web server mengirimkan respon kembali ke browser dalam bentuk kode HTML, CSS, gambar, dan lain-lain;
- Browser menerima respon tersebut dan menampilkannya sebagai halaman web yang dapat dilihat oleh Anda.
Jadi, tanpa web server, Anda tidak bisa mengakses dan melihat halaman website.
Selain itu, ada beberapa fungsi lain dari web server.
Fungsi Web Server
1. Menyimpan dan mengamankan data website
Web server berfungsi sebagai tempat penyimpanan data website, seperti file-file HTML, CSS, gambar, video, dan database.
Selain itu, web server juga bertanggung jawab untuk mengamankan data-data ini dari akses yang tidak sah.
2. Mengelola sumber daya server
Web server bertugas mengelola sumber daya yang ada di server, seperti memori, CPU, dan bandwidth.
Hal ini untuk memastikan server dapat menangani banyak permintaan secara efisien dan stabil.
3. Menjaga keamanan website
Beberapa fungsi keamanan yang umum dilakukan oleh web server antara lain:
- Autentikasi dan Otorisasi: Memastikan hanya pengguna sah yang bisa mengakses sumber tertentu.
- Enkripsi: Melindungi data yang ditransmisikan antara server dan klien dengan mengenkripsinya.
- Firewall: Melindungi server dari serangan yang tidak diinginkan.
- Pemeriksaan Keamanan: Melakukan pemeriksaan terhadap permintaan HTTP untuk mendeteksi dan mencegah serangan.
4. Membersihkan cache website
Beberapa web server memiliki fitur caching yang menyimpan salinan statis dari halaman web.
Fitur ini berguna meningkatkan kinerja website dengan mengurangi beban server dan mempercepat waktu muat halaman bagi pengunjung.
5. Mencatat semua aktivitas website dalam bentuk log
Web server secara otomatis merekam setiap kejadian atau aktivitas yang terjadi di server dalam sebuah file yang disebut log.
File log ini berisi catatan rinci tentang berbagai aktivitas, seperti akses ke file, permintaan (request), error, dan informasi lainnya.
Log biasanya disimpan dalam format teks biasa (plain text) dengan struktur tertentu. Format yang umum digunakan adalah Common Log Format (CLF) dan Combined Log Format (CLF dengan referer dan user agent).
Setiap baris dalam log merepresentasikan satu kejadian.
Log ini dapat digunakan untuk memantau kinerja server, mendeteksi masalah, dan menganalisis trafik website.
Masalah Utama pada Keamanan Web Server
Melansir Astra, ada tiga masalah umum yang sering menyerang web server:
1. Serangan SQL Injection
SQL Injection atau Injeksi SQL adalah jenis serangan yang umum dan sangat berbahaya dengan tujuan mengambil alih kendali database.
Serangan ini terjadi ketika hacker memasukkan kode berbahaya–yang disebut “payload“– ke dalam input yang diberikan pengguna pada aplikasi web, dan aplikasi tersebut gagal membersihkan atau memvalidasi input tersebut dengan benar.
Inilah mengapa disebut “injeksi SQL”—penyerang menyuntikkan perintah SQL (muatan berbahaya) langsung ke dalam query yang akan dieksekusi oleh database.
Mengapa serangan ini sangat berbahaya?
Mari kita ilustrasikan dengan contoh:
Misalkan sebuah aplikasi memiliki tabel bernama ‘users’ dalam basis datanya.
Tabel ini memiliki kolom ‘username’ yang seharusnya berisi nama pengguna.
Namun, seorang hacker memanfaatkan celah keamanan dan memasukkan perintah SQL berikut ke kolom ‘username’:
SELECT * FROM users LIMIT 0,1;
Perintah SQL ini akan mengambil semua data dari tabel ‘users’ dan membatasinya hanya satu baris.
Nah, hacker bisa memodifikasi perintah ini untuk tujuan yang lebih jahat, misalnya:
- Mengambil informasi sensitif seperti kata sandi, informasi pribadi, atau data keuangan.
- Memodifikasi data dengan mengubah, menghapus, atau menambahkan data dalam database.
- Mengambil alih kendali server.
2. Serangan DoS
Serangan Denial of Service (DoS) bertujuan untuk melumpuhkan server sehingga tidak dapat diakses oleh pengguna yang sah.
Serangan ini bekerja dengan cara membebani server dengan trafik data yang sangat besar, hingga melebihi kapasitasnya dan akhirnya membuatnya tidak responsif.
Serangan ini sering kali memanfaatkan software berbahaya seperti bot atau virus untuk membanjiri jaringan korban dengan trafik atau membebani CPU server secara berlebihan.
Perangkat untuk melancarkan serangan ini bisa berupa komputer atau jaringan yang telah terinfeksi oleh virus atau software jahat lainnya.
Serangan DoS dapat menyebabkan berbagai dampak negatif, di antaranya kerugian finansial, gangguan operasional, dan kerusakan reputasi.
3. Cross-site scripting (XSS)
Cross-site scripting (XSS) adalah celah keamanan yang dimanfaatkan hacker untuk menyuntikkan kode berbahaya ke website.
Kode ini kemudian dieksekusi oleh browser pengguna yang mengunjungi situs tersebut.
Berbeda dengan serangan lain yang menargetkan server secara langsung, XSS memanfaatkan interaksi antara pengguna dan situs web.
Hal ini membuat hacker melakukan berbagai tindakan atas nama pengguna, salah satunya yang paling umum adalah mencuri cookie pengguna.
Cookie ini berisi informasi sesi, yang jika berhasil diperoleh oleh hacker, akan dimanfaatkan mereka untuk mengambil alih sesi pengguna dan beraksi seolah-olah mereka adalah pengguna tersebut.
Cara Menjaga Keamanan Web Server
1. Menggunakan kata sandi yang kuat dan rumit
Kata sandi adalah garis pertahanan pertama dalam mengamankan web server Anda.
Jika kata sandi mudah ditebak, maka semua upaya pengamanan lainnya akan sia-sia.
Mengapa kata sandi kuat sangat penting?
Hacker sering kali menggunakan metode brute-force atau dictionary attack untuk mencoba membobol kata sandi.
Brute-force adalah metode mencoba semua kombinasi karakter yang mungkin hingga menemukan kata sandi yang benar.
Sementara dictionary attack menggunakan daftar kata-kata umum atau kombinasi yang sering digunakan sebagai kata sandi.
Kata sandi yang kuat dapat mempersulit dan menggagalkan upaya-upaya tersebut.
Lalu, apa saja kriteria kata sandi yang kuat dan tidak mudah ditebak?
Kata sandi setidaknya harus memenuhi kriteria berikut:
- Panjang: Disarankan untuk menggunakan minimal 12 karakter, idealnya lebih panjang lagi.
- Kompleks: Kata sandi harus terdiri dari kombinasi:
- Huruf kapital (A-Z)
- Huruf kecil (a-z)
- Angka (0-9)
- Simbol (!@#$%^&*()_+=-`~[]{}|;’:”,./<>?)
- Unik: Jangan menggunakan kata sandi yang sama untuk akun berbeda, terutama akun root server. Jika satu akun berhasil dibobol, akun lainnya juga berisiko.
- Tidak Mengandung Informasi Pribadi: Hindari penggunaan informasi pribadi yang mudah ditebak seperti nama, tanggal lahir, nama hewan peliharaan, alamat, dan nomor telepon.
- Tidak Menggunakan Kata-Kata Umum: Jangan gunakan kata-kata yang ada di kamus atau kombinasi kata yang umum digunakan. Hacker memiliki daftar kata-kata ini dan akan mencobanya terlebih dahulu.
Hindari menggunakan kata sandi seperti password, 123456, namasaya123, tanggal lahir
Contoh kata sandi kuat dan rumit seperti ini: Tr@nsf0rm4t10n$, P@ssWOrdRUMIT#2024, bUkU-bIrU_t4Hun2025!
2. Menggunakan sertifikat SSL
SSL (Secure Sockets Layer) adalah teknologi yang menciptakan koneksi terenkripsi antara browser pengguna dan web server.
Proses ini melibatkan beberapa tahapan:
- Ketika Anda mengunjungi website yang menggunakan SSL (ditandai dengan https:// di awal URL dan ikon gembok di browser), browser akan meminta identifikasi server.
- Server merespons dengan mengirimkan salinan sertifikat SSL-nya ke browser.
- Browser memverifikasi keaslian sertifikat dengan memeriksa apakah sertifikat tersebut ditandatangani oleh CA yang terpercaya. Jika valid, browser akan menggunakan private key yang ada di sertifikat untuk mengenkripsi symmetric session key yang baru dibuat.
- Symmetric session key yang sudah dienkripsi tadi dikirimkan kembali ke server.
- Server kemudian mengenkripsinya dengan private key. Setelah itu, semua komunikasi antara browser dan server dienkripsi menggunakan symmetric session key. Nah, dengan begini, data yang ditransmisikan–seperti informasi login, data kartu kredit, dan informasi pribadi lainnya) diacak dan tidak dapat dibaca oleh pihak ketiga yang mencoba menyadap koneksi.
Jadi, adanya sertifikat SSL mencegah penyadapan dan pencurian informasi sensitif oleh pihak yang tidak bertanggung jawab.
Anda bisa memperoleh sertifikat SSL dari penyedia layanan SSL terpercaya dan terlengkap, seperti GudangSSL.
GudangSSL menyediakan berbagai produk SSL dari brand ternama, di antaranya Sectigo, RapidSSL, AlphaSSL, Geotrust, dan banyak lagi. Anda juga bisa memilih produk sesuai jumlah domain dan tingkat validasinya.
Pstt.. harga SSL di GudangSSL juga 30% lebih murah dari CA, lho!
3. Menonaktifkan akun root
Akun root pada sistem operasi berbasis Unix/Linux memiliki hak akses tertinggi dan dapat melakukan hampir semua tindakan di server.
Sebab itu, akun root menjadi target utama para hacker.
Jika berhasil mendapatkan akses ke akun root, mereka memiliki kendali penuh atas server Anda. Akibat kerusakannya bisa sangat besar.
Oleh sebab itu, Anda perlu menonaktifkan login langsung menggunakan akun root.
Setelah login root nonaktif, administrator akan terpaksa menggunakan akun pengguna biasa terlebih dahulu, kemudian menggunakan perintah sudo untuk menjalankan perintah yang membutuhkan hak akses root.
Ini menambahkan lapisan keamanan tambahan karena setiap penggunaan hak akses root akan tercatat dalam log sistem.
Jadi, Anda lebih mudah untuk audit dan deteksi aktivitas mencurigakan.
4. Menonaktfikan port network
Setiap layanan yang berjalan di server dan terhubung ke jaringan menggunakan port untuk berkomunikasi.
Layanan ini bisa berupa web server (port 80 dan 443), SSH (port 22), FTP (port 21), dan lain-lain.
Nah, setiap port pada server bisa dimanfaatkan oleh hacker sebagai titik masuk potensial.
Dengan menutup port yang tidak digunakan, Anda akan mengurangi permukaan serangan (attack surface) dan mempersulit hacker untuk menemukan celah keamanan.
Contohnya begini:
Misalkan server Anda hanya digunakan untuk hosting website.
Maka, port 80 (HTTP) dan 443 (HTTPS) harus tetap terbuka.
Jika layanan seperti FTP (port 21) atau Telnet (port 23) tidak digunakan, port-port tersebut harus ditutup.
Nah, dengan menutup port 21 dan 23, Anda mencegah hacker memanfaatkan celah keamanan yang mungkin ada pada layanan FTP atau Telnet, meskipun layanan tersebut tetap terinstal di server.
5. Selalu memperbarui software
Software, baik sistem operasi, aplikasi web server (seperti Apache atau Nginx), database server (seperti MySQL atau PostgreSQL), maupun bahasa pemrograman yang digunakan (seperti PHP atau Python), semuanya rentan memiliki celah keamanan.
Celah keamanan ini bisa berupa kesalahan dalam kode, logika pemrograman yang kurang tepat, bahkan desain kurang optimal yang dapat dieksploitasi oleh hacker.
Sebab itu, software developer secara berkala merilis pembaruan (update) yang bertujuan untuk menambal celah keamanan dan memperbaiki bug.
Lalu, bagaimana kalau Anda mengabaikan pembaruan tersebut?
Akibatnya, website Anda berisiko terkena serangan hacker, data diretas dan dicuri, serta kerugian finansial besar.
Anda tentu tidak mau hal itu terjadi, kan?
6. Tidak mengunduh file atau mengklik link yang tidak jelas asalnya
Salah satu celah keamanan yang sering dimanfaatkan oleh hacker adalah menyebarkan malware melalui file atau link yang mencurigakan.
Prinsipnya sederhana: hacker mencoba mengelabui Anda untuk mengunduh atau menjalankan file berbahaya, atau mengklik link yang mengarah ke website palsu yang dirancang mencuri informasi atau menginfeksi perangkat Anda.
Oleh sebab itu, Anda harus berhati-hati dan tidak mengunduh file atau mengklik link yang tidak jelas asalnya.
Rekomendasi Tools untuk Keamanan Web Server
Satu cara lagi untuk menjaga keamanan web server adalah menginstall tools keamanan.
Berikut kami berikan beberapa rekomendasi tools yang open source dan bisa diakses gratis:
1. Snort
Snort adalah Intrusion Detection System (IDS) dan Intrusion Prevention System (IPS) open source yang sangat populer dan andal.
Snort mampu memantau trafik jaringan real-time dan mendeteksi berbagai jenis serangan dan aktivitas mencurigakan.
Snort mendeteksi aktivitas mencurigakan, eksploitasi, dan serangan pada jaringan dengan memadukan analisis detail protokol komunikasi dan identifikasi pola yang tidak biasa dalam data jaringan.
2. Nmap
Network Mapper (Nmap) adalah network scanner yang dapat digunakan untuk memindai port terbuka, mendeteksi sistem operasi, dan mengidentifikasi layanan yang berjalan di server.
Meski bukan vulnerability scanner murni, Nmap dapat digunakan untuk mendeteksi beberapa celah keamanan umum.
3. OpenVAS
OpenVAS (Open Vulnerability Assessment System) adalah pemindaian keamanan open source yang komprehensif dan powerful.
OpenVAS banyak digunakan oleh profesional cyber security untuk mengidentifikasi celah keamanan pada sistem, jaringan, dan aplikasi.
OpenVAS bekerja dengan mengirimkan berbagai macam test probes atau request ke target yang dipindai.
Request dirancang untuk mengidentifikasi karakteristik tertentu dari target, seperti versi perangkat lunak yang digunakan, port yang terbuka, dan konfigurasi lainnya.
Berdasarkan respons yang diterima, OpenVAS membandingkannya dengan database yang rentan dan menentukan apakah ada celah keamanan yang cocok.
4. Sqlmap
Sqlmap populer digunakan untuk mengotomatiskan proses pendeteksian dan eksploitasi SQL Injection.
Sqlmap dapat secara otomatis mendeteksi berbagai jenis celah keamanan SQL Injection, seperti union-based, boolean-based blind, time-based blind, error-based, dan inline queries.
Tingkatkan Keamanan Web dengan SSL dari GudangSSL!
Seperti yang sudah kami singgung sebelumnya, salah satu cara menjaga keamanan web server adalah memasang sertifikat SSL.
Sebab, dengan memasang sertifikat SSL, Anda mencegah pihak tidak bertanggung jawab untuk menyadap informasi sensitif yang dikirimkan melalui website, seperti kata sandi dan informasi pribadi lainnya.
Pilih penyedia SSL terpercaya untuk website Anda, seperti GudangSSL!
GudangSSL menyediakan sertifikat SSL dari berbagai brand ternama dan terkemuka, seperti Sectigo, AlphaSSL, RapidSSL, Geotrust, Thawte, Globalsign, Certum, dan Symanthec.
Harga SSL di GudangSSL juga 30% lebih murah dari CA (Certificate Authority), lho! Misalnya, Sectigo PositiveSSL yang harganya mulai dari Rp180 ribu per tahun!
Kami juga memberikan garansi uang kembali 15 hari setelah SSL aktif. Anda jadi tidak perlu khawatir SSL bermasalah setelah diinstall!
Tunggu apa lagi? Segera pasang sertifikat SSL untuk keamanan website Anda!