With a Filter Bypass and Some Hexadecimal, Hacked Credit Card Numbers Are Still, Still Google-able
A Word on Credit Card Hacking
Pokud mě znáte, nebo jste četli můj předchozí příspěvek, víte, že jsem pracoval pro velmi zajímavou společnost před nástupem do Toptal. V této společnosti náš poskytovatel platebních služeb zpracovával transakce v hodnotě kolem 500 tisíc dolarů denně. Součástí mé práce bylo zajistit, aby náš poskytovatel odpovídal standardu PCI-DSS – tedy standardu Payment Card Industry – Data Security Standard.
Dá se říci, že to nebyla práce pro slabé povahy. V tuto chvíli jsem docela důvěrně obeznámen s kreditními kartami (CC), hackováním kreditních karet a zabezpečením webu obecně. Koneckonců, naším úkolem bylo chránit data našich uživatelů, zabránit jejich hacknutí, krádeži nebo zneužití.
Dovedete si představit mé překvapení, když jsem v roce 2007 na Slashdotu uviděl článek Bennetta Haseltona: Proč jsou čísla CC stále tak snadno k nalezení? Stručně řečeno, Haselton dokázal najít čísla kreditních karet prostřednictvím Googlu, nejprve vyhledáním prvních osmi číslic karty ve formátu „nnnn nnnn“ a později pomocí některých pokročilých dotazů postavených na rozsahu čísel. Například pomocí „4060000000000000..406099999999999999“ mohl najít všechna šestnáctimístná čísla primárních účtů (PAN) společnosti CHASE (jejíž všechny karty začínají 4060). Mimochodem: zde je úplný seznam identifikačních čísel vydavatelů.
V té době jsem o tom moc nepřemýšlel, protože Google okamžitě začal filtrovat typy dotazů, které Bennett používal. Když jste se pokusili zadat do Googlu takový rozsah, Google vám nabídl stránku, na které stálo něco ve smyslu: „Jste špatný člověk.“
Přibližně před půl rokem se mi při vzpomínkách se starým přítelem tento hack čísla kreditní karty znovu vybavil. Krátce nato jsem zjistil něco znepokojivého. Ne nějak strašně znepokojivé, ale rozhodně znepokojivé – tak jsem to oznámil Googlu a čekal jsem. Po měsíci bez odezvy jsem jim to oznámil znovu, ale bezvýsledně.
Drobným vylepšením starého Haseltonova triku jsem byl schopen vygooglovat čísla kreditních karet, čísla sociálního pojištění a další citlivé informace, které mě zajímaly.
Bennett
Včera mě několik mých přátel (buhera.blog.hu a _2501) upozornilo na novější příspěvek na Slashdotu:
Autor článku, opět Bennett Haselton, který napsal původní článek v roce 2007, tvrdí, že čísla kreditních karet lze stále vygooglovat. Nelze sice použít hackerský dotaz na rozsah čísel, ale stále to lze. Namísto použití jednoduchých rozsahů musíte na dotaz použít specifické formátování. Něco takového: „1234 5678“ (všimněte si mezery uprostřed). Na tento dotaz se zobrazí spousta výsledků, ale jen málo z nich je skutečně zajímavých. Mezi soutěžícími jsou telefonní čísla, poštovní směrovací čísla a podobně. Není to nijak extrémně znepokojivé. Ale přichází zvrat v podobě hackování kreditních karet.
Metodika
Zajímalo mě, jestli je ještě možné získat čísla kreditních karet online tak, jak to bylo možné v roce 2007. Jako každý správný inženýr obvykle přistupuji k věcem pomocí řádně promyšleného a inteligentního plánu, který je třeba dokonale a s maximální přesností provést. Pokud jste tuto metodu vyzkoušeli, možná víte, že může opravdu tvrdě selhat – v takovém případě přijde vaše pečlivé plánování a úsilí vniveč.
V IT máme tendenci přehnaně intelektualizovat, i když to není zrovna opodstatněné. Viděl jsem, jak moji přátelé a kolegové zcela rozbili aplikace pomocí zdánlivě náhodných vstupů. Jejich úspěšnost byla ohromující a úsilí, které do toho vložili, se blížilo nule. Tehdy jsem se naučil, že k otevření dveří někdy stačí jen zaklepat.“
Hackování kreditních karet
Předchozí odstavec byl chytře zamaskovaný pokus, jak ze mě udělat menšího idiota, když předvádím své „elitní hackerské schopnosti“. Oops.
Nejprve jsem vyzkoušel několik přístupů založených na dotazu na rozsah. Pak jsem se podíval na pokročilé dotazy a v podstatě na cokoli, co by se dalo vymyslet za nějakou tu hodinu. Žádný z nich nepřinesl významné výsledky.
A pak jsem dostal šílený nápad.
Co když došlo k nesouladu mezi filtrovacím enginem a skutečným back-endem? Co když zpráva, kterou jsem dostal od Googlu („Jste špatný člověk“), nepocházela ze samotného back-endu, ale z určeného filtrovacího enginu, který Google implementoval, aby cenzuroval dotazy, jako byl ten můj?
Z architektonického hlediska by to dávalo velký smysl. A takové chyby jsou docela běžné – v ITSEC se s nimi setkáváme neustále, zejména v řešeních IDS/IPS, ale i v běžném softwaru. Existuje filtrační procedura, která zpracovává data a předává je backendu pouze v případě, že je považuje za přijatelná/neškodná. Nicméně back-end a filtrovací server téměř nikdy nezpracovávají vstupní data úplně stejným způsobem. Zdánlivě platný vstup tak může projít filtrem a způsobit v back-endu spoušť, čímž filtr efektivně obejde.
Tento typ chování můžete obvykle vyvolat tím, že vstup poskytnete v různých kódováních. Například: Co takhle místo desetinných čísel (0-9) převést je do šestnáctkové, osmičkové nebo dvojkové soustavy? No, hádejte co…
Vyhledejte to a Google vám řekne, že jste špatný člověk: „4060000000000000..406099999999999999“
Vyhledejte to a Google vám rád vyhoví: „0xe6c8c69c9c000..0xe6d753e6ecfff“
Jediné, co musíte udělat, je převést čísla kreditních karet z desítkové do šestnáctkové soustavy. To je vše.
Výsledky zahrnují…
- Humorné soubory CSV plné potenciálně citlivých informací.
- Závadné soubory protokolu elektronického obchodu.
- Citlivé informace sdílené na hackerských stránkách (a dokonce i na Facebooku).
Je to opravdu děsivá věc.
Vím, že tato chyba nebude inspirovat žádný bezpečnostní výzkum, ale tady ji máte. Google udělal tuto chybu a zapomněl mi ani odepsat. No, to se stává. Nezávidím ale bezpečnostním pracovníkům ve velkém G. Musí mít spoustu věcí, na které si musí dávat pozor. O tomhle hacknutí čísla kreditní karty tu píšu proto, že:
- Je to relativně malý dopad.
- Kdo má zájem a motivaci, už na to určitě přišel.
- Citujeme-li Haseltona, pokud velcí hráči nepřebírají odpovědnost a nejednají v souvislosti s těmito zneužitími, pak „je správné si na problém posvítit a trvat na tom, aby jej co nejdříve napravili.“
Tento trik lze použít k vyhledávání telefonních čísel, SSN, TFN a dalších. A jak napsal Bennett, tato čísla je mnohem těžší změnit než kreditní kartu, u které můžete jednoduše zavolat do banky a kartu zrušit.
Ukázkové dotazy
UPOZORNĚNÍ: NEVYHLEDÁVEJTE celé číslo vlastní kreditní karty!
Vyhledejte libovolné číslo CC PAN začínající na 4060:4060000000000000..4060999999999999 ? 0xe6c8c69c9c000..0xe6d753e6ecfff
Nějaká maďarská telefonní čísla od poskytovatele „Telenor“? Žádný problém:36200000000..36209999999 ? 0x86db02a00..0x86e48c07f
Podívejte se na SSN. Ty naštěstí nevracejí mnoho smysluplných výsledků:100000000..999999999 ? 0x5f5e100..0x3b9ac9ff
Je jich mnohem, mnohem více.
Pokud najdete něco velmi znepokojivého nebo pokud vás zajímá hackování kreditních karet, zanechte to v komentářích nebo mě kontaktujte e-mailem nebo na Twitteru @synsecblog. Volat policii je v těchto případech obvykle marné, ale za pokus to možná stojí. Daný obchodník nebo poskytovatel karty je obvykle ochotnější problém řešit.
Kam dál
No, Google to samozřejmě musí napravit, případně s pomocí velkých hráčů jako Visa a Mastercard. Haselton ostatně ve dvou výše odkazovaných článcích uvádí řadu zajímavých návrhů.
Co však musíte udělat vy (a proč jsem napsal tento příspěvek), je šířit informace. Podvody s kreditními kartami jsou velkým průmyslovým odvětvím a pouhá informovanost vás může zachránit před tím, abyste se stali obětí. Dále, pokud máte stránky elektronického obchodu nebo zpracováváte jakékoli údaje o kreditních kartách, ujistěte se, že jste zabezpečeni. PCI-DSS je dobrým vodítkem, ale zdaleka není dokonalý. Navíc je vždy dobré vygooglovat své stránky pomocí rozšířeného dotazu „site:mysite.com“ a hledat citlivá čísla. Je velmi, velmi malá šance, že něco najdete – ale pokud ano, musíte na to okamžitě reagovat.
Také malá přátelská rada: Nikdy byste neměli nikomu sdělovat údaje o své kreditní kartě. Radím vám, abyste pokud možno používali PayPal nebo podobnou službu. Další informace najdete na těchto odkazech:
- Bezpečnostní tipy pro kreditní karty společnosti Visa
- Bezpečnostní tipy pro kreditní karty společnosti Citi
A ještě několik obecných rad: nestahujte věci, o které jste nežádali, neotvírejte nevyžádané e-maily a pamatujte, že vaše banka po vás nikdy nebude chtít heslo.
Mimochodem:
Pokud si myslíte, že neexistuje nikdo tak hloupý, aby naletěl na tyto techniky hackování kreditních karet nebo aby na internetu prozradil údaje o své kreditní kartě, podívejte se na @NeedADebitCard.
Držte se v bezpečí, lidé!