image

Amerikaanse overheid doet oproep om veiligheid UEFI snel te verbeteren

vrijdag 4 augustus 2023, 09:56 door Redactie, 12 reacties

UEFI speelt een essentiële rol bij de werking van systemen, maar de veiligheid laat te wensen over en moet snel worden verbeterd, zo stelt het Amerikaanse Cybersecurity and Infrastructure Security Agency (CISA) dat onder andere naar Microsoft wijst. Aanleiding voor de oproep van de overheidsinstantie is de BlackLotus-malware en de reactie hierop van Microsoft.

De Unified Extensible Firmware Interface (UEFI) zorgt voor de communicatie tussen het besturingssysteem en de hardware. Het is essentieel voor de werking van de computer en tevens de eerste belangrijke software die wordt geladen. Wanneer malware de firmware weet aan te passen kan dit grote gevolgen voor de veiligheid van het systeem hebben.

De BlackLotus-malware maakt gebruik van een kwetsbaarheid in Windows voor het omzeilen van UEFI Secure Boot en het plaatsen van malafide bestanden in de EFI-systeempartitie (ESP) die door de UEFI-firmware worden geladen. Hierdoor kan de malware onder andere BitLocker en Microsoft Defender uitschakelen. UEFI-malware kan ook een herinstallatie van het besturingssysteem of vervangen van hardware overleven.

Volgens het CISA blijkt uit de reactie op BlackLotus dat UEFI-ontwikkelaars en de cybersecurity community zich nog in nog in 'de leerstand' bevinden. "Met name UEFI secure boot-ontwikkelaars hebben nog niet allemaal public key infrastructure (PKI) practices toegepast voor het uitrollen van updates (het Linux-ecosysteem heeft dit wel goed geïmplementeerd)", zo laat de overheidsinstantie weten.

Het is dan ook belangrijk dat leveranciers in reactie op UEFI-kwetsbaarheden snel veilig updates kunnen uitrollen waarbij van PKI gebruik wordt gemaakt. In het geval van BlackLotus maakt de malware misbruik van een fout waardoor het bestanden naar een kwetsbare versie kan terugdraaien, om vervolgens te misbruiken. Daardoor is het updatekanaal waarmee Microsoft UEFI-updates voor Windowsgebruikers uitrolt niet voldoende veilig, stelt het CISA.

Afgelopen mei kwam Microsoft met advies hoe gebruikers handmatig een rollback naar een kwetsbare versie kunnen voorkomen. Daarnaast heeft het techbedrijf plannen voor het automatisch intrekken van bestanden. Dat is volgens het CISA een stap in de goede richting. "We blijven echter met Microsoft samenwerken aan een veilige manier om updates uit te rollen. BlackLotus benadrukt het belang van PKI bij het signeren van secure boot-bestanden."

Daarnaast moeten ook andere UEFI-ontwikkelaars stappen nemen, zo vindt het CISA. Zo moeten systeemeigenaren in staat worden gesteld om UEFI-onderdelen te auditen, moet het mogelijk zijn om UEFI-gerelateerde logs te verzamelen, moeten UEFI-ontwikkelaars van veilige ontwikkelomgevingen en best practices gebruikmaken, moet het updaten van UEFI-onderdelen eenvoudig zijn en moeten gebruikers niet worden gedwongen handmatige handelingen uit te voeren. "Aanvallers hebben aangetoond dat ze misbruik van UEFI kunnen maken en zullen daarin alleen maar beter worden", zo besluit het CISA.

Reacties (12)
04-08-2023, 10:05 door Ron625 - Bijgewerkt: 04-08-2023, 10:06
Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
Laat ook een mogelijkheid over, om de UEFI (safeboot) uit te schakelen, zodat ook iemand die dat wil, een ouder (ander) besturingssysteem kan installeren.
04-08-2023, 10:20 door Anoniem
Door Ron625: Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
Laat ook een mogelijkheid over, om de UEFI (safeboot) uit te schakelen, zodat ook iemand die dat wil, een ouder (ander) besturingssysteem kan installeren.
Was het niet zo dat vroeger het BIOS helemaal niet toegankelijk was via het OS?

Je kon volgens mij alleen het BIOS updaten met een diskette of later met een USB stick voordat het OS gestart was.

Wat zou een EUFI veiliger moeten maken terwijl er meer variabelen erbij komen om de veiligheid te waarborgen dan toen.

Het BIOS readonly maken is een optie, maar dan wel met een switch op het moederbord.
04-08-2023, 10:26 door Anoniem
Door Ron625: Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
Laat ook een mogelijkheid over, om de UEFI (safeboot) uit te schakelen, zodat ook iemand die dat wil, een ouder (ander) besturingssysteem kan installeren.
Ik ben het helemaal met je eens.

Overigens is de vraag ook gewettigd of de beheerder wel voldoende kennis in huis heeft om te beoordelen of zijn handelingen juist zijn of niet. Geeft die immers onterecht toestemming, dan kunnen de gevolgen groot zijn voor een systeem.
04-08-2023, 10:42 door Anoniem
Door Ron625: Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
Laat ook een mogelijkheid over, om de UEFI (safeboot) uit te schakelen, zodat ook iemand die dat wil, een ouder (ander) besturingssysteem kan installeren.

Het probleem is dat ontwerpers overal iets willen kunnen aanpassen. In de bios, in UEFI, op het moederbord. In het geheugen.
Er is geen enkel onderdeel dat Read Only geleverd kan worden. Al was het maar vanwege firmware updates of patches.

Tijd voor (weer) een totaal nieuw ontwerp in plaats van voort borduren op een brakke basis.
04-08-2023, 10:44 door Anoniem
Met name UEFI secure boot-ontwikkelaars hebben nog niet allemaal public key infrastructure (PKI) practices toegepast voor het uitrollen van updates (het Linux-ecosysteem heeft dit wel goed geïmplementeerd)", zo laat de overheidsinstantie weten.
Dat is heel wat dat een overheidsinstantie durft te zeggen dat de Linux wereld het beter voor elkaar heeft. Nu ook nog overstappen naar https://itsfoss.com/linuxboot-uefi/
04-08-2023, 11:11 door Anoniem
Computers met een 8086 processor hadden 640kB geheugen. Hierin stond het operating system en het programma dat je draaide. Van 640kB tot 1MB zat het BIOS en ook het grafische geheugen (voor CGA). Er zaten ook stukken ongebruikt geheugen in wat MS-DOS kon gebruiken als Upper memory. https://en.wikipedia.org/wiki/DOS_memory_management#Upper_memory_area.

Het BIOS liep van 0xE0000 tot 0xFFFFF. Dat is 128kB.

Bovendien was het BIOS vaak tegen flashen beschermd met een jumper op het moederbord (dit was tenminste zo bij een 486 computer van mijn vader vroeger, die heb ik geflasht vanaf een floppy die de fabrikant had toegestuurd).

UEFI voegt alleen maar complexiteit toe aan het opstarten van een computer wat leidt tot lekken in het UEFI. 128kB krijg je wel vrij van fouten en je kan gewoon tekst verwerken en spelletjes doen. Het is belachelijk dat operating systems steeds groter worden bij elke versie en dat oude functionaliteit nooit meer verwijderd kan worden omdat er misschien een programma gebruik van maakt of zal maken.

Het is een recept voor computers die makkelijk gehackt kunnen worden. Bedoeld of onbedoeld door de overheid.
04-08-2023, 11:34 door Anoniem
Door Ron625: Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
In de begintijd van de PC (en de systemen daarvoor) stond je BIOS in een ROM of EPROM.
Om die te updaten moest je de computer open maken, het IC uit de socket halen en vervangen, of in geval van een EPROM kon je die wissen met een UV lamp en in een programmer stoppen (een speciaal apparaat) en van een nieuwe versie voorzien.
Dat had het voordeel dat hackers hem niet konden aanpassen, maar het nadeel was dat er in de praktijk natuurlijk nooit een update gedaan werd.
Nou was dat niet zo erg want wat een BIOS in die tijd deed was zo beperkt dat er eigenlijk nooit updates nodig waren.

Later kwamen er systemen met BIOS in EEPROM chips die on-board geprogrammeerd konden worden, maar dan was het vaak nog wel zo dat je voor je hem kon programmeeren eerst een jumper op het bord moest omzetten. Dan moest je dus evengoed de kast openschroeven. Dit maakte het gemakkelijker voor de serviceman maar in de praktijk werd er dan dus nog steeds nooit geupdate.
04-08-2023, 13:19 door Anoniem
Door Anoniem:
Door Ron625: Dit klinkt leuk, maar er zijn betere manieren.
Zet de ouderwetse BIOS in een beveiligde omgeving (read-only) en het probleem is opgelost.
Geef een besturingssysteem geen mogelijkheid om overal te schrijven, zonder dat de beheerder daar toestemming voor geeft.
Zorg er verder voor, dat bestanden niet standaard uitvoerbaar zijn, maar dat dit door de beheerder eerst goedgekeurd moet worden.
Laat ook een mogelijkheid over, om de UEFI (safeboot) uit te schakelen, zodat ook iemand die dat wil, een ouder (ander) besturingssysteem kan installeren.

Het probleem is dat ontwerpers overal iets willen kunnen aanpassen. In de bios, in UEFI, op het moederbord. In het geheugen.
Er is geen enkel onderdeel dat Read Only geleverd kan worden. Al was het maar vanwege firmware updates of patches.

Tijd voor (weer) een totaal nieuw ontwerp in plaats van voort borduren op een brakke basis.

Read only is prima mogelijk als je er, zoals bij het aloude Bios, voor zorgt dat je alleen zaken kan schrijven als je bij het starten van een pc zelf UEFI opent. Het probleem nu is dat het vanuit het OS beschreven moet kunnen worden, met alle gevaren van dien. Ja dat zal het updaten van firmware lastiger maken maar het maakt misbruik ook weer lastiger.
04-08-2023, 14:38 door Anoniem
Door Anoniem:
[...]
Read only is prima mogelijk als je er, zoals bij het aloude Bios, voor zorgt dat je alleen zaken kan schrijven als je bij het starten van een pc zelf UEFI opent. Het probleem nu is dat het vanuit het OS beschreven moet kunnen worden, met alle gevaren van dien. Ja dat zal het updaten van firmware lastiger maken maar het maakt misbruik ook weer lastiger.
Inderaad:
weer een typisch voorbeeld van iets zogenaamd `gemakkelukker' maken met allerlei complicaties vandien.
Erger daarbij is ook dat sommige UEFIs alleen nog via bepaalde OS zijn te updaten :-(
Dus daar moet je bij de aanschaf op bedacht zijn...
04-08-2023, 15:56 door Anoniem
Door Anoniem: In de begintijd van de PC (en de systemen daarvoor) stond je BIOS in een ROM of EPROM.
Dat gold wel voor de IBM-PC maar niet voor de systemen ervoor. De term BIOS, Basic Input Output System, is afkomstig van CP/M (Control Program/Monitor; zeg maar een voorloper van DOS). In CP/M was het BIOS onderdeel van het OS en werd het samen met de rest van het OS van floppy geladen. In ROM was alleen een minimale bootloader nodig die het besturingssysteem van een floppy las. De ontwikkelaars van de IBM-PC zullen destijds vermoedelijk gevonden hebben dat het praktischer was om hardware-specifieke code in ROM op het moederbord te plaatsen.

Dus eigenlijk is het BIOS een stukje hardware-specifieke code met een configuratie-interface voor besturingssystemen uit de generatie CP/M en MS-DOS. Als ik het goed heb begrepen laat Linux, en dan vermoed ik ook andere moderne besturingssystemen, het BIOS grotendeels links liggen en worden in plaats van BIOS-interrupts eigen hardwaredrivers gebruikt. Wat er in UEFI veranderd is ten opzichte van BIOS in dit opzicht weet ik niet, daar heb ik me nooit in verdiept.

Andere systemen voor de IBM-PC hadden weer hun eigen eigenaardigheden. Bij IBM mainframes vanaf 1971 werd zelfs de microcode van de processor van een 8 inch floppy geladen, de instructieset van de CPU dus. Bij mainframes in de jaren '90 was in de systeemkast (formaat grote koelkast) een laptop ingebouwd die op OS/2 draaide die dat soort taken in het bootproces uitvoerde. Die laptop moet weer wel een BIOS hebben gehad ;-).

Een hedendaagse computer zonder BIOS in ROM is de Raspberry Pi. Die heeft een ingebouwde minimale bootloader die vereist dat het CF-kaartje begint met een FAT-partitie, met daarin een blob met de bootloader-code (geleverd door de hardwarefabrikant) en een configuratiebestandje. De blob wordt geladen en van daaruit loopt het bootproces verder.
04-08-2023, 16:21 door Anoniem
Door Anoniem:
Door Anoniem:
[...]
Read only is prima mogelijk als je er, zoals bij het aloude Bios, voor zorgt dat je alleen zaken kan schrijven als je bij het starten van een pc zelf UEFI opent. Het probleem nu is dat het vanuit het OS beschreven moet kunnen worden, met alle gevaren van dien. Ja dat zal het updaten van firmware lastiger maken maar het maakt misbruik ook weer lastiger.
Inderaad:
weer een typisch voorbeeld van iets zogenaamd `gemakkelukker' maken met allerlei complicaties vandien.

Ik dacht dat er hier aanstaande ITers zaten .

Duidelijk dat jij een tijdje met een karretje met keyboard, monitor en een flop door een datacenter gestuurd moet worden.
zaal 0 , Rij 1 , kast 1, alle 24 servers van onder naar boven doen .
Server eruit, jumpertje op RW , upgrade, jumpertje op RO , servertje weer terug.

En dan door naar kast 2 . en kast 3 en kast ... en rij 2 .
04-08-2023, 22:45 door Anoniem
Door Anoniem:
Door Anoniem: In de begintijd van de PC (en de systemen daarvoor) stond je BIOS in een ROM of EPROM.
Dat gold wel voor de IBM-PC maar niet voor de systemen ervoor. De term BIOS, Basic Input Output System, is afkomstig van CP/M (Control Program/Monitor; zeg maar een voorloper van DOS). In CP/M was het BIOS onderdeel van het OS en werd het samen met de rest van het OS van floppy geladen. In ROM was alleen een minimale bootloader nodig die het besturingssysteem van een floppy las. De ontwikkelaars van de IBM-PC zullen destijds vermoedelijk gevonden hebben dat het praktischer was om hardware-specifieke code in ROM op het moederbord te plaatsen.

Waarschijnlijk dat de IBM-PC developers daarvoor ook keken naar de andere microcomputers - Apple (II), Commodore 64, Atari 800 , Acorn BBC .
Die hadden allemaal een "BIOS" in ROM , en daarnaast een BASIC interpreter in ROM wat je als 'OS' zou kunnen beschouwen.

Dus eigenlijk is het BIOS een stukje hardware-specifieke code met een configuratie-interface voor besturingssystemen uit de generatie CP/M en MS-DOS. Als ik het goed heb begrepen laat Linux, en dan vermoed ik ook andere moderne besturingssystemen, het BIOS grotendeels links liggen en worden in plaats van BIOS-interrupts eigen hardwaredrivers gebruikt.

Dat geldt vzviw voor alle OSen afgezien van MS/PC-DOS .
Het BIOS draait in x86 'real mode' , en eigenlijk elk serieus OS schakelt naar 'protected mode' en kan dan BIOS calls niet meer uitvoeren (of met heel veel omwegen).
https://en.wikipedia.org/wiki/Real_mode
https://en.wikipedia.org/wiki/Protected_mode

De rol van BIOS is, voor vrijwel ieder gebruik , het initialiseren van de hardware, (inc microcode updates van de CPU) , het laden van een minimale bootloader , en daarna laadt die bootloader de rest van het OS .

Om super pedant te zijn - er is 'SMM/SMI' (system management mode/system management interrupt), een processor interrupt/privilege nog hoger dan dat van de kernel .
Die code komt weer uit het BIOS .
https://en.wikipedia.org/wiki/System_Management_Mode


Wat er in UEFI veranderd is ten opzichte van BIOS in dit opzicht weet ik niet, daar heb ik me nooit in verdiept.

Enorm veel.
Het is een soort mini-OS/super BIOS , dat een veel uitgebreider initialisatie biedt van de computer, veel meer kennis heeft van hardware/platform/filesystems en veel flexiber een OS kan booten.
https://en.wikipedia.org/wiki/UEFI


Andere systemen voor de IBM-PC hadden weer hun eigen eigenaardigheden. Bij IBM mainframes vanaf 1971 werd zelfs de microcode van de processor van een 8 inch floppy geladen, de instructieset van de CPU dus. Bij mainframes in de jaren '90 was in de systeemkast (formaat grote koelkast) een laptop ingebouwd die op OS/2 draaide die dat soort taken in het bootproces uitvoerde. Die laptop moet weer wel een BIOS hebben gehad ;-).

Wat in zekere zin een voorloper was van UEFI is OpenBoot, dat door oa Sun gebruikt werd.
Een systeem met Forth interpreter .
https://en.wikipedia.org/wiki/Open_Firmware

Een PDP-11 was (/kon zijn ?) zonder ROM, en men moest een heel kort programma via toggle switches op het frontpanel invoeren, dat mini-programma kon de eerstvolgende loader laden, en vandaar weer de rest.


Een hedendaagse computer zonder BIOS in ROM is de Raspberry Pi. Die heeft een ingebouwde minimale bootloader die vereist dat het CF-kaartje begint met een FAT-partitie, met daarin een blob met de bootloader-code (geleverd door de hardwarefabrikant) en een configuratiebestandje. De blob wordt geladen en van daaruit loopt het bootproces verder.

Voor veel OS wordt een BIOS voor slechts dat gebruikt.
Maar als je een OS wilt laden van een fibrechannel diskarray waarop een Ext4 partitie staat heb je iets nodig dat al die protocollen en disk layouts snapt . UEFI kan dat 'iets' zijn.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.