image

PHP nam Nederlands CTF-team niet serieus (interview)

zondag 13 mei 2012, 07:50 door Redactie, 8 reacties

Nederlands CTF-team Eindbazen werd op 3 mei wereldnieuws toen een zeer ernstig beveiligingslek in PHP per ongeluk openbaar werd gemaakt. De kwetsbaarheid in de zeer populaire scripttaal was al in januari door het team ontdekt, maar de ontwikkelaars hadden in mei nog altijd geen update klaar. Door een fout werd het lek in de bugtracker van PHP opeens voor iedereen openbaar, inclusief alle details.

Toen die details online verschenen besloot Eindbazen de details vrij te geven. PHP kwam een dag later met een update, maar die bleek niet te werken. Dit werd echter niet op officiele PHP-website gemeld. Pas drie dagen na het verschijnen van de update verscheen het bericht dat de patch defect was. Uiteindelijk verscheen op 8 mei een werkende patch. Security.nl interviewde Eindbazen, hieronder het eerste deel.

Hoe hebben jullie het lek precies gevonden.
Eindbazen: Het lek is eigenlijk per toeval ontdekt. Tijdens de Nullcon HackIM CTF competitie was er een opdracht om de output van een bekende vulnerability scanner, genaamd Nikto (CIRT.org), te analyseren. Bij een zekere zijstraat in het oplossen van de challenge is deze tool tegen de CTF-website gebruikt en daarbij kwam de bug naar voren in een ongerelateerd test-patroon waarin -s voorkwam.

Nadat we onszelf een onhaalbaar aantal punten in het scoresysteem hadden toebedeeld hebben we contact opgenomen met de beheerders van de CTF-competitie. De beheerders hebben vervolgens het probleem verholpen en ons de door hen gebruikte Apache configuratie gegeven om verder te testen, evenals een eervolle vermelding boven het scoreboard. De details over de bug (aangaande Apache, de CGI RFC, PHP changelog en dergelijke) zijn door verschillende mensen in het team nagezocht om het plaatje compleet te maken, waarna patches en advisories ook in teamverband zijn opgesteld.

Hoe kan het dat niemand dit in de afgelopen 7 jaar heeft opgemerkt/ gerapporteerd?
Eindbazen: Wellicht dat het in ondergrondse kringen bekend was, maar het heeft in ieder geval 7 jaar geduurd voordat het gerapporteerd is. Het was voor ons ook een grote verrassing, maar de bug gaat uit van een specifieke setup, die op de meeste omgevingen niet meer gebruikt wordt.

De reactie/communicatie van PHP kwam niet echt professioneel over. Daarnaast duurde het patchen wel heel erg lang. Wat maken jullie
daarvan als onderzoekers / PHP-programmeurs?

Eindbazen: Het is erg jammer dat PHP ons niet serieus leek te nemen. Wij hebben er alles aan gedaan om deze bug zo verantwoord mogelijk openbaar te maken, helaas kostte het PHP nogal lang om op onze melding in te gaan en het probleem op te lossen. Wij kunnen ons ook goed voorstellen dat andere partijen minder geduld met PHP zouden hebben gehad.

De houding van PHP maakt het er niet makkelijker op om een dergelijke bug op een nette wijze naar buiten te brengen. Helaas bestaat het core PHP ontwikkelteam alleen uit vrijwilligers, waardoor het voortdurend onderbemand is voor zulke zaken. In het algemeen zijn security features van software iets waar achteraf aan gedacht wordt, en in PHP lijkt dit niet anders te zijn.

Waarom werkte de eerste patch niet? Was deze update niet goed getest of was er bij PHP onvoldoende kennis over de werking van het lek?
Het lijkt er sterk op dat PHP de bug pas serieus begon te nemen op het moment dat de bug geopenbaard dreigde te worden via CERT, er waren toen al 3 maanden verstreken sinds onze eerste melding. We hebben vervolgens PHP extra tijd gegeven, tot 17 Mei, zodat ze hun patch goed konden testen. Toen ze per ongeluk zelf de bug publiceerden, konden ze niet anders dan snel met een fix komen, de bug was immers zo triviaal te exploiten.

De patch zal toen waarschijnlijk door te weinig mensen getest zijn. Een van onze Proof-of-concept aanvallen die we naar PHP opgestuurd hebben werd zelfs niet gestopt door de eerste patch. Afgaande op de documentatie van PHP was men zich bewust van deze bug, maar zoals uit de mailinglist-conversatie blijkt is deze kennis over tijd vervaagd of misschien zelfs verloren gegaan. Het is raar dat de PHP developers ook hun eigen documentatie niet lijken te kennen. Dat geeft ons het gevoel dat deelname in het project nogal vrijblijvend wordt bedreven.

Wat zou je PHP adviseren als het gaat om meldingen van beveiligingsonderzoekers, maar ook wat het kan doen om de eigen code
veiliger te maken?

Eindbazen: PHP zou de community om sponsoring kunnen vragen voor security taken / bounties. Daarnaast zou het al een heel stuk beter zijn als PHP meldingen van security onderzoekers serieus nam en deze meldingen niet onnodig lang laat liggen.

Maandag het tweede deel van het interview met de Eindbazen - inmiddels online verschenen

Reacties (8)
13-05-2012, 17:24 door HiSeCu
Er moet gewoon een potje komen waaruit hackers die dit soort vulnerabilities op een nette manier melden een beloning krijgen, bijv. van 2000 euro per melding, de hoogte van de beloning kan afhangen van de ernst van de vulnerability. Dit potje zou idealiter gespekt worden door commerciële organisaties die gebruikmaken van PHP voor hun core business.

Als dat op zich niet goed genoeg werkt, kunnen we verder kijken, bijv. naar DAARNAAST een dedicated PHP security officer die op een soortgelijke manier gesponsord wordt.
13-05-2012, 19:00 door [Account Verwijderd]
[Verwijderd]
13-05-2012, 21:47 door cjkos
Door unbalanced: Is het niet onverantwoord om een stuk software, dat blijkbaar door een los/vast vrijwilliggers-teampje wordt ontwikkeld/onderhouden, zo'n essentieel onderdeel van een systeem te laten zijn?

Wie is er daar verantwoordelijk en tot verantwoording te roepen voor het geheel en zijn eigen bijdrages?
Waarom is het niet gelukt om geld te verdienen aan php? Waarom hebben we er geen geld en middelen voor over. We gebruiken het allemaal.


Het is geen software, maar een scripttaal.
Zonder een server en browser doet PHP ... niets.
We gebruiken het ook niet allemaal.

Daarnaast is het gratis en open source.
14-05-2012, 01:38 door Anoniem
Het PHP-ontwikkelteam, hebben die gasten ooit wel eens van een CVE gehoord? Helder zijn ze zelfs zonder die kennis al niet in het communiceren van securitybugs. Laten we van het positieve uitgaan in hun bedoelingen: kennelijk weten ze dan niet wat ze gefixed hebben, of in ieder geval de schrijver van de changelog of releasenotes weet dat klaarblijkelijk vaak niet.
14-05-2012, 02:16 door [Account Verwijderd]
[Verwijderd]
14-05-2012, 09:06 door Anoniem
Het is allemaal mooi praten. PHP is laat met reageren etc. maar misschien moeten bedrijven en anderen ook redelijk blijven. Het zijn vrijwilligers mensen. Als mensen willen dat er sneller wordt gereageerd moeten ze hiervoor ook in de buidel tasten en bijv. meer doneren.
14-05-2012, 09:42 door Mysterio
Door Anoniem: Het is allemaal mooi praten. PHP is laat met reageren etc. maar misschien moeten bedrijven en anderen ook redelijk blijven. Het zijn vrijwilligers mensen. Als mensen willen dat er sneller wordt gereageerd moeten ze hiervoor ook in de buidel tasten en bijv. meer doneren.
Misschien is dit een mooi moment om de structuur van in dit geval PHP als organisatie, mee te nemen in je risicoanalyse. Bedrijven verwachten van andere bedrijven/organisaties dingen als professionele oplossingen. Als een product wat gebruikt wordt, wordt ontwikkeld door een organisatie die niet professioneel kan opereren door bijvoorbeeld een complex netwerk aan vrijwilligers... Dan zou het wel eens een goede rede kunnen zijn om het product niet te gebruiken.
14-05-2012, 11:32 door Anoniem
Door unbalanced: Open-Source prima, maar gratis...... dan krijg je dus dit soort toestanden. Als iets gratis is en dus op vrijwillige basis gemaakt wordt, is het moeilijk eisen stellen. Gegeven paard, bek kijken...

Alsof commerciele producten niet met hetzelfde zitten. Die verdienen hun geld met het verkopen van licenties, niet met het fixen van securitybugs. Ze zullen dus meer mensen zetten op een niet-betaald-killswitch dan security problemen oplossen; want dat levert meer op.
Hoe vaak hebben we niet van dergelijke "fixes" gehoord van commerciele partijen?

Uiteindelijk zul je voor security toch zelf de boel moeten controleren.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.