Bezpečnost webových aplikací přitahuje stále více pozornost. Kyber-útoky se nevyhýbají ani českým a slovenským e-shopům. Pojďme se podívat na nejčastější typy útoků a na možnosti obrany proti nim.
Nejčastější typy kybernetických útoků
Na internetové obchody mohou útočníci zkoušet různé typy útoků s různými cíli. Podíváme se však na ty nejčastější.
1. Cross-site scripting (skriptování mezi doménami)
Cross-site scripting (zkr. XSS) je útočná metoda založená na obejití tzv. mezidoménových omezení. Útočí na vstupy webu – nejčastěji vyhledávací pole. Snaží se jim podstrčit vlastní kód a tím:
Náchylnost kXSS je nejrozšířenější slabinou webových aplikací. Mnohokrát se vyskytla např. na webech společností eBay, Amazon a Adobe.
Ochrana před XSS
escapovat nebezpečné znaky (převést je na jiné znaky odpovídající tzv. escape sekvenci);
validovat vstupy whitelisty povolených hodnot;
detekovat potenciálně útočné konstrukce kódu aj.
2. SQL injection (injektování SQL dotazu)
SQL injection je útok manipulující s daty databáze e-shopu (citlivá jsou zejména data o zákaznících a objednávkách). Je založen na vsunutí kódu (SQL dotazu) do již existujících SQL dotazů. Napadnutelné jsou veškeré databáze užívající jazyk SQL a jeho mutace. Následkem takového úniku může být:
ohrožení dat o objednávkách, zákaznících a přístupových údajů administrátora;
umožnění přímého přístupu do databáze bez zadání hesla;
podstrčení útočného kódu návštěvníkům stránek;
kompletní zničení dat a kompromitace počítače provozujícího webovou aplikaci.
Asijští hackeři pomocí SQL injection v červenci 2010 ukradli a zneužili k nákupům data 12 191 zákazníků sítě internetových obchodů Neo Beat a jejích partnerů. V roce 2012 bylo portálu Yahoo ukradeno 453 tisíc uživatelských jmen a hesel. Injektáž se v roce 2013 stala jedničkou mezi útoky.
Ochrana před SQL Injection
ošetřit vstupní parametry (vázání proměnných, pomocí sanitizace, konverze, filtrace)
obecně zabezpečit vše, co je součástí HTTP požadavku (URI, formuláře, referer, cookies, user-agent)
validovat vstupy whitelisty povolených hodnot
minimalizovat práva webové aplikace přistupující k SQL
důsledně používat tzv. uložené procedury
escapovat nebezpečné znaky
3. Session hijacking (útoky na sezení)
Sezení je aktivní spojení klienta a serveru. Cílem útoků na sezení jsou sezení administrátora a zákazníka – tedy jejich spojení k e-shopu při administraci, či nákupu. Patří sem:
session fixation (fixace na sezení): útočník získá oprávnění oběti pomocí podstrčené konstantní HTTP cookie;
session sidejacking: útočník pomocí sledování komunikace uživatele se serverem získá SID a dokud trvá přihlášení oběti, je přihlášen i útočník.
Mnoho hijacking nástrojů bylo kupodivu dostupno přímo na Google Play (WhatsApp sniffer, DroidSheep aj.) Slavnými cíli hijackingu se v minulosti staly Facebook a Twitter. Nedávno i sám Google.
Ochrana před session hijacking
změnit SID po přihlášení
používat náhodná a dostatečně dlouhá SID
sledovat IP adresu a user-agent
přizpůsobit timeout sezení
ověřovací údaje odesílat pouze přes šifrované spojení
Heslo
Počet uživatelů
123456
290731
123456789
79078
Password
61958
iloveyou
51622
princess
35231
rockyou
22588
1234567
21726
12345678
20553
abc123
17542
Hesla uživatelů Adobe: podoba a četnost
4. Brute force (útok hrubou silou)
Útok hrubou silu se snaží uhodnout dvojici uživatel a heslo. Uživatele buď nekale získává, či zkouší seznamy nejčastějších uživatelských jmen. Heslo se snaží prolomit pomocí kombinování možných znaků. Škody hrozí zejména při útoku na účet administrátora (české e-shopy ve své databázi zpravidla neukládají čísla platebních karet).
Ochrana před brute force útokem
omezit počet pokusů o přihlášení v určitém čase;
použít správné (a relativně pomalé) hashovací funkce;
a na straně uživatele zvolit silné heslo (většina populace stále užívá primitivně slabá hesla, jak ukázal útok na Adobe z 09/2013).
5. Nedostatečně chráněná citlivá data (Insecure Cryptographic Storage)
Mnoho e-shopů špatně chrání svá citlivá data – především vůči vnitřnímu zneužití. To potvrdil průzkum Harris Interactive:
třetina zaměstnanců si plánovala odnést data o zákaznících, čtvrtina zkopírovat další soubory a jedna sedmina dokonce produktové informace vč. technických plánů, návrhů apod. Přitom 90 % z nich uvedlo, že tak neučiní, pokud to budebyť jen trochu komplikováno bezpečnostními opatřeními.
Dalším rizikem zneužití je snadná přístupnost citlivých dat prostřednictvím webu: v minulosti se objevily případy, kdy je obchody měly volně přístupné, uchovávaly v podobě prostého textu, či v zastarale hashované podobě.
Ochrana zneužití citlivých dat
minimalizovat oprávnění a rozsah přístupu k citlivým datům;
zašifrovat citlivá data pomocí bezpečných šifer (např. blowfish);
šifrovací klíče uchovávat odděleně od zašifrovaných dat;
zahashovat a kryptograficky osolit hesla (např algoritmem bcrypt).
Je nutné se chránit?
I když se v českém a slovenském prostředí ještě příliš mnoho incidentů neodehrálo a/nebo se jim média příliš nevěnovala, je třeba vzít v úvahu několik fakt:
zranitelnosti jsou velmi snadno zneužitelné
útok sám je jen otázkou času a slabého místa: kde je slabina a kořist, objeví se i útočník
prevence představuje pouhý zlomek nákladů na sanaci škod
Krom toho základním principem prolomení obran zůstává: přišli jednou – přijdou znovu.
ShopSys a ochrana proti útokům hackerů
Přestože se z útoků na české a slovenské e-shopy ještě nestalo mediální téma, děláme v netdevelu maximum pro snížení jejich rizik a následků. Různé prvky ochrany implementujeme už od chvíle, kdy se v ČR objevily první incidenty.
Od té doby úroveň ochrany neustále zvyšujeme a ověřujeme pomocí auditů bezpečnostních expertů. Základní audit poslední verzi ShopSys 5 auditoval mj. i porotce bezpečnosti soutěže WebTop100 a přednášející na konferenci PHP<live> Michal Špaček.
Velice mě těší, že se tématu bezpečnosti webových aplikací věnují i vývojářské firmy; prevence je přeci mnohem lepší a levnější než řešit následné problémy. Bezpečnost je velmi obsáhlé téma a každý rok se objeví několik desítek nových útočných technik. Ochrana proti skoro všem výše uvedeným útokům není příliš složitá a její implementace se vyplatí. Není vhodné se vymlouvat, že by to bylo drahé a že zákazník za ochranu proti např. SQL Injection nechce nic zaplatit. Zákazník ani nic takového požadovat nemusí.
Dodat produkt s alespoň uvedeným základním zabezpečením by mělo být samozřejmé – přeci jen je to vizitka samotných vývojářských firem, ty jsou za bezpečnost dat svých zákazníků také zodpovědné. Byl bych moc rád, kdyby se ještě více vývojářů nějakým způsobem zajímalo o zabezpečení vlastních webových aplikací a dat uživatelů – k tomu podobně zaměřené články jenom pomáhají, díky za něj.
Abychom drželi krok s riziky, neustále je monitorujeme, zkvalitňujeme ochrany ShopSys a vzděláváme zaměstnance předními odborníky na bezpečnost webových aplikací.
SEO specialista a copywriter Daniel Beránek: expert na výkonově orientované SEO, Local Business SEO, datový a technický copywriting a budování brandu
Souhlas s cookies
Aby web fungoval, používá cookies. Souhlas s jejich používáním umožní pracovat s údaji typu chování na webu.
Funkční
Vždy aktivní
Technické uložení nebo přístup je nezbytně nutný pro legitimní účel umožnění použití konkrétní služby, kterou si odběratel nebo uživatel výslovně vyžádal, nebo pouze za účelem provedení přenosu sdělení prostřednictvím sítě elektronických komunikací.
Předvolby
Technické uložení nebo přístup je nezbytný pro legitimní účel ukládání preferencí, které nejsou požadovány odběratelem nebo uživatelem.
Statistiky
Technické uložení nebo přístup, který se používá výhradně pro statistické účely.Technické uložení nebo přístup, který se používá výhradně pro anonymní statistické účely. Bez předvolání, dobrovolného plnění ze strany vašeho Poskytovatele internetových služeb nebo dalších záznamů od třetí strany nelze informace, uložené nebo získané pouze pro tento účel, obvykle použít k vaší identifikaci.
Marketing
Technické uložení nebo přístup je nutný k vytvoření uživatelských profilů za účelem zasílání reklamy nebo sledování uživatele na webových stránkách nebo několika webových stránkách pro podobné marketingové účely.