Linux wordt gezien als veilig alternatief voor Microsoft Windows. Ondanks de solide basisprincipes afkomstig uit de UNIX-wereld, kent ook Linux zijn eigen uitdagingen. Wat zijn de aandachtspunten en welke maatregelen kunnen we nemen?
Michael Boelen
Zwakheden en nog meer zwakheden
Ieder besturingssysteem heeft sterke en zwakke punten. Zo werd Microsoft Windows jarenlang geteisterd door kwaadaardige software die misbruik maakte van bekende en minder bekende zwakheden. Bijna ieder systeem werd wel een keer getroffen door een virus of worm, om vervolgens ook andere systemen te besmetten.
In 2003 gooide Microsoft het roer om door nieuwe ontwikkelingen tijdelijk te staken en het aantal zwakheden in bestaande producten drastisch terug te brengen. Met succes en vooral stabielere software tot gevolg. Het werd de softwaregigant duidelijk dat beveiliging net zo belangrijk was als bijvoorbeeld de gebruiksvriendelijkheid. Linux-systemen zijn door alle ingebouwde maatregelen een stuk veiliger, toch? Het antwoord kent wel iets meer nuance dan een simpele ja of nee.
Linux: de kernel
Een Linux-systeem bestaat uit de kernel (GNU/Linux) en aanvullende software ten behoeve van systeembeheer en benodigde toepassingen. De kernel is het aanspreekpunt voor software en dan voornamelijk de bijbehorende processen die op het systeem actief zijn. Tevens heeft de kernel de rol van beschermheilige voor de hardware. Bijna alle handelingen die gerelateerd zijn aan de hardware, lopen via de kernel. Dat is maar goed ook, anders wordt het al snel een chaos. De kernel bewaakt prioriteiten en controleert toegangsverzoeken. Het is daarmee niet verwonderlijk dat een groot gedeelte van de veiligheid van een Linux-systeem zich dus afspeelt in de kernel zelf.
Naast de kernel hebben we binnen een Linux-distributie toegang tot een ruim assortiment van beschikbare softwarepakketten. Bijna ieder systeem heeft een vergelijkbare basis aan voorgeïnstalleerde pakketten. Deze zijn nodig voor het standaard systeembeheer. Denk hierbij aan het opvragen van de actieve processen, het bekijken van de aanwezige bestanden, of simpelweg het afsluiten van het systeem. Systemen voorzien van een grafische interface, het zogeheten X Window system , hebben vaak zelfs meer dan het dubbele aantal pakketten aan boord.
De hoeveelheid softwarepakketten op een systeem zegt natuurlijk nog niet veel. Toch is er wel een relatie tussen de beveiliging en dit aantal. De meeste beveiligingsproblemen vinden namelijk plaats door misbruik te maken van zwakheden in software of in de configuratie ervan. Meer pakketten betekent dus meer kans op zwakheden en daarmee meer risico.
|
Terug naar de basis
Om dit risico beter te begrijpen, is het noodzakelijk om de basisprincipes van informatiebeveiliging beter te leren kennen. Computersystemen zijn betrokken bij de verwerking van gegevens. Denk aan de invoer, de aanvullende handelingen en de uiteindelijke opslag van de gegevens. Ieder systeem heeft ook een eigen rol die het vervult, zoals die van werkstation, mailserver, webserver, etc. Hoe gevoeliger de data op het systeem, des te groter is de noodzaak van extra beveiligingsmaatregelen. Een webserver met een persoonlijke website verwerkt (meestal) minder gevoelige informatie dan een webserver die wordt gebruikt voor een webshop. Dit laatste systeem kent dus andere risico’s, zoals het lekken van de gegevens van klanten. Kortom, meer risico en met een mogelijk hogere impact. In dit geval zijn extra maatregelen dus gewenst.
Basisprincipes van systeembeveiliging
De rol van het systeem, de aanwezige gegevens en de risico’s bepalen dus grotendeels waarop we onze aandacht moeten richten inzake informatiebeveiliging. Als we dit vertalen naar te nemen maatregelen, dan kunnen we gebruik maken van een paar basisprincipes:
- Verminderen
- Toevoegen
- Toepassen
Verminderen
De kunst van het weglaten is ook bij de beveiliging van Linux een krachtig middel. Hierbij valt te denken aan het verwijderen van ongebruikte softwarepakketten of het uitschakelen van diensten (daemons) die niet gebruikt worden. Het principe is effectief: datgene wat niet aanwezig is kan ook geen zwakheden hebben.
Toevoegen
Soms komt juist het installeren en activeren van een maatregel de beveiliging ten goede. Denk aan het toevoegen van een virusscanner. Bedenk wel dat soms de maatregel zelf ook juist een zwakheid kan introduceren. Van schijnveiligheid tot daadwerkelijke softwarefouten in de toegevoegde component.
Kies bij voorkeur de minimale installatie
Toepassen
Het laatste principe is het toepassen van een maatregel. Denk hierbij aan het optimaliseren van configuratiebestanden, het aanpassen van bestandsrechten of het optimaliseren van een firewall.
Waar te beginnen? Bij de installatie!
Het toepassen van beveiliging op Linux-systemen doen we meestal pas achteraf. Dat is spijtig, want juist tijdens de installatie hebben we al de eerste mogelijkheden: keuze van softwarepakketten, firewall, versleuteling van de dataopslag. Laten we eens kijken naar enkele van deze maatregelen. Ook hier is het verstandig om het risicoprofiel van ieder systeem in gedachten te houden. Installeer allereerst de maatregelen die goed bij het doel van het systeem passen en sla niet te ver door.
Versleuteling van de harde schijf en haar gegevens
Minimale installatie
De meeste Linux-distributies hebben tijdens de installatie de mogelijkheid om een zogeheten ‘minimal’ installatie te doen. Dit is overduidelijk het principe van verminderen: installeer alleen wat je echt nodig hebt. Vaak is dit een mooie basis voor servers. Gebruik je Linux als werkstation met grafische interface, dan is er vaak een ‘desktop’-optie. Deze bevat uiteraard meer dan ‘minimal’.
Firewall
De firewall is de poortwachter van het inkomende en uitgaande netwerkverkeer. Het is een maatregel die het verkeer zoveel mogelijk probeert te beperken tot het noodzakelijke. Vooral bij servers wordt een firewall gebruikt om het inkomende verkeer te beperken. Servers draaien meestal SSH ten behoeve van beheer op afstand. Door middel van de firewall kan dit verkeer beperkt worden tot alleen de IP-adressen van het kantoor of thuisverbinding. Het scheelt op zijn minst een hoop foutieve inlogpogingen door kwaadaardige scripts die actief op het internet zijn.
Gebruik je een laptop die regelmatig op andere netwerken te gast is? Ook dan is het aan te raden om door middel van een firewall te beperken welke diensten er op je apparaat benaderd kunnen worden. Je weet immers nooit wie te vertrouwen is op andermans netwerk.
Versleuteling van dataopslag
Tijdens de installatie is er de optie om een schijf te selecteren. Afhankelijk van de Linux-distributie, kan er ook meteen versleuteling (encryption) worden gekozen door middel van een wachtwoord. Met deze optie kan alleen degene met het wachtwoord de harde schijf ontgrendelen. Wordt het systeem gestolen, dan is de kans dat de gegevens in verkeerde handen vallen dus al een stuk kleiner.
Gebruik een wachtwoord met voldoende lengte en diversiteit
Sterke wachtwoorden
Een wachtwoord geeft toegang tot de gebruikers op het systeem en daarmee de bijbehorende data. Kies daarom veilige wachtwoorden. Dat wil zeggen, wachtwoorden die lang genoeg zijn en voldoende diversiteit kennen qua karakters (hoofdletters, cijfers, andere tekens). Een goede minimale lengte ligt rond de 12 karakters. Gebruik bij voorkeur geen enkele woorden, maar combineer ze bijvoorbeeld tot een zin. Zo is “DitIsEenW@chtw00rd” door de lengte al een stuk veiliger dan alleen “W@chtw00rd”.
De volgende stappen
Ook bestaande systemen kunnen we natuurlijk beter beveiligen. Gelukkig hebben de meeste Linux-distributies hiervoor zelf de nodige tips. Soms is dit in de vorm van uitgebreide documentatie, een wiki of een zogeheten ‘hardening guide’. Een nadeel is dat zowel het leeswerk en de implementatie overweldigd kunnen zijn. Ook kost iedere beveiligingsmaatregel die we implementeren tijd en kan invloed op het gebruik van het systeem hebben. Zo kan een systeem langzamer worden of moeten we complexere wachtwoorden gebruiken.
Om toch de gewenste maatregelen te nemen per systeem, dienen we het werk op te delen in kleinere stappen. Iedere stap voeren we pas door nadat we een beter begrip hebben van het risico, zodat we alleen relevante maatregelen nemen.
Ook voor de gebruikeraccounts is een lang wachtwoord wenselijk
Gebruik van software en tools
Naast de vele documentatie op internet, zijn er uiteraard ook tools die kunnen helpen met beveiliging. Iedere tool heeft haar eigen focus en werkwijze. Zo kan Nmap gebruikt worden om andere machines te scannen en te bepalen welke netwerkpoorten geopend zijn. UFW helpt Ubuntu-gebruikers juist weer met het sluiten van deze netwerkpoorten. Gebruikers van de CentOS-distributie zullen daar vermoedelijk FirewallD voor gebruiken. Dit is slechts een kleine greep uit de vele tools beschikbaar.
Om de juiste tools te vinden, kan de lokale package manager gebruikt worden. Zoek op termen zoals ‘security’, ‘virus’ of ‘firewall’. Test nieuwe software bij voorkeur in een virtuele machine, zodat je eigen systeem schoon blijft (het principe van ‘verminderen’). Uiteraard is het gebruik van een populaire zoekmachine ook een goede manier om meer tools te vinden. Een bijgewerkte lijst (top 100) van eigen hand is te vinden op https://linuxsecurity.expert/security-tools/top-100/
Dit was slechts de beveiliging van Linux in vogelvlucht. Wil je meer lezen over dit onderwerp en aanverwante zaken, laat het weten aan de redactie. Voor nu een veilig(er) Linux-systeem gewenst.
|
Over de auteur
Michael Boelen is oprichter van beveiligingsbedrijf CISOfy en specialiseert zich in de beveiliging van Linux- en Unix-systemen. Hij deelt zijn kennis in de vorm van tools (rkhunter, Lynis) en schrijft artikelen over het onderwerp op linux-audit.com. Meer over Michael is te lezen op zijn persoonlijke website michaelboelen.com.