HTML5 Güvenliği: HTML5 WebSocket Yeniliği

HTML5 standardı ile web dünyasına gelen bir diğer devrimsel nitelikteki yenilik de web uygulamalarının istemcilerin alt seviye kaynaklarına ulaşıp ağ iletişimi için soket açmalarını sağlayacak ara yüzün standarda eklenmesidir.

Böylelikle “bağlantısız protokol” olarak tanımlanan http üzerinde çalışan web uygulamaları “bağlantılı” bir alternatife sahip olmuştur. Bu soket arayüzü de “Aynı Alan Prensibi” ile çalışmakta ve tarayıcılar soket açtıkları alan ile soketi açan uygulamanın alanını eşleştirmektedir. Böylelikle daha önce tarayıcılara yüklenen Adobe Flash ve JAVA Applet gibi eklentilerle erişilen alt seviye kaynaklara JavaScript ile erişilebilecek, istemci ve sunucu arasında alternatif bir kanal açılabilecektir.

Yapısı itibariyle alanlar arası iletişim ile benzerlik gösteren web soket arayüzü, yine üzerinde uygulanabilecek saldırı senaryoları açısından da benzerlik göstermektedir. Barth ve arkadaşları [7] bu saldırı senaryolarını uygulamış ve bulgularını standart geliştiricileriyle paylaşmışlardır. Soket arayüzü özellikle güvenlik açısından henüz olgunlaşmamış bir yenilik olduğundan daha önceden destekledikleri halde Opera ve Firefox yeni sürümlerinden soket desteğini kaldırmışlardır.

 

HTML5 WebSocket Arayüzü

Standartta tanımlanan web soket arayüzünü kullanarak bir bağlantı oluşturabilmek için:

var conn=new
WebSocket(“ws://html5.websocket.com”);

cümlesi kullanılabilir. Kanal güvenliği gerekli olduğu durumlarda soket adresinde ws:// yerine wss:// kullanılmalıdır. Daha sonra bu bağlantı objesinin açma, kapama ve mesaj alma arayüzlerine ilgili fonksiyonlar bağlanarak soket arayüzü kullanılabilir. Soket arayüzü kullanarak sunucuya mesaj göndermek için de:

conn.postMessage(“Hello World!”);

fonksiyonu kullanılmalıdır. İstemci ile sunucu arasında bir soket açılmak istendiğinde, önce 80. portta HTTP üzerinden bir anlaşma sağlanır, daha sonra bu bağlantı istemci tarafından soket bağlantısı olarak başka bir porta yükseltilir. Bu mekanizma bağlantının güvenlik duvarı engelini aşması için gereklidir.

 

WebSocket Zafiyetleri

Web soket arayüzünün postMessage arayüzünde bahsedilen saldırılara karşı zafiyeti bulunduğu yine Barth ve arkadaşları tarafından gösterilmiştir. Web soketin postMessage arayüzünden farklı olarak alt seviye kaynaklara erişiminin olması onu daha güçlü ve aynı zamanda daha tehlikeli bir hale getirmektedir. Her ne kadar tarayıcı tarafından “Aynı Alan Prensibi”ne göre çalıştırılsa da, bahsedilen senaryodaki DNS-yeniden sorgulama saldırıları ile bu kontrol aşılabilmekte ve bundan sonrası saldırganın hayal gücüne kalmaktadır. Saldırgan bu noktadan sonra, ağ üzerinde makine ve port taraması yaparak başlayacağı saldırı işlemini bulduğu bir açıklık aracılığıyla ağ üzerindeki bir makineyi ele geçirmeye kadar varabilecek saldırıları da yine bu soket arayüzü üzerinden gerçekleştirebilmektedir. Barth aynı makalesinde soket bağlantısı için daha güvenli bir protokol önermiş ve önerisi HTML5 geliştiricileri tarafından incelemeye alınmıştır.

 

HTML5 WebSocket Güvenliği

HTML5 soket arayüzünde gerekli olan güvenlik kontrolleri tarayıcı tarafından yapılmaktadır. Tarayıcı uygulamaların yalnızca istemci tarafından uygulama alanına soket açmasına izin vererek olası saldırıların önüne geçmektedir.

Bu kontrollere rağmen geliştiricilerin dikkat etmesi gereken hususlar bulunmaktadır. Bunlardan en önemlisi hassas verilerin soket arayüzü üzerinde taşınacağı durumda güvenli soket arayüzü kullanılması gerektiğidir. Bu şekilde veriler kanal üzerinde şifrelenmiş bir şekilde taşınacak ve uçtan uca güvenlik sağlanmış olacaktır.

HTML5 standardında web soket arayüzü tanımı henüz olgunlaşmamış ve yaygın bir şekilde kullanılmaya başlanmamıştır. Firefox ve Opera bu arayüzdeki zafiyetlerden dolayı yeni sürümlerinde soket arayüzünden desteğini çekmiş ve standardın güvenli bir şekilde tanımlanmasını beklemeye başlamıştır.

JavaScript üzerinden soket seviyesinde istemci kaynaklarına erişim internet dünyası için yeni sayılabilecek bir uygulamadır. Geliştiricilere alternatif kanal ile sunucu iletişimi sağlayabilecekleri bir altyapı sunan soket arayüzü, kullanıcıların da kullanım kalitesini arttıracağı konusunda bir şüphe bulunmamaktadır. Fakat, soket arayüzü henüz tam manasıyla yaygınlaşmamış güvenliği açısından derinlemesine incelenememiştir. Kullanılmaya başlandıkça gerek tarayıcı gerçeklemeleri gerekse protokolün kendisi güvenlik açısından daha detaylı bir şekilde incelenebilecek ve olası zafiyetleri görülebilecektir. Güvenlik açısından belirli bir olgunluğa erişmeden soket arayüzünün kullanılması hassas verilerle çalışan uygulamalar için pek uygulanabilir durmamaktadır. Bunun yerine önce standardın olgunlaşması, daha sonra internette kullanımının yaygınlaşması beklenmelidir.

M. MEKİN PESEN

YAZAR:

Özel bir kurumda kıdemli bilgi güvenliği uzmanı olarak çalışan M. Mekin Pesen, Elektrik-Elektronik Mühendisliği lisans ve Bilgi Güvenliği Mühendisliği yüksek lisans diplomaları ile CISSP, ECSA, CEH ve CCSA sertifikalarına sahiptir. Kendisi siber güvenlik ve bilgi güvenliği genel başlıkları altında çeşitli konularda uzmanlaşmaktadır.


    

E-Bültene Kaydolun, Makaleler Posta Kutunuza Gelsin

Bu yazıyı başka hiçbir yerde ve şekilde yayınlayamazsınız ve/veya kullanamazsınız. Bu yazıyı kullanmanız, başka herhangi bir uyarıya gerek kalmadan her türlü hukuki sonucu daha en baştan kabul ettiğiniz manasına gelir.