Da ja idem ukrasti novce bankama, to bi napravio ovako

U zadnje vrijeme je u Hrvatskoj na snazi veliki val hakiranja bankovnih računa građana i tvrtke te krađe novaca putem sustava elektroničkog bankarstva, kao što ovdje izvještava Večernji list. Moja tvrtka, Infinum, radi različita rješenja za financijski sektor, poput mobilnog bankarstva, pa mi se činilo zanimljivo osvrnuti na ovaj problem, koji direktno pogađa cijelu državu.

Prvo da objasnimo kako je elektroničko bankarstvo zaštićeno danas u Republici Hrvatskoj.

Dvofaktorna autentifikacija

Dvofaktorna autentifikacija je sigurnosni koncept koji uvjetuje da za prijavu na neki online servis nije dovoljan username i password, već je potrebno još nešto.

Ovaj koncept, često objašnjen i frazom "Something you have, and something you know", trenutno je propisan od strane HNB-a, glavnog regulatornog tijela za bankarstvo, kao obvezan za sve banke u Republici Hrvatskoj.

Sama implementacija dvofaktorne autentifikacije je u Hrvatskoj izvedena na nekoliko načina:

Token

Token je zgodan uređajčić koji vam banka izdaje i koji je vezan uz vaš korisnički račun. Osnovna mu je svrha generiranje nekih čudnovatih brojeva koje vi onda upisujete prilikom prijave u Internet bankarstvo ili prilikom autorizacije neke transakcije. Sam uređaj je ovdje something you have,  a kako biste ga mogli koristiti, morate u njega upisati svoj PIN (što onda bude something you know).

CAP čitač

Funkcija mu je gotovo identična kao i kod tokena. Razlika je da nije "personaliziran" za pojedinog klijenta, nego se nivo personalizacije dobiva tako da gurnete u njega svoju bankovnu karticu. Način korištenja je inače identičan. Trenutno mislim da ga u Hrvatskoj jedino PBZ i RBA koriste (ako sam u krivu, ispravite me u komentarima).

Display kartica

Trenutno mislim da je Erste Banka jedna od najvećih banaka u Hrvatskoj koja koristi Display karticu kao autentifikacijsko sredstvo. Funkcionira slično kao i token (dakle opet - generira neke brojeve), samo što ima dodatnu prednost da je možete nositi u novčaniku i da ima ostale funkcija kao i svaka debitna/kreditna kartica.

81216.jpg

Mobilni token

Mobilni token je mobilna aplikacija koja ima ponašanje svih ovih gore uređaja. U principu, vaš mobitel se pretvara u "nešto što imaš" i služi kao generator jednokratnih lozinki. Kod fizičkog tokena potrebno je otići u banku gdje dobiješ uređaj. Kod mobilnog tokena, riječ je o aplikaciji koja se instalira na telefon, a iz banke je potrebno uzeti inicijalizacijski kod.

Mobilni token ima puno prednosti, a glavna je što telefon skoro uvijek imaš sa sobom, što se i ne može reći za sve ove druge gorenavedene uređaje. Također, trošak mu je manji nego fizički token, nema bateriju, ako izgubiš mobitel prije ćeš to primijetiti nego ako izgubiš fizički token i drugi.

Ponekad se ovo još naziva soft-token (softverski token).

3ff78498-c004-48e9-a1f1-65efab21938c.png

Tan tablica [defunct]

Isprintana tablica nekih brojeva. Ne koristi je mislim više nitko u Hrvatskoj, ali je dovoljno dugo bila na tržištu da je većina ljudi upoznati s njom.

U principu, sadrži 32 broja u tablici dimenzija 4x8. Svaki put kad se prijavljujete u elektroničko bankarstvo, morate upisati jedan od tih brojeva (računalo vam kaže koji redak i stupac).

Riječ je o prilično nesigurnom rješenju jer nije imuno kopiranju - npr.ako vam netko uzme TAN tablicu iz novčanika, fotografira sa svojim mobitelom - ima duplikat kod sebe.

"Pametna" kartica

Rješenje koje uštekate u USB čitač vašeg računala. U Hrvatskoj se koristi primarno kod poslovnih računa, a smatra se najsigurnijim rješenjem kod bankarenja jer omogućava digitalni potpis relativno jednostavno.

Ovakvo rješenje često zahtijeva instalaciju kojekakvih drivera, programske podrške, certifikata u browsere, radi samo na određenom skupu operacijskih sustava (Windowsi) itd. U pravilu, za instalaciju ovoga gotovo uvijek dobijete PDF od desetak stranica.

Također, obično radi samo na uređajima koji imaju USB port (dakle zaboravite tablete, smartphoneove..), zahtijeva Javu u browseru itd...itd.. Uglavnom, vrlo ograničeno i loše rješenje sa stajališta portabilnosti, dostupnosti i generalno loše prilagođeno korisniku.

Ponekad dolazi u obliku USB sticka koji najčešće sadrži programsku podršku i sigurnosni certifikat. Ovo je za nijansu bolje od Smart Card čitača.

B2G 700x250.jpg

Zašto trebamo dvofaktornu autentifikaciju?

Svrha dvofaktorne autentifikacije je da ako vam ja saznam lozinku (something you know) na bilo koji način (pogodim ga, virim vam preko ramena, ili nešto treće...), da to nije dovoljno da pristupim vašem računu. Uz to, moram vam i ukrasti token, ukrasti display karticu, ukrasti mobitel itd..

Zašto je ovo gore sve nebitno?

Sad ide ključni dio i poanta ovog cijelog članka - ovo gore sve što sam napisao je za ovu nedavnu krađu potpuno nebitno. Često kad se razmatra sigurnost online bankarstva, onda razgovor ide u smjeru hoće li se koristiti token, mobilni token, pametna kartica ili nešto treće.

Kod takvog odabira, banka gleda faktore poput: cijena sustava (svaki token/kartica nešto koštaju), koliko je to jednostavno klijentima za korištenje i druge faktore.

Ali ono što svi gorespomenuti sustavi u konačnici rade je - generiraju jednokratne šifre koje vi prepisujete u browser svojeg računala ili se one automatski prenose do browsera (ako je sigurnosni sustav spojen na USB).

Kako onda ukrasti novce?

Zaključak iz ovoga se nameće vrlo jednostavno - ako netko kompromitira vaše računalo, nakon toga, sve ove metode zaštite padaju u vodu i postaju irelevantne. Kako?

Dovoljno je da korisnik na svoje računalo instalira zlobnu aplikaciju (tzv. trojanac) koja snima radnje korisnika i prezentira mu podatke koje haker želi. Često ljudi instaliraju takve stvari slučajno, bez da uopće znaju što su instalirali. Sigurno ste barem jednom pokupili neki virus ili malware, a da ne znate ni sami otkuda ni kako.

Nakon što je trojanac instaliran na računalu, dalje je stvar izvedbe. Zlobna aplikacija se može ubaciti u standardne interakcije između korisnika i njegovog Internet bankarstva i uglavnom može dobiti pristup svemu što se događa na računalu. Evo primjer jednog takvog potencijalnog scenarija:

  • u ovakvom scenariju, korisnik se može normalno prijaviti, te i dalje pristupa svom računu preko npr. https://netbanking.mojabanka.hr. SSL certifikati uredno rade i korisniku se čini da je sve ok.
  • Internet bankarstvo korisnika traži upisivanje jednokratne lozinke
  • korisnik upisuje lozinku i dobije lažnu poruku od trojana da nešto ne valja sustavom i da se lozinka još jednom upiše ("Došlo je do pogreške u sustavu, molimo upišite drugu jednokratnu lozinku")
  • korisnik upisuje novu jednokratnu lozinku, ali ovaj put trojan presreće samu lozinku koja nikad ne stigne do bankarskog sustava
  • napadač slobodno koristi drugu lozinku i prijavljuje se na Internet bankarstvo i radi novu transakciju kojom krade novce s računa
  • stvar je sad samo prevariti korisnika da što dulje ne shvati da su mu novci ukradeni ili će biti ukradeni.

Slično se može napraviti i ako se koristi čitač kartica. Trojan od korisnika može pokupiti PIN (dok ga korisnik upisuje), te ako korisnik ostavi karticu u čitaču kartica, može se umjesto njega ulogirati u Internet bankarstvo, napraviti novu transakciju i čak ju digitalno potpisati.

Ovaj tip napada koji je ovdje ukratko opisan, poznat je još pod nazivom Man in the browser. Ne tvrdim ovdje da su se ove krađe koje se događaju u zadnje vrijeme po Hrvatskoj dogodile točno na ovaj način (jer s tim nisam upoznat), ali na neki vrlo sličan princip jesu.

Koje je rješenje?

Postoje dvije metode koje su mogle spriječiti (ili barem ublažiti) ovakvu kataklizmu koja se trenutno događa u Hrvatskoj:

  • Autorizacija transakcija alternativnim kanalom
  • Fraud management

Autorizacija transakcije alternativnim kanalom

Dakle, zaključili smo da imamo kompromitirano računalo. Jedini način da se branimo od toga je da potvrđujemo i autoriziramo transakcije alternativnim kanalom. Time smo smanjili šansu da su nam kompromitirani i računalo i alternativni kanal.

Trenutno, najbolje rješenje koje mogu predložiti za tako nešto je obavljati autorizaciju transakcija putem mobitela. Tu možemo koristiti 3 opcije:

  • poziv (voice call)
  • SMS
  • mobilna aplikacija

Ovisno o izvedbi tih opcija neke su više ili manje zgodne za koristiti, više ili manje koštaju i više ili manje su sigurne. Ali sigurno bi spriječili 90% ovih problema koji su se događali.

iOS je jedan od najsigurnijih operacijskih sustava na svijetu

iPhone (iOS točnije) je trenutno jedan od najmanje kompromitiranih operacijskih sustava na svijetu. Za iPhone ne postoje antivirusi. Zato jer za iPhone ne postoje ni virusi. 

Nema načina da jedna aplikacija drugoj aplikaciji ukrade podatke (svaka aplikacija funkcionira u izoliranom okruženju, tzv.sandbox model). Praktički ne postoji način da se kompromitira iOS uređaj.

Aplikacije možete instalirati samo s jednog mjesta (AppStore). Za sve aplikacije koje ljudi mogu instalirati na svoj telefon postoji Quality Assurance proces (dakle Apple mora istestirati i odobriti te sve aplikacije). Također, postoji i proces verifikacije kompanija koje izdaju same aplikacije (manja šansa da se neki kriminalni entitet tu pojavi).

Sve ovo što sam nabrojao su neki od razloga da je trenutno iOS vrlo siguran operacijski sustav, a da je prisutan kod velikog broja korisnika.

Kako tu Android stoji?

Android je tu manje siguran zbog par stvari:

  • aplikacije imaju pristup većem skupu resursa (primjerice: SMS poruke)
  • veći je stupanj interakcije između aplikacija (primijetite samo Facebookovu "chat bubbles" funkcionalnost koja se provlači kroz druge aplikacije)
  • generalno veći dio populacije radi eksperimente na svojim uređajima (rootanje).
  • aplikacije ne prolaze proces odobrenja
  • za Android postoje virusi

Ali u svakom slučaju, generalno gledano - mobilno bankarstvo je sigurnije od Internet bankarstva, ali Android je najnesigurnija mobilna platforma (kaže F-Secure).

Kako tu Windows Phone stoji?

Kako je navedeno niže u komentarima - Windows Phone je u najmanju ruku jednako siguran kao iOS jer također koristi sandbox model, postoji proces odobravanja aplikacija i sve je slično kao i kod Applea.

Iako volumno još nisu na razini kao iOS ili Android uređaji, Windows Phone uređajima trenutno rapidno raste broj korisnika kao i broj aplikacija za mobilno bankarstvo.

Fraud management

Kvalitetno izveden sustav fraud managementa bi mogao umanjiti ovakve probleme. Banke imaju cijele odjele koji se bave ovakvim stvarima, pa su im ipak ovakve ogromne transakcije uspjele procuriti.

Ako ste ikad radili nešto preko Paypala ili američkih banaka, onda znate da vam s vremena na vrijeme znaju zablokirati račun, postaviti neke limite, zvat vas na telefon da nešto odobrite i slično.

Kvalitetan fraud management sustav treba operirati na razini pojedine transakcije i prilikom provedbe transakcija uzimati u obzir faktore kao recimo:

  • Kome se šalju novci - jesam li toj osobi/računu već slao novce ranije?
  • U koju državu šaljem novce? Da li se to razlikuje od mog tipičnog načina slanja novca?
  • Koji iznosi su u pitanju? Divergiraju li ti iznosi od normalnih iznosa koje inače šaljem?
  • Postoji li više sesija kroz sustav s iste IP adrese? Gdje se ta IP adresa nalazi?

Ima tu još toga, ali možete shvatiti poantu. Također, ovisno o visini rizika pojedine transakcije, mogao bi se prilagoditi nivo potrebne zaštite. Zamislite scenarij gdje recimo

  • za prebaciti 1.000 kn vam je dovoljna samo lozinka
  • za prebaciti 10.000 kn vam treba lozinka i token
  • za prebaciti 100.000 kn vam treba lozinka, token i autorizacija mobilnom aplikacijom.

Fraud management sustavi su relativno razvijeni za kartično poslovanje (probajte provući kreditnu karticu na neki ogroman iznos u nekoj čudnoj državi).

Nisam primijetio da ijedna banka u Hrvatskoj ima pretjerano razrađen model Fraud managementa na transakcijskom nivou.

Hoće li GSG dobiti svoju lovu natrag?

Vrlo vjerojatno neće. U članku se spominje da GSG očekuje povrat ukradenih 609.955,50 kuna. Banka je zadužena da se pobrine i što je više moguće spriječi ovakve transakcije.

Ipak, u ovom slučaju, osnovni problem zašto mislim da neće dobiti natrag novce je zato što je kompromitirano korisnikovo računalo. U principu, ovo je situacija kao da vam se netko sakrije u ormaru u vašoj kući, krade stvari dok spavate, a vi ste ga pustili unutra.

Strah me da meni ne ukradu novce, što mogu napraviti?

Par stvari možete napraviti:

  • koristite operacijski sustav koji je manje podložan napadima: Linux, Mac OS, iOS. Nažalost, Windowsi su trenutno najveća meta.
  • Ako koristite Windowse - pobjegnite od Windowsa XP jer je podrška za njih ukinuta (da ne spominjem da ne možete dobiti Internet Explorer veći od verzije 8.0)
  • Bankarite u virtualnoj mašini, ili bootajte neku "live" distribuciju linuxa
  • kupite i instalirajte antivirusni programe (i obavezno ih nadograđujte redovito kako biste imali podršku protiv najnovijih vrsta virusa)
  • nemojte instalirati kojekakvo smeće na računala
  • koristite mobilno bankarstvo