Beveiliging en veiligheid in Ubuntu
Geschikt voor: | |
Versie: | 14.04 LTS |
Inleiding
Verbonden met het internet of een lokaal netwerk, overal loopt uw PC gevaar om besmet te raken met malware of dat onbevoegden inbreken. Soms komt het initiatief van de gebruiker doordat deze een geïnfecteerd bestand download en opstart, maar het initiatief kan ook door een geïnfecteerde website of een veiligheidslek in een netwerkprotocol komen.
Een infectie is niet het enige gevaar dat u als gebruiker loopt wanneer u verbonden bent met een netwerk. Ook kan een iets te nieuwsgierige medegebruiker of gewoon een ordinaire oplichter uw PC tot doelwit hebben gekozen om uw bestanden of privé gegevens te stelen.
Hoe zorgt u nu dat uw PC redelijkerwijs tegen deze bedreigingen beschermd is?
Er is helaas geen enkele manier om voor 100% veilig te zijn. Daarnaast zijn veiligheid en gebruikersgemak soms tegenstrijdige eisen. Een PC, die nauwelijks in- en uitgaand verkeer toestaat, is waarschijnlijk niet een systeem waar u makkelijk en lekker op kunt werken. De gebruiker moet geen gevangene in zijn eigen gevangenis worden.
Veiligheid betekent redelijkerwijs: bescherming tegen de meest voorkomende bedreigingen zonder dat dit ten koste gaat van de efficiëntie van het systeem.
Samenvatting
Veiligheid verkrijgt u niet door wat programma's te installeren en achterover te leunen. Goede beveiliging vraagt doorlopend aandacht.
Ubuntu is standaard al behoorlijk veilig. Zo is het beheer-account standaard uitgeschakeld. Beheertaken uitvoeren kan natuurlijk wel, doe dit met een grafische gebruikersinterface of met sudo in een terminalvenster.
Een firewall of virusscanner zijn normaal gesproken niet nodig als u Ubuntu gebruikt.
Standaard zijn er geen netwerkservices actief, en er zijn geen virussen bekend die in Ubuntu hun schadelijke werk kunnen doen.
Hebt u een webserver of deelt u bestanden met andere computers, dan kan een firewall en/of virusscanner een nuttige toevoeging zijn.
De Ubuntu pakketbronnen bevatten tienduizenden veilige software-pakketten die vrij geïnstalleerd en gebruikt kunnen worden. Bij het gebruik van software uit andere bronnen is de gebruiker zelf verantwoordelijk om te beoordelen of dit betrouwbaar is.
Basisregels
Deze regels zijn redelijk algemeen, en gelden voor bijna alle besturingssystemen. Deze simpele stappen vormen een solide basis en zijn over het algemeen makkelijk en direct uit te voeren.
Gebruik complexe wachtwoorden van minimaal 6 tekens. Wikipedia over wachtwoorden (NL)
- Schrijf uw wachtwoorden niet op, als dat toch moet bewaar ze dan op een veilige plek (dus niet op een post-it aan uw monitor)
Beperk het gebruik van beheerdersrechten. (Niet zomaar inloggen of programma's opstarten als beheerder). In Ubuntu wordt gebruik gemaakt van sudo om beheeropdrachten uit te voeren.
- Fysieke toegang. Zodra iemand bij of in uw computerkast kan komen, is het mogelijk om toegang te krijgen als beheerder.
- Installeer geen software van onbetrouwbare afkomst.
- Voeg niet zomaar nieuwe pakketbronnen toe.
- Voer geen commando's, code of scripts uit als u niet weet hoe betrouwbaar de bron is. Als u niet weet wat een commando precies doet, zoek dat dan uit door bijv. te zoeken op Google.
- Hou uw systeem up-to-date. Updates, en in het bijzonder veiligheidsupdates lossen veel problemen en lekken op.
- Als u een server gebruikt, is het uw eigen verantwoordelijkheid om te leren hoe u die veilig houdt.
Social Engineering
Wikipedia - Social Engineering:
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 cracker dichter bij het aan te vallen object kan komen.
Zoals al gezegd, de beveiliging begint, eindigt, valt en staat bij de gebruiker. Als u willens en wetens gebruik maakt van niet vertrouwde pakketbronnen, installatiepakketten download van niet vertrouwde websites of websites bezoekt met "aparte" inhoud, dan loopt u grote kans dat uw PC slachtoffer wordt van malafide praktijken.
Tegenwoordig wordt er in de nieuwste browsers en mailprogramma's (Firefox en Thunderbird bijvoorbeeld) gecontroleerd of er geen malafide/nep websites of e-mailtjes aan de gebruiker getoond worden. Helaas weten kwaadwillende mensen dit soort systemen soms te omzeilen en is dus de enige beveiliging die u hebt tegen online phishing of pharming uw eigen gezonde verstand. Wanneer iets niet helemaal lijkt te kloppen, dan klopt het waarschijnlijk ook niet. Want hoewel crackers vroeger erop gericht waren om systemen te vernietigen, data te verminken of plat te leggen, is het nu de trend dat deze data gestolen meer waard is dan vernietigd. Dit is platformonafhankelijk want uw bankgegevens hebben logischerwijs niets met Linux, Windows of OS X te maken. Wanneer die gegevens op straat liggen kan iemand zonder moeite bijvoorbeeld goederen bestellen met uw creditcard zonder dat u daar weet van hebt.
Goed opletten en verdachte websites of e-mailtjes vermijden en eventueel zelfs rapporteren is dan de enige optie die u hebt.
Virusscanners en Firewalls
Voor de mensen die met Windows gewerkt hebben, zijn virusscanners en firewalls bekende termen. Omdat Linux anders werkt zijn deze minder belangrijk.
Virussen
Computervirussen of wormen maken gebruik van fouten of veiligheidsgaten in software. Op dit moment zijn er weinig actieve virussen voor Linux bekend. Maar linuxcomputers zijn net zo goed doelwit als computers die een ander besturingssysteem gebruiken, veel grote (en dus waardevolle) internetsite's gebruiken Linux dus is er geen gebrek aan motivatie om malware voor Linux te ontwikkelen.
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 code kunnen 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.
Betere bescherming bestaat vaak uit het herstellen van de fout of repareren van het veiligheidslek in de software door middel van veiligheidsupdates.
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.
Redenen om geen virusscanner te gebruiken zijn:
- Een virusscanner zoekt voornamelijk naar virussen voor het Windows besturingssysteem.
- Virusscanners geven regelmatig een valse melding.
- Het isoleren of onschadelijk maken van het virus werkt slecht.
- Er zijn op dit moment weinig actieve Linux virussen!
Redenen om toch een virusscanner te gebruiken kunnen zijn:
Bij een mail- of bestandsserver voor Windows computers (dit maakt het gebruik van een virusscanner op de Windows computer echter niet overbodig).
- Om bestanden te scannen voordat deze op een Windows computer worden geplaatst bijvoorbeeld via e-mail, een USB stick enz.
Het is niet per definitie onveilig om geen virusscanner te gebruiken als u Ubuntu draait op uw 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 (zie ProgrammabestandUitvoeren)
- Software zal worden gecontroleerd en onderhouden door de eigenaar, beheerder(s) en testers van pakketbronnen. Gebruik dus alleen software uit betrouwbare bron en controleer regelmatig of er veiligheidsupdates zijn.
In de Ubuntu pakketbronnen is de ClamAV virusscanner voor Ubuntu beschikbaar.
Wine
Met behulp van het (optionele) pakket wine zijn programma's te gebruiken die voor Windows zijn gemaakt. Het is niet ondenkbaar dat ook ongewenste software, zoals een virus, ook door wine uitgevoerd kan worden.
Het is daarom van absoluut belang dat wine NOOIT met beheerrechten (sudo wine) wordt gestart. Bij normaal gebruik van wine zal de linux bestandsbeveiliging actief blijven en heeft het wine programma geen schrijfrechten buiten de Persoonlijke map van de gebruiker. Eventuele schade zal hierdoor worden beperkt tot de Persoonlijke map(pen).
Tip: Voor extra veiligheid kan de Desktop integratie in wine worden uitgeschakeld en zal het wine programma alleen toegang hebben tot de verborgen map ~/.wine. Kijk hier voor meer informatie
Firewall
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 netwerk services te bekennen. Een firewall is dan overbodig.
Als u bijvoorbeeld een FTP server installeert en deze als service op de achtergrond laat draaien en op bijvoorbeeld netwerkpoort 21 laat luisteren, dan zal deze poort niet gesloten zijn. Zonder dat u iptables configureert, zal iedereen verbonden met hetzelfde netwerk als u, mogelijk ook iedereen op het internet als u verbonden bent met het internet, deze service kunnen gebruiken.
Het probleem van iptables is dat het niet gebruiksvriendelijk is voor nieuwe of onervaren gebruikers. Gelukkig zijn er meerdere hulpmiddelen beschikbaar om de firewall in te stellen.
Firestarter en ufw zijn de populairste grafische programma's hiervoor. Voor ufw is ook een grafische interface beschikbaar: Gufw.
Site van Firestarter (Engelstalig)
Handleiding voor Firestarter (Engelstalig)
Handleiding voor ufw (Engelstalig)
Gufw, of ufw met een grafisch jasje (Engelstalig)
Guarddog is een alternatief voor KDE gebruikers.
Site van Guarddog (Engelstalig)
Handleiding voor Guarddog (Engelstalig)
Informatie over iptables:
https://help.ubuntu.com/community/IptablesHowTo (Engelstalig)
http://iptables-tutorial.frozentux.net/iptables-tutorial.html (Engelstalig)
Andere veiligheidsmaatregelen
Rechten en encryptie (versleuteling)
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 beschermd.
Basis bestandsrechten:
Encryptie is een extra laag in de beveiliging. De gegevens worden versleuteld opgeslagen en zijn waardeloos zonder de sleutel. Het biedt goede bescherming tegen verlies of diefstal van gegevendragers. Let wel op dat wanneer een versleutelde partitie gemount (aangekoppeld) is, is deze toegankelijk is net als ieder andere partitie.
Vanaf Ubuntu versie 8.10 (Intrepid Ibex) is er de mogelijkheid om iedere gebruiker een eigen persoonlijke versleutelde map te geven met de naam 'Private'. Kijk hier voor meer informatie over een 'Private' map. Ubuntu gebruikt eCryptfs voor deze versleuteling.
Vanaf Ubuntu versie 9.10 (Karmic Koala) kan in de installatieprocedure worden aangegeven dat de hele map met persoonlijke gegevens met eCryptfs versleuteld opgeslagen moet worden.
https://help.ubuntu.com/community/EncryptedFilesystem (Engelstalig)
https://help.ubuntu.com/community/EncryptedFilesystemHowto (Engelstalig)
http://www.howtoforge.com/truecrypt_data_encryption (Engelstalig)
Rootkits
Een rootkit is een set softwaretools die vaak worden gebruikt door een derde partij (meestal een cracker) 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
Detecteren van een rootkit
chkrootkit
rkhunter
Beide pakketten zijn beschikbaar in de Ubuntu pakketbronnen. Wanneer geen rootkit wordt gevonden, betekent dit niet dat uw PC veilig is. U 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.
Inbraakdetectie
Met de volgende programma's kunt u controleren op gebeurtenissen die de betrouwbaarheid, integriteit en beschikbaarheid van uw computer kunnen beïnvloeden. Dit kunnen onder anderen aanvallen van crackers zijn. Deze programma's voorkomen niet dat iemand in kan breken. Als een mogelijke aanval gesignaleerd wordt, wordt dat vastgelegd in de logbestanden.
De Ubuntu pakketbronnen bevat hiervoor het pakket Snort.
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.
Veilige servers
Onderdeel van het installeren van een server is leren hoe u de server beveiligt. Veel voorkomende servers zijn o.a. NFS, Samba, FTP, SSH, VNC, RDP en HTTP (webserver).
NB: Een desktop of thuiscomputer die gebruikt wordt om bestanden te delen (via internet) of als (internet) webserver ingezet wordt moet ook als een server beschouwd worden!
Vragen die u zichzelf van tevoren moet stellen:
- Welke poorten worden geopend door de applicatie?
- Welke services worden er aangeboden?
- Wie is er in staat om verbinding te maken? (beveiliging op IP adressen, via een wachtwoord, certificaat of sleutel)
- Welke rechten krijgt iemand die verbinding maakt met een service? (draait de server onder een gelimiteerd gebruikersaccount? Wat kan de gelimiteerde gebruiker aan schade toebrengen in het ergste geval?)
- Geeft de service extra informatie aan een mogelijke cracker? (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
https://help.ubuntu.com/community/AdvancedOpenSSH (Engelstalig)
http://doc.gwos.org/index.php/SecureSSH (Engelstalig)
VNC
https://help.ubuntu.com/community/VNCOverSSH (Engelstalig)
Apache
"Hardened" kernels en Apparmor
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 moeten 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 in alle recente versies van Ubuntu.
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.
Logboekbestanden
Het is belangrijk om te weten hoe u de logboeken van uw systeem kan lezen, en dat u weet wat er in staat bij een normaal werkend systeem. Als u moet kennismaken met de logbestanden van uw systeem als u 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 (Engelstalig)
Er is een pakket genaamd "logwatch". Dit pakket stuurt iedere nacht de wijzigingen in de logbestanden per mail aan de beheerder.
Help, ik ben gecrackt!
Wat te doen als u denkt dat uw systeem gecrackt 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 uw 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.
Overige programma's
Deze programma's zijn te vinden in de pakketbronnen van Ubuntu.
Nagios
Nagios is een populair open source computersysteem en netwerksurveillance-applicatie. Het houdt servers en services in de gaten die u 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/
ZenOSS
ntop
Geeft het netwerkgebruik weer, op dezelfde manier als het commando top doet voor programma's
darkstat
Een packetsniffer die draait op kabel/dsl routers. Verzamelt gegevens over het netwerkverkeer. Zie http://dmr.ath.cx/net/darkstat/
Referenties en meer leesvoer
Engelstalig
Nederlandstalig
Waarschuwing: Dit artikel 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.