Cu o ocolire a filtrului și ceva hexadecimal, numerele de carduri de credit piratate sunt încă, încă Google-abile
Un cuvânt despre hackingul cardurilor de credit
Dacă mă cunoașteți sau dacă ați citit postul meu anterior, știți că am lucrat pentru o companie foarte interesantă înainte de a mă alătura Toptal. La această companie, furnizorul nostru de plăți procesa tranzacții în jur de 500.000 de dolari pe zi. O parte din munca mea era să fac ca furnizorul nostru să fie conform PCI-DSS – adică, conform cu Payment Card Industry – Data Security Standard.
Se poate spune cu siguranță că nu era o muncă pentru cei slabi de inimă. În acest moment, sunt destul de familiarizat cu cardurile de credit (CC), cu piratarea cardurilor de credit și cu securitatea web în general. La urma urmei, treaba noastră era să protejăm datele utilizatorilor noștri, să împiedicăm ca acestea să fie piratate, furate sau folosite în mod necorespunzător.
Vă puteți imagina surpriza mea când am văzut articolul lui Bennett Haselton din 2007 pe Slashdot: Why Are CC Numbers Still So Easy to Find? Pe scurt, Haselton a reușit să găsească numerele cardurilor de credit prin Google, mai întâi căutând primele opt cifre ale unui card în formatul „nnnn nnnn”, iar mai târziu folosind câteva interogări avansate construite pe intervale de numere. De exemplu, a putut folosi „4060000000000000..40609999999999999999999999” pentru a găsi toate numerele de cont primar (PAN) din 16 cifre de la CHASE (ale căror carduri încep toate cu 4060). Apropo: iată o listă completă a numerelor de identificare a emitenților.
La momentul respectiv, nu m-am gândit prea mult la asta, deoarece Google a început imediat să filtreze tipurile de interogări pe care le folosea Bennett. Când încercai să cauți pe Google un astfel de interval, Google îți oferea o pagină care spunea ceva de genul „Ești o persoană rea”.
Cu aproximativ șase luni în urmă, în timp ce depănam amintiri cu un vechi prieten, acest hack al numerelor de carduri de credit mi-a venit din nou în minte. La scurt timp după aceea, am descoperit ceva alarmant. Nu teribil de alarmant, dar cu siguranță alarmant – așa că am anunțat Google și am așteptat. După o lună fără răspuns, i-am notificat din nou, fără niciun rezultat.
Cu o mică modificare a vechiului truc al lui Haselton, am reușit să caut pe Google numere de carduri de credit, numere de asigurări sociale și orice alte informații sensibile de interes.
Bennett
Ieri, niște prieteni de-ai mei (buhera.blog.hu și _2501) mi-au adus în atenție o postare mai recentă de pe Slashdot: Credit Card Numbers Still Google-able.
Autorul articolului, din nou Bennett Haselton, care a scris articolul original în 2007, susține că numerele de carduri de credit pot fi încă căutate pe Google. Nu se poate folosi hack-ul de interogare a intervalului de numere, dar încă se poate face. În loc să folosiți intervale simple, trebuie să aplicați o formatare specifică interogării dumneavoastră. Ceva de genul: „1234 5678” (observați spațiul din mijloc). Pentru această interogare apar o mulțime de rezultate, dar foarte puține sunt de interes real. Printre concurenți se numără numere de telefon, coduri poștale și altele asemenea. Nu este extrem de alarmant. Dar iată că intervine întorsătura hackerilor de carduri de credit.
Metodologia
Eram curios dacă mai este posibil să obținem online numere de carduri de credit așa cum se putea în 2007. Ca orice bun inginer, de obicei abordez lucrurile folosind un plan inteligent și corect interpretat, care trebuie executat cu cea mai mare precizie. Dacă ați încercat această metodă, s-ar putea să știți că poate eșua foarte greu – caz în care planificarea și efortul dvs. minuțios se duc pe apa sâmbetei.
În IT avem tendința de a intelectualiza excesiv, chiar și atunci când acest lucru nu este tocmai justificat. Am văzut cum prietenii și colegii mei au stricat complet aplicații folosind intrări aparent aleatorii. Rata lor de succes a fost uimitoare, iar efortul pe care l-au depus a fost aproape de zero. Atunci am învățat că, pentru a deschide o ușă, uneori trebuie doar să bați la ușă.
The Credit Card Hack
Pragmentul anterior a fost o încercare inteligent deghizată de a mă face să par mai puțin idiot atunci când îmi arăt „abilitățile mele de hacker de elită”. Oops.
În primul rând, am încercat mai multe abordări bazate pe interogări de interval. Apoi, m-am uitat la interogări avansate și cam tot ce ți-ar putea veni în aproximativ o oră. Niciuna dintre ele nu a dat rezultate semnificative.
Și apoi am avut o idee nebunească.
Ce-ar fi dacă ar exista o neconcordanță între motorul de filtrare și back-end-ul real? Dacă mesajul pe care l-am primit de la Google („Ești o persoană rea”) nu provenea de la back-end-ul propriu-zis, ci de la un motor de filtrare desemnat pe care Google l-a implementat pentru a cenzura interogări ca a mea?
Aceasta ar avea mult sens din punct de vedere arhitectural. Iar astfel de bug-uri sunt destul de frecvente – le vedem tot timpul în ITSEC, în special în soluțiile IDS/IPS, dar și în software-ul obișnuit. Există o procedură de filtrare care procesează datele și le oferă back-end-ului doar dacă consideră că datele sunt acceptabile/ne-maligne. Cu toate acestea, back-end-ul și serverul de filtrare aproape niciodată nu analizează datele de intrare exact în același mod. Astfel, o intrare aparent validă poate să treacă prin filtru și să facă ravagii în back-end, ocolind efectiv filtrul.
De obicei, puteți declanșa acest tip de comportament prin furnizarea intrării în diferite codificări. De exemplu: în loc să folosiți numere zecimale (0-9), ce-ar fi să le convertiți în hexazecimal sau octal sau binar? Ei bine, ghiciți ce…
Cercetați acest lucru și Google vă va spune că sunteți o persoană rea: „40600000000000000000..406099999999999999999999”
Cercetați acest lucru și Google va fi fericit să vă ajute: „0xe6c8c8c69c9c000..0xe6d753e6ecfff”.
Singurul lucru pe care trebuie să îl faceți este să convertiți numerele de card de credit din zecimal în hexazecimal. Asta este.
Rezultatele includ…
- Filiere CSV uriașe, pline de informații potențial sensibile.
- Filiere de jurnal de comerț electronic defectuoase.
- Informații sensibile împărtășite pe site-uri de hackeri (și chiar pe Facebook).
Este cu adevărat înfricoșător.
Știu că acest bug nu va inspira nicio cercetare de securitate, dar iată-l. Google a făcut acest boo-boo și a neglijat măcar să-mi răspundă. Ei bine, se mai întâmplă. Totuși, nu-i invidiez pe cei de la securitate de la marele G. Trebuie să aibă o mulțime de lucruri de care să fie atenți. Postez despre acest hack al numerelor de card de credit aici pentru că:
- Este un impact relativ scăzut.
- Cine este interesat și motivat își va fi dat seama de asta până acum.
- Pentru a-l cita pe Haselton, dacă marii jucători nu își asumă responsabilitatea și nu acționează în legătură cu aceste exploit-uri, atunci „ceea ce trebuie făcut este să punem în lumină problema și să insistăm ca ei să o rezolve cât mai repede posibil”.
Acest truc poate fi folosit pentru a căuta numere de telefon, SSN-uri, TFN-uri și multe altele. Și, așa cum a scris Bennett, aceste numere sunt mult mai greu de schimbat decât cardul de credit, pentru care puteți pur și simplu să sunați la bancă și să anulați cardul.
Exemple de interogări
Atenție: NU căutați pe Google propriul număr de card de credit în întregime!
Căutați orice CC PAN care începe cu 4060:4060000000000000..406099999999999999999999 ? 0xe6c8c69c9c000..0xe6d753e6ecfff
Câteva numere de telefon din Ungaria de la furnizorul ‘Telenor’? Nici o problemă:36200000000..3620999999999 ? 0x86db02a00..0x86e48c07f
Cercetați SSN-urile. Din fericire, acestea nu returnează multe rezultate semnificative:100000000..99999999999 ? 0x5f5e100..0x3b9ac9ff
Există multe, multe altele.
Dacă găsiți ceva foarte alarmant, sau dacă sunteți curioși în legătură cu hacking-ul cardurilor de credit, vă rog să lăsați în comentarii sau să mă contactați prin e-mail la sau pe Twitter la @synsecblog. Apelarea poliției este de obicei inutilă în aceste cazuri, dar ar putea merita o încercare. Comerciantul dat sau furnizorul de carduri este, de obicei, mai dornic să rezolve problema.
Unde să mergem de aici
Ei bine, Google trebuie în mod evident să rezolve acest lucru, eventual cu ajutorul marilor jucători precum Visa și Mastercard. De fapt, Haselton oferă o serie de sugestii interesante în cele două articole legate mai sus.
Ce trebuie să faceți, totuși (și motivul pentru care am scris această postare), este să răspândiți vestea. Frauda cu carduri de credit este o industrie mare, iar simpla conștientizare vă poate salva de la a deveni o victimă. Mai mult, dacă aveți un site de comerț electronic sau vă ocupați de procesarea cărților de credit, asigurați-vă că sunteți în siguranță. PCI-DSS este o linie directoare bună, dar este departe de a fi perfectă. În plus, este întotdeauna o idee bună să căutați pe Google site-ul dvs. cu interogarea avansată „site:mysite.com”, căutând numere sensibile. Există o șansă foarte, foarte mică să găsiți ceva – dar dacă găsiți, trebuie să acționați imediat.
De asemenea, un mic sfat prietenesc: Nu ar trebui să dați niciodată informațiile despre cardul de credit nimănui. Sfatul meu ar fi să folosiți PayPal sau un serviciu similar ori de câte ori este posibil. Puteți consulta aceste linkuri pentru mai multe informații:
- Consiliile de siguranță pentru cardurile de credit de la Visa
- Consiliile de siguranță pentru cardurile de credit de la Citi
Și câteva sfaturi generale: nu descărcați lucruri pe care nu le-ați cerut, nu deschideți e-mailuri spam și nu uitați că banca dvs. nu vă va cere niciodată parola.
Apropo: Dacă credeți că nu există nimeni atât de prost încât să cadă în capcana acestor tehnici de piratare a cardurilor de credit sau să-și dea informațiile despre cardul de credit pe internet, aruncați o privire la @NeedADebitCard.
Stay safe people!