Bits&Chips

Hoe Linus Torvalds aankijkt tegen security

15 december 2017 

Een felle discussie op de mailinglijst voor Linux-ontwikkelaars geeft een aardig inkijkje in de manier hoe Linus Torvalds over security denkt.

Onlangs ontstond er een intensieve discussie op de mailinglijst van Linux-ontwikkelaars rondom security. Ondanks zijn toezegging beter op zijn woorden te letten, viel kernelopperhoofd Linus Torvalds helaas weer terug in zijn oude patroon van krachttermen bezigen. Zo maakte hij een deel van de securitygemeenschap uit voor ‘f*cking morons’.

Zonde, want op de keper beschouwd, was het een interessante inhoudelijke discussie die een interessante blik gaf op de manier hoe Torvalds en andere betrokkenen aankijken tegen security. Die houding is niet onomstreden; de Linux-ontwikkelaars worden er bij tijd en wijle van beschuldigd security niet serieus genoeg te nemen, maar kunnen ook op bijval rekenen vanuit de securitygemeenschap.

De splijtzwam was dit keer een bijdrage van Google-ontwikkelaar Kees Cook, voor een mechanisme om over geheugentoegang te waken. In zijn voorstel zou elk proces dat iets onverwachts doet direct worden stopgezet, waarmee effectief voorkomen wordt dat hackers bugs op dat vlak kunnen misbruiken. Maar dit is zeer tegen het zere been van Torvalds; het zou kunnen betekenen dat gebruikers ineens hun programma’s niet meer kunnen draaien omdat er een - al dan niet onschuldige - bug in zit. ‘Regel nummer een voor kernelontwikkelaars is’, zo schreef hij op de mailinglijst, ‘we don't break users.’

Kern van de discussie is de vraag of security belangrijker is dan alle andere eisen zoals performance en bruikbaarheid. Sommige security-onderzoekers menen van wel. Omdat de gevolgen van een veiligheidslek immens kunnen zijn, moeten alle zeilen worden bijgezet om dat te voorkomen. Zelfs als dat ten koste gaat van prestaties of bruikbaarheid, zo menen ze.

Maar volgens Torvalds is dat onzin. Zijn redenatie is simpel: als het systeem van de eindgebruiker dankzij een security-update plotseling in de soep loopt, dan zal die zich nog eens goed achter de oren krabben of Linux wel de juiste oplossing is. Of de nieuwe kernelversie wordt simpelweg niet geïnstalleerd, waardoor ook andere beveiligingsupdates worden gemist. ‘Zonder gebruikers is je programma nutteloos, en is al het ontwikkelwerk van de afgelopen decennia nutteloos ... en is security uiteindelijk ook nutteloos’, aldus Torvalds.

Foto: Krd

Kill on sight, ask questions later

Het opperhoofd zag zich dan ook gedwongen om de securitygemeenschap nog maar eens de les te lezen over hoe het dan wel moet. Zijn mantra op dat vlak is ‘securityproblemen zijn gewoon bugs’. De meeste beveiligingsproblemen zijn het gevolg van een fout in de programmatuur, tenminste op het niveau van de kernel. Om de kernel veiliger te maken, moeten bugs worden gevonden en opgelost.

Torvalds heeft dan ook een broertje dood aan de neiging van sommige security-onderzoekers om een gevonden beveiligingsprobleem breed voor het voetlicht te brengen. Ze verdienen precies dezelfde behandeling als elke andere bug: ze moeten gemeld, opgelost, de oplossing moet getest en vervolgens moet die worden opgenomen in de hoofdlijn van de broncode. Ze apart volgen in een database met een embargoperiode vindt hij maar niks; zodra de fix wordt gepubliceerd, is het probleem verholpen, dus waarom zou je het dan nog apart benadrukken?

Die visie betekent ook dat security- en kernelontwikkelaars er andere prioriteiten op nahouden. ‘Vanuit een securityperspectief ben je klaar als je een foutieve geheugentoegang detecteert en stopt’, schrijft Torvalds. ‘Maar vanuit het perspectief van een ontwikkelaar ben je absoluut niet klaar. Verre van. De foutieve geheugentoegang was slechts een symptoom, en de fout moet worden gerapporteerd, en gedebugd, en opgelost.’

Dat is de belangrijkste reden dat Torvalds het ‘kill on sight, ask questions later’-voorstel van Cook niks vindt; het draagt niks bij aan het vinden van bugs. En dat is eigenlijk de echte reden waarom hij zo uit zijn slof schoot, schreef hij in een vervolgmail.

Want de kloof hoeft er helemaal niet te zijn. Het mechanisme kan prima worden ingezet om bugs te vinden, maar dan moet het een foutmelding genereren en de software verder met rust laten. En ja, op den duur zou je er best over kunnen nadenken om ook processen stop te zetten, maar pas als zo’n mechanisme allang in gebruik is en de veelvoorkomende bugs zijn opgelost. ‘Ik wil gewoon dat de hele mentaliteit van ‘laten we processen stopzetten’ verdwijnt, en dat mensen snappen dat de eerste stap altijd is om alleen melding te maken’, aldus Torvalds. ‘Do no harm. Please.

Abonneer direct op onze nieuwsbrief

abonneren

Embedded Linux

14 mei - 18 mei

Eindhoven

Embedded Linux

14 mei - 18 mei

Eindhoven