Sobota, 29. junij 2013:
Nov režim izvajanja PHP skriptovDanes sem dobil nekaj pritožb o počasnem delovanju strežnika lana.hamradio.si. Po pregledu sistema sem ugotovil, da je skorajšnje nedelovanje posledica silnega navala neželene pošte, ki ga je skupina napadalcev pošiljala preko zlonamernih PHP skriptov na raznih poddomenah hamradio.si. V preteklih dneh so očitno vdrli v sistem preko luknje v eni od uporabniških inštalacij Joomle, nato pa so zlonamerno kodo naselili še na nekaj drugih spletnih strani, ki tečejo na istem sistemu.
Tekom popoldneva sem navlako očistil in spet vzpostavil normalno stanje; pri tem je bilo občasno moteno delovanje servisa za pošiljanje elektronske pošte ter spletnega strežnika.
Da pri morebitnih prihodnjih vdorih ne bi prišlo do podobnega scenarija, je sedaj strežnik nastavljen tako, da ima vsaka poddomena svojega uporabnika, s katerega pravicami tečejo PHP skripti na tisti strani (tj. PHP procesi za
http://www.hamradio.si tečejo s pravicami uporabnika 'hamradio', PHP procesi za rpt.hamradio.si s pravicami uporabnika 'rpt' itd.). Podobno velja za tiste uporabnike, ki nimate svoje poddomene, imate pa vključen PHP: vaša PHP koda se odslej izvaja s pravicami, ki pripadajo vašemu uporabniškemu imenu (npr. PHP koda na
http://lea.hamradio.si/~s57ln/ se izvaja s pravicami uporabnika 's57ln'). S tem so posledice morebitnega napada omejene le na datoteke enega uporabnika, ostale strani pa ostanejo nedotaknjene, ker napadalec nima pravic za pisanje po njih.
Druga blagodejna stran takšnega pristopa je, da vam ni treba več posebej nastavljati dovoljenj datotek, da bi strežnik lahko pisal vanje. Če imate sami dostop do datoteke, jo ima tudi strežniški proces. S tem odpadejo kolobocije z dovoljenji pri namestitvah raznih Joomel in podobnih zadev.
Imam pa ob tej priložnosti tudi dve zelo pomembni opozorili za uporabnike.
1. POD NOBENIM POGOJEM ne nastavljajte dovoljenj datotek tako, da lahko vanje pišejo vsi uporabniki! Dovoljenja, kot so 777 (vsakršen dostop dovoljen vsem) so identična odklenjenim vratom hiše, medtem ko vas ni doma. S tem kar kličete po nesreči.Tega ne pravim brez povoda. Takšne datoteke sem dejansko našel na sistemu. Če želite dostop do kake datoteke podeliti tudi kakemu drugemu uporabniku, so za to na sistemu na voljo razširjena dovoljenja (access control list, ACL), ki so mnogo boljša rešitev.
2. Če imate nameščeno Joomlo ali kak drug sistem za upravljanje z vsebino (t.i. CMS), ste za administracijo le-tega odgovorni sami in morate REDNO NAMEŠČATI VARNOSTNE POPRAVKE. Če tega sami ne obvladate dovolj dobro, prosite koga, ki zna. Če CMS-a ne rabite, GA NE IMEJTE. Tudi statične spletne strani so lahko lepe.Sistemi za upravljanje z vsebino so obsežni programi, katerih razvoj aktivno poteka. Pri tem se v kodi sem ter tja pojavijo tudi programerske napake, ki predstavljajo varnostne luknje. Starejša ko je vaša namestitev, večja je verjetnost, da je kdo že našel kako luknjo in bolj verjetno je, da jo bo kdo prej ali slej skušal izkoristiti za vdor v sistem. Napadalci lahko potem strežnik zlorabijo za pošiljanje velikih količin spama ali pa jim služi kot odskočna deska za nadaljnje napade.
Lepo prosim, da se teh vodil držite. Administracijo strežnika opravljam prostovoljno kot svoj prispevek k radioamaterski skupnosti. En sam vdor lahko zame pomeni cel dan izgubljenega prostega časa.