top of page

Edepsiz Saldırı: Clickjacking

  • İbrahim Mert COŞKUN
  • Nov 24, 2018
  • 3 min read

Selamlar. Uzun süren bir "Vize" haftasından sonra tekrardan yazılarımı yazmaya geri döndüm. Bu yazımda hemen hemen hep karşımıza gelen ama aslında işin aslı astarını bilmediğimiz bir saldırı türü olan "Clickjacking" saldırısına değineceğiz.

Genelde bir siteye girdiğimiz zaman karşımıza bir reklam, pop-up veya bir freme'i belli bir transparan haline getirerek asıl içeriğin üzerine eklenir ve bizleri de bu alana tıklmamamıza zorunlu bırakır. Genelde internetten film izlerken bu durum ile sık sık karşılaşırız. Play tuşuna bastığımız zaman karşımıza ya bir reklam ya da farklı bir pencere gelir. Clickjacking; internet kullanıcıların farkında olmadan tıklama yaptıran bir saldırı türüdür. Yani kısaca tıklamak istediğimiz alanın üzerine çok şeffaf veya görünmeyecek şekil de bir "iframe" koyarak avını bekler. Kurban bu "iframe" tıkladığı zaman arka planda ki kod parçası çalışmaya başlar.

Clickjacking farklı amaçlı saldırı türleri için kullanılabilir. Bu saldırgan kişinin niyetine bağlıdır. Kimi saldırı türleri sadece reklama tıklatarak 'gelir' elde etmeye çalışırken kimi saldırganlar ise işi daha ileri götürerek web kameranıza erişim sağlamaktan tutun da sisteminize bir trojan da yedirebilir. Ya da sosyal medya hesapları üzerinden işlemler gerçekleştirebilir. Bu iş tamamen saldırganın gönlüne kalmış bir şeydir.

Saldırının hedef kitlesi son kullanıcıya baktığından özellikle bilinçli kullanıcıların üstesinden gelebilecek bir olay. Ancak her ne kadar bilinçli olunsa da şeffaflık (opacity=0) olarak ayarlandığı zaman siz görseniz de görmeseniz de eğer tıklanmak istenilen yere konulduysa siz her türlü o bağlantıya tıklayacaksınız.

Nasıl Korunulur?

Günümüzde W3C bunun için belirli standartlar getirmeyi planlıyor ve geliştiriyor. Ayrıca mevcut olan saldırıların önüne de geçmesini hedefliyor. Ancak bu standartlar henüz tam olarak belirlenemedi. Clickjackin'in önüne "tamamen" geçmek mümkün mü? Bilmiyorum. Gelişen teknoloji ve yapılan çalışmalar, standartlar neler getirir bilenemez. Ancak yine de basit önlemler alınarak önüne geçilebilir. Bu önlemler;

- Her gördüğünüz reklam, pop-up veya bağlantıya tıklamayın.

- Şüpheli gördüğünüz sosyal medya hesaplarının bağlantılarını tıklamayın.

- Bazı internet sitelerini tarayan ve herhangi bir ketenperenin olup olmadığını belirten bazı servisler var (safeweb.norton.com) bu gibi servisleri kullanarak güvenliği sağlayabilirsiniz.

Daha da?

Her bağlantı HTTP/HTTPS ile sağlanır. Bu noktada HTTP de "Güvenli başlık (header) kullanımı" oldukça önem arz etmektedir. (https://www.netsparker.com.tr/blog/web-guvenligi/turkiyede-http-guvenlik-headerlerinin-kullanimi/)

Bahsedilene göre Clikcjacking saldırısından korunmak için bir çok yol denenmiş ve bunlardan en başarılı bulunanı "X-Frame Options" 2009 yılında kullanılmaya başlanmıştır. Bu saldırıdan korunmak için X-Frame Options'larını kullanılabilir. Bunun da alabileceği üç değer vardır; DENY, SAMEORIGIN, ALLOW-FROM URL

Klasik bir Clickjacking kodu şöyledir?

<html> <body> <iframe src="vulnerable-site.com/dangerous/function/" style="opacity: 0;"></iframe> <button>Click for free iPad</button> </body> </html>

Mantık çok basit. Eğer siz bunun önüne geçmek istiyorsanız bu noktada X-Frame Options'larını kullanabilirsiniz. Günümüz tarayıcıları ilk olarak başlık bilgilerine bakarlar. Bundandır ki "HTTP Header" güvenliği önem arz etmektedir. Clikcjacking her ne kadar pentest'lerde risk seviyesi "düşük" olarak kabul görülse de bu sayfanın önem derecesine göre değişebilir. Bir önlem olarak da istemci tarafında görünmez bir içeriğe tıkladığınızda sizi uyaran bir eklenti de edinebilirsiniz. Ancak siz her ne kadar uğraşsanız da bazen işin kod kısmında değişiklikler yapmanız gerekebilir. Yapabilecekleriniz;

Sitenize hiç bir zaman iframe etiketleri kullanılmasına izin vermeyin. Bunu Optionslar ile kullanmak istersek;

X-Frame-Options: DENY Content-Security-Policy: frame-ancestors 'none'

Yukarıda da bahsettiğimiz gibi tarayıcılar ilk olarak "Header" kısmına bakarlar. Yanlış hatırlamıyor isem W3C tarafından geliştirilen "İçerik güvenliği politikası"nı daha spesifik bir elek olarak da kullanabilirsiniz. Ancak bu protokol hala daha yeterli kadar gelişebilmiş değil. Dolayısıyla, her iki üstbilgiyi de eklemek en iyisidir. Bunlardan hiçbirini desteklemeyen (çoğunlukla eski) tarayıcılar olduğundan sitenizin gerçekten en iyi site olup olmadığını kontrol etmek için bir JavaScript snippet'i eklemek de iyi bir şeydir. OWASP, tıklama önleyici komut dosyalarının tüm sürümlerinin bir geçmişine sahiptir. Ancak işinizi garantiye almak istiyorsanız şunu kullanabilirsiniz;

<style id="antiClickjack">body{display:none !important;}</style> <script type="text/javascript"> if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } </script>

Ancak şunu da unutmayın ki bir scripte güvenmeyin. Saldırgan "JavaScript" kodunu devre dışı bırakmak için türlü türlü çakallıklara sığınabilir. Örneğin sitenizi bir sanal alan iframe'e yükleyerek veya tarayıcının kendisine karşı anti-XSS koruması kullanarak bunun da üstesinden gelebilir.

Options'lar üzerinden devam edelim;

Sitenize sadece belirli alan adlarının yüklemesine izin verin. Bunu anlamı; Genellikle sitenizin aynı alan adında bir iframe'e yüklenmesini istersiniz. Bu durumda, aşağıdaki HTTP başlıklarını yanıtlarınızda kullanabilirsiniz:

X-Frame-Options: SAMEORIGIN Content-Security-Policy: frame-ancestors 'self'

Hee derseniz ki "abi farklı bir alan adından, güvendiğim alan adından da yükleme yapayım" derseniz o zaman size şöyle bir kod verelim;

X-Frame-Options: ALLOW-FROM https://different-domain.com Content-Security-Policy: frame-ancestors different-domain.com

Bu yöntemler ile beraber "içerik güvenliği politikası"nı kullanmak çok daha faydalı olacaktır. Ancak ne yazık ki bu politika eski sürüm tarayıcılar da çalıştığı söylenemez (IE 11 ve öncesi gibi) Hangi tarayıcıların ve sürümlerinin desteklediğini görmek için aşağıda ki linklere bakabilirsiniz.

Clickjacking ve daha nice kötü amaçlı saldırılara gelmemeniz dileğiyle...

Yararlandığım Kaynaklar;

https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet

https://www.researchgate.net/publication/307931790_Analysis_of_HTTP_Security_Headers_in_Turkey

https://techblog.topdesk.com/security/developers-need-know-clickjacking/

https://blog.raxis.com/2018/04/19/web-attacks-clickjacking/


Comments


Dünya üzerinde haksızlığa uğrayan, yardım bekleyen, Hak arayan onca mazlumun yanında bu sitenin haklarının pekte bir önemi yoktur. Tüm yazıları kullanabilirsiniz.

bottom of page