Jaké kyber-útoky nejčastěji míří na e-shopy? Kde mají e-shopy slabá místa a jak se těmto útokům bránit?
Pro ShopSys SEO specialista a copywriter Daniel Beránek:
5 typů kyberútoků na eshopy a jak se jim bránit
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:
- obejít bezpečnostní prvky
- ukrást sezení administrátora
- získat údaje návštěvníků stránek
- znefunkčnit stránky
- aplikovat phishing
Náchylnost k XSS 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 hijacking: útočník ukradne identifikátor sezení (zkr. SID) uživateli či serveru;
- 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;
- kryptograficky osolit heslo, pokud jde o útok na hashovací funkci;
- 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 bude byť 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í.
Zdroje
- ŠPAČEK, M. Jak jsem ukradl sezení administrátorovi. Lupa.cz, ISSN 1213-0702
- ŠPAČEK, M. /admin. Přednáška pro PHP <live>
- BERÁNEK, D. …a včera hijackli Google. SOOM.cz, ISSN 1804-7270;
- DOČEKAL, D. Adobe unikly údaje 130 milionů uživatelů, dva miliony měly heslo 123456. Lupa.cz, ISSN 1213-0702.
- GOODIN, D. Amazon purges account hijacking threat from site. The Register
- OWASP: Top 10 2013
- SailPoint Survey Shows Employees Are More Apt to Take Company Data than a Stapler