Lyhyesti: Moodlen tietoturva riippuu PHP2Shellin jälkeen palvelimen PHP:stä, ei Moodlesta. Koska oppimisalustat käsittelevät oppilaiden, opiskelijoiden ja työntekijöiden tietoja, nopea toiminta on tärkeää. Korjatkaa PHP webille ja cronille, käynnistäkää kaikki prosessit uudelleen ja tarkistakaa config.php, moodledata, liitännäiset ja ylläpitäjätilit.
Mitä PHP2Shell tarkoittaa Moodlen ylläpitäjille
Moodle on yleinen kouluissa, korkeakouluissa, täydennyskoulutuksessa ja yritysten sisäisessä koulutuksessa. Alusta hallinnoi nimiä, sähköpostiosoitteita, kurssijäsenyyksiä, arvosanoja, tehtäväpalautuksia ja keskustelufoorumien kirjoituksia, kouluissa usein alaikäisten. PHP-tiimin mukaan PHP-haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 sallivat haittakoodin suorittamisen etänä ilman kirjautumista.
Moodle-palvelimet ovat lähes aina tavoitettavissa internetistä, koska oppijat työskentelevät kotoa. BSI (Saksan liittovaltion tietoturvavirasto) suosittelee varoitustasolla 3 välitöntä päivitystä ja, jos se ei onnistu, verkkopalvelimien tilapäistä ottamista pois verkosta. Kouluille ja koulutuksen järjestäjille se on organisatorisesti vaikeaa, mutta suunniteltavissa. Alakohtaisia ohjeita on sivulla Koulujen ja koulutuksen järjestäjien IT-turva.
Moodlen tietoturva: PHP-version tarkistus webille ja cronille
Kohdassa Sivuston ylläpito > Palvelin > Ympäristö Moodle tarkistaa PHP-version ja muut vaatimukset. Kohdassa Palvelin > PHP-tiedot ylläpitäjät näkevät lisäksi PHP:n täydelliset tiedot. Molemmat kuvaavat web-PHP:tä.
Moodle tarvitsee lisäksi cron-ajon, joka suorittaa tiedoston admin/cli/cron.php säännöllisesti komentorivi-PHP:llä. Tämä versio voi poiketa, ja sen on oltava yhtä lailla korjattu. Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35; backportit kantavat usein vanhempia numeroita. Mitä PHP-versioita teidän Moodle-versionne tukee, tarkistatte järjestelmävaatimuksista moodle.orgin dokumentaatiosta. Miten käynnistätte kaikki prosessit sen jälkeen siististi uudelleen, kuvataan sivulla PHP-FPM:n ja kaikkien workerien uudelleenkäynnistys.
Moodlen hakemistot ja asetukset
| Paikka | Sisältö | Tarkistuskohde |
|---|---|---|
config.php |
Tietokantatunnukset, wwwroot, polku hakemistoon moodledata |
sisään ujutettu koodi, salasana vaihdettava epäilyn jälkeen |
moodledata/ |
Tiedostotallennus, palautukset, istunnot, välimuistit | dokumenttijuuren ulkopuolella, ei PHP-tiedostoja |
mod/, blocks/, local/, theme/ |
Aktiviteetit, lohkot, paikalliset laajennukset, teemat | tuntemattomat tai muutetut liitännäiset |
admin/cli/ |
Komentorivin skriptit | käytettävissä vain CLI:llä |
Moodlessa on asetus, joka estää ohjelmapolkujen muuttamisen verkkokäyttöliittymän kautta. Se kuuluu tiedostoon config.php ja vaikeuttaa ohjelmien kutsumista palvelimella kaapatun ylläpitäjätilin kautta:
$CFG->preventexecpath = true;
Vaarattomat tarkistukset komentorivillä, verkkopalvelimen käyttäjänä:
# Tulostetaan Moodlen omat tila- ja tietoturvatarkistukset
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Etsitään PHP-tiedostoja datahakemistosta (mukauttakaa polku)
find /pfad/zu/moodledata -type f -name "*.php"
Jos koulussa tai korkeakoulussa epäillään tietovuotoa, mukaan tulee nopeasti useita tahoja: rehtorit, ylläpitäjä, tietosuojavastaavat ja tarvittaessa valvontaviranomainen. Varmuuskopioikaa lokit 20.10.2026 alkaen ja dokumentoikaa jokainen toimenpide kellonaikoineen.
Liitännäiset, ylläpitäjätilit ja lataukset
Käytännön vinkki suunnitteluun: PHP-päivitysten ja uudelleenkäynnistysten ei pitäisi osua koeaikoihin eikä käynnissä oleviin verkkotesteihin. Moodlessa on huoltotila, joka tiedottaa käyttäjille etukäteen. PHP2Shellilta se ei kuitenkaan suojaa, koska myös huoltosivun toimittaa PHP.
Moodle elää liitännäisistä: aktiviteeteista, tenttityökaluista, videoneuvottelu- ja koulunhallintaliitännöistä. Jokainen liitännäinen on lisää PHP-koodia, ja sen on sovittava Moodle-versioon. Sivuston ylläpidossa Moodle näyttää ytimen ja liitännäisten saatavilla olevat päivitykset. Poistakaa liitännäiset, joita kukaan ei enää käytä, kokonaan.
Tarkistakaa sivuston ylläpitäjien luettelo ja laajoilla oikeuksilla varustetut yleiset roolit. Opettajat ja kurssinluojat eivät yleensä tarvitse yleisiä oikeuksia. Ottakaa kaksivaiheinen tunnistautuminen käyttöön ainakin ylläpitäjille. Sallitut tiedostotyypit latauksille kannattaa rajata mahdollisimman tarkasti; vinkkejä tarjoaa sivu Tiedostolatausten turvallinen toteutus PHP:ssä.
Mihin Moodle-päivitys pystyy ja mihin ei
Moodle-päivitys sulkee Moodlen virheitä ja mahdollistaa usein uudemmat PHP-versiot. Se ei korjaa PHP:tä, ei käynnistä web- eikä cron-prosesseja uudelleen eikä poista vieraita tiedostoja hakemistosta moodledata, ylimääräisiä ylläpitäjiä eikä muutettuja liitännäisiä. Päivitys ei myöskään vastaa kysymykseen, onko tietoja vuotanut ennen korjausta.
Moodle kirjaa kirjautumiset ja toiminnot lisäksi omiin lokeihinsa, jotka ylläpitäjät näkevät kohdassa Sivuston ylläpito > Raportit. Etsikää sieltä kohdennetusti ylläpitäjien poikkeavia kirjautumisia, uusia tilejä yleisillä rooleilla ja liitännäisten asennuksia 17.10.2026 alkaen. Viekää nämä merkinnät talteen, ennen kuin automaattiset puhdistukset poistavat vanhempia tietoja. Raportit täydentävät verkkopalvelimen lokeja mutta eivät korvaa niitä.
Miten PHP SOS auttaa konkreettisesti?
- Selvitämme PHP:n vastuutahon ja varmennamme webin ja cronin korjaustilan ja uudelleenkäynnistyksen.
- Varmuuskopioimme lokit, tietokannan ja
moodledata:n ennen jokaista muutosta. - Tarkistamme asetukset, liitännäiset, ylläpitäjät, roolit ja lataukset.
- Pyynnöstä hoidamme alustaa jatkuvasti tietoturvahuoltosopimuksessa, lukuvuoteen ja koeaikoihin sovitettuna.
Usein kysytyt kysymykset
Koskeeko PHP2Shell Moodlea?
Moodlessa itsessään ei ole uutta aukkoa, mutta se toimii PHP:llä. Jos palvelimen PHP on korjaamaton, hyökkääjä voi PHP-tiimin mukaan suorittaa koodia ilman kirjautumista. Moodle-päivitys ei muuta sitä.
Mistä näen Moodlessa PHP-version?
Kohdassa Sivuston ylläpito > Palvelin > Ympäristö Moodle tarkistaa PHP-version vaatimuksiaan vasten. Onko backport asennettu, Moodle ei näytä; sen vahvistaa palvelimen ylläpitäjä.
Miksi moodledatan pitää olla verkkohakemiston ulkopuolella?
Siellä ovat ladatut tiedostot, palautukset, istunnot ja välimuistit. Jos hakemisto on avattavissa verkon kautta, sisältöjä voi olla mahdollista hakea suoraan. Moodle vaatii siksi sijainnin dokumenttijuuren ulkopuolella.
Kuka vastaa kouluilla PHP-päivityksestä?
Se vaihtelee: koulun ylläpitäjä, valtion laitos, kunnallinen konesali tai palveluntarjoaja. Selvittäkää vastuu kirjallisesti ja pyytäkää korjaustilan ja uudelleenkäynnistyksen vahvistus.