Iedereen weet het: Linux heeft geen virussen.  Dat hoeft ook helemaal niet, want Linux heeft packages. Wat  is nu de relatie tussen RPM  en DEB en virussen zul je je afvragen? Simpel: de scripts die meegeleverd worden met de packages die je installeert. Maar heel weinig mensen realiseren zich wat daar nou precies mis mee kan gaan.

Stel je voor, je bent een beheerder van een Linux server en je moet software installeren. Dan zijn de repositories natuurlijk je eerste keuze. Gewoon even yum install blah, en de meta pacakge handler gaat kijken in de repository of het package blah goed geïnstalleerd is. Tot zo ver is er weinig aan de hand, tenminste, als de repositories in kwestie van een betrouwbare bron afkomstig zijn. Denk daarbij aan de standaard repositories van je distributie, of de repositories die zorgvuldig voor je zijn aangemaakt.

Nu kan het ook wel eens voorkomen dat je software nodig hebt die niet voorkomt in de repositories. De grote vraag is wat je dan gaat doen. Simpel: zoeken op Internet of het package daar te vinden is en als je het gevonden hebt installeer je het package gewoon van Internet. Tsja, gewoon van Internet installeren. Dat doe je dus wel als root .  Helaas zijn er maar heel weinig mensen die zich realiseren dat er met die packages ook scripts uitgevoerd worden. Inderdaad, met root permissies. En er is helemaal niets dat je gaat vragen of je dat wel wilt, of je op de hoogte gaat stellen van wat die scripts precies doen. De scripts worden gewoon op de achtergrond uitgevoerd en doen hun werk zonder dat jij daar lastig mee wordt gevallen.

Het mag duidelijk zijn dat hier een groot risico in schuilt. Eigenlijk zou je dus ook als beheerder nooit zomaar een software package moeten installeren. Voer op zijn minst voor installatie een query uit om te kijken of er script code in het package zit, met rpm zou je bijvoorbeeld rpm -qp –scripts blah-1.2.3.rpm doen om te zien wat er voor code in het package zit.

Nu is het natuurlijk vrij lastig om voor elk software package dat je wilt installeren, inclusief alle dependencies eerst een integriteitscontrole uit te voeren. Om die reden is het zaak te werken met goede en betrouwbare repositories. Als je alleen gebruik maakt van de repositories van je distributie, mag je er van uitgaan dat de maker van de distributie ervoor gezorgd heeft dat de packages in orde zijn. Het grootste risico dat er dan nog bestaat, is dat je op de server zit van een “man in the middle” die doet alsof hij jou standaard repository leverancier is, terwijl dat niet het geval is. Dat is waarom gebruikgemaakt wordt van GPG keys.

De eerste keer dat contact gemaakt wordt met een repository, wordt de GPG key van de distributie binnengehaald op je computer. Omdat alle packages voorzien horen te zijn van een GPG key signature, kan gecontroleerd worden of de inhoud van het package veranderd is. Dat vereist echter wel dat de GPG key van de repository op je computer geïnstalleerd is.  Ooit een package weggezet met de optie yum install blah –no-gpgcheck? Niet meer doen dus want je begeeft je op glad ijs.

Gelukkig dat Linux een besturingssysteem is dat vooral gebruikt wordt door mensen die interesse hebben in hun computer en dus (hopelijk) nadenken over wat ze aan het doen zijn. Zo niet, dan zou de wereld er heel anders uit zien en zouden Windows gebruikers ons uitlachen in plaats van omgekeerd…  Sander van Vugt