Bombardement med store datamængder kan finde sårbarheder i kode

Et eksempel på fuzzing kunne være en særligt indrettet pdf-fil, der måske umiddelbart virker tilforladelig, men når den bliver åbnet med pdf-læseren, udløser det en fejl, som i sidste ende kan bruges til at køre ondsindet kode på systemet. Illustration: Lasse Trolle Borup
Fuzzing-teknikken kan bruges til at finde sikkerhedsmæssige sårbarheder i kode.

Denne artikkel er skrevet til et særtema om softwareudvikling i avisen Ingeniøren.

Der er mange måder at teste software på. En automatiseret metode, som blandt andet er populær blandt folk, der søger efter it-sikkerhedshuller i software, kaldes fuzzing.

Teknikken går ud på at teste et hav af input-parametre på et stykke software. Input er i denne sammenhæng et vidt begreb. Det kan være alt fra en pdf-fil til forskellige input sendt til en tjeneste via et netværk - eksempelvis en webserver på internettet.

Ideen med fuzzing er, at det er en automatiseret proces, der kan afprøve en hel masse input op mod et stykke software, som et menneske aldrig ville have mulighed for selv at afprøve.

»Hvis du har en stor kodebase, og du ikke har tid til at pille det hele fra hinanden og læse det igennem, så kan man bruge fuzzing til at fremprovokere nogle fejl,« fortæller Lasse Trolle Borup, konsulent ved det danske it-sikkerhedsfirma ImproSec.

Ofte kan fejl i software vise sig at kunne udnyttes til at angribe et it-system med.

Pdf-læser udløser fejl

Et tænkt eksempel kan være en særligt indrettet pdf-fil, der måske umiddelbart virker tilforladelig, men når den bliver åbnet med pdf-læseren, udløser det en fejl, som i sidste ende kan bruges til at køre ondsindet kode på systemet.

Det kunne eksempelvis være ransomware. Altså software, der krypterer data på maskinen, hvor offeret så skal betale til en bagmand for at få adgang til data igen.

Fuzzing bruges til at finde ud af, hvordan pdf-filen skal indrettes for at udløse en fejl, der i sidste ende kan bruges til et angreb. Fuzzing kan dermed komme hackere til gavn, men teknikken kan også bruges af softwareleverandører eller af venligtsindede it-sikkerhedsforskere til at finde huller, så de kan blive lukket, før hackerne kommer ind den vej.

Lasse Trolle Borup fortæller, at der findes forskellige fuzzing-værktøjer, der kan sættes op til at teste programmer - eksempelvis en pdf-læser.

Mange sårbarheder bliver sværere og sværere at udnytte, siger Lasse Trolle Borup, konsulent ved det danske it-sikkerhedsfirma ImproSec: »For at udnytte en sårbarhed i Chrome skal man ofte bruge hele tre forskellige sårbarheder i Chrome.« Illustration: ImproSec

I forhold til at fuzze en pdf-læser ved at sammensætte en pdf-fil på forskellige måder for at se, om den kan udgøre en trussel, så er det en god idé at kende lidt til pdf-formatet - hvis ellers fuzzing-forsøget skal være effektivt.

Det nytter således ikke, hvis fuzzeren bare sammensætter filen på alle mulige måder. Hvis det, der kaldes filens header, slet ikke ligner en pdf-fil, så bliver filen ikke forsøgt rigtigt indlæst af pdf-læseren.

Og så bliver resten af filen, der måske indeholder kode, der kan udløse en fejl og udgøre en sårbarhed, heller ikke indlæst.

»Hvis du bare fuzzer i blinde, så du ødelægger headeren på en måde, så størstedelen af filen ikke bliver læst, så giver det ikke mening,« siger Lasse Trolle Borup.

Kraftig hardware

Det er altså vigtigt at sætte sig ind i det filformat, den protokol eller andet, man vil fuzze, så der ikke går tid med at teste en hel masse nyttesløse input. Hvad input angår, så er det også en god idé at have relativ kraftig hardware til formålet, så mange input kan testes inden for de rammer, der er defineret i fuzzeren.

»Det, det handler om med fuzzing, er, at vi er interesserede i at behandle en så stor mængde data som muligt, på så stor en del af koden som muligt, på så kort tid som muligt.«

Det er i den forbindelse også vigtigt at komme ud i hjørnerne af programmet, der tager imod inputtene - eksempelvis pdf-læseren, forklarer Lasse Trolle Borup.

‘Hjørner’ skal i denne sammenhæng forstås som dele af koden, der normalt ikke bliver brugt ved læsning af en typisk pdf-fil, men som alligevel kan vise sig at indeholde fejl, der i sidste ende kan udgøre et it-sikkerhedsproblem.

Sværere at udnytte sårbarheder

Selvom det på den måde skulle lykkedes at finde fejl i software, som kan bruges i forbindelse med et cyberangreb, så er det generelt set blevet sværere i sig selv at udnytte den slags sårbarheder i blandt andet browsere og styresystemer, forklarer Lasse Trolle Borup.

»Mange sårbarheder bliver sværere og sværere at udnytte. For at udnytte en sårbarhed i Chrome skal man ofte bruge hele tre forskellige sårbarheder i Chrome,« fortæller han.

Det hænger sammen med, at både styresystemer og browsere generelt set er blevet udstyret med en række sikkerhedsmekanismer som standard, der også skal omgås, hvis der dukker en sårbarhed op i eksempelvis Chrome.

I Googles browser er der for eksempel en funktion kaldet sandboxing, som betyder, at en del kode kører i et isoleret område i browseren, hvorfra der ikke umiddelbart er adgang til andre dele af systemet.

Så for at kompromittere noget i den sammenhæng skal der altså først findes en kodemæssig svaghed - eventuelt via fuzzing - i en del af koden, og dernæst skal der findes en sårbarhed i sandbox-funktionen, som gør det muligt at udnytte den første sårbarhed.

Derudover kan det underliggende styresystem vise sig at indeholde endnu flere beskyttelsesmekanismer, som også skal omgås for at udnytte den oprindelige sårbarhed.

Jævnligt sårbarheder via fuzzing

Der dukker jævnligt sårbarheder op i it-sikkerhedscommunitiet, som er fundet ved fuzzing. Et af de nyere eksempler drejer sig om et hold af sikkerhedsforskere hos Microsoft, som har fundet en sårbarhed i Chromes V8-javascript motor. Sårbarheden er fundet via en Microsoft-udviklet fuzzer kaldet ExprGen, har mediet Security Week tidligere oplyst.

Folkene fra Microsoft fandt frem til, hvordan det via sårbarheden og uden at bryde ud af Chromes sandbox ville være muligt for et ondsindet script at stjæle lagrede kodeord i browseren til vilkårlige websites.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (0)
Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 2017

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017
Jobfinder Logo
Job fra Jobfinder