📝 TSD3060 Eksamen 2024-2025

Kontinuasjonseksamen - Interaktiv versjon

ℹ️ Hvordan fungerer denne quizen?

1. Les spørsmålet nøye og velg det alternativet du mener er riktig

2. Trykk "Sjekk svar" for å få umiddelbar feedback

3. Hvis du svarer feil, kan du endre svar og prøve igjen

4. Klikk "Vis forklaring" for å se detaljert sensorveiledning

5. Poengene dine oppdateres automatisk

📊 Din progresjon

0%
0 / 100 poeng (0%)
Oppgave 1 12%
Hva betyr det når en prosess demoniseres?
A
Prosessen kjører i bakgrunnen uten terminal og starter automatisk ved systemoppstart
B
Prosessen får administrative rettigheter
C
Prosessen blir beskyttet mot feil fra andre programmer
D
Prosessen blir cryptert for sikkerhet

📚 Sensorveiledning

Demonisering: En prosess som er demonisert løsriver seg fra sin terminal, blir et barnløst barn av init (PID 1), lukker standardstrømmer (stdin, stdout, stderr), og kjører typisk som en bakgrunnstjeneste. Dette er vanlig for systemtjenester som webservere, databaser og andre langkjørende tjenester.

Kjennetegn:

  • Ingen kontrollerende terminal (TTY)
  • Foreldreprosess er init/systemd (PID 1)
  • Kjører kontinuerlig i bakgrunnen
  • Ofte startet ved systemoppstart
Oppgave 2 12%
Hva er den viktigste grunnen til at en webserver bør kjøre på port 8080 i stedet for port 80?
A
Port 8080 er raskere enn port 80
B
Port 80 krever root-rettigheter, mens port 8080 kan brukes av uprivilegerte brukere
C
Port 8080 er mer sikker mot hackere
D
Port 80 er reservert for kryptert trafikk

📚 Sensorveiledning

Privilegerte porter (0-1023): Kun root kan binde til porter under 1024 på Unix-systemer. Dette er en sikkerhetsfunksjon for å hindre vanlige brukere i å starte ondartede tjenester som later som de er legitime systemtjenester.

Sikkerhetsprinsipp: Least Privilege - kjør tjenester med minst mulig rettigheter. Ved å bruke port 8080 (>1024) kan webserveren kjøre som en uprivilegert bruker, noe som reduserer skaden hvis serveren blir kompromittert.

Løsning i produksjon: Bruk reverse proxy (nginx/Apache) på port 80 som root, som videresender til applikasjon på port 8080 som uprivilegert bruker.

Oppgave 3 12%
Hva er hovedformålet med systemkallet chroot()?
A
Å endre eierskap av filer
B
Å begrense en prosess til et bestemt filsystem-tre, slik at den ikke kan aksessere filer utenfor
C
Å kryptere root-partisjonen
D
Å gi root-tilgang til normale brukere

📚 Sensorveiledning

chroot() ("change root"): Systemkall som endrer rotmappen (/) for en prosess og dens barn. Prosessen ser den nye mappen som rot og kan ikke aksessere filer utenfor dette "fengselet".

Sikkerhetsfunksjon: Isolerer prosesser fra resten av filsystemet. Hvis en webserver blir hacket, kan angriperen kun aksessere filer innenfor chroot-miljøet.

Begrensninger:

  • Ikke absolutt sikkerhet - root-prosesser kan bryte ut
  • Må kopiere nødvendige biblioteker og filer inn i chroot-miljøet
  • Moderne alternativ: containere (Docker) gir bedre isolasjon
Oppgave 4 12%
Hva er hovedforskjellen mellom operativsystemvirtualisering (containere) og maskinvirtualisering (VM)?
A
Containere er raskere, men mindre sikre enn VM-er
B
Containere deler kjernen med host-systemet, mens VM-er har egen kjerne
C
VM-er kan bare kjøre Linux, mens containere kan kjøre alle OS
D
Det er ingen praktisk forskjell

📚 Sensorveiledning

Containere (OS-virtualisering):

  • Deler kjerne med host-system
  • Lett og rask oppstart (millisekunder)
  • Bruker namespaces og cgroups for isolasjon
  • Eksempel: Docker, LXC

VM-er (maskinvirtualisering):

  • Full virtualisering med egen kjerne
  • Tregere oppstart (minutter)
  • Sterkere isolasjon
  • Kan kjøre ulike OS på samme host
  • Eksempel: VMware, VirtualBox, KVM

Valg: Containere for mikrotjenester og CI/CD. VM-er for fullstendig OS-isolasjon og ulike OS-typer.

Oppgave 5 12%
Hva står DTD for og hva er dets hovedformål?
A
Data Transfer Document - for å overføre data mellom systemer
B
Document Type Definition - definerer struktur og gyldige elementer i XML-dokumenter
C
Dynamic Type Detection - for automatisk typegjenkjenning
D
Database Table Design - for å designe databasetabeller

📚 Sensorveiledning

DTD (Document Type Definition): En spesifikasjon som definerer struktur, elementer og attributter for XML-dokumenter. Fungerer som en "kontrakt" for hvordan et XML-dokument skal se ut.

Eksempel:

<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to (#PCDATA)>
  <!ELEMENT from (#PCDATA)>
]>

Sikkerhetsproblem: XXE (XML External Entity) - angripere kan bruke DTD til å lese lokale filer eller utføre SSRF-angrep. Moderne anbefaling: Deaktiver DTD-prosessering eller bruk XML Schema (XSD) i stedet.

Oppgave 6 12%
Hvilke to HTTP-attributter bør alltid settes på session cookies for å beskytte mot XSS og man-in-the-middle angrep?
A
HttpOnly og Secure
B
Encrypted og Protected
C
SameSite og Domain
D
Path og Expires

📚 Sensorveiledning

HttpOnly: Forhindrer JavaScript-tilgang til cookien via document.cookie. Beskytter mot XSS-angrep hvor angripere stjeler session cookies.

Secure: Cookien sendes kun over HTTPS, aldri over HTTP. Beskytter mot man-in-the-middle angrep på usikrede nettverk.

Beste praksis:

Set-Cookie: sessionid=abc123; HttpOnly; Secure; SameSite=Strict

Bonus - SameSite: Beskytter mot CSRF (Cross-Site Request Forgery). Verdier: Strict, Lax, None.

Oppgave 7 12%
Hva er Same Origin Policy (SOP) i nettlesere?
A
En policy som krever at alle nettsider må bruke samme programmeringsspråk
B
En sikkerhetspolicy som forhindrer at JavaScript fra ett origin kan lese data fra et annet origin
C
En regel om at alle ressurser må lastes fra samme server
D
En metode for å kryptere trafikk mellom server og klient

📚 Sensorveiledning

Same Origin Policy: Grunnleggende sikkerhetsfunksjon i nettlesere. Forhindrer at ondartede skript på ett nettsted leser sensitive data fra et annet.

Origin defineres av:

  • Protokoll (http vs https)
  • Domene (example.com)
  • Port (80, 443, 8080, etc.)

Eksempel: https://example.com:443 og https://example.com:8080 er ULIKE origins.

Omgåelse: CORS (Cross-Origin Resource Sharing) tillater kontrollert deling mellom origins via HTTP-headere.

Oppgave 8 16%
Hvilke Linux-funksjoner brukes primært av Docker for å skape isolasjon mellom containere?
A
Virtual Memory og Swap
B
Namespaces og cgroups
C
SELinux og AppArmor
D
RAID og LVM

📚 Sensorveiledning

Namespaces: Isolerer systemressurser slik at containere ser et isolert view:

  • PID: Prosess-IDer (container ser egne prosesser)
  • NET: Nettverksstack (egne IP, porter, routing)
  • MNT: Filsystem mount points
  • UTS: Hostname og domain name
  • IPC: Inter-process communication
  • USER: User og group IDer

cgroups (Control Groups): Begrenser og måler ressursbruk:

  • CPU-bruk (CPU shares, quotas)
  • Minne (memory limits)
  • Disk I/O (blkio)
  • Nettverks-båndbredde

Docker = Namespaces + cgroups + union filesystems (layers)

🎉 Eksamen fullført!

0/100
0
Riktige svar
0
Gale svar
0%
Resultat
-
Karakter (estimat)