Kelime Anlamı Gibi Ürkütücü: Spook.js Nedir?

 

Baktığınızda, tüm kimlik avı saldırılarının temel bir mantığı vardır: Bir bağlantıya tıklarsınız, kötü niyetli bir sayfaya gidersiniz, bazı bilgileri girersiniz ve bu bilgileriniz bir saldırgan tarafından çalınır. Peki sizce şu mümkün mü: Bir bağlantıya tıklıyorsunuz ve verileriniz bir saldırgan tarafından çalınıyor…


Evet, bu maalesef mümkün. Günümüzde kurbanın herhangi bir şey yapmasına gerek kalmadan temel bir CPU özelliğinden yararlanarak veri çalan kötü amaçlı sayfalar  bulunuyor ve bu söz konusu güvenlik açığının düzeltilmesi, imkansız değilse bile oldukça zor.

2018 yılında bir grup araştırmacı, Spectre güvenlik açığının ilk iki türünü ortaya çıkararak söz konusunu açıktan faydalanmanın teorik olarak mümkün olduğunu kanıtladılar. Üç yıl sonra yani Eylül 2021’de, Spectre v1.1’in kullanıldığı gerçek hayattaki ilk saldırıyı gördük. Spook.js olarak bilinen saldırı oldukça karmaşık bir konsepte sahip olsa da elimizden geldiğince bunu basitleştirmeye çalışacağız.

Spectre v1’in Geçmişi


Spectre güvenlik açığı logosu

Bu aileye ait ilk iki saldırının — Spectre ve Meltdown — haberi 2018’de geldi. Saldırılar, tüm modern CPU’larda bulunan, komut yürütmeyi hızlandırmak için tasarlanmış dallanma öngörüsü (branch prediction) mekanizmasından yararlanıyordu.

Bir kullanıcı, bir internet sitesinde oturum açmak için parolasını girdiğinde arkada, parola doğruysa bir dizi komut, doğru olmaması durumunda ise başka bir dizi komut yürütülür. Bununla birlikte — dallanma öngörüsünün devreye girdiği yer tam da burasıdır — doğru olup olmadığına ilişkin geri dönüş almadan önce CPU, büyük olasılıkla çalıştırması gerektiğini düşünen komut setini yürütmeye başlar.

Örneğimizde, parola daha önce yüzlerce kez doğru girildiyse, CPU bu sefer de farklı olmayacağını varsayar. CPU’nun öngörüsü doğru çıkarsa, kullanıcı bir performans artışı sağlamış olur. Yanlış çıkarsa da, CPU varsayımsal olarak yürütülen komutları atar ve diğer komut setini çalıştırır.

Bir Spectre güvenlik açığı saldırısında, programın erişimi olmayan bir veri alanını okuma girişiminde bulunulur. Saldırının ilk aşamasında, açık erişim veri alanlarına çoklu çağrılar yapılır, bu sayede dallanma öngörü sistemi yasaklı okuma işlemini de gerçekleştirecek şekilde “eğitilir”. Dallanma öngörüsü kullanılarak CPU, gerçekten okumasına izin verilen verileri okumak isteyen programa alışkın olduğu için işlemi önceden gerçekleştirir. Ancak yapılan bir kontrol, programın verilere erişiminin yasak olduğunu ortaya çıkarır ve bunun sonucunda varsayımsal olarak yürütülen hesaplamalar atılır. Buraya kadar her şey yolunda — ancak CPU tarafından okunan veriler bir süre CPU’nun kendi belleği olan önbellekte saklanmaya devam eder.

İşin ilginç kısmı da bundan sonra başlar: CPU’nun önbelleğinden gizli verileri doğrudan okumanın hiçbir yolu olmadığından, kötü niyetli süreç, bu verileri çalmak için yan kanal saldırısı(side-channel attack) adı verilen bir saldırı başlatır. Bu saldırıda belirli bilgilere erişim hızı ölçülür. Veri görece olarak küçükse, bu, verilerin önbellekte tutulduğu anlamına gelir. Büyükse, normal RAM’den yüklenir. Bir dizi okuma denemesi, gizli bilgilerin sızmasına neden olur.

Sonuç olarak yaşanan, tek çözümü dallanma öngürüsünün tamamen devre dışı bırakılması olan ve dolayısıyla performansı ciddi şekilde etkileyen temel bir CPU hatasıdır. Bununla birlikte, Spectre saldırılarında:

  • Saldırganın, hedef bilgisayarda veya mobil cihazda program kodunu çalıştırabilmesi,
  • Saldırının, başarılı bir saldırı için gereken koşulları oluşturacak şekilde kodlanmış belirli bir hedef programa sahip olması,
  • Saldırı başarılı bir şekilde gerçekleştirilmiş olsa bile, verinin çıkarılmasının oldukça yavaş (saniyede onlarca veya yüzlerce bayt) ve okuma hatalarının imkansız olmaktan çok uzak olması,
  • Genel olarak, parolalar, şifreleme anahtarları vb. gibi ele geçirilmesi amaçlanan gizli verilerin çalınmasının bir dizi koşula bağlı olması gibi sınırlamalar söz konusudur.

Spook.js — Spectre v1’in Gerçek Hayattaki Uygulaması


SpookJS Attack Allows to Bypass Site Isolation In Google Chrome

Spectre’nin o kadar da tehlikeli olmadığı sonucuna varabiliriz. Sonuçta, bir saldırgan hedef bilgisayarda kod çalıştırabiliyorsa, ayrıcalıkları yükseltmek ve verileri çalmak için işletim sistemindeki veya yüklü programlardaki çok sayıdaki güvenlik açığından birini kullanmak saldırgan açısından çok daha kolay bir tercih olurdu.

Bu doğru olsa da günümüz web sayfalarında, kullanıcının bilgisayarında ve tarayıcıda yürütülen büyük miktarda program kodu yer alıyor. Spook.js saldırıları da Spectre v1 güvenlik açığından bu şekilde yararlanıyor: Virüslü bir sayfa yükleniyor, tarayıcı kodu yürütüyor ve siber suçlu gizli verileri çalıyor.

Raporu hazırlayanlar uygulanabilir bazı saldırıları gösterdiler. İlk önce Tumblr’dan bir kullanıcı parolasını çaldılar. Ardından, Lastpass’tan veri çaldılar. Üçüncü olarak da bir Google sunucusundaki özel depolama alanından, kullanıcı tarafından yüklenen bir görseli ele geçirdiler.

Bunların hepsi, Google Chrome tarayıcısındaki bir özellik sayesinde mümkün oluyordu. Spectre ile ilgili bilgilerin yayınlanmasının ardından Chrome’un geliştiricileri, internet sitelerinin izole edilmiş şekilde yüklenmesini mecbur kılarak olası saldırıları önlemeye yönelik önlemler aldı. Böylece her bir internet sitesi kendi sürecini oluşturduğundan, bir sayfadaki kötü amaçlı kodun, başka bir kaynaktan veri çalmak için kullanılması mümkün olmuyor. Ancak bunun da bir istisnası bulunuyor: Aynı sitedeki veya alan adındaki birden çok sayfa, ortak bir tarayıcı işleminde gruplandırıldığı için bunlardan birinde kötü amaçlı kod (kod JavaScript ile yazıldığı için saldırın adında .js bulunuyor) çalıştırıldığında, diğer sayfalardaki veriler çalınabiliyor.

Paniğe Kapılmalı Mısınız?


Intel Publishes Spectre & Meltdown Hardware Plans: Fixed Gear Later This  Year

Araştırmacıların, ilk kez Spectre güvenlik açıklarından birinin kullanılmasına ilişkin oldukça gerçekçi bir senaryoyu ortaya koyması nedeniyle Spook.js konusunda yürütülen çalışma oldukça büyük önem arz ediyor. Bununla birlikte, gerçek hayatta böyle bir saldırı yaşanması da düşük bir olasılık.

Birincisi, bu araştırmanın ardından Google Chrome geliştiricileri, yüklenen siteleri izole etme mekanizmasını güçlendirdiler. İkincisi ise siber suçluların bu yöntemi kullanabilmek için modern CPU’ların düşük seviye çalışmaları (low-level) hakkında ciddi bilgi sahibi olması gerekirken, kullanıcı verilerini çalma konusunda geleneksel kötü amaçlı yazılımlardan sosyal mühendisliğe kadar çok daha kolay yöntemler mevcut.

Bir güvenlik açığının teoriden uygulanabilir bir saldırı aşamasına (ve bu durumda bile, birçok sınırlamaya sahip bir saldırı) gelmesinin üç yıl sürdüğünü de unutmayalım.

Spectre ayrıca, çalınan verilerden elde edilecek potansiyel faydanın operasyon maliyetlerini aştığı hedefli saldırılar için de kullanılabilir. Bu senaryo işletmenize bağlı olsa bile farklı içerikler için farklı tarayıcılar kullanarak bu saldırıları basitçe zorlaştırabilirsiniz. Örneğin, hassas bilgiler içeren sayfaları ve web hizmetlerini çevrimiçi eğlence için kullandığınız tarayıcıda açmayın. Tercihen, gizli bilgileri yalıtılmış bir ortamda, sanal bir makinede veya ayrı bir aygıtta işleyin.

Kaynak: Kaspersky

Yazımızı Nasıl Buldunuz?

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*