PHP det svakeste leddet i LAMP

En undersøkelse av kildekode viser at den mye brukte LAMP-plattformen i snitt inneholder få sårbarheter.

Coverity har i forbindelse med et treårig oppdrag fra amerikanske Department of Homeland Security (DHS) undersøkt kildekoden til 32 mye brukt programvare basert på åpen kildekode. Arbeidet er gjort i samarbeid med Computer Science-avdelingen ved Stanford University. Målet med arbeidet er å forbedre sikkerheten og kvaliteten til programvaren. I den forbindelse har Coverity analysert 17,5 millioner linjer med kode for å identifisere tilstedeværelsen av 40 av de mest kritiske sårbarhetene og defektene som finnes i programvare.

Rapporten som nå er tilgjengelig, er det første resultatet fra undersøkelsen som er blitt offentliggjort. Her trekkes spesielt den populære LAMP-stakken, en webpubliseringsplattform bestående av Linux, Apache, MySQL og Perl/PHP/Python, fram som et eksempel på en plattform med et gjennomsnittlig lavt antall feil i koden. Mens det gjennomsnittlige antallet feil i den testede programvare var 0,434 feil per tusen kodelinjer, hadde den samlede LAMP-stakken i snitt 0,29 feil per tusen kodelinjer. Blant komponentene i stakken hadde Perl lavest feiltetthet, mens PHP hadde den høyeste feiltettheten.

Av alle enkeltproduktene som ble testet, hadde multimediespilleren XMMS lavest feiltetthet med bare 0,051 feil per tusen kodelinjer. Høyest feiltetthet hadde backup-løsningen AMANDA, med 1,237 feil per tusen linjer.

Coverity mener at de foreløpige analysene mener at det ikke er noen synlig sammenheng mellom størrelsen på koden og kvaliteten. Selskapet har satt fram tre hypoteser om faktorer for feiltettheten, basert på det selskapet til nå har kunnet måle:

  • Antallet utviklere i forhold til størrelsen på koden.
  • Andelen av mulige kjøremiljøer som er blitt testet før utgivelse.
  • Antallet brukere som benytter programvaren jevnlig.

Dette er områder selskapet vil se nærmere på i tiden framover.

Tabellen nedenfor viser antallet kodelinjer, feil og forholdet mellom feil og antallet kodelinjer i de ulike programvareprosjektene.

Prosjekt Utestående feilrapporter Kodelinjer Defekter per tusen kodelinjer
AMANDA 108 88.936 1,214
apache-httpd 32 127.817 0,250
ethereal 143 1.161.660 0,123
Firebird 160 250.476 0,639
Firefox 108 304.641 0,355
FreeBSD 632 1.582.166 0,399
Gaim 113 321.783 0,351
gcc 98 693.013 0,141
Gnome 896 1.944.751 0,461
icecast 12 37.055 0,324
Inetutils 29 72.057 0,402
Linux-2.6 1055 3.171.822 0,333
MPlayer 285 485.192 0,587
Net-SNMP 148 173.141 0,855
OpenLDAP 158 257.548 0,613
OpenSSL 66 194.751 0,339
OpenVPN 7 69.842 0,100
Perl 89 479.780 0,186
PHP 207 431.251 0,480
PostgreSQL 297 815.700 0,364
ProFTPD 26 89.650 0,290
Python 59 259.896 0,227
Samba 212 312.482 0,678
snort 48 82.888 0,579
SQLite 16 60.722 0,263
Squid 48 140.824 0,341
tcl 69 120.562 0,572
wxWidgets 72 303.283 0,237
X 1681 2.353.980 0,714
xine 347 576.667 0,602
XMMS 6 116.864 0,051

Ser man på det absolutte antallet feil, er det X (Window System) som har flest feil med 1681. XMMS, som bare hadde seks feil, gjør det også best på dette området.

Selve rapporten (Open Source Quality Report) kan lastes ned fra denne siden (krever registrering).

– Fremmede makter angriper oss daglig

Hør professor Olav Lysne og direktør Bjørn Erik Thon i Datatilsynet diskutere personvern, rikets sikkerhet og det digitale grenseforsvaret i vår nye podkast «Dobbeltklikk».

Til toppen