| Missing X-Frame-Options in Spring Açıklığı (CWE-1021) | |||||
| Bu makalede Missing X-Frame-Options in Spring (CWE-1021), yani Spring Framework'ünde Eksik X-Frame-Options Başlığı açıklığı anlatılacaktır.
Açıklık Önem Derecesi: Orta Açıklığın Etkisi: Clickjacking saldırılarına karşı savunmasız kalma Açıklığın Açıklaması: Clickjacking web site ziyaretçilerinin farkına varmadan farklı bir web sayfa öğesine tıklamaları sonucu yaşanan saldırılara denir. Birçok clickjacking saldırı türü vardır. Bunlar arasından çoğu metot olarak html iframe’lerle alakalı sömürü (exploitation) yolunu takip ederler ve bu saldırılara karşı önlemler de sayfa frame’leme üzerine yoğunlaşır. Clickjacking saldırı türlerinden birini ifade edecek olursak örneğin bir saldırganın tıklanabilir bir nesnenin (örn; butonun veya linkin) üzerinde transparan (şeffaf / görünmez) bir iframe koyması bir clickjacking saldırısı türüdür. Bu clickjacking saldırısında sadece tıklanabilir nesne sayfada görünür, fakat bu tıklanabilir nesnenin üzerinde şeffaf / görünmez bir iframe vardır. Dolayısıyla bir kullanıcı tıklanabilir nesneye tıkladığında tıklanabilir nesne yerine üzerindeki şeffaf / görünmez iframe’e tıklamış olur. Böylece kullanıcı istemediği bir eylemi gerçekleştirebilir. Clickjacking için bahsedilen saldırı türüne dair bir senaryo örneği vermek gerekirse örneğin bir ziyaretçi zararlı bir web sitesinde bir formu kapamak için butona tıklamak ister. Ziyaretçi butona tıkladığında butona tıkladığını düşünür, fakat bunun yerine üzerindeki şeffaf iframe’e tıklar ve bir truva atı indirir, veya banka hesabına para transfer eder, veya bilgisayarındaki yerleşik mikrofonunu ve webcam’ini açar. Bu örnek özelinde zararlı web sitesi bilinen bir legal web sitesinin sahte kopyası olabilir. Bu clickjacking saldırısı türünü yapabilmek için saldırgan zararlı web sitesini internette eposta yoluyla veya benzer farklı yollarla paylaşabilir. Daha sonra kullanıcılar sitedeki kapat butonuna tıkladıklarında iframe’e tıklamış olurlar ve böylece saldırganın istediği eylemi gerçekleştirmiş olurlar. Aynı saldırı türüne dair bir başka senaryo örneği vermek gerekirse legal bir web site içerikleri zararlı bir web sitesinde iframe’lenerek kullanılabilir. Örneğin legal Facebook sitesinin like ve share butonları zararlı bir web sitesinde tıklanabilir bir nesnenin üzerine şeffaf olarak konulabilir. Böylece kullanıcılar zararlı web sitesinde tıklanabilir nesneye tıkladıklarında aslında zararlı web sitesindeki içerik için Like veya Share butonlarından birine basmış olurlar. Kullanıcıların bu beğenme veya paylaşma işlemi kullanıcı facebook profillerine yansır, bu şekilde şüpheli içerik yayılabilir. Zararlı web site sahibi like veya share kasarak zararlı web sitesine daha fazla kullanıcı ve potansiyel kurban çekebilir. Bu clickjacking saldırı senaryosunda önceki senaryoya nazaran doğrudan legal bir web sitenin suistimal edilmesi söz konusudur. Clickjacking tek tip bir saldırı değildir. Geniş bir çeşitlilikte atak vektörüne ve tekniğine sahip bir saldırıdır. Genellikle "UI redress" saldırısı (kullanıcı arayüzü yerine koyma saldırısı) olarak adlandırılır. Saldırılar üst üste binen içeriğin kullanımına bağlı olarak genel itibariyle iki kategoriye ayrılabilir. Overlay-based (kaplama bazlı) saldırılar, ki bu en popüleridir, bir de şeffaf / görünmez iframe’lerde sayfaları gömme, ki bu en yaygın kullanılan teknik yaklaşımdır. Overlay-based (kaplama bazlı) clickjacking’de birkaç adet ana kategori mevcuttur.
Legal web uygulama sahipleri web uygulamalarının clickjacking adı verilen saldırılarla suistimal edilmemesi için önlem uyguladıklarında saldırganlar legal web uygulamada kar elde edemezler, legal web uygulamayı zarara uğratamazlar ve legal web uygulamadaki diğer kullanıcıları zarara uğratamazlar. Kısaca web uygulamalarının clickjacking saldırılarında kullanılmasına mani olmuş olurlar. Açıklığın Önlemi: Java uygulamalarda - Spring Framework’ünde - x-frame-options ayarı şu şekilde uygulanabilir: Java:
// Adding X-Frame-Options in Spring Security
// Using Java Configuration
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.headers()
.frameOptions();
}
}
XML:
// Adding X-Frame-Options with parameters
// in Spring Security Using XML Configuration
<http>
<!-- ... -->
<headers>
<frame-options policy="DENY"/>
</headers>
</http>
Eğer uygulamada iframe'leme unsuru mevcutsa / kullanılıyorsa şu şekilde alternatif kısıt ayarı ile hem kullanılan iframe'ler kullanılmaya devam edilebilir hem de güvenlik sağlanabilir. Java: http.headers().frameOptions().sameOrigin(); XML:
// Adding X-Frame-Options with parameters
// in Spring Security Using XML Configuration
<http>
<!-- ... -->
<headers>
<frame-options policy="SAMEORIGIN"/>
</headers>
</http>
Yararlanılan Kaynaklar:
|
|||||
Bu yazı 25.10.2025 tarihinde, saat 08:39:00'de yazılmıştır.
|
|||||
|
|||||
| Yorumlar |
|||||
| Henüz yorum girilmemiştir. | |||||
| Yorum Ekle | |||||
Bu yazı 25.10.2025 tarihinde, saat 08:39:00'de yazılmıştır.