Kim Korkar Sanal Klavyeden?

İnternet Bankacılığı konusunda yanlış demeyeceğim ama etkin olmayan bir çözüm de sanal klavyeler. Hani PIN kodunu klavyeden değil de fare ile ekrandaki düğmelere tıklayarak girdiğiniz nesne. Her girişte bir de sayıların yer değiştirmesi yok mu, yani o zaman bu sistem bayağı güvenli olmalı.

Güvenli mi? On sene önce olsa evet. Çünkü on sene önce anahtar-toplayıcı (keylogger) dediğimiz programlar sadece klavyeden girilen karakterleri toplarlardı. Sene 2008 olunca , bu sitedeki birkaç programı denedik ve gördük ki her fare tıklamasındaki ekran görüntülerini toplayan ve oldukcada performanslı programlar var. Bu tip bir program karşısında sanal klavyeler çaresiz kalıyor haliyle. (Ekran görüntülerini transfer etmek çok bant genişliği ister vs. gibi karşı argümanların da çok geçerli olduğunu düşünmüyorum.) 

Sonuç: Güvenlik bir silah yarışı olmuş günümüzde. Önlemler bu yarışta çoğu zaman epey geriden geliyor maalesef.

Konuyla ilgili bir fıkra ile bitireyim. İki arkadaş ormana gitmişler, gezerlerken bakmışlar meşelikten bir aslan geliyor üstlerine. Arkadaşın biri çantasındaki spor ayakkabılarını giymeye başlamış. Diğeri sormuş: “bu ayakkabıları giyince aslandan daha hızlı koşabileceğini mi düşünüyorsun?”. Cevap beş-on metre öteden gelmiş: “hayır ama senden daha hızlı koşacağımdan eminim.”

Konumuzla ilgisi mi? Herkesin tek-zamanlı şifrelere geçtiği ve bu şifrelerin yetersiz kalabileceği gerçek zamanlı kimlik avı saldırılarının (online phishing attacks) düşünüldüğü bir zamanda sanal klavyeler aslana yem olmayı ne kadar geciktirebilir acaba?

11 Responses to Kim Korkar Sanal Klavyeden?

  1. Yusuf Uzunay dedi ki:

    Evet ekran capture eden programlar ile biz de bilişim suçlarında çalışırken karşılaşmıştık. Kullanıcının bilgisayar üzerindeki bütün el hareketleri izlenebiliyor. Sanırım bir de bu tip keylogger’lar sisteme bulaştığında fonksiyonel anlamda iş görmesini engelleyen programlar da mevcut. Anti-keylogger diye geçiyor genelde. Keylogger bulaşsa bile ekran görüntüsünü alamıyor diye biliyorum. Deneme fırsatım olmadı. Ama ilgilenenler için google’da Anti-keylogger diye bir araştırma yapmanın faydalı olacağını düşünüyorum.

  2. Kemal BIÇAKCI dedi ki:

    anti-keylogger diye arama yapınca ilk sırada klavyeden girilen karakterleri toplayan keyloggerları yakalayan bir program tanıtımı çıktı. Zaten problem bu tip koruyucu yazılımların olmadığı bilgisayarlardan girilen şifreler. Şifre girilen makine güvenli ise sanal klavyeye de gerek kalmaz.

  3. Yusuf Uzunay dedi ki:

    http://www.programurl.com/anti-keylogger-elite.htm

    Burda bahsediyor ama, nasıl bir teknikle screen capture’ı engellediğine bakmak lazım…

  4. Yusuf Uzunay dedi ki:

    Makine güvenli olduğu zaman zaten gerek kalmayacağına ben de katılıyorum. Ama en azından ekran screenshot’ını engelleyecek bir çözüm bulunabilirse, insanların hiç olmazsa evlerinde işyerlerinde gönül rahatlığıyla sanal klavyeleri kullanabilmesi sağlanmış olabilir diye düşünüyorum. Farklı kimlik doğrulama mekanizmaları tabiki şart ve faydalı. Ama yinede sanal klavye kullanan bir çok uygulama göze çarpıyor.

    Konuyu irdeleme bahabında, mesela özel bir browser’da mouse tıklamasını kontrol edip tıklanıldığını anda ekranın karartılması sağlansa bir fayda sağlar mı? Sonuç olarak bu keylooger programları mouse tıklamalarını dinleyip screenshot almıyor mu? Tabi ekranı karartma işlemi keylogger dan daha hızlı davranması gerekiyor.

  5. Kemal BIÇAKCI dedi ki:

    Tam bu önerdiğin teknik bizim de aklımıza geldi ama araştırmalarımız sonucu bunun söylendiği kadar kolay olmayacağını gördük.

  6. Yusuf Uzunay dedi ki:

    Eğer hız ile ilgili bir problem varsa o konuda bir fikrim yok. Ama eğer implementasyon anlamında bir problem varsa, JDesktop Integration Components (JDIC) projesine (https://jdic.dev.java.net/) göz atılması faydalı olur diye düşünüyorum. Burada open source projeler mevcut. Sayfanın altına doğru Browser projesi var. Daha önceden phishing ile ilgili çalışırken ben buradaki kodları kullanarak bir browser yapmıştım. Bu open source browser’ın içinde internet explorer veya mozilla gömüllü olarak var bunlardan birini seçebiliyorsunuz. Diyelim ki sanal klavye uygulaması olan bir banka sitesine bağlanılacak, bu browser kullanılarak bağlanılabilir ve browser’ın bir yerine düğme ekleyip, sanal klavye’de yazı yazmaya başlamadan önce bu düğmeye basıldığı andan itibaren mouse listener sayesinde her mouse tıklamasında ekran karartılabilir diye düşünüyorum.

  7. Yusuf Uzunay dedi ki:

    Yalnız JDIC projesi ile ilgili şöyle bir sıkıntı mevcut. Popup açıldığında onu kontrol etmek zor. çünkü popuplar kendi browserında değil, içine embedded edilmiş browserda açılıyor diye hatırlıyorum. Sanal klavye de genelde popup olarak açılıyor. Bu nedenle bankaların orijinal popup’ını kullanmak yerine sanal klavye uygulamasının bizim tarafımızdan yazılması düşünülebilir. Kendi sanal klavyemizi kendi uygulamamız üzerinden çalıştıracağımız için istediğimiz zaman ekranı yokedebiliriz. Hatta şu yöntem daha sağlıklı; Mouse ilgili butonun üzerinde belirli bir süre kaldığında tuşların içeriği sıfırlanabilir ve sıfırlandıktan sonra tıklama gerçekleşirse, o zaman hız problemimiz de kalmaz. Screenshotterlar da birşey yakalayamamış olur. Bu sanalklavye windowsun sanal klavyesi gibi işlev görebilir. Yani mouse’un olduğu yere tuşları yazar. Böylelikle diyelim ki bir banka sitesinde şifre gireceğiz, onun sanal klavyesi açılınca iptal edeceğiz ve ilgili yere gelip, kendi browserımız üzerinde yer alan “sanal klavye” düğmesine tıklayıp işlemi gerçekleştireceğiz. Bu fikre ne diyorsunuz?

  8. Kemal BIÇAKCI dedi ki:

    Fare belli bir süre hareketsiz kaldığında farenin olduğu bölgenin ekran görüntüsünü sıfır gecikmeyle alan programlar var. (silah yarışı)

  9. Yusuf Uzunay dedi ki:

    Biraz uçuk olacak ama, sanal klavyeyi bilgisayar ekranında değil de havada oluştursak? Çok zor mudur acaba? Belki yansıma olmayan bir yerde üç boyutlu oluşturmak (üzerinde çalışıldığını duyuyorum) en azından bizim için zor gibi ama USB’den takılacak küçük bir aparat olsa ve bu hani yazı yazarken bilgisayarın monitorüne kağıt koymak için takılan şeyler varya istediğiniz yöne ayarlayabiliyorsunuz, bir de öyle birşey. Küçük olacak ayarlanabilecek, USB’den takılacak aparat buraya küçük bir klavye yansıtacak, ve ekrandaki mouse hareketleri aynı şekilde o yansıyan klavye üzerinde hareket edecek, tıklanıldığı anda da kursörün olduğu yere yazacak. ???

  10. Davut İNCEBACAK dedi ki:

    Ne kadar iyi cozumler bulunursa bulunsun bunlar kişisel bazda düşünülürse yani bulunan çözümün kullanımı kullanıcıya bırakılırsa her zaman saldırıya açık yüzlerce bilgisayar olacaktır bundan dolayı bulunan çözümün herkes tarafından uygulanabilmesi için bankaların devreye girip var olan sorunlara karşı çözümleri bizzat bankaların kendilerinin bulup bunları müşterilerine uygulatması gerekiyor diye düşünüyorum bana göre bulunan çözüm ne kadar kesin bir çözüm gibi gözüksede buna karşı başka bir saldırı daha geliştirilicektir. Once Keylogger vardı daha sonra screenloggerlar daha sonrada Yusuf un çözümüne karşı 3Dlogger lar çıkabilecektir. Kemal Hoca nın dediği gibi aslan sürekli arkadan geliyor, kişisel bazda kalacak çözümlerde aslana yem olacak her zaman birileri olacaktır bunun için aslan terbiyecilerine buyuk iş düşüyor..

  11. Davut İNCEBACAK dedi ki:

    Geçtiğimiz günlerde http://cups.cs.cmu.edu/soups/2007/posters/p147_lim.pdf linkinde yer alan makale dikkatimi çekti. Silah yarışında gelinen son noktaya sergilemek anlamında dikkat çekici bir makale. Burada kullanılan yöntemden kısaca bahsetmek gerekirse;

    Şifrenin girileceği Keypad deki rakamları tek seferde değil de sadece bir anda herbir rakamın tek bir parçasını göstermek ama bu yöntem de bir rakamı oluşturulan parçalar o kadar hızlı gosteriliyor ki insan algısı keypaddeki rakamların parçalardan oluştuğunu farketmiyor yani kullanıcı için görüntüde herhangi bir değişiklik farkedilmiyor. Örneğin 4 rakamı tek bir resim olarak değil bir den fazla resim olarak ifade ediliyor bu birden fazla resimin her biri tek başına anlamsızken insan algısının anlamayacağı şekilde ard arda hızlı bir şekilde gösterildiğinde 4 rakamını ekranda gösteriyor diğer bütün rakamlar da aynı mantıkla oluşturularak tek bir keypad olarak ekranda gösteriliyor. Bu yöntemde bir keypadi oluşturmak için kullanılan resimlerin sayısı insan algı sistemiyle ekranın tazeleme oranına bağlı olarak hesaplanmış. Bir keypadi oluşturmak için kullanılan Resimlerin Sayısı = [(insan algı bütünleştirme zamanı) / (Tazeleme Oranı)] + 1 olarak hesaplanıyor. Şu anki ekranların tazeleme oranı genellikle 2 ms insan algısının da 30 ms içerisinde gösterilen resimleri tek bir resim olarak algıladığı düşünülürse. Bu yönteme göre yukarıdaki değerleri kullanırsak bir keypad 16 resim parçasıyla oluşturulabilir. Bu yöntemin güzel bir tarafıda burda ortaya çıkıyor genellikle keypadi oluşuturan rakamlar 16 dan daha az parçayla ifade edilebilir geri kalan resimler boş olacaktır. Örneğin 4 rakamını dört parça resimle gösterebiliriz o zaman 12 resim boş olacaktır böylece herhangi bir anda screenlogger çalıştığında ekranda boş resimin gösterilme olasılığı daha fazla olduğu için screenlogger büyük ihtimalle boş resimleri yakalayacaktır. Bu yöntemin güvenliği arttıran tarafı bir rakam seçildikten sonra rakamların yerinin değişmesi böylece yakalanan ekranlar arasında korelasyon kurmak mümkün olmuyor. Bu yöntemin zayıf tarafı ise eğer screenlogger her bir tıklamada bir resim yakalamak yerine ekranın tazeleme oranıyla aynı oranda resimleri yakalarsa yani tek tek ekrandaki görüntüleri yakalamak yerine video gibi birden fazla ekran görüntüsü yakalarsa herhangi bir rakam tıklanıldığında tıklanan rakamı screenlogger anlayacaktır. Gerçi screenlogger ın bu şekilde çalışması bilgisayar kaynaklarını çok tüketmesine neden olacağı için screenlogger ın yakalanma oranını arttıracaktır.

Yorum bırakın