Dansker vil offentliggøre flere sprækker i Windows 10's forsvar - udenom Microsoft
Den danske it-sikkerhedskonsulent Morten Schenk fra virksomheden Improsec har lirket rundt i de forsvarsmekanismer, Microsoft har implementeret i de allerseneste udgaver af Windows 10, og som skal forhindre succesfulde angreb mod styresystemet. Henover en periode på flere måneder er det lykkedes ham at finde adskillige sprækker i de tiltag, der har til formål at hærde styresystemet.
'Hærde' vil i denne sammenhæng sige grundlæggende og generelle sikkerhedsmekanismer, som kan træde i kraft, skulle styresystemet eller den software, der kører på det, vise sig at indeholde egentlige sårbarheder.
Så hvis der eksempelvis dukker en sårbarhed op i en driver fra en tredjepart, så er der tiltag på plads i Windows - og i andre moderne styresystemer - der skal forhindre, at sårbarheden uden videre kan udnyttes til at kompromittere systemet.
Noget af det, Morten Schenk har har kigget på, er muligheden for at eksekvere kode i det, der kaldes kernel-mode, selvom man befinder sig i user-mode.
Morten Schenk forklarer, at begreberne user-mode og kernel-mode kommer fra specifikationer, som Intel har udarbejdet for over 20 år siden.
De beskriver en sikkerhedsgrænse i styresystemet. Kernel-mode har alle rettigheder på computeren og det er her drivere, både Windows egne, men også dem til eksempelvis grafikkort og andet kører.
User-mode er den del af styresystemet, som brugeren anvender. Det vil eksempelvis sige brugergrænseflade, herunder mus og keyboard, samt programmer som Microsoft Office og browseren, forklarer Schenk.
»Det interessante ud fra et sikkerheds-aspekt er, at i kernel-mode har man alle rettigheder i et styresystem.«
Adgang til kernel-mode
En adgang til kernel-mode kan dermed gøre det muligt at øge privilegierne for brugeren, der befinder sig i user-mode. Så der eksempelvis kan opnås admin-rettigheder på systemet.
»Hvis jeg på en eller anden måde kan køre programmer i kernel-mode, så kan jeg også hæve mine privilegier, uanset hvem jeg er,« siger Morten Schenk.
Han fortæller, at Microsoft fra Windows 8.1 og i Windows 10 har indført flere tiltag, der skal forhindre, at kode uretmæssigt kan eksekveres i kernel-mode, så der kan opnås eskalering af rettigheder. Og i de seneste opgraderinger til Windows 10, nærmere bestemt anniversary-update og creators-update, har Microsoft implementeret flere tiltag, der skal gøre det endnu sværere at eksekvere kode i kernel-mode.
Men ikke desto mindre kan Morten Schenk altså fortælle, at han har udviklet flere teknikker til at omgå også de seneste sikkerhedstiltag fra Microsoft.
»Jeg har skilt kernen ad for at finde ud af, præcist hvad de har fikset i de to opdateringer, og hvordan jeg kan omgå de beskyttelser, der er lagt ind.«
I den forbindelse har Morten Schenk blandt andet anvendt en kernel-debugger fra Microsoft kaldet Windows-debugger (WinDBG), og så har han ellers studeret hexadecimal-kode for at finde ud af præcist, hvad der i de nyere Windows 10-udgaver bevirker, at gamle teknikker til få lov at eksekvere kode i kernel-mode ikke længere fungerer.
»De beskyttelser, de har lagt ind, blokerer for de tidligere metoder, men de kan omgås.«
Ganske teknisk
Black Hat-præsentation bliver ganske teknisk, bedyrer Morten Schenk. Uden at gå helt langt ned i teknikken, så er en af de beskyttelses-tiltag, det er lykkedes ham at omgå i de nyere Windows 10-versioner Kernel address space layout randomization (KASLR).
Det vil som navnet antyder sige, at Windows-kernel anvender tilfældige hukommelsesområder for hver opstart, hvilket gør det svært for en angriber af forudsige, hvilken del af hukommelsen, der skal tilgås for at kompromittere systemet.
Morten Schenk har fundet to metoder til at få informationer fra user-mode om, hvilke hukommelsesområder Windows-kernel faktisk anvender efter boot. Metoderne tæller dog ikke som egentlige sårbarheder i styresystemet, fortæller han.
»Microsoft vil ikke betegne det som en sårbarhed, fordi det kræver flere trin at udnytte det her,« siger Morten Schenk og tilføjer:
»Det er også en af grundene til, jeg ikke har indsendt det til Microsoft, de ville ikke have godtaget det.«
Udsagnet baserer Morten Schenk på, at han har læst Microsofts beskrivelser af virksomhedens sårbarhedsprogrammer. Og ifølge Schenk passer hans research ikke ind i disse programmer, ligesom han tidligere har indsendt noget andet til Microsoft, som er blevet afvist af netop med henvisning til, at det ikke var sårbarheder.
Udenom Microsoft
Den præcise proof-of-concept-kode, der gør det muligt at omgå de nye sikkerhedsmekanismer, har Morten Schenk tænk sig at offentliggøre i forbindelse med en præsentation på den store it-sikkerhedskonference Black Hat, der finder sted sidst i juli i Las Vegas
»Nu har jeg lavet koden til det, og jeg frigør den på Blackhat som en del af min præsentation. Og så kan alle andre også gøre det (omgå sikkerhedsmekanismerne i nyere Windows 10-udgaver, red.)«
Når it-professionelle opdager mulige sikkerhedsproblemer i software regnes det normalt for god stil at kontakte producenten, så denne kan få en rimelig chance for at lukke hullerne, inden konkrete informationer bliver offentliggjort. Det kaldes også responsible disclosure.
Du har vel lavet en slags responsible disclosure aftale med Microsoft?
»Nej, det har jeg faktisk ikke.«
Morten Schenk mener ikke, det giver mening med responsible disclosure i forhold til de metoder, han har fundet, da der ikke er tale om egentlige sårbarheder i styresystemet, men teknikker til at omgå de mekanismer, der skal beskytte mod sårbarheder.
»Man kan sige, at de her ting handler om designbeslutninger, det er ikke en kodefejl. Det er ikke noget, man bare kan ændre nu og her.«
Men ville der ske noget ved at gøre Microsoft opmærksom på det på forhånd?
»Det ville der nok ikke. Man kan sige, at det gør ikke nogen forskel, om jeg gør dem opmærksom på det nu eller til præsentationen,« siger Morten Schenk og henviser til, at Microsoft alligevel ikke ville kunne nå at fikse problemerne inden Black Hat-præsentationen.
Og desuden ser han også en anden risiko ved at spille med alt for åbne kort inden Black Hat i forhold til Microsoft.
»Jeg kunne risikere, at de ville komme med en advokat og sige, at jeg ikke må fremlægge det.«
Skulle der sidde nogle ondsindede hackere på spring med sårbarheder, der faktisk kan udnytte de teknikker, Morten Schenk har fundet frem til, så ville det bestemt ikke være et positivt scenarie, understreger han.
»Omvendt har jeg det lidt sådan, at hvis de (hackerne, red.) har en masse sårbarheder liggende klar, så er det jo enten fordi Microsoft eller tredjeparter har lavet softwareprodukter med sårbarheder i. Og så har de ikke rigtigt gjort deres job godt nok,« siger Schenk og tilføjer:
»Det ser man meget af efterhånden. Jeg synes, det er lidt utroligt, at der ikke er bedre audit fra leverandørernes side af deres egen kode.«
Læs beskrivelsen af Morten Schenks Black Hat-præsentation her for lidt flere tekniske detaljer.
