Sikkerhetstesting i Itera

Woman posing in office. Photo.
Kontakt

Som nyutdannet sivilingeniør i kommunikasjonsteknologi med spesialisering innen informasjonssikkerhet er jobbmulighetene mange. I en verden der hacking blir en stadig større trussel er behovet for sikkerhetskompetanse økende. For min del ble valget lett da jeg fikk tilbud om fast jobb som tester i Itera. For å utvikle sikre løsninger er det viktig å øke både bevisstheten og kunnskapen om sikkerhet i alle ledd av programvareutvikling, også i testfasen.

Skrevet av Vilde Amundsen, Tester 

 

Testmiljøet i Itera 

Itera er kjent for et svært kompetent testmiljø som stadig ønsker å utvikle og fornye seg. Med fokus på fag og kompetanseheving har Itera dyrket frem dyktige spesialister innen blant annet ytelsestesting og testautomatisering. I årene som kommer ønsker Itera å satse på sikkerhet og sikkerhetstesting. Sikkerhetstesting er allerede et produkt Itera tilbyr gjennom kontoret i Ukraina, men nå skal kompetansen videreutvikles i Norge. Å være en del av Iteras satsning på sikkerhetstesting i Norge var svært appellerende til meg som nyutdannet. 

Hva er sikkerhetstesting? 

Sikkerhetstesting har som formål å oppdage sårbarheter i et system og avgjøre hvorvidt informasjon og ressurser er godt nok beskyttet fra mulige angripere. Det vil aldri være mulig å garantere at et system er 100% sikret mot angrep - mennesker gjør feil - men med riktige verktøy og kompetanse vil man kunne si noe om sannsynligheten for og konsekvensen av ulike risikoer. Sikkerhetstesting introduseres for å identifisere risikoer og sårbarheter før de eventuelt blir utnyttet, og legger grunnlag for prioritering av nødvendige tiltak for å mitigere eksisterende sårbarheter. Sikkerhetstesting kan gjennomføres på ulike nivåer: i infrastrukturen til et system ved å undersøke nettverks- og brannmurkonfigurasjoner, på programvarenivå ved å penetrasjonsteste applikasjonen og på organisasjonsnivå ved å undersøke sikkerhetsrutiner til bedriften og de ansattes kompetanse.  

Hvordan utføres sikkerhetstesting? 

For å gjennomføre en sikkerhetstest i praksis vil det være naturlig å ta utgangspunkt i de vanligste truslene et system er utsatt for. For webapplikasjoner er OWASP top 10 et fornuftig sted å starte. Open Web Application Security Project (OWASP) er en internasjonal ideell organisasjon dedikert til webapplikasjonssikkerhet som jevnlig publiserer en rapport som tar for seg de 10 mest kritiske risikoene webapplikasjoner er utsatt for. Som sikkerhetstester er det nødvendig å være klar over hvilke sårbarheter en applikasjon står overfor og hvordan undersøke om sårbarhetene er til stede i applikasjonen som skal testes.  

Det vanligste angrepet mot en webapplikasjon er SQL Injection. SQL Injection er et angrep som utnytter felter der brukeren kan skrive inn data på en nettside. Angrepet lar seg gjøre dersom dataen fra brukeren ikke valideres godt nok før den blir sendt videre til systemet. Eksempelvis kan en nettside fungere slik at dersom du skriver inn ditt ansattnummer får du frem adresse, telefonnummer og epost knyttet til ditt ansattnummer. Overført til SQL spørring vil det kunne se slik ut: SELECT * FROM  users WHERE employee_id = ‘input from user’.

En sikkerhetstester vil forsøke å manipulere SQL spørringen til å kjøre ondsinnet SQL-kode i stedet for å sende inn et vanlig tekstparameter for å få informasjon fra databasen. Ved å skrive inn logiske uttrykk som benyttes av SQL-databaser kan en angriper forsøke å utføre kall via feltet som er tiltenkt vanlig brukerinput. Et enkelt angrep for å sjekke valideringen til nettsiden er å skrive inn userInput = 1234567 or 1=1. Sistnevnte vil kunne kjøres som TRUE dersom ingen validering er tatt i bruk, og dermed vil nettsiden gi all informasjon om alle ansatte til en person som ikke skulle ha hatt det. Det finnes mange variasjoner av SQL Injection angrep, noen mer kompliserte enn andre. Et nyttig tips for å øve seg på ulike angrep av ulik vanskelighetsgrad (lovlig) er å laste ned OWASPs egen penetrasjonstesting-sandbox, WebGoat, som består av en server og en sårbar applikasjon med ulike oppgaver. Gjennom et pedagogisk trinn-program og nyttige hint kan man øke kunnskapen om de mest kritiske sårbarhetene ved å utføre etisk hacking i praksis i et trygt miljø.  

Sikkerhetstesting i Itera 

I tilbudsprosesser der det er hensiktsmessig informerer Itera om muligheten for sikkerhetstesting. Sikkerhetstesting er hensiktsmessig i prosjekter der det foreligger risiko for økonomisk eller personlig informasjonstap, omdømmeskader eller andre tap for kundens virksomhet. Formen for sikkerhetstesting avhenger av hvilken prosjekttype som benyttes. Itera tilbyr både integrert sikkerhetstesting som en del av programvareutviklingen der komponentene blir testet i tråd med utviklingen, og uavhengig sikkerhetstesting av en ferdigstilt applikasjon som er klar for produksjon. Anbefalingen fra Itera er å investere i integrert sikkerhetstesting for å kunne oppdage sårbarheter på et tidlig stadium og dermed minske kostnadene for å tette hullene.    

Vilde Amundsen

Vilde Amundsen

Tester

Vilde.Amundsen@itera.no