memtest86+ 6.10 - UEFI Secure Boot Signing, Headless EFI támogatással

Címkék

Megjelent minden valamirevaló IT technikus szerszámosládájának alapvető tartozéka, a nyílt forráskódú RAM tesztelő, a memtest86+ legújabb kiadása. Részletek itt. Letölthető innen.

Hozzászólások

Kicsit kinos, hogy egyedul a secure boot miatt kell ilyen abandonware-ek forraskodjahoz nyulni.

Nem erthetetlen, de kinos.

Még az se lett volna kínos, ha csak a Secure Boot miatt nyúlnak hozzá. Pedig én annak nagy ellenzője vagyok, MS-os monopolhelyzetbe hozó, felesleges tákolmány, de akinek kell, az most be tudja úgy a memtest-et bootolni, hogy a secure boot-ot nem kell ki/bekapcsolgatnia előtte. Elfér. Igen, 10 évig nem nyúltak hozzá, mert egy baromi egyszerű, text mode, bare metal szoftver, ciklusokban mintákkal írja és olvassa a memóriát, ez tényleg az a fajta egyszerűségi szint, hogy nem igényel állandó fejlesztést, meg sechole foltozgatást, és minden fél évben nagyobb színes ikonokat, meg mindenféle hülye kódneveket, marketingszövegeket, gendersemleges CoC-t és nem kell a verziószámát sem 100-asával emelni, hogy divatosnak tűnjön. Mai szemmel ez furcsa lehet, de semmiképp nem kínos. Főleg nem a text mode, CLI/TUI alkalmazások világában, ott teljesen megszokott ez, pont ez a lényegük, az egyszerűség minden felett.

Szerk.: még egy fontos megjegyzés. Nem azért minimalista a memtest86, mert épp minimalista divatember írta. Szükségszerűség, ahol az volt a cél, hogy maga a memóriatesztelő kód minél kisebb helyet foglaljon a memóriában. Ennek az az oka, hogy hibás hardverre lett szánva, ahol feltehetőleg hibás a memória, és ha abban egy túl komplex, túl sok memóriát foglaló rendszer fut, akkor már eleve a teszt sem lesz megbízható, meg bugok miatt instabil lesz, borulgat (hiszen a kód egy része átcsúszik egy hibás memóriaterületre), nem lesz az eredménye annyira megbízható. Ezért nem bonyolítják a kódot mindenféle GUI-val, és egyéb kényelmi-vizuális funkciókkal, semmit nem adna hozzá a hasznossághoz, csak a problémák számát növelnék.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Jujj, ez akkora ugrás, miért nem 61 rögtön?

"Sose a gép a hülye."

ezt megcsinálhatták volna akkor is, mikor megjelent az UEFI, nem akkor amikor már lassan az inteles szutykokat kidobja mindenki..

Hat en minden implementacioban a rendszerdisk elejen lattam, hogy onnan mukodik.

Bonusz, amikor hozza van cryptografiazva az alaplaphoz a disk es a seedben benne van a sorozatszama is.

Mar reg nem cel, hogy konnyen tudj laptopban disket cserelni. Desktop gepen el tudom kepzelni, hogy alaplapi flash-en van, de furcsamod reg talalkoztam desktop geppel. :)

Ezek milyen laptopok?

Tényleg csak desktop, belépőszint és régebbi üzleti, amikkel találkozom, de SSD csere sosem jelentett gondot. Az hogy van külön EFI partíció (valamilyen FAT, amit direktbe tud olvasni az UEFI), az megint más dolog, azt a telepítő generálja, ott még jó hogy vannak sorozatszámok és kriptó cuccok.

Minél mélyebbre ásod magad az UEFI-be annál jobban látni fogod, hogy miért rossz. Elképesztően bonyolult. Gyakorlatilag egy komplett önálló operációs rendszer. Saját driverekkel, saját network stackkel, saját API-kkal, saját konfig managementtel, saját service-ekkel, kezelőfelülettel, CLI-vel. DHCP-zik, HTTP request-et csinál, hazatelefonál (szerencsés esetben csak) az alaplapgyártónak. Telepíthetőek bele mindenféle 3rd party extension-ök. Ráadásul bizonyos részei rezidensek maradnak miután az igazi oprendszert betöltötted, és futni is tudnak a háttérben (tipikusan system management mode-ot kihasználva).

Régóta vágyok én, az androidok mezonkincsére már!

Az a topik nagy klasszikus, nem csak a bikicsunájos jellege miatt, hanem az egész kult. Nekem morbid is, mert anno segítettem egy emberkének 2003-ban összerakni egy P4-es gépet, P4 Northwood 3,06 GHz, 533 FSB, pont ilyen Asus P4800-E alaplappal, amit a topiknyitó írt, és Abit Siluro NV FX5200-as, tévékimenetes kártyával, 2×256 MB DDR400 RAM-mal, az az alaplap nem pofázott semmit sem. Bár ebbe lehet az is belejátszott, hogy normálisan lett összerakva, működött, vagy nem volt engedélyezve benne ez a beszélő BIOS, vagy azért mert Deluxe verzió volt. Lehet csak nem szerencsétlenkedtem, pikk-pakk működött, ment fel rá az XP Prof SP1 (akkor még nem volt SP2), meg a driverek (akkor még CD-kről).

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

És mivel soha nem bizonyított számomra, hogy a köreimben bármilyen előnyt is tudna jelenteni, ezért hát a "kőkorszakot kimerevítve" eddig be sem engedtem olyan gépet a látókörömbe, amelyen kikapcsolhatatlanul "szerelték" a BIOS-ba. - Azaz, az első dolgom kikapcsolni és újra telepíteni legacy módban a Win-t akkor is, ha a gép gyárilag UEFI-módban telepített Winnel érkezik. :) UEFI legtöbbször csak egy újabb szopási lehetőség!

Egyáltalán nem bonyolult, világos specifikációja van. Ami miatt a usereknek nagyon misztikusan ködös, az az, hogy sok nyomorék gyártó (HP-val az élen) nem megfelelően implementálja, illetve a bootot hozzádrótozza a Windowshoz, meg erőltetik feleslegesen ezt a trusted platform, TPM, secure boot, egyéb buzzwordöket, amiket nem lenne muszáj, ráadásul a secure boottal az is a baj, hogy egy MS által kézben tartott technológia. Ehhez sokszor hozzájárul, hogy jó pár disztró nem is kezeli le jól a bootrészét

Ha jól van implementálva, és nincs trusted nyomorékság erőltetve, sokkal rugalmasabb és egyszerűbb bootolást, multibootolást tesz lehetővé, mint a korábbi hagyományos BIOS MBR boot, meg MBR boot sectorba boot managerrel gányolás, bootflagezés, meg a korábbi primary, extended, logical partíciótípusokkal szopás.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Félre ne értsd, azt nem állítom, hogy a legacy BIOS a tuti megoldás, annak rengeteg sok évtizedes örökölt baja van. Viszont azt határozottan állítom, hogy bootloadernek egy félelmetesen overengineerelt megoldás lett az UEFI. Voltak alaplapgyártók, akik konkrétan webböngészőt építettek bele, mert miért ne (szerencsére ez is egy ilyen egynyári divat volt, mint a beszélő BIOS-ok).

Pontosan azért lett olyan agyonkomplikált, mert a MS meg Intel meg néhány nagy vendor saját agendájának megfelelően lett kialakítva. Meg persze egy jó adag design by committee... szerintem a végére kb el is felejtették, hogy mi is az eredeti célja. Többek között ezért is reménykedem abban, hogy az ARM-mal ez az agyonkomplikált borzalom is megy a szemétdombra. A haverjaival, az ACPI-val, meg az SMM-mel együtt.

Régóta vágyok én, az androidok mezonkincsére már!

Az nem baj. Nem kötelező belőle mindent implementálni, meg a végfelhasználónak sem kell mindent ismernie. Elég tudnia a FAT32 EFI partícióról, meg hogy egy átlag OS hogyan bootol róla. Néhány alapelvet kell csak ismerni, semmivel nem nehezebb ez a része, mint az MBR Legacy BIOS boot rejtelmeiben elmerülni. Sőt, még talán könnyebb is.

Anno én is rosszakat olvastam az UEFI-ről és az UEFI bootról, fórumon tömegesen sírtak, hogy nem megy, megtanulhatatlan, semmi nem bootol, akkor nekem sokáig még csak régi Legacy BIOS-os gépem volt. Emiatt bennem volt a gyomorideg, amikor először lett végre olyan gépem, ami támogatta, féltem, hogy tényleg bonyás lesz, de aztán kb. 30 perc utánaolvasgatással (Arch Wiki, meg egy-két forrás) simán megtanultam, megoldottam, és azóta is jól bootol minden, Windows 10-11, mindenféle Linux disztró, FreeBSD, OpenBSD, egyikkel sem volt gond, kulturáltan és működőképesen elbootolgatnak UEFI multibootban is, már vagy az 5. gépen azóta zsinórban, mindenféle gép, régebbi, újabb, laptop, desktop vegyesen. A titka mondom, az, hogy a secure bootot nem kell erőltetni mindenáron, vagyis lehet, de akkor meg kell érteni a működési mechanizmusát, meg az aláírási kulcsok kezelését, és kezelni kell egy extra komplexitási rétegként (pl. shim és társai), az sem abszolválhatatlan, de szerintem az egyszeri home usernek nettó felesleges bonyolítás, főleg, ha nem windowsozik.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Elég jól leírtad, hogy mi a bajom vele. Persze, amíg a felhasználó csak az alap use-case-t ismeri belőle, addig nem bonyolult. A baj ott kezdődik, hogy még a magukat "expertnek" gondoló emberek sincsenek tisztában vele, hogy mi minden egyéb felesleges vagy akár kifejezetten ártalmas feature van beleépítve, amik nagyon csúnyán megharaphatnak. Megjegyzem, én sem látom át minden ágát-bogát.

Nekem a felismerés az UEFI aljasságairól akkor kezdődött, amikor volt az a bug, hogy rm -rf /-el téglásítani lehet az alaplapokat, de olyan szinten, hogy csak eeprom programozóval lehet visszaéleszteni. (Én mondjuk sosem így szoktam wipe-olni diszket, tehát nem elsőkézből való a tapasztalat. Nyilván persze azóta a distrokban workaroundolták, hogy már csak read-only-ra mountolják az uefi konfig filerendszert.) De mindenesetre rámutatott, hogy itt a korábbinál sokkal-sokkal intimebb kapcsolat van a bootloader és az oprendszer között még futási időben is.

És akkor még nem beszéltem az ilyen UEFI-re épülő anti-theft megoldásokról, amik az oprendszer kernele alatt is aktívak (SMM-ben) és képesek kinyúlni hálózaton az oprendszer tudta nélkül (ez már nemcsak az intel vpro esetén van így - ami eredetileg nem uefi-s dolog volt, lettek vpro nélküli anti-theft megoldások is). Meg hogy a gép már akkor felcsatlakozik a hálózatra és indít pár hazatelefonálós HTTP request-et, mielőtt az oprendszer egyáltalán elkezdene bootolni. Hivatalosan nyilván csak azért, hogy kiírja, hogy van-e BIOS update. Mivel ezek a remek megoldások főleg notebookokat érintenek és azokon már nem divat a fizikai ethernet port, ezért természetesen ezt wifi-n is megteszik -> a wpa kulcsok/jelszavak nyilván valahol ott figyelnek benn az UEFI firmware-ben is.

EDIT: meg eszembe jutott az a remek eset is, amikor a Lenovo valamelyik notebook sorozatán UEFI payloadba rakott valami "adware"-t, talán Superfish vagy valami ilyesmit, ami clean install ellenére is mindig visszafertőzte a windowst. Aztán csinált magának lokális HTTPS man in the middle proxy-t, hogy így tudjon hirdetést injektálni minden weboldalba, egy beégetett cacerttel (nyilván ehhez lokálisan megvolt a private key is, különben nem működik). Ennél fogva bármelyik ilyen gépről kinyerhető volt a kulcs, amivel az összes többi ilyen gép kívülről támadhatóvá vált. Nyilván linuxot ez pont nem érintette, de az egészet megint egy olyan UEFI feature tette lehetővé, amiről azelőtt kb senki nem is tudott.

A secure boot nem erőltetésével az a probléma, hogy

1) Nem a te döntésed, a vendor eldönti helyetted. A MS ráadásul már kötelező windows követelménnyé tette, szóval a most már a vendor sem dönthet úgy, hogy nem. Hacsaknem valami kifejezetten windows-inkompatibilis cuccot akar forgalmazni (tegye fel a kezét aki látott ilyet :D)

2) az UEFI-be annyi és olyan gázos feature-t pakoltak bele, hogy ideális malware hordozó lett belőle. Egy komplett kulcsrakész rootkit framework áll a támadó rendelkezésére, amibe beköltözni userspace-ből is egyszerű. Gyakorlatilag muszáj secure bootot használnod, hogy esélyed legyen kivédeni azokat a támadási felületeket, amiket az UEFI saját maga hozott létre.

Régóta vágyok én, az androidok mezonkincsére már!

Erről az rm -r -f esetről hallottam én is, erről nem csak az UEFI tehetett, hanem néhány balfék disztró alatt indokolatlanul teljes rw joggal volt felcsatolva az egész UEFI firmware. Ezt jobb rendszerek alatt nem lehet eljátszani. Egyszer majdnem én is téglásítottam a rendszerem, én nem az UEFI firmware törlésével, mert az Arch alatt default nem lehet, hanem az efibootmgr-ből CLI-ben töröltem az összes bejegyzést, de erre eltűnt belőle nem csak az OS-eket érintő bootbejegyzések, de minden, boot from CD, Flash, HDD, stb. is, nem bootolt semmi. Hála istennek az UEFI-ben a Restore defaults visszaállította. Ilyet valóban nem kéne engednie az implementációknak, legalábbis nem alapértelmezetten.

A secure boot a te döntésed. A vendor valóban erőlteti a default telepítésben, de te kézzel bármikor visszacsinálhatod, igaz akkor újra kell húzni a rendszert, de megoldható. Még a Win11-nél is kihekkelhető, bár Win11-et senkinek nem kéne használnia, akiben van egy kis tartás és büszkeség. Annyira szarok a modern Windows-ok a 8-as óta, hogy nem javaslom senkinek, hogy szopassa magát vele, hacsak nem kell a munkájához csakis az, de akkor meg kő keményen fizettesse meg, hogy ezt a szutykot kell használnia. Esetleg játékkonzol-firmware-nek elmennek, míg csak játék futtatása a cél, semmi komoly munka a gépen.

Abban az egyben viszont igazat adok, hogy az UEFI komplex és ezzel ugyan önmagában nem lenne baj, hanem a komplexitással megágyaz bizonyos malware-eknek is. Ez minden komplex rendszerről elmondható, hogy minél komplexebb, annál inkább több benne a bug, több benne támadási-vírusmegtelepedési felület. Nem véletlen használok minimalista Linux rendszert, szinte kizárólag CLI/TUI terminális/konzolos programok, minimalista tiling WM, 0 sallang, suckless-stílusú megoldások (dmenu, fzf, stb.), mivel így soványan, átláthatóan tartom a rendszert, minden gyorsabb, kisebb erőforrás-igényű, bugok gyorsabban kiszűrhetők, nincs támadási felület vírusoknak, stb.. Még a bootolásnál is így járok el, komplex GRUB helyett vagy systemd-boot megy (ennek a nevével ellentétben nincs semmi köze a systemd-hez, korábban gummiboot volt a neve, egy lilo egyszerűségű megoldás, de UEFI-hez, egy .EFI fájl és egy .conf fájl, Arch, Artix rendszereken ezt használtam), vagy a kernel bootol közvetlenül (nincs köztes bootmanager, EFI stub boot, ezt Gentoo alatt szoktam használni).

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Epp par hete akartam az UEFI-s gepemen memtestet futtatni, ez lett a megoldas:

apt install pcmemtest

eredetileg egy memtest86+ clone de ha jol latom kozben visszemerge-eltek es most ez a cikkben is emlitett memtest kodja.