Verbonden met het internet of met een groot lokaal netwerk, overal loopt je PC gevaar om besmet te raken met een virus of ingebroken te worden door onbevoegden. Soms komt het initiatief van de gebruiker doordat deze een geïnfecteerd bestand download en opstart, maar het initiatief kan natuurlijk ook door een geïnfecteerde website of lek netwerk protocol komen. Of misschien wel door iemand die de oncontroleerbare neiging heeft om andermans eigendommen te betreden.
Een infectie is niet het enige gevaar dat je als gebruiker loopt wanneer je verbonden bent met een netwerk. Ook kan een iets te nieuwsgierige medestudent of gewoon een ordinaire oplichter jouw PC tot doelwit hebben gekozen om je bestanden of privé gegevens te stelen.
Hoe zorg je nu dat je PC redelijkerwijs tegen deze bedreigingen beschermd is? Natuurlijk kun je je PC helemaal dicht timmeren zodat er niemand meer in of uit kan. Van je PC een fort maken is allereerst al niet echt gemakkelijk, het vereist de installatie en configuratie van een aantal ingewikkelde pakketten en tevens een redelijk begrip van hoe netwerken werken en hoe het besturingssysteem waar je mee werkt in elkaar zit. Er is geen enkel besturingssysteem dat hier een uitzondering op vormt. Overigens is het omtoveren van je PC tot een waar fort niet de garantie dat een inbreker of virus tegen gehouden wordt want bijna elke beveiliging kan gekraakt worden. Als de inbreker maar genoeg tijd heeft zal het uiteindelijk lukken.
Er is helaas geen enkele manier om voor 100% veilig te zijn. De enige manier om je computer veilig te maken is om hem uit te zetten, de verbinding met internet te verbreken en hem in een afgesloten kluis te zetten. Veiligheid en gebruikersgemak zijn soms tegenstrijdige eisen. Een PC, die nauwelijks in- en uitgaand verkeer toestaat, is waarschijnlijk niet een systeem waar je makkelijk en lekker op kunt werken. De gebruiker moet geen gevangene in zijn eigen gevangenis worden.
Redelijkerwijs: je beschermen tegen de meest voorkomende bedreigingen zonder dat dit ten koste gaat van de efficiëntie van het systeem.
Veiligheid is niet iets wat je in een winkel kan kopen, het is een bezigheid die je actief uit moet voeren. Veiligheid verkrijg je niet door wat programma's te installeren en relaxt achterover te leunen. Beveiliging is een proces of aktiviteit waar je continu mee bezig moet zijn. Een goede beveiliging bestaat uit meerdere lagen.
Het goede nieuws: Ubuntu is standaard al behoorlijk veilig. Zo is het root account standaard uitgeschakeld. Root taken uitvoeren kan natuurlijk wel, doe dit met sudo (voor programma's die niet grafisch en dus alleen voor de terminal zijn) of gksudo (voor programma's die een grafische gebruikersinterface hebben).
Een firewall, virusscanner en programma's om overbodige troep op te ruimen heb je niet nodig als je Ubuntu gebruikt. Alle poorten die je niet gebruikt zitten potdicht. Er zijn geen virussen bekend die in Ubuntu hun schadelijke werk kunnen doen. Overbodige bestanden heb je geen last van op Ubuntu.
Heb je een webserver, deel je bestanden met andere computers of ben je gewoon paranoide, dan kunnen een firewall en virusscanner de juiste bescherming bieden.
Met een firewall als Firestarter, wordt Ubuntu een stukje veiliger, omdat een hacker het idee krijgt dat het IP adres dat jij van je internet provider hebt gekregen niet in gebruik is. Firestarter doet net of er niemand thuis is. Met een virus scanner zoals bijvoorbeeld Avast of Norman kun je er ook nog eens voor zorgen dat de mailtjes die je naar je vrienden stuurt die Windows gebruiken, zo goed als virus vrij zijn. Meer maatregelen wat betreft veiligheid zijn in feite niet nodig. Uiteraard zijn er altijd mensen die vinden dat het allemaal nog veiliger kan en die gebruiken AppArmor. Dit zijn echter maatregelen die er voor zorgen dat de PC een fort wordt, en zoals eerder in dit artikel staat, is het dan nog maar de vraag of een dergelijk systeem voor algemeen dagelijks gebruik wel geschikt is, of dat je als gebruiker zelf gijzelaar wordt van je eigen beveiliging. Er is ook zoiets als overdrijven...
Hier komt de inhoudsopgave
Dit advies is redelijk algemeen, en geldt voor bijna alle besturingssystemen. Deze simpele stappen vormen een solide basis en zijn over het algemeen makkelijk en direct uit te voeren.
Stel het gebruik van complexe wachtwoorden verplicht Wikipedia over wachtwoorden (NL) Wikipedia (Engels)
Schrijf je wachtwoorden nooit op, als dat toch moet bewaar ze dan op een veilige plek (dus niet op een post-it aan je monitor)
Beperk de toegang met root (administrator) rechten. (Niet zomaar inloggen als root, of programma's uitvoeren als root). In Ubuntu is standaard de root gebruiker geblokkeerd en wordt er gebruik gemaakt van sudo.
Overweeg om een gebruiker aan te maken voor dagelijks gebruik zonder sudo-rechten.
Fysieke toegang. Zodra iemand bij of in je computerkast kan komen, is het mogelijk om toegang te krijgen als root.
Installeer geen software van onbetrouwbare afkomst. (Zie ook "social engineering" verder in dit artikel).
Voeg niet zomaar nieuwe pakketbronnen toe.
Hieronder vallen ook scripts die /etc/apt/sources.list aanpassen.
De wil om altijd de "latest & greatest" software te draaien kan nadelig zijn voor de veiligheid van je systeem.
Voer ook geen commando's of code uit als je niet weet hoe betrouwbaar de bron is. Als je niet weet wat een commando precies doet, zoek dat dan uit door bijv. te zoeken op Google.
Hou je systeem up-to-date. Updates, en in het bijzonder veiligheidsupdates lossen veel problemen en lekken op.
Als je een server gebruikt, is het je eigen verantwoordelijkheid om te leren hoe je die veilig houdt.
Meer informatie is hier te vinden.
Social engineering is een techniek waarbij een computerkraker een aanval op computersystemen tracht te ondernemen door de zwakste schakel in de computerbeveiliging, namelijk de mens, te kraken. De aanval is erop gericht om vertrouwelijke of geheime informatie los te krijgen, waarmee de hacker dichter bij het aan te vallen object kan komen. De beroemdste kraker die van deze techniek gebruik maakte is Kevin Mitnick. Hij heeft zijn ervaringen verwoord in het boek The Art of Deception.
Wikipedia - Social Engineering
Zoals al gezegd, de beveiliging begint, eindigt, valt en staat bij de gebruiker. Als je willens en wetens gebruik maakt van niet vertrouwde bronnen, installatiepakketten download van niet vertrouwde websites en installeert of websites bezoekt met "aparte" inhoud, dan loop je grote kans dat je PC slachtoffer wordt van malafide praktijken.
Tegenwoordig wordt er in de nieuwste browsers en mail programma's (Firefox en Thunderbird bijvoorbeeld) gecontroleerd of er geen malafide/neppe websites of mailtjes aan de gebruiker getoond wordt. Jammer genoeg is recentelijk gebleken dat kwaadwillende mensen dit soort systemen weet te omzeilen en is dus de enige beveiliging die je hebt tegen online phishing of pharming je eigen gezonde verstand. Wanneer iets niet helemaal lijkt te kloppen, dan klopt het waarschijnlijk ook niet. Want hoewel hackers vroeger er op gericht waren om systemen te vernietigen, data te verminken of te vervormen of plat te leggen, is het nu de trend dat deze data gestolen meer waard is dan vernietigd. Dit is platform-onafhankelijk want je bankgegevens hebben logischerwijs niets met Linux, Windows of Mac te maken. Wanneer die gegevens op straat liggen kan iemand zonder moeite bijvoorbeeld goederen bestellen met je creditcard zonder dat je daar weet van hebt.
Goed opletten en verdachte websites of e-mailtjes vermijden en eventueel zelfs rapporteren is dan de enige optie die je hebt. Daar zijn geen applicaties voor te installeren.
Voor de mensen die met Windows gewerkt hebben, zijn virusscanners en firewalls bekende termen. Omdat Linux anders werkt zijn deze minder belangrijk. De reden dat ze hier besproken worden, is omdat er veel vragen over zijn.
Door de opkomst van Linux proberen veel antivirusbedrijven een nieuwe markt aan te boren. Veel nieuwe Linuxgebruikers denken door de marketingpropaganda van deze bedrijven ook daadwerkelijk een antiviruspakket nodig te hebben. Het tegendeel is echter waar. In tegenstelling tot andere besturingssystemen is het schrijven van een doeltreffend virus voor Linux, vrijwel onmogelijk. Hoe komt dit, zul je jezelf misschien afvragen. Ik zal proberen om uit te leggen hoe het precies zit.
Linuxcomputers zijn net zo goed doelwit als computers die een ander besturingssysteem gebruiken, veel grote (en dus waardevolle) internetsite's lopen op Linux dus is er geen gebrek aan motivatie om Linux te kraken.
Sommige mensen suggereren dat de Linuxgemeenschap zelfingenomen is of achterloopt als het om virussen of andere veiligheidskwesties gaat. Deze suggestie is niet waar. De ontwikkelaars van Linux hebben virussen niet genegeerd; het systeem is zodanig opgebouwd dat het goed bestand is tegen virussen en omdat de code open is zijn er letterlijk duizenden mensen die de code controleren op fouten.
Virusscanners werken in bijna alle gevallen "reactief", dat wil zeggen dat ze alleen bescherming bieden tegen virussen die al bekend zijn bij de makers van de scanner. Anti-virusprogramma's kunnen alleen bescherming bieden tegen een nieuw Linux virus NADAT dat virus gemaakt is, niet ervoor. Belangrijker nog: bescherming tegen het virus zal bestaan uit het repareren van het lek in de software. Deze reparaties gebeuren door middel van veiligheidsupdates (die vaker uitkomen in Linux dan in Windows).
Om een voorbeeld te geven van wat er moet gebeuren om malware te installeren op een Linux computer, kijk je hier (Engels).
Dit is grappig bedoeld, maar er zit wel een kern van waarheid in. Het is moeilijk om een virus te installeren op een Linux computer, maar het is zeker niet onmogelijk. Het grootste gevaar zit in onbetrouwbare pakketbronnen en onveilige code die een (onwetende) beheerder uitvoert. Op dit moment zijn er geen Linuxvirussen van betekenis "in het wild".
Het advies is dan ook om geen virusscanner te gebruiken als je Ubuntu draait op je computer. Waarom?
Onder Linux wordt de uitvoerbaarheid van een bestand niet bepaald door een extensie (bijvoorbeeld .exe) maar door rechten die op dit bestand zitten. Elk nieuw aangemaakt bestand is onder Linux niet uitvoerbaar en de gebruiker zal zelf eerst actie moeten ondernemen om het aangemaakte bestand uitvoerbaar te maken.
Onder Linux heeft een normale gebruiker maar zeer beperkte rechten. Zo kan een normale gebruiker geen essentiële systeemopdrachten uitvoeren en is de werkomgeving van deze gebruiker eigenlijk beperkt tot zijn eigen home map.
Elke Linuxgebruiker richt zijn systeem naar eigen smaak in. Door de verscheidenheid aan applicaties en de verschillende kernelversies is het vrijwel onmogelijk een exploit te schrijven waarvan jouw systeem het slachtoffer zou kunnen worden.
Er wordt voornamelijk gescand op Windows virussen. Die virussen werken niet in Linux, zelfs niet in Wine. Engelse link
Er komen veel fout-positieve meldingen voor. Wikipedia - fout-positief en fout-negatief
Het isoleren of "in quarantaine" zetten van besmette bestanden werkt slecht.
Er zijn momenteel geen actieve Linux virussen bekend.
Wanneer heb je wel een anti-virus programma onder Linux nodig?
Een anti-virus programma wordt veelal gebruikt op Linux servers die in verbinding staan met Windows clients. Denk hierbij aan mail-servers of file-servers. Hierbij dient het anti-virus programma om de Windows-clients te beschermen. Dit maakt het gebruik van een virusscanner op de Windows computer echter niet overbodig.
Er is een grote keuze aan virusscanners voor Ubuntu beschikbaar:
Een firewall is een extra laag in de beveiliging om ongewenst netwerkverkeer tegen te houden en eventueel misbruik als gevolg van een foute instelling te voorkomen. Een ander doel kan zijn dat de netwerkbeheerder bepaalde services onbereikbaar maakt voor de gebruikers. Het is bijvoorbeeld mogelijk dat gebruikers geen mogelijkheid mogen hebben om de website www.voorbeeld.nl te bekijken of om gebruik te maken van peer-to-peer (p2p) programma's.
Standaard wordt Ubuntu geleverd met een firewall, iptables, maar deze is standaard niet ingesteld. Dit is logisch want op een standaard Ubuntu installatie zijn geen open poorten te bekennen. Een firewall is dus overbodig. Echter zal het installeren van "server" programma's er voor zorgen dat er wel poorten open gaan staan.Als je bijvoorbeeld een FTP server installeert en deze als service op de achtergrond laat draaien en op bijvoorbeeld poort 21 laat luisteren, dan zal deze poort niet gesloten zijn. Voor een FTP server is dat best prettig, maar wanneer je de smbclient en/of smbfs en nfs installeert, dan heb je liever niet dat iedereen die aan hetzelfde netwerk verbonden is als jij, gebruik van die service kan maken. Zonder dat je iptables configureert, zal iedereen verbonden met hetzelfde netwerk als jij, dus ook iedereen op het internet als je verbonden bent met het internet, op je gedeelde mappen kunnen kijken en printen met je gedeelde printer.
Het probleem van iptables is dat het niet gebruiksvriendelijk is voor nieuwe of onervaren gebruikers. Gelukkig zijn er meerdere grafische toepassingen beschikbaar om de firewall in te stellen.
Firestarter is één van de populairste grafische programma's hiervoor.
Standaard Firestarter instellingen
Nieuwe inkomende verbindingen vanaf het internet naar de firewall of client-systemen worden geblokkeerd.
De firewall host kan nieuwe verbindingen maken.
Alle client-systemen kunnen geen verbinding maken met de firewall-host
Verbindingen vanaf het internet naar een client-computer als antwoord op een request vanaf de client of firewall zijn toegelaten.
Deze instellingen maken normaal gebruik van het internet zoals browsen en email mogelijk. Pogingen om verbinding te maken vanaf het internet met de client computer worden tegengehouden.
Het configureren van Firestarter met de GUI is vrij eenvoudig en wijst eigenlijk vanzelf. Mocht je toch meer informatie over Firestarter willen, dan is de site van Firestarter zelf een goed punt om te beginnen: http://www.fs-security.com/
Uiteraard kun je op http://forum.ubuntu-nl.org/ en op het Engelstalige forum http://ubuntuforums.org/ terecht met vragen en tips over het gebruik van Firestarter.
Guarddog is een alternatief voor KDE gebruikers.
Informatie over iptables:
De eerste laag van de beveiliging bestaat uit toegangsrechten. Deze rechten (permissions in het Engels) worden gebruikt om aan te geven tot welke bestanden een gebruiker toegang heeft. Hiermee worden zowel systeembestanden als gebruikersbestanden mee beschermd.
Basis bestandsrechten:
Encryptie is een extra laag in de beveiliging.
Een beperking van deze methode is dat het alleen bescherming biedt wanneer een versleutelde partitie gemount (aangekoppeld) moet worden. Zodra de partitie gemount is, is deze toegankelijk en te kraken net als ieder andere partitie.
Een rootkit is een set softwaretools die vaak worden gebruikt door een derde partij (meestal een hacker) na toegang te hebben verkregen tot een computersysteem. De rootkit nestelt zich diep in het besturingssysteem, zodat het mogelijk is dat het besturingssysteem instabiel wordt. De rootkit is bijna niet te verwijderen zonder de functie van het besturingssysteem te beschadigen. Zie ook Wikipedia
rkhunter
chkrootkit
Volgens de beschrijving van chrootkit wil het niet zeggen dat wanneer je niets gevonden hebt, dat dit betekent dat je PC veilig is. Je zou er nog aanvullende tests voor moeten doen om dit zeker te weten. Houdt er dus rekening mee dat het resultaat uit de scanner geen garantie is. Dat geldt natuurlijk altijd voor een beveiligingsapplicatie. Deze spelen in op trends en op gevaren die bekend zijn. Enkelen spelen ook in op eventuele toekomstige gevaren maar ongeacht het aantal veiligsheids applicaties dat je geïnstalleerd hebt, er is altijd een kans dat je de prooi wordt van een virus, een hacker of cracker, of van malafide praktijken zoals een vervalste website.
Met de volgende programma's kan je controleren op gebeurtenissen die de betrouwbaarheid, integriteit en beschikbaarheid van je computer kunnen beïnvloeden. Dit kunnen onder anderen aanvallen van hackers zijn. Deze programma's voorkomen niet dat iemand in kan breken. Als een mogelijke aanval gesignaleerd wordt, wordt dat vastgelegd in de logbestanden.
De twee bekendste pakketten zijn OSSEC HIDS en Snort.
Handleidingen (Engels):
http://www.howtoforge.com/intrusion_detection_with_ossec_hids
http://searchsecurity.techtarget.com/general/0,295582,sid14_gci1083823,00.html
NB: Door het toevoegen van programma's zoals Snort die het netwerkverkeer analyseren op patronen die kenmerkend zijn voor aanvallen, is het mogelijk dat er extra kwetsbaarheden ontstaan. Er zijn gevallen bekend dat aanvallers via een lek in Snort toegang gekregen hebben tot een systeem.
Onderdeel van het installeren van een server is leren hoe je de server beveiligt. Veel voorkomende servers zijn o.a. NFS, Samba, FTP, SSH, VNC, RDP en HTTP (webserver). Als de handleiding die je volgt niet ingaat op het veiligheidsgedeelte, zoek dan maar een nieuwe handleiding die daar wel over gaat.
NB: Een desktop of thuiscomputer die gebruikt wordt om bestanden te delen of als webserver ingezet wordt moet ook als een server beschouwd worden.
Vragen die je je vantevoren moet stellen:
Welke poorten worden geopend door de applicatie?
Welke services worden er aangeboden?
Wie is er in staat om verbinding te maken? (filteren op IP adressen of via een wachtwoord)
Welke rechten krijgt iemand die verbinding maakt met een service? (draait de server onder een gelimiteerd gebruikersaccount of als root? Wat kan de gelimiteerde gebruiker aan schade toebrengen in het ergste geval?)
Geeft de service extra informatie aan een mogelijke hacker? (worden wachtwoorden onversleuteld verzonden? Is er toegang tot gegevens over gebruikers, ip adressen, netwerkinstellingen en andere interessante informatie?)
Wat is de geschiedenis of reputatie van het programma? Zijn er veel kwetsbaarheden gevonden in het verleden? Zijn er veel veiligheidsupdates geweest?
Voorbeelden:
SSH
VNC
Apache
Hardened kernels zijn kernels met een aantal aanpassingen voor meer beveiligingsmogelijkheden. Een aantal mogelijkheden:
Willekeurige toewijzing van poorten, geheugenlocaties, process ID's en andere informatie die makkelijk te voorspellen is. Hiermee worden veel voorkomende aanvallen afgeweerd.
Identificeren van en voorkomen dat buffer overflow aanvallen het systeem kunnen compromitteren. http://nl.wikipedia.org/wiki/Bufferoverloop
Verbergen van informatie die normaal gesproken door iedereen te bekijken is, zoals alle lopende programma's, systeembelasting, informatie over de CPU, IP adressen, etc.
Extra grenzen stellen aan wat normale gebruikers mogen.
Extra mogelijkheden op het gebied van toegangs- en bestandsrechten.
Deze technieken gecombineerd leveren een effectieve bescherming op tegen nog onbekende aanvallen. In veel gevallen is de computer niet kwetsbaar, of is het effect van de aanval veel kleiner.
Een veel voorkomende patch om de kernel hardened te maken is "grsecurity2" http://grsecurity.org/ . Deze doet alles wat op deze lijst staat. Het is dan wel noodzakelijk om zelf de kernel te patchen en compileren.
Door nauwkeuriger te bepalen wat de rechten van verschillende gebruikers en services zijn is het mogelijk dat een succesvolle aanval op één service niet genoeg is om schade te doen aan de rest van het systeem. SELinux en AppArmor zorgen voor de extra mogelijkheden qua rechten. AppArmor is beschikbaar vanaf Feisty Fawn (versie 7.04).
De Nederlandse handleiding voor AppArmor
Het nadeel van deze aanpassingen aan het systeem is dat ze veel meer aandacht en werk vereisen van de beheerder. Proefondervindelijk zal de balans gevonden moeten worden tussen functionaliteit en veiligheid. Door te strenge veiligheidsregels zullen verschillende programma's niet meer werken, en te zwakke veiligheidsregels leveren een minder veilig systeem op.
Het is belangrijk om te weten hoe je de logboeken van je systeem kan lezen, en dat je weet wat er in staat bij een normaal werkend systeem. Als je moet kennismaken met de logbestanden van je systeem als je een probleem vermoedt, dan is dat te laat.
NB: Iemand met root rechten kan logbestanden aanpassen. Om deze aanpassingen beter te kunnen herkennen, is het belangrijk om te weten wat normaal gedrag is.
https://help.ubuntu.com/community/LinuxLogFiles
Er is een pakket genaamd "logwatch". Dit pakket stuurt iedere nacht de wijzigingen in de logbestanden per mail aan de beheerder.
Wat te doen als je denkt dat je systeem gehackt is:
Schakel de computer uit.
Verbreek de internetverbinding.
Start op van een live cd en maak een image van de harde schijf. (Om later te analyseren)
Installeer je systeem opnieuw. Helaas is een gecompromitteerd systeem niet meer te vertrouwen.
Installeer het nieuwe systeem zonder internetverbinding, gebruik een sterker wachtwoord, en doe research om herhaling te voorkomen.
Deze programma's zijn te vinden in de pakketbronnen van Ubuntu.
Nagios is een populair open source computersysteem en netwerksurveillance-applicatie. Het houdt servers en services in de gaten die je specificeert en stuurt berichten als er dingen stuk gaan en wanneer services of servers die stuk waren weer beter worden.
Zie http://www.nagios.org/about/
Geeft het netwerkgebruik weer, op dezelfde manier als het commando top doet voor programma's
Een packetsniffer die draait op kabel/dsl routers. Verzamelt gegevens over het netwerkverkeer. Zie http://dmr.ath.cx/net/darkstat/
http://www.itsecurity.com/features/ubuntu-secure-install-resource/
http://www.linuxforums.org/security/locking_down_ubuntu.html
http://www.linuxquestions.org/questions/showthread.php?t=45261
Dit artikel is een combinatie van een vertaling van http://ubuntuforums.org/showthread.php?t=510812 en het eerdere wiki artikel geschreven door onder andere Azalin, Bartek en Hello11.
Voor een gedeelte van het stuk over virussen is ook gebruik gemaakt van het werk van Arvid, ubuntu-forums.nl.
Vertaling, combineren en bewerking: Johanvd
Waarschuwing: Dit artikel is niet geschreven door een beveiligingsexpert, het is bedoeld om een overzicht te geven van de beveiliging en veiligheid van Ubuntu. Het is geen allesomvattende handleiding waarin alle aspecten van de beveiligingsmaatregelen worden besproken.
Ubuntero van de maand - Juli 2008 - Stani
01-07-2008
Ubuntero van de maand - Juni 2008 - SeySayux
01-06-2008
Ubuntero van de maand - Mei 2008 - Laacque
01-05-2008
Ooievaar brengt “Ruige Reiger”!
24-04-2008
Hardy Release Parties 2008
15-04-2008
Ubuntu demonstratie 19 april a.s. in Apeldoorn
10-04-2008
Ubuntero van de maand - April 2008 - Eendje
02-04-2008
Onverwachte downtime
01-04-2008
Nu ook chatten via de ubuntu NL website
30-03-2008
Ubuntero van de maand - Maart 2008 - profoX
01-03-2008
Lees het nieuws via RSS