Kmom03: Attacker

By , , . Latest revision .

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.

Studentföreningens sida som en XSS:ad variant.

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 & Seminarier

(ca: 8-10 studietimmar)

Du ska medverka vid följande Zoom-tillfällen som alla hanterar olika aspekter ur det område som kmomet behandlar.

Kursvecka 3:

  • 10:00 (2020-11-16) via Zoom med Mikael som berättar om verkliga attacker och vad som hände.
  • 13:00 (2020-11-20) via Zoom Mikael pratar om OWASP Top Ten och vad de innebär för dig som programmerare.

Kursvecka 4:

  • 10:00 (2020-11-23) via Zoom med Vidar om “Hur man kan hacka”
  • 10:00 (2020-11-27) via Zoom med Anton om “Vulnerability Assesment, Threat modeling and Attack trees”

#Läs & Studera

(ca: 6-10 studietimmar)

#Artiklar och studiematerial

Läs och studera följande.

  • 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.

  • 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 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.

Mer läsanvisningar presenteras i samband med seminarierna.

#Video

Titta på följande videor.

  1. 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.

  2. Titta på denna videoserie med 2-minuters avsnitt som förklarar “OWASP Top 10 Vulnerabilities Explained” från Detectify.

  3. (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 - 2017” från F5 DevCentral.

  4. (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.

XSS on Google Search - Sanitizing HTML in The Client?

Följande är tips på bra kanaler och på ett par spellistor som fokuserar på webbapplikationer.

  1. Första tipset är kanalen LiveOverflow.

  2. Det andra tipset är kanalen John Hammond

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 två uppgifter, en skrivuppgift 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 att tillgå för LaTeX/Overleaf i kursrepot under example/report-template-latex. 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. 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.

2) 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.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Gör en gruppinlämning på Canvas, om ni jobbade i grupp och ladda upp rapporten som pdf, senast fredagen veckan efter att kmomet är avslutat. Svara på följande frågor i textfältet på Canvas (ge ett svar som grupp, såg ni olika filmer så ger ni två svar på den delen):

  • Berätta vilken film du såg, lämna en länk till filmen om den finns på nätet och inte är med i spellistan ovan. Svara på “Vad driver en hacker och hur tänker en hacker?” och koppla till vad filmen berättade för dig. Skriv kortfattat om max 15 rader.
  • Summera, vilken är din/er TIL för detta kmom?

#Revision history

  • 2020-11-25: (E, 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.

Document source.