Kan ett virus förstöra BIOS på en modern dator?

I slutet av 1990-talet började ett datavirus som kallas CIH infektera vissa datorer. Dess nyttolast, när den utlöstes, skrivde över systeminformation och förstörde datorns BIOS, i huvudsak tegelstenar vilken dator som helst. sätt, eller är det nu omöjligt för ett virus att få tillgång till en modern dators BIOS?

Kommentarer

  • ja men ur ett angriparperspektiv det är slöseri eller resurser … Mer information om en rootkit för UEFI som ett exempel i nedanstående papper … welivesecurity.com/wp-content/uploads/2018/ 09 / ESET-LoJax.pdf
  • Kommentarer är inte för utökad diskussion; den här konversationen har flyttats till chatt .
  • Vissa (eller de flesta?) moderkort på skrivbordet har en ROM som används för att återställa BIOS från någon form av media (i gamla dagar, disketter, dessa dagar, USB-minnen, kanske cd-rom). ROM: n kan ’ inte ändras, men återställning kräver vanligtvis att du öppnar fodralet och flyttar en bygel för att starta i BIOS-återställningsläge. Jag vet inte ’ hur bärbara datorer hanterar detta.
  • Relaterat: security.stackexchange.com/q / 13105/165253

Svar

Moderna datorer har inte BIOS, de har a UEFI . Uppdatering av UEFI-firmware från det körande operativsystemet är en standardprocedur, så all skadlig programvara som lyckas köras på operativsystemet med tillräckliga behörigheter kan försöka för att göra detsamma. De flesta UEFI: er accepterar dock inte en uppdatering som inte är digitalt signerad av tillverkaren. Det betyder att det inte ska vara möjligt att skriva över den med godtycklig kod.

Detta förutsätter dock att:

  1. moderkortstillverkarna lyckas hålla sina privata nycklar hemliga
  2. UEFI har inte några oavsiktliga säkerhetsproblem som gör det möjligt att skriva över den med godtycklig kod eller på annat sätt kan utnyttjas för att orsaka skada.

Och dessa två antaganden håller inte nödvändigtvis .

När det gäller läckta nycklar: om en UEFI-signeringsnyckel skulle bli känd för allmänheten, kan du anta att det skulle bli mycket massmedierapportering och hysterisk lappning. Om du följer några IT-nyheter, du skulle förmodligen se en hel del alarmist ”Om du har en [brand] moderkort UPPDATERA DIN UEFI NU !!! 1111oneone” rubriker. Men en annan möjlighet är att underteckna nycklar i hemlighet läckt ut till statliga aktörer. Så om ditt arbete kan vara intressant för industrispionage, kan detta också vara ett trovärdigt hot för dig.

När det gäller buggar: UEFIs får mer och mer funktionalitet som har fler och fler möjligheter för dolda buggar. De saknar också de flesta interna säkerhetsfunktioner som du har efter att du har startat ett ”riktigt” operativsystem.

Kommentarer

Svar

Ja, det är definitivt möjligt.

Nuförtiden, med UEFI att bli utbredd, är det ännu mer bekymmer: UEFI har en mycket större attackyta än traditionell BIOS och en (potentiell) brist i UEFI kan vara en hävstång för att få tillgång till maskinen utan att ha någon form av fysisk åtkomst ( som bevisats av folket i Eclypsium vid svart hatt förra året ).

Svar

I praktiken är ett virus programvara, så kan göra allt som någon annan programvara kan göra.

Så det enkla sättet svar på denna fråga och alla andra i klassen ”Kan virus göra X?” är att fråga ”Gör programvara för närvarande X?”

Sådana frågor kan inkludera ”kan ett virus gå min hund?” (inte utan en hundvandringsrobot); ”Kan ett virus skaffa mig pizza?” (ja: detta är tyvärr inte huvudfokus för de flesta virusförfattare.).

Uppdateras BIOS (UEFI) för närvarande med programvara? Svaret är, ja det är de. Gruvan uppdaterades igår kväll när jag startade om.

Och så är svaret ja.

Av samma logik kan virus också orsaka (och historiskt sett ha orsakat) fysisk skada på din CPU, hårddiskar och skrivare.

Hemautomationssystem och fordon utan förare är också möjliga mål för fysiska skador, men jag känner inte till några virus som har gjort det.

Kommentarer

  • Jag skulle inte ’ tänka mycket om min personliga information användes av malwareutvecklare för att beställa mig gratis pizza och inget annat. (+1 för användbara resonemang)
  • @Marc.2377, jag skulle inte bry mig mycket om din personliga information användes för att beställa mig gratis pizza … 🙂
  • Moderna virus kommer att ha mycket svårt tid som orsakar fysisk skada. Högst kunde de slita på hårdvaran lite genom att köra processorn riktigt hett, vilket förkortar användbar livstid, men det ’ är inte vanligt för att det ska kunna orsaka Tidigare var det dock inte ’. Se ” dödens poke ”.
  • @forest Aren ’ t fläktar och kylsystem programvara kontrolleras dessa dagar? Jag ’ är inte säker, men jag slår vad om att du på något sätt kan göra fel på CPU- eller GPU-fläkten från programvara. Ryssland förstörde generatorer på distans genom att slå dem på och av med en resonansfrekvens – jag slår vad om att det finns liknande knep som kan döda din bildskärm ganska snabbt. Platta-hårddiskar kan definitivt kasseras genom att snurra upp och ner dem upprepade gånger, solid state-enheter är sårbara för upprepade läs- / skrivcykler. Jag slår vad om att det finns mycket en motiverad hackare kan göra …
  • Jag tror att vi ’ d behöver definiera omfånget för ” orsaka fysisk skada ” innan vi bestämde oss för om det var möjligt / troligt. Om du begränsar definitionen till att bokstavligen skada den dator som kör koden, är den ’ ganska smal och jag tycker att @forest är rätt. Om du inkluderar fysisk skada i mer allmän mening är det ’ mycket lättare att föreställa sig scenarier där en infekterad dator som ’ kontrollerar något annat (kraftverk, trafikljus, system för masstransitering, vattenreningsverk etc.) kan lätt orsaka stora fysiska skador.

Svar

Ja, det är definitivt möjligt.

Här är ett exempel på en OS-uppdatering med skadlig programvara som bedrägligt undertecknas med tillverkarens privata nyckel: https://www.theregister.co.uk/2019/03/25/asus_software_update_utility_backdoor/

Enligt Kaspersky Labs smittades ungefär en miljon Asus-datorer av Shadowhammer, med en uppdatering som verkade vara korrekt signerad. Det är inte klart om det ändrade firmware, men det kunde verkligen ha gjort.

Svar

Din fråga antyder ett djupare ämne som är ringsignaler och kodbehörigheter i ett operativsystem. På MS DOS kan koden göra vad den vill. Om koden ville skriva alla 0x00 ”s till en hårddisk kunde den göra det om den ville skicka konstig utdata till en hårdvara, det kunde också ingenting hindra användarens kod. På ett modernt operativsystem finns det ett koncept av ringar (detta verkställs av CPU). Kärnan körs på ring noll och den kan göra vad den vill. Användarens kod å andra sidan kan inte. Den körs på något som kallas ring 3 och den får sin egen lilla bit minne och inuti det minnet kan den göra vad den vill men den kan inte direkt prata med hårdvara . Om användarens kod försöker prata med hårdvara dödar kärnan omedelbart programmet. Det betyder att det är mycket osannolikt att ett vanligt virus kan döda hårdvara eftersom det inte kan prata direkt med det.

Om kärnan är hackad så är spelet i princip över. Kärnan kan göra vad den vill och en hel del dåliga saker kan hända som att överklocka CPU till en punkt där hårdvaran är instabil, torka hårddiskarna (fylla med nollor till exempel) eller i stort sett alla andra troliga attacker.

Kommentarer

  • ” Om användaren ’ s kod försöker prata med hårdvara dödar kärnan omedelbart programmet ” – Verkligen? Kan du ge ett citat för det? Jag trodde att den skyddade instruktionen helt enkelt skulle misslyckas och det ’ är upp till programmet att hantera det rimligt eller krascha.
  • @Marc .2377 Det är korrekt. Om användaren ’ s kod försöker utföra en instruktion i CPL3 som kräver CPL0-behörigheter, den kastar #GP(0) (allmänt skyddsfel eller GPF). Detta får koden att hoppa in i kärnan för att se vilken signalhanterare som har ställts in för den händelsen. Som standard kommer kärnan att döda processen, även om den ’ är tekniskt möjlig för processen att ställa in en signalhanterare för SIGSEGV, i vilket fall kärnan återupptar körningen av processen vid platsen för signalhanteraren. Det ’ är i allmänhet inte en bra idé men för att en process anses vara i …
  • … odefinierat tillstånd enligt POSIX om körningen återupptas efter att en SIGSEGV har tagits upp som inte ’ t kom från raise(). Det kommer att återuppta exekveringen vid den misslyckade instruktionen som bara kommer att köras igen och få processen att låsa om signalen ignoreras.Så det kan vara upp till programmet att hantera det, om det sätter upp en signalhanterare för SIGSEGV, men där ’ s ganska mycket aldrig någon situation där det skulle göras (även om jag tror att Dolphin-emulatorn fångar segfaults för någon form av hackig optimering så att den inte ’ t måste emulera något konstigt personsökningsbeteende och kan lita på MMU).
  • Se detta för ett (sällsynt) exempel på när det är upp till programmet. Eller läs bara PoC || GTFO 6: 3.

Svar

Potentiellt. Det skulle dock vara svårt att göra, eftersom det mer än troligtvis skulle behöva maskeras som en legit BIOS-uppdatering någonstans längs linjen. Metoden för att göra det kommer att ändras beroende på din mobo men chansen är att det måste innebära läckage av privata eller hårdvarunycklar eller andra hemligheter.

Svar

Ja. Det är hårdvaruspecifikt, men här är ett fall av att en användare av misstag bryter moderkortets firmware från OS-nivån https://github.com/systemd/systemd/issues/2402

Ett fel i firmware på en MSI-bärbar dator innebar att rensning av efi-variablerna orsakade att den bärbara datorn var oanvändbar. Eftersom dessa variabler exponerades för operativsystemet och monterades som en fil, raderades alla filer från OS-nivån orsakade problemet som kan utnyttjas av ett virus för att specifikt rikta in sig på dessa variabler.

Svar

Det finns många sätt, och några av dem är oroande. Exempelvis Computrace verkar vara en permanent bakdörr som kan kringgå inte bara operativsystemet utan även BIOS. Och mer allmänt, Intel Management Engine har full kontroll över din dator och kan troligtvis utnyttjas. Dessa kan modifiera din BIOS men behöver inte ens. Precis 2017 tänkte säkerhetsforskare att ut hur man utnyttjar Intel IME via USB för att köra osignerad kod .

Poängen är att även om du har ett helt säkert operativsystem och du laddar aldrig ner någon osäker eller skadlig programvara, det finns fortfarande en icke försumbar möjlighet att du kan påverkas av ett skadligt program som kringgår allt detta genom att utnyttja en säkerhetsproblem i din hårdvara (även när din dator förmodligen är avstängd). / p>

Svar

Något jag inte har sett här:

Om angriparen får tillräcklig behörighet för att installera även en tjänsteman UEFI-firmware, korrekt signerad av systemtillverkaren, de kan fortfarande lämna datorn i ouppstartbart tillstånd genom att kraftigt stänga av datorn vid en lämplig tidpunkt under processen.

Uppdateringskoden i moderna firmware. försöker vanligtvis att minimera den tid som datorn spenderar i ett tillstånd där ett strömavbrott kommer att orsaka korruption av firmware, och s ome-firmware har till och med ett återställningsläge som aktiveras i ett sådant fall.

Men många av dessa system är inte helt skottsäkra. Även om de erbjuder ett bra skydd mot slumpmässiga strömavbrott, kan en avstängd avstängning ändå slå den död om firmware inte har en robust automatisk återställningsfunktion.

Man kanske inte ens behöver attackera huvudsystemets firmware. Nästan alla enheter i en modern dator har någon firmware, och många av dem kan uppdateras via programvara. Dessa enheter är också ofta mindre säkra. De kan acceptera osignerade firmware helt eller åtminstone vara mindre motståndskraftiga. mot skadlig avstängning under uppdateringsprocessen.

Om du förstör firmware på strömkontrollen, lagringsstyrenheten, lagringsenheten, videoenheten eller ingångskontrollen kan systemet bli lika oanvändbart som om du hade attackerade UEFI.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *