Rosetta Flash Tekniği

'iMuh@fiz

Özel Üye
11 Ağu 2012
11,010
4
31
Bakü
[FONT=Verdana, Arial, Helvetica, sans-serif]Rosetta Flash Tekniği Nedir?

Rosetta Flash, Same Origin Policy güvenliğinin bypass edilmesi sonucu oluşan CSRF açığının sömürülmesi için ortaya atılmış bir tekniktir. Michele Spagnuolo tarafından açığa çıkartılmış olan bu teknik aslında kendi içinde özel bir aracı barındırır. Dolayısıyla Rosetta Flash’ın bir araç olduğunu söylemek yanlış olmaz.

Rosetta Flash ile Adobe Flash Player kaynaklı açığın sömürülmesi mümkündür. Bu teknikte kullanılan araç özetle, orijinali binary olan bir SWF dosyasını sadece alfanümerik karakterlerden müteşekkil bir hale getirerek JSONP endpoint (uç noktalar)’lerini sömürür. Bu yolla, kurbanın zararlı domain’e tıklayarak yaptığı istek sonucunda, saldırganın veri çalabilmesi mümkün olur.

Önemli web sitelerinde (Google, Youtube, Twitter, Linkedin ...) bulunmuş olup, tekniğin ortaya çıkarılmasının ardından çoğu önemli web sitesi açığı kapatmışlardır. Ayrıca Adobe’nin kendisi de birkaç tane yama yayımlamıştır.


Rosetta Flash ile Alakalı Bazı Terimler

Same Origin Policy: Farklı origin (protokol + domain + port)’lerin birbirlerine erişmesini engelleyen web tarayıcı tabanlı bir kısıtlamadır. Bununla birlikte aynı origin’de bulunan kaynaklar kendi aralarında etkileşim kurabilirler.

JSONP: JSON veri formatının farklı origin’ler arasında kullanılmasını sağlamak için web geliştiriciler tarafından JSON-Padding tekniği kullanılır. Bir SOP aşma yöntemidir.

Rosetta Flash İsminin Kaynağı: Rosetta Stone (Taşı) olarak bilinen bu yazıt, üç farklı dilde yazılmıştır. Taşın keşfinden önce Hiyeroglif yazısı çözülememişken, taşın bulunması sonrasında araştırmacılar Yunanca versiyonuyla karşılaştırma yaparak Hiyeroglif yazısını çözümlemişlerdir. Yani bir nevi tercüme taşı olan Rosetta Stone; binary bir SWF dosyasının alfanümerik karakterlere dönüştürülmesine yardımcı olan aracın adı olmuştur. Bu yüzden teknik, Rosetta Flash olarak isimlendirilmiştir.


[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][FONT=Verdana, Arial, Helvetica, sans-serif]Zaafiyete Dair

Zaafiyetin sömürülmesine yönelik mantığın anlaşılması için şu birkaç madde göz önünde bulundurulmalıdır:

- Hassas bir domainde kullanıcılara SWF dosyası yükleme yetkisinin verilmesi önemli tehlikeler barındırır. Çünkü herhangi bir SWF dosyası Flash’la, kendi bulunduğu hosta ait domaine, crossdomain.xml kontrolü sağlamaksızın cookie taşıyan GET ve POST istekleri yapabilir. Yani açık kullanılarak, dikkatlice hazırlanan bir SWF dosyası upload edilir ve hassas verinin saldırganın domainine gönderilmesi mümkün hale gelebilir.

- JSONP saldırgana, yapılan URL isteğindeki callback parametresinin belirtilmesi yoluyla, bir endpoint’in çıktısına ait ilk byte’lerini kontrol etme izni verir. JSONP callback parametrelerinin çoğu izin verilen karakter kümesini “a-zA-z”, “_” ve “.” karakterleriyle kısıtlar. Rosetta Flash aracı, kısıtlanmış bu karakter kümesine odaklanır.

- SWF dosyaları, <object> etiketinin zorlanmasıyla saldırganın sitesine embed (gömülebilir) edilebilir. Böylece içerik bir Flash olarak görüldüğünden dosyanın çalışması sağlanır.

[/FONT]
2.png


1.png

[/FONT]

[FONT=Verdana, Arial, Helvetica, sans-serif][FONT=Verdana, Arial, Helvetica, sans-serif]Örneğin saldırgan, çalıştırılması istenen bir ActionScript 2 kodunu genişletilmiş bir SWF dosyasına dönüştürür ve bunu Rosetta Flash aracıyla alfanümerik hale getirir. Saldırgan SWF dosyasını ve Rosetta Flash çıktısını, yukarıda görüldüğü gibi, kendi domainine embed eder. Bununla birlikte kurbandan gelecek bağlantılara izin veren bir de crossdomain.xml dosyası tanımlar. URL kısmında, kurbanın cookie’siyle GET isteği yapan, açığın mevcut olduğu endpoint’in bulunduğu siteye ait domain yazılır. “sizdir” parametresi ise sızdırılmış verinin saldırganın belirlediği adrese POST isteğiyle gönderilmesini belirtir.


Rosetta Flash Aracı Nasıl Çalışır?

Özetle, binary halde bulunan SWF girdisi; zlib, Huffman Kodu ve ADLER32 algoritmalarının güçlendirilmiş şekilleriyle kullanılmasıdır. Bu algoritmalarla Rosetta Flash adındaki araç elde edilir.

3.png



Riski Azaltma ve Açığın Fixlenmesi

Birçok önemli firma açığını Adobe’nin yamasını beklemeden kapatmıştı. Adobe ise Flash Player 14 beta sürümüyle ilk yamasını yayımlamış (Temmuz 2014) ardından üç yama da yayımlayarak açığı Eylül 2015’te kapattığını duyurmuştu.

Ayrıca birçok framework açıktan zarar görmemek için kendi JSONP patch’lerini çıkardı. Tüm bunların dışında web site sahiplerinin alabileceği birkaç önlem ve yapabileceği fixleme yöntemi mevcuttur:

- Dikkat edilmesi gereken ilk nokta şu ki: hassas veri içeren domainlerde JSONP kullanılmaması gerekir.

- Sniffing saldırılarını önlemek için callback fonksiyonunun önüne yorum satırı (/**/) eklenmelidir.

- Sniffing saldırılarını önleme amacıyla modern web tarayıcıların çoğunda bulunan “X-Content-Type-Options: nosniff” HTTP header’i da döndürülebilir. Şayet JSONP uç noktası “application/x-shockwave-flash” değerine sahip olmayan bir Content-Type döndürürse, Flash Player SWF dosyasını çalıştırmayı reddedecektir.

- Mümkünse bir dedicated sandbox domaini kullanılmalı.

- Diğer bir önlem ise dosya indirmeye zorlayarak, endpoint’leri “Content-Disposition: attachment; filename=f.txt” header’i ile döndürmektir. Bu işlem, Adobe Flash 10.2 ve üstü versiyonlarda Flash Player’e “SWF çalıştırma!” demek için yeterlidir.[/FONT]



[/FONT]
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.