Smartphones med NFC aktiverat gjorde det möjligt för forskare att hacka försäljningssystem och uttagsautomater och få anpassad kodexekvering på några av dem.
Trots att det är ett av de enda sätten att få ut pengar från ditt bankkonto när du är på språng, har bankomater notoriskt haft en mängd säkerhetsproblem genom åren. Inte ens nu finns det mycket som hindrar en hackare från att placera en kortskimmer på en bankomat, eftersom de flesta aldrig kommer att märka att den finns där. Det har givetvis också förekommit en rad andra attacker genom åren som är mer komplexa än så, men i stort sett bör man alltid vara försiktig när man använder en bankomat. Nu finns det ett nytt sätt att hacka en bankomat, och allt som krävs är en smartphone med NFC.
Som Trådbunden rapporter, Josep Rodriguez är forskare och konsult på IOActive, ett säkerhetsföretag baserat i Seattle, Washington, och han har ägnat det senaste året åt att hitta sårbarheter i NFC-läsare som används i uttagsautomater och kassasystem. Många uttagsautomater runt om i världen låter dig trycka på ditt betal- eller kreditkort för att sedan ange din PIN-kod och ta ut kontanter, snarare än att du måste sätta in den i själva uttagsautomaten. Även om det är mer bekvämt, kommer det också runt problemet med att en fysisk kortskimmer finns över kortläsaren. Kontaktlösa betalningar på kassasystem är också överallt vid denna tidpunkt.
Hacka NFC-läsare
Rodriquez har byggt en Android-app som ger hans telefon kraften att efterlikna kreditkortskommunikation och utnyttja brister i NFC-systemens firmware. Genom att vifta med sin telefon över NFC-läsaren kan han kedja ihop flera bedrifter för att krascha försäljningsenheter, hacka dem att samla in och överföra kortdata, ändra värdet på transaktioner och till och med låsa enheterna med ett ransomware-meddelande.
Rodriguez säger vidare att han till och med kan tvinga minst ett namnlöst märke av bankomater att dela ut kontanter, även om det bara fungerar i kombination med buggar som han hittade i bankomatens programvara. Det här kallas "jackpottning", för vilket det finns många sätt som kriminella har försökt under åren att få tillgång till en bankomat för att stjäla kontanter. Han avböjde att specificera varumärket eller metoderna på grund av sekretessavtal med bankomatförsäljarna.
"Du kan modifiera firmware och ändra priset till en dollar, till exempel, även när skärmen visar att du betalar 50 dollar. Du kan göra enheten värdelös eller installera ett slags ransomware. Det finns många möjligheter här" säger Rodriguez om attackerna på försäljningsstället han upptäckte. "Om du kedjar attacken och även skickar en speciell nyttolast till en bankomats dator, kan du jackpotta bankomaten - som uttag, bara genom att trycka på din telefon."
Källa: Josep Rodriguez
Berörda leverantörer inkluderar ID Tech, Ingenico, Verifone, Crane Payment Innovations, BBPOS, Nexgo och en icke namngiven bankomatleverantör, och alla varnades för mellan 7 månader och ett år sedan. De flesta kassasystem tar dock inte emot programuppdateringar eller gör det sällan, och det är troligt att många av dem kräver fysisk åtkomst för att göra det. Därför är det troligt att många av dem förblir sårbara. "Att lappa så många hundratusentals bankomater fysiskt, det är något som skulle kräva mycket tid," säger Rodriguez.
För att demonstrera sårbarheterna delade Rodriguez en video med Trådbunden visar honom vifta med en smartphone över NFC-läsaren på en bankomat i Madrid, vilket får maskinen att visa ett felmeddelande. Han visade inte jackpottattacken, eftersom han bara lagligt kunde testa den på maskiner som erhölls som en del av IOActives säkerhetsrådgivning, som då skulle bryta mot deras sekretessavtal. frågade Rodriguez Trådbunden att inte publicera videon av rädsla för juridiskt ansvar.
Fynden är "utmärkt forskning om sårbarheten hos programvara som körs på inbäddade enheter," säger Karsten Nohl, grundaren av säkerhetsföretaget SRLabs och firmware-hacker, som granskade Rodriguez arbete. Nohl nämnde också att det finns några nackdelar för verkliga tjuvar, inklusive att en hackad NFC läsaren skulle bara tillåta en angripare att stjäla mag stripe kreditkortsdata, inte PIN-koden eller data från EMV pommes frites. ATM-jackpotattacken kräver också en sårbarhet i ATM-firmwaren, vilket är en stor barriär.
Ändå är det ett stort säkerhetsbrist i sig att få tillgång till att köra kod på dessa maskiner och är ofta den första ingångspunkten i alla system även om det inte är mer än åtkomst på användarnivå. När du väl kommit förbi det yttre lagret av säkerhet är det ofta så att de interna mjukvarusystemen inte är i närheten av lika säkra.
Red Balloons vd och chefsforskare Ang Cui, var imponerad av resultaten. "Jag tycker att det är mycket troligt att när du väl har kört kod på någon av dessa enheter, bör du kunna få direkt till huvudkontrollern, eftersom den saken är full av sårbarheter som inte har fixats på över ett årtionde," säger Cui. "Därifrån," han lägger till, "du kan absolut styra kassettdispensern" som innehar och släpper ut pengar till användarna.
Exekvering av anpassad kod
Möjligheten att köra anpassad kod på vilken maskin som helst är en stor sårbarhet och ger en angripare möjlighet att undersöka underliggande system i en maskin för att hitta fler sårbarheter. Nintendo 3DS är ett utmärkt exempel på detta: ett spel som heter Cubic Ninja var berömt ett av de tidigaste sätten att utnyttja 3DS och utföra hembryggning. Exploateringen, kallad "Ninjhax", orsakade ett buffertspill som utlöste exekveringen av anpassad kod. Medan själva spelet bara hade åtkomst till systemet på användarnivå, blev Ninjhax basen för ytterligare utnyttjande av att köra anpassad firmware på 3DS.
För att förenkla: ett buffertspill utlöses när datavolymen som skickas överstiger den allokerade lagringen för den datan, vilket innebär att överskottsdata sedan lagras i angränsande minnesregioner. Om en angränsande minnesregion kan exekvera kod kan en angripare missbruka denna för att fylla bufferten med skräpdata och lägg sedan till körbar kod i slutet av den, där den läses in i intilliggande minne. Inte alla buffertspillsattacker kan exekvera kod, och många kommer helt enkelt att krascha ett program eller orsaka oväntat beteende. Till exempel, om ett fält bara kan ta 8 byte data och en angripare tvingade in 10 byte, skulle de ytterligare 2 byte i slutet svämma över till en annan minnesregion.
Läs mer: "PSA: Om din PC kör Linux, bör du uppdatera Sudo nu"
Rodriguez noterar att buffertspillattacker på NFC-läsare och försäljningsställen är möjliga, eftersom han köpte många av dessa från eBay under det senaste året. Han påpekade att många av dem led av samma säkerhetsbrist: de validerade inte storleken på data som skickades via NFC från ett kreditkort. Genom att göra en app som skickade data hundratals gånger större än vad läsaren förväntar sig, var det möjligt att utlösa ett buffertspill.
När Trådbunden nådde de berörda företagen för kommentarer, ID Tech, BBPOS och Nexgo svarade inte på förfrågningar om kommentarer. ATM Industry Association avböjde också att kommentera. Ingenico svarade i ett uttalande att säkerhetsbegränsningar innebar att Rodriguez buffertspill bara kunde krascha enheter, inte få anpassad kodexekvering. Rodriguez är tveksam till att de faktiskt skulle ha förhindrat kodexekvering men har inte skapat ett proof of concept för att demonstrera. Ingenico sa att "med tanke på besväret och konsekvenserna för våra kunder" utfärdade det en lösning ändå.
Verifone sa att de hade hittat och åtgärdat sårbarheterna i försäljningsställen 2018 innan de rapporterades, även om detta bara visar hur dessa enheter aldrig uppdateras. Rodriguez säger att han testade sina NFC-attacker på en Verifone-enhet på en restaurang förra året och fann att den fortfarande var sårbar.
"Dessa sårbarheter har funnits i firmware i flera år, och vi använder dessa enheter dagligen för att hantera våra kreditkort, våra pengar," säger Rodriguez. "De måste säkras." Rodriguez planerar att dela tekniska detaljer om dessa sårbarheter i ett webbseminarium under de kommande veckorna.