sosyla mühendislik

İnternet Bankacılığı Hizmetlerini Sosyal Mühendislik Saldırılarında Kullanmak

İnternet bankacılığı, kullanıcıları ATM veya bankaların ön ofislerinden kurtaran harika bir hizmet. Hatta o kadar ince düşünülen hizmetlerin olduğu bir sektör ki, yazıya başlamadan önce geçen gün yaşadığım bir olayı aktarmak isterim.

Evden, cüzdanımı unutarak çıkıp 30 küsür kilometre yol kat ettikten sonra benzin almam gerektiğini fark ederek, bulduğum ilk benzinliğe girdim. Dolum işlemini gerçekleştirecek arkadaş 100 TL benzin alacağımı söyledikten sonra ödeme yapmak için içeri geçtiğimde cüzdanımı unuttuğumu fark ettim. Çaresizce ne yapacağımı düşünürken benzinlikte kullandığım bankanın ATM’si olduğunu fark ettim. Kartsız işleme tıkladığımda ekrana bir QR kod geldi. Telefonumdan internet bankacılığına giriş yaptıktan sonra bu QR kodu okutarak 100 TL nakit çekme imkanım olmuştu.

Bu örnekte anlatılan bankacılık hizmeti çok uç veya yapılması zor bir şey değil. Ama gördüğünüz üzere çok kritik anlarda, müşteri olarak memnuniyetimi kazanmakta.

İnternet Bankacılığı ve Fatura Ödeme Rahatlığı

İnternet bankacılığı ile hemen hemen tüm faturaları ödeme imkanına sahibiz. Elektrik, su, gsm, KGS, doğal gaz ve benzeri tüm faturaları internet bankacılığı üzerinden ödemek, biz müşteriler için güzel bir hizmet.

İnternet bankacılığı üzerinden fatura ödemesi gerçekleştirirken, fatura sorgulama işlemi sonucunda, fatura sahibi adı gizlenmektedir. ( AY**** GO**** ).

Fatura Ödeme Testleri

Web uygulama güvenlik testleri arasında “User Enumaration” olarak adlandırılan, hedef sistemde ki kullanıcılar tespit edilebilmektedir. User enumaration imkanının ne denli mümkün olduğunu tespit edebilmek için aşağıdaki testleri gerçekleştirdim.

– Yanlış müşteri numarası girmek

Doğru olma ihtimali çok düşük olan bir müşteri numarası girdiğimde ( 9999999 ) internet bankacılığı uygulaması,

Var olmayan bir müşteri numarası girdiniz.

hatası verdi. Aslında bu hatayı veren internet bankacılığı uygulaması değil. İnternet bankacılığı uygulaması, fatura ödemelerini gerçekleştirmek isteyen firma tarafından açılan API’ye gönderdiği sorgunun cevabını kullanıcıya göstermektedir. Yani burada tespit edilen User Enumaration zafiyeti ile bankanın herhangi bir ilişkisi yoktur.

– 123456 olan saldırganaa ait fatura numarası girmek

Saldırgan olarak kendime ait müşteri numarası girdiğim zaman bankacılık uygulaması isim ve soy isim alanlarının belli karakterlerini gizleyere borcumu ve fatura numarası  gösterdi.

MEH****** DUR***** INC*****
123456 Müşteri Numarası
Fatura Numarası : 273747576
Borç : 99 TL

Yukarıda ki bilgiler, bankacılık uygulamasının gösterdiği verilerdir. Kullanıcı olarak sadece kendi müşteri numaramı bilirken, sorgulama işlemi sonucunda ödemeyeceğim faturanın, fatura numarasını‘da görebilmekteyim. Bu veri, sosyal mühendislik saldırısı kısmında çok işe yaracak bir veridir.

– Başka kullanıcıya ait olma ihtimali yüksek olan 123455 ‘nın sorgulanması

Hemen hemen tüm sistemlerde, kullanıcıları ifade eden uniq key’lerin auto increment olarak tanımlanması sonucunda, kendinize ait olan müşteri numarasına yakın sayıların başka kullanıcılara ait olma ihtimali son derece yüksektir.

Sorguya 123455 yazarak sorduğumda ise aşağıdaki sonuç döndü.

AY**** YO*****
123456 Müşteri Numarası
Fatura Numarası : 2485868345
Borç : 198 TL

Buradan anlaşılan, müşteri numarası bilinen veya tahmin edilen kullanıcıların fatura numaraları ve borç miktarları öğrenilebilmektedir.

Eğer ödenmemiş fatura yoksa

123455 Müşterisinin ödenmemiş faturası bulunmamaktadır.

uyarı çıkmakdır. Saldırgan olarak faturaların ödenmiş olduğunu da tespit edilebilmektedir.

– Kaç adet sorgu gönderebiliriz ?

Akıllara gelen bir diğer soru ise “Aynı firmanın fatura sorgulama modülüne kaç tane talep gönderebiliyorum ?” . Bu sorunun gerçek cevabının ne olacağını veya önlemlerin nasıl alınabileceğini anlamak için mimariye analiz etmeliyiz.

Fatura ödeme hizmeti almak isteyen firma, bankanın ödeme işlemini gerçekleştirebilmesi için bir adet API açtığını söylemiştik. Bu api’nin güvenli olması için, sorguların sadece banka tarafından gönderilen talepler için geçerli olması ile sağlanabilir. Ayrıca kullanıcılar olarak biz, HTTP taleplerimizi internet bankacılığına göndermekteyiz. Bankacılık uygulamasıda API’ye iletmekte. Doğal olarak API tarafına gönderilen taleplerin ip adresi tek ve sabit olacaktır. Hatta tek ve sabit olmalıdır. Ancak ve ancak bu şekilde API’nin güvenliği iyi derecede sağlanmış olacaktır.

Peki API tarafında müşteri numarası başına sorgu limiti bulunuyor mudur ? sorusunu sorabiliriz. Eğer böyle bir feature var ise gerçekten mantıksız olacaktır. Çünkü fatura ödeme işlemi sadece bir bankadan değil, onlarca bankadan gelebilir. Bu durumda herhangi bir counter tutulması mantıklı değildir. Ayrıca var olduğunu kabul edersek, bu limiti aşan hesaplar için hangi işlem gerçekleştirilecektir ? Hesabın dondurulması mı ? Peki kullanıcılar bunu nasıl fark edebilir ve çözüm için ne yapmalıdır ?

Tüm bu bilgilerin ışığında, sorgu sayısında herhangi bir limit tespit edilememiştir. Yani istediğimiz kadar müşteri numarası sorgulatabilmekteyiz.

Saldırı Vektörü

Sosyal mühendislik içeren saldırıların hemen hemen hepsinde sosyal medyadan yararlanılmaktadır. Özellikle belirtmek isterim ki, müşteri hizmetleri üzerinden düzgün servis alamadığım zaman attığım tweet’e anında dönüp beni arayan bir çok firma mevcut.

Kurbanların tespit edilmesi

 

Saldırgan olarak kendimize müşterilerini hedef seçtiğimiz XYZ firması hakkında insanların yazdıkları twitter üzerinden araştırıldığında elde edilen bilgi XYZ firmasını kullanan müşterilerin kısmi listesidir.  XYZ firmasının sosyal medya hesabı gibi gözükecek bir profile ile atılan bu tweet’lere “Yaşattığımız sorunlar için özür dileriz. Müşteri numaranızı DM ile iletebilirseniz, ilgilenceğiz.” gibi bir mesaj ile bir çok kullanıcının müşteri numarası elde edilecektir.

Bu mesajın atılacağı kullanıcılar için yapılacak bir OSINT çalışması ile kullanıcıların kişisel bilgileri elde edilmelidir. Ki bu çalışmada gene yardıma facebookfoursquare, linkedin koşmaktadır. Sizinde tahmin edebileceğiniz gibi son kullanıcıların bilinçsiz sosyal medya kullanımı sonucunda, kullanıcılara ait mail, telefon numarası ve kişisel bilgiler ifşa olmaktadır.

Saldırı Senaryosu

Faturası ödenmemiş bir kullanıcı tespit edildikten sonra, faturanın ödenmesi gerçekleşene kadar beklenilecektir. Kurban faturasını ödedikten sonra, müşteri hizmetleri caller ID Spoofing ile aranarak

“Merhaba, erkek/kız arkadaşımın faturasını ödemek isterken yanlışlıkla kendi faturamı ödemişim. Bu işlemi 123456 numaralı müşteri için yapabilir misiniz ?”

gibi bir cümle ile fatura ödemesi saldırgan tarafından belirlenen bir müşteri numarasına aktarılabilir.

Gerçek Hayat Sonuçları

Penetrasyon testi hizmeti kapsamında gerçekleştirdiğim bir güvenlik testinde, yukarıda anlatılan yaklaşımlar ile bir firmada başarı ile sonuçlanan saldırıdır.

Son kullanıcılar olarak bu tür saldırılara karşı korunmak için bilinçli internet kullanıcısı olmak gerekmektedir.