Forskere ved University of California, Riverside, (UCR) offentliggjorde denne uken at de har funnet en alvorlig svakhet i implementeringen av Transmission Control Protocol (TCP) i alle utgave av Linux siden slutten av 2012 (versjon 3.6 og nyere).
Sårbarheten åpner for fjernavlytting eller kapring av andres internettkommunikasjon. Alt som behøves er IP-adressen til de enhetene som kommuniserer, og at begge har et operativsystem basert på Linux-kjernen.
Servere og smartmobiler
Selv om Linux-bruken er begrenset på pc-er, så er det andre områder hvor den er dominerende. Dette inkluderer ikke minst på smartmobilsiden. Android er basert på Linux-kjernen. I tillegg kjører svært mange webservere Linux-baserte operativsystemer, men også servere som leverer e-post og andre kommunikasjonstjenester.
Så mengden av Linux-til-Linux-forbindelser som opprettes via internett, er egentlig enorm. Forskerne har demonstrert at sårbarheten gjør det mulig å etablere rettede angrep som sporer en brukers aktivitet på nettet, tvangsavslutte forbindelser, lytte til ukryptert kommunikasjon, injisere falske data og å redusere personvernet som garanteres av anonymitetsnettverk som Tor.
Sårbarheten ble oppdaget i et prosjekt som er ledet av Zhiyun Qian, en førsteamanuensis ved UCR. Han forteller i en pressemelding at i motsetning til konvensjonelle IT-angrep, kan brukere bli offer for denne typen angrep uten at de har vært uforsiktige.
- Leste du denne? Vil skifte ut sentral internett-teknologi
Effektivt
Testing har vist at angrep som utnytter TCP-sårbarheten ofte kan utføres på under ett minutt og med 90 prosents suksessrate.
Selve sårbarheten omtales som en spissfindig feil, i form av sidekanaler, i Linux-programvare, og denne feilen gjør det mulig for angripere å bestemme TCP-sekvensnummeret som er assosiert med en bestemt forbindelse, uten å vite annet enn IP-adressen til de kommuniserende partene.
Nærmere bestemt finnes sårbarheten i Linux-implementeringen IETFs RFC 5961, som skal gjøre TCP mer robust mot en type pakkeinjeksjonsangrep («Blind In-Window»). Men på grunn av feilen, så er systemene sårbare for en annen type pakkeinjeksjonsangrep.
Angrepet demonstreres i videoen nedenfor.
Trolig kun Linux
Ifølge LWN.net er Linux-baserte operativsystemer de eneste som har implementert RFC 5961. Der brukes det som omtales som «challenge ACKs» for å unngå at en forbindelse resettes dersom det mottas en forfalsket pakke med forespørsel om å etablere en forbindelse (SYN) eller å stenge en forbindelse (RST), der sekvensnummeret er innenfor mottaksvinduet.
Når data sendes via internettforbindelser, fordeler TCP disse i en serie med pakker som deretter sendes til mottakeren, hvor dataene deretter settes samme igjen. Pakkeserien identifiseres ifølge UCR med relativt unike sekvensnumre – det er nesten fire milliarder å velge mellom. Disse sekvensnumrene er nyttige å ha kjennskap til for angripere, men på grunn av det høye antallet mulige verdier, er det ifølge UCR bortimot umulig å tilfeldig identifisere sekvensnummeret som er assosiert med en spesifikk datautveksling.
Men sårbarheten gjør det altså mulig å finne sekvensnummeret likevel.
– Det unike aspektet ved angrepet vi har demonstrert, er de meget begrensede forutsetningene for å kunne utføre det. I grunnen kan det lett utføres av enhver over hele verden hvor angrepsmaskinen finnes i et nettverk som tillater IP-forfalskning. Det eneste som er nødvendig, er IP-adressene til klienten og serveren, noe som er ganske enkelt å få tak i, sier Qian i pressemeldingen.
Sikkerhetfikser
Sårbarheten har allerede blitt fjernet i den nyeste versjonen av Linux-kjernen (4.7), men trolig i de fleste eldre utgave. For eksempel opplyser Red Hat på denne siden at Fedora 23 og 24 ble oppdatert mer enn tre uker siden, mens de berørte utgavene av Red Hat Enterprise Linux ble oppdatert en uke tidligere.
Det er også mulig å gjøre det nærmest umulig å utnytte sårbarheten ved å sette verdien for challenge ACK veldig høyt.
I for eksempel Ubuntu kan dette ifølge forskerne gjøres ved å legge til følgende linje i filen /etc/sysctl.conf:
net.ipv4.tcp_challenge_ack_limit = 999999999
Deretter kan konfigurasjonen oppdateres med kommandoen «sysctl -p».
For Android er situasjonen en annen. Avhengig av Android-versjon og enhet benyttes det en rekke ulike versjoner av Linux-kjernen. Trolig er langt fra alle sårbare, men i de tilfellene hvor sårbarheten eventuelt berører Android-enheter, er det i mange tilfeller høyst uklart om eller når den vil bli fjernet.
Flere detaljer om forskningsarbeidet, som har blitt finansiert av amerikanske Army Research Laboratory (ARL Cyber Security CRA) og Nation Science Foundation, finnes her.
Les også: Alle de vanligste webserverne har alvorlige HTTP/2-sårbarheter