Trumpai: Dėl PHP2Shell Moodle saugumas priklauso nuo serverio PHP, o ne nuo Moodle. Kadangi mokymosi platformos tvarko moksleivių, studentų ir darbuotojų duomenis, svarbu veikti greitai. Pataisykite PHP žiniatinkliui ir cron, iš naujo paleiskite visus procesus ir patikrinkite config.php, moodledata, įskiepius ir administratorių paskyras.
Ką PHP2Shell reiškia Moodle valdytojams
Moodle paplitęs mokyklose, aukštosiose mokyklose, tęstiniame mokyme ir vidiniuose įmonių mokymuose. Platforma tvarko vardus, el. pašto adresus, kursų priklausomybę, pažymius, egzaminų darbus ir forumų įrašus, mokyklose dažnai nepilnamečių. PHP spragos CVE-2026-109618 ir CVE-2026-109619, PHP komandos teigimu, leidžia vykdyti kenkėjišką kodą nuotoliniu būdu be prisijungimo.
Moodle serveriai beveik visada pasiekiami iš interneto, nes besimokantieji dirba namuose. BSI (Vokietijos federalinė informacijos saugumo tarnyba) esant 3 perspėjimo lygiui rekomenduoja nedelsiant atnaujinti, o jei tai neįmanoma, laikinai atjungti žiniatinklio serverius nuo tinklo. Mokykloms ir švietimo teikėjams tai organizaciškai sudėtinga, bet suplanuojama. Sektoriui skirtų patarimų rasite puslapyje IT sauga mokykloms ir švietimo teikėjams.
Moodle saugumas: PHP versijos patikra žiniatinkliui ir cron
Skiltyje Svetainės administravimas > Serveris > Aplinka Moodle patikrina PHP versiją ir kitus reikalavimus. Skiltyje Serveris > PHP informacija administratoriai papildomai mato visus PHP duomenis. Abu aprašo žiniatinklio PHP.
Moodle taip pat reikia cron užduoties, kuri reguliariai vykdo admin/cli/cron.php per komandinės eilutės PHP. Ši versija gali skirtis ir taip pat turi būti pataisyta. Ištaisytos oficialios (upstream) versijos yra 8.5.12, 8.4.27, 8.3.36 ir 8.2.35; atgaliniai perkėlimai (backport) dažnai turi senesnius numerius. Kurias PHP versijas palaiko jūsų Moodle versija, pagal sistemos reikalavimus dokumentacijoje patikrinkite moodle.org. Kaip po to tvarkingai paleisti iš naujo visus procesus, aprašyta puslapyje PHP-FPM ir visų vykdytojų paleidimas iš naujo.
Katalogai ir konfigūracija Moodle
| Vieta | Turinys | Patikros punktas |
|---|---|---|
config.php |
Duomenų bazės prieiga, wwwroot, kelias į moodledata |
įterptas kodas, kilus įtarimui pakeisti slaptažodį |
moodledata/ |
Failų saugykla, darbai, sesijos, talpyklos | už dokumentų šaknies, jokių PHP failų |
mod/, blocks/, local/, theme/ |
Veiklos, blokai, vietiniai plėtiniai, dizainai | nežinomi ar pakeisti įskiepiai |
admin/cli/ |
Komandinės eilutės scenarijai | naudojami tik per CLI |
Moodle turi nustatymą, neleidžiantį keisti programų kelių per žiniatinklio sąsają. Jis priklauso config.php ir apsunkina per užgrobtą administratoriaus paskyrą iškviesti programas serveryje:
$CFG->preventexecpath = true;
Nepavojingos patikros komandinėje eilutėje, kaip žiniatinklio serverio naudotojas:
# Išvesti Moodle savas būsenos ir saugumo patikras
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Ieškoti PHP failų duomenų kataloge (pritaikyti kelią)
find /pfad/zu/moodledata -type f -name "*.php"
Įtarus duomenų nutekėjimą mokykloje ar aukštojoje mokykloje greitai įsitraukia kelios šalys: mokyklos vadovybė, steigėjas, duomenų apsaugos pareigūnai ir prireikus priežiūros institucija. Išsaugokite žurnalus nuo 2026 m. spalio 20 d. ir dokumentuokite kiekvieną priemonę nurodydami laiką.
Įskiepiai, administratorių paskyros ir įkėlimai
Praktinis planavimo patarimas: PHP atnaujinimai ir paleidimai iš naujo neturėtų patekti į egzaminų laikotarpius ar vykstančius internetinius testus. Moodle turi priežiūros režimą, kuris iš anksto informuoja naudotojus. Nuo PHP2Shell jis tačiau neapsaugo, nes ir priežiūros puslapį pateikia PHP.
Moodle gyvena iš įskiepių: veiklų, egzaminavimo įrankių, sąsajų su vaizdo konferencijomis ir mokyklos valdymu. Kiekvienas įskiepis yra papildomas PHP kodas ir turi tikti Moodle versijai. Svetainės administravime Moodle rodo galimus branduolio ir įskiepių atnaujinimus. Įskiepius, kurių niekas nebenaudoja, pašalinkite visiškai.
Patikrinkite svetainės administratorių sąrašą ir visuotines roles su plačiomis teisėmis. Mokytojams ir kursų kūrėjams dažniausiai visuotinių teisių nereikia. Dviejų veiksnių prisijungimą įjunkite bent administratoriams. Leidžiami įkėlimų failų tipai turėtų būti kuo siauresni; patarimų pateikia Saugus failų įkėlimas PHP.
Ką gali Moodle atnaujinimas ir ko ne
Moodle atnaujinimas uždaro Moodle klaidas ir dažnai leidžia naudoti naujesnes PHP versijas. Jis netaiso PHP, nepaleidžia iš naujo nei žiniatinklio, nei cron procesų ir nepašalina svetimų failų iš moodledata, papildomų administratorių ar pakeistų įskiepių. Ar iki pataisos duomenys nutekėjo, atnaujinimas taip pat neatsako.
Moodle papildomai žurnalizuoja prisijungimus ir veiksmus savo žurnaluose, kuriuos administratoriai mato skiltyje Svetainės administravimas > Ataskaitos. Ten konkrečiai ieškokite įtartinų administratorių prisijungimų, naujų paskyrų su visuotinėmis rolėmis ir įskiepių diegimų nuo 2026 m. spalio 17 d. Eksportuokite šiuos įrašus, kol automatinis valymas neištrynė senesnių duomenų. Ataskaitos papildo žiniatinklio serverio žurnalus, bet jų nepakeičia.
Kaip PHP SOS padeda konkrečiai?
- Išsiaiškiname atsakomybę už PHP ir leidžiame patvirtinti žiniatinklio bei cron pataisų būseną ir paleidimą iš naujo.
- Prieš bet kokį keitimą išsaugome žurnalus, duomenų bazę ir
moodledata. - Tikriname konfigūraciją, įskiepius, administratorius, roles ir įkėlimus.
- Pageidaujant platformą prižiūrime nuolat pagal saugumo priežiūros sutartį, suderintą su mokslo metais ir egzaminų laikotarpiais.
Dažni klausimai
Ar Moodle paveiktas PHP2Shell?
Pati Moodle naujos spragos neturi, bet veikia su PHP. Jei serverio PHP nepataisytas, užpuolikas, PHP komandos teigimu, gali vykdyti kodą be prisijungimo. Moodle atnaujinimas to nekeičia.
Kur Moodle matau PHP versiją?
Skiltyje Svetainės administravimas > Serveris > Aplinka Moodle patikrina PHP versiją pagal savo reikalavimus. Ar įdiegtas atgalinis perkėlimas (backport), Moodle nerodo; tai patvirtina serverio operatorius.
Kodėl moodledata turi būti už žiniatinklio katalogo ribų?
Ten laikomi įkelti failai, darbai, sesijos ir talpyklos. Jei katalogas pasiekiamas per žiniatinklį, turinį galbūt galima atsisiųsti tiesiogiai. Todėl Moodle reikalauja vietos už dokumentų šaknies.
Kas mokyklose atsakingas už PHP atnaujinimą?
Skiriasi: mokyklos steigėjas, žemės įstaiga, savivaldybės duomenų centras ar paslaugų teikėjas. Atsakomybę išsiaiškinkite raštu ir leiskite patvirtinti pataisų būseną bei paleidimą iš naujo.