Tietomurto PHP:n pakettikirjastossa (PEAR)

Photo by Jakub Kapusnak on Unsplash

Seravon WP-palvelussa seuraamme aktiivisesti tietoturvatiedotteita ja omien valvontatyökalujemme raportteja. Reagoimme välittömästi kaikkiin poikkeamiin, jotta asiakkaamme voivat luottaa siihen, että heidän palvelinympäristönsä on mahdollisimman hyvin ylläpidetty ja turvallinen.

PEAR (The PHP Extension and Application Repository) ilmoitti lauantaina 19. tammikuuta Twitterissä siihen kohdistuneesta tietomurrosta:

Hyväksy evästetyypit statistics, marketing katsoaksesi tämän sisällön.
Hyväksy evästetyypit statistics, marketing katsoaksesi tämän sisällön.

Alustavien tietojen mukaan projektin sivusto pear.php.net on ollut murrettuna jopa kuuden kuukauden ajan. Projekti ei toistaiseksi ole julkaissut tarkempaa tietoa murron vaikutuksista.

Hyväksy evästetyypit statistics, marketing katsoaksesi tämän sisällön.
Hyväksy evästetyypit statistics, marketing katsoaksesi tämän sisällön.

Mikä on PEAR?

PEAR on PHP:lle hieman kuin esimerkiksi npmjs node:lle tai PyPi Pythonille: keskitetty kokoelma valmiita ohjelmistoja ja komponentteja ohjelmistotuotantoa varten. Tämän kaltaisissa kirjastoissa on aiemminkin esiintynyt ongelmia. Sovelluskehityksessä onkin tärkeää aina huomioida kolmannen osapuolen tuottaman koodin sekä jakelukanavien luotettavuus.

Ympäristössämme on ollut asennettuna Ubuntun tarjoama paketti php-pear, joka on tarjonnut komentorivityökalun pear. Tämän avulla on ollut mahdollista asentaa paketteja vaivatta, eikä asiakkaiden ole itse tarvinnut asentaa PHP PEAR -asennusohjelmaa. Haavoittuvuus ei suoraa koskenut tätä pakettia, mutta teimme samalla päivitetyn arvion työkalun tarpeellisuudesta ja päädyimme poistamaan sen paketeistamme vähäisen käyttöasteen takia (alle promille asiakkaista).

Seravon asiakkaiden ei tarvitse murehtia

Ympäristössämme yksi työkalu, PHP CodeSniffer, on aiemmin oletuksena asennettu PEAR:n kautta, mutta PEAR-kirjaston ongelman seurauksena siirryimme välittömästi käyttämään toista asennusmetodia. Samassa yhteydessä varmistimme vielä, että ympäristössämme ei ole missään vaiheessa ollut käytössä saastunutta versiota PEAR:n tarjoilemista paketeista.

Skannasimme myös läpi kaikki sivustot ja varmistimme, ettei asiakkaiden asentamia saastuneita PEAR-paketteja ole asennettuna. Koska teimme kaiken tämän asiakkaidemme puolesta, ei asiakkaiden tarvitse tehdä mitään tai murehtia asiasta enempää. Mitään saastuneita PEAR-paketteja ei löytynyt.

Teimme myös auditoinnin PHP CodeSniffer -asennukselle varmistuaksemme, että PEAR:n kautta asennettuun koodiin ei ole injektoitu haittakoodia, joka olisi aiemmin jäänyt valvonnaltamme huomaamatta.

Muutosvertailu alkuperäisen ja asennetun koodin välillä.

Avoin lähdekoodi parantaa tietoturvaa

Yllä oleva lähdekoodien vertailu on mahdollista ainoastaan, koska PHP PEAR (kuten kaikki muutkin käyttämämme ohjelmistot) ovat avointa lähdekoodia. Jos ohjelmisto olisi suljettu, emme pystyisi tällä tavalla tutkimaan mahdollisten takaporttien olemassaoloa. Suljetun ohjelmiston osalta meillä ei olisi ollut juurikaan mitään mahdollisuuksia havaita tai tutkia mahdollisia takaportteja. Avoimen lähdekoodin laaja käyttö on ehdottoman hyvä asia tietoturvan kannalta.

PHP PEAR poistettu vähäisen käytön ja tietoturvariskin takia

Todettuamme, että PEAR-kirjaston käyttö on äärimmäisen harvinaista (alle promille asiakkaista), päädyimme poistamaan PEAR-kirjaston kokonaan palvelinympäristöstämme. Useimmat asiakkaistamme eivät asenna omia PHP-moduuleja, koska ympäristössämme on niitä runsaasti jo valmiiksi tarjolla. Jos asiakkaat asentavat omia PHP-kirjastoja, käyttää ylivoimainen enemmistö siihen PHP Composeria, eikä PEAR:ia.