Sommerjobb med 5G-nettverk

Denne artikkelen er skrevet av Sander Endresen med utgangspunkt i hans sommerjobb i SINTEF Digital sommeren 2021.

I sommer har jeg i fem uker jobbet som forskningsassistent hos SINTEF, under direkte veiledning av prosjektleder for forskningsprosjektet « Raksha: 5G-sikkerhet for kritiske kommunikasjonsnett ». Først vil jeg si hvorfor de ulike oppgavene ble gjort, og senere hvordan de ble gjennomført.

For å senere kunne analysere 5G-trafikk, startet jeg med å sette oppe en telefon for å gjøre den klar til nettverksanalyse. Neste oppgave var å bruke denne 5G-telefonen til å se om en GUTI-id endret seg over tid i 5G-nettverket telefonen var tilkoblet, for å se om dagens offentlige 5G-nettverk opprettholder minimum krav til sikkerhet og personvern. Videre ble det satt opp en simulator av et 5G-nettverk, som både inneholdt simulert telefon og basestasjon, for senere å ha mulighet til å teste ulike sikkerhetsaspekter med 5G i et simulert miljø. Oppsett av et privat 4G-nettverk med bruk av programmerbart USIM-kort var neste oppgave. Det programmerbare USIM-kortet sørger for gjensidig autentisering av telefon og et private nettverk, noe et vanlig SIM-kort ikke støtter for private 4G-nettverk.

Så ble det satt opp et Quectel-modem for 5G-nettverk, som både støtter Non-Standalone-Architecture (NSA) og Standalone-Architecture (SA). NSA er en 5G-tjeneste som er bygd over et eksisterende 4G-nettverk, mens SA tillater uavhengig bruk av en 5G-tjeneste uten noen kobling til en eksisterende 4G-kjerne. Dette gjorde det mulig å teste ut 5G-funksjonalitet med et eget modem. Da sommerjobben var begrenset til 5 uker og oppsett av Quectel-modemet var mer tidkrevende enn først antatt, ble siste oppgave å sette opp et 2G-nettverk med egne SIM-kort, for å se på nettverkstrafikken til to telefoner koblet til samme basestasjon. Nå som bakgrunnen for oppgavene er gitt, vil jeg nå si hvordan de ble gjennomført.

For å se på 5G-trafikken var det nødvendig å bruke en spesialtilpasset app for dette. Jeg startet med en Android-telefon av typen OnePlus 8T, som var «bricked» og «unrootet», som måtte «unbrickes» og «unrootes» for å bruke nettverksappen. At en telefon er «bricked» vil si at den ikke fungerer og at man ikke får skrudd den på, altså at den har samme funksjonalitet som en murstein. En «unrootet» telefon er en telefon som kommer fra produsenten, med de begrensningene de har satt for nedlastning av apper og funksjonalitet. Noe som er spesielt med en OnePlus 8T-telefon er at det er relativt enkelt for brukeren å kunne laste inn ny firmware selv, uten at den må leveres på service.

For å få kontakt med telefonen måtte jeg bruke Fastboot og Emergency DownLoad mode, som er det første steget for å få den til å fungere. Videre ble telefonen koblet til en datamaskin via kabel og ny firmware ble lastet inn. Telefonen var nå «unbricked» og neste steg var å «roote» den. For å «roote» den ble bootloader åpnet, Stock Boot Image ble lastet ned og programvare for «rootet» telefon ble brukt for å kunne bruke nettverksappen. Telefonen kunne nå se detaljert informasjon om nettverkstrafikken.

Et av mange elementer man ser gjennom appen er GUTI-ID. Dette er et anonymisert og tilfeldig ID-nummer som alle enheter blir tildelt hver gang de kobles til 5G-nettverket. ID-ene skal ikke gi noe informasjon om enheten eller brukeren utenom at «en enhet med denne GUTI-ID-en er nå koblet til nettverket». Det er viktig at disse ID-ene ofte oppdateres til en ny tilfeldig verdi. Et sikkerhetskritisk problem oppstår når disse ID-ene ikke oppdateres jevnlig. Da vil det være mulig å overvåke disse GUTI-ID-ene, og dermed også spesifikke enheter. Overvåkes disse ID-ene for disse spesifikke enhetene ved fysisk observasjon, vil det være enkelt å kartlegge enkeltpersoners rutinemessige bevegelsesmønster fra A til B. I sommer viste det seg at GUTI-ID-en for OnePlus 8T-telefonen, ikke ble oppdatert jevnlig i 5G-nettverket den var tilkoblet. Dette viser at mindre og større sikkerhetshull også kan forekomme i 5G-teknologien eller hos operatørene. Selv om 5G er regnet for å være sikkert å bruke, så er dette likevel noe man bør være klar over når man benytter teknologien.

Neste oppgave var å sette opp et system for å simulere 5G-trafikk, hvor alt kjøres på én og samme maskin. Systemet bestod av to hoveddeler; Open5GS og UERANSIM. Open5GS er et open source-prosjekt, som gir 4G og 5G mobile packet core nettverksfunksjonalitet. UERANSIM er en simulator av UE og RAN, der UE er User Equipment og kan være en mobiltelefon, og RAN er Radio Access Network, som er et nettverk som bruker radiofrekvenser for 5G. Med dette systemet oppe og kjøre kunne jeg nå simulere at enheter koblet seg til mitt 5G-nettverk. Datatrafikken i nettverket kunne også analyseres i egnet program som viser datapakkene i trafikken.

Nå var tiden inne for å sette opp et 4G-nettverk med hardware og programmerbart USIM-kort. Som software for nettverket ble det her benyttet srsRAN, som er software radio suite for 4G og 5G. En USRP B200 mini med tilhørende antenner ble brukt som hardware. I tillegg ble et USIM-kort programmert ved hjelp av en SIM-kort-leser. Ved at nettverket kjører og at dette USIM-kortet settes i en telefon, var det nå mulig for telefonen å koble seg til nettverket.

Videre ble det satt opp et 5G-nettverk med et Quectel-modem. Først måtte modemet settes opp og antennene kobles til. Måten man kommuniserer med modemet på er gjennom AT-kommandoer, så for å konfigurere modemet ble slike kommandoer brukt. AT-kommandoene sendes til modemet via en terminal og man kan herfra gjøre det meste, fra å velge operatør og nettverk til å sende SMS-er og lignende. Utenom nettverket med Quectel-modemet ble det til slutt satt opp et 2G-nettverk med bruk av egne SIM-kort, hvor flere mobiltelefoner kunne kobles til basestasjonen. For dette brukte jeg OsmoNITB, som er et GSM Network-In-The-Box-program, og et program for å bruke egne SIM/USIM-kort til eget nettverk.

5G quectel modem

Mine erfaringer fra sommeren er at det er utrolig lærerikt når man får jobbe hands-on med nettverk med både hardware og software. Det å få muligheten til å være en del av et forskningsmiljø hos SINTEF har også vært veldig spennende, og er en god erfaring jeg vil ta med meg videre. Arbeidet har vært så interessant at det har inspirert meg til å skrive prosjektoppgave om 5G og cybersikkerhet, som også er tenkt videreført til masteroppgave.