Prinášame vám úvodný č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 ich 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ť využité programátorské chyby.
V tomto článku vám opíšeme častú chybu českých a slovenských e-shopov – problém s autorizáciou.
Autorizácia je zložka zabezpečenia, ktorá potvrdzuje oprávnenie využívať prostriedky, funkcie alebo dáta informačného systému. V prípade e-shopu teda autorizácia slúži na to, aby používateľ dostal prístup k dátam e-shopu a jeho funkcionalite, ktorá mu prislúcha, a k žiadnym iným. Napríklad neprihlásený kupujúci dostane oprávnenia (autorizáciu) iba na nakupovanie, výber dopravy a zaplatenie. Pokiaľ sa kupujúci prihlási heslom, dostane oprávnenie vidieť históriu svojich objednávok, faktúr, možnosť čerpať zľavy za svoje predchádzajúce nákupy a podobne. Administrátor e-shopu bude mať autorizáciu na prístup k všetkým funkciám a dátam e-shopu.
Nesprávne naprogramovaná autorizácia prináša dva základné typy chýb, ktoré využívajú útočníci:
1. Prvou je prístup k dátam a funkcionalite hierarchicky vyššie privilegovaného používateľa.
Uveďme jednoduchý príklad: Zamestnanec e-shopu má vlastné rozhranie, v ktorom spravuje objednávky vytvorené všetkými zákazníkmi. Môže ich upravovať, mazať, spúšťať aktivity na dodanie tovaru a podobne. V prípade, že e-shop má chybu autorizácie, dokáže k rovnakým dátam a činnostiam ako zamestnanec e-shopu pristupovať aj bežný zákazník alebo útočník. Zneužitie takejto chyby umožňuje vertikálna eskalácia privilégií.
2. Ďalšou chybou je prístup k dátam a funkcionalite iného zákazníka – hierarchicky s rovnakými právami ako iný bežný zákazník.
Uveďme opäť príklad: Zákazník Martin Dobrý je riadne zaregistrovaný, má vyplnený profil, v ktorom sa nachádza jeho adresa, telefónne číslo, e-mail a ďalšie osobné údaje. K profilu sa pristupuje prostredníctvom URL adresy, ktorá sa končí menom zákazníka, napríklad https:// eshop/martindobry. Máme aj druhého zákazníka s menom Jozef Zlý. V prípade zlej implementácie autorizácie môže Jozef Zlý pristúpiť k profilu Martin Dobrý a dostať sa tak k jeho osobným údajom alebo objednávkam. Chybu možno využiť aj ďalej. Jozef môže zrušiť Martinove objednávky alebo dokonca úplne odcudziť Martinovo konto. V tomto prípade hovoríme, že nesprávna autorizácia umožňuje horizontálnu eskaláciu privilégií.
Nesprávna autorizácia, bez ohľadu na typ eskalácie, má aj ďalšie vplyvy. Napríklad, pokiaľ sa zároveň pristupuje k dokumentom takzvanou priamou referenciou. Znamená to, že sa pristupuje priamym odkazom bez potrebnej autorizácie. Takýmto spôsobom je možné sprístupniť objednávky, faktúry, zmluvy a podobne. Prihlásený používateľ Jozef Zlý opäť vidí údaje a dokumenty Martina Dobrého.
Porušenie zákona o ochrane osobných údajov (inak známeho aj ako GDPR – General Data Protection Regulation) je zrejmé a dosah môže byť vážny, ak nie likvidačný.
Chybná autorizácia nemusí znamenať len neoprávnený prístup k údajom, ale často aj vykonanie akcie v mene iného zákazníka, napríklad hanlivé komentovanie a hodnotenie tovarov a písanie zlých recenzií. Okrem poškodenia používateľa je degradovaná aj dôveryhodnosť samotného e-shopu.
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 autorizácii, a zabrániť tak väčším škodám. Zároveň chyby autorizácie sú len jednou skupinou chýb , ktoré môži potenciálni útočníci zneužiť. Pokiaľ vás tento článok zaujal, zanechajte nám tu 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 tento kontaktný formulár.