Kyber-nástrahy na e-shopy číhající

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?

ikona střetu black hat a white hat

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ší.

Cross-site scripting (XSS)

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.
SQL injection

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
DNS hijacking DNS serverů Googlu

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í
HesloPočet uživatelů
123456290731
12345678979078
Password61958
iloveyou51622
princess35231
rockyou22588
123456721726
1234567820553
abc12317542
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