woocommerce — naslovna ilustracija
← Blog

Card skimming na WooCommerce prodavnici: kako prepoznati da neko krade podatke kupaca

Ivan Pantić

Ovaj vodič obrađuje temu woocommerce od potvrde problema do čišćenja i prevencije.

Prodavnica radi normalno. Porudžbine stižu, plaćanja prolaze, nema grešaka ni čudnih stranica. Onda vam se javi kupac: nekoliko dana posle kupovine kod vas, sa njegove kartice su skinute sume koje nije potrošio. Za nedelju dana javi se još jedan. Onda vas kontaktira banka ili procesor plaćanja i pita da li ste primetili nešto neobično na sajtu.

Ovo je scenario koji se naziva card skimming, e-skimming ili, po grupi napadača koja ga je proslavila, Magecart. Napadač na stranicu za plaćanje ubaci mali skriveni kod koji beleži sve što kupac unese, uključujući broj kartice, datum isteka i CVV, i šalje to na svoj server. Prodavnica i dalje savršeno radi, jer je upravo to cilj: što duže niko ništa ne primeti, to više kartica napadač prikupi.

Za vlasnika web prodavnice ovo je najozbiljniji oblik hakovanja, i jedini kod koga šteta ne pogađa samo vas i vaš sajt, nego direktno novčanike vaših kupaca. Direktno pogađa kupce, može da dovede do gubitka mogućnosti plaćanja karticama, i nosi pravne obaveze. U ovom tekstu objašnjavamo kako ovaj napad radi na WooCommerce prodavnicama, kako da ga prepoznate, šta da uradite odmah ako sumnjate, i kako da se zaštitite.

Kako radi card skimming

Ilustracija odeljka 1

Kod teme woocommerce redosled koraka je važniji od žurbe.

Skriveni kod na stranici za plaćanje

Najčešći oblik je JavaScript kod koji se ubacuje na stranicu za plaćanje (checkout). Kada kupac popuni polja, kod pročita vrednosti iz tih polja i pošalje ih na server koji kontroliše napadač. Slanje se najčešće maskira da liči na legitiman zahtev, na primer na učitavanje slike ili analitički poziv, a adresa napadačevog servera se bira tako da liči na poznat servis.

Kod se obično aktivira samo na stranici za plaćanje, samo kada se u polju pojavi nešto što liči na broj kartice, i često se krije od ulogovanih administratora. Na ostalim stranicama sajta ne radi ništa i ne ostavlja nikakav trag.

Lažna forma za plaćanje

Druga česta varijanta je lažna forma. Ako vaša prodavnica kupca preusmerava na stranicu banke ili procesora plaćanja, napadač ne može da pročita podatke sa te stranice. Zato na vaš sajt, pre preusmeravanja, ubaci sopstvenu formu koja izgleda kao prava. Kupac unese podatke o kartici, forma ih pošalje napadaču, a zatim prikaže grešku („Plaćanje nije uspelo, pokušajte ponovo“) i pusti kupca na pravu stranicu banke, gde on ponovo unese iste podatke i plaćanje prođe.

Kupac ne posumnja ništa, a vi dobijate uredno plaćenu porudžbinu. U vašem sistemu nema ni jedne neuspele transakcije, pa ni vi nemate razlog da posumnjate. Jedini trag je to što su neki kupci karticu uneli dva puta.

Kod ne mora biti u fajlovima

Skimmer se može kriti na više mesta:

  • u fajlovima dodatka za plaćanje ili samog WooCommerce-a,
  • u šablonima WooCommerce-a unutar teme (folder woocommerce u temi),
  • u bazi, u opcijama ili podešavanjima dodataka za ubacivanje koda,
  • u fajlovima koji izgledaju kao slike ili fontovi,
  • u spoljnom servisu koji se učitava na sajtu, na primer u Google Tag Manager kontejneru ako je nalog kompromitovan, ili u skripti trećeg servisa koja je sama hakovana.

Zašto su male prodavnice česta meta

Velike prodavnice imaju bezbednosne timove i nadzor koji ovakav kod otkriva brzo. Male WooCommerce prodavnice najčešće nemaju nikoga ko redovno gleda šta se učitava na stranici za plaćanje. Napadači to znaju i koriste automatizovane alate koji traže prodavnice sa zastarelim dodacima. Za napadača je svejedno da li prodavnica ima deset ili deset hiljada porudžbina mesečno: kod se ubaci jednom i radi sam, a skimmer koji ostane neprimećen nekoliko meseci i na maloj prodavnici prikupi stotine kartica.

„Kod mene plaćanje ide preko banke, ovo me se ne tiče“

Ilustracija odeljka 2

Mnoge prodavnice u Srbiji koriste plaćanje gde se kupac prebacuje na stranicu banke ili procesora plaćanja, ili gde se forma za karticu učitava u zaštićenom okviru (iframe) sa njihovog servera. To je dobra praksa i značajno smanjuje rizik, ali ga ne uklanja:

  • Lažna forma opisana iznad radi upravo kod prodavnica sa preusmeravanjem.
  • Ostali podaci kupaca (ime, adresa, telefon, e-mail, sadržaj porudžbine) unose se na vašem sajtu i mogu biti ukradeni bez obzira na način plaćanja.
  • Napadač može da izmeni podešavanja dodatka za plaćanje, na primer adresu na koju se kupac preusmerava ili ključeve za pristup, ako ima administratorski pristup.

Dakle, pitanje nije „da li imam karticu na sajtu“, nego „da li neko može da menja ono što kupac vidi na mom sajtu“.

Znaci da vaša prodavnica možda krade podatke

Ilustracija odeljka 3

Signali od kupaca i banke

  • Kupci prijavljuju zloupotrebu kartica nekoliko dana ili nedelja posle kupovine kod vas. Jedna prijava može biti slučajnost. Dve ili više u kratkom periodu su ozbiljan signal.
  • Banka ili procesor plaćanja vas kontaktira. Banke analiziraju gde su zloupotrebljene kartice ranije korišćene. Ako je vaša prodavnica zajednička tačka, dobićete upit. Ovo nikada ne ignorišite.
  • Kupci pominju da su karticu uneli dva puta ili da je prvo plaćanje „palo“, pa je drugo uspelo. To je tipičan znak lažne forme.

Tehnički signali

  • Stranica za plaćanje izgleda drugačije nego ranije: dodatno polje, drugačiji raspored, forma za karticu tamo gde je ranije bilo samo dugme.
  • Nepoznate skripte na stranici za plaćanje, vidljive u izvornom kodu ili u alatima za programere.
  • Zahtevi ka nepoznatim domenima dok kupac kuca u polja za plaćanje.
  • Izmenjeni fajlovi dodatka za plaćanje ili WooCommerce šablona u temi.
  • Nepoznat administrator ili promenjena podešavanja dodatka za plaćanje.
  • Upozorenje bezbednosnog dodatka ili hostinga o zlonamernom kodu. Šta znače takve poruke, objasnili smo u tekstu Wordfence ili hosting prijavio malver.

Posledice za prodavnicu

Posledice skimminga su ozbiljnije nego kod većine drugih infekcija, jer pogađaju tuđe novce i podatke:

  • Gubitak mogućnosti primanja kartica. Banka ili procesor plaćanja može privremeno ili trajno da ukine mogućnost plaćanja karticama dok se ne dokaže da je prodavnica bezbedna.
  • Troškovi i naknade. U zavisnosti od ugovora sa procesorom plaćanja, trgovac može snositi deo troškova zloupotrebe i dodatne provere.
  • Obaveze prema zakonu o zaštiti podataka o ličnosti, o kojima pišemo u nastavku.
  • Izgubljeno poverenje kupaca. Kupac kome je kartica zloupotrebljena posle kupovine kod vas retko se vraća, a lako priča drugima.
  • Pad prodaje dok traje čišćenje, jer je plaćanje karticom isključeno ili prodavnica zatvorena.

Zbog svega ovoga, kod skimminga se ne čeka i ne pokušava da se problem „tiho“ reši.

Kako da proverite svoju prodavnicu

Ilustracija odeljka 4

Ponovite ovu proveru ako se woocommerce vrati posle delimičnog čišćenja.

Pogledajte stranicu za plaćanje kao kupac

Otvorite prodavnicu u privatnom prozoru, bez prijave, dodajte proizvod u korpu i idite do stranice za plaćanje. Uporedite je sa onim kako bi trebalo da izgleda. Ne unosite pravu karticu.

Proverite skripte i zahteve

Na stranici za plaćanje otvorite alate za programere (F12), tab „Network“, i počnite da kucate izmišljene podatke u polja. Ako se pri kucanju ili pri izlasku iz polja šalju zahtevi ka domenima koje ne prepoznajete, to je ozbiljan znak. U tabu „Sources“ ili u izvornom kodu stranice pogledajte sve skripte i proverite da li svaku znate. Uobičajene su skripte WooCommerce-a, vaše teme, dodatka za plaćanje, analitike i eventualno četa.

Pregledajte fajlove i bazu

Uporedite fajlove WooCommerce-a i dodatka za plaćanje sa originalnim verzijama, proverite folder woocommerce u vašoj temi i pretražite bazu po oznaci <script i po nepoznatim domenima. Proverite i nalog za Google Tag Manager ako ga koristite: ko ima pristup i da li postoje oznake koje niste vi dodali.

Pogledajte i spolja

Naša besplatna provera sajta pregleda javni HTML i JavaScript prodavnice i traži poznate obrasce zlonamernog koda. Skimmeri se često aktiviraju samo na stranici za plaćanje i pod određenim uslovima, pa čist rezultat ovde nije garancija, ali nalaz jeste jasan signal da treba reagovati.

Pitajte procesora plaćanja

Ako sumnjate, obratite se banci ili procesoru plaćanja. Oni imaju podatke o prijavama zloupotrebe i mogu da potvrde da li se vaša prodavnica pojavljuje kao zajednička tačka.

Šta uraditi odmah ako sumnjate na skimming

Ilustracija odeljka 5

Vlasnici često potcenjuju temu woocommerce dok Search Console ili klijenti ne podignu uzbunu.

Redosled je ovde posebno važan, jer se radi o tuđim podacima i mogućim pravnim obavezama.

1. Sačuvajte dokaze

Pre nego što bilo šta obrišete, napravite kompletnu kopiju fajlova i baze, i sačuvajte logove servera. Kasnije će biti potrebno da se utvrdi od kada je skimmer aktivan i koje porudžbine su pogođene. Ako obrišete kod pre nego što ga sačuvate, to postaje mnogo teže.

2. Zaustavite curenje

Privremeno isključite plaćanje karticama na sajtu. Ostavite druge načine plaćanja, kao što je plaćanje pouzećem ili uplatnica, dok se prodavnica ne očisti. Ako ne možete brzo da utvrdite gde je kod, razmislite o privremenom zatvaranju kase ili cele prodavnice. Svaki sat rada zaražene stranice za plaćanje znači nove ukradene kartice.

3. Obavestite banku ili procesora plaćanja

Javite se odmah. Oni imaju sopstvene procedure za ovakve slučajeve, mogu da prate zloupotrebe i da blokiraju pogođene kartice. Pokušaj da se problem prikrije gotovo uvek se završi lošije, uključujući i gubitak mogućnosti primanja kartica.

4. Očistite prodavnicu

Postupak je sličan kao kod drugih infekcija, uz posebnu pažnju na delove koji se tiču plaćanja:

  • promenite sve lozinke i sigurnosne ključeve, uklonite nepoznate administratore,
  • zamenite WooCommerce, dodatak za plaćanje, temu i ostale dodatke čistim kopijama iz zvaničnih izvora,
  • proverite prilagođene WooCommerce šablone u temi i uporedite ih sa originalom,
  • pregledajte bazu i podešavanja dodataka za ubacivanje koda,
  • proverite spoljne servise (Tag Manager, skripte trećih strana),
  • pronađite backdoor i utvrdite kako je napadač ušao.

Kako izgleda čišćenje zaražene prodavnice u praksi, opisali smo u tekstu Hakovana WooCommerce prodavnica: kako smo je očistili.

5. Promenite ključeve za plaćanje

Ako je napadač imao administratorski pristup, mogao je da vidi API ključeve i tajne ključeve dodatka za plaćanje. U kontrolnom panelu procesora plaćanja generišite nove ključeve i unesite ih u prodavnicu.

6. Proverite pravne obaveze

Ako su ukradeni lični podaci kupaca, Zakon o zaštiti podataka o ličnosti propisuje obavezu da se o povredi podataka obavesti Poverenik za informacije od javnog značaja i zaštitu podataka o ličnosti, bez nepotrebnog odlaganja i, ako je moguće, najkasnije u roku od 72 sata od saznanja, osim ako povreda verovatno ne predstavlja rizik za prava lica. Kada postoji visok rizik, obaveštavaju se i sami kupci. Mi nismo pravnici, pa vam preporučujemo da se odmah posavetujete sa advokatom, ali je važno da znate da ovaj rok postoji i da počinje da teče od trenutka kada ste saznali za problem.

7. Obavestite kupce

Čak i kada zakon to ne zahteva, korektno je da obavestite kupce čiji su podaci možda ukradeni i savetujete ih da kontaktiraju svoju banku. Kratka, iskrena poruka čuva poverenje mnogo bolje nego ćutanje, posebno ako kupci kasnije saznaju odakle je problem došao. U poruci navedite period u kome je problem postojao, šta ste preduzeli i šta kupcima savetujete.

Kako da zaštitite prodavnicu

Ilustracija odeljka 6

Plaćanje van vašeg sajta ili u zaštićenom okviru

Ako je moguće, koristite način plaćanja gde se podaci o kartici unose na stranici banke ili procesora plaćanja, ili u okviru (iframe) koji se učitava sa njihovog servera. Tako podaci o kartici nikada ne prolaze kroz kod vašeg sajta. Lažnu formu i dalje treba sprečiti, ali je obim rizika mnogo manji.

Content Security Policy

HTTP zaglavlje Content Security Policy ograničava sa kojih domena stranica sme da učitava skripte i kojim domenima sme da šalje podatke. Dobro podešen CSP može da spreči da ukradeni podaci uopšte napuste stranicu, čak i ako je skimmer ubačen.

Nadzor skripti na stranici za plaćanje

Stranica za plaćanje treba da ima poznat, kratak spisak skripti. Automatska provera koja javlja kada se na toj stranici pojavi nova ili izmenjena skripta otkriva skimmer za nekoliko sati. Standard za bezbednost plaćanja karticama, PCI DSS, u najnovijoj verziji eksplicitno traži da trgovci vode spisak skripti na stranicama za plaćanje i prate njihove izmene, upravo zbog ovog tipa napada.

Manje dodataka, manje pristupa

Svaki dodatak i svaki administratorski nalog su potencijalni ulaz. Prodavnica treba da ima samo neophodne dodatke, ažurirane redovno, i samo nekoliko administratora sa dvostepenom autentifikacijom. Zaposlenima koji obrađuju porudžbine ne treba administratorska uloga, dovoljna im je uloga „Menadžer prodavnice“.

Osnovna zaštita

Redovna ažuriranja, originalni dodaci, jake lozinke, bekapi i nadzor. Kompletan vodič je u tekstu Zaštita WordPress sajta od hakovanja.

Mesečna kontrolna lista za stranicu za plaćanje

Ovu listu može da prođe i neko ko nije programer, za petnaestak minuta mesečno:

  • ☐ Stranica za plaćanje, otvorena u privatnom prozoru, izgleda isto kao prošlog meseca.
  • ☐ Spisak skripti na stranici za plaćanje je isti kao prošlog meseca, bez novih domena.
  • ☐ Lista administratora sadrži samo ljude koje poznajete.
  • ☐ WooCommerce, dodatak za plaćanje i tema su ažurirani.
  • ☐ Nema novih upozorenja od bezbednosnog dodatka ili hostinga.
  • ☐ Nije bilo prijava kupaca o zloupotrebi kartica.
  • ☐ Pristupi za Google Tag Manager i druge spoljne servise imaju samo ljudi kojima su potrebni.

Sledeći korak

woocommerce uz temu Sledeći korak

Ako su vam kupci prijavili zloupotrebu kartica, ili vas je kontaktirala banka, ne čekajte. Pokrenite besplatnu proveru sajta i odmah nas kontaktirajte ili pozovite 065 402 5000. Ovakve slučajeve tretiramo kao hitne, kroz Emergency Response paket sa prioritetom u toku radnog dana, od 150 €. Za prodavnice koje žele stalni nadzor, paket održavanja kreće od 30 € mesečno.

Pitanja

Česta pitanja

Kratki odgovori uz ovaj članak. Ako ovde nema vašeg pitanja, pišite nam preko kontakta.

Šta je card skimming na web prodavnici?

To je napad u kome se na stranicu za plaćanje ubaci skriveni kod koji beleži podatke koje kupac unosi, uključujući podatke o kartici, i šalje ih napadaču. Prodavnica i dalje normalno radi, pa napad može dugo da ostane neprimećen.

Da li sam zaštićen ako plaćanje ide preko stranice banke?

Delimično. Napadač ne može da čita podatke sa stranice banke, ali može da na vaš sajt ubaci lažnu formu koja prikupi podatke pre preusmeravanja, ili da ukrade ostale podatke kupaca kao što su ime, adresa i telefon. Rizik je manji, ali postoji.

Kako da znam da li moja prodavnica krade podatke kupaca?

Najčešći signali su prijave kupaca o zloupotrebi kartica posle kupovine kod vas, upit banke ili procesora plaćanja, kupci koji kažu da su karticu uneli dva puta, i nepoznate skripte ili zahtevi ka nepoznatim domenima na stranici za plaćanje.

Šta prvo da uradim ako sumnjam na skimming?

Sačuvajte kopiju fajlova, baze i logova, privremeno isključite plaćanje karticama, i odmah obavestite banku ili procesora plaćanja. Zatim krenite u čišćenje i proverite pravne obaveze prema Zakonu o zaštiti podataka o ličnosti.

Da li moram da prijavim krađu podataka Povereniku?

Zakon o zaštiti podataka o ličnosti propisuje obavezu obaveštavanja Poverenika o povredi podataka, po pravilu u roku od 72 sata od saznanja, osim kada povreda verovatno ne predstavlja rizik za prava lica. Nismo pravnici, pa preporučujemo da se odmah posavetujete sa advokatom.

Da li je dovoljno da obrišem skimmer kod?

Ne. Skimmer je ubačen preko nekog ulaza, najčešće ukradenog administratorskog naloga, ranjivog dodatka ili backdoor-a. Ako se ulaz ne zatvori, kod se vraća. Potrebno je potpuno čišćenje, promena svih pristupa i ključeva za plaćanje.

Kako da sprečim da se ovo ponovi?

Koristite plaćanje na stranici banke ili u zaštićenom okviru, podesite Content Security Policy, pratite skripte na stranici za plaćanje, smanjite broj dodataka i administratora, uključite dvostepenu autentifikaciju i redovno ažurirajte prodavnicu.

Niste sigurni da li je vaš sajt hakovan?

Pokrenite besplatnu proveru. Traje manje od minuta, bez naloga i instalacije.

Proveri sajt