INF329: Utvalgte emner i programutviklingsteori Sikkerhetsanalyse av programvare



Like dokumenter
Livsløpstesting av IT-systemer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Vann i rør Ford Fulkerson method

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Steg for steg. Sånn tar du backup av Macen din

Bruk av oppgaver og grupper i

Brukerveiledning WISEflow

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

FIRST LEGO League. Stjørdal Daniel Storsve Gutt 11 år 0 Henrikke Leikvoll Jente 11 år 0 Elias Bakk Wik Gutt 11 år 0 Julie Dybwad Jente 11 år 0

Projeksjoner av vektorer Analyse av værdata

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

INTERVJUGUIDE. Generell disposisjon

En oppsummering (og litt som står igjen)

1. COACHMODELL: GROW PERSONLIG VERDIANALYSE EGENTEST FOR MENTALE MODELLER. (Noen filtre som vi til daglig benytter)...

BESLUTT: Beslutningsprosesser i borettslag og sameier: Hva fører til

Metoden er et godt verktøy til å få kontroll over arbeidet i klassen og for å sikre at alle elevene både bidrar og får bidra.

Kom i gang med Nysgjerrigper

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

vitenskapen ikke gir rom for å tro på Gud. For opptak:

Romfartskarriereprosjektet 2016

Generelt om operativsystemer

Fra datax til Visma eaccounting

INF1000 Metoder. Marit Nybakken 16. februar 2004

GJENNOMGANG UKESOPPGAVER 9 TESTING

ARK 2014 Arkitekturfaget - observasjon fra en tjenesteleverandør

Et eksempel: Åtterspillet

AlgDat 12. Forelesning 2. Gunnar Misund

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Brukermanual for kommuneansvarlig og testleder

CRIStin 2.0 Om videreutvikling av CRIStin-systemet. Oppstartseminar 22. Oktober 2013

Risikobilder kunstneriske uttrykk eller fotografisk sannhet? Stein Haugen Professor II, NTNU / FoU-sjef Safetec Stein.haugen@safetec.

Virus på Mac? JA! Det finnes. Denne guiden forteller deg hva som er problemet med virus på Mac hva du kan gjøre for å unngå å bli infisert selv

Innføring i blokkjedeteknologi. Slobodan Petrović, NTNU Gjøvik 14/

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

ADDISJON FRA A TIL Å

FIRST LEGO League. Romsdal Hydro Sunndal. Lagdeltakere:

Veileder for opplasting av AKTIV sporlogg til PC

Forskningsmetoder i informatikk

Utdrag fra Beate Børresen og Bo Malmhester: Filosofere i barnehagen, manus mars 2008.

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven Prosessdokumentasjon - Alternativ 1

Intranett: Hvordan komme i gang

Bridging the gap: taking BIM to the construction site Case: BIM-kiosker på Urbygningen ved NMBU

Tilkobling og Triggere

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Kjenn din PC - Guled Yusuf

Øvingsforelesning TDT4105

HVA NÅ? når mor eller far til dine barn er syk

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

Norskprøven som døråpner til arbeidsmarkedet?

Innebygd personvern og personvern som standard. 27. februar 2019

Learning activity 2 Webdesign Malin Jonsson

Hva, Hvorfor og litt om Hvordan

PEDAGOGISK TILBAKEBLIKK. Sverdet - August 2014

VITEC. Veiledning nytt år. EmProf årsavslutning LAST EDITED:

Ingen adgang - ingen utvei? Fafo-frokost

Straffespark Introduksjon Scratch Lærerveiledning

Hasardidentifikasjon. Hvordan finne ut hva som kan gå GALT FØR det går galt.

Manual MicroBuild.no Engineering

HAR VI GOD NOK KONTROLL? NYE GREP OM SIKKERHETSLEDELSE

Norton Internet Security Online Brukerhåndbok

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.

Norsk DS A. side 1

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Kapittel og 5. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 4.

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Ny GIV og andre satsningsområder i skolen. Egil Hartberg, HiL 12. mars Værnes

The agency for brain development

Den gode forelesningen

Tilhører: HAUGALANDET SKOLE ARBEIDSLIV. Utdanningsvalg i praksis. Lokalt arbeidshefte i faget utdanningsvalg 10.

HER STÅR SKREVET ORD DU MÅ LÆRE, SPRÅK ER VIKTIG OM VI I VERDEN SKAL VÆRE.

Tingenes tilstand: Programvaresikkerhet i offentlig sektor

Korteste vei i en vektet graf uten negative kanter

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Legg merke til at summen av sannsynlighetene for den gunstige hendelsen og sannsynligheten for en ikke gunstig hendelse, er lik 1.

Muntlige ferdigheter i klasserommet

Hvorfor objektorientert programmering?

Brukerveiledning VIGO bedrift FylkesAdministrator

Oppgaven består av to deler, del A og del B. Alle skal besvare både del A og del B, men det finnes noen valgmuligheter innenfor hver del.

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

versjon 1.1 Brukermanual

Nyttige samtaleverktøy i møte med studenten

UNIVERSITETET I OSLO

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

1.) Behandler demonstrerer først med en av deltakerne. Følger intervjuguiden (se side 2) og fyller inn i boksene i modellen (se side 3).

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Fremtiden tilhører de kreative. WeDo 2.0. Eksperimenterende naturfag ROBOTER OG IT PROBLEMLØSNING KREATIVITET SAMARBEID

ShareCat Bruker Manual

Steg 1: Regneoperasjoner på en klokke

Ledersamling Øvre Eiker kommune 20.januar KS KommIT. Oslo

FIRST LEGO League. Hammerfest 2012

RiskManager Avvikshåndtering. Kurshefte for meldere

Kanter, kanter, mange mangekanter

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Kort oversikt over. eksport-/import-programmet for. WinMed

Det er frivillig å delta i spørreundersøkelsen, ingen skal vite hvem som svarer hva, og derfor skal du ikke skrive navnet ditt på skjemaet.

[kurs i komplekse programmer]

Klasser, objekter, pekere og UML. INF gruppe 13

Transkript:

INF329: Utvalgte emner i programutviklingsteori Sikkerhetsanalyse av programvare Kap. 6, «Auditing Software» (s. 115) Kristian Harms, harms@ii.uib.no Presentert 21. september 2005

Merriam-Webster: Audit Function: noun Etymology: Middle English, from Latin auditus (act of hearing), from audire 1: a: A formal examination of an organization s or individual s accounts or financial situation b: The final report of an audit 2: A methodical examination and review På norsk: Security Audit = Sikkerhetsanalyse/-gjennomgang

Generelt Sikkerhet tenkes på for sent Gjelder også sikkerhetsanalyse For fokusert på kodegjennomgang ved slutten av implementasjonsfasen Bør fokusere mer på arkitekturanalyse «Det hjelper ikke å kontrollere vinduer og dører når huset mangler en vegg»

To typer analyse Analyse av arkitekturen/designen Analyse av implementasjonen

Arkitekturanalyse: Når? Begynn når man har et førsteutkast til arkitekturen for prosjektet.

Arkitekturanalyse: Hvem? Noen må ha ansvaret Trekk inn folk fra utenfor prosjektet Unngå å bruke sikkerhetsansvarlig (kap. 2) Vanskelig jobb, krever erfaring og ekspertise Dann gjerne et lag med variert bakgrunn

Arkitekturanalyse: Hvordan? Boken anbefaler tre faser: 1. Innsamling av informasjon 2. Analysering av problemer 3. Utarbeidelse av en raport Mer strukturert enn en ad hoc «red teaming»-fremgangsmåte

Arkitekturanalyse: Samling av info: Kravspesifikasjonen Har en klar fremstilling av prosjektets oppgaver, konteksten for prosjektet. Har helst en sikkerhetspolise Bør utfylles av intervjuer med arkitektene osv.

Arkitekturanalyse: Samling av info: Fremgangsmåte Forstå systemet på et høyt nivå Lær mest mulig om sikkerhetsrelevante ting Snakk med sikkerhetsansvarlig (kap. 2) Les all dokumentasjon for prosjektet Noter inkonsistens og ta dette opp med relevante personer Inkonsistens er en vanlig kilde til sikkerhetsfeil Fokuserte samtaler med utviklingslaget

Arkitekturanalyse: Samling av info: Fremgangsmåte (forts.) Lær å prioritere tiden Det er fullt mulig å skusle all tilgjengelig tid bort på én komponent Undersøk deler av systemet i prioritert rekkefølge Husk å inkludere «krympepakket» programvare, da dette medfører reelle farer: Les det du kan på BugTraq og lignende, plag kundeservice, osv

Arkitekturanalyse: Analyseringsfasen Handler om å vurdere risiki metodisk - alvorlighetsgrad - mottiltak - omkostninger

Arkitekturanalyse: Analysefasen: Angrepstrær En metodisk måte å vurdere risiki Basert på såkalte «feiltrær» Man bygger et tre hvor - roten er et mål for en potensiell angriper - indre noder er mer abstrakte måter å utføre et angrep på - løvnodene er konkrete måter å utføre et angrep på

Arkitekturanalyse: Analysefasen: Angrepstrær (forts.) Representerer beslutningsprosessene til en velinformert angriper Mer kunst enn videnskap: Umulig å sørge for at man har et uttømmende tre.

Arkitekturanalyse: Analysefasen: Angrepstrær (forts.) Relevant informasjon om angrep kan legges inn: Tid, krefter, omkostninger, risiko og konsekvenser for angriperen, den angrepne, programvarehuset, osv.

Arkitekturanalyse: Analysefasen: Hvordan lage angrepstrær Fokusér på data og ressurser som kan angripes Modulene i prosjektet Moduler utenfor prosjektet (ofte krympepakket) Grensesnitt mellom disse er ofte svake punkter

Arkitekturanalyse: Analysefasen: Hvordan lage angrepstrær? (forts.) Brainstorming med tavle Skriv ned alle ideer til angrep man har fra før Folk får alltid nye ideer på stedet Til slutt: - fordel ideene på de tilstedeværende - folk lager deltrær hver for seg - deltrærne samles til et angrepstre på et nytt møte

Arkitekturanalyse: Raportfasen Til slutt trenger man noe mer lesbart Lag en raport utfra angrepstreet Inkludér en oversikt over de aller groveste problemene med pekere inn i selve raporten - fordi mange trenger nettopp denne infoen - velegnet til en oppsummering/introduksjon Gruppér problemer etter type Rangér problemer etter alvorlighetsgrad innad i hver gruppe

Arkitekturanalyse: Raportfasen: For hvert problem: Kort: - En én linjes vurdering av alvorlighetsgrad - Anslått omkostning ved et angrep - Anslått risiko for angriperen - Anslått arbeidsmengde for angriperen

Arkitekturanalyse: Raportfasen: For hvert problem (forts.): Lengre: - Forklar problemet (detaljert nok til at folk uten sikkerhetsbakgrunn skjønner det) - Gå gjennom konsekvensene - Hvordan det kan utbedres (foreslå gjerne konkretre forandringer i arkitekturen)

Implementasjonsanalyse Fortsatt viktig To hovedpunkter: 1. Sjekk at implementasjonen faktisk er i henhold til designen. 2. Sjekk for svakheter som er spesifikke for implementasjon

Implementasjonsanalyse (forts.) Vanskelig! Koden er omfattende og kompleks Krever forskjelligartet ekspertise: - sikkerhet - programmering - dataflyt

Implementasjonsanalyse: Fremgangsmåte Snarveier må til - ikke praktisk å gå gjennom hele koden Still smarte spørsmål til utviklerne Se etter symptomer på problemer - f.eks. funksjonskall med rykte på seg - forøvrig dekket i andre del av boken

Implementasjonanalyse: Fremgangsmåte (forts.) Fokusér på steder hvor programmet tar inn data fra bruker/komponenter: - nettverk - kommandolinje - miljøvariabler - GUI-felter - filer som leses - komponenter i og utenfor prosjektet - og så videre...

Implementasjonsanalyse: Når man finner problemer Man kan demonstrere hullet - eneste måten å bevise at det eksisterer - arbeidskrevende - utelates helst Man kan omskrive problemområdet - greiest selv når man ikke er sikker på at det er et problem

Implementasjonsanalyse: Automatiserte verktøy Utfører en statisk sjekk av programteksten - dog smartere enn utstrakt bruker av grep Ser etter kjente problemområder: - problematiske funksjonskall - problematiske språklige konstruksjoner RATS Flawfinder ITS4

Implementasjonsanalyse: Automatiserte verktøy (forts.) Gir lange lister med potensielle problemer - må gjennomgåes for hånd Ikke et verktøy for at hvermann skal kunne gjøre ekspertenes arbeide Derimot et verktøy for å gjøre ekspertenes jobb enklere Langt fra perfekte

Spørsmål?