Sikkerhetstesting tar for seg artefaktene enheter og komponenter snarere enn systemet som helhet. Det er en blanding av en “hvit-hatt” og en “svart-hatt” tilnærming, og kan gjøres fra utsiden og inn, eller fra innsiden og ut. Sikkerhetstesting drives av misbrukseksempler (misuse cases/abuse cases), og omfatter to strategier: Testing av sikkerhetsfunksjonalitet, og risikobasert testing basert på angrepsmønster.
Sikkerhetsoperasjoner
Det å passe på sikkerheten til et system etter at det har vært satt i drift, har tradisjonelt vært sett på som en (ja, nettopp) driftsoppgave som “de på IT” tar seg av.
Et vellykket programvaresikkerhetsinitiativ må imidlertid også omfatte sikkerhetsoperasjoner eller nettverkssikkerhet, for å sørge for full tilbakekopling til utviklerne.
Statisk kildekodeanalyse
Penetrasjonstesting
Ifølge Gary McGraw hviler programvaresikkerhet på tre pilarer:
- Anvendt risikostyring: Ta på deg den svarte hatten din for å avdekke alle mulige trusler. Utfør risikoanalyse på arkitekturnivå, dvs. trusselmodellering med mere. Risiko må spores og motvirkes kontinuerlig gjennom hele utviklingslivssyklusen.
- Trykkpunkter for programvaresikkerhet: Identifiser kjerneaktiviteter som bidrar til forbedret programvaresikkerhet, og sørg for at sikkerhet blir tatt hensyn til i hvert steg av programvareutviklingssyklusen. Microsoft sitt Tiltrodde databehandlingsinitiativ (Trustworthy Computing Initiative) fra 2002 er et eksempel, som resulterte i Microsoft SDL (og senere SDL Agile).
- Kunnskap og god praksis: Alle utviklere må ha et minimum av sikkerhetskunnskap, og kunne bruke sjekklister som OWASP Top 10.
Smidig utvikling og programvaresikkerhet
Smidighetsbevegelsen representerer alternativer til tradisjonell prosjektledelse i utviklingsprosjekter. Smidige metoder brukes typisk for å la utviklingsorganisasjoner respondere på usikkerhet og uventet hendelsesforløp. Scrum er den mest populære måten å introdusere smidighet, på grunn av sin enkelhet og fleksibilitet.
Innebygget sikkerhet
I en artikkel i IEEE S&P for mange år siden diskuterte Bruce Schneier hva som gjør at vi “kjøper” sikkerhet. Hvorfor får sikkerhetsoppgaver alltid lavere prioritet enn andre oppgaver? Hvorfor er utviklere generelt så lite interesserte i sikkerhet? Eksperter forteller stadig vekk utviklere at de må tenke er på sikkerhet, så hvorfor gjør ikke alle det? Hvorfor innser ikke ledere at de må sørge for å ha sikkerhetseksperter i utviklingsgruppen, på samme måte som de gjør med testere?
Innebygget personvern
Innføringen av GDPR var en gullgruve for mange konsulentselskaper – mange firma var usikre på hva det ville medføre, og brukte hundre-tusenvis av kroner på å bli “GDPR-klare”. En av de mest merkbare konsekvensene av GDPR var at mange virksomheter så seg nødt til å vaske epostlistene sine, og slette alle mottakere som ikke hadde gitt eksplisitt samtykke. Derfor fikk mange av oss gjentatte eposter hvor vi ble bedt om å bekrefte at vi fortsatt vill stå på epostlisten.
Den som tror han er ferdig utlært er ikke utlært, men ferdig
Epostsikkerhet
Dagens tekst er hentet fra kapittel 19 i Cryptography and Network Security, og handler om sikkerhet i forbindelse med elektronisk post.
Det er to typer protokoller involvert når man sender epost. En type brukes for å sende epost fra kilde til destinasjon over internett; eksempler kan være Simple Mail Transfer Protocol (SMTP) og X.400. Den andre typen brukes for å overføre meldinger mellom klienter og epost-tjenere; her er IMAP og POP de mest vanlige valgene.
Inntrengere
Dagens tekst er hentet fra kapittel 22 i Cryptography and Network Security, og handler om slemme mennesker som prøver å bryte seg inn i intetanende folks datasystemer, og hva vi kan gjøre for å forhindre dette.
Skadevare
Dagens tekst er hentet fra kapittel 21 i Cryptography and Network Security, og handler om skumle ting som du kan bli smittet av på det store, stygge internettet – med andre ord, skadevare (malware).
Internettsikkerhet (IPsec)
Dagens tekst er hentet fra kapittel 20 i Cryptography and Network Security, og handler om sikkerhet på IP-laget.
Sikkerhet uten en tråd
Dagens tekst er hentet fra kapittel 18 i Cryptography and Network Security, og handler om sikkerhet i trådløse nettverk.
Sikkerhet på transportlaget – TLS
Dagens tekst er hentet fra kapittel 17 i Cryptography and Network Security. Dette kapitlet skal se nærmere på hvordan man beskytter informasjon på transportlaget – først og fremst med TLS, men også SSH.
Brukerautentisering
Dagens tekst er hentet fra kapittel 15 i Cryptography and Network Security, og handler om autentisering av brukere som ikke nødvendigvis befinner seg på samme sted som systemet de ønsker å bruke.
Nøkkeldistribusjon og -håndtering
Dagens tekst er hentet fra kapittel 14 i Cryptography and Network Security, og handler om hvordan man håndterer og distribuerer kryptonøkler. Dette er et område som er mer komplekst enn man skulle tro; det er utfordringer rundt kryptografien som skal brukes, protokoller, og administrasjon.
Kryptografiske hash-funksjoner
Dagens tekst er hentet fra kapittel 11 i Cryptography and Network Security, og handler om kryptografiske hash-funksjoner.
Kryptografi og nettverkssikkerhet (Kapittel 10: Andre offentlige nøkler)
Dagens tekst er hentet fra kapittel 10 i Cryptography and Network Security, og handler om andre algoritmer for offentlig-nøkkel-kryptografi, som Diffie-Hellman og elliptiske kurver.
Kryptografi og nettverkssikkerhet (Kapittel 9: Offentlige nøkler og RSA)
Dagens tekst er hentet fra kapittel 9 i Cryptography and Network Security, og handler om offentlig-nøkkel-kryptografi generelt og RSA-algoritmen spesielt.
Kryptografi og nettverkssikkerhet (Kapittel 7: Blokkoperasjoner)
Dagens tekst er hentet fra kapittel 7 i Cryptography and Network Security. Dette kapitlet skal se nærmere på hvordan man bruker blokkchiffre i praksis.