Kredi kartları brute-force türü saldırılara karşı savunmasız
(metin.nextc.org)- PCI DSS, kart verilerinin saklanmasını ve gösterilmesini kısıtlasa da, BIN, son 4 hane ve son kullanma tarihi gibi izin verilen bilgiler bile başka iş yerlerinde ek ödeme denemelerinin sürdürülmesine yetebiliyor
- Ele geçirilmiş bir hesapta saldırgan, bankanın 3D Secure sayfası üzerinden kartın kullanılabilir olup olmadığını, banka adını, maskelenmiş kart numarasını ve tam son kullanma tarihini elde etti; yaklaşık 6 saat sonra da birden fazla iş yerinde kimlik doğrulama denemeleri başlattı
- Ödeme kartı numarası (PAN), IIN, hesap tanımlayıcısı ve Luhn kontrol basamağı yapısına sahip; ödeme ağ geçidi yanıtları hangi değerin yanlış olduğunu ayırt ediyorsa PAN, son kullanma tarihi ve CVV tahmini kolaylaşıyor
- Gerçek test hızı saniyede 6 deneme, API başına ise yaklaşık saniyede 2 deneme seviyesindeydi; proxy ile IP değişirken kart numarası da sürekli farklılaştığı için iş yeri açısından brute-force tespiti zorlaşıyor
- Saldırgan, 3D Secure istisnası olan iş yerlerini kullanarak düşürülmüş limitin tamamını elektronik cüzdana aktardı; chargeback ile para iade edildi ancak bankanın CVC2 hız sınırı birkaç dakikalık engelleme düzeyinde kaldı
PCI DSS'nin engelledikleri ve geride bıraktıkları
- PCI DSS, kredi kartı gibi hassas bankacılık verileri işlenirken gereken asgari güvenlik önlemlerini tanımlayan sektör standardıdır; hesap ele geçirilse veya kart verileri üçüncü taraflara geçse bile tüm bilgilerin açığa çıkmaması için saklama ve gösterimi sınırlar
- PCI DSS 4'e göre ekranda ya da makbuzda gösterilebilecek bilgiler maskelenmiş PAN, kart sahibinin adı, servis kodu ve son kullanma tarihidir; PAN içinde BIN ve son 4 hane gösterilebilir
- Gösterilemeyen bilgiler ise tam track verisi, kart doğrulama kodu ve PIN/PIN block ile sınırlıdır
- Hem e-ticaret siteleri hem de fiziksel makbuzlar aynı sorundan etkilenebilir; yalnızca hesap ele geçirilmesi değil, imha edilmemiş makbuzlar üzerinden de bazı kart bilgileri açığa çıkabilir
Olayın akışı
- Mağdur, limit kısıtlamalı bir sanal kredi kartı kullanıyordu, iki aşamalı doğrulama olan 3D Secure'u etkinleştirmişti ve kartı yalnızca bilinen iş yerlerinde kaydederek kullanıyordu
- Yıllar önce açılmış bir hesabın ele geçirilmesinin ardından, kartın kayıtlı olduğu web sitesinden satın alma denemesi SMS'i geldi; mağdur hemen giriş yapıp parolasını değiştirdi, satın alma durumunu kontrol etti ve ardından sanal kart limitini ciddi biçimde düşürdü
- Kartı tamamen devre dışı bırakmamasının nedeni, kartın tüm bilgilerinin sızdırılmadığını düşünmesiydi
- İlk ihlalden yaklaşık 6 saat sonra, kullanılmamış çeşitli iş yerlerinden 3 ila 4 adet 3D Secure SMS denemesi geldi; hepsi başarısız oldu ancak sonrasında saldırı yöntemini anlamada önemli bir ipucu sağladı
- Birkaç dakika sonra banka aranıp kart tamamen devre dışı bırakılırken, saldırgan 3D Secure olmayan başka iş yerlerini kullanarak düşürülmüş limitin tamamını çoklu ödemelerle çekti
- Para, nakde çevrilebilen bir marketin elektronik cüzdanına aktarıldı; mağdur chargeback talep ettikten sonra banka parayı iade etti
Saldırganın elde ettiği bilgiler
- Saldırgan, ele geçirdiği hesapta ödeme denemesi yapıp bankanın 3D Secure sayfasını gördükten sonra siparişi iptal edip ayrıldı
- Bu süreçte kartın hâlâ kullanılabilir olduğunu, banka adını, maskelenmiş kart numarasını ve tam son kullanma tarihini elde etti
- Genel olarak bir kart ödemesinin başarıyla tamamlanması için tam 16 haneli PAN, son kullanma tarihi, CVC2 numarası ve 3D Secure'da kullanılan cep telefonu gibi bilgilerin gerektiği düşünülebilir
- Gerçek saldırıda ise yalnızca bu bilgilerin bir kısmıyla başka iş yerlerinde ek denemeler sürdürülebildi
PAN yapısı ve tahmin edilebilirlik
- Ödeme kartı numarası (PAN), kredi kartı, banka kartı, saklı değer kartı ve hediye kartı gibi kartlarda kullanılan bir tanımlayıcıdır
- PAN, ISO/IEC 7812 kapsamındaki ortak numaralandırma şemasını kullanır ve iç yapısı şöyledir
- 6 ya da 8 haneli Issuer Identification Number (IIN)
- En fazla 12 haneli bireysel hesap tanımlayıcısı
- Luhn algoritmasıyla hesaplanan 1 haneli kontrol basamağı
- Mağdurun bankası yalnızca kart numarasıyla ödemeye izin vermiyor; PAN, son kullanma tarihi ve CVV'yi birlikte istiyordu
- Bazı bankalar ve ödeme ağ geçitleri yalnızca kart numarasıyla da ödemeyi işleyebiliyor; bu da mağdurun özellikle inanmakta zorlandığı noktaydı
Ödeme ağ geçidi yanıtlarının oluşturduğu brute-force koşulları
- Mağdurun bankası, gereken değerleri eksik ya da hatalı olan ödemeleri reddediyordu ancak yanıt koduyla hangi kısmın yanlış olduğunu bildiriyordu
- Yanıt örnekleri şunlardı
- “Geçerli bir kredi kartı değil”
- “Kartın süresi dolmuş”
- “Diğer tüm bilgiler doğru ama CVV yanlış”
- Bu tür yanıtlar, saldırganın kart numarası, son kullanma tarihi ve CVV arasında hangi değerin doğru ya da yanlış olduğunu ayırt etmesine yarayabilir
- Gerçek saldırgan saniyede 6 deneme, API başına ise yaklaşık saniyede 2 deneme yapıyordu
- Bu hız, iş yeri açısından tespit edilmesi zor bir düzeyde; çünkü proxy nedeniyle kaynak IP değişiyor, brute-force doğası gereği kart numarası da sabit kalmıyor ve istek sıklığı da oldukça düşük oluyor
3D Secure istisnalı iş yerlerinin rolü
- Bankada 3D Secure istisnası olan iş yerlerinin bir listesi bulunuyor ve bu iş yerleri banka tarafından güvenilir kabul edildiği için 3D Secure olmadan ödeme ve abonelik alabiliyor
- Chargeback oluştuğunda sorumluluğu bu iş yerleri üstleniyor
- Saldırgan, 3D Secure olmayan iş yerlerini kullanarak kart limitindeki tutarı elektronik cüzdana aktardı
Sonraki müdahale ve kalan sorunlar
- Chargeback sayesinde para hızla iade edildi
- Kart ödemelerini nakde çevirebilen sistemin yetkisiz para çekimi için kullanıldığı ilgili iş yerine bildirildi ancak iş yeri bankaya danışılması gerektiğini söyledi
- E-ticaret sitesine, son kullanma tarihiyle birlikte kart numarasının 10 hanesini göstermenin saldırıyı kolaylaştırdığı iletildi ancak site bunu zafiyet olarak kabul etmedi ve PCI DSS 3 ile 4 standartlarına uygun şekilde bilerek tasarlandığını söyledi
- Ödeme API'si geliştirenler ya da ödeme sektöründe çalışanlar buna şaşırmadı; bazı iş yerleri son kullanma tarihi olmadan da işlem yapılabildiğini belirtti
- Olaydan sonra kredi kartı ödemelerini nakde çeviren ilgili taraf bunu artık 3D Secure olmadan işlemiyor
- Mağdurun bankası hâlâ CVC2 brute-force denemelerine karşı nispeten gevşek bir hız sınırı uyguluyor; bu sınıra takılındığında ilgili kart yalnızca birkaç dakikalığına geçici olarak engelleniyor
1 yorum
Hacker News görüşleri
İlgili vakalara bakınca, asıl gönderinin yazarı yanlış nedene odaklanmış olabilir. Yakın zamanda kredi kartımda FB/Meta ile ilgili küçük, yetkisiz ödemeler göründü ve biri kartın tespit edilip edilmediğini test ediyor gibiydi
Kart şirketini arayıp ödemeleri iptal ettirdim, kartı kapattırdım ve yeni kart numarası, yeni son kullanma tarihi, yeni CVV’si olan bir kart aldım; ama hiç kullanmadığım yeni kartta da yeniden FB/Meta sahtekarlık ödemeleri başladı. Sebep dijital cüzdanmış; kartı kapatsanız bile kart numarası gibi bilgiler dijital cüzdan üzerinden taşınabiliyormuş
Kart şirketini tekrar arayıp tüm dijital cüzdanları kapatmalarını istedim; tam 99 tane vardı ve bunu çevrimiçi yapamıyordum, çağrı merkezi çalışanıyla konuşmam gerekti. Tüm yenilemeli ödemelerin sıfırlanacağı anlatıldıktan sonra bile kartı ve tüm dijital cüzdanları kapatmalarını özellikle istemem gerekti ve 20 dakika bekledim. Kartı kapatmanın düşündüğünüz şeyden farklı olabildiği anlaşılıyor; ayrıca yinelenen ödemeler kart şirketleri için çok kârlı olduğundan, kapatma işlemi büyük gelir kaybına yol açıyor gibi görünüyor
Stripe blogu: https://stripe.com/resources/more/what-is-a-card-account-upd...
Başka bir yerden sızdırılmış olsaydı, alakasız e-ticaret hesaplarına giriş yapmaya çalışmaları için pek neden olmazdı
Bu yazı en önemli kısmı ele almıyor. Bankanın hesabımdan iş yerine para aktarmayı kabul ettiği mutabakat, yetkilendirmeden tamamen ayrı bir şey
Yetkilendirme; modern EMV, yani “çip ve PIN” doğrulaması, çevrimiçi CVV ve bankanın kendisini dolandırıcılıktan, ikincil olarak da iş yerini korumak için kullandığı çeşitli önlemlerden oluşuyor
Ağ, Amazon’un “işte bir kart numarası, bu kişi bize 400 dolar ödediğini söylüyor” demesini kabul edebilir. Bu sadece mutabakattır ve ekstrenize yansır. Gelişmiş kriptografi olmadan, 4 haneli PIN kadar bile bir güvenlik katmanı olmadan, annenizin evlenmeden önceki soyadını hatırlamaya benzer bir doğrulama bile olmadan “tamam, inanıyorum” denir. Bu yüzden tüketici kredi kartı ekstresini okuyup bilmediği işlemlere itiraz etmezse, onları ödemiş olur
Ağın tüketicinin dolandırılmasıyla ilgilenmesi için neredeyse hiçbir teşviki yok. İtiraz edilmezse herkes memnun, itiraz edilirse de para iş yerinden geri alınır; yani onların sorunu değil
Ödeme işleyicileri, tam kart numarasını kaba kuvvetle denemeye dayanan kart numarası taraması ya da kart testine izin vermez; kart ağları da bunu engellemeyen iş yerleri ve ödeme işleyicilerine ağır cezalar uygular
Tek bir PAN üzerinde CVC2’yi enumerate etmek ise başka bir konu
Bu, dolandırıcılığı önleme altyapısının gerçekten koruma sağladığının kanıtı. Banka dolandırıcılık zararını üstlendi ve parayı da geri aldı
Sonuçta bankacılık sistemi dolandırıcılık zararlarını önemsiyor ve tespit konusunda da çok yetkin. Kartlı ödeme sistemi o kadar büyük ki değiştirmesi son derece zor; bu yüzden belli bir değişikliğin dolandırıcılık oranını gerçekten düşürdüğüne dair güçlü kanıt yoksa bankalar değişiklik yapmamayı tercih ediyor
Kartı çıkaran banka her işlemden mutabakat ücreti kazandığı için, dolandırıcılık sorumluluğu yoksa mümkün olduğunca çok işlemi onaylayıp sonradan chargeback ile temizleme yönünde doğal bir teşvike sahip oluyor. Yine de 3DS bu hesabı epey değiştiriyor, yüz yüze işlemlerde de sorumluluk genelde kartı çıkaran bankada oluyor
Sonuçta tüm tüketiciler tüm dolandırıcılık maliyetini birlikte ödüyor. Ekstrede ayrı bir kalem olarak görünmüyor sadece; satın aldığımız her şey için biraz daha fazla ödüyoruz
eBay’de çalıntı kredi kartıyla ilgili yaşadığım olayda başlangıçta her şey iyi gidiyordu; ama eBay bankaya bir yığın belge gönderince chargeback tersine döndü ve çok geçmeden banka hesabım bile kapatıldı
Chargeback ile para geri geldi diye iş bitmiyor. Başta karşı tarafa yanıt vermesi için süre tanınırken geçici bir işlem gibi duruyor; sonra eBay beni evrakla boğdu ve chargeback’i tekrar açtırmam yaklaşık 30 gün sürdü. Açıklamaları o kadar etkiliydi ki bankam bu kez beni dolandırıcı sanmaya başladı
Bankanın dolandırıcılık zararını yediği iddiasının da %100 doğru olduğundan emin değilim. Chargeback’e maruz kalan tarafın buna itiraz etmesinin nedeni, sonuçta ya chargeback yiyen ya da chargeback başlatan taraftan birinin zararı üstlenecek olması. Eğer zararı banka üstleniyor olsaydı, eBay’in uzman personel çalıştırıp soruşturma yapması ve benim chargeback’ime karşı koyması için bir neden olmazdı
3D Secure her yerde zorunlu olsa çok daha faydalı olurdu, ama anladığım kadarıyla ABD’de neredeyse hiç kullanılmıyor. ABD pazarı o kadar büyük ki kartı çıkaranlar 3D Secure olmayan talepleri kabul etmek zorunda kalıyor; yoksa müşteriler kartlarını çok fazla yerde kullanamazdı
Son derece güçlü bir dolandırıcılık önleme mekanizması ciddi biçimde kısıtlanmış durumda; dünyanın geri kalanından bakınca bu gerçekten sinir bozucu
ABD’li tüketicilerin biraz rahatsızlık gibi görünen bir şeydense dolandırılmayı tercih etmesini anlamıyorum. Dolandırıcılığın mağduru olmasanız bile iş yerleri bu maliyeti ve sigorta bedelini ürün fiyatlarına yansıtıyor; yani sonuçta herkes ödüyor
Ama sektör genelinde bu klasik bir koordinasyon sorunu. Daha kolay alternatifler kaldığı için dönüşüm düşüyor; tüm iş yerleri ve bankalar aynı anda 3DS zorunlu kılsa, insanların geçebileceği daha kolay bir seçenek kalmaz. İsteseniz de istemeseniz de kullanıcılar daha güvenli yeni yönteme alışır ve dönüşüm oranı yeniden yükselir
AB’nin birçok ödeme için 3DS’yi zorunlu kılması da bu mantıkla ilerledi; ama orada da düzenleyiciler %100 uygulamanın ters tepeceğini kabul etti ve uygun nokta ikisinin arasında bir yerde
Aynı ilkeye başka bir örnek de şu: ABD kredi kartlarında PIN yok. Tek tek bankalar PIN getirirse müşteriler PIN istemeyen rakip kartlara kayar ve kullanım büyük ölçüde düşer. Diğer pazarlarda düzenleyici müdahale veya kart ağı teşvikleri sayesinde tüm kartlarda PIN var ve insanlar buna alışmış durumda
Kredi kartlarının ilk ortaya çıktığı dönemde, yani ABD’de başlatıldığı sırada Kongre 1974 Fair Credit Billing Act yasasını çıkardı ve sahte bir hesap dönemi kapandıktan sonra 60 gün içinde kayıp kart bildirilirse tüketici sorumluluğunu 50 dolarla sınırladı. O zamanlar ödemeler, “ka-chunk” sesi çıkaran makinelerin kartın karbon kopyasını kağıda geçirdiği, tamamen çevrimdışı bir sistemdi
Bu yasa değişmedi ve fiiliyatta çoğu banka 50 doları bile uygulamıyor; bildirilen olaylarda kart sahibine hiçbir sorumluluk yüklemiyor. Müşteriyi 50 dolar için kızdırmak bankaya değmiyor
İnternet yüzünden kartları çalmak ve kötüye kullanmak bir anda çok kolaylaştı; ama bankalar hâlâ hesap dönemi bittikten sonra 60 gün içinde bildirilen tüm zararları üstlenmek zorunda. Bu yüzden ABD bankaları kredi kartı işlemlerinin gerçek zamanlı izlenmesine devasa yatırım yaptı ve son sorumlu kendileri olduğu için bunu çok ciddiye alıyor. Buna karşılık tüketiciler daha az önemsiyor. Tüketici açısından ABD kartlarının Avrupa kartlarına göre çok daha gevşek görünmesinin sebebi bu: Avrupa’dakinden farklı olarak tüketici sorumluluktan muaf tutuluyor ve banka arka planda çok daha fazla yatırım yapıyor
Ayrı bir konu olarak AB, kart şirketlerinin alabileceği mutabakat ücretlerini düzenledi, ama ABD üst sınır koymadı. Bunun sonucu olarak ABD’de kart sahipleri, özellikle en zengin üst %10 kesimde belirgin olmak üzere, kart kullanımından ciddi ödüller alabiliyor; mutabakat ücretleri sınırlı olan AB kartlarıyla bu pratikte mümkün değil
Şu anda iş yerlerinin sadece düşük ücretli kartları kabul edebilmesini sağlamaya çalışan büyük bir dava sürüyor. Standart VISA/MC/AMEX sözleşmeleri tüm kartların aynı şekilde muamele görmesini şart koşuyor; bu da kart şirketlerine insanları daha yüksek mutabakat ücretli kartlara yönlendirme teşviki veriyor. Davanın sonucu ne olur göreceğiz; ama o zamana kadar ABD’de yüksek harcama yapan tüketicilerin kart ödülleri çok daha büyük olabiliyor ve bu da yine kart kullanımını artırıp AB tarzı kartlara kıyasla sürtünmeyi azaltıyor
Dolandırılmayı tercih etmiyoruz; bu daha çok kartı çıkaran taraf ile iş yeri arasındaki pazarlığın konusu
Geçmişte şirketimizde işe alınan biri, hediye kartına bakiye yüklemenin bir yolunu bulduğunu övünerek anlatmaya başlamıştı. Sonradan FBI soruşturması altında olduğunu öğrendik
Üstelik bu bir devlet yüklenicisiydi; sonunda hayatımda gördüğüm en iri güvenlik görevlisi gelip onu dışarı çıkardı
Sanal kredi kartları uzun zamandır vardı. 15 yıldan daha uzun süre önce Bank of America veya Citi’nin bunu sunduğunu hatırlıyorum; ya bir Java uygulamasıydı ya da bağımsız bir çalıştırılabilir dosyaydı. Neden daha yaygınlaşmadığına şaşırıyorum
Robinhood bunu gerçekten çok iyi uyguluyor. Kullandığım en iyi sanal kredi kartı sistemi ve çok akıcı. Kartı tek kullanımlık, 24 saatlik ya da siz iptal edene kadar süresiz olarak yetkilendirebiliyorsunuz; UI/UX’i de harika
Her şeyin abonelik olduğu bugünkü dünyada bunun neden yaygınlaşmadığını anlamıyorum. Son kullanma tarihi ve harcama limiti belirleyebilmek, abonelik iptali konusunda kirli pazarlıklara girmemek için gerçekten harikaydı
Kısa süre önce eşimin kartında yurt dışından şüpheli işlem olduğuna dair bankadan bir SMS aldık; tutar kelimenin tam anlamıyla 0 dolardı ve bu, eşimin telefon ya da bilgisayar kullanmadığı bir zamandı
İlk başta mesajın kendisinin oltalama olduğunu düşündüm; ama çevrimiçi kontrol ettiğimde mesaj biçiminin tuttuğunu gördüm ve banka web sayfası da geri bildirim sürecinde hiçbir bilgi talep etmeyeceğini garanti ediyordu, bu yüzden işlemi yapmadığını onayladım
Banka kartı hemen iptal edip yenisini gönderdi
Başta bunun bankanın güvenlik sisteminin aşırı tepki vermesi olduğunu sanmıştım; ama görünen o ki biri bu yazıda anlatılan şeyi gerçekten yapıyormuş ve banka bunu daha erken tespit etmiş
Çevrimiçi ödemeler için ayrı bir kart kullanıp içine sadece gerekli kadar para koymak iyi olur
Bunun safça bir düşünce olduğunun farkındayım
Yazıya dönersek, zayıf nokta parolaydı ve bu da 3D Secure kullanmayan başka iş yerlerine giden yolu açtı
Yazıdan anlaşıldığı kadarıyla saldırganın tamamen otomatik bir sistemi var; bu yüzden büyük iş yerlerinin aynı IP adresinden farklı hesaplara otomatik giriş denemeleriyle başa çıkması gerekiyor. Kendi Wordfence günlüklerimize baktığımda IP döngüsünün o kadar hızlı olmadığını görüyorum; kalıcı IP engelleriyle buna bir ölçüde karşılık verilebilecek gibi
Parola sızıntısının tüm kredi kartı verisinin sızmasına yol açmaması gerekir. Aynı bilgiler mağazada basılan kağıt fişlerde de yer alıyor; bazen 4 hane, bazen 10 hane görünüyor. Mağazada ortada bırakılan kağıt fişlerle bile kaba kuvvet saldırısı hâlâ mümkün
Ek olarak, iş yerleri kredi kartı işleyicisinde istedikleri güvenlik düzeyini seçemiyor. Örneğin authorize.net’te adres eşleşmese bile ödeme alabiliyorsunuz
Asıl soru, paranın nasıl dışarı çıkarıldığı. Gevşek güvenlikli bir iş yerinden hediye kartı mı alındı?
Numarayı tahmin etmekle parayı sistemin dışına çıkarmak tamamen farklı şeyler
İşleyici pazarında bir miktar ayrışma var. Bir tarafta müşteriye sadelik sunup yükünü azaltanlar, diğer tarafta ise tüm karmaşıklığı açığa çıkarıp ayrıntılı kontrol verenler var. İlki güvenlik gereksinimlerini belirlemenize izin vermez; ikincisi yüzlerce seçenek sunar. Elbette bunların arasında konumlanan işleyiciler de var ve bu iki eksen genelde farklı müşteri kitlelerini hedefliyor