With a Filter Bypass and Some Hexadecimal, Hacked Credit Card Numbers Are Still, Still Google-able

A Word on Credit Card Hacking

Jos tunnet minut tai olet lukenut edellisen postaukseni, tiedät, että työskentelin hyvin mielenkiintoisessa yhtiössä ennen liittymistäni Toptaliin. Tässä yrityksessä maksupalveluntarjoajamme käsitteli transaktioita noin 500 000 dollarin edestä päivässä. Osa työtäni oli tehdä palveluntarjoajamme PCI-DSS-yhteensopivaksi – eli Payment Card Industry – Data Security Standard -standardin mukaiseksi.

Voidaan varmasti sanoa, että tämä ei ollut työtä heikkohermoisille. Tässä vaiheessa olen melko perehtynyt luottokortteihin (CC), luottokorttien hakkerointiin ja verkkoturvallisuuteen yleensä. Loppujen lopuksi tehtävämme oli suojella käyttäjiemme tietoja, estää niiden hakkerointi, varastaminen tai väärinkäyttö.

Voitte kuvitella yllätykseni, kun näin Bennett Haseltonin vuonna 2007 julkaistun artikkelin Slashdotissa: Why Are CC Numbers Still So Easy to Find?. Lyhyesti sanottuna Haselton pystyi löytämään luottokorttinumerot Googlen kautta, ensin etsimällä kortin kahdeksan ensimmäistä numeroa muodossa ”nnnn nnnn” ja myöhemmin käyttämällä joitakin kehittyneitä kyselyjä, jotka perustuivat numeroalueisiin. Esimerkiksi ”40600000000000000000..406099999999999999999999” avulla hän pystyi löytämään kaikki 16-numeroiset ensisijaiset tilinumerot (Primary Account Numbers, PAN) CHASE-yhtiöltä (jonka kaikki kortit alkavat numerolla 4060). Muuten: tässä on täydellinen luettelo Issuer ID -numeroista.

En tuolloin ajatellut asiasta paljoakaan, sillä Google alkoi välittömästi suodattaa Bennettin käyttämiä kyselytyyppejä. Kun yritti googlettaa tuollaista aluetta, Google näytti sivun, jossa luki jotain tyyliin ”Olet paha ihminen”.

Kuusi kuukautta sitten muistellessani vanhaa ystäväni kanssa tämä luottokorttinumerohakkerointi tuli taas mieleeni. Pian sen jälkeen huomasin jotain hälyttävää. Ei kauhean hälyttävää, mutta ehdottomasti hälyttävää – joten ilmoitin asiasta Googlelle ja odotin. Kuukauden kuluttua ilman vastausta, ilmoitin heille uudelleen, mutta tuloksetta.

Haseltonin vanhaa temppua hiukan muokkaamalla pystyin googlaamaan luottokorttinumeroita, sosiaaliturvatunnuksia ja muita arkaluonteisia tietoja, jotka kiinnostivat minua.

Selvitin siis Googlen, ja odotin. Kuukauden kuluttua ilman vastausta, ilmoitin heille uudelleen turhaan. Haseltonin vanhaan temppuun tehdyllä pienellä hienosäädöllä pystyin googlaamaan luottokorttinumeroita, sosiaaliturvatunnuksia ja muita arkaluonteisia tietoja.

Bennett

Eilen eräät ystäväni (buhera.blog.hu ja _2501) toivat tietooni tuoreemman Slashdot-postauksen: Credit Card Numbers Still Google-able.

Artikkelin kirjoittaja, jälleen Bennett Haselton, joka kirjoitti alkuperäisen artikkelin jo vuonna 2007, väittää, että luottokorttinumeroita voi edelleen googlata. Numeroaluekyselyhakkerointia ei voi käyttää, mutta se on silti mahdollista. Sen sijaan, että käyttäisit yksinkertaisia lukualueita, sinun on sovellettava kyselyyn erityisiä muotoiluja. Jotain sellaista kuin: ”1234 5678” (huomaa välilyönti keskellä). Tällä kyselyllä saadaan paljon osumia, mutta vain harvat ovat todella kiinnostavia. Kilpailijoiden joukossa on puhelinnumeroita, postinumeroita ja muita vastaavia. Ei kovin hälyttävää. Mutta tässä tulee luottokorttihakkerin käänne.

Metodologia

Olin utelias, oliko yhä mahdollista saada luottokorttinumeroita netistä samalla tavalla kuin vuonna 2007. Kuten kuka tahansa hyvä insinööri, lähestyn asioita yleensä käyttämällä oikein laadittua ja älykästä suunnitelmaa, joka on toteutettava täydellisesti ja äärimmäisen tarkasti. Jos olet kokeillut tuota menetelmää, saatat tietää, että se voi epäonnistua todella pahasti – jolloin huolellinen suunnittelusi ja vaivannäkösi menee hukkaan.

Tietotekniikassa meillä on taipumus yli-intellektualisoida, vaikka se ei olisikaan aivan perusteltua. Olen nähnyt ystävieni ja kollegojeni rikkovan sovelluksia täysin käyttämällä näennäisesti satunnaisia syötteitä. Heidän onnistumisprosenttinsa oli huikea ja heidän siihen käyttämänsä vaivannäkö oli lähellä nollaa. Silloin opin, että oven avaamiseksi on joskus vain koputettava.”

Luottokorttihakkeri

Edellinen kappale oli taitavasti naamioitu yritys saada minut näyttämään vähemmän idiootilta, kun esittelen ”eliittihakkerointitaitojani”. Hups.

Aluksi kokeilin useita range-kyselyyn perustuvia lähestymistapoja. Sitten katsoin edistyneempiä kyselyjä ja melkein mitä tahansa, mitä voi keksiä noin tunnissa. Mikään niistä ei tuottanut merkittäviä tuloksia.

Ja sitten sain hullun idean.

Mitä jos suodatusmoottorin ja varsinaisen back-endin välillä oli epäsuhta? Entä jos Googlelta saamani viesti (”Olet huono ihminen”) ei ollutkaan lähtöisin itse back-endistä, vaan sen sijaan määrätystä suodatusmoottorista, jonka Google oli ottanut käyttöön sensuroidakseen minun kaltaiseni kyselyt?

Se olisi arkkitehtuurin kannalta erittäin järkevää. Ja tuollaiset viat ovat melko yleisiä – näemme niitä ITSEC:ssä koko ajan, erityisesti IDS/IPS-ratkaisuissa, mutta myös tavallisissa ohjelmistoissa. On olemassa suodatusmenettely, joka käsittelee dataa ja antaa sen back-endille vain, jos se pitää dataa hyväksyttävänä/ei-haitalliseksi. Back-end ja suodatuspalvelin eivät kuitenkaan juuri koskaan analysoi syötettä täsmälleen samalla tavalla. Näin ollen näennäisesti kelvollinen syöte voi mennä suodattimen läpi ja aiheuttaa tuhoa taustapalvelimessa, jolloin suodatin voidaan tehokkaasti ohittaa.

Voit yleensä laukaista tämäntyyppisen käyttäytymisen antamalla syötteen eri koodauksissa. Esimerkiksi: sen sijaan, että käytät desimaalilukuja (0-9), miten olisi, jos muuttaisit ne heksadesimaaliksi tai oktaaliksi tai binääriksi? No, arvaa mitä…

Hae tätä ja Google kertoo sinulle, että olet paha ihminen: ”40600000000000000000..4060999999999999999999”

Hae tätä, ja Google tekee mielellään palveluksen: ”0xe6c8c69c9c000..0xe6d753e6ecfff”.

Ainut mitä sinun tarvitsee tehdä, on muuntaa luottokorttinumerot desimaalista heksadesimaaliksi. Siinä kaikki.

Tuloksena on muun muassa…

  • Valtavat CSV-tiedostot täynnä mahdollisesti arkaluonteisia tietoja.

  • Virheelliset verkkokaupan lokitiedostot.

  • Hakkerisivustoilla (ja jopa Facebookissa) jaettuja arkaluonteisia tietoja.

Todella pelottavaa kamaa.

Tiedän, että tämä vika ei innosta mihinkään tietoturvatutkintaan, mutta siinäpä se. Google teki tämän mokan ja laiminlöi edes kirjoittaa minulle takaisin. No, sitä sattuu ja tapahtuu. En tosin kadehdi ison G:n tietoturvaväkeä. Heillä on varmasti paljon varottavaa. Kirjoitan tästä luottokorttinumerohakkerista tänne, koska:

  1. Sen vaikutus on suhteellisen vähäinen.
  2. Kuka tahansa kiinnostunut ja motivoitunut on jo tajunnut tämän.
  3. Haseltonia lainatakseni, jos suuret toimijat eivät ota vastuuta ja toimi näiden hyväksikäyttötapausten suhteen, niin ”oikea teko on valottaa ongelmaa ja vaatia heitä korjaamaan se mahdollisimman pian.”

Tämän tempun avulla voidaan etsiä puhelinnumeroita, SSN-tunnuksia, TFN-tunnuksia ja muuta. Ja kuten Bennett kirjoitti, näitä numeroita on paljon paljon vaikeampi muuttaa kuin luottokorttiasi, jonka voit yksinkertaisesti soittaa pankkiin ja peruuttaa kortin.

Esimerkkikyselyitä

VAROITUS: ÄLÄ Googleta omaa luottokorttisi numeroa kokonaisuudessaan!

Etsikää mikä tahansa CC PAN, joka alkaa numerolla 4060:4060000000000000..4060999999999999999999 ? 0xe6c8c8c69c9c000..0xe6d753e6ecfff

Joitakin unkarilaisia puhelinnumeroita palveluntarjoajalta ’Telenor’? Ei ongelmaa:36200000000..36209999999 ? 0x86db02a00..0x86e48c07f

Katso SSN-tunnuksia. Onneksi nämä eivät palauta kovin montaa mielekästä tulosta:100000000..99999999999 ? 0x5f5e100..0x3b9ac9ff

On monia, monia muitakin.

Jos löydät jotain hyvin hälyttävää tai olet utelias luottokorttien hakkeroinnista, jätä se kommentteihin tai ota yhteyttä minuun sähköpostitse osoitteeseen tai Twitterissä @synsecblog. Poliisille soittaminen on näissä tapauksissa yleensä turhaa, mutta kannattaa ehkä kokeilla. Kyseinen kauppias tai kortin tarjoaja on yleensä innokkaampi puuttumaan asiaan.

Missä mennään tästä eteenpäin

No, Googlen on ilmeisesti korjattava tämä, mahdollisesti isojen toimijoiden, kuten Visan ja Mastercardin, avulla. Itse asiassa Haselton antaa useita mielenkiintoisia ehdotuksia kahdessa yllä linkitetyssä artikkelissa.

Mitä sinun on kuitenkin tehtävä (ja miksi olen kirjoittanut tämän postauksen), on levittää sanaa. Luottokorttipetokset ovat suuri ala, ja pelkkä tietoisuus voi pelastaa sinut joutumasta uhriksi. Lisäksi, jos sinulla on sähköisen kaupankäynnin sivusto tai käsittelet luottokorttien käsittelyä, varmista, että olet turvassa. PCI-DSS on hyvä ohje, mutta se ei ole läheskään täydellinen. Lisäksi on aina hyvä idea googlata sivustosi ”site:mysite.com” -lisätietokyselyllä ja etsiä arkaluonteisia numeroita. On hyvin, hyvin pieni mahdollisuus, että löydät jotain – mutta jos löydät, sinun on toimittava sen mukaan välittömästi.

Myös pieni ystävällinen neuvo: Älä koskaan anna luottokorttitietojasi kenellekään. Minun neuvoni olisi käyttää PayPalia tai vastaavaa palvelua aina kun mahdollista. Näistä linkeistä saat lisätietoa:

  • Visan luottokorttiturvallisuusvinkit
  • Citin luottokorttiturvallisuusvinkit

Ja muutama yleinen vinkki: älä lataa asioita, joita et ole pyytänyt, älä avaa roskapostiviestejä ja muista, että pankkisi ei koskaan kysy salasanaasi.

Sivumennen sanoen:

Pysykää turvassa, ihmiset!

Pysykää turvassa!

Vastaa

Sähköpostiosoitettasi ei julkaista.