Güvenlik Web Güvenliği

Bir Tıkla Değişir Hayatlar – Clickjacking 2

Bir Tıkla Değişmesin Hayatlar

Herkese tekrardan merhabalar. Bugün “Clickjacking ve Korunma Yolları” serimizin son bölümündeyiz. Bu bölümde sunucu taraflı ve tarayıcı tarafında basit ama etkili clickjacking önleme yöntemlerini göreceğiz.

[alert style=”yellow”]Okumadıysanız birinci bölüm için tıklayın: Clickjacking ve Korunma Yolları – 1[/alert]

Test Sayfası Oluşturalım

Clickjacking temel olarak hangi yollardan zaaf kullandığını biliyoruz. Burada diğer önemli husus “opacity” – “şeffaflık” değerlerinin bu elementler için sıfırlanmış olmasıdır. Şeffaflığı tam olan (ters orantı) bir elementi elbette ki önyüzde görmemiz mümkün değil. Ufak bir test dokümanı hazırlayalım. Dosya ismini kendinize göre girip .html uzantılı olarak kaydedin.

Örneğimizde bir adet span etiketi içerisinde göz boyayan bir link ve hemen üstünde de bir adresi açan (örnek için kod5.org) iframe nesnemiz mevcut. Aşağıda ekran çıktısını inceleyebiliriz.

ekran1

Şimdi ise şeffaflık / opacity değerini sıfırlamak için aşağıdaki değişikliği iframe nesnesi için uyguluyor ve sonuca bakıyoruz:

ekran2

Düşünelim, bu sayede acaba biz nereleri tıklayabiliriz ve sonuçları nerelere varabilir?

Önleyelim – Sunucu Üzerinde

Neyse ki bu durumu önlemek için bazı standartlar geliştirildi. Bunlardan en verimlisi sunucu tarafında yapılan X-Frame-Options değer atamasıdır. Bu ayar ve değerlerin Apache, nginx ve IIS üzerinde nasıl kullanılacağına bakalım.

Hangi değerler mevcut?

X-Frame-Options için 3 adet özellik tanımlanmıştır. Bunlar;

    • Deny Hiçbir frame nesnesinin çalışmaması için kullanılır
    • Allow-From uri : URI bazlı olarak frame nesnelerine izin vermek için kullanılır
    • SAMEORIGIN : Sadece kendi adresini kaynak olarak alan frame nesnelerine izin vermek için kullanılır. En etkili yöntem bu özellikle sağlanabilmektedir.

Apache HTTP sunucusu için httpd.conf dosyasında (eğer size özel hosting hizmetinizde kullanacaksanız .htaccess dosyasında);

nginx HTTP sunucusu için nginx.conf dosyasında;

IIS HTTP sunucusu için web.config dosyasında <Sysem.webServer> etiketi altında;

bu değişiklikleri yapıp yeniden sunucumuzu / (web) uygulamamızı yeniden başlatıyoruz. Ayrıca belirtilmeli ki bu HTTP başlığı şuan için aşağıdaki tarayıcı ve versiyonlarında desteklenmektedir.

desteklenen-tarayicilar

Önleyelim – Tarayıcı üzerinde

X-Frame-Options ayarını HTML meta etiketi olarak da kullanabiliriz. Fakat burada sadece iki değer kullanılabilmektedir. Bunlar ise DENY ve SAMEORIGIN değerleridir. Bu etiketi kullanmak için <head> etiketi altında aşağıdaki kodu girebilirsiniz;

Buna ek olarak ufak bir javascript kodu ile de bu zaafiyeti ilk adımında engelleyebiliriz fakat bu kod da aşılabilir.

Sonuç

Gün be gün yayılan sosyal medya kullanımı ile artan ve daha da devam edecek bu saldırılara karşı en önemli güvenlik önlemi basmadan önce en az 2 defa düşünmek ve her zaman dikkatli olmak olacaktır.

Her zaman için %99 güvenlik seviyesinden inmememeniz dileği ile, iyi bloglamalar.

Faydalı bağlantılar:
BGA Blog
OWASP Wiki – Clickjacking Defence Cheat Sheet
JavaScript.info Clickjacking
5 Ways Prevent to Clickjacking

Mozilla Developer X-Frame-Options
TheSiteWizard Apache X-Frame-Options