Jesu li besplatni WordPress pluginovi sigurni?

Ako ste upoznali WordPress, sigurno ste upoznali i tzv. repozitorij besplatnih WordPress pluginova. U suštini, repozitorij je jedno veliko digitalno skladište besplatnih pluginova za WordPress, koji se u par klikova kroz administratorsko sučelje samog WordPress-a mogu instalirati na svakoj web stranici koja koristi – pa WordPress 🙂

Sigurnost WordPress pluginova

Trenutno repozitorij broji gotovo 45.000 pluginova sa preko milijardu i 240 milijuna downloadova. Svaki od tih pluginova (barem većina) unose određene funkcionalnosti u web stranicu pogonjenu WordPressom, laički rečeno – proširuju njezine mogućnosti. No, jesu li ti pluginovi sigurni za korištenje, tko ih kreira, održava, i tko uopće provjerava pluginove prije nego se pojave su službenom WordPress plugin skladištu?

Kreatori i vlasnici WordPress-a u ovom trenutku su korporacija Automattic, sa vlasnikom i osnivačem Matt Mullenwegom. Dakle, WordPress repozitorij pluginova je u dobrim i čvrstim rukama ljudi koji su stvorili koncept WordPressa. Svaki plugin koji se tamo objavi, prolazi ručnu provjeru prije nego postane javno dostupan.

No, da li je sve baš tako sigurno i provjereno? Posljednjih nekoliko vrlo zanimljivih incidenata daju naslutiti da u WordPress plugin ekosistemu postoje rupe koje se mogu zlorabiti, te za posljedicu dovesti do hakiranja i zaraze ogromnog broja web stranica. Pogledajmo kako i zašto.

Autori WordPress pluginova

Autori pluginova na besplatnom WordPress repozitoriju ljudi su različitih profila, sa svih strana svijeta, različitih razina programerskih znanja, s različitim ciljevima i namjerama. Šaroliko je to društvo koje je teško opisati u nekoliko rečenica. Velika većina autora pluginova dobronamjerni su developeri izvrsnog znanja programiranja i poznavanja WordPressa. No, što je s onima koji imaju zle namjere?

Životni ciklus prosječnog WordPress plugina

Ranije smo rekli da se svaki plugin ručno provjerava prije nego postane javno dostupan na službenom WordPress plugin repozitoriju. No, što se događa nakon toga?

Najčešće dvije stvari:

  1. Plugin postane vrlo popularan, preuzme ga velik broj ljudi, developer plugina pronađe način za monetizaciju inače besplatnog plugina (kroz premium verzije, plaćene prilagodbe, itd.). Razvojni ciklus plugina nesmetano se nastavlja uz redovitu objavu novijih verzija pluginova (popravljanje bugova, dodavanje novih funkcionalnosti) koji se mogu instalirati unutar standardnog WordPress administratorskog sučelja.
  2. Plugin ne dosegne veliku popularnost, developer gubi interes ili ne uspijeva monetizirati cijeli projekt, ne objavljuje redovne zakrpe ranije verzije plugina, ne bavi se podrškom korisnicima, i cijeli projekt polako odumire.

I tu dolazimo do ranije spomenutih incidenata, koji su se dogodili sa pluginovima iz slučaja pod brojem 2. iz gornjeg odlomka.

Sucuri.net, najpoznatija i jedna do najmoćnijih tvrtki na internetu koja se bavi sigurnošću web stranica, objavila je članak s detaljnom analizom jednog od takvih incidenata. Više detalja možete pročitati na linku https://blog.sucuri.net/2016/03/when-wordpress-plugin-goes-bad.html.

Mi ćemo vam u nastavku opisati pojednostavljnu verziju opisanog incidenta koji je utjecao na sigurnost i rad velikog broja web stranica.

Kada WordPress plugin postane zao

Kako smo ranije napisali, životni ciklus prosječnog WordPress plugina ima dva smjera – postaje popularan i živi dalje, ili polako postaje zaboravljen i odumire (tehnološki, naravno).

U slučaju koji promatramo, (radi se o pluginu Custom Content Type Manager, pluginu koji je razvijan tri godine, preuzelo ga je preko 10.000 posjetitelja WordPress repozitorija, s prosječnom ocjenom od 4.8) dogodilo se da je plugin prešao u ruke drugog developera. Ukratko, prešao je u ruke developera zlih namjera. Kako se to točno dogodilo, nitko, pa ni WordPress-ov tim istražitelja ne zna, no pretpostavlja se da su moguće dvije stvari:

  1. Izvorni autor plugina je prodao svoj korisnički račun sa pluginom novom autoru
  2. Izvorni autor je napustio plugin, netko je hakirao njegov korisnički račun i preuzeo njegov plugin

Što se događalo dalje s pluginom?

Nakon 10 mjeseci neaktivnosti, novi “autor” objavio je novu verziju plugina. Naravno, svi korisnici koji su dotični plugin imali instaliran na svojim web stranicama, krenuli su instalirati novu verziju, u nadi da će se u njoj nalaziti unaprijeđena verzija plugina koji tako dugo koriste i vole.

No, priča ipak nije išla tim smjerom.

Naš novi “autor” u plugin je ugradio mehanizme za hakiranje stranica koje su preuzele novu verziju. Kako ne bismo ulazili u suviše tehničke detalje, ukratko ćemo reći samo da je (sada ga već možemo nazvati hakerom) novi vlasnik plugina isprogramirao instrukcije za skupljanje pristupnih podataka web stranicama (imena korisničkih računa), te “pokupio” web adrese (URL-ove) svih webova koji koriste njegov plugin. Dakle, složio je podužu listu web stranica, te pripremio sve za napad, koji je vrlo brzo uslijedio.

Haker je nakon toga u kompromitiranu WordPress instalaciju ubacio zaražene datoteke, preko kojih je praktički preuzeo potpunu kontrolu nad radom web stranice, te omogućio da u samu web stranicu ubaci bilo kakvu vrstu sadržaja (reklame, bannere, dodatne zaražene skripte, itd.). Nakon toga, samo je nebo granica. Kontroliranjem tako velikog broja web stranica, za hakera su mogućnosti neograničene (prodaja oglasnog prostora, SEO linkova, širenje zaraze na računala koja posjete zaražene web stranice, itd.).

Dakle, objasnili smo tko, kako i zašto.

Ostaje pitanje – jesu li besplatni WordPress pluginovi sigurni?

A odgovor je – i da i ne. WordPress plugin siguran je onoliko koliko možete vjerovati njegovom developeru (tj. autoru). Što je u mnogo slučajeva vrlo teška i rizična procjena. Iz gore navedenog incidenta, problem je nastao prilikom ažuriranja plugina na novu verziju, koja nije bila provjerena, pošto nove verzije plugina ne prolaze iste provjere kakve prolaze novi pluginovi koji se tek pojavljuju u repozitoriju. Novi zlonamjerni vlasnik ranije dobronamjernog plugina, ubacio je maliciozne kodove u novu verziju plugina, te zarazio velik broj web stranica čiji vlasnici nisu napravili ništa više nego jednim klikom unutar svog WordPress administratorskog sučelja instalirali novu verziju.

Kako se zaštititi?

Demokratizacijom i decentralizacijom načina na koji WordPress funkcionira, svi smo dobili mnogo. Dobili smo otvorenu i pouzdanu platformu koju možemo jednostavno i neograničeno proširivati, no isto smo tako dobili i mogućnost da svatko, pa čak i najveći laik, u par klikova na web stranicu implementira vrlo sofisticiran programski kod koji uopće ne razumije. Također smo dobili mogućnost da svatko s dovoljnom razinom znanja napiše programski kod i pretvori ga u WordPress plugin koji može koristiti nevjerojatan broj ljudi. Taj programski kod najčešće nije maliciozan, no zaraza nije jedina potencijalna opasnost – ne zaboravite, prosječan besplatni WordPress plugin razvijaju developeri najčešće u svoje slobodno vrijeme – normalno je da im se potkradaju greške – no i te greške mogu uzrokovati probleme u radu vaše web stranice, pa čak dovesti i do nestabilnosti i rušenja.

Da li trebate baš svaki plugin?

Praksa izrade web stranica u našoj tvrtki uključuje izbjegavanje upotrebe besplatnih pluginova kada je to moguće, i ima smisla. Ponekad to nije moguće, bilo da se radi o tome da na tržištu postoji sjajno gotovo rješenje iz pouzdanog izvora (dakle, ili premium plugin, ili plugin koji se razvija godinama te uživa veliku popularnost, provjeren je i stabilan), bilo da se radi o tome da klijent nije u mogućnosti financirati izgradnju određene funkcionalnosti od nule, pa se radi prilagodba postojećeg plugina uz kompromis u smislu ciljane funkcionalnosti. No, vrlo često viđamo situacije u kojima se uz par linija koda i malo kompromisa može izbjeći upotreba većeg broja pluginova koji predstavljaju nepotreban sigurnosni rizik. Zato vam dajemo prijateljski savjet – svakako provjerite sa osobom koja vam kreira web stranicu – koje pluginove koristi, zašto ih koristi, i da li se to može postići na neki drugi, pouzdaniji način (posebno ako se radi o besplatnim pluginovima). Također, čak i našoj tvrtci, kada koristimo besplatne pluginove, prije svakog ažuriranja provjeravamo što donosi nova verzija, te obavljamo testiranje na testnoj verziji web stranice prije puštanja promjene u javnost.

Uz veliku moć dolazi velika odgovornost

WordPress je sjajan, postoji milijun razloga zašto ga voljeti, i zašto ga koristiti. No, potrebno je i razumijeti i da administriranje web stranica (posebno u ovom slučaju, ažuriranje WordPressa i pluginova) nije za laike.

Ne treba olako shvatiti mogućnost da jednim klikom na svoju web stranicu postavite programski kod za koji niste točno sigurni što radi i što će se dogoditi jednom kad ga počnete koristiti. Ono što se vlasnici WordPress web stranica koji samostalno održavaju svoje webove trebaju zapitati prije instalacije ili ažuriranja bilo kojeg WordPress plugina jest – koliko vjeruju njegovom autoru, i koliko su uopće u stanju razumjeti što im donosi kompletan programski kod plugina, i na koji način će on utjecati na stabilnost, sigurnost i sveobuhvatan rad njihove web stranice.

Unajmite nas za svoj idući projekt!

Planirate razvoj vlastitog projekta?

Agencija ste koja traži partnera?