Etusivu: Kyberturvallisuuskeskus
Etusivu: Kyberturvallisuuskeskus
Valikko

Tietoturva Nyt!

PHP5.6:n tuki ja tietoturvapäivitykset päättyvät vuodenvaihteessa. Mikäli PHP5.6:sta löytyy haavoittuvuuksia ensi vuoden alusta lähtien, sillä rakennetut sivustot ovat alttiita näitä hyödyntäville hyökkäyksille, sillä haavoittuvuuksiin ei enää tule virallisia korjauksia. Viestintäviraston Kyberturvallisuuskeskus suosittelee luopumaan vanhojen PHP-versioiden käytöstä etenkin Internetiin julkisesti näkyvissä palveluissa.

PHP (Hypertext Preprocessor) on laajasti webpalveluissa käytetty ohjelmointikieli. Sillä toteutettuja tai sitä hyödyntäviä sisällönhallintajärjestelmiä (content management system) ja julkaisualustoja ovat mm. Drupal, Joomla, MediaWiki, Moodle, TYPO3 ja WordPress.

PHP:sta julkaistaan uusi versio noin kerran vuodessa. Uudet versiot parantavat PHP:n tietoturvaa ja nopeutta sekä lisäävät uusia toimintoja. Tällä hetkellä uusin versio on 7.3. Jokaista versiota kehitetään aktiivisesti kaksi vuotta, minkä jälkeen tietoturvapäivityksiä tarjotaan vuoden ajan. PHP5.6 on julkaistu vuonna 2014, ja se on edelleen käytössä laajasti monissa webpalveluissa. Muista versioista poiketen sen aktiivista tukea on aiemmin pidennetty neljällä kuukaudella ja tietoturvapäivityksien pituutta on tuplattu vuodesta kahteen vuoteen, mutta nyt sen tuki lopulta päättyy. Aikaisempien PHP5 -versioiden virallinen tuki on loppunut jo aiemmin. Joidenkin käyttöjärjestelmien toimittajat tai vapaaehtoiset ovat luvanneet tarjota uudemmissa PHP:n versioissa julkaistavien tietoturvakorjauksien tuomista vanhempiin versioihin (backporting). Nyt tämä vaikeutuu, koska virallisia tietoturvapäivityksiä, joita voisi tuoda vanhempiin tukemattomiin 5-sarjan versioihin, ei enää ilmesty 5-sarjassa. Lokakuussa 2018 yli 60 prosenttia Internetissä olevista websivuista käytti jo vanhentuneita tai vanhentuvia PHP:n versioita.

Uusi PHP7 ei ole täysin yhteensopiva vanhan PHP5:n kanssa, jolloin vanhaa versiota käyttäviä sivustoja ei pysty kopioimaan sellaisenaan uudelle alustalle eikä pelkkä PHP:n päivitys riitä. Käytännössä sivustojen omistajilla tai ylläpitäjillä ainoa tietoturvallinen keino on uudistaa samalla koko websivusto. PHP7:sta tuettuja ovat edelleen versiot 7.1 (1.12.2019 saakka), 7.2 (30.11.2020 saakka) ja 7.3 (6.12.2021 saakka).

Monet sisällönhallintajärjestelmien tai julkaisualustojen ylläpitäjät ovat jo ottaneet tai tulevat ottamaan yhteyttä PHP5:n suhteen sitä käyttäviin asiakkaisiinsa. On mahdollista, että julkaisualustan päivityksen yhteydessä koko sivusto on uusittava. Joissain palveluissa asiakkaat voivat itse valita hallinnointipaneelien kautta mitä PHP:n versiota he käyttävät ja mahdollisuuden päivittää versioita uudempiin. Tällöin ennen PHP:n version vaihtamista kannattaa varmistaa sivuston yhteensopivuus halutun version kanssa. Mikäli hallinnoit itse palvelinta ja sen PHP:n versioita, sinun tulee tehdä niiden, mahdollisen julkaisualustan sekä varsinaisen sivuston päivitys. Php.net -sivusto tarjoaa ohjeet päivittämiseen PHP5.6.x -versiosta versioon 7.0.x, mutta ohjeiden mukaan päivitys uusiin, vielä tuettuihin 7-sarjan versioihin pitää tehdä vaiheittain (5.6.x -> 7.0.x -> 7.1.x -> 7.2.x -> 7.3.x).

Viestintäviraston Kyberturvallisuuskeskus suosittelee luopumaan vanhojen PHP-versioiden käytöstä etenkin Internetiin julkisesti näkyvissä palveluissa.

Jos PHP:ta ei kuitenkaan jostain syystä pysty vielä päivittämään, tulisi palvelimen ja sen ympäristön tietoturvan koventamiseen kiinnittää erityistä huomiota. Alla on ylläpitäjille suunnattuja vinkkejä, joilla voi parantaa palvelinten tietoturvaa.

Varmuuskopioi

Ota palvelimesta varmuuskopiot riittävän säännöllisesti ja testaa niiden palauttamista. Mitä pitempään haavoittuvat palvelimet ovat saatavilla Internetissä, sitä suuremmalla todennäköisyydellä ne saastuvat jossain vaiheessa, jolloin varmuuskopioista palauttamisen tärkeys kasvaa.

Eristä

Eristä palvelin mahdollisimman hyvin

  • Eristä Internetiin näkyvät palvelimet omaan verkkoalueeseensa.
  • Rajaa pääsyä www-palvelimelta eteenpäin muualle verkkoon esimerkiksi DMZ:lla tai muulla verkon segmentoinnilla.
  • Rajoita palvelimelta pääsy vain tarpeellisiin palveluihin sisä- ja ulkoverkon yhteyksien osalta.
  • Salli palvelimelle kirjautuminen vain tietyistä paikoista.

Tarjoa ulos staattinen versio

Tarjoa ulospäin staattinen versio sivustosta ilman mahdollisuutta interaktioon. Mikäli tämä ei ole mahdollista, tarkista käyttäjän antama syöte www-sivuilla mm. lomakkeissa ja tiedostoja palvelimelle ladattaessa.

Lokita

Lokita palvelimeen kohdistuva liikenne (access log) ja varmista, että lokitiedot säilyvät riittävän kauan.

Kovenna järjestelmät

  • Poista palvelimelta kaikki ylimääräiset prosessit ja sovellukset.
  • Poista julkaisujärjestelmästä ylimääräiset liitännäiset.
  • Salli vain tiettyjen PHP-funktioiden käyttäminen.
  • Minimoi palvelimen sovellusten käyttöoikeudet vain välttämättömiin.
  • Estä PowerShellin käyttö, ellei sitä tarvita palvelimen toiminnassa tai ylläpidossa.

Käytä palvelinkohtaisia vahvoja admin-salasanoja. Tarkista, että järjestelmän salasanat tallennetaan turvallisesti tiivisteinä ja suolattuina.

Rajoita haitallista liikennettä

  • Käytä palvelimen edustalla ModSecurity, nginx-, F5- tai vastaavia web-sovellustason palomuureja ja/tai kuormanjakopalvelimia, joiden avulla voidaan myös rajoittaa hyväksyttäviä pyyntöjä.
  • Käytä palvelimella omaa sisäistä palomuuria.
  • Käytä verkon rajalla palomuuria.

Testaa

Testaa verkkosivujasi penetraatiotestaustyökaluilla ja fuzzereilla.

Lisätietoa