Ny unicode-sårbarhed kan ramme open source-projekter: Men ekspert frygter ikke storskala-angreb
Sårbarheden har fået navnet ‘Trojan source’, netop fordi den kan implementeres i sourcekoden igennem ‘bidi-funktionen’ i kodningsstandarden unicode, der dækker over 143.000 karakterer og 154 kodesprog.
Derfor kan den komme til at påvirke næsten alle compilere og mange softwaremiljøer. Sårbarheden findes i unicode-standarden, der tillader computere at udveksle information uanset sprog. Nærmere bestemt i ‘bi-directional’-algoritmen, også kaldet ‘bidi’, der kan vende læseretningen om, så kode både kan læses fra venstre mod højre og omvendt.
»Hvis du skriver noget ondsindet kode på en snedig måde, så kan du få det til at ligne en harmløs funktion,« fortæller Thomas Wong, der er teknisk direktør i det danske it-sikkerhedsfirma Improsec.
Han fortæller, at man ved at bruge bidi-funktionen kan gemme ondsindet kode som en harmløs funktion i ens kode, som compileren, fordi bidi-funktionen vil bytte om på tegn, vil læse anderledes end man vil ved at kigge på koden. Bidi-funktioner kan skrives ind som kommentarer eller strenge, hvorfor det ikke er sikkert, at man vil fange det i et manuelt review:
»Compileren læser koden på en anden måde end man selv ville læse den. Så hvis man udelukkende bruger manuelt review, så kan man reelt risikere at der bliver sneget ondsindet kode ind,« fortæller han.
Open-source projekter er det åbenlyse eksempel
Spurgt ind til hvor han kunne forestille sig, at sårbarheden ville kunne bruges, fortæller Thomas Wong, at han særligt ser ét åbenlyst eksempel:
»Et åbenlyst eksempel kunne være de mange open source projekter, hvor alle kan bidrage med kode, som manuelt bliver verificeret og så skudt ud til den mainstream kodebase. Det ville jo være ret uheldigt at få distribueret ondsindet kode på den måde.«
Thomas Wong fremhæver Linux-kernen som eksempel på et open-source projekt, hvor sårbarheden ville kunne komme i spil.
Han fortæller, at i og med at man kan skrive sårbarheden ind i koden, så er der i teorien meget få begrænsninger for, hvad den potentielt kan bruges til:
»Det er nærmest kun fantasien, der sætter grænser for, hvordan man kunne udnytte den her sårbarhed. Det kan være bypass af autorisation, eksempelvis.«
Automatiserede værktøjer kan fange sårbarheden
Thomas Wong fortæller, man vil kunne undgå, at sårbarheden bliver implementeret, hvis man bruger et automatiseret review-værktøj:
»I et source code-review, som er baseret på automatiserede værktøjer, vil værktøjerne kunne spotte den rigtige eller ondsindede kode.«
De fleste automatiserede værktøjer vil nemlig læse koden ligesom compileren vil læse den, og den vil dermed kunne opdage eventuelle forsøg på at skrive en skjult sårbarhed ind ved hjælp af bidi-funktionen, ifølge Thomas Wong.
En mærkværdig sårbarhed
Thomas Wong mener, at det er en interessant sårbarhed, fordi den kan implementeres direkte i kodebasen. Men han tror ikke, at den kommer til at blive et omfattende problem:
»Det er lidt en 'curiosity', og så er den interessant, fordi den rammer næsten alle kodesprog,« fortæller han og fortsætter:
»Cambridge frigav deres information om sårbarheden sidste mandag, så det er svært at sige, om det nogensinde er sket. Var det sket på et ‘high profile’ projekt, så havde vi nok hørt om det tidligere.«
Grundet de forudsætninger, der skal være til stede, for at sårbarheden kan implementeres, så tror Thomas Wong ikke, at sårbarheden kommer til at blive brugt mod store projekter:
»Sårbarheden er interessant og den åbner helt sikkert op for nogle muligheder, men jeg forestiller mig ikke, at den kommer til at blive brugt til storskala-angreb, de nødvendige omstændigheder taget i betragtning.«
Thomas Wong fortæller, at problemet kan undgås ved at slå bidi-funktionen fra. Han mener desuden, at man hurtigt vil kunne indarbejde et forsvar mod sårbarheden i compilers.
Forud for Cambridge Universitys offentliggørelse af sårbarheden, havde forskerne advaret en række organisationer, hvor nogle allerede er på vej med patches.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.