Lühidalt: WordPressi uuendus ei aita PHP turvaaugu PHP2Shell vastu, sest viga ei asu WordPressis, vaid PHP-s, serveri tarkvaras, mis WordPressi käivitab. Dr. Webi andmetel ei plaani WordPress.org seetõttu ka oma uuendust. Kaitsta saab ainult PHP uuendus serveris koos kõigi PHP protsesside taaskäivitusega. Selle paigaldab tavaliselt teie veebimajutaja või serveri käitaja.
Lähtepunkt: „Me ju uuendasime kõik“
Pärast esimesi PHP2Shelli pealkirju tegid paljud käitajad ilmselge: avasid WordPressi juhtpaneeli, klõpsasid „Uuenda kohe“, pluginad ja teemad kohe kaasa. Pärast seda on kõik roheline ja tunne ütleb: tehtud.
Selle turvaaugu puhul tunne eksitab. See ei ole WordPressi süü, vaid selles, kus viga asub. Ka Cloudflare juhib oma teates tähelepanu, et rakenduse koodi või pluginate uuendus turvauksi ei kõrvalda.
WordPressi uuendus ja PHP turvaauk: kihtide mudel
WordPressi veebisait koosneb mitmest kihist, mis üksteisele toetuvad. Igal kihil on omad uuendused ja sageli omad vastutajad:
| Kiht | Näide | Kes tavaliselt uuendab | Kas PHP2Shell mõjutab? |
|---|---|---|---|
| Operatsioonisüsteem | Debian, Ubuntu, AlmaLinux | veebimajutaja või serveri administraator | ei, kuid tarnib sageli PHP paketi |
| Veebiserver | Apache, Nginx, LiteSpeed | veebimajutaja või serveri administraator | töörežiim mõjutab riski |
| PHP käitusaeg | PHP-FPM, mod_php | veebimajutaja või serveri administraator | jah, siin turvaauk asub |
| WordPressi tuum | WordPress | käitaja või agentuur | ei |
| Pluginad ja teemad | WooCommerce, Page-Builder | käitaja või agentuur | ei |
Juhtpaneeli uuendusnupp jõuab ainult kahe alumise reani. PHP käitusaeg asub selle all ja on WordPressile nähtamatu. Kuidas teised süsteemid PHP-le toetuvad, kirjeldab artikkel CMS-id ja poed PHP peal.
Miks WordPress turvauku sulgeda ei saa
Võiks arvata, et WordPress võib ju „ümberringi programmeerida“. PHP2Shelli puhul ei toimi see kahel põhjusel.
Esiteks asuvad mõlemad vead selles, kuidas PHP päringuid töötleb ja pärast koristab. See juhtub sõltumata sellest, milline programm PHP-s töötab. Teiseks on PHP meeskond Apache'i ja mod_php jaoks näidanud ekspluateerimist, mis rakendub enne, kui rakenduse koodi üldse käivitatakse. WordPress, selle pluginad ja iga turvaplugin ei jõua siis üldse kunagi sõna sekka öelda.
Samal põhjusel ei aita ka ükski „karastusplugin“, mis muudab sätteid ini_set() kaudu. php.net soovitab selgesõnaliselt mitte seada ajutisi meetmeid sel teel.
Ja hallatava WordPressi puhul?
Hallatava WordPressi pakkumiste puhul hoolitseb pakkuja sageli mitte ainult WordPressi uuenduste, vaid ka selle all oleva serveri eest. See on PHP2Shelli jaoks eelis, kuid mitte automaatne. Küsige konkreetselt, kas PHP uuendus on paigaldatud ja kõik PHP protsessid uuesti käivitatud. Väide „Hoiame teie WordPressi ajakohasena“ sellele küsimusele ei vasta.
Palju veebisaite, üks PHP paigaldus
Agentuurid ja mitme veebisaidiga ettevõtted peaksid teadma ühte eripära: ühes serveris jagavad sageli paljud WordPressi paigaldused sama PHP versiooni. Kui see on paigamata, on kõik mõjutatud, sõltumata sellest, kui hästi iga üksik veebisait hooldatud on. Teisalt kaitseb PHP uuendus kõiki paigaldusi korraga, kui pärast seda kõik vastavad PHP protsessid uuesti käivitatakse. Kes käitab paralleelselt mitut PHP versiooni, peab iga neist eraldi uuendama.
Roheline WordPressi juhtpaneel ei ütle PHP2Shelli kohta midagi. Otsustav on PHP paigatud seis serveris ja kõigi PHP protsesside taaskäivitus.
PHP versiooni lugemine WordPressis õigesti
WordPress näitab PHP versiooni: juhtpaneelil Tööriistad, Saidi tervis, jaotises Aruanne lõigus Server. See on hea esimene vihje, kuid mitte tõend.
Kui seal seisab haru nagu 8.1 või vanem, on see selge hoiatusmärk, sest selle jaoks ametlikke uuendusi enam ei ole. Kui seal seisab 8.2.35, 8.3.36, 8.4.27 või 8.5.12, on parandatud seis paigaldatud. Kui seal seisab toetatud haru vanem number, võib backport siiski olla paigaldatud. Distributsioonid ja veebimajutajad ei muuda numbrit seejuures sageli. Selguse annab ainult veebimajutaja kinnitus või pilk paketi muudatuslogisse. Kuidas see käib, seisab lehel PHP versiooni ja paigatud seisu kontroll.
Mida WordPressi käitajad selle asemel tegema peaksid
- Küsige veebimajutajalt või serveri käitajalt: Kas PHP on paigatud, millal ja kas kõik PHP protsessid on uuesti käivitatud? Vastus kirjalikult.
- Kontrollige PHP haru: Kui veebisait töötab 8.1 või vanemal, planeerige üleminek toetatud harule. Millist versiooni teie WordPressi versioon toetab, seisab wordpress.org süsteeminõuetes. Ümberlülitamist kliendimenüüs kirjeldab PHP versiooni muutmine veebimajutuse kliendialas.
- Kontrollige jälgi: uued PHP failid kaustas
wp-content/uploads, tundmatud administraatorikontod, võõrad kirjed kaustasmu-plugins. Tüüpilisi peidukohti kirjeldab leht WordPress ja PHP2Shell. - Hoidke WordPress siiski ajakohasena: Tuum, pluginad ja teemad sulgevad teisi turvauke. See jääb kohustuseks, lihtsalt teiseks.
- Selgitage vastutus: Kui veebisaiti hooldab agentuur, pange kirja, kas ta vastutab ka PHP eest või ainult WordPressi eest.
Just viimane punkt tekitab sageli lünki. Agentuur hooldab WordPressi, veebimajutaja serverit ja kumbki usub, et teine jälgib PHP2Shelli.
Kuidas PHP SOS konkreetselt aitab?
- Kihid selgeks teha: Selgitame, kes teie WordPressi veebisaidi puhul millise kihi eest vastutab.
- PHP uuendada: Oma või hallatavatel serveritel paigaldame PHP uuenduse ja käivitame kõik protsessid uuesti.
- WordPressi kontrollida: Otsime rünnaku jälgi failides, andmebaasis ja kontodes.
- Tõend: Saate paigatud seisu kirjalikult, ka agentuurile või klientidele edastamiseks.
Käiku kirjeldab PHP paigateenus.
Kokkuvõte
WordPressi uuendus on hea hooldus, kuid PHP2Shelli vastu vale kiht. Turvaauk asub ühe korruse sügavamal, serveri PHP-s. Kes seda mõistab, esitab õige küsimuse õigele kohale: kas PHP on paigatud, uuesti käivitatud ja tõendatud?
Korduma kippuvad küsimused
Kas WordPress toob turvauuenduse PHP2Shelli vastu?
Dr. Webi andmetel ei plaani WordPress.org PHP2Shelli vastu uuendust, sest turvaauk asub serveri PHP interpretaatoris. Abi annab ainult PHP uuendus veebimajutaja või serveri käitaja poolt.
Kust ma WordPressis PHP versiooni näen?
Juhtpaneelil Tööriistad, Saidi tervis, jaotises Aruanne lõigus Server. Kuvatud number ei ütle aga kindlalt, kas paik on paigaldatud, sest veebimajutajad ehitavad parandusi sageli backportina ilma uue versiooninumbrita.
Kas turvaplugin kaitseb PHP2Shelli vastu?
Ainult väga piiratult. Plugin ise töötab PHP-s ja muutub aktiivseks alles siis, kui WordPress on laaditud. Apache'i ja mod_php puhul näidati PHP meeskonna andmetel ekspluateerimist enne, kui rakenduse kood üldse käivitub. Seal ei saa plugin sekkuda.
Kas peaksin WordPressi siiski uuendama?
Jah. WordPressi, teemade ja pluginate ajakohased versioonid sulgevad teisi turvauke ja kuuluvad hea hoolduse juurde. Need lihtsalt ei lahenda PHP2Shelli probleemi.