V nedávném rozhovoru s etickým hackerem Tomášem Ležovičem byla řeč o testování e-shopů. Z našich testů vyšlo najevo, že české a slovenské e-shopy mají často problémy s autorizací. Jak se tato zranitelnost projevuje v praxi?
Penetrační tester (etický hacker) je specialista, který proaktivně vyhledává bezpečnostní chyby v systémech firem. Vlastníkům, provozovatelům a dodavatelům e-shopů poskytuje informace o chybách v zabezpečení online obchodů. Veškeré testy probíhají na základě předchozí domluvy a detailní smlouvy.
Autorizace je udělení oprávnění k získání dat ze systému a používání služeb v něm obsaženém. V případě e-shopu má nepřihlášený nakupující oprávnění (autorizaci) jen k nákupu, výběru dopravy a platbě. Nakupující přihlášený do systému (heslem či jinou formou) získá oprávnění k přístupu do historie vlastních objednávek, faktur, může čerpat věrnostní slevy a podobně. Administrátor e-shopu má autorizaci k přístupům do výpisu všech objednávek, editaci zboží a dalším funkcím.
Nesprávně naprogramovaná autorizace přináší dva základní typy chyb, které zneužívají útočníci: jednak mohou získat hierarchicky vyšší práva, případně oprávnění k datům někoho jiného ve stejné hierarchii.
#1 Přístup k hierarchicky vyšším právům
Uveďme jednoduchý příklad:Zaměstnanec e-shopu má vlastní rozhraní, ve kterém spravuje objednávky vytvořené zákazníky. Může je upravovat, mazat, spouštět aktivity na dodání zboží a tak dále.
V případě, že má e-shop chybu autorizace, může mít zákazník přístup k datům a činnostem, které jsou určené pro role vyšší, než které náleží běžnému zákazníkovi. Dochází k tzv. vertikální eskalaci privilegií, tj. umožnění využití vyšších práv, např. práv zaměstnance e-shopu, v extrémním případě i práv super-administrátora.
#2 Přístup k datům a funkcionalitě jiného zákazníka
V případě druhé chyby může útočník získat neoprávněně přístup k datům, která náleží roli na stejné hierarchické úrovni, jako má běžný zákazník.
Uveďme opět příklad: Zákazník Martin Dobrý je řádně zaregistrovaný. Má vyplněný profil, v kterém se nachází jeho adresa, telefonní číslo, e-mail a další osobní údaje. K profilu se přistupuje prostřednictvím URL adresy zakončené jménem zákazníka, například eshop.cz/martindobry. Představme si nyní druhého zákazníka se jménem Jozef Zlý. V případě špatné implementace autorizace může Jozef Zlý přistoupit k profilu Martin Dobrý a dostat se tak k jeho osobním údajům nebo objednávkám. Tím může Jozef Martinovi zrušit objednávky nebo dokonce úplně odcizit konto. V takovém případě dochází k horizontální eskalaci privilegií.
Nebezpečné je i použití přímého odkazu do uživatelského rozhraní bez potřebné autorizace. Pokud takový odkaz použije Jozef Zlý, uvidí tak objednávky, faktury, smlouvy a jiné dokumenty Martina Dobrého.
Uvedené chyby mohou mít nakonec i právní důsledky. E-shopy jsou ze zákona povinné chránit data nakupujících.
Chybná autorizace nemusí znamenat jen neoprávněný přístup k osobním údajům. Útočník díky ní může provádět i jiné akce jménem zákazníka, například hanlivě komentovat či psát negativní recenze. Krom poškození uživatele degraduje i důvěryhodnost samotného e-shopu.
Úlohou penetračních testerů je včas objevit zmíněné ale i jiné nedostatky a zabránit tak větším škodám. Chyby autorizace jsou jen jednou skupinou chyb, které mohou potenciální útočníci zneužít.