Keuzemodule Security
Total Page:16
File Type:pdf, Size:1020Kb
Keuzemodule Security Inhoud H1 Kwetsbaarheden ................................................................................................................................ 3 1.1 Inleiding: telefoon gehackt via WhatsApp ....................................................................................... 3 1.2 Code Red worm en de buffer overflow ........................................................................................... 8 1.3 YouTube aangevallen ................................................................................................................... 21 1.4 Twitter dicht beveiligingslek .......................................................................................................... 28 1.5 Verdienen aan kwetsbaarheden ................................................................................................... 37 1.6 Cyberoorlog .................................................................................................................................. 40 H2 Authenticatie .................................................................................................................................... 44 2.1 Inleiding: lek in RIVM-coronasite .................................................................................................. 44 2.2 Kun je een deurbel hacken? ......................................................................................................... 50 2.3 Aanval op de Belastingdienst ....................................................................................................... 52 H3 Social Engineering ........................................................................................................................... 55 3.1 De verkeerde bank gehackt .......................................................................................................... 55 3.2 Terugblik ...................................................................................................................................... 59 H4 Encryptie basis ................................................................................................................................ 63 4.1 Inleiding: Alice, Bob & Eve............................................................................................................ 63 4.2 Symmetrische encryptie ............................................................................................................... 65 4.3 Hoe veilig is het algoritme?........................................................................................................... 70 4.4 Verbeterde technieken voor versleuteling ..................................................................................... 72 H5 Encryptie Verdieping ........................................................................................................................ 76 5.1 Inleiding: eenmalig blokcijfer ......................................................................................................... 76 5.2 De perfecte versleuteling .............................................................................................................. 77 5.3 Blokvercijfering ............................................................................................................................. 80 5.4 Tot slot ......................................................................................................................................... 84 H6 Websecurity ..................................................................................................................................... 85 6.1 Protocollen ................................................................................................................................... 87 6.2 Asymmetrische versleuteling ........................................................................................................ 89 6.3 Certificaten ................................................................................................................................... 98 6.4 VPN ............................................................................................................................................ 101 H1 KWETSBAARHEDEN 1.1 Inleiding: telefoon gehackt via WhatsApp Eind januari 2020 kwam in het nieuws dat de telefoon van de directeur van Amazon (zeg maar de Amerikaans Bol.com) was gehackt. De aanval kwam vanuit Saoedie-Arabie, met hulp van de Saoedische kroonprins. De Saoedische prins had Jeff Bezos, de directeur, een videootje gestuurd via WhatsApp. Door een fout in WhatsApp konden de medewerkers van de prins alle berichten op zijn telefoon lezen. Jeff Bezos1 hoefde het filmpje niet eens te openen, het ontvangen van het filmpje was voor de hackers genoeg om toegang te krijgen tot alle bestanden op zijn telefoon. Een paar maanden later kwamen foto’s naar buiten waaruit bleek dat de getrouwde directeur een affaire had. In de onderstaande berichten van RTL Nieuws wordt dit verhaal verder toegelicht. https://www.rtlnieuws.nl/tech/artikel/4996716/whatsapp-veilig-hack-jeff- bezos-bin-salman FIGUUR 1.1 JEFF BEZOS, DIRECTEUR VAN AMAZON Kwetsbaarheden In software zitten allerlei fouten die misbruikt kunnen worden om toegang te krijgen tot systemen of vertrouwelijke informatie. Dit zijn kwetsbaarheden. Er zijn vele soorten kwetsbaarheden waar hackers misbruik van kunnen maken. We lichten er drie uit in dit hoofdstuk: - Buffer overflows - Cross-Site Request Forgery (CSRF) - Cross-Site Scripting (XSS) Er zijn allerlei manieren om dit soort kwetsbaarheden te voorkomen en om je te beschermen tegen misbruik van dit soort kwetsbaarheden. De programmeurs van de software kunnen rekening houden met bekende soorten kwetsbaarheden en voorkomen dat deze kwetsbaarheden ontstaan in hun software. Softwareontwikkelaars brengen regelmatig updates uit waarin kwetsbaarheden worden weggenomen. Een belangrijke maatregel voor de gebruikers tegen een aanval via kwetsbaarheden is alle software actueel houden. Leerdoelen Dit zijn de leerdoelen voor dit hoofdstuk. Je kunt later aangeven in hoeverre je deze leerdoelen beheerst. Leerdoel Ik kan Ik kan Ik kan dit nog dit een dit niet beetje Je kunt op basis van de beschrijving van een kwetsbaarheid aangeven wat voor soort kwetsbaarheid het is (buffer overflow, cross- site request forgery, cross-site scripting). 1 Foto door Seattle City Council from Seattle - https://www.flickr.com/photos/seattlecitycouncil/39074799225/, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=68400532 Je kunt concreet aangeven hoe de volgende kwetsbaarheden misbruikt kunnen worden: buffer overflow, cross-site request forgery, cross-site scripting. Je kunt op basis van een eenvoudig programma dat kwetsbaar is voor een buffer overflow concreet een aanval beschrijven, inclusief de off-by-one buffer overflow. Je kunt passende maatregelen benoemen ter voorkoming van een buffer overflow, door zowel programmeurs als beheerders. Je kunt minstens twee maatregelen noemen tegen misbruik via kwetsbaarheden. Je bent in staat bent om bij een beschrijving van een aanval antwoord te geven op de volgende vragen: Vragen over de aanval 1. Van wie komt de aanval? 2. Waarom wordt de aanval gedaan? Met andere woorden, wat is het doel van de aanval? 3. Hoe gaat de aanval precies in z’n werk? Vragen over de verdediging 1. Wat zijn mogelijke tegenmaatregelen, zowel vooraf (nog voordat de aanval plaatsvindt) als tijdens (als de aanval eenmaal heeft plaatsgevonden). 2. Hoe werken die tegenmaatregelen? 3. Wie moet deze tegenmaatregelen nemen? Je kunt voor een specifieke invoer van een programma voorbeelden geven van invoer die typisch door een fuzzer worden gegenereerd. Je kunt enkele concrete voorbeelden noemen van cyberoorlog. Belangrijkste begrippen Dit zijn belangrijkste begrippen uit dit hoofdstuk, het is belangrijk dat je deze begrippen goed kent. Kwetsbaarheden Fouten in software die kunnen worden uitgebuit door hackers. (vulnerabilities) Exploits Een programma dat gebruik maakt van de specifieke kwetsbaarheid om in te kunnen breken op een systeem. Update Een vernieuwde versie van een softwarepakket, waarin aanpassingen worden gedaan en waarin ook kwetsbaarheden worden opgelost. Men zegt ook wel: om het lek te dichten. Buffer overflow Een soort kwetsbaarheid waarbij een hacker gegevens invoert die langer zijn dan het syteem verwacht. Off-by-one buffer overflow Een buffer overflow door een fout in het programma waarbij een herhaling één keer te veel wordt doorlopen. Cross-Site Request Forgery Een soort kwetsbaarheid waarbij een hacker iemand onbedoeld een (CSRF) opdracht laat uitvoeren op een website. Cross-Site Scripting (XSS) Een soort kwetsbaarheid waarbij een hacker JavaScript-code invoert op een website dat vervolgens wordt uitgevoerd als andere bezoekers die website bekijken. Zero-day Een kwetsbaarheid die nog niet bekend is en waar dus nog geen update voor is ontwikkeld. Daardoor is een zero-day erg gewild bij hackers. Bounty-programma Een oproep van een bedrijf om kwetsbaarheden in hun software te melden tegen een beloning. Segmentation fault Een programma dat toegang probeert te krijgen tot een deel van het geheugen waar het geen recht toe heeft leidt tot een segmentation fault. Fuzzing Een manier om kwetsbaarheden te vinden, waarbij allerlei onverwachte invoer aan de software wordt gegeven. Cyberoorlog Landen proberen elkaar schade toe te doen of vertrouwelijke informatie in te winnen door gebruik te maken van de digitale infrastructuur. Advance Persistent Threat Een gerichte aanval