Sql injekce

SQL Injections: Útoky na srdce vašich webových stránek

Kromě útoků hrubou silou se na seznamu největších nebezpečí pro webové stránky WordPress opakovaně objevují také SQL injections. Jedná se o poměrně snadné manipulace s databází vašeho webu. Takto se lze dostat k citlivým údajům nebo si sami nastavit administrátorské účty a manipulovat s webem podle libosti. Ukážeme si, jak útok funguje a proč je tak nebezpečný.

V březnu 2008 se podařilo skutečnému mistrovi vylákat z americké společnosti Heartland Payment Systems mimo jiné 134 milionů údajů o kreditních kartách. Tento útok je založen na poměrně snadno proveditelném hackerském útoku zvaném SQL Injection. Při tomto útoku je získán přístup do databáze webové stránky, a tím i ke všem jejím údajům. SQL injections jsou proto ve skutečnosti považovány za jedno z největších nebezpečí pro webové stránky - také a zejména pro lidi, kteří pracují především s WordPressem.

A protože nejpozději od WooCommerce lze s WordPressem bez problémů provozovat i větší a složitější obchody, je důležité pochopit, jak vysoké je riziko SQL Injection pro WordPress a jak fungují.

SQL Injections ve WordPressu - jak nebezpečné jsou?

Otázku "nebezpečnosti" hackerského útoku na WordPress nelze zodpovědět pomocí jediného ukazatele. Spíše je třeba vzít v úvahu nejméně dva aspekty: Za prvé, pravděpodobnost, že se vlastní projekt WordPress stane obětí takového útoku, a za druhé, škody, které hack může způsobit.

V případě útoků hrubou silou je počet útoků za měsíc tak vysoký (v některých případech přes 1 miliardu naměřených útoků + počet neohlášených případů), že lze skutečně říci: Dříve nebo později se cílem takového útoku stane každá webová stránka WordPressu. Škody, které může úspěšný hackerský útok způsobit, jsou mnohonásobné. Útoky hrubou silou se obvykle používají k únosu webových stránek a jejich začlenění do botnetu. Naproti tomu útoky typu Cross-site scripting se vyskytují mnohem méně často, ale slouží především k infikování webových stránek škodlivým kódem.

Nezisková organizace Open Web Application Security Project (OWASP) pravidelně zveřejňuje seznam 10 největších bezpečnostních rizik pro webové aplikace. V minulosti byly na prvním místě vždy SQL injections, ale od roku 2021 jsou "až" na třetím místě.

Injekce SQL jsou zde i nadále. Tento hack je známý již více než 20 let. V průběhu času se také zvýšila četnost SQL injections.

Wordfence, výrobce bezpečnostního softwaru pro WordPress, dochází k závěru, že SQL injections představují velké nebezpečí zejména pro webové stránky WordPress. Analýza téměř 1 600 bezpečnostních chyb v zásuvných modulech nahlášených za období 14 měsíců jasně ukazuje, že SQL injections jsou druhým nejčastějším bezpečnostním rizikem pro webové stránky WordPress.

WordPress SQL Injections Wordfence Analýza
Graf ukazuje, že SQL injections jsou druhým nejčastějším bezpečnostním rizikem pro webové stránky WordPress.

Při všech těchto číslech je samozřejmě třeba mít na paměti, že počet nenahlášených případů je mnohem vyšší - útoky SQL často ani nejsou zaznamenány a ve statistikách se neobjevují.

Čísla ukazují, že po útocích hrubou silou a zranitelnostech XSS patří mezi nejčastější typy útoků na WordPress SQL injections. Injekce SQL se navíc zaměřují na obzvláště citlivou oblast webu: databázi. Zejména pro obchody představují tyto útoky existenční hrozbu. Je proto důležité pochopit, jak fungují a co proti nim můžete dělat.

Injekce SQL ve WordPressu se zaměřují na jádro vašeho webu

Abyste pochopili, jak SQL injection funguje, musíte znát základní strukturu systému WordPress. Pokud ji již znáte, můžete tuto část bez obav přeskočit.

Databáze je základem každé instalace WordPressu: je zde uložen veškerý obsah. Samotný CMS pak umožňuje tento obsah zobrazovat a upravovat. WordPress používá databázi MySQL. Zkratka SQL znamená Structured Query Language (strukturovaný dotazovací jazyk), což je plnohodnotný programovací jazyk, který lze použít k vytváření struktur v databázi a k vkládání, úpravám a mazání dat.

Pokaždé, když napíšete článek, vytvoříte novou kategorii, změníte heslo nebo napíšete komentář, uloží se tyto nové údaje do databáze. Zde je uložen každý jednotlivý obsah na vašich webových stránkách.

Kdykoli jsou vaše webové stránky vyvolány a je požadován určitý obsah, WordPress vytáhne příslušná data z databáze, spojí je s PHP a vytvoří dokument HTML, který je nakonec přenesen do prohlížeče klienta. Klient si není vědom všech procesů, které do té doby probíhají.

Injektáže SQL injektují externí kód do databáze

I když nikdy nepracujete přímo s databází, ale pouze s backendem WordPressu, databáze je srdcem vašeho webu.

Ale jak již bylo zmíněno, uživatelé mohou do databáze také zadávat data. Napsání komentáře, vytvoření uživatelského účtu, vyplnění a odeslání kontaktního formuláře - všechny tyto akce generují data, která se ukládají do databáze.

Co když ale někdo využije tento nepřímý přístup k databázi a propašuje do ní škodlivý kód? Tomu se říká SQL injection.

Myšlenka, která za tím stojí, není ani nijak zvlášť složitá: Pokud nejsou přijata žádná bezpečnostní opatření, stačí zadat kód SQL do pole formuláře (například při psaní komentáře). Obsahuje znaky, které mají speciální funkci pro SQL interpret - ten je zodpovědný za provádění SQL příkazů v databázi. Takovými speciálními znaky, nazývanými metaznaky, jsou například ; " ' a \.

Systém CMS se domnívá, že se jedná o neškodná data, a předá vstup do databáze jako obvykle s příkazem k uložení. Interpret SQL na základě metaznaků rozpozná kód jako požadavek na akci a provede příkaz databáze.

Mimochodem, pro SQL injections platí totéž co pro útoky hrubou silou: prakticky nikdo nesedí sám u počítače a nezadává kódy SQL do formulářů ručně. Tyto útoky jsou také prováděny prostřednictvím automatizovaných botnetů, které skenují tisíce webových stránek současně a hledají zranitelnosti a udeří tam, kde je objeví.

Co se teď může stát?

  • Veškeré mechanismy ověřování jsou obcházeny nebo je k získání přístupu použita identita existujícího uživatele. Pokud je například vytvořen nový účet správce, označuje se to také jako zneužití zvýšení oprávnění.
  • Tímto způsobem lze data špehovat, měnit nebo mazat. To je obzvláště důležité, pokud provozujete web e-shop a máte k dispozici platební údaje.
  • Můžete také převzít kontrolu nad celým webem a webovým prostorem. To je možné po přihlášení jako správce. Prostřednictvím backendu získáte plnou kontrolu nad svými webovými stránkami - a tak je lze zneužít jako spam spinner nebo je vložit do botnetu, případně do nich jednoduše zavést škodlivý kód.

"*" povinný údaj

Rád bych se přihlásil k odběru newsletteru, abych byl informován o nových článcích na blogu, e-knihách, funkcích a novinkách ve WordPressu. Svůj souhlas mohu kdykoli odvolat. Více informací v našich Zásadách ochrany osobních údajů.
Toto pole slouží k ověření a nemělo by se měnit.

Závěr: WordPress SQL injekce jsou velmi nebezpečné právě kvůli automatizaci

SQL injections ve WordPressu patří k nejnebezpečnějším hackům vůbec. Jsou snadno proveditelné, většinou automatizované a mohou způsobit obrovské škody: Zejména pro obchody je nebezpečí SQL injections existenčně ohrožující kvůli datům v databázi.

Proto je důležité své webové stránky odpovídajícím způsobem chránit: Každý vstup zvenčí je třeba zkontrolovat a vyčistit. Měli byste také maskovat data, abyste zabránili spuštění škodlivého kódu. Tento proces se nazývá sanitizace a validace dat a je podrobně popsán například v příručce WordPress Developer Guide.

Zásadní pomoc představují také komplexní bezpečnostní moduly plug-in, které jsou schopny blokovat zejména automatizované útoky na vaše webové stránky, které jsou základem mnoha hackerských útoků.

Líbil se vám tento článek?

Svou recenzí nám pomůžete zlepšit náš obsah.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *.