Mengenal 6 Jenis Security Header
Security Header adalah arahan yang digunakan oleh aplikasi web untuk mengonfigurasi pertahanan keamanan di browser web. Berdasarkan arahan ini, browser dapat mempersulit eksploitasi kerentanan sisi klien seperti Cross-Site Scripting atau Clickjacking. Header juga dapat digunakan untuk mengonfigurasi browser agar hanya mengizinkan komunikasi TLS yang valid dan menerapkan sertifikat yang valid, atau bahkan menerapkan menggunakan sertifikat server tertentu.
Respon header normal mengeluarkan status yang disebut HTTP 200. Setelah itu situs web Anda dimuat di browser pengguna. Namun, jika situs web Anda mengalami kesulitan maka server web Anda mungkin mengirimkan header HTTP yang berbeda. Misalnya, mengirim kesalahan server internal 500, atau kode kesalahan 404 tidak ditemukan.
Mengapa Menggunakan Security Header?
Perangkat lunak bot otomatis terus-menerus menyelidiki dan menguji situs web untuk kelemahan keamanan. Kerentanan ini dapat diperkenalkan oleh sistem manajemen konten, oleh pustaka JavaScript yang digunakan untuk menambah fungsionalitas, dan untuk kelemahan keamanan yang diperkenalkan oleh plugin atau tema.
Situs web yang menggunakan security header dikatakan dikeraskan terhadap ancaman keamanan. Meskipun situs web dapat bertahan tanpa menggunakan tajuk keamanan dengan terus memperbarui komponennya dan menggunakan plugin keamanan, melakukan hal itu akan membuat situs web dan pengunjung situs berisiko terhadap risiko keamanan.
Misalnya, plugin keamanan tidak dapat menghentikan injeksi iklan yang merampok pendapatan iklan pemilik situs. Mungkin alasan terbaik untuk menggunakan tajuk keamanan adalah karena relatif mudah diterapkan dan memastikan bahwa situs web tetap berjalan normal.
Jenis-Jenis Security Header
1. Content-Security-Policy (CSP)
Respon HTTP yang digunakan browser untuk meningkatkan keamanan halaman web. Header Content-Security-Policy memungkinkan Anda membatasi seperti JavaScript, CSS atau apa pun yang dimuat browser. CSP pertama kali dirancang untuk mengurangi serangan Cross Site Scripting (XSS), kemudian pada versi berikutnya dapat digunakan untuk melindungi serangan Clickjacking.
Eksploitasi Cross-Site Scripting (XSS) terjadi ketika peretas memanfaatkan celah keamanan untuk mengunggah skrip berbahaya ke situs web yang kemudian diunduh ke browser korban. Serangan XSS memanfaatkan kelemahan dalam sistem manajemen konten yang memungkinkan input tak terduga diinjeksi karena sanitasi file input pengguna yang tidak memadai.
Misalnya, biasanya, formulir email harus diberi kode untuk mengharapkan masukan yang dibatasi. Formulir yang dikodekan dengan buruk dapat mengizinkan beberapa input lain yang kemudian dapat menyebabkan injeksi file berbahaya.
Image : Imperva |
2. Strict-Transport-Security Header (HSTS)
Strict-Transport-Security Header juga disebut HTTP Strict Transport Security header (HSTS). Banyak situs web hanya memiliki pengalihan 301 dari HTTP ke HTTPS. Tapi itu tidak cukup untuk menjaga keamanan situs web karena situs web masih rentan terhadap serangan man-in-the-middle.
HSTS mencegah penyerang menurunkan versi koneksi HTTPS ke koneksi HTTP yang kemudian memungkinkan penyerang memanfaatkan pengalihan yang tidak aman.
Misalnya, jika seseorang mengetik di example.com untuk mengakses situs, tanpa benar-benar mengetik di bagian https (atau mereka hanya mengetik http karena kebiasaan), maka ada peluang untuk serangan man-in-the-middle.
Serangan semacam itu dapat membahayakan koneksi pengunjung situs ke situs web dan setiap informasi sensitif yang dipertukarkan antara pengunjung dan situs web menjadi terlihat oleh penyerang. Misalnya, penyerang dapat mencegat cookie yang berisi informasi sensitif seperti kredensial login.
Header HSTS mencegah hal ini terjadi dengan memaksa browser untuk sama sekali tidak menerima koneksi HTTP. Header HTTP Strict Transport Security (HSTS) memberi tahu browser bahwa seluruh situs web hanya boleh diakses oleh protokol HTTPS yang aman.
Image : Acunetix |
3. X-Content-Type-Options
Header keamanan ini menghentikan jenis eksploit tertentu yang dapat terjadi, misalnya, melalui konten buatan pengguna yang berbahaya. Browser dapat "mengintip" jika suatu konten berupa gambar (.jpg), film (.mp4), atau teks, HTML, JavaScript, dan jenis konten lainnya yang dapat diunduh dari situs web.
"Sniffing" memungkinkan browser mengunduh elemen halaman web dan merendernya dengan benar, khususnya dalam situasi ketika metadata yang diperlukan browser untuk merender elemen tersebut hilang. Sniffing memungkinkan browser untuk mencari tahu apa elemennya (gambar, teks, dll.) Dan kemudian merender elemen itu.
Namun, peretas akan mencoba mengelabui browser agar berpikir bahwa file JavaScript yang berbahaya sebenarnya adalah gambar, memungkinkan browser mengunduh file dan kemudian mengeksekusi file tersebut, menyebabkan sejumlah hasil negatif bagi pengunjung situs tersebut, terutama dengan apa yang dikenal sebagai a Drive-by Download Attack.
Header X-Content-Type-Options dapat menghentikan itu dan serangan terkait lainnya dengan menonaktifkan kemampuan browser dari "sniffing" untuk tipe konten.
4. X-Frame-Options
Header keamanan X-Frame-Options membantu menghentikan serangan click-jacking.
Click-jacking menurut Mozilla adalah :
Ini dapat digunakan, misalnya, untuk mencuri kredensial login atau untuk mendapatkan izin tanpa disadari pengguna untuk menginstal malware.”
Header X-Frame-Options berfungsi dengan mencegah halaman web dirender dalam iframe, misalnya. Header X-Frame-Options penting untuk melindungi pengunjung situs Anda serta reputasi situs Anda.
Laman web OWASP tentang pembajakan klik menjelaskan bagaimana Adobe Flash menjadi korban serangan pembajakan klik yang memungkinkan peretas mengambil kendali mikrofon dan kamera, sehingga memperkuat reputasi negatif Flash sebagai mimpi buruk keamanan.
5. Referrer-Policy
Tujuan dari header Referrer-Policy adalah untuk memungkinkan penerbit situs web mengontrol informasi apa yang dikirim saat pengunjung situs mengklik tautan untuk mengunjungi situs web lain.
Ketika pengunjung situs mengklik tautan dan mendarat di situs lain, browser pengunjung memberikan informasi tentang halaman web apa yang dikirim oleh kunjungan itu.
Ketika Anda melihat log server Anda, informasi perujuk dikirim yang memberi tahu situs apa yang mengirim pengunjung. Namun, ada beberapa situasi di mana URL situs yang merujuk pengunjung ke pengunjung lain dapat berisi informasi sensitif yang dapat dibocorkan ke pihak ketiga.
Cara kerja Referrer-Policy adalah dengan membatasi berapa banyak informasi yang dikirim setelah pengunjung situs mengklik tautan. Penerbit situs web dapat memilih untuk tidak mengirim informasi apa pun kepada perujuk, mereka dapat memilih untuk mengirim hanya nama domain atau mereka dapat mengirim seluruh rangkaian URL.
Ada delapan arahan yang dapat dikirim menggunakan header Referrer-Policy:
- Referrer-Policy: no-referrer.
- Referrer-Policy: no-referrer-when-downgrade.
- Referrer-Policy: origin.
- Referrer-Policy: origin-when-cross-origin.
- Referrer-Policy: same-origin.
- Referrer-Policy: strict-origin.
- Referrer-Policy: strict-origin-when-cross-origin.
- Referrer-Policy: unsafe-url.
Pengaturan kebijakan perujuk yang umum adalah Header "no-referrer-when-downgrade" yang berarti bahwa informasi perujuk akan dikirim ke URL tepercaya yang ada di HTTPS tetapi tidak ada informasi perujuk yang akan dikirim ke situs web HTTP yang tidak tepercaya.
6. Permissions-Policy
Header Permissions-Policy memungkinkan situs web untuk menentukan fitur browser web mana yang harus diizinkan untuk berfungsi. Ini dapat membantu meningkatkan privasi pengguna (misal: menonaktifkan mikrofon) dan juga dapat digunakan untuk menerapkan praktik terbaik (misal: memblokir gambar yang terlalu besar).
Cara Menerapkan Security Header
Ada beberapa cara untuk menyetel tajuk keamanan, dan salah satu cara yang populer adalah dengan file .htaccess. Manfaat menggunakan file .htaccess adalah menghemat penerbit dari mengunduh plugin lain.
Plugin dengan kode yang buruk dapat menjadi risiko keamanan, sehingga meminimalkan jumlah plugin yang diinstal dapat bermanfaat.
Setiap implementasi security header akan berbeda sesuai dengan spesifikasi masing-masing website, terutama Content-Security-Policy (CSP).