Slo-Tech - Novejši AMD-jevi procesorji Ryzen 3000 imajo zanimivega hrošča, ki kljub navidezni benignosti povzroča velika probleme. Generator naključnih števil, ki ga vsebujejo, namreč ne vrača prav nič naključnih števil, temveč vedno 0xFFFFFFFF. Vgrajen generator naključnih števil v procesorjih je že od Intelovih Broadwellov in AMD-jevih Zenov nekaj običajnega, zato se številni programi zanašajo nanj. Procesorji imajo vgrajeno funkcijo RDRAND, ki iz termične entropije procesorja pridobi naključno število in ga vrne programu, ki zanj zaprosi. Ob tem imajo tudi kontrolni bit, ki sporoči, ali ima procesor sploh dovolj entropije za tvorjenje naključnih števil. AMD-jevi procesorji trdijo, da je imajo, a potem vedno vrnejo 0xFFFFFFFF. AMD je napako priznal že maja in pripravil popravek, ki pa ga morajo v BIOS spraviti proizvajalci matičnih plošč - in številni tega sploh še niso storili, pa uporabniki ne morejo storiti ničesar.
Posledice so najrazličnejše. Zloglasni program v Linuxu systemd, ki potrebuje naključna števila in je nujen za zagon sistema, se je sprva obesil. Šele ko so pripravili grd obvoz, ki ob številu 0xFFFFFFFF uporabi druge metode tvorjenja naključnih števil, so se ti računalniki sploh zbudili. A to ni edina težava, ki obstaja. WireGuard na primer pri vzpostavitvi nove povezave zanjo poišče unikatno identifikacijsko številko, ki ji dobi iz RDRAND. Ob tem preveri, ali ni slučajno enaka kot prejšnja, in v tem primeru zaprosi za novo. V primeru AMD-jevih procesorjev se tako zatakne v neskončni zanki, kar sistem spravi na kolena. Klic RDRAND je namreč globoko v jedro.
Problem tovrstnih težav je dvojen. Po eni strani gre za lepo ilustracijo, kako moderna prepletenost programske opreme povzroči težave tam, kjer jih sploh ne bi pričakovali. Nedelujoč generator naključnih števil ima posledice za zagon sistema in lahko zablokira cel računalnik. Po drugi strani kaže, kako nemočni so uporabniki, saj so prepuščeni na nemilost na proizvajalcev matičnih plošč, da popravek vključijo v novo verzijo BIOS. In na koncu - čim več programov bo občutljivih in čim dlje bomo na popravek čakali, tem več piscev programske opreme bo našlo obvoze. Naključna števila je namreč možno dobiti tudi drugače. In tako se prav lahko zgodi, da luknja ne bo zakrpana še mesece ali leta, pa tega ne bo nihče zares vedel (če ne bo izrecno preveril z namenskim orodjem).
Po drugi strani kaže, kako nemočni so uporabniki, saj so prepuščeni na nemilost na proizvajalcev matičnih plošč, da popravek vključijo v novo verzijo BIOS.
A ni popravek v mikrokodi, kateri se lahko naloži? Tako Linux kot Windows to naredita. Pa še v BIOS ga lahko "napreden" uporabnik zapeče.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Tole (iz komentarjev) je tudi skoraj za lastno temo:
Another big security concern I discovered with my Ryzen 3000 build was that after a 100% clean room install, that I had a service "asusupdatecheck.exe" running on my PC. This was installed from the BIOS into Windows during install completely quietly. When installed from an Enterprise ISO with no Internet.
Tole (iz komentarjev) je tudi skoraj za lastno temo:
Another big security concern I discovered with my Ryzen 3000 build was that after a 100% clean room install, that I had a service "asusupdatecheck.exe" running on my PC. This was installed from the BIOS into Windows during install completely quietly. When installed from an Enterprise ISO with no Internet.
AMD je napako priznal že maja in pripravil popravek, ki pa ga morajo v BIOS spraviti proizvajalci matičnih plošč - in številni tega sploh še niso storili, pa uporabniki ne morejo storiti ničesar.
Kakšen vir in ocena, o koliko matičnih ploščah tu govorimo? Predvidevam, da so popravke dobile vse novoizdane X570 matične plošče, verjetno tudi večina X470 in B450, ki so od prihoda Ryzen 3000 procesorjev povečini dobile že več različic biosov.
Toliko kot spectre, meltdown, zombieload ipd... Prakticno nic.
The reason why most of society hates conservatives and
loves liberals is because conservatives hurt you with
the truth and liberals comfort you with lies.
So ja, ampak za nezahtevnega uporabnika popolnoma enako (ne)nevarne.
The reason why most of society hates conservatives and
loves liberals is because conservatives hurt you with
the truth and liberals comfort you with lies.
So ja, ampak za nezahtevnega uporabnika popolnoma enako (ne)nevarne.
medtem ko intel luknje pomenijo varnostno tveganje tudi za bs uporabnika, preko luknjastega softwera kot je na primer broser, so se linux navadni uporabniki soocali s sledecim problemom https://www.phoronix.com/scan.php?page=...
France Rejects Genocide Accusations Against Israel in Gaza,
To accuse the Jewish state of genocide is to cross a moral threshold
Saj piše v članku: - ne dela igra Destiny 2 v Windows (in morebitni drugi programi) - eni Linuxi ne delajo sploh (zašteka med zagonom) - zašteka med uporabo programov kot Wireguard - varnostni pomisleki (random številke so ključne za večino varnostnih mehanizmov)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Ampak vse te težave imajo samo uporabniki matičnih plošč, ki od prihoda Ryzen 3000 praktično niso prejeli nobenega popravka (razen seveda začetne podpore za nove procesorje).
To je po mojem res tako redko, da dvomim, da gre za novico. Tudi zgornji primerek na Ars Tehnici uporablja dokaj obskurno matično Asrock Rack X470D4U - pa še tu so mu pri Asrocku zatrdili, da popravek pride z novim biosom sredi novembra, lahko pa mu pošljejo beta verzijo biosa - kar je seveda zavrnil, da lahko lažje igra žrtev v članku.
Saj piše v članku: - ne dela igra Destiny 2 v Windows (in morebitni drugi programi) - eni Linuxi ne delajo sploh (zašteka med zagonom) - zašteka med uporabo programov kot Wireguard - varnostni pomisleki (random številke so ključne za večino varnostnih mehanizmov)
Oh, kakšno naključje. Da je program odvisen od naključnega procesa, ki po nekem naključju vrne nenaključno vrednost in tega koda ni predvidela. #badcode
"If we were supposed to talk more than listen
we would have been given two mouths and one ear"
- Mark Twain
Oh, kakšno naključje. Da je program odvisen od naključnega procesa, ki po nekem naključju vrne nenaključno vrednost in tega koda ni predvidela. #badcode
To, da Linux se ustavi med zagonom ni bad code ampak predvideno in pravilno delovanje.
Oh, kakšno naključje. Da je program odvisen od naključnega procesa, ki po nekem naključju vrne nenaključno vrednost in tega koda ni predvidela. #badcode
To, da Linux se ustavi med zagonom ni bad code ampak predvideno in pravilno delovanje.
Zakaj potem popravek? "Both problems caused lockups in Linux operating systems using systemd, so in May systemd committed a patch that falls back to using alternate RNG sources if systemd receives the characteristic 0xFFFFFFFF back from the RNG."
"If we were supposed to talk more than listen
we would have been given two mouths and one ear"
- Mark Twain
Oh, kakšno naključje. Da je program odvisen od naključnega procesa, ki po nekem naključju vrne nenaključno vrednost in tega koda ni predvidela. #badcode
To, da Linux se ustavi med zagonom ni bad code ampak predvideno in pravilno delovanje.
Zakaj potem popravek? "Both problems caused lockups in Linux operating systems using systemd, so in May systemd committed a patch that falls back to using alternate RNG sources if systemd receives the characteristic 0xFFFFFFFF back from the RNG."
Zato ker noben ni predpostavljal da bo folk kar serijsko shippal procesorje z zjebanim RNG. To da systemd ne pusti startat sistema ki ima zjeban RNG je ze pravilno.
Bug je definitivno AMDjev, ne moreš kriviti softvera, ki mu procesor sporoči, da je na voljo strojni generator naključnih števil, ta pa potem ne dela... Oz. vrne "naključno generiran" 0xFFFFFFFF.
Je pa vsa debata praktično akademska - matičnih plošč, ki so dobile podporo za Ryzen 3000, hkrati pa v zadnjih 3 mesecih nobenega popravka, je verjetno bore malo. Krivda tu je izključno na strani izdelovalca te matične. In uporabnik ima itak poleg nedelujočega generatorja naključnih števil še druge težave prvega biosa (WHEA napake...).
Je pa ta za kriptografijo pomembna funkcija prikladno "crknila" ravno v času, ko vedno več držav zahteva obligacijske back doore. Naključje?
Je pa ta za kriptografijo pomembna funkcija prikladno "crknila" ravno v času, ko vedno več držav zahteva obligacijske back doore. Naključje?
No naključje ni. Prej bi rekel, da se dogovarjajo kako naprej "bug" bo potrebno zakrpati vprašanje je kako poleg fixa pustiti kanale odprte za "nadzor".
Saj to ni tak velik problem. Generatorja pač ne uporabljaš. AMD-ji so vendar najboljši, itd....
Ustvarja se vtis kot da je AMD the bad guy tud v tem primeru ( ne rečem je že bil tud kdaj the bad guy ). V resnic pa so proizvajalci matičnih leni ko fuks. " AMD je napako priznal že maja in pripravil popravek, ki pa ga morajo v BIOS spraviti proizvajalci matičnih plošč - in številni tega sploh še niso storili, pa uporabniki ne morejo storiti ničesar."
Saj piše v članku: - ne dela igra Destiny 2 v Windows (in morebitni drugi programi) - eni Linuxi ne delajo sploh (zašteka med zagonom) - zašteka med uporabo programov kot Wireguard - varnostni pomisleki (random številke so ključne za večino varnostnih mehanizmov)
Destiny 2 preverjeno deluje brez problemov. Zdej edino če nisi BIOS-a posodobil; potem imaš mogoče problem. Nevem. Men dela k šus.
Oh, kakšno naključje. Da je program odvisen od naključnega procesa, ki po nekem naključju vrne nenaključno vrednost in tega koda ni predvidela. #badcode
To, da Linux se ustavi med zagonom ni bad code ampak predvideno in pravilno delovanje.
Kernel bi lahko bil toliko, da ce je nek feature na dolocenem HW blacklistan, ga pac ne uporablja in namesto tega uporabi workaround (random generatorji so delovali tudi pred Broadwellom/Zenom). To pocne v mnozici drugih primerov (zacensi kar s CPU bugi, kot je bil cca. 25 let nazaj FDIV v prvi generaciji Intelovih Pentiumov ...) in res ni razloga da ne bi mogel se v tem.
Ce to ni "bad code" je pa zelo "special snowflake code". Samo poglej USB-SATA kontrolerje - je spisek blacklistanih tak, da si sploh nisem predstavljal da jih obstaja toliko razlicnih kontrolerjev, kaj sele toliko bugastih (kje so potem se normalno delujoci).
Software running at all privilege levels can access random numbers through the instruction set
Torej tu kernel ne more nič. Da pa bi vsak sofver imel zraven (vedno up to date!) spisek bugastih pa je v praksi skoraj neizvedljivo.
Kernel ponuja random generator, priblizno tako kot (ce malo karikiram) ponuja mnozico syscallov. Zakaj aplikacija misli, da mora sama implementirati svojega? Saj tudi za druge funkcije gladko sitnari kernelu ...
Glede implementacije (ce ze ta mora biti na nivoju aplikacije) je pa tako, da tega seveda ne implementira aplikacija, ampak prevajalnik.
Software running at all privilege levels can access random numbers through the instruction set
Torej tu kernel ne more nič. Da pa bi vsak sofver imel zraven (vedno up to date!) spisek bugastih pa je v praksi skoraj neizvedljivo.
Kernel ponuja random generator, priblizno tako kot (ce malo karikiram) ponuja mnozico syscallov. Zakaj aplikacija misli, da mora sama implementirati svojega? Saj tudi za druge funkcije gladko sitnari kernelu ...
Glede implementacije (ce ze ta mora biti na nivoju aplikacije) je pa tako, da tega seveda ne implementira aplikacija, ampak prevajalnik.
Zakaj bi app uporabil ukaz ADD, če pa lahko kliče istovredno subrutino v neki knjižnici?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
1. Transactional Synchronized eXtensions "were disabled via microcode update. There’s a bug in Intel’s VM implementation that can allow a guest VM to fault in a way that traps the CPU in an infinite loop." 2. Skylake bug causes Intel chips to freeze under ‘complex workloads’ 3. intel-microcode: Panic after filesystem probe from simply adding current microcode to initfs 4. intel-microcode: Atom fails to boot when loading microcode 5. Pentium FDIV bug
Tega je polno...
France Rejects Genocide Accusations Against Israel in Gaza,
To accuse the Jewish state of genocide is to cross a moral threshold
Naštej primerljive buge na Intelovem procesorju. Da nekaj ne dela. Ne, da je nekaj vrnilo za 0,002% napačen rezultat, pa še pofiksali so takoj.
Poskusi izklopiti fanboyevski del možganov za eno minuto.
Komu ne dela? Enemu piscu z neko obskurno matično, pa še za to so mu v Asrocku zatrdili, da nov bios s popravkom pride kmalu in da lahko dobi beta verzijo, kar je za potrebe boljšega punchlina članka odklonil. Članka, v katerem najprej za zamudo krivi Asus, potem pa izda, da ima Asrock matično ploščo.
In ti potem to zaključiš v "Destiny 2 ne dela!"?
Bo moral nekdo vklopiti še kak drug del možganov kot "fanboyevski". Kot sem že dejal, ta "novica" je praktično non-issue, za veliko večino uporabnikov je bil bug odpravljen dva meseca nazaj, ostali (koliko jih je sploh zdaj, ko so še ABBA popravke prejele še zadnje poceni plate?) pa lahko hroščato izkušnjo primerjajo z izkušnjo Intela, kjer moraš matično pač menjati za vsako "generacijo", tudi če dokazano za to ni nobene potrebe.
Nihče ne preprečuje osmoljencu, da kupi X570 matično, ki pa zajamčeno ima potrebne popravke, da bo Destiny 2 delal, in bo spet vse prav na svetu...
Poskusi izklopiti fanboyevski del možganov za eno minuto.
Huhh...mission imposible
Se strinjam, da bos moral biti mentalno dozorel da razumes da ce zaradi buga program vedno kresira dokler ni popravka mikrocode, da to ce je intel je cisto nekaj drugega kot bug. spectra, meltdow, zombilan je tudi za celi svet bug razen zate podobnim.
France Rejects Genocide Accusations Against Israel in Gaza,
To accuse the Jewish state of genocide is to cross a moral threshold
2. Skylake bug causes Intel chips to freeze under ‘complex workloads’
Moj 6700K je tudi imel nek popadek na to temo, samo ne vem od kje pride "complex workload" - zamrzoval je redno prakticno vsak dan, ampak samo, ko ni bil obremenjen (torej prakticno brez workloada, razen idle OS). Pomagalo ni nic, dokler ni prisel ustrezen BIOS update. Zdaj (trk trk) deluje normalno