Hardening HTTP Security Headers Pada Linux Server

Tuesday, February 14, 2017

Haloo.. sebelumnya maaf karena jarang post. Sibuk dengan revisi laporan tugas akhir soalnya haha. Oke post ini adalah lanjutan dari post sebelumnya tentang hardening http-headers. Content Security Policy sendiri merupakan salahsatu komponen dalah hardening http-headers. Manfaatnya sendiri adalah untuk menghindari kerentanan jenis XSS, clickjacking, dan segala sesuatu yang outputnya dilihat atau dihasilkan di browser pengguna. 


Sekarang kita akan membahas apa apa saja yang perlu disetting pada http-header agar server lebih aman. Pada tutorial ini saya akan menulis fungsi fungsi apa saja serta bagaimana cara menerapkannya.

1. Content Security Policy
CSP membantu kita untuk mencegah eksploitasi jenis xss dan beberapa eksekusi script jahil eksternal lainnya macam js overlay dll. Untuk lebih jelasnya bisa kalian cek disini :

2. X-XSS-Protection
XSS Protection sudah didukung secara defult untuk browser modern. Namun jika kalian menambahkan rule ini ke http-header, maka browser lama pun akan dipaksa untuk memblokir serangan xss.
Penerapan pada server :
Enable in Nginx
add_header x-xss-protection "1; mode=block" always;

Enable in Apache
header always set x-xss-protection "1; mode=block"

3. HTTP Strict Transport Security (HSTS)
strict-transport-security adalah pengaturan tambahan yang membatasi web browser untuk mengakses server web hanya melalui HTTPS. Hal ini memastikan koneksi tidak dapat membangun melalui koneksi HTTP tidak aman yang bisa rentan terhadap serangan.
Penerapan pada server :
strict-transport-security: max-age=31536000; includeSubDomains; preload

4. X-Frame-Options
Rule ini membantu kita untuk memblokir clickjacking pada server dengan memblokir iframe pada web kita.
penerapan pada server :
Enable in Nginx
add_header x-frame-options "SAMEORIGIN" always;

Enable in Apache
header always set x-frame-options "SAMEORIGIN"

5. Public-Key-Pins
Tweaking ini mungkin sangat berguna untuk situs situs perbelanjaan online dan internet banking. public-key-pin memberitahu web browser untuk mengaitkan public keys dengan web server tertentu untuk mencegah serangan MITM yang berbahaya.
Catatan:
Saat ini fitur ini sudah ditiadakan/diabaikan oleh browser sehingga tidak dipakai pun tidak apa-apa.

6. X-Content-Type-Options
hal ini mencegal Internet Explorer dan Google Chrome melakukan sniffing dari tipe file yang kita akses. Hal ini mengurangi resiko pengguna mengupload file yang tidak sah ke server kita. Seperti memanipulasi nama file (contohnya : gambar.xxxjpg), yang akhirnya lolos dan tereksekusi sebagai backdoor secara normal.
Penerapan pada server :
Enable in Nginx
add_header X-Content-Type-Options "nosniff" always;
Enable in Apache
Header always set X-Content-Type-Options "nosniff"

7. Feature-Policy
Feature Policy tergolong security header yang masih baru sehingga beberapa sysadmin kemungkinan belum mengupdate header security nya. Header security ini merupakan fitur baru yang memungkinkan situs untuk mengontrol fitur dan API mana yang dapat digunakan di peramban.
Penjelasannya bisa dilihat disini:


Setelah semua nya disetting, kalian bisa melakukan testing seberapa aman respon http-headers kalian melalui salahsatu link berikut :
  1. https://securityheaders.io/
  2. https://www.htbridge.com/websec/
  3. https://httpsecurityreport.com/
  4. https://github.com/riramar/hsecscan
  5. https://hackertarget.com/http-header-check/
  6. https://tools.keycdn.com/curl

Seperti yang kita ketahui, melakukan hardening terhadap server yang kita kelola sangatlah penting. Hal ini sangat membantu untuk mencegah serangan serangan dari pihak yang tidak bertanggung jawab.
Baiklah sekian tutorial singkat kali ini, jika ada yang ditanyakan silahkan komentar.

Artikel Terkait Linux ,Security ,Server

1 comment:

  1. Terima kasih atas artikelnya.
    Yang ingin saya tanyakan bisakah dibahas juga caranya pada web server Tomcat? Berhubung yang saya lihat kode-kode tersebut diatas lebih ditujukan untuk web server Apache dan Nginx
    Terima kasih.

    ReplyDelete