DigiD was woensdag offline nadat er een lek werd aangetroffen in het ontwikkelaarsplatform Ruby on Rails. Ict-uitvoerder Logius haalde de dienst rond het middaguur offline. DigiD was dus kwetsbaar voor hackers die op eigen houtje het lek hebben ontdekt, maar misbruik zou detecteerbaar zijn, dus het lijkt aannemelijk dat er niets onbehoorlijks is gebeurd met de gegevens van burgers. Een exploit die het gat daadwerkelijk misbruikt, verscheen pas in de loop van woensdag.

Woordvoerder Rick Bron van Logius legt uit dat Tactisch Beheer van DigiD woensdag besloot om de dienst offline te trekken om het lek te kunnen oplossen. DigiD werd volgens Logius om 12.20 uur offline gehaald en was rond half tien ’s avonds weer beschikbaar. Waarom was DigiD meer dan een halve dag offline?

Patches DigiD getest

“In principe is het een kwestie van updaten door met één commando de applicatie door de deployment-straat van de nieuwe release heen te duwen", vertelt Rails-ontwikkelaar Bèr Kessels. Hij legt uit dat het opnieuw opbouwen van de applicatie niet zo lang duurt. “Rails heeft drie omgevingen: development, test en productie. Na het bouwen push je de code naar een testomgeving." Het duurt voor een grote applicatie al gauw een uurtje om dit proces te doorlopen. "Daarna deploy je de applicatie naar de productieomgeving."

Maar als het op DigiD aankomt, is de kans groot dat het niet om één applicatie gaat. “Om het beheer te vereenvoudigen zijn verschillende Rails-sites opgebouwd uit losse applicaties. Losse delen in de front-end en back-end moeten allemaal bekeken worden“, aldus Kessels. "Twitter gebruikt Rails alleen nog maar in de front-end en bijvoorbeeld geen databasemodules. Maar bij DigiD zou het goed kunnen dat er meer applicaties en afhankelijkheden getest moeten worden."

Wat er precies is gebeurd woensdag, wil Logius in verband met de veiligheid van DigiD niet vertellen. “Het probleem is gepatcht en vervolgens getest door de ontwikkelaars”, vertelt Logius-woordvoerder Bron. “Na het patchen zijn diverse afhankelijkheden getest.” Kessels vertelt dat ontwikkelaars van belangrijke applicaties ook nog een tweede productie-area bouwen in Rails, een soort labomgeving. “In zo’n extra productieomgeving kun je uitgebreider testen dan de automatische tests die Rails uitvoert in de testomgeving.”

Nieuw gat na kleintje

Vorige week werd er ook al een gat aangetroffen in Rails. Het lijkt daarom meteen of er iets aan de hand is met het platform, maar dat is een vertekend beeld. “Het aantal ontwikkelaars dat met Rails werkt groeit al jaren en daarom is het logisch dat er meer aandacht naar uitgaat", vertelt ontwikkelaar Sander van de Graaf. Zo komen beveiligingsonderzoekers sneller bij Rails uit wanneer ze een applicatie testen.

De pentool Metasploit van Rapid7 is bijvoorbeeld ook gebouwd in Rails. Rapid7-onderzoeker HD Moore somt in een analyse van het gat meerdere aanvalsvectoren op en geeft voorbeelden van hoe onveilige calls kunnen worden gemaakt. Moore vindt het gat zeer ernstig en het bedrijf heeft zijn eigen applicaties dan ook snel aangepast en heeft zich vervolgens op de details van het lek gestort. De module is toegevoegd aan het Metasploit-project op GitHub.

In het geval van vorige week en het lek van deze week worden gebruikers geadviseerd om zo snel mogelijk over te stappen naar een recente versie, waarbij het probleem niet speelt. Het Ruby on Rails-platform groeit snel en daarom is het een kwestie van continu bijhouden van de applicatie, omdat het anders snel veroudert, legt ontwikkelaar Van de Graaf uit.

Meer Rails-gaten volgen?

Het eerdere lek zou in veel gevallen niet uit te buiten zijn en alleen gelden voor specifieke applicaties. Voor het gat dat deze week werd blootgelegd, was dat niet het geval. Diverse beveiligingsonderzoekers manen ontwikkelaars om dan ook direct te upgraden als dat nog niet gebeurd is. Logius haastte zich woensdag om te zeggen dat het ontdekte lek van dinsdag niets te maken had met het gat dat deze week bekend werd.

Maar Bèr Kessels verwacht dat er nog wel meer problemen kunnen opduiken de komende tijd. “Het lek van vorig week was een kleine. Maar onderzoekers zijn juist in die hoek verder gaan zoeken om te zien of er meer kwetsbaarheden zitten in bijvoorbeeld de XML-parsing. Daar is toen dit gat uitgerold. Wat dat betreft zijn we volgens sommige onderzoekers ‘down the rabbit-hole’ en worden er in dit gedeelte van Rails misschien nog wel meer problemen gevonden.”

“Ik verwacht ook dat de testsuite bij Logius voor DigiD is uitgebreid zodat er nu automatisch wordt doorgetest. Het kan maar zo zijn dat een opgelost probleem terugkeert bij het uitrollen van een andere versie. Daarom moet je ook tests bouwen om regressies te detecteren.” Als Logius inderdaad de testsuite heeft uitgebreid woensdag, moet een eventueel toekomstig probleem met DigiD vanwege een nieuw Rails-lek snel opgepikt kunnen worden.