Leksjon 11: Proggramvaresikkerhet Flashcards

(18 cards)

1
Q

Hva er programvaresikkerhet?

A

Å utvikle programvare som oppfører seg som forventet- også under angrep.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hva er bugs og flaws?

A

Bugs: Implementasjonsfil- ofte lett å fiks
Flaws: Designfeil- vanskeligere å oppdage og rette

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvorfor er sikkerhet fra start viktig?

A

Fordi designfeil (flaws) er vanskligeere å rette senere.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvorfor er det vanskelig å mål programvaresikkerhet?

A

Fordi angrep er ulike og data om angrep er ufullstendige.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva er BSIMM

A

Et rammeverk som brukes for å måle modenhet og praksis i programvaresikkerhet hos virksomheter. Det viser hva andre faktisk gjør for å utvikle sikker programvare – basert på observasjoner, ikke teori.

🎯 Formål med BSIMM:
Hjelpe virksomheter å vurdere og forbedre sikker programvareutvikling
Vise beste praksis fra ekte selskaper
Gi målbare aktiviteter virksomheter kan bruke

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Building Security In Maturity Model (BSIMM)- praksisområder

A

BSIMM består av 4 hovedområder med totalt 12 praksisområder, og mange konkrete aktiviteter innen hvert område.

De 4 hovedområdene:

Ledelse og styring – strategi, opplæring, etterlevelse
Etterretning – angrepsmodeller, design, standarder
Trykkpunkter – analyse, kodegjennomgang, testing
Utrulling – penetrasjonstesting, miljø, konfigurasjon

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hva er en arkitkturanalyse

A

Analyse for å oppdage strukturelle sikkerhetsfeil i design. Oppdage flaws før det er for seint..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvilke steg inngår i en arkitkturanalyse?

A

Motstandsdyktighet mot angrep
➤ Bruk trusselmodellering, f.eks. STRIDE:
S: Spoofing (late som du er noen andre)
T: Tampering (endre data)
R: Repudiation (fornekte handling)
I: Information disclosure (lekkasje)
D: Denial of Service (angrepet stopper tjenesten)
E: Elevation of Privilege (få høyere tilgang enn du skal)
➤ Bruk DREAD for å vurdere alvorlighetsgrad:

Damage, Reproducibility, Exploitability, Affected users, Discoverability

Finne tvetydigheter
➤ Let etter uklare eller ufullstendige antakelser/design
➤ To personer analyserer systemet hver for seg og diskuterer funn

Sårbarheter i underliggende systemer
➤ Analyser hvilke plattformer, biblioteker og komponenter som brukes
➤ Hva skjer hvis disse svikter eller endrer seg?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

STRIDE/DEAD- Hva står STRIDE for

A

Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hva står DREAD for?

A

Damage, Reproducibility, Exploitability, Affected Users, Discoverability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hva er penetrasjonstesting?

A

Simulerte angrep for å teste sikkerheten – ofte gjort av eksterne eksperter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvorfor trengs penetkasjonstesting, selv ved sikker utvikling?

A

Fordi ingen er feilfrie og angriperee tenkeer utenfor forventede scenarier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

OWASP Top Ten

A

Injisering
Råtten autentisering
Eksponering av sensitive data
XML-eksterne entiteter (XXE)
Råtten aksesskontroll
Feilkonfigurert sikkerhet
Cross-site scripting (XSS)
Usikker deserialisering
Komponenter med kjente sårbarheter
Utilstrekkelig overvåkning og deteksjon

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sikkrhetsfeller å unngå

A

🔐 1. Ikke anta tillit
Betydning:
Ikke stol på data, brukere eller systemer automatisk – sjekk og bekreft alltid.

Sikkerhetsfeil det forebygger:

Angrep fra innsiden (insider threat)
Brukere som gir seg ut for å være noen andre (spoofing)
Dårlig validering av input (kan føre til injeksjonsangrep, XSS osv.)
Eksempel:
Ikke anta at en bruker som er pålogget fortsatt er den samme etter 30 minutter – krev re-autentisering etter timeout.

✅ 2. Autoriser etter autentisering
Betydning:
Før du gir tilgang til noe, må du både vite hvem personen er (autentisering) og hva de har lov til å gjøre (autorisasjon) – i den rekkefølgen.

Sikkerhetsfeil det forebygger:

At en bruker kan gjøre mer enn de skal (privilegieforløfting)
Gammel tilgang (f.eks. når en ansatt bytter rolle, men beholder gamle rettigheter)
Aksesskontroll-feil (f.eks. en vanlig bruker får admin-tilgang)
⚙️ 3. Skill mellom data og kontrollinstruksjon
Betydning:
Data (f.eks. brukerinntasting) skal aldri blandes med programlogikk/kode. Du må behandle brukerinput som potensiell trussel.

Sikkerhetsfeil det forebygger:

Injeksjonsangrep, som SQL-injeksjon og Command injection
At brukere kan få applikasjonen til å utføre kommandoer den ikke skulle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hva skal man gjør med input?

A

All data som kommer utenfra – enten fra brukere, andre systemer, eller sensorer – må betraktes som mistenkelig og valideres før bruk.

📋 Bruk hvitlisting (whitelisting)
Tillat kun det du vet er trygt, i stedet for å blokkere det som er farlig (svartlisting).
– Eksempel: Tillat kun tall 0–9 i et telefonnummer, i stedet for å prøve å blokkere tegn som <, ‘, etc.

🧭 Sentralisert kontroll av validering
Ha én sentral plass i koden hvor validering gjøres, ikke spredd rundt.
– Dette gjør det lettere å oppdatere og sikre valideringen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hva er en sikkerhetsforkjemper?

A

En utvikler med fokus på sikkerhet i teamet sitt.

17
Q

Hva er viktig for trygg bruk av kryptografi?

A

Bruk standarisrte algoritmer og ekstrahjelp. Unngå å lage egne løsninger

18
Q

Hva betyr «lisens til å kode»?

A

Man bør ikke lære å kode uten å lære sikker koding.