Zašto lozinka + SMS kod više nisu dovoljni: AiTM phishing u praksi
Godinama je vrijedilo pravilo: uključite bilo kakav MFA i riješili ste phishing. To pravilo više ne stoji. Napadači danas MFA ne „razbijaju" — oni ga prosljeđuju. Tehnika se zove AiTM (adversary-in-the-middle) phishing: između Vas i prave prijavne stranice stoji proxy koji izgleda identično kao original. Vi upišete lozinku i šesteroznamenkasti kod, proxy ih u istoj sekundi proslijedi pravom servisu, prijavi se umjesto Vas i ukrade kolačić sesije. Za to postoje gotovi alati — open-source Evilginx i komercijalni phishing-kao-usluga kompleti — koje napadač unajmi, ne mora ih znati napisati.
Ovo nije teorija. Microsoft je još u srpnju 2022. dokumentirao AiTM kampanju koja je od rujna 2021. ciljala više od 10.000 organizacija, zaobilazila MFA krađom kolačića sesije i završavala BEC prijevarama s lažnim računima. Iste godine dogodio se i niz javnih incidenata u tvrtkama koje su MFA imale uredno uključen:
- Twilio (2022.) — SMS phishing kampanja „0ktapus" (130+ pogođenih organizacija) navela je zaposlenike na lažni Okta portal; upisane lozinke i jednokratni kodovi proslijeđeni su u stvarnom vremenu i napadač je ušao.
- Uber (2022.) — napadač je bombardirao vanjskog suradnika MFA push notifikacijama (tzv. MFA fatigue), zatim se lažno predstavio kao IT podrška i rekao mu da odobri zahtjev „da prestanu". Odobrio je.
- Reddit (2023.) — lažna kopija internog portala pokupila je pristupne podatke i drugi faktor zaposlenika; napadač je došao do internog koda i dokumenata.
A sada kontrast. Cloudflare je bio meta iste „0ktapus" kampanje kao Twilio. Trojica zaposlenika nasjela su i upisala svoje pristupne podatke na lažnoj stranici. Kompromitacija: nula. Razlog je jednostavan — Cloudflare ne koristi kodove nego FIDO2 hardverske ključeve, a ključ vezan za pravu domenu na lažnoj domeni jednostavno ne radi.
Poanta nije da su Vaši zaposlenici nepažljivi. Poanta je da su SMS i TOTP kodovi metoda koju napadač može presresti dizajnom, bez obzira na oprez korisnika. Rješenje je metoda kod koje presretanje ne daje ništa — i upravo to je FIDO2.
Što je FIDO2 i WebAuthn — i zašto origin binding ubija phishing
FIDO2 je otvoreni standard za prijavu bez dijeljene tajne. Čine ga dva dijela: WebAuthn, službeni W3C web standard (Level 2 preporuka od 2021., Level 3 u završnoj fazi standardizacije 2026.), i CTAP, protokol FIDO Alliancea kojim preglednik razgovara s autentifikatorom — hardverskim ključem, mobitelom ili čipom u laptopu.
Kako radi, bez žargona:
- Kod registracije Vaš autentifikator generira par ključeva: privatni ključ ostaje u uređaju i nikad ga ne napušta, a servis (Microsoft, Google…) sprema samo javni ključ. Servis više nema tajnu koju bi netko mogao ukrasti iz baze.
- Kod prijave servis pošalje jednokratni kriptografski izazov. Autentifikator ga potpisuje privatnim ključem, uz Vašu fizičku potvrdu: dodir ključa plus PIN ili biometrija.
- Ključni detalj: preglednik u potpis automatski ugrađuje stvarnu domenu na kojoj se nalazite (origin), a vjerodajnica je vezana uz točno određenu domenu za koju je stvorena. To je origin binding.
Što se onda dogodi na phishing stranici rnicrosoft-login.com? Ništa — i to je cijela poanta. Vjerodajnica za login.microsoftonline.com na toj domeni ne postoji, preglednik je neće ni ponuditi, a potpis krivotvorene domene pravi servis odbija. Nema koda koji korisnik može prepisati, nema push notifikacije koju može umorno odobriti, nema tajne koju AiTM proxy može proslijediti. Sigurnosna odluka maknuta je s čovjeka i prebačena na kriptografiju.
Najpoznatiji dokaz u praksi: Google je od početka 2017. sigurnosne ključeve podijelio svim zaposlenicima — više od 85.000 ljudi — i prema izjavi tvrtke iz 2018. (Krebs on Security) od tada nije zabilježeno nijedno potvrđeno phishing preuzimanje računa.
Pošteno ograničenje: FIDO2 štiti prijavu. Ne štiti od malwarea na već zaraženom računalu niti od krađe već aktivne sesije drugim kanalima. Zato ide uz, a ne umjesto, ostalih kontrola: ažuriranja, EDR, email zaštita i edukacija.
Passkey ili hardverski ključ: razlika i što odabrati za tvrtku
Oba pojma označavaju FIDO vjerodajnice i oba su otporna na phishing — razlika je u tome gdje živi privatni ključ.
- Sinkronizirani passkey sprema se u iCloud Keychain, Google Password Manager ili password manager (Bitwarden, 1Password) i sinkronizira se između uređaja istog računa. Gubitak mobitela nije drama — passkey se vraća s cloud računom. Za korisnika: nula troška, poznato iskustvo, otisak prsta ili Face ID.
- Hardverski sigurnosni ključ (YubiKey, Google Titan, Feitian, Token2, Nitrokey, open-source SoloKeys…) drži privatni ključ isključivo u vlastitom čipu — ključ se ne može izvesti, kopirati ni sinkronizirati. Tvrtka ga nabavlja, dodjeljuje, evidentira i kod odlaska zaposlenika povlači.
| Kriterij | Sinkronizirani passkey | Hardverski ključ |
|---|---|---|
| Otpornost na phishing | Da (origin binding) | Da (origin binding) |
| Privatni ključ | Sinkroniziran kroz cloud račun | Samo u čipu, neizvoziv |
| Gubitak uređaja | Passkey preživi (cloud oporavak) | Treba rezervni ključ i proceduru |
| Kontrola tvrtke | Manja — često putuje s osobnim Apple/Google računom | Puna — nabava, evidencija, povlačenje |
| Attestation (dokaz modela) | U pravilu nedostupan | Dostupan — može se ograničiti dopušteni model |
| NIST SP 800-63B-4 razina | AAL2 | Do AAL3 |
| Trošak | 0 € | Okvirno 15-95 € po ključu |
NIST je u reviziji smjernica za digitalni identitet (SP 800-63B-4, srpanj 2025.) tu razliku i formalizirao: sinkronizirani passkeys priznaju se na razini AAL2, dok najvišu razinu AAL3 mogu ispuniti samo autentifikatori s neizvozivim ključem — u praksi hardverski ključevi i device-bound vjerodajnice.
Naša praktična preporuka za većinu tvrtki je hibrid: hardverski ključevi za administratore, upravu, financije i sve račune čija bi kompromitacija bila incident za novine; sinkronizirani passkeys (ili ključevi, ako budžet dopušta) za ostale. Time najkritičniji računi dobivaju maksimum kontrole, a šira organizacija phishing-otpornu prijavu bez dodatnog hardvera.
Kojim računima prvo: redoslijed koji ima smisla
Nemojte planirati „sve odjednom pa nikad". Redoslijed s najboljim omjerom rizika i truda:
- Globalni i privilegirani administratori — jedan uspješan phishing admin računa znači kontrolu nad cijelim tenantom: mailboxi, pravila, forwarding, podaci. Microsoft od kraja 2024. postupno i obvezno traži MFA za prijavu u administratorske portale — iskoristite taj val da odmah preskočite na phishing-otpornu varijantu.
- Uprava i direktori — javno izloženi (web, LinkedIn, sudski registar), prva meta BEC i CEO-fraud prijevara, a njihov email autorizira plaćanja i ugovore.
- Financije i računovodstvo — računi koji mijenjaju IBAN-e, odobravaju naloge i komuniciraju s bankom. Upravo tu završava većina štete iz AiTM kampanja.
- IT, DevOps i vanjski administratori — pristup infrastrukturi, backupima i sustavima klijenata; uključite i vanjske suradnike s admin pravima, ne samo zaposlenike.
- HR i podrška — pristup osobnim podacima zaposlenika i klijenata.
- Break-glass (hitni) računi — posebna kategorija: račun za nuždu s dva registrirana hardverska ključa koja stoje u sefu, dokumentirano i periodički testirano. Hitni račun sa SMS-om nije hitni račun, nego rupa.
U praksi to znači: pilot od 5-15 računa u prvom tjednu (admini + uprava + financije), pa širenje po odjelima. Pilot otkrije 90 % operativnih problema (čitači kartica, USB portovi, stariji browseri) dok su još jeftini.
Implementacija u Microsoft 365 / Entra ID
Microsoft 365 ima punu podršku za FIDO2 ključeve i passkeys kroz Entra ID (bivši Azure AD). Koraci koji u praksi rade:
- Uključite metodu. Entra admin centar → Protection → Authentication methods → Passkey (FIDO2): omogućite i ciljajte pilot grupu umjesto svih odjednom. Po potrebi ograničite dopuštene modele ključeva preko AAGUID liste (key restrictions) i uključite provjeru attestationa.
- Registrirajte korisnike. Korisnik na stranici Security info (
aka.ms/mysecurityinfo) doda „Sigurnosni ključ" ili passkey; postupak s PIN-om i dodirom traje par minuta. Za nove zaposlenike koristite Temporary Access Pass — vremenski ograničen kod kojim se prvi ključ registrira bez lozinke. - Forsirajte politikom. Conditional Access → authentication strengths → ugrađena razina „Phishing-resistant MFA" (priznaje FIDO2 ključeve, passkeys, Windows Hello for Business i certifikatsku autentikaciju). Microsoft ima gotov predložak politike koja tu razinu traži za administratorske role — to je prvi korak; zatim istu politiku širite na upravu, financije i redom dalje.
- Gasite slabije metode. Dok su SMS i telefon i dalje dopušteni, napadač će ciljati upravo njih. Postupno ih uklanjajte po grupama i pratite sign-in logove (Entra bilježi kojom je metodom tko ušao).
Licenciranje, pošteno: sama FIDO2 prijava ne traži dodatnu licencu, ali Conditional Access (pa time i ciljano forsiranje phishing-otpornog MFA) traži Entra ID P1 — uključen u Microsoft 365 Business Premium. Bez P1 imate security defaults, koji uključuju MFA, ali ne mogu selektivno zahtijevati baš FIDO2.
Napomena uz passkeys: Entra ID izvorno podržava device-bound passkeys — hardverske ključeve i passkey u aplikaciji Microsoft Authenticator. Podrška za sinkronizirane passkeys iz potrošačkih ekosustava uvodi se postupno, pa aktualno stanje provjerite u Microsoftovoj dokumentaciji prije nego na njima gradite politiku.
Implementacija u Google Workspaceu
Google Workspace je FIDO ključeve podržavao među prvima, a od 2023. podržava i passkeys. Postupak za tvrtku:
- Uključite i forsirajte 2SV. Admin konzola → Security → Authentication → 2-Step Verification: dopustite uključivanje, odredite datum obveznosti (enforcement) i period za nove korisnike. Google od 2025. ionako obvezuje 2SV za administratorske račune — ne čekajte da Vas rok stigne.
- Za rizične grupe: „Only security key". Enforcement se postavlja po organizacijskoj jedinici ili grupi, pa administratorima, upravi i financijama možete propisati isključivo sigurnosni ključ, dok ostali privremeno koriste blaže metode. To je najvažnija pojedinačna postavka u cijelom postupku.
- Passkeys. Zaposlenici mogu registrirati passkey umjesto koda; admin kontrolom odlučujete smije li passkey zamijeniti i samu lozinku pri prijavi (opcija preskakanja lozinke) ili ostaje drugi faktor.
- Advanced Protection Program za najizloženije. Googleov najstroži paket politika: traži dva ključa ili passkeya, agresivnije blokira rizične aplikacije, downloade i pristup trećih strana. Admin omogućuje upis, a idealno mu pristupaju uprava, financije i administratori.
- Ključevi i rezerva. Radi bilo koji FIDO2 ključ — Google Titan, YubiKey, Feitian, Token2… Backup kodove tretirajte kao gotovinu: generirani, isprintani, spremljeni, nikad u inboxu.
Praktični detalj s terena: na mobitelima ključ radi preko NFC-a ili USB-C-a, a passkey preko otiska prsta — provjerite oboje u pilotu prije nabave za cijelu firmu, da ne kupite USB-A ključeve timu koji živi na USB-C laptopima i službenim mobitelima.
Operativna strana: nabava, registracija, rezervni ključ i izgubljeni ključ
Tehnologija je lakši dio. Implementacije propadaju na operativi — zato je ovo najvažnija sekcija ovog vodiča.
Nabava. Standard je dva ključa po osobi: primarni i rezervni. Form faktor birajte prema stvarnim uređajima (USB-C, USB-A, NFC za mobitel). Okvirne cijene: osnovni FIDO2 modeli (Token2, Feitian, Yubico Security Key, Google Titan) otprilike 15-35 €, YubiKey 5 serija s dodatnim protokolima (smart card/PIV, OpenPGP) otprilike 50-95 € — cijene se mijenjaju, provjerite kod dobavljača. Za većinu zaposlenika osnovni FIDO2 model je sasvim dovoljan; skuplje serije imaju smisla za IT i specifične potrebe.
Evidencija. Ključ je imovina: serijski broj, kome je dodijeljen, kada, gdje stoji rezervni. Bez evidencije nema ni urednog offboardinga ni dokaza za reviziju.
Registracija. Organizirano, po timovima, 10-15 minuta po korisniku: oba ključa odmah, PIN postavljen, rezervni ključ ide na dogovoreno sigurno mjesto, korisniku se uz put objasni zašto se ovo uvodi (dvije rečenice o phishingu vrijede više od pravilnika).
Izgubljeni ključ — procedura koju morate imati napisanu prije prvog gubitka:
- Zaposlenik prijavljuje gubitak odmah, bez sankcija — kultura kažnjavanja samo odgađa prijave.
- Administrator uklanja registraciju izgubljenog ključa (Entra ID: korisnik → Authentication methods; Workspace: korisnik → Security → 2-Step Verification).
- Korisnik nastavlja rezervnim ključem; ako ga nema, izdaje se privremeni pristup (u Entra ID-u Temporary Access Pass, u Workspaceu backup kod) uz provjeru identiteta.
- Novi ključ se izdaje, registrira i upisuje u evidenciju.
Rizik od nalaznika je nizak — bez PIN-a ključ ne potpisuje prijave s provjerom korisnika, a nakon niza pogrešnih PIN-ova se zaključava — ali registraciju svejedno povlačite bez odgode. Kod odlaska zaposlenika ključ se vraća, a sve njegove registracije brišu isti dan.
Attestation, u dvije rečenice: hardverski ključevi pri registraciji mogu kriptografski dokazati model i proizvođača (preko AAGUID identifikatora i attestation certifikata). Tvrtkama koje to trebaju — npr. politika dopušta samo određene certificirane modele — Entra ID omogućuje da se registracija drugih ključeva jednostavno odbije.
ZKS, NIS2 i višefaktorska autentikacija: što propis stvarno traži
Hrvatski Zakon o kibernetičkoj sigurnosti (NN 14/2024), koji prenosi NIS2 direktivu (EU 2022/2555), u članku 30. propisuje mjere upravljanja kibernetičkim sigurnosnim rizicima. Među deset navedenih mjera izrijekom stoji i:
„korištenje višefaktorske provjere autentičnosti ili rješenja kontinuirane provjere autentičnosti" — čl. 30. st. 1. t. 10., ZKS (NN 14/2024)
Provedbu mjera detaljnije razrađuje Uredba o kibernetičkoj sigurnosti (NN 135/2024), koja u Prilogu II. propisuje mjere i način njihove provedbe po kategorijama subjekata. Ako ste ključni ili važni subjekt po ZKS-u, višefaktorska autentikacija za Vas nije preporuka nego zakonska mjera koju treba provesti i moći dokazati.
Budimo precizni oko onoga što propis ne kaže: nigdje ne piše „morate kupiti FIDO2 ključeve". Propisana je višefaktorska provjera autentičnosti, bez nametanja tehnologije. Ali kad već birate kako ćete mjeru provesti, vrijedi znati dvije stvari:
- Međunarodne smjernice idu prema phishing-otpornom MFA. NIST-ove smjernice za digitalni identitet (SP 800-63B-4, srpanj 2025.) traže da na razini AAL2 postoji phishing-otporna opcija, a razinu AAL3 moguće je postići isključivo phishing-otpornim autentifikatorima s neizvozivim ključem. SMS i TOTP kodovi tu razinu ne dosežu.
- Dokazivost je praktična prednost. Entra ID i Google Workspace admin konzole izvještavaju točno tko ima koje metode prijave registrirane i kojom se metodom prijavljuje. Za samoprocjene i nadzor to je konkretan, izvoziv dokaz provedbe mjere — puno jači od izjave „imamo MFA".
Oprez s „NIS2 compliance u kutiji": MFA je jedna od deset mjera iz članka 30., ne cijela usklađenost. Ali je mjera koja se najbrže provodi i najviše smanjuje najčešći stvarni rizik — preuzimanje računa. Zato je razuman prvi korak, ne zadnji.
Devet čestih grešaka pri uvođenju (i kako ih izbjeći)
Ovo su obrasci koje viđamo u praksi — svaki je izbježiv ako se zna unaprijed:
- Jedan ključ bez rezervnog. Prvi izgubljeni ključ postaje interni incident, korisnici se okrenu protiv projekta. Dva ključa po osobi, od prvog dana.
- Ključ registriran, ali SMS ostaje aktivan. Napadač ne napada najjaču metodu na računu, nego najslabiju. Dok fallback na SMS/TOTP postoji, račun nije phishing-otporan — slabije metode treba planski ugasiti.
- Nema procedure za izgubljeni ključ. Onda se procedura izmišlja u panici, u petak u 16 h. Napišite je prije prvog gubitka.
- Big-bang bez pilota. Registracijski problemi (portovi, browseri, mobiteli) na 200 ljudi odjednom umjesto na 10.
- Break-glass račun zaboravljen ili „zaštićen" SMS-om. Hitni račun treba dva ključa u sefu i dokumentiran postupak — i test jednom godišnje.
- Stari protokoli ostavljeni otvoreni. Ako neki servis i dalje prima prijavu starim protokolom ili app-lozinkom koja zaobilazi MFA politiku, napadač će ući na ta vrata. Provjerite legacy autentikaciju u tenatu prije nego proglasite pobjedu.
- Dijeljeni računi bez vlasnika. „info@" i servisni računi trebaju vlasnika, ključ(eve) i evidenciju — ili ukidanje.
- Nitko zaposlenicima nije objasnio zašto. Bez 15-minutnog objašnjenja (što je AiTM, zašto kod pada a ključ ne) uvođenje se doživi kao maltretiranje i traži se zaobilaženje.
- Nema evidencije ni offboarding koraka. Bivši zaposlenik s aktivnom registracijom je otvoren račun. Povlačenje ključa i brisanje registracija idu u offboarding checklistu, isti dan.
Kako Vi-Di.me pomaže — praktično, bez velikih riječi
Vi-Di.me radi praktičnu implementaciju phishing-otpornog MFA za tvrtke koje koriste Microsoft 365 ili Google Workspace — isto okruženje koje uređujemo kroz email sigurnost, DMARC i M365/Workspace hardening. Konkretno:
- Procjena — popis računa i rizika: kome hardverski ključ, kome passkey, kojim redoslijedom, što s dijeljenim i servisnim računima i break-glass pristupom.
- Odabir i nabava ključeva — modeli i form faktori prema Vašim uređajima i budžetu, s evidencijom od prvog dana.
- Politike — Entra ID (Authentication methods, Conditional Access s razinom phishing-otpornog MFA, Temporary Access Pass postupci) ili Google Workspace (2SV enforcement, „Only security key" za rizične grupe, Advanced Protection), plus plan gašenja slabijih metoda.
- Registracija i edukacija — organizirani termini po timovima, oba ključa, PIN-ovi, kratka edukacija na hrvatskom: zašto kod pada, a ključ ne.
- Procedure — izgubljeni ključ, rezervni ključ, onboarding i offboarding, sve napisano i predano Vama.
- Dokumentacija — stanje prije/poslije i izvještaj o registriranim metodama, upotrebljiv kao dokaz provedbe MFA mjere u ZKS/NIS2 kontekstu.
Da budemo pošteni i oko opsega: za manju tvrtku na M365 ili Workspaceu ovo tipično nije višemjesečni projekt nego nekoliko dana fokusiranog rada, raspoređenih kroz pilot i širenje. Točan opseg i cijena ovise o broju korisnika i stanju okruženja — zato prvo radimo procjenu, a ne paušalno obećanje.
Recite nam koliko korisnika imate i koristite li Microsoft 365 ili Google Workspace, i vraćamo Vam se s konkretnim planom uvođenja i okvirnim troškom.