Simovits

Var tionde hemsida slutar få säkerhetsuppdateringar från årskiftet

Inga fler säkerhetsuppdatering för PHP 5

Från årsskiftet kommer PHP 5 inte längre att få säkerhetsuppdateringar, [1]. PHP finns även i den nyare versionen 7, men tyvärr används PHP 5 fortfarande i stor utsträckning. En möjlig förklaring till detta är att skillnaden mellan versionerna är stor då exempelvis fel, variabler och listor hanteras delvis olika i PHP 5 och 7, [2], vilket har som konsekvens att en uppdatering från PHP 5 till 7 ofta involverar manuell uppdatering av källkod.

X-Powered-By: PHP

För att få en första uppfattning av hur frekvent PHP 5 fortfarande används på internet kan man titta på headers för webbservrar. Detta eftersom PHP ofta läger till en headern ”X-Powered-By” med ett värde som avslöjar vilken PHP-version som används. Detta illustreras för en installation av PHP på en webbserver nedan, med hjälp av kommandot Curl nedan.

Värt att notera är dock att administratören av webbservern kan välja att dölja eller förändra denna header, dels genom att konfigurera expose_php=off i filen php.ini, [3] och dels genom att skriva om headers i använd webbserver. Efter båda dessa förändringar på webbservern blir i exemplet svaret från servern enligt nedan.

Viktigt att notera är att ändringen ovan förvisso försvårarar för en omotiverad angripare att identifiera versioner av PHP, men det gör inte på något vis webbservern mindre sårbar.

Publicwww

För att identifiera servrar med version 5 av PHP använde jag sökmotorn publicwww.com som gör det möjligt att söka på kod i hemsidor, [4], enligt nedan:

Den rank som står till vänster är sidans Alexa-rankning det vill säga ett mått på hur populär sidan i fråga är, [5].  För att istället få en listan med alla sidor kan man istället söka på ”http” eftersom det förekommer på alla sidor. I gratisversionen av publicwww får man de 100 000 första sökträffarna efter alexa rank samt kan ladda ned dessa i en csv-fil. Jag sparade därför ned en lista med de 100 000 första sökträffarna (topsites.csv) och de 100 000 första träffarna vid sökning efter version 5 av php (subset.csv) enligt ovan. Därefter skrev jag följande Python script för att avgöra hur många av topp de 100 000 mest populära sidorna som kör version 5 av PHP.

# -*- coding: utf-8 -*-
import csv,math
#Läs in lista med mest besökta sidor samt php5-sidor som varsin array.
input=['topsites.csv','subset.csv']
output=[]
for list in input:
        with open(list,'rb') as lista:
               reader=csv.reader(lista,delimiter=';')
               listasarray=[]
               for row in reader:
                        listasarray.append(row)
        output.append(listasarray)

maxrank=int(output[0][len(output[0])-1][1])

#Använd logik från intervallhalvering för att jämföra listorna
prev=0
low=0
high=len(output[1])-1
guess=int(math.ceil((high-low)/2)+low)
guessrank=int(output[1][guess][1])
while guess!=prev:
    if guessrank < maxrank:
        low=guess
    elif guessrank > maxrank:
        high=guess
    prev=guess
    guess=int(math.ceil((high-low)/2)+low)
    guessrank=int(output[1][guess][1])

#Skriv ut output
print float(guess)/float(len(output[0]))*100,"% av de ",len(output[0])," 
sidorna i listan", input[0], "finns i listan", input[1],"."

 

 

Resultatet av att köra skriptet är syns nedan.

Det vill säga 9,6 % av sidorna bland topp 100 000 har en header som indikerar att de kör version 5 av php. Detta är orsaken till rubriken på denna artikel.

Slutsats

Slutligen ska tilläggas att mörkertalet i den enkla undersökningsmetodik som här används sannolikt är stort. Detta då i storleksordningen 80 % av alla sidor använder php, bland annat eftersom de tre vanligast använda systemen för innehållshantering; WordPress, Jomla! och Drupal alla är baserade på php, [6].

Kör man skriptet ovan efter en sökning på ”X-Powered-By: PHP” på publicwww får man följande output (vilket identifiera alla sidor som inte döljer headern):

Alltså avslöjar 14,2 % av de 100 000 populäraste hemsidorna vilken version av PHP de använder via headern X-Powered-By och bland dessa använder två av tre sidor PHP 5. Antar man samma förhållande gäller för alla sidor som använder PHP innebär det att 54 % av alla hemsidor på internet använder version 5 av PHP och därmed kommer stå utan säkerhetsuppdateringar från och med nyår.

Referenser

[1] – Supporterade versioner av PHP: https://secure.php.net/supported-versions.php

[2] – Nödvändiga anpassningar för migrering från PHP 5 till PHP 7: https://secure.php.net/manual/en/migration70.incompatible.php

[3] – Inställningar för exponering av versionsnummer i PHP: http://php.net/manual/en/ini.core.php#ini.expose-php

[4] – PublicWWW; sökmotor för kod på hemsidror: https://publicwww.com/websites/X-Powered-By%3A+PHP%2F5/

[5] – Alexa Ranking: https://www.alexa.com/siteinfo

[6] – Wappalyzer, verktyg för identifering av webbapplikations komponenter:  https://www.wappalyzer.com