Het Linux-universum is voorgoed veranderd. De technologie is niet langer iets raars in IT-gesprekken en is vandaag de dag te vinden in miljoenen smartphones, tablets, modems, routers, wearables en voertuigen, om nog maar te zwijgen van de dominantie op servers. Nu het internet der dingen op de deur klopt, kan de beveiliging van de Linux-kernel niet langer met het huidige model doorgaan. Steeds meer stemmen pleiten voor een nieuwe strategie die de kernel in staat stelt om "zichzelf beschermen", zodat hij een stap voor blijft op kwetsbaarheden.
Op twee meter van mijn bureau ligt een smartphone met Android 2.3 stof te verzamelen die nu dienstdoet als zaklamp. Alles wat ik hoef te doen om hem terug te brengen naar zijn oorspronkelijke rol van smartphone, is een simkaart plaatsen, maar de versie van het besturingssysteem is zo oud dat ik niet weet of het het risico waard is. Miljoenen apparaten met een Linux-kernel op de achtergrond bevinden zich in dezelfde situatie. Ze zijn robuust, flexibel en stabiel, maar omdat ze geen updates ontvangen, worden ze onveilig. Ontwikkelaars, fabrikanten, distributeurs, connectiviteitsproviders en gebruikers dragen allemaal een stukje schuld op hun schouders, en als we daar het potentieel van het internet der dingen bij optellen, hebben we het over miljoenen extra apparaten die volledig in gevaar zijn. Sommige van die gadgets worden geacht vijf of tien jaar te functioneren zonder een enkele update te ontvangen, en met die dynamiek zit de Linux-kernel klem tussen twee vuren.
Kees Cook en het Kernel Self-Protection Project
Met andere woorden, de Linux-kernel kan niet langer achter bugs aanjagen. Volgens Kees Cook, ontwikkelaar bij Google en verantwoordelijk voor het Linux Kernel Self-Protection Project, ligt de 'levensduur' van een bug in de kernel (dat wil zeggen, van de introductie tot de patch) tussen de 3,3 en 6,4 jaar. Deze gaten zijn onacceptabel geworden, en aanvallers bekijken elke nieuwe 'commit' nauwkeurig om bugs te detecteren en te exploiteren. Dat maakt geavanceerde kernelbescherming een fundamentele missie, maar er is nog een ander probleem: 85 procent van de bugs in de kernel komt niet uit de kern zelf, maar uit de geïntegreerde stuurprogramma's. De lage kwaliteitscontrole bij sommige fabrikanten is zorgwekkend en draagt bij aan de beveiligingsonzekerheid rond de kernel.
Technische en politieke uitdagingen
Nu zijn de uitdagingen niet alleen technisch, maar ook politiek. Het geoefende oog zal merken dat dit 'conflict' veel gemeen heeft met het debat over "monolithische kernel vs. microkernel" dat Linux-liefhebbers meer dan eens in beweging bracht en nog steeds een bron van opmerkelijke uitwisselingen is. Toch is het Linux-universum, zoals ik in het begin zei, voorgoed veranderd. Nieuwe beveiligingsproblemen vereisen nieuwe oplossingen, en een soort 'algemene immuniteit' in de kernel klinkt niet slecht. Stuurprogramma's uit de kernel halen en hun werking naar 'userland' verplaatsen is verre van een magische oplossing, maar daar gaat het om: we hebben geen magische oplossingen nodig, maar robuuste oplossingen die de kernel op de lange termijn beschermen. De lezing van Kees Cook duurt iets meer dan 45 minuten en beschrijft enkele van de vorderingen van het Self-Protection Project, evenals aanvullende suggesties voor de toekomst. Als dit onderwerp je aanspreekt, is het de moeite waard om te bekijken.