Melindungi Situs dari Clickjacking attack di Nginx


Berawal dari masalah situs teman saya Ramdziana Feri Yustitianto pemilik situs kabarlinux.web.id yang mana situsnya tersebut di-iframe-kan secara menyeluruh oleh situs lain. Akibatnya, domain lain dapat mengakses situs kabarlinux tersebut tanpa harus masuk ke laman aslinya.

Berikut ini saya sedikit berikan pengenalan mengenai apa itu Clickjacking attact. Clickjacking attact atau dikenal juga dengan sebutan UI redress attact adalah serangan yang memanfaatkan lapisan transparan yang mana bertujuan mengelabui agar ketika pengguna mengklik tombol atau tautan pada situs lain seakan seperti situs asli. Dengan demikian, penyerang bermaksud membajak situs tersebut dengan routing mereka ke situs lain, kemungkinan besar dimiliki oleh aplikasi lain, domain, atau keduanya. Teknik umum yang mereka lakukan adalah dengan teknik iframe.

Gambaran teknik dari clickjacking attact seperti berikut:

clickjacking_diagram-724769

Sumber gambar dari: https://4.bp.blogspot.com/_yNUEUpiUj0A/S-tzfELyenI/AAAAAAAAHP0/FWCRi9frdgM/s1600/Clickjacking_diagram-724769.jpg

Tulisan kali ini saya akan memberikan sedikit tips trik mengenai cara mengamankan situs Anda, khusus untuk pengguna Nginx, dengan memanfaatkan fungsi X-Frame-Options di header suatu situs dari pengaturan Nginx.

Pertama-tama kita masuk ke Pengaturan Nginx. Perlu diketahui beberapa distro meletakan konfigurasi Ngix di lokasi yang berbeda-beda.

Konfigurasi hampir di semua distro GNU/Linux mainstream.

sudo vi /etc/nginx/nginx.conf

Khusus untuk pengguna Debian/Ubuntu atau derivatifnya. Anda bisa memasang pada konfigurasi di atas atau juga bisa pada setiap virtualhost. Yakni:

sudo nano /etc/nginx/sites-availables/default

Setelah itu tambahkan:

server {
...
add_header X-Frame-Options "SAMEORIGIN";
...
}

Lihat seperti gambar di bawah ini:

situsali-nginx-cj

Berikut ini ada tiga opsi dalam menetapkan pada X-frame-options:

  1. SAMEORIGIN Pengaturan ini hanya membolehkan pada halaman dirinya sendiri atau halaman original
  2. DENY Pengaturan ini akan menolak suatu halaman yang menampilkan situs Anda dalam suatau frame atau iframe.
  3. ALLOW-FROM URI Pengaturan ini hanya membolehkan mempilkan dari tautan spesifik halaman original.

Jika sudah seperti gambar di atas, langsung saja Anda restart Nginx Anda:

Pengguna Systemd

sudo systemctl restart nginx

Pengguna Non Systemd

sudo service nginx restart

Untuk mengetahui apakah Anda sudah berhasil melindungi situs Anda dari Clickjacking Attack. Coba buat berkas HTML dengan kode di bawah ini:

<DOCTYPE html>
<head>
<title>Test</title>
</head>
<frameset rows="100%,*" border="0">
<frame src="https://situsAnda.com" frameborder="0" />
</frameset>
</html>

Jika hanya menampilkan whitescreen (halaman putih) artinya Anda telah sukses.

Semoga bermanfaat 😬

Sumber

Tulisan ini bersumber dari tulisan saya sendiri yang sebelumnya saya tulis di Linuxku.com (https://www.linuxku.com/2016/10/melindungi-situs-dari-clickjacking.html) . Saya tuliskan ulang di sini, dengan sedikit penyuntingan.