Det var kun en lille skare af sikkerhedsinteresserede, der læste sikkerhedsforskeren Anders Foghs blog "Negative Result: Reading Kernel Memory From User Mode", da den 28. juli sidste år blev lagt ud på cyber.wtf. I artiklen beskriver danskeren, hvordan ’speculative execution’, en feature i moderne chip-design, som speeder processoren op, udgør en alvorlig sikkerhedsrisiko.
Det var en hel del flere mennesker, der lidt over fem måneder senere hørte om de hidtil alvorligste sårbarheder i mikrochips. Det britiske it-site The Register beskrev 2. januar, hvordan Intel-chips på grund af speculative execution var sårbare over for angreb, så hackere kunne få adgang til passwords, krypteringsnøgler og anden information, som et program anvender, mens det afvikles. Nyheden spredte sig fra specialiserede teknologi-sites til massemedierne, og det viste sig, at stort set alle moderne chips, ikke kun Intels, var sårbare. Der var tre sårbarheder, Meltdown- og to Spectre-varianter, som betød, at kode i normal user-mode kunne anvende speculative execution som løftestang til at få adgang til CPU'ens allerhelligste kernel-mode og aflæse sensitive data fra programmer under afvikling.
Ganske som Anders Fogh havde forudsagt i sommeren 2017.
Pandoras boks åbnet
”... Jeg tror, at det er muligt at læse kernel memory fra en unprivileged user mode process,” lød det på Anders Foghs blog fra juli 2017, hvor han gennemgik de grundlæggende principper for Meltdown- og Spectre-sårbarhederne. Til daglig arbejder han som Principal Security Researcher for GDATA Advanced Analytics i Tyskland. Her rådgiver han virksomheder om it-sikkerhed og efterforsker digitale indbrud. Det handler mest om software-relaterede sårbarheder, men han har længe haft en interesse for sårbarheder i chips, som han researcher i sin fritid. Det begrænser selvfølgelig, hvor meget tid han har til den research.
– Min ambition var at skrive et videnskabeligt notat om det, men jeg havde ikke tid til det, siger Anders Fogh i dag til Prosabladet.
Han skulle nemlig på 14 dages ferie. Så han skrev bloggen fredag 28. juli, fik en kollega til at læse korrektur og tog så på ferie.
Det lykkedes ikke Anders Fogh at eftervise sin teori eksperimentelt grundet en banal fejl i testopsætningen, men han vidste, at han var på sporet af noget stort. ”Selvom det ikke lykkedes for mig at læse kernel-mode uden privilegier, så føler jeg, at jeg har åbnet Pandoras boks,” skrev han på bloggen og henviste til research, som relaterede sig til Spectre. Efter ferien lykkedes det for ham at skrive et program, der udnyttede Meltdown-sårbarheden.
– Jeg kom tilbage fra ferie i august og fik Meltdown til at fungere, siger Anders Fogh.
Han blev efterfølgende hyret af et firma til at arbejde videre med chip-sårbarhederne. Han kan ikke afsløre, hvilket firma der er tale om, men fortæller gerne Prosabladets læsere om opklaringsarbejdet, som førte ham til chip-industriens største sikkerhedsproblem.
Black Hat 2016: Noget er galt
Anders Fogh var faktisk allerede på sporet af sårbarheden i moderne chip-design i sommeren 2016, da han forberedte en præsentation til hacker-konferencen Black Hat 2016 i USA.
– Jeg havde en fornemmelse af, at der var noget galt. Der er nogle specielle hukommelseslæse-kommandoer som prefetch, der henter data, uanset hvilket sikkerhedsniveau du har. Du får ikke data, men du kan se, hvor lang tid det tager at hente data, forklarer Anders Fogh.
Den slags indirekte information er vigtig. Ved hjælp af eksterne målepunkter kan man udlede information om processorens indre virkemåde og memory-layout. Det kan benyttes i såkaldte side-channel-angreb.
– Man ser på sideeffekter af, hvad processoren laver. Det er lidt ligesom Egon Olsen fra Olsen-Banden. Han kender ikke koden til pengeskabet, men han kan høre klikket, når han drejer på kodehjulet, siger Anders Fogh.
Prefetch-kommandoen bad om data fra kernel-mode, og selvom data ikke blev udleveret af processoren, kunne processortiden anvendt på prefetch-kommandoen måles.
– Det passede ikke ind i mit verdensbillede, at kommandoen ikke blev afbrudt før. Sikkerhedstjekket kom simpelthen for sent, siger Anders Fogh.
Han gav en præsentation på Black Hat-konferencen med titlen ”Using Undocumented CPU Behaviour to See into Kernel Mode and Break KASLR in the Process”, hvor han viste, hvordan hackere kunne få adgang til en processors kernel-mode. Sammen med sikkerhedsforskeren Daniel Gruss fortalte Anders Fogh tilhørerne, hvordan prefetch-kommandoen kan bruges til at udlede information om placeringen af vigtig kernel-memory - information, som Kernel Address Space Randomized Layout (KASLR) ellers skulle beskytte ved at placere vigtig system-memory på tilfældige systemadresser.
KAISER og Project Zero
I slutningen af 2016 begyndte Anders Fogh at indkredse Meltdown- og Spectre-sårbarhederne yderligere. Han var i gang med at forberede en præsentation til HackPra-konferencen på Ruhr-universitetet i Bochum. Han skulle præsentere 17. januar 2017, og under arbejdet med præsentationen begyndte han at se nærmere på speculative execution. En moderne chip anvender speculative execution til at gætte, hvad den næste instruktion kan være for at udnytte CPU'en bedst muligt. Hvis gættet er forkert, smides resultatet væk - hvis det er rigtigt, har CPU'en sparet tid. Ulempen er, at speculative execution kan misbruges til at få adgang til kernel-mode. Anders Fogh vidste, at han var på sporet af noget, men han havde brug for hjælp, da hans egen tid ikke slog til.
– Det meste af min forskning sker i fritiden. Når jeg mener, jeg har fundet noget godt, ringer jeg til kammeraterne. Jeg prøvede i marts 2017 at sælge projektet om Meltdown til Daniel Gruss og hans kollegaer på Graz-universitetet, men de havde travlt med KAISER, siger han.
KAISER (Kernel Address Isolation to have Side-channels Efficiently Removed) var Graz-forskernes arbejde med at udvikle en patch, der skulle afhjælpe KASLR-sårbarheden ved at forbedre adskillelsen mellem brugerprogrammers memory og styresystemernes memory. KAISER er siden blevet anvendt til at udvikle Kernel Page-Table Isolation (KPTI) som værn mod Meltdown-sårbarheden.
Det var ikke første gang, at Anders Fogh har forsøgt at få Graz-forskerne til at samarbejde med ham, men dels passede det ikke tidsmæssigt, dels havde Graz-forskerne svært ved at tro, at Intel-chips havde så alvorlige sårbarheder som Meltdown og Spectre. "That would be such a major f--- up by Intel that it can't be possible,” husker Anders Fogh, at Graz-forskeren sagde, da de i november 2016 mødtes i London på Black Hat Europe.
Anders Fogh fortsatte sine eksperimenter, når tiden var til det, og i maj 2017 følte han sig overbevist om, at han vidste nok til at kunne snyde sikkerhedstjek og få adgang til sensitive data. Pandoras boks var åbnet, og Spectre var indeni.
Anders Fogh vidste ikke, at Jann Horn fra Googles Project Zero, der forsker i at finde 0-dags-sårbarheder, allerede på det tidspunkt havde fundet Spectre- og Meltdown-sårbarhederne.
– Jeg havde nok om Spectre i maj 2017, men betydeligt mindre end, hvad Jann Horn havde. Jeg havde snakket om det længe, og Jann kom fra sidelinjen og overhalede mig, siger Anders Fogh, der er fuld af beundring over, hvad den kun 22-årige Jann Horn har præsteret.
Kryptering brudt
Jann Horn og Googles Project Zero gik i dialog med Intel og de andre chip-producenter i juni 2017 og begyndte patch-arbejdet i al hemmelighed.
I løbet af efteråret 2017 blev flere uafhængige sikkerhedseksperter inspireret af Anders Foghs blog fra 28. juli til at se nærmere på sagen. Deriblandt var en tidligere Intel-ingeniør og nuværende it-sikkerhedsforsker, Thomas Prescher fra Cyberus Technology, som sent i november 2017 fik eksperimentelt bevis for danskerens teorier. Graz-teamet med Daniel Gruss begyndte også at se nærmere på hans teorier. På Project Zeros site kan man under blogposten ”Reading privileged memory with a side-channel” finde detaljerede tekniske beskrivelser af Meltdown og de to Spectre-varianter. Blandt medforfatterne på forskningsnotatet om Spectre er Thomas Prescher samt Daniel Gruss og andre fra Graz-teamet. Sikkerhedsforskeren Paul Kocher havde også uafhængigt af de andre fundet Spectre-sårbarheden og er også medforfatter. Paul Kocher er en af pionererne inden for side-channel-angreb og har siden 1990'erne været aktiv på området. Risikoen ved side-channel-angreb blev understreget i 2005, da en anden sikkerhedsforsker, Colin Percival, anvendte et side-channel-angreb til at få fat i en RSA-krypteringsnøgle fra OpenSSL. Tre måneder senere fik andre sikkerhedsforskere adgang til en AES-krypteringsnøgle via et side-channel-angreb.
Side-channel attacks ikke taget alvorligt
Der er altså ikke tale om en ny metode, men ifølge Anders Fogh er side-channels ikke blevet taget rigtigt seriøst af chip-fabrikanterne.
– Side-channels er måske ikke blevet ignoreret, men de har ikke været del af sikkerhedsdiskussionen. Side-channel-angreb er blevet bagatelliseret, siger han.
Han håber, at Spectre- og Meltdown-sårbarhederne vil ændre chip-producenternes nonchalante holdning til den slags sårbarheder.
Chip-fabrikanterne er da også blevet skudt i skoene, at de har fokuseret for meget på hastighed på bekostning af sikkerhed. Paul Kocher har udtalt at ”processor-folkene kiggede på performance, ikke på sikkerhed.”
Det er da også tankevækkende, at det var Anders Foghs fritids-researcharbejde, som inspirerede uafhængige sikkerhedseksperter til at kigge chip-sikkerheden efter i sømmene, ligesom det var en 22-årig wonderboy i form af Jann Horn hos Google, der advarede chip-industrien om dens sårbarheder. Det var ikke chip-industriens egne ingeniører.
Anders Fogh sammenligner fundet af Meltdown- og Spectre-sårbarhederne med Code Red og Nimda, der i 2001 hærgede installationer med Microsofts webserver IIS. Det fik Bill Gates til i 2002 at skrive et internt memo til alle Microsoft-ansatte med titlen ”Trustworthy Computing” om vigtigheden af at designe og udvikle sikre programmer. Det memo indvarslede en kulturændring blandt Microsoft-udviklerne.
– Microsoft interesserede sig ikke rigtigt for sikkerhed i 2001, men det ændrede sig med Code Red. Jeg håber, at Spectre og Meltdown er Code Red for folk, der producerer chips, siger Anders Fogh.
Mon der cirkulerer et memo med titlen ”Trustworthy Processors” blandt ingeniørerne hos Intel, AMD og ARM?