Aktualizácia 25.7.2022 - Oprava zraniteľnosti
PrestaShop vydal verziu 1.7.8.7, ktorá prináša opravu nižšie spomínanej zraniteľnosti.
Ak si prajete vykonať bezpečnostný audit, či váš e-shop nie je napadnutý (a v prípade napadnutia aj jeho vyčistenie) a aplikovať bezpečnostnú opravu (nie je potrebné, aby sa vykonal upgrade celého PrestaShopu), kontaktujte nás prosím e-mailom na info@prestashop.sk alebo cez kontaktný formulár.
Krátke zhrnutie o napadnutí (TL;DR)
Váš PrestaShop môže byť napadnutý spôsobom, že zákazníci v pokladni e-shopu neuvidia vami ponúkané spôsoby platby, ale falošný formulár pre zadanie údajov z platobnej karty (viď obrázok nižšie v článku), ktorý ich okamžite odošle priamo útočníkovi. Ten potom údaje o karte speňažuje na čiernom trhu.
Súčasne útočníci získavajú aj prihlasovacie údaje do databázy e-shopu a prístupy obsluhy e-shopu zakaždým, keď sa niekto prihlási do administrácie PrestaShopu.
Pôvodný článok z 19.7.2022
Toto je preklad článku Major Security Vulnerability on PrestaShop Websites z PrestaShop Developers’ blog vydaný 22.7.2022 a doplený informáciami z článku PrestaShop Skimmer Concealed in One Page Checkout Module (pôvodne uverejnený 19.7.2022 na securityboulevard.com)
Čo sa deje?
Novoobjavená zraniteľnosť by mohla umožniť vzdialeným útočníkom prevziať kontrolu nad vašim e-shopom. Útočníci našli spôsob, ako využiť bezpečnostnú chybu na spustenie ľubovoľného kódu na serveroch s webovými stránkami PrestaShop.
PrestaShop tím bol informovaný o tom, že útočníci využívajú kombináciu známych a neznámych bezpečnostných zraniteľností na vloženie škodlivého kódu na webové stránky PrestaShop, čo im umožňuje vykonávať ľubovoľné pokyny a potenciálne ukradnúť platobné informácie zákazníka.
Počas vyšetrovania tohto útoku sme našli predtým neznámy reťazec zraniteľností, ktorý sa pokúšame opraviť. Momentálne si však nemôžeme byť istí, že je to jediný spôsob, akým útok na PrestaShop vedia vykonať. Podľa doterajších zistení sa zdá, že problém sa týka obchodov postavených na verziách PrestaShop 1.6.0.10 a novších, ktoré podliehajú zraniteľnostiam SQL injection. Verzie 1.7.8.2 a novšie nie sú zraniteľné, pokiaľ nemajú nainštalovaný nejaký modul alebo vlastný kód, ktorý sám o sebe obsahuje zraniteľnosť SQL injection.
Čo sa týka zraniteľnosti modulov, známe aktuálne sú:
- Zoznam želaní (Wishlist - blockwishlist) verzie 2.0.0 až 2.1.0
- Pokladňa na jednej stránke (One Page Checkout PS - onepagecheckoutps)
Ako útok funguje
Útok vyžaduje, aby bol obchod zraniteľný voči zneužívaniu SQL injection. Podľa našich vedomostí, najnovšia verzia PrestaShopu (1.7.8.6) a jeho moduly neobsahuje tieto bezpečnostné chyby. Sme presvedčení, že útočníci sa zameriavajú na obchody používajúce staršie verzie PrestaShopu a modulov, zraniteľné moduly tretích strán alebo inú, zatiaľ neobjavenú zraniteľnosť.
Na základe podnetov od obchodníkov a programátorov vyzerá priebeh útoku nasledovne:
- útočník odošle požiadavku typu POST na koncový bod zraniteľný voči SQL injection.
- po približne jednej sekunde útočník odošle na domovskú stránku požiadavku GET bez parametrov. Výsledkom je vytvorenie dočasného PHP súboru s názvom blm.php v koreňovom priečinku e-shopu.
- útočník potom odošle požiadavku GET do súboru blm.php, čo im umožní vykonávať ľubovoľné inštrukcie vedúce k plnej kontrole nad e-shopom.
- útočník dočasný súbor blm.php zmaže.
Potom, čo útočníci úspešne získali kontrolu nad obchodom, vložili falošný kartový platobný formulár na stránku pokladne. Pri tomto scenári môžu zákazníci obchodu zadať informácie o svojej platobnej karte do falošného formulára a tak nevedomky ich odoslať útočníkom.
Aj keď sa zdá, že ide o bežný scenár, útočníci môžu používať iný postup, iné umiestnenie nahratého súboru s iným názvom, alebo upraviť iné časti PrestaShopu, aby dosiahli umiestnenie škodlivého kódu alebo dokonca vymazaním svojich stôp po úspešnom útoku.
Ako zistiť, či ste boli zasiahnutí útokom
Pozrite sa do logov na FTP serveri, kde nájdete vzor útoku vysvetlený vyššie. Príklad záznamu:
- [14/Jul/2022:16:20:56 +0200] "POST /modules/XXX/XXX.php HTTP/1.1" 200 82772 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14"
- [14/Jul/2022:16:20:57 +0200] "GET / HTTP/1.1" 200 63011 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
- [14/Jul/2022:16:20:58 +0200] "POST /blm.php HTTP/1.1" 200 82696 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
(Poznámka: Cesta zraniteľného modulu bola z bezpečnostných dôvodov upravená)
Majte na pamäti, že ak nenájdete podobný záznam v logoch, nemusí to nevyhnutne znamenať, že váš obchod nebol napadnutý: zložitosť zneužitia znamená, že existuje niekoľko spôsobov, ako ho vykonať, a útočníci sa tiež môžu pokúsiť zakryť svoje stopy.
Kontaktujte nás, alebo iného PrestaShop špecialistu, aby vykonal úplný audit vášho PrestaShopu a uistite sa, že nebol upravený žiadny súbor ani pridaný škodlivý kód.
Ďalšie informácie
V súčasnosti sa testuje opravná verzia PrestaShopu, ktorá bude čoskoro vydaná.
Na tomto mieste pripomíname dôležitosť udržiavania aktualizovaného systému, aby sa zabránilo takýmto útokom. To znamená zabezpečiť pravidelnú aktualizáciu PrestaShopu a jeho modulov, ako aj serverového prostredia.