Het DoS-gat (denial of service) dat door deze exploitcode wordt benut, is de grote kwetsbaarheid van moedwillig gegenereerde hash collisions die in veel programmeertalen zit, waaronder PHP maar ook ASP.net van Microsoft. De Windows-webserver IIS van die leverancier is net als PHP kwetsbaar voor deze nieuwe DoS-aanval, en ook daarvoor zijn er al DoS-tools opgedoken.

1 dag oude update

De exploitcode voor PHP verschijnt compleet met uitleg op diverse fora, waaronder ook Nederlandse sites. Een Webwereld-lezer tipt dit aan de redactie. De onderliggende kwetsbaarheid is gedicht in de allernieuwste release van PHP. Dat is versie 5.3.9 die gisteren pas is uitgebracht.

PHP had al sinds mid december bescherming ingebouwd tegen deze aanval, maar dat was in zogeheten release candidates. Die proefversies moeten volgens de makers zelf niet worden gebruikt in productieomgevingen, zoals serieuze websites. Officieel kunnen beheerders dus pas sinds gisteren hun systemen beschermen tegen dit DoS-gat.

De breed aanwezige kwetsbaarheid is net na kerst geopenbaard, op hackersconferentie CCC in Duitsland. De ontdekkers hebben de getroffen softwaremakers vantevoren geïnformeerd en van details voorzien. Microsoft heeft meteen na de publieke bekendmaking een noodpatch aangekondigd. Die is niet voor webserver IIS zelf, maar voor Windows waar het kwetsbare .Net-raamwerk immers in zit.

Bescheiden bandbreedte nodig

Het grote PHP is relatief het moeilijkste onderuit te halen met deze DoS-aanval. IIS is echter een stuk makkelijker te treffen. In het geval van Microsofts webserver is een http-pakket van 100 KB (kilobyte) voldoende om één processorcore zo'n anderhalve minuut volledig te bezetten. Met voldoende - maar toch nog relatief bescheiden - bandbreedte kan een enkele aanvaller op deze manier zware webservers en clusters uitschakelen, zónder botnet.

Een 'antieke' bandbreedte van slechts 30 Kilobit per seconde (Kbps) is voldoende om één core van een oudere Core2-processor te belasten. Een aanval via een Gigabit-verbinding kan dan 30.000 van die rekenkernen bezet houden. Voor PHP5 is een datapakket van zo'n 800 KB nodig. Een aanval op een webserver met een quadcore i7-processor heeft een bandbreedte van 280 tot 400 Kbps (kilobit per seconde) nodig. Een Gigabit-verbinding (1 Gbps) kan 10.000 i7-cores (ofwel 2500 i7-processors) constant belasten.