Príklady bezpečnostných chýb slovenských a českých e-shopov: Chyby v infraštruktúre

Ďalší článok

Prinášame vám ďalší článok zo série krátkych blogov, v ktorých vám predstavíme zistenia z testovaní, ktoré v poslednom čase robili naši etickí hackeri.

Etickí hackeri sú špecialisti, ktorých služby využívajú firmy na to, aby proaktívne a s vedomím a povolením firmy hľadali v jej systémoch bezpečnostné chyby. Vlastníci, prevádzkovatelia e-shopov a ich dodávatelia tak môžu získať jednoduché tipy na kontrolu alebo vylepšenia bezpečnosti aplikácií e-shopov. Zároveň sa snažíme sprístupniť aj laickému čitateľovi spôsob, akým môžu byť útočníkom zneužité programátorské chyby.

V tomto článku vám opíšeme častú chybu českých a slovenských e-shopov – chyby vyplývajúce z nesprávnej konfigurácie infraštruktúry.

Na to, aby e-shop mohol správne fungovať a zákazník mohol robiť nákupy z pohodlia domova, musí byť e-shop dostupný vo verejnom internete. To znamená, že samotná aplikácia potrebuje miesto, kam na ňu budú zákazníci pristupovať. Tým miestom je zariadenie (hardvér, server), na ktorom beží webový server tohto internetového obchodu.

E-shop je spravidla spojený s nejakou databázou, kde sa ukladajú všetky údaje o zákazníkoch, produktoch, objednávkach a podobne. Táto beží na databázovom serveri. Takýchto komponentov infraštruktúry môže byť samozrejme aj viac, v závislosti od komplexnosti integrácie s ďalšími aplikáciami zákazníka. Tie vyššie spomenuté sú však obsiahnuté takmer v každom jednom riešení e-shopov.

Každý komponent v prípade nesprávnej implementácie predstavuje riziko aj pre samotnú aplikáciu. Rovnako tak aj ich vzájomné prepojenie. Pri e-shopoch sa často stretávame s riešením, keď aplikácia beží na prenajatej, zdieľanej infraštruktúre, spolu s ďalšími aplikáciami úplne iných vlastníkov. Týmto často chýba potrebné zabezpečenie, môžu byť bez bezpečnostných záplat a obsahovať závažné chyby. Útočník sa tak môže k predmetnej aplikácii dostať aj prostredníctvom nich. Nie je vylúčené, že útočník sa bude snažiť k aplikácii pristúpiť „legitímnou“ cestou, požiadaním o prístup v zdieľanej infraštruktúre. Spektrum útokov, ktoré takto môžu vzniknúť, je obrovské. My si v nasledovných riadkoch opíšeme niektoré často sa opakujúce.

Prvým typom útoku, ktorý často nemusí vyžadovať znalosť pokročilých techník hackingu, je zneužitie známej zraniteľnosti. Cieľom môže byť čokoľvek: webový server, webový framework, použitá knižnica a podobne. Všetky tieto komponenty vyvíjajú ľudia, ktorí robia chyby. Tieto sa postupne odhaľujú, zverejňujú, opravujú a vydávajú sa na ne záplaty. Tieto záplaty však znovu môžu obsahovať chyby (často aj obsahujú) a celý proces je naštartovaný znovu.

Útočníkovi stačí zistiť, ktorú verziu komponentu e-shop používa, nájsť príslušné známe zraniteľnosti (ktoré často obsahujú aj postup zneužitia) a aplikovať ich v kontexte predmetnej aplikácie. Verejných databáz známych zraniteľností je mnoho, najznámejšou je www.cvedetails.com. Na ilustráciu, webový server apache vo verzii 2.4 obsahuje nasledovné známe zraniteľnosti. Spektrum zraniteľností je veľké, od získania uložených informácií (napríklad osobných údajov klientov alebo obchodných informácií prevádzkovateľa) cez útoky na klienta, server, útoky typu denial-of-service (zneprístupnenie služby legitímnym používateľom, teda ľuďom, ktorí by si v danom e-shope radi niečo kúpili) až po možnosť spustenia vlastného kódu na serveri, a teda jeho úplnú kompromitáciu. 

Nie je však vylúčené, že server poskytuje (niekedy zámerne, inokedy nie) aj iné služby, ktoré môžu byť vstupným bodom na kompromitáciu. V prípade, že to tak je, znovu nastupuje možnosť uskutočnenia útoku na známe zraniteľnosti, opísané v odstavci vyššie, prípadne na ich nesprávnu konfiguráciu. Tieto služby už vôbec nemusia súvisieť so samotným e-shopom. Ako príklad uvediem službu SMB (slúži na zdieľanie súborov v sieti). Táto môže byť nesprávne nakonfigurovaná, a tak útočníkovi dokáže poskytnúť informácie o cieli (detailné verzie komponentov, zoznam používateľov, dokonca obsah úložísk). V konkrétnej verzii však obsahuje závažnú chybu typu eternalblue, ktorá umožní úplnú kompromitáciu servera s najvyššími oprávneniami.

V praxi nie je dôvod, aby bolo dostupná verejne, ale nesprávnou konfiguráciou sa to môže stať. Obdobným spôsobom sme sa stretli napríklad s inou, deravou aplikáciou na neštandardnom porte, často vývojármi zabudnutou, prípadne slúžiacou na testovacie účely. Ďalej to môžu byť rôzne zálohy databáz a podobne. 

Častou chybou, ktorá sa v súvislosti s e-shopmi objavuje, je verejná dostupnosť rozhrania pre administrátorov. Prostredníctvom tohto rozhrania je možné pristupovať ku konfiguráciám na aplikačnej vrstve, k databáze a podobne. Tieto rozhrania sú poväčšine dostupné cez jednoducho uhádnuteľnú URL, napríklad: /admin, /administrator, /wpadmin a tak ďalej. Často bývajú uvedené v súbore robots.txt, ktorý sa využíva  na upozornenie automatických vyhľadávačov (napríklad Google), že si tie adresy nemajú všímať. V prípade, že toto rozhranie je dostupné verejne, je možné naň útočiť a využiť chyby autentifikácie (pozri blog Chyby v autentifikácii) a v prípade úspechu dochádza k úplnej kompromitácii aplikácie.

Na záver ešte spomenieme chybu, ktorá súvisí s konfiguráciou webového servera. Zákazník komunikuje s aplikáciou prostredníctvom prehliadača, kde na pozadí sú na server odosielané požiadavky (requesty). Bežné webové aplikácie si štandardne vystačia s dvomi typmi: GET (získanie informácií) a POST (vstup od používateľa). Existujú však aj iné, ktoré v prípade nesprávnej konfigurácie v kontexte webovej aplikácie môžu spôsobiť závažné problémy.

Metóda PUT slúži na nahrávanie súborov na server. V prípade, že je dostupná a aplikácia nemá správne nastavené práva, môže útočník prostredníctvom nej nahrať na server súbory obsahujúce škodlivý kód. Druhou potenciálne nebezpečnou metódou je metóda DELETE. Ako názov napovedá, slúži na mazanie súborov. Opäť v prípade nesprávnej konfigurácie umožní útočníkovi zmazať súbory na serveri, v krajnom prípade aj celú aplikáciu. Zmazanie súboru .htaccess, ktorý riadi prístup k aplikácii, môže predstavovať cestu, ako aplikáciu úplne kompromitovať.

Jednou z úloh našich testerov je včas objaviť už spomenuté, ale aj nové nedostatky, ktoré môžu potenciálni útočníci zneužiť pri chybnej konfigurácii infraštruktúry, a zabrániť tak väčším škodám. Zároveň chyby autorizácie sú len jednou skupinou chýb, ktoré môžu potenciálni útočníci zneužiť.

Pokiaľ vás tento článok zaujal, zanechajte nám vašu e-mailovú adresu a pošleme vám aj ďalšie články týkajúce sa bezpečnosti internetových obchodov alebo testovania bezpečnosti.

Pokiaľ máte záujem o viac informácií o službe preverenia bezpečnosti vášho internetového obchodu alebo inej aplikácie, vyplňte kontaktný formulár TU.