Hack: Nintendo-musik betyder 'game over' for Ubuntu-desktop

Musikformatet NSF kan bruges til at kompromittere Ubuntu Desktop 12.04.5, der stadig er supporteret.

I et teknisk og interessant indlæg fortæller sikkerhedsbloggeren Chris Evans om, hvordan det er muligt at kompromittere Ubuntu Desktop i den ældre variant 12.04.5 via musikformatet NSF fra Nintendo Entertainment System (NES).

Selvom Ubuntu 12.04.5 har nogle år på bagen er den - da der er tale om en LTS-udgave - stadig officielt understøttet af firmaet bag styresystemet Canonical.

Evans har lagt et Proof-of-Concept exploit ud i form af en nsf-fil, som frit kan downloades. Filen skal omdøbes til at have en .mp3-endelse, før angrebet fungerer.

Men så kan det også aktiveres alene ved at surfe hen til mappen med filen via Ubuntus Nautilus-filbrowser.

Herefter skulle PoC'et, som Version2 ikke har testet, automatisk få styresystemets lommeregner-applikation til at åbne.

Angrebet lader sig gøre via en sårbarhed i libgstnsf.so, en audio-dekoder, som ligger i gstreamer-0.10.

Og Ubuntu 12.04 bruger gstreamer-0.10 til al lydhåndtering. Ubuntu 14.04, bemærker Evans, er tilsyneladende også påvirket, da denne udgave af styresystemet som standard også indeholder gstreamer-0.10.

Men i Ubuntu 14.04 bliver mediehåndteringen dog i udgangspunktet klaret af den ikke-sårbare gstreamer-1.0.

»De præcise omstændigheder, hvorunder Ubuntu 14.04 anvender den sårbare gstreamer-0.10 er uklare,« bemærker Chris Evans.

Emulerer Nintendo CPU

Sårbarheden udspringer af, at NSF-musikfiler ikke bliver behandlet som andre - eksempelvis mp3 - musikfiler. NSF-formatet bliver afspillet ved faktisk at emulere end NES-CPU og dennes lyd-hardware i realtid.

Det vil sige, at gstreamer-plugin'en skaber et virtuelt 6502 CPU-miljø. Og i det miljø er der flere sårbarheder, som kan læses i tekniske detaljer i Evans indlæg.

Overskrifterne på problemerne er 'Lack of checking ROM size when mapping into 6502 memory and bank switching' og 'Ability to load or bank switch ROM to writable memory locations'.

Chris Evans har flere bud på angrebs-scenarier, hvordan Nintendo-musik-formatet kan bruges til at kompromittere en sårbar Ubuntu-desktop. Et eksempel - ganske oplagt - er en vedhæftet fil i en mail, der kan kompromittere systemet, når filen bliver åbnet. Igen skal filen i forbindelse med angrebet hedde .mp3 til slut i stedet for .nsf, selvom der altså er tale om en nsf-fil.

Det skyldes, at de fleste systemer ikke ved, hvad de skal stille op med .nsf-filer. Men når de hedder .mp3, så bliver de genkendt som mediefiler.

Og de fleste gstreamer-baserede medie-afspillere forholder sig ifølge Evans ikke til fil-endelsen, altså i dette tilfælde mp3. I stedet forsøger medieafspillerne at autodetektere formatetet for så at indlæse den rette dekoder. Og det kan altså ende med, at den sårbare libgstnsf.so-dekoder bliver indlæst.

Et andet angreb, som Chris Evans nævner, er situationen fra før med Nautilus-filbrowseren, hvor det alene ved at tilgå mappen med angrebs-filen skulle være muligt at kompromittere et sårbart system.

Det skyldes, at Nautilus forsøger at autogenerere en passende thumbnail til filen, og det kan udløse angrebet. En lignede angrebsvektor kan udnyttes ved at puttee filen på en usb-nøgle, som så kompromitterer systemet, når brugeren tilgår indholdet på nøglen.

0-dages-sårbarhed

Evans kalder selv angrebet for en 0-dages-sårbarhed, hvilket generelt betyder, at et sikkerhedshul ikke er patched i forbindelse med, at detaljer om en sårbarhed bliver frigivet.

Chris Evans fortæller, at han har en masse erfaring med såkaldt 'co-ordinated disclosure,' hvor frigivelsen af sårbarheds-detaljer koordineres med den ansvarlige softwareleverandør. Men den slags har Chris Evans ifølge eget udsagn dårlige erfaringer med.

Han fortæller i den forbindelse, at han engang ventede i over et år på, at Apple fik fixed en Safari-sårbarhed.

Sikkerhedsbloggeren fremhæver her Googles Project Zeros disclosure-policy, der - som regel - giver softwareleverandøren 90 dage til at fikse en sårbarhed.

Læs også: Google afslører kritisk Windows-sårbarhed før Microsoft-patch

Og så peger han desuden på, at den konkrete Nintendo-sårbarhed ikke skulle være særlig alvorlig.

»Bare rolig, denne specifikke 0-dages er meget lille, påvirker kun meget gamle Linux-distributioner,« lyder vurderingen fra Chris Evans.

Han forsvarer i øvrigt også sin 0-dages-offentliggørelse med, at der findes en simpel patch til sårbarheden. Nemlig at køre en kommando, som fjerner den sårbare fil:

sudo rm /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstnsf.so

Filen kan ifølge Evans bare fjernes, da både Ubuntu 12 og 14 har hele to forskellige kodebaser til at afspille NSF-filer med.

På Reddit er flere brugere uenig i Evens' fremgangsmåde med at offentliggøre sårbarheden, før den er patched. Eksempelvis skriver brugeren depressed_space_cat:

»Jeg synes, deres beslutning om at undgå ansvarlig disclosure er dum og farlig. Hvordan kan det at poste til deres obskure blog, hvor Ubuntu/gstreamer fok sandsynligvis ikke ser det, være bedre end at maile de relevante sikkerhedshold (eller åbne relevante bugs)?,« spørger Reddit-brugeren.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Bent Jensen

Dem som bruger en LTS udgave følger nok mere med end andre, men man burde nok have ventet til der lå en rettelse i den automatiske opdatering.
Det går jo normalt, nemt, hurtigt og smertefri, uden genstartet og hvis man vælger det, skjult i baggrunden. Desuden vil hacket, som jeg forstår det ikke få root rettigheder, så det er kun den enkelte bruger, og ikke OS som helhed der bliver ramt.

Benjamin Bach

Det ligner en forhastet blog post, hvor skribenten Chris Evans burde have undersøgt sin opdagelse mere grundigt og kontaktet folk fra gstreamer og det team i Universe-repositoriet, der vedligeholder den berørte pakke...

Desværre ligner det, at han ikke har styr på, hvilken pakke, der er berørt...

This exploit works against what I would consider the “default” install. During Ubuntu install, there’s a question along the lines of “hey, do you want mp3s to work?” and of course the correct answer is “yes”. Various extra packages are then installed including gstreamer0.10-plugins-bad. This package includes libgstnsf.so.

Det tror jeg ikke er sandt: gstreamer0.10-plugins-bad bor i Universe. Den installerer man ikke fra. Hvis man vælger "yes" til mp3, får man installeret gstreamer0.10-fluendo-mp3

Ansvarsfordelingen er ret mudret, jeg ville mene, at det er således:

  1. Ubuntu 12.04 på en desktop? Ja, okay, det kan man da godt, men hvis man har netadgang, bør man sørge for at brugerne opdateres direkte fra LTS til LTS. Det understøtter Ubuntu. Den findes givetvis på en masse servere, men de modtager også stadig sikkerhedspatches, og hvis man kører en desktop med thumbnail previews på sin server, skal man finde et andet arbejde :)

  2. gstreamer-0.10 er ikke supporteret upstream og findes i "universe", dvs. den del af Ubuntu 12.04, som kan påstås ikke at være LTS.

  3. bloggeren har ikke beskrevet fejlen noget sted i en bug-report eller indsendt en patch.

Overskriften fra v2s siden finder jeg ret usmagelig, man må virkelig være vred på Ubuntus desktop, siden man fra redaktionel side ønsker at erklære den 'game over' på så tyndt et grundlag... click bait mæssigt dog et meget godt valg :)

Troels Henriksen

Det går jo normalt, nemt, hurtigt og smertefri, uden genstartet og hvis man vælger det, skjult i baggrunden. Desuden vil hacket, som jeg forstår det ikke få root rettigheder, så det er kun den enkelte bruger, og ikke OS som helhed der bliver ramt.

På din datamat, ejes de vigtigste filer så af root eller af din personlige bruger?

På min datamat ejer root en masse programfiler som jeg altid kan hente igen, hvor min egen bruger ejer private nøgler og adgangskoder, samt diverse følsomme programsessioner. Disse har root selvfølgelig også adgang til, men min pointe er at det ikke redder ret meget af situationen at et fjendtligt program kun får kontrol over min personlige bruger.

Log ind eller Opret konto for at kommentere