Velká část českých stránek na WordPressu má vážné bezpečnostní chyby

Na českém webu funguje podle průzkumu společnosti Lynt asi 65 tisíc stránek, které běží na open-source systému WordPress. Jak na tom jsou s bezpečností?

  • Studie původně vyšla na blogu firmy Lynt, Lupa text přebírá se souhlasem autora. Redakčně kráceno.

Před několika měsíci jsem prozkoumal 1000 nejnavštěvovanějších českých webů a sledoval jsem, zda používají WordPress a v jaké verzi. WP webů bylo však ve výsledku pouze několik desítek, což stačilo pouze na letmý obrázek toho, jak česká scéna vypadá. 

Rozhodl jsem se tedy prozkoumat téměř všechny aktivní české WordPress weby. Použil jsem náš interní firemní index stránek a robota, který dále aktivně hledal další. Během měsíce jsem tak nasbíral přes 65 tisíc českých WordPress webů.

Automatickými nástroji byl zanalyzován zdrojový kód o velikosti téměř 4GB. Analýza samotných webů probíhala první týden v dubnu 2015, data jsou proto platná k tomuto termínu.

Robot se pokoušel především určit verzi WordPressu, používanou šablonu a pluginy, které byly z frontendu stránky detekovatelné. Ze zdrojového kódu dále zkoumal, zda je nasazen Google Analytics, zda web obsahuje Facebook komponenty (like tlačítka atd.) a některé další metriky. Weby byly dále prozkoumány pomocí Majestic SEO na zpětné odkazy a byly prověřeny zmínky na sociálních sítích o hlavní stránce webu. Analýzou IP adres bylo také odhadováno, u jakého poskytovatele web běží.

Verze WP byla určována na základě 3 hlavních kritérií:

  • Z meta hlavičky generator
  • Ze souboru readme.html
  • Z RSS feedu – /feed

Tam, kde tento postup neuspěl, byly prozkoumány md5 hashe některých signifikantních souborů z jádra WP a bylo využito toho, že WordPress často za vložené styly a javascripty vkládá svou verzi jako parametr ?ver=xy – dělá to kvůli tomu, aby se po aktualizaci opětovně načetly tyto soubory do cache prohlížeče. 

Pokud byl tento parametr použit se stejným číslem verze u více než 60 % skriptů a css, byl považován za verzi WordPressu. I přes použití těchto metod se nepodařilo s určitostí detekovat verzi u zhruba 4000 zkoumaných webů. Důvodem je pravděpodobně použití bezpečnostních pluginů, které verzi umí poměrně dobře schovat, nebo ji nahradit náhodným řetězcem.

Pluginy a šablony byly detekovány podle odkazů na javascripty a css ve složce wp-content, kde lze z cesty k souboru vyčíst jméno pluginu – např. wp-content/themes/twentytwelve/style.css ukazuje na použití defaultní šablony Twenty Twelve.

Verze WordPressu 

Zásadním bodem výzkumu bylo zjistit, jaké verze WP jsou reálně používané. Dobrou zprávou je, že díky automatickým aktualizacím používá většina webů nejaktuálnější dostupnou verzi, tedy v době průzkumu 4.1. Osm webů již testovalo beta verzi 4.2 (jež je v době psaní článku již finální a vyšla i první opravná verze 4.2.1). Na druhé straně osy je sedm webů používajících verzi 1.5, která vyšla na začátku roku 2005 – je tedy již více než 10 let neaktualizovaná.

Webů s WordPress verzí řady 2, která vycházela do roku 2009, je již téměř 2500. Jsem přesvědčen, že tyto weby představují nezanedbatelné bezpečnostní riziko.

Pokud bychom označili verze řady 4 za aktuální, verzi 3.9 za lehce neaktuální, zbytek řady 3 za neaktualizované a verze nižší než 3 za archaické, rozložení by vypadalo takto:

Vzhledem k počtu neaktualizovaných verzí řady 3 můžeme opět hovořit o ohromném riziku. Dovoluji si tvrdit, že je v tomto případě mnohem větší než u verzí archaických, protože je pravděpodobné, že tyto verze používají mnoho neaktuálních pluginů s velkým počtem bezpečnostních děr. Toto je mnohem dramatičtější než u starších verzí, kde počet dostupných pluginů nebyl zdaleka tak vysoký a ani jejich funkcionalita nebyla tak složitá (viz třeba komunikace frontendu s backendem).

Nyní se již dostáváme k aktuálnějším verzím a zajímavý může být také přehled stále aktivně vyvíjených minor verzí (opravné verze v rámci řady – probíhá v nich automatická aktualizace např. v řadě 3.9 jsou opravné verze 3.9.1, 3.9.2, …):

Je znát, že automatický update funguje velmi dobře – většina minoritních verzí je ve svém nejaktuálnějším vydání.

Používané šablony

Zatím jsme se podívali pouze do jádra WordPressu. Aby web mohl být zobrazen uživateli, je třeba použít šablonu. Podíváme se tedy na nejpoužívanější šablony.

Mnoho tvůrců webu si tvoří vlastní šablony, ať již založené na jiných šablonách, nebo vytvořených úplně od začátku. Proto se nelze divit velmi vysoké různorodosti šablon – nalezl jsem přes 23 tisíc různých šablon. Ale i přesto lze najít mnoho šablon, které jsou velmi populární a jsou použity na stovkách webů.

Počet webů, kde je šablona použita

Počet různých šablon (zaokrouhleno)

1

16000

2

3600

3

1300

4

600

5–10

1100

11–99

580

100+

28

Z čísel je vidět, že opravdu velká část šablon byla tvořena pouze pro jeden konkrétní web.

A tady je žebříček 28 nejpoužívanějších šablon, které jsou použity na více než 100 webech (zastupují téměř 20 % zkoumaných webů):

Pořadí

Šablona

Počet webů s touto šablonou

Kategorie

1

Twenty Ten

1636

defaultní

2

Twenty Twelve

1520

defaultní

3

Twenty Eleven

1477

defaultní

4

Default

844

defaultní

5

Twenty Fourteen

671

defaultní

6

Twenty Thirteen

627

defaultní

7

Avada

395

komerční

8

Graphene

382

free

9

Responsive

364

free

10

Enfold

264

komerční

Jak je vidět, 11 % webů používá defaultní šablony WordPressu.

Pluginy

Dalším krokem při tvorbě WP webu je instalace pluginů pro rozšíření funkcionality a zanesení bezpečnostních děr. Některé šablony (především ty prémiové) v sobě již nějaké pluginy obsahují, a proto může nastat problém s jejich aktualizací. 

Častým problémem je, že tvůrce zakoupí prémiovou šablonu, provede v ní úpravy a tím se ztratí možnost její aktualizace. Pokud je v šabloně přibalen děravý plugin, může se jednat o vážný problém. Proto by se co nejvíce měly používat zděděné šablony (child themes), a ta rodičovská by se měla pravidelně aktualizovat. Druhým dobrým způsobem je zpracovat si upravenou funkcionalitu do vlastního pluginu.

Na základě analýzy hlavní stránky jsem nalezl celkem 160 000 pluginů (6500 různých pluginů).

Podíváme se nyní na žebříček nejpoužívanějších pluginů (zde je prvních dvacet příček, celý žebříček najdete zde):

Pořadí

Plugin

Počet

Kategorie

1

All in One SEO Pack

18211

SEO

2

Contact Form 7

16283

Formuláře

3

Nextgen Gallery

10552

Galerie

4

Yet Another Related Posts Plugin

2645

Související

5

Slider Revolution

2512

Slider

6

WPML

2448

Lokalizace

7

Google Analytics by Yoast

2378

Analytika

8

WP-PageNavi

2234

Funkcionalita

9

Jetpack

1796

Mnoho účelů

10

Google Analyticator

1756

Analytika

11

WordPress SEO by Yoast

1665

SEO

12

WP-Polls

1581

Ankety

13

WooCommerce

1520

Ecommerce

14

qTranslate

1469

Lokalizace

15

Lightbox Plus Colorbox

1274

Lightbox

16

Easy FancyBox

1258

Lightbox

17

WP Super Cache

1213

Cache

18

W3 Total Cache

1180

Cache

19

Captcha

1060

Funkcionalita

20

LayerSlider

1056

Slider

Důvodem silného rozšíření prvních dvou pluginů v žebříčku jsou zcela určitě různé info/PR stránky pro podporu hlavního produktu. V průzkumu jsem například našel síť jedné agentury čítající 1600 Wordpress webů.

Nalezené pluginy jsem rozdělil do několika kategorií, abych zjistil, kvůli jakým funkcím uživatelé pluginy nejčastěji používají. Nepřímo to ukazuje i na to, co WordPressu v základní instalaci chybí.

Jsou to především pokročilejší kontaktní formuláře. Uživatelé také často řeší zobrazování fotek v lightboxu. Zde bych věnoval pozornost 27. příčce – pluginu Fancybox for WordPress, ve kterém byla nedávno objevena bezpečnostní chyba, jež umožňuje útočníkovi vložit na web libovolný kód – nejčastěji javascript. Nebezpečnou verzi jsem detekoval na téměř 400 webech. Téměř 50 % webů využívajících plugin Fancybox for WordPress je tak zranitelných.

Mnoho uživatelů chce mít také na svém webu nějaký ten slider, které však osobně nemám příliš rád. Zde jednoznačně vede placený Slider Revolution a Layer Slider. V prvním zmíněném se v posledním roce objevila kritická bezpečnostních chyba a bylo napadeno ohromné množství webů. Důvodem byla jeho častá integrace do šablon, o níž jsem psal o několik odstavců dříve, a také to, že jej bohužel mnoho webů používá nelegálně a nemá tak na aktualizace nárok. Jedná se o nejrozšířenější komerční plugin a pokud bychom spočítali cenu licencí tohoto pluginu, dostaneme se na číslo přes milion korun.

Plugin Slider Revolution jsem nalezl na více než 2500 webových stránkách a téměř na 600 z nich je ve zranitelné verzi, která jednoduše umožňuje získat útočníkovi kompletní kontrolu nad webem. Více než 20 % webů využívajících Slider Revolution tak stále trpí kritickou zranitelností.

Dalším častým požadavkem je lokalizace webů do více jazyků. Druhým nejrozšířenějším komerčním pluginem je lokalizační plugin WPML, u nějž se nedávno také objevilo několik závažných bezpečnostních chyb. V tomto případě je již složité odhadnout cenu instalací, protože má licenční model pro developery, u kterého cena není závislá na počtu webů, kde je plugin použit. 

Dalšími oblíbenými pluginy jsou qTranslate, u nějž mi ale nevyhovuje způsob ukládání lokalizací jako komentáře v jednotlivých příspěvcích, a Polylang, který je pro WPML více než důstojným soupeřem. V oblasti lokalizací však začíná být zajímavý i plugin Babble od Automattic.

Zastoupení dvou hlavních cachovacích (WP Super Cache a W3 Total Cache) pluginů je srovnatelné. Osobně využívám hlavně WP Super Cache, protože je jednoúčelová (dělá pouze stránkovou cache) a svůj účel plní velmi dobře. Pro další optimalizace výkonu vždy používám příslušný Object Cache dropin, abych snížil počet dotazů do databáze pro transientní položky, a Autoptimize pro slučování CSS a Javascriptů.

Mezi další potřeby uživatelů patří rozšiřování základní funkcionality – např. číselné stránkování nebo hodnocení příspěvků. Uživatelé také hledají možnosti vkládání Google Map, tlačítek pro sociální sítě a videí. 

V žebříčku se objevilo i několik pluginů pro tvorbu tabulek v editoru WordPressu, který má tuto funkcionalitu v základu vypnutou, přestože použitý TinyMCE ji obsahuje. Zde je opět znát neaktualizovanost, protože je rozšířenější plugin WP-Table reloaded než TablePress, který je jeho náhradou. 

Poměrně oblíbené jsou také různé Page Buildery pro tvorbu vlastního blokového layoutu v příspěvcích bez znalosti kódu. Tyto pluginy jsou často součástí komerčních šablon, které se díky nim snaží získat konkurenční výhodu, kdy si i člověk neznalý kódu může sám sestavit layout. Mnoho webů slouží ke komerčním účelům, proto nepřekvapí ani použití eshopových pluginů a pluginů pro rozesílání newsletterů.

Bezpečnostní pluginy

Zaměřil jsem se kromě jiného i na používání HTTPS s validním certifikátem. Mnoho webů je sice k dispozici i na zabezpečeném portu 443, ale certifikát pro svou doménu používá pouze zlomek webů. Doslova 0,24 %. 

Samostatnou kapitolou jsou také bezpečnostní pluginy. Tyto pluginy nebylo možné předchozí metodou detekovat, protože ve zdrojovém HTML kódu nezanechávají žádné stopy. Používaných pluginů však není mnoho, a tak bylo možné napsat test přímo na míru těmto pluginům, který zjišťoval přítomnost specifických souborů. Bezpečnostní plugin se podařilo detekovat u 6 % webových stránek.

Nejoblíbenějším pluginem je iThemes Security, který umožňuje i zákaz přístupu k souborům prozrazujícím citlivé informace (jako je readme.html). Jako jediný při zapnutí této funkce blokuje i přístup k souborům readme.txt jednotlivých pluginů, které byly užitečným zdrojem informací pro tuto statistiku. Zjišťoval jsem tedy i to, kolik webů používajících iThemes Security má tuto funkcionalitu zapnutou – bylo jich cca 390.

Pořadí

Bezpečnostní plugin

Počet

1

iThemes Security

1900

2

WordFence

1340

3

All in One WP Security & Firewall

530

4

BulletProof Security

70

Snad všechny bezpečnostní pluginy mají možnosti, jak skrýt použitou verzi systému WordPress, a tak předpokládám, že za mnoho neúspěchů při zjišťování verze WP mohou právě tyto pluginy.

Na čem české wordpressové weby běží?

Podle IP adresy jsem se dále pokoušel zjistit, u jakého poskytovatele weby běží. Pomocí programu whois (který se ptá Ripe.net) jsem zjišťoval, komu patří adresní rozsah. Metoda to není úplně přesná, protože větší poskytovatelé mají rozsahů několik, mohou být různě pojmenované a z názvu nemusí být patrné, komu opravdu patří. 

Velcí poskytovatelé také často pronajímají VPS nebo poskytují serverhousing, kterému dávají IP adresu ze svého rozsahu. Menší hostingy mohou jejich služeb využívat a weby, které u nich běží, tak mohly být detekovány jako weby u většího poskytovatele. Vzhledem k metodě vyhledávání jsem mohl nalézt pouze ty weby, které jsou dohledatelné – vedou na ně zpětné odkazy/mají zmínky na sociálních sítích. Reálná čísla budou o několik procent vyšší.

Pokud akceptujeme tyto nepřesnosti a fakt, že v některých případech nebylo možné rozpoznat, komu subnet patří, vyšel následující žebříček (počty webů jsou zaokrouhleny na desítky):

Pořadí

Poskytovatel

Počet webů

1

Wedos

13970

2

Savana

3590

3

Active24

2940

4

Český Hosting

2270

5

Stable.cz

2110

6

Forpsi

2090

7

Gransy

2000

8

Gigaserver

1480

9

Web4U

1120

10

Hosting90

980

11

cz-hosting

900

12

Ignum

760

13

Tele3

730

14

Pípni

700

15

Angelhosting

680

16

Zoner

580

Je vidět, že Wedos má ohromný náskok. Je to jistě způsobeno jeho cenovou politikou, která je pro weby na redakčním systému „zdarma“ velmi přívětivá, a silným marketingem. Wedos také sponzoroval několik prvních WordPress konferencí, což jistě neuškodilo spojení jeho jména s tímto redakčním systémem.

Zajímavé také může být rozdělení podle samotných datacenter, kde weby běží. Vzhledem k obtížnosti určení toho, kde je samotný IP rozsah provozován, jsou čísla spíše orientační.

Pořadí

Poskytovatel (DC)

Počet webů

1

Wedos

14000

2

Master Internet (4D)

9200

3

Casablanca

8700

4

VSHosting (TTC/ServerPark)

6700

5

SuperNetwork (TTC)

4700

6

Active24 (Tower)

2800

7

CoolHousing

2200

8

Forpsi (CZ1)

2100

9

DialTelecom (Nagano)

1600

10

Coprosys (Nagano)

770

Velikost HTML

Dále jsem zkoumal velikost samotného zdrojového HTML kódu stránek (bez skriptů, stylů a obrázků).

Z grafu vyplývá, že 50 % webů má velikost HTML do 28 kB. 80 % webů se vejde do 45 kB. Nalezl jsem ale téměř 80 webů, které mají velikost HTML více než 0,5 MB, tedy jsou téměř nepoužitelné.

Google Analytics

Problém, který uživatelé často řeší, je nasazení měřících kódů Google Analytics. Spousty moderních šablon mají tuto možnost již ve svém nastavení, přesto je používání pluginů pro vložení kódu velmi časté. Prověřoval jsem proto i využití Google Analytics dle přítomnosti měřícího kódu na stránce. Aktuálně se lze setkat se 3 typy měřícího kódu:

  1. Starý měřící kód – považován za zastaralý
  2. Universal Analytics – nový měřící kód
  3. Google Tag Manager – systém pro správu kódů – vkládá kód Universal Analytics a další kódy

Více než polovina webů Google Analytics nepoužívá a 27 % používá starý měřící kód. Remarketing se přímo Google Analytics netýká, ale přesto ho sem zařadím. Ukazuje na weby, pro které je online komerce velmi důležitá. Na remarketing sází 1200 webových prezentací - tedy přibližně 2 %. 

Stále silnější je i vliv sociálních sítí, a tak nějaký komponent pro komunikaci s Facebookem (tlačítka pro Like, sdílení, nebo FanBox) využívá 38 % stránek. 

Závěr

Průzkum potvrdil, že velká část českých WordPress webů je neaktualizovaná a obsahuje závažné bezpečnostní chyby. Dalším neřešeným problémem je také výkon webu. WordPress se velmi často uplatňuje na různých „infomarketingových“ stránkách, což považuji spíše za nelichotivé. Je to dáno především jeho uživatelskou jednoduchostí – webové stránky si může udělat prakticky každý i bez jakékoliv znalosti webového programování. Bohužel právě tito uživatelé často neakceptují fakt, že je třeba se o svůj web starat.

CIF16

Data z průzkumu také potvrdila oblíbenost defaultních šablon a také ukázala nejpoužívanější pluginy. Vyšlo najevo také dominantní postavení webhostera Wedos na české WP scéně.

Z těchto údajů by se téměř dalo říci, že „běžný web na WP se zabývá infomarketingem, používá základní WP šablonu , plugin pro "zapnutí SEO“ a pro kontaktní formulář, není aktualizován a je hostován s minimálními náklady." Nalezneme však i velké množství profesionálnějších webů, které dbají na bezpečnost, rychlost i kvalitu obsahu. V jednoduchosti je hlavní síla tohoto redakčního systému a s trochou úsilí lze vybudovat kvalitní a reprezentativní web.

29 názorů Vstoupit do diskuse
poslední názor přidán 14. 5. 2015 16:34

Školení PPC reklamy pro pokročilé

  •  
    Důležité principy fungování PPC reklamy
  • Optimalizační postupy běžících kampaní
  • Práce s aplikací AdWords editor

Detailní informace o školení PPC reklamy pro pokročilé »