2015 software & security
F. Vonk versie 4 24-11-2015
inhoudsopgave 1.
inleiding .............................................................................................. - 2 -
2.
software .............................................................................................. - 3 -
3.
gebruikersinterfaces ............................................................................. - 4 -
4.
besturingssystemen .............................................................................. - 6 -
5.
virtualisatie ........................................................................................ - 14 -
6.
schadelijke software ........................................................................... - 17 -
7.
virtueel inbreken ................................................................................ - 24 -
8.
beveiligingssoftware ........................................................................... - 28 -
9.
wat heb je geleerd .............................................................................. - 31 -
Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding – NietCommercieel – GelijkDelen 3.0 Unported licentie Deze module is deels overgenomen uit Hoofdstuk 5 van de informatica methode van Remie Woudt. De afbeelding op het voorblad is verkregen via INFOwrs. Copyright © 2010 INFOwrs Serviços em informatica.
-1-
1. inleiding Binnen de informatica wordt veel inspanning besteed aan het maken van algoritmes (recepten voor computers) om praktische problemen op te lossen. Deze algoritmes vormen een belangrijk onderdeel van de software die we dagelijks via onze computers gebruiken. Met zijn allen voeren we bijvoorbeeld per dag enorm veel zoekopdrachten uit. Een computer snel iets op laten zoeken is een voorbeeld van een algoritme, dat in heel veel software zit. Druk maar eens op de sneltoets CTRL-f en zoek een woord, bijvoorbeeld besturingssysteem, in deze module. Je maakt dan gebruik van het zoekalgoritme in het computerprogramma dat je op dit moment gebruikt om deze module te lezen. Welkom bij de module software. In deze module behandelen we een aantal belangrijke soorten computerprogramma's en hun eigenschappen. Ook laten we zien hoe deze applicaties samenwerken. In deze module kom je opgaves tegen die je moet maken om de lesstof te verwerken. De antwoorden kunnen in de les besproken worden.
opgave Opgaves in blauw moet je maken.
Let op, links in dit document hebben een rode kleur. Veel plezier en succes.
-2-
2. software Er bestaat enorm veel software en de meesten van werken er dagelijks mee. Of je nu een WhatsApp berichtje stuurt, een mailtje typt, iets opzoekt via Google of een game speelt, je gebruikt software. Omdat er zoveel software bestaat wordt deze onderverdeeld in categorieën en subcategorieën. Op het allerhoogste niveau verdelen we software in standaard en maatwerk software. Maatwerk software wordt meestal gebruikt door bedrijven en instellingen en wordt specifiek gemaakt voor een klant. Standaard software wordt gemaakt voor een groter publiek en wordt ontworpen zodat zoveel mogelijk mensen er gebruik van kunnen en willen maken.
opgave 2.1 Zoek zelf op internet drie voorbeelden van standaard software en drie voorbeelden van maatwerk software.
Omdat de meeste mensen met standaard software te maken krijgen zullen we daar op focussen in deze module. Maatwerk software is niet wezenlijk anders, alleen is het doel anders. Als je gaat zoeken naar standaard software categorieën merk je dat er veel verschillende onderverdelingen zijn. Een voorbeeld van een categorisering is te vinden op Softpedia.
-3-
3. gebruikersinterfaces Software wordt benaderd via een zogenaamde interface (intermediair). Deze interface noemen we de gebruikersinterface (User Interface, UI). Hierbij is de gebruiker niet noodzakelijk een mens maar kan ook een ander stuk software zijn. We onderscheiden drie belangrijke types:
grafische gebruikersinterface (Graphical User Interface, GUI): Interface die bedoeld is om gebruikt te worden door een mens via een pointing device zoals een muis. Biedt dingen aan als schermen, pop-ups, menu's, enzovoorts. Kan vaak ook met een toetsenbord bediend worden via sneltoetsen. Op het moment dat je dit op je computer leest maak je gebruik van een GUI, namelijk die ingebouwd is in je besturingssysteem (waarschijnlijk Windows).
Figuur 1: een voorbeeld van een GUI1
console interface: Interface die bedoeld is om gebruikt te worden door een mens. Deze interface kan echter alleen met een toetsenbord bediend worden. Het is een tekstuele interface waarbij je commando's in moet typen en wordt daarom ook wel CLI (Command Line Interface) genoemd.
1
content.gcflearnfree.org/topics/142/understandos_windows.jpg
-4-
Figuur 2: een voorbeeld van een console interface2
API (Application Programming Interface): Interface die bedoeld is om gebruikt te worden door andere software. Drivers bieden bijvoorbeeld een API aan zodat hogere niveau software van de onderliggende hardware gebruik kan maken. Een driver is een laag niveau stuk software dat de hardware van een computersysteem direct aanstuurt. Wordt zowel door externe partijen (bijvoorbeeld drivers voor de nieuwste grafische kaarten) geleverd als meegeleverd met het besturingssysteem. Een driver biedt functionaliteit die hardware details verbergt voor de hoger niveau software.
opgave 3.1 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Een besturingssysteem staat niet alleen ten dienste van de gebruiker maar ook van applicaties. b) Drivers worden gebruikt door het besturingssysteem. c) Een GUI is bedoeld om bediend te worden met een toetsenbord. d) CLI is een andere benaming voor console interface. e) Een API is een interface die aangeboden wordt door software en gebruikt wordt door software.
2
publib.boulder.ibm.com/infocenter/toolsctr/v1r0/topic/uxspi/artwork/cli_commands.jpg
-5-
4. besturingssystemen Elk modern computersysteem heeft een besturingssysteem, in het Engels Operating System of afgekort OS. In de begintijd van de computer leverde een besturingssysteem niet veel meer op dan een knipperend streepje op een zwart scherm, een console interface. Maar tegenwoordig zien we, nadat het computersysteem opgestart is, een scherm met grafische elementen, een GUI. Belangrijke PC besturingssystemen met ieder hun eigen GUI zijn Microsoft Windows, Apple Mac OS X en Linux. Van Linux bestaan meerdere varianten zoals KDE en GNOME.
Figuur 3: Microsoft Windows 7 GUI3
Figuur 4: Apple Mac OS X Panther GUI4
3 4
content.gcflearnfree.org/topics/142/understandos_windows.jpg ic.tweakimg.net/ext/i/1067085840.jpg
-6-
opgave 4.1 Als je Windows 10 wilt kopen, dan zie je vaak dat je kunt kiezen uit de 32 of 64 bits versie. Zoek op en leg in je eigen woorden uit wat er bedoeld wordt met de termen 32 en 64 bits.
Het besturingssysteem is een groep bij elkaar behorende computerprogramma’s die, zoals hiervoor al vermeld, de GUI bepaalt en aanbiedt. Een andere belangrijke taak van het OS is het beheren van de hardware. Hierbij zorgt het besturingssysteem dat de applicaties en services (computerprogramma's die diensten aanbieden aan applicaties) bij de hardware kunnen. Ook bepaalt het OS wanneer een applicatie of service bij de schaarse (scarce) hardware bronnen, zoals het geheugen en de processor, mogen. Ook moet het besturingssysteem zorg dragen voor zaken als beveiliging. Als je bijvoorbeeld met internet verbonden bent moet niet zomaar iemand van buiten jouw computer kunnen benaderen en daar gegevens of informatie vanaf kunnen halen. Maar aan de andere kant is het wel handig als je bepaalde informatie beschikbaar kunt stellen aan anderen.
Figuur 5: KDE 3.0 GUI5
5
www.kde.org/screenshots/images/1152x864/kde300-snapshot2-1152x864.jpg
-7-
Figuur 6: Fedora 11 GNOME GUI6
opgave 4.2 Zoek zelf op internet drie andere voorbeelden van Linux GUI (desktop) varianten.
Tijdens het opstarten van een computersysteem wordt het besturingssysteem in het geheugen geladen. Meestal staat een OS op een harde schijf maar er zijn ook systemen waarbij het vast opgeslagen is in een stuk flashgeheugen. Denk maar eens aan het besturingssysteem van je mobiele telefoon. Ook zijn er besturingssystemen die werken vanaf een USB stick of via een computernetwerk. Dit laatste noemen we meestal een thin client oplossing en er zijn speciale protocollen nodig om dit mogelijk te maken. Hoewel je bijna niet zonder kunt, heb je vaak maar weinig met het besturingssysteem te maken. Want voor het overgrote deel gebruik je applicaties die op het besturingssysteem draaien (runnen). Het enige waarvoor we dan direct gebruik maken van het besturingssysteem is de GUI.
6
static.howtoforge.com/images/compiz_fusion_fedora11_nvidia_geforce_8100/big/3.jpg
-8-
Applicaties maken gebruik van services, drivers en het besturingssysteem via de eerder genoemde Application Programming Interfaces (API). Zo merk je dat je vaak in applicaties dezelfde zaken, zoals pop-ups, knoppen, menu's, bladermogelijkheden enzovoorts, terug ziet. Dat komt omdat verschillende applicaties via dezelfde API gebruik maken van de onderliggende software (softwarecomponenten), zoals services en drivers. Dezelfde API kan echter door verschillende stukken software aangeboden (geimplementeerd) worden. Het is je misschien wel eens opgevallen dat wanneer je een Nederlandstalige Windows versie hebt geïnstalleerd je af en toe toch nog pop-ups krijgt met Engelse tekst erin.
soorten Als we momenteel naar de markt van besturingssystemen kijken zien we eigenlijk maar twee varianten:
de Unix gebaseerde besturingssystemen
de Microsoft gebaseerde besturingssystemen
Je zult misschien denken: "Hoe zit het dan met Apple computers?" Het Apple Mac OS X besturingssysteem is gebaseerd op het Darwin OS en dat is op zijn beurt weer gebaseerd op Unix. Ook Linux is gebaseerd op Unix. Zoals je misschien weet zijn er veel Linux varianten en vele daarvan zijn gratis verkrijgbaar. Zo kennen we FreeBSD, OpenBSD en vele Linux distributies zoals Suse, RedHat, Fedora, Debian en Ubuntu. Op Wikipedia zie je een overzicht van de Unix varianten. Bovenaan begonnen met Unics. Verder kun je op het internet ook overzichten vinden van de geschiedenis van de Apple en IBM/Microsoft besturingssystemen.
opgave 4.3 Zoek en leg uit wat we verstaan onder een distributie van Linux. Noem 3 verschillende Linux distributies die niet in de tekst genoemd zijn.
Dat Linux wat gebruiksvriendelijkheid betreft niet meer onder doet voor Windows hebben we te danken aan de vele GUI varianten die tegenwoordig bestaan voor dit besturingssysteem. De bekendste varianten zijn KDE (Figuur 5) en GNOME (Figuur 6). Ook het installeren van Linux is enorm verbeterd en net zo gemakkelijk als het installeren van een Windows versie. Ook komen er steeds meer softwarepakketten voor Linux beschikbaar.
-9-
de taken Belangrijke taken van het besturingssysteem zijn:
Het opstarten van het systeem na de BIOS.
Het beheren van applicaties en vensters. Hoe zijn applicaties ten opzicht van elkaar geordend op het beeldscherm, welke applicatie heeft focus enzovoorts. Focus geeft aan welke applicatie, op het huidige moment, de invoer van het toetsenbord of muis ontvangt. Er kan dus maar één applicatie de focus hebben. Dit hoeft overigens niet de applicatie te zijn die in het voorste venster runt.
Hardware toegankelijk maken voor applicaties (via drivers). Denk hierbij aan signalen ontvangen van de muis of het toetsenbord of uitvoer sturen naar het beeldscherm of printer.
Aanbieden van een multiuser omgeving. Dit is een omgeving waarbij meerdere gebruikers dezelfde computer kunnen bedienen, maar wel hun eigen instellingen, rechten en privileges hebben voor de software.
Zorgen voor multitasking. Op moderne computers kunnen we een nieuwe applicatie opstarten zonder dat we de huidige hoeven af te sluiten. Dit noemen we multitasking en met oude besturingssystemen zoals MS-DOS was dit niet makkelijk mogelijk.
Zorgen voor parallelle verwerking (parallel processing). Moderne computersystemen beschikken over meerdere fysieke kernen op één CPU en onder andere het besturingssysteem moet processen en applicaties zo goed mogelijk verdelen over deze kernen.
multi-boot Computersystemen hebben tegenwoordig dusdanig veel opslagcapaciteit dat er makkelijk meerdere besturingssystemen naast elkaar op geïnstalleerd kunnen worden. Bij het opstarten kun je dan kiezen met welk besturingssysteem je wilt gaan werken. We spreken in dat geval van een multi-boot systeem, zie Figuur 7. Zo kun je meerdere versies van Windows naast elkaar op één computer draaien. Je kunt echter ook Windows en Linux naast elkaar draaien. Ook kun je Windows op een Apple computer draaien naast het normale Mac OS.
- 10 -
Figuur 7: een voorbeeld van een multi-boot menu7
Om te snappen hoe het opstarten via multi-boot werkt, is het handig om eerst te snappen wat er allemaal gebeurt bij het opstarten van een computer als er maar één besturingssysteem op staat. De volgende stappen worden dan doorlopen: 1. Nadat je op de "aan" knop van de computer drukt wordt de BIOS (Basic Input Output System) code uitgevoerd. Deze code staat op een vaste plaats en wordt daarom altijd gevonden. De BIOS code kijkt eerst naar wat voor hardware er in de computer zit. Deze informatie staat in een speciaal stukje flash geheugen. 2. Vervolgens voert de BIOS de POST (Power On Self-Test) uit voor alle hardware die in de computer zit. 3. Daarna roept de BIOS de boot loader van het besturingssysteem aan. In het Engels heet het opstarten van een computer "booting a computer". De boot loader is dus een speciaal stukje software van een besturingssysteem dat dat besturingssysteem op kan starten. Je zou kunnen zeggen, dat de boot loader voor het besturingssysteem is wat de BIOS voor de computer is. 4. De boot loader start het besturingssysteem vervolgens op.
7
ecx.images-amazon.com/images/I/5166A7EX7FL.jpg
- 11 -
Bij een multi-boot systeem gebeuren al de voorgaande stappen ook, maar tussen stap 2 en 3 gebeuren twee extra stappen. Dat ziet er als volgt uit: 1. De BIOS wordt opgestart en kijkt wat voor hardware er in de computer zit. 2. De BIOS voert de POST uit. 3. De BIOS kan nu niet direct de boot loader van een besturingssysteem aanroepen want er zijn er meerdere. Daarom wordt een zogenaamd boot loader menu aangeroepen. In zo'n menu ziet de gebruiker een overzicht van alle besturingssystemen waar uit gekozen kan worden. Dit kan een grafisch menu zijn zoals je in Figuur 7 ziet, maar het kan ook een simpel tekstueel lijstje met namen van besturingssystemen zijn. 4. De gebruiker kiest een besturingssysteem. 5. Nu kan de BIOS de boot loader van het gekozen besturingssysteem aanroepen. 6. De boot loader start het besturingssysteem op.
niet PC besturingssystemen In het voorgaande hebben we het voornamelijk gehad over besturingssystemen voor de PC. Bij energiebeheer hebben we het al kort gehad over mobiele apparaten. Hierop draaien andere besturingssystemen dan op de PC al zien we wel een aantal bekende spelers terug zoals Microsoft (Windows Mobile) en Apple (iOS). Een populair besturingssysteem voor mobiele apparaten is Android dat tegenwoordig door Google wordt onderhouden en uitgegeven. Een ander besturingssysteem voor mobiele apparaten is Symbian maar dit wordt niet veel gebruikt. In de module ICT hebben we gezien dat er ook embedded systemen zijn. Denk bijvoorbeeld aan een TV of Blu-ray speler. Hierin zit embedded software en dus ook een besturingssysteem, zo'n OS noemen we een RTOS (Real Time Operating System). Zoals je misschien nog weet moet embedded software aan een reeks extra eisen voldoen met betrekking tot het omgaan met de processor, het geheugen en opslagmedia. In de wereld van de embedded software zie je dan ook besturingssystemen die daar speciaal voor ontwikkeld zijn. Windows en Linux proberen hier ook een rol te spelen maar hebben daar maar een marginaal aandeel. Een populair embedded besturingssysteem is VxWorks. Daarnaast heb je Windows CE (Windows voor Consumer Electronics). Ook Linux heeft embedded varianten zoals BlueCat RT, Redhawk en Montavista. Bij embedded besturingssystemen wordt de kern (kernel) van het besturingssysteem altijd gescheiden van de GUI. In veel producten met embedded software is namelijk helemaal geen GUI nodig en als deze onderdeel is van het besturingssysteem kost dit onnodig geheugen. Een kernel neemt een deel (de kern) van de belangrijkste taken van het besturingssysteem voor zijn rekening maar niet allemaal. Zo zorgt de kernel niet voor vensterbeheer omdat er geen GUI inzit. Ook het verzorgen van een multiuser omgeving is geen rol van de kernel.
- 12 -
opgave 4.4 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Er zijn drie makers van besturingssystemen, Microsoft, Apple en Linux Inc. b) Een besturingssysteem moet op de harde schijf van het computersysteem dat het bestuurt staan. c) De GUI is het belangrijkste onderdeel waar een gebruiker direct te maken heeft als het gaat over besturingssystemen. d) Een besturingssysteem heeft maar twee belangrijke taken en dat zijn het aanbieden van een GUI en het zorgen dat er meerdere gebruikers op hetzelfde computersysteem kunnen werken. e) Besturingssystemen zijn altijd multitasking. f) Multiuser besturingssystemen zorgen ervoor dat iedere gebruiker van het computersysteem zijn/haar eigen omgeving krijgt zodat meerdere gebruikers sequentieel of zelfs parallel op het computersysteem kunnen werken met hun eigen instellingen. g) Multi-boot wil zeggen dat het besturingssysteem ervoor zorgt dat de gebruiker het computersysteem telkens weer opnieuw kan opstarten. h) Een RTOS is een besturingssysteem dat vaak gebruikt wordt in embedded informatiesystemen.
- 13 -
5. virtualisatie Virtualisatie is lange tijd één van de meest besproken onderwerpen geweest in vakbladen op het gebied van informatica en ook nu nog wordt er geregeld aandacht aan besteed. Maar wat is het eigenlijk? Virtueel betekent schijnbaar bestaand. De Nederlandstalige Wikipedia definieert het als volgt. "Met virtualisatie bij computers wordt over het algemeen bedoeld dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien." Dit is een nogal beperkte definitie en de Engelstalige versie is beter: "In computing, virtualization is simulating a hardware platform, operating system (OS), storage device, or network resources." Wat betekent dat concreet? Veronderstel dat je een computer hebt waar Windows op draait. Maar je wilt een toepassing gebruiken die gemaakt is voor Linux. Je hebt dan meerdere mogelijkheden. Je kunt ook Linux op jouw computer installeren en er een multi-boot systeem van maken. Dan kun je bij het starten van jouw computer de keuze maken of je met Windows of Linux wilt werken. Maar het kan nog handiger. Als je Linux installeert binnen Windows kun je er echt tegelijkertijd gebruik van maken. Zoals je gewend bent van programma om te schakelen, zo kun je ook van besturingssysteem omschakelen. En dat is wat er met virtualisatie bedoeld wordt. Er bestaat zelfs software voor die je gratis kunt downloaden, bijvoorbeeld VirtualBox (tegenwoordig van Oracle). Waarom wil men gebruik maken van virtualisatie? Daar zijn veel redenen voor. De eerste is hierboven al genoemd, je wilt met software werken die niet voor jouw systeem gemaakt is. Maar een andere reden kan zijn dat je met software wilt werken die je niet helemaal vertrouwd. Zit er misschien een virus in? Kan het jouw computer "beschadigen"? Als je dergelijke software op een virtuele machine draait heeft het geen invloed op jouw oorspronkelijke systeem. En je virtuele machine kun je zo weer verwijderen of leeg maken. De verschillende besturingssystemen zijn dan ook volledig van elkaar afgeschermd. Het eerste besturingssysteem wordt de “host” genoemd, het besturingssysteem dat daarbinnen draait wordt de "guest" genoemd. Door meerdere guest besturingssystemen te laten werken op één computer, heeft die computer extra geheugen nodig en een snellere processor. Maar in de praktijk blijkt echter dat het goedkoper is om één duurdere computer (vaak een server) te gebruiken met virtualisatie, dan meerdere goedkopere computers zonder virtualisatie. We kunnen virtualisatiesystemen op verschillende manieren indelen. Hier volgen een aantal veelgebruikte vormen van virtualisatie.
- 14 -
server virtualisatie Bij veel bedrijven is het aantal servers in de loop der jaren aanzienlijk toegenomen. Voor iedere taak in het netwerk kwam er weer een nieuwe server bij. Dat betekende niet alleen een forse investering aan hardware en software maar ook een steeds oplopend energieverbruik en toenemende kosten om het allemaal te beheren. Met de juiste software kan men een aantal servers (software) op één server (hardware) onderbrengen. Afhankelijk van de situatie kan met server virtualisatie tot 40 % van de kosten bespaard worden. De voordelen wegen dus ruimschoots op tegen de nadelen van de duurdere server en het extra geheugen. Uiteraard is dit behoorlijk specialistisch werk om ook de besparingen daadwerkelijk te kunnen halen. Een bijkomend nadeel is dat er eerst zowel in nieuwe hardware als in specialistische kennis geïnvesteerd moet worden voor uiteindelijk de besparingen plaatsvinden.
desktop virtualisatie Bij desktop virtualisatie (Virtual Desktop Infrastructure, VDI) wordt als het ware jouw computer op een server geplaatst. Deze server kan bijvoorbeeld via internet met een gewone browser benaderd worden. Maar er kan ook een speciaal software programma voor gebruikt worden. Via desktop virtualisatie heb je dus vanaf de hele wereld toegang tot jouw eigen computer. Op zich kan dat al een groot voordeel zijn. Maar andere voordelen zijn het kunnen gebruiken van jouw eigen computer, ongeacht of je nu een Linux, Mac of Windows machine hebt. Voor bedrijven kan het ook interessant zijn omdat men kan volstaan met simpele, misschien wel verouderde, computers terwijl toch moderne software gedraaid kan worden omdat de eigenlijke software op de server draait.
emulatie Bij emulatie wordt er software binnen een besturingssysteem geladen waarmee een complete computer nagebootst wordt waarop een guest besturingssysteem draait. Bij emulatie kun je software draaien die oorspronkelijk niet voor het host besturingssysteem is geschreven of die zelfs niet is geschreven voor het type processor dat gebruikt wordt. Eén van de bekendste computers uit de begintijd van de home computer (1983) was de Commodore 64. Vele duizenden spellen waren er voor beschikbaar. Er zijn nog steeds oude C64-ers te koop maar wie de spellen nog wil spelen of met andere software van de C64 wil werken kan ook een C64 emulator op z’n PC installeren. En datzelfde geldt voor veel andere "verdwenen" computers zoals de Atari, Amiga, MSX, Playstation enzovoorts.
- 15 -
opgave 5.1 Bedenk een toepassing waarbij jij virtualisatie wilt gebruiken. Geef aan om welke soort van virtualisatie het dan gaat.
opgave 5.2 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Het kunnen opstarten van een Microsoft Windows 7 omgeving op een Apple computer is een vorm van virtualisatie. b) Bedrijven gebruiken server virtualisatie om bijvoorbeeld op de kosten voor software te besparen. c) Als je een Commodore 64 spel op je PC wilt spelen heb je desktop virtualisatie nodig. d) Door desktop virtualisatie kun je een computeromgeving maken die van overal op de wereld bereikbaar is via een webbrowser mits je internettoegang hebt.
- 16 -
6. schadelijke software Computercriminaliteit is geen nieuw fenomeen maar met het toenemen van het aantal computers lijkt deze vorm van criminaliteit zich enorm uit te breiden. De criminaliteit wordt niet alleen steeds heviger en schadelijker, ook worden steeds nieuwe vormen van computercriminaliteit uitgedacht en toegepast.
Figuur 8: artikel uit de Metro van 10 november 2010
- 17 -
Als je het artikel in Figuur 8 leest dan lijkt de situatie niet erg hoopgevend. Het valt niet mee om de criminelen buiten de deur te houden. Je vraagt je zelfs af of het nog wel verstandig is om je eigen PC aan te zetten. Per slot van rekening vindt niemand het leuk om plotseling een lege bankrekening te hebben. In dit hoofdstuk gaan we in op de vele vormen van computercriminaliteit of cybercrime. Hieronder verstaan we criminaliteit op internet, via e-mail en ook zogeheten RFID-chips. In dit hoofdstuk kom je meer te weten over de gevaren die je tegenkomt op het moment dat je je computer op internet aansluit. Via het internet kun je bijvoorbeeld heel handig dingen snel opzoeken en spelletjes spelen en via e-mail, MSN en de sociale netwerken zoals Facebook. kun je gemakkelijk contact houden met vrienden. Maar het internet is beslist niet ongevaarlijk. Denk bij gevaren bijvoorbeeld aan virussen en hackers, maar bijvoorbeeld ook aan spam en phishing e-mails. Al deze onderwerpen zullen hier behandeld worden. Wat zijn de gevaren precies? Hoe werken ze? En ook hoe je je ertegen kunt wapenen door spamfilters en virusscanners te installeren. Gelukkig is er ook nog de wet. In de wet staan een aantal artikelen over computercriminaliteit. Er staat natuurlijk in dat het niet mag, maar wat mag er dan precies niet? Allereerst kijken we naar voorbeelden van kwaadaardige software. Dit type software wordt ook wel malware (malicious software) genoemd. De software is kwaadaardig omdat ze probeert je computer over te nemen en/of processen uit te voeren die jij als gebruiker niet wilt. In het ergste geval kan je computer onbruikbaar worden. Voorbeelden zijn wormen, Trojaanse paarden, bots enzovoorts.
virussen 8
Een virus is een computerprogramma dat zich op je computer bevin-
den en daar kwaad aanricht. Denk hierbij aan het moedwillig traag maken van je computer, verwijderen van belangrijk systeembestanden, ongevraagde reclame laten zien in je webbrowser, doorsturen van inloggegevens naar een computer van criminelen enzovoorts. Het computerprogramma is daarnaast ook nog eens zeer moeilijk van je computer te verwijderen. Virussen heb je in alle soorten en maten. Virus is feitelijk een verzamelnaam voor een hele collectie aan schadelijke computerprogramma's. Ze zijn typisch gemaakt om verspreid te worden of zelfs zichzelf te verspreiden. Op die manier besmetten ze zoveel mogelijk computers. Net als organische virussen (het griepvirus bijvoorbeeld) kunnen
8
intergratedtechnology.com/wp-content/uploads/2013/12/what-is-a-computer-virusthedanger-of-contracting-computer-viruses-blog-tranquilnet-cpmrtzmo.jpg
- 18 -
computervirussen niet apart bestaan. Het zijn altijd stukjes code die aan een ander programma vastgeplakt zitten. Er bestaan verschillende soorten virussen. Hier volgen er een aantal:
bestandsvirus: Een bestandsvirus hecht zichzelf aan een programmabestand. Programmabestanden zijn de bestanden die je uit kunt voeren; je kunt ze herkennen aan de extensies .EXE of .COM (onder extensie verstaan we de letters achter de punt in een bestandsnaam). Zodra een besmet programmabestand geopend wordt, wordt het virus actief.
macrovirus: Macrovirussen komen met name voor in Word of Excel documenten. Ze worden actief als het document gestart wordt. Macrovirussen komen bijna niet meer voor, de laatste grote uitbraak was in 1999.
bootsectorvirus: Bootsectorvirussen richten schade aan in de bestanden die nodig zijn om een computer op te starten. Een bootsectorvirus kan er voor zorgen dat een computer niet meer kan worden opgestart.
polymorf virus: Een polymorf virus verandert zichzelf (zijn programmacode) elke keer dat het zich verspreidt zodat het moeilijk te detecteren is.
tijdbom virussen: Tijdbom virussen zijn geprogrammeerd om op een bepaalde datum of tijd in actie te komen. Daarvóór doen ze niets.
mobielvirus: Een mobielvirus richt zich niet op computers, maar op mobiele apparaten. Het virus kan zich bijvoorbeeld verplaatsen van de ene mobiele telefoon naar de andere.
opgave 6.1 a) Hoe krijg je een virus op je computer? b) Noem drie bekende virussen. Een voorbeeld van een bekend virus is het Anna Kournikova virus uit 2001. c) Is het schrijven van virus strafbaar? Kijk voor deze vraag ook eens op de www.iusmentis.com website. d) Hoe kun je een virus zo effectief mogelijk verspreiden? e) Hoe kun je je tegen virussen beschermen?
- 19 -
wormen Wormen zijn strikt genomen geen virussen omdat ze zich niet aan bestanden hechten. Het zijn op zichzelf staande computerprogramma's die zich zelfstandig verspreiden. Ze zijn daarom extra vervelend als iemand niet doorheeft dat hij een worm op zijn computer heeft staan. 9
De eerste worm op het internet werd gemaakt door Robert Morris.
De worm heette daarom ook de Morris Worm. In 2004 verspreidde zich de W32/Amus-A worm via e-mail. Als een gebruiker het mee gestuurde bestand opende, dan werd er een boodschap voorgelezen. Deze pratende worm maakte gebruik van de Microsoft Speech Engine in Windows.
opgave 6.2 a) In welk jaar werd de eerste worm gesignaleerd? b) Waarom verspreidt een worm zich sneller dan een virus? c) Hoe krijg je een worm op je computer? d) Bestaan er ook goedaardige wormen?
Trojaanse paarden 10
Ook een Trojaans paard (Trojan) is strikt genomen geen vi-
rus om dezelfde reden dat een worm dat niet is. Het is een computerprogramma waarvan niet onmiddellijk duidelijk wordt dat het een virus is. Je downloadt een programma waarin een Trojaans paard zit en je kunt dit programma aanvankelijk gewoon gebruiken en er gebeurt niks vreemds met je computer. Pas na een tijdje treden de schadelijk effecten op. Het is dan moeilijker te achterhalen waar deze effecten door veroorzaakt worden. De naam stamt af van het Paard van Troje. Een Trojaans paard verspreidt zichzelf niet zoals een worm. Het wordt meestal meegeleverd met bijvoorbeeld een handig stukje systeemsoftware, een leuke screensaver of een nep upgrade. Een voorbeeld is het Trojaans paard dat zich voordeed als een gratis programma tegen de Blasterworm. Maar wie het programma installeerde zette zijn computer open voor hackers.
9
us.123rf.com/400wm/400/400/ratoca/ratoca1109/ratoca110900210/10729161-abstractillustration-of-computer-virus.jpg 10 internetvaardig.be/wp-content/uploads/2009/10/Trojaans-paard-small.jpg
- 20 -
De naam Trojaans paard heeft te maken met een verhaal over de Trojaanse Oorlog. De Trojaanse oorlog11: Al tien jaar vochten de Grieken tegen de Trojanen, maar het lukte hen niet om de stad Troje in te nemen. Daarom bedacht de Griek Odysseus een list. De Grieken bouwden een reusachtig houten paard. In de buik van het paard verstopten zich soldaten. Het paard werd voor de poort van Troje achtergelaten waarna de Grieken deden alsof ze zich terugtrokken. De Grieken lieten een boodschap op het paard achter zodat de Trojanen dachten dat het paard een offer aan de godin Athena kwam was voor een behouden thuisvaart. De Trojanen trapten in de list en haalden het paard binnen in de stad. De Trojanen dachten dat ze gewonnen hadden en vierden de hele avond feest. In de nacht, terwijl alle Trojanen moe en dronken sliepen, verlieten de Grieken het paard en openden de poorten. Hierdoor kon het Griekse leger, dat intussen stiekem teruggekomen was, naar binnen en werd Troje uiteindelijk veroverd.
opgave 6.3 a) Wat zijn de overeenkomsten tussen virussen, wormen en Trojaanse paarden? b) Wat zijn de verschillen tussen virussen, wormen en Trojaanse paarden?
bots en botnets Een bot is een programma dat zelfstandig geautomatiseerde taken kan uitvoeren. Zo worden bots vaak gebruikt om zaken te doen die tijdrovend, foutgevoelig, complex en/of saai zijn voor mensen. Het woord bot komt van robot. Voorbeelden van bots zijn:
zoekmachine bots: Zoekmachines zoals Google gebruiken een bot om alle websites in kaart te brengen.
shopping bots: Een shopping bot zoekt automatisch de laagste prijzen op internet voor een bepaald product.
spam bots: Spam zijn berichten die mensen ongevraagd ontvangen. Spamming gebeurt meestal via digitale middelen zoals e-mail, SMS of WhatsApp. Zulke spam wordt niet door mensenhand gegenereerd, computerprogramma's kunnen dat veel beter en sneller. Zo'n computerprogramma noemen we een spam bot. Een voorbeeld van een spam bot is een bot die zich automatisch inschrijft op fora en vervolgens alleen maar reclameberichten post.
11
uit de methode van Remie Woudt met aanpassingen
- 21 -
12
Een bot kan dus heel onschuldig zijn maar ook heel vervelend. Een
computer die besmet is met een bot wordt ook wel een zombie genoemd. Een botnet is een netwerk van een groot aantal willoze zombies die allemaal besmet zijn met dezelfde bot. Vanuit één centraal punt kan een kwaadwillend persoon alle zombies in het netwerk opdracht geven dezelfde taak uit te voeren.
opgave 6.4 a) Hoe krijg je een bot-programma op je computer? b) Wat is een DDoS aanval? (zoek eens op internet naar het antwoord)?
spyware Spyware is een samentrekking van de woorden spy en software en betekent spionagesoftware. Spyware is de verzamelnaam voor de volgende types software:
tracking cookie: Een cookie is een klein bestandje met informatie dat op je computer terecht komt na het bezoeken van een website. Vaak zijn cookies nuttig: ze onthouden bijvoorbeeld je instellingen of loginnaam voor een bepaalde site. Tracking cookies zijn minder onschuldig, ze volgen je surfgedrag (dus welke websites je bezoekt) en sturen dat door naar de site dat het tracking cookie heeft geplaatst. Zo is het voor bedrijven mogelijk om met tracking cookies je surfgedrag te volgen.
browser hijacker: Een browser hijacker zorgt ervoor dat bepaalde aspecten van de browser aangepast worden. Hierbij is te denken aan het aanpassen van startpagina’s, zoekpagina’s of favorieten zonder dat je dat zelf wilt.
key logger: Key loggers zijn programma’s die elke toets die jij op je toetsenbord intikt registreren. Hiermee kun je dus wachtwoorden of andere gevoelige informatie achterhalen. Er bestaan ook hardware key loggers (zie afbeelding 4). Deze plaats je tussen je computer en je toetsenbord. De hardware key logger kan niet gevonden worden door een virusscanner, de softwareversie vaak wel.
12
pokerroomreview.com/wp-content/uploads/2010/06/Online-Poker-Robot.jpg
- 22 -
Figuur 9: een USB key logger13
opgave 6.5 a) Op welke manier komt spyware op je computer? b) Op welke manier kun je spyware bestrijden? c) Zoek op wat snoopware is.
opgave 6.6 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Een virus is een vorm van malware. b) Spyware is een vorm van malware. c) Een botnet is een vorm van malware. d) Een Trojaans paard virus is vergelijkbaar met een tijdbom virus. e) Een worm verspreid zich door je hele computersysteem en nestelt zich op veel verschillende plekken. f) Een Trojaans paard is een virus dat je niet zelf binnenhaalt. g) Een bot in een botnet wordt ook wel een vampier genoemd. h) Een key logger is een vorm van spyware. i) We gebruiken de term spyware voor software waar me mee kunt spioneren.
13
www.wijzijnerevenniet.nl/images/Tips/keyshark-USB.jpg
- 23 -
7. virtueel inbreken In deze paragraaf gaat het over virtueel inbreken. Daarmee bedoelen we onder andere hacken en war driving. Hiervoor wordt vaak specifieke en zelf ontwikkelde software gebruikt.
hacken Hackers (zoals we het woord in Nederland gebruiken) en crackers doen hetzelfde: inbreken in een andere computer. Maar toch is er een groot verschil tussen hacken en cracken. Een hacker is iemand die om idealistische redenen de beveiliging van systemen test op fouten en daar verbeteringen voor probeert te vinden. Een cracker is een kwaadwillend persoon, die zich bezig houdt met illegale toegang tot een andere computer. Een hacker wordt ook wel een white-hat hacker genoemd en een cracker een blackhat hacker. Deze termen komen uit het Western filmgenre waarin de "bad guys" zwarte hoeden droegen en de "good guys" witte hoeden. Een white-hat hacker is geliefd in het bedrijfsleven. Bedrijven huren ze in om de beveiliging van hun systemen te testen. Zo hopen ze de black-hat hackers buiten de deur te houden. Naast hackers en crackers bestaan er ook nog script kiddies. Script kiddies zijn personen die, zonder kennis van programmeren, het leuk vinden om virussen te maken en te verspreiden. Ze downloaden software waarmee je zonder enige kennis van zaken een virus kunt maken. Het blijkt dat veel virussen door script kiddies gemaakt zijn. Deze virussen zijn overigens vaak snel te vinden door virusscanners. Maar hoe werkt hacken dan? De meeste hackers, crackers en script kiddies maken gebruik van exploits. Een exploit is een kwetsbaarheid in de hard- of software. Een zero-day exploit is een pas ontdekte exploit. Zero-day exploits zijn extra gevaarlijk omdat de makers van de software met de exploit (nog) niet weten hoe ze de software moeten beveiligen. Naast exploits gebruiken crackers vaak ook sociaal hacken oftewel social engineering. Dit is een techniek waarbij de hacker een inlognaam en wachtwoord probeert te achterhalen via een mens. Een methode is bijvoorbeeld om een bedrijf te bellen en de receptioniste te vertellen dat alle computers besmet zijn met een ernstig virus en dat je nu het wachtwoord nodig hebt om de informatie op de computers te kunnen redden. Als de secretaresse dan toehapt en het wachtwoord geeft, ben je als cracker binnen.
- 24 -
opgave 7.1 a) Waarom hacken mensen? b) Was de schrijver van het Kournikova virus een hacker, cracker of script kiddie?
war driving War driving is rondrijden met een auto met de bedoeling draadloze netwerken te vinden. Een draadloos netwerk is een computernetwerk waarbij de aangesloten apparaten niet via kabels met elkaar communiceren maar via radiogolven. Het voordeel van een draadloos netwerk is dat je geen kabels hoeft te leggen en dat je op elke willekeurige plek in je huis kunt internetten. Voor een draadloos netwerk heb je een basisstation nodig. Dit apparaat zorgt voor de verbinding. Meestal is dit basisstation een draadloze router. Als je een computer hebt die draadloze netwerken ondersteunt dan kun je contact maken met het basisstation en op die manier bijvoorbeeld gebruik maken van internet. Een korte Fox News Special kun je zien op YouTube. Het nadeel van een draadloos netwerk is dat radiogolven door muren en ramen gaan dus dat ook je buurman contact kan maken met jouw basisstation. De meeste draadloze netwerken maken zich bekend door continu hun naam te versturen. Deze naam noemen we het SSID (Service Set Identifier). War drivers zijn in hun auto continu op zoek naar draadloze netwerken en hun SSID. Om te voorkomen dat je buurman of war drivers gebruik kunnen maken van je draadloze netwerk is het belangrijk dat je je draadloze netwerk goed beveiligt. Ook kun je je draadloos netwerk onzichtbaar maken door je router zijn SSID niet te laten uitzenden. Naast war driving zijn er ook mensen die aan war walking, war cycling en war storming (rondvliegen) doen. En er zijn ook mensen die niet op zoek zijn naar draadloze internetverbindingen maar naar bijvoorbeeld telefoons met een Bluetooth verbinding.
- 25 -
Als je als war driver een netwerk hebt gevonden, wil je dat aan andere war drivers laten weten. Dat kan op twee manieren:
War chalking is het met krijt aangeven in publieke ruimtes of er een draadloos netwerk in de buurt is. Ook geven ze aan of het goed of slecht beveiligd is. Twee belangrijke tekens die ze gebruiken zie je in Figuur 10. Het rechter teken geeft een beveiligd netwerk aan. Het linker teken een onbeveiligd netwerk.
Figuur 10: een aantal war chalking symbolen14
De andere manier om aan te geven waar onbeveiligde netwerken zijn is natuurlijk via internet. Er zijn diverse internetsites die aangeven waar je draadloze netwerken kunt vinden en of ze beveiligd of onbeveiligd zijn.
opgave 7.2 War drivers gebruiken speciale programma’s om de draadloze netwerken te vinden. Zijn deze programma’s verboden?
opgave 7.3 Wat is een hotspot?
14
etutorials.org/Microsoft+Products/windows+xp+unwired/Chapter+3.+WiFi+on+the+Road/3.2+Finding+Wireless+Networks/
- 26 -
opgave 7.4 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Hacken en cracken is eigenlijk gewoon hetzelfde. b) Een zero-day exploit is een beveiligingsprobleem dat al vanaf de eerste dag in een systeem zit. c) Om te voorkomen dat war drivers jouw draadloos netwerk vinden kun je het SSID van je router uitzetten. d) War chalking is met krijt je hackernaam op de muur schrijven.
- 27 -
8. beveiligingssoftware Gelukkig zijn er maatregelen die je kunt nemen om te voorkomen dat hackers jouw systeem binnendringen. In dit hoofdstuk gaan we kijken naar virusscanners en spamfilters.
virusscanner Een goede maatregel om virussen te bestrijden is om voorzichtig te zijn met het openen van bestanden die je van anderen hebt gekregen. Open bijvoorbeeld nooit zomaar bijlagen van e-mails van personen die je niet kent. Maar stel je hebt toch een virus opgelopen, wat dan? Om computervirussen te kunnen opsporen en verwijderen zijn er virusscanners beschikbaar. Virusscanners maken gebruik van verschillende technieken om te controleren op virussen:
fingerprints
checksums
heuristieken
Virusscanners maken onder andere gebruik van virusdefinities waarin voor elk bekend virus de vingerafdruk oftewel de fingerprint wordt vastgelegd. De fingerprint van een virus is een stukje code van het virus dat altijd hetzelfde is. Aan de hand van de fingerprint kan een scanner een virus dan herkennen. Het grootste nadeel van deze techniek is dat scanners alleen virussen kunnen ontdekken waarvan ze de fingerprint kennen. Voor ieder nieuw virus geldt dat er eerst ergens een slachtoffer moet vallen voordat de makers van de scanner een bruikbare fingerprint kunnen vaststellen. En die fingerprint moet dan aan de scanners worden doorgegeven. Daarom is het belangrijk om je virusscanner vaak te updaten, zodat je altijd de nieuwste fingerprints hebt.
opgave 8.1 a) Wat is een nadeel van de fingerprints? b) Wat is een voordeel van de fingerprints? c) Kun je met fingerprints ook polymorfe virussen herkennen?
Virusscanners maken ook vaak gebruik van de checksums van alle bestanden op de computer. Een checksum is een controlegetal dat uitgerekend wordt aan de hand van de inhoud van een bestand. Wanneer een programma wordt besmet, verandert het bestand en daarmee ook het controlegetal. De virusscanner controleert dus steeds of de checksum van elk bestand nog hetzelfde is als de checksum die in de lijst staat.
- 28 -
opgave 8.2 a) Wat is een nadeel van checksums? b) Wat is een voordeel van checksums? c) Kun je met checksums ook polymorfe virussen herkennen?
Virusscanners bevatten ook vaak een heuristische modus. In deze modus controleert een virusscanner bestanden op eigenschappen die typisch zijn voor virussen. Voorbeelden van zulke eigenschappen zijn bijvoorbeeld: code om een datum te controleren of code die het adresboek van je e-mailprogramma raadpleegt.
opgave 8.3 a) Wat is een nadeel van de heuristische mode? b) Wat is een voordeel van de heuristische mode? c) Kun je met deze mode ook polymorfe virussen herkennen?
Een goede virusscanner maakt tegelijkertijd gebruik van al deze technieken!
spamfilters Men schat dat tegenwoordig bijna 90% van de e-mails die worden verzonden spam is. Daarom wordt er erg veel gedaan aan het bestrijden van spam. Een manier om dit te doen is gebruik te maken van spamfilters. Als gebruiker heb je dan weinig last van de spam, omdat die er voor je uit wordt gefilterd. Maar hoe werkt dat filteren precies?
15
De makkelijkste manier om mail te filteren is gebruik maken van een woordfilter. Alle berichten die binnenkomen, worden door de computer gescand. Als er een bepaald woord uit het woordfilter in voorkomt (bijvoorbeeld Viagra), dan bestempelt de computer het bericht als spam. Woordfilters kunnen werken met verboden woorden, zoals hierboven, en ook met toegestane woorden. Door te tellen hoeveel toegestane en verboden woorden een bericht
15
www.sohosted.com/UserFiles/image/paginas/spamfilter.jpg
- 29 -
bevat, kan de computer bepalen of een bericht wel of geen spam is. Dit heet een heuristisch filter. Zo'n filter bepaalt eigenlijk de kans dat een bericht spam is. Nog slimmer is het, om niet vaste woordenlijsten te gebruiken, maar de woordenlijsten steeds aan te passen. In zo een geval wordt een spamfilter Bayesiaans genoemd. Bayesiaanse filters moeten worden getraind. Dit betekent, dat je het filter van tevoren moet vertellen welke berichten wel spam zijn, en welke berichten geen spam zijn. Het programma scant dan alle berichten, en maakt een lijst van alle woorden die in die berichten voorkomen. Voor elk woord wordt geteld in hoeveel spamberichten het voorkomt, en in hoeveel niet-spamberichten het voorkomt.
opgave 8.4 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Virusscanners werken alleen met fingerprints om virussen op te sporen. b) Een goede spamfilter is lerend en wordt steeds beter naarmate je hem beter traint.
- 30 -
9. wat heb je geleerd Je hebt in deze module een breed scala aan onderwerpen met betrekking tot software, security en licenties voor software gezien. Via kleur en onderstreping is aangegeven op welke zaken de nadruk ligt.
opgave 9.1 In eerdere modules was dit hoofdstuk helemaal voor je ingevuld. Uiteindelijk is het belangrijk dat je zelf hoofd van bijzaken leert onderscheiden en je een grote hoeveelheid informatie snel terug kunt brengen naar de essentie zodat je deze efficiënt kunt leren. Vul dit hoofdstuk zelf in door met steekwoorden en/of korte zinnen aan te geven wat en waarover je waarschijnlijk de meeste vragen gaat krijgen in de toets en het SE.
- 31 -