Kmom03: Attacker
När man som webbprogrammerare blir utsatt för en attack så är det lätt att hålla sig för skratt. En attack kan vara lättsam som en skämtsam och lekfull XSS där någon bara vill säga att de “ägde din webbplats”. I artikeln “Grundregel 1A i Cross Site Scripting (XSS) - Lita inte på någon” visas effekten av ett sådant exempel där någon litade på någon och det slutade med att studentföreningens webbplats gjordes till ett litet skämt.
Ibland kan det vara värre och det kan gälla ett mer verkligt hot mot en webbtjänst, ett system eller ett företags verksamhet och trovärdighet. Ibland kan det vara känslig data och ibland rör det sig om pengar.
Kanske bör du fråga dig, som webbprogrammerare och potentiellt ansvarig för ett viktigt system.
“Vad är det värsta som kan hända?”
Kanske bör du försöka svara på den frågan och fundera på hur du kan skydda dig eller hantera konsekvenserna av “det värsta som kan hända”.
Låt oss i detta kmom kika in i olika typer av attacker som vi kan förvänta oss, eller attacker som man normalt kan förvänta sig som en webbprogrammerare. Låt oss även titta på hur man kan försvara sig och låta bli att utsätta sig för risker, eller iallafall hantera risknivåerna och vara förberedd för konsekvenserna som attacker kan medge.
(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 40 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)
#Föreläsningar & Laborationer
(ca: 8-10 studietimmar)
Kursvecka 3 (Fokus på teori), föreläsningar:
- 10:15 (2024-11-18) H430, med Victor om hot.
Kursvecka 4 (Fokus på praktik/attacker), föreläsningar och laboration:
10:15 (2024-11-25) H430, med Victor om attacker.
10:15 (2023-11-29) H430, hacklabb (eget arbete)
#Läs & Studera
(ca: 6-10 studietimmar)
#Artiklar och studiematerial
Läs och studera följande.
Läs i boken Computer Security
- Kapitel 4-5
Läs artikeln “Grundregel 1A i Cross Site Scripting (XSS) - Lita inte på någon” som ett enklare exempel på hur saker kan hända när man litar på någon.
Använd OWASP Top Ten som en källa för några av de vanligaste riskerna i en applikation. Börja med att kika igenom vilka de top-tio riskerna är och försök förstå vad de innebär för dig som utvecklare, hur bör du inte skriva din kod? Börja kika översiktligt.
Myndigheten för samhällsskydd och beredskap har gjort en vägledning “Säkerhetsåtgärder i informationssystem” som handlar om att införa säkerhetsåtgärder för att skydda information i informationssystem.
Läs igenom artikeln “TimThumb Attacks: The Scale of Legacy Malware Infections” som berättar historien om hur ett litet PHP-script för att skala om bilder blev ett stort säkerhetshål för “remote code execution” i WordPress.
I det här blogginlägget beskrivs en RCE (Remote Code Execution) bugg i en nodejs-modul “Hacking Node Serialize” och genom att skapa en exploit som öppnar en terminal på en annan dator.
I artikeln “Type Juggling and PHP Object Injection, and SQLi, Oh My!” visas hur man gör en exploit på en “loose comparisom
==
” och “unserialize()
user supplied data” i PHP frameworket Expression Engine. Läs den som ett exempel på hur en attackerare tänker och funderar när den försöker hitta svagheter i ett system.En annan variant är vi kan lära från en hacker writeup är “Finding Vulnerabilities in Core WordPress: A Bug Hunter’s Trilogy” som steg för steg når längre in i systemet. Börja med att läsa del I för att få en insyn i vad det handlar om, finner du det intressant så kan du fortsätta läsa de andra delarna.
#Video
Titta på följande videor.
Möt en hackare, “Detectify | Meet the Hacker - Fredrik Nordberg Almroth”. En 6 minuter video där vi får träffa en “hackare” som ger oss sina bästa tips.
Titta på denna videoserie med 2-minuters avsnitt som förklarar “OWASP Top 10 Vulnerabilities Explained” från Detectify på ett intressant och informativt sätt.
(Extra) Om du vill ha mer förklaringar till en eller flera av OWASP Top Ten så kan du kika i videoserien (10 minuters avsnitt) “OWASP Top Ten - 2021” från F5 DevCentral.
(Extra) Vill du ha ännu mer OWASP så tittar du på konferenspresentationen “GOTO 2019 • AppSec: From the OWASP Top Ten(s) to the OWASP ASVS • Jim Manico” (51 minutes).
#Capture The Flag (CTF)
Som extra arbete, om ni vill lära er mer om säkerhet inom applikationer och webb, så finns konceptet CTF - Capture The Flag. Det handlar om små problemlösande utmaningar där man skall leta reda på flaggor som är gömda i ett system eller applikation. Videorna är Writeups till hur man löser specifika CTF:er och de är ofta både spännande, intressanta, lärorika och pedagogiskt upplagda.
Här är en video från LiveOverflow som kan ge dig insikt i hur dessa writeups videor kan se ut. Denna video är en writeup på en XSS injection i Googles sökmotor. Dessa writeups kan verka avancerade men om man försöker hänga med så får man god insikt i hur utmanande säkerhetsområdet kan vara.
Följande är tips på bra kanaler och på ett par spellistor som fokuserar på webbapplikationer.
Det andra tipset är kanalen John Hammond
Första tipset är en spellista från LiveOverflow med webbattacker:
Glöm inte att även andra typer av CTF:er kan ge stor behållning av allmänt tänk inom programutveckling och säkerhet.
#Uppgifter
(ca: 15-20 studietimmar)
Det finns tre uppgifter, en skrivuppgift, en “lär dig attacker”-uppgift och en “titta på en film”-uppgift.
1) Skrivuppgift är inom området attacker. Ni kan jobba i grupper om 2 och 2, eller individuellt. Rapportmall finns i LaTeX/Overleaf. Länken är till en read-only version, för att skapa er egna så trycker du “Menu” och sen “Copy Project”. Det går givetvis att använda valfritt program, så länge man uppfyller kraven ovan. Det är inte ett krav att skriva i det formatet, men en bra övning. Kanske vill du skriva exjobbet i LaTeX?
Upplägget är enligt följande:
Du/Ni är ansvarig för systemdrift och utveckling av programvaran på företag (välj själva företagets inriktning). Ledningen har bett om en rapport som berättar vilka risker och vilka typer av attacker som de kan förvänta sig mot företagets system och vilka konsekvenser som lyckade attacker kan få. Företagsledningen vill veta hur Du/Ni har planerat företages skydd och eventuella åtgärder när attacker lyckas.
Skriv en rapport på två till fyra sidor text, exklusive försättssida och exklusive referenssida. Det går bra att avgränsa och bara svara på delar av ledningens fråga. Tid och utrymme i rapporten är begränsat så det är okey att utelämna vissa delar. Men se till att rapporten hänger ihop som en helhet och innehåller minst 5 relevanta referenser. 1 av referenserna ska vara från en vetenskaplig källa, som BTH Summon eller Google Scholar. BTH’s bibliotek har bra information om vad som kan vara en vetenskaplig länk, se i Ämnesguide Datavetenskap & Datorsäkerhet. Vill ni dyka ned i en specifik fråga så går det bra, vill ni täcka flera frågor mer översiktligt så går det också bra.
Ni som jobbar i grupp skriver tre till fyra sidor, exklusive försättssida och exklusive referenssida. Ni redovisar individuellt på Canvas och skriver in namnen på gruppmedlemmarna i rapporten.
2) Gör uppgiften “Attacker på Juice Shop” (individuellt eller i grupp om 2 och 2)
3) Film-uppgiften är inom ämnet “hur tänker en hacker/cracker/attacker”? I spellistan “Internet - kultur och historia” finns ett antal filmer/dokumentärer som berör olika händelser inom Internet. Välj en av dessa filmer, eller en som du själv anser liknande, titta på filmen och försök sedan svara på frågan “Vad driver en hacker och hur tänker en hacker?” Du skriver svaret på Canvas i samband med din inlämning. Välj att titta på filmen individuellt, eller tillsammans med din gruppkompis för rapporten. (individuellt eller i grupp om 2 och 2)
4) Gör Kmom03 quiz (individuellt).
#Extrauppgifter
1) Fortsätt gör utmaningar i Juice shop. Redovisa dina framgångar med en ny skärmdump.
#Resultat & Redovisning
(ca: 1-2 studietimmar)
På Canvas finns det ett Quiz för varje kursmoment. För att du ska kunna lämna in uppgiften till kursmomentet måste du ha lämnat in quizen.
- Rapporten om attacker (uppgift 1); ladda upp din fil, report.pdf, i uppgiften Kmom03 Rapport på Canvas.
- Resultatet från utmaningarna i Juice shop (uppgift 2) laddar du upp i uppgiften Kmom03 på Canvas.
- Filmuppgiften (uppgift 3) redovisar du i uppgiften Kmom03 på Canvas.
- Resultatet (filerna) från extra uppgifterna laddar du upp i uppgiften Kmom03 på Canvas. (OBS valfritt)
#Revision history
- 2024-11-12: (H, grm) Komplettering HT24.
- 2022-05-25: (G, grm) Komplettering HT22.
- 2021-11-10: (F, grm) Komplettering HT21.
- 2021-10-01: (E, lew Uppdatering inför HT21.
- 2020-11-25: (D, mos) Förtydliga om redovisningen.
- 2020-11-20: (C, mos) Lade till tips om CTF-kanaler.
- 2020-11-16: (B, mos) Läsanvisningar om hacker writeups.
- 2020-11-01: (A, mos) Utkast inför ht20.