Diky za pekny clanek!
- Ring -1 /VT hypervizor/ a -2 /sprava udalosti/ jsou uplne nanic, tohle ma delat jadro!!! I kdyz je mi jasne, jak to vzniklo "Vy (stary linux/win/osx) to stejne poserete, radsi vam sbastlime tuhle vecicku pro nasi konkretni HW sestavu a muzete to nechat na nas". Divim se, ze linux komunita proti tomu neprotestovala uz od zacatku, nejen z bezpecnostniho hlediska, ale z poruseni principu - tohle je kompetence kernelu.
- ring -3 je proste zhuverilost, NSA backdoor a/nebo management "feature" pro korporace. Chapu pouziti, ale musi byt opt-in, anebo alespon moznost opt-out. Viz ten nastroj pro smazani. Nechapu, jak vlady statu (krom USA) mohly kupovat intel reseni do vladnich zakazek (GDPR se jezi vlasy)
- linux-based u-root je pekna myslenka. Ale proc to musi byt dalsi (2) kernel? Nemuze to byt soucasti hlavniho jadra, ktere ve fazi bootu -1 spusti u-root na ME/r-3, a pak pokracuje?
- aktivita od Purism na Librem HW: https://puri.sm/posts/primer-to-reverse-engineering-intel-fsp/
Popisuje prave neutralizaci, smazani iME; neni mi jasne, nakolik spolupracuji s g-NERF. Pokud vim, Purism byli prvni, co toto resili.
- dalsi otazka: Intel vs AMD. Doposud bylo AMD lepsi volba: ma take PSP, ale ne tak bohaty na spionske featury; ale ted se karta obraci a intel bude dost promazan -> lepsi nez AMD (alespon co se bonzactvi tyce)?
- bylo by opravdu nemile, kdyby se objevil a poradne rozsiril vir na iME/PSP, to by pak byl rychly pokrok v otevirani, mazani!
Myslím, že se karta neobrací.
Malá potvůrka na management (monitorování zdrojů, power sequencing, hotswap,...) se při konstrukci HW hodí. Ale je tady obrovský rozdíl v tom, jaký dostane práva.
Pokud je to jednočip, zapojený třeba na SMB s definovaným protokolem a sám neleze ven, je to OK (v tom, co teď dělám, mám tři takovvý potvory - display driver, touchscreen, proprietální komunikační stack v STM32F205). U všech vím, co dělají (mají jediný spojení po SPI s hlavním CPU).
Pokud je tam možnost upgrade FW, ale je k tomu potřeba cílená akce systému, taky se to dá ohlídat.
Pokud tomu hodím funkci nějakýho koprocesoru (hrnu do toho data, vypadne hash) a dělá to definovaným způsobem definovanou činnost, může/nemusí to být OK (například může blbě generovat náhodný čísla, pokud to má dělat RNG), ale pokud se to dá fixnout vědomým (= spustím script) a dokumentovatelným způsobem, OK. (na téhle úrovni, co jsem to pochopil, je AMD s TrustZone)
Pokud má přístup k LAN nezávisle na CPU, dokáže dělat management uvnitř CPU, má lajnu na root complex PCIE a nikdo neví, co v tom běží, je to hodně, hodně za hranou.
Ring -1 /VT hypervizor/ a -2 /sprava udalosti/ jsou uplne nanic tohle ma delat jadro!!!
K Ring -1... To mi prosím vysvětlete, jak jádro běžící v Ring 0 zajistí běh virtualizovaných OS, které běží také v Ring 0, aby to bylo dostatečně spolehlivé. Linux se umí přizpůsobit, je OSS a může tak běžet v jiném Ring, takže pak má takový kernel běžící v Ring 0 vyšší práva a může správně v takovém případě dělat to co má. Proprietární systémy se nepřizpůsobí a vyžadují běh v Ring 0 (to že je to chyba v návrhu x86 architektury, kdy stejný kód posunutý z RING 0 do RING 1 má u některých instrukcí jiné výsledky, tudíž nefunguje, je na jinou debatu), aby bylo možné nad nimi mít správný dozor virtualizačního hypervisoru, je třeba, aby běžel s vyššími právy a mohl v případě potřeby přebírat kontrolu.
Tak on to vlastně ani žádný "ring -1" není, že...
Jedná se o tu hradwarovou podporu pro virtualizaci. Nemám nastudovanou dokumentaci, takže to neumím správně pojmenovat, ale je to ta věc označená u Intelu jako VT-x. Dokud ji CPU neměly, musel hypervizor projet virtualizovaný kód analyzátorem a následně nahradit problematické instrukce voláním procedury, mající ve virt. prostředí analogický efekt, jako by měla ta nahrazená instrukce na bare metal hardware. Proto ostatně některé hypervizory nedokáží bez VT-x virtualizovat některé systémy jako OS/2 nebo Netware. Tam se právě používají i ring1 a ring2, což tu virtualizaci poněkud komplikuje.
Stejně tak "ring -2" není žádný ring ale specifický režim činnosti procesoru - SMM, který se spouští externím signálem.
Dokud ji CPU neměly, musel hypervizor projet virtualizovaný kód analyzátorem a následně nahradit problematické instrukce voláním procedury, mající ve virt. prostředí analogický efekt, jako by měla ta nahrazená instrukce na bare metal hardware.
To vše samozřejmě vím, stejně tak vím, že to nebylo dokonalé a nebylo to 100% kompatibilní. A na otázku jste samozřejmě odpověď nenapsal :)
Navíc VT-x, AMD-V a další není pouze zajištění běhu kódu s vyššími právy než RING 0, že?
Takže děravý firmware částečně necháme na místě, a částečně ho nahradíme pomocí Linuxu? Samotný kernel Linuxu měl loni 217 zranitelností, letos už 407 (z toho 167 z kategorii Code Execution), a to ještě není konec roku. Podotýkám že je to opravdu jen kernel, jehož API (syscalls) mají cca 300 funkcí, nic jiného, ani glibc.
Není trochu šílené nahradit firmware - který má občas nějakou díru - pomocí Linuxu, který má těch děr stovky ročně? Když máte díru v hrnci, tak ho přece nebudete nahrazovat pomocí cedníku.
Navíc ten firmware v těch strojích něco dělá. Stará se o inicializaci každého kusu HW, řízení režimů procesoru, uspávání, probouzení, řízení ventilátorů, vzdálený shutdown, boot a reboot, emulaci klávesnice a myši pro OS bez podpory USB, bootování ze sítě, bootování z disků, vzdálený přístup ke konzoli (keyboard, video, mouse), přesměrování disků atd. Chápu že Google na těch pár modelech serverových desek nemusí tyhle věci nijak pálit, i když třeba možnost jen s přístupem na remote management nainstalovat OS, bez toho aby člověk strčil nohu do serverovny, by mohla potěšit i Google. Dále chápu že Google neřeší nějaké notebooky a jejich power management, a nakonec ho nemusí trápit ani ty stovky zranitelností ročně, protože na těch počítačích jsou to "jenom" naše osobní data. Ale co zbytek světa?
Podle mě bude řešením spíš opravit stávající chyby a víc dohlížet na výrobce. To ovšem bude znamenat vyšší cenu. On je ten problém mimo jiné důsledkem toho, že výrobci díky tlaku na cenu a rychlost (obojí dělá radost zákazníkům) nemají čas se pořádně věnovat firmwaru. A asi by se vyplatil nějaký tvrdší certifikační program, jehož podmínkou by byla podpora HW od výrobce po spoustu let.
je "vtipne" jak vyjmenovavas co vse "ten firmware v těch strojích něco dělá", asi bys mel kontaktovat autory NERF, protoze presto ze "V tuto chvíli už je možné NERF sestavit a nabootovat, zatím je nejlepších výsledků dosahováno na serverech od firem Dell, MinowMax a OCP nodech." tak to urcite netusej a otevres jim oci :-D
hlavne je tedy vhodne zduraznit (chapu ze to vyvolava v PR oddeleni Microsoftu obavy) o co jde:
"closedsource s umyslnejma backdorama" Vs "opensource bez backdooru s moznosti auditovani kymkoliv"
takze to to tve "myslici" reseni je to nejhorsi mozne ;-)
Není trochu šílené nahradit firmware - který má občas nějakou díru - pomocí Linuxu, který má těch děr stovky ročně? Když máte díru v hrnci, tak ho přece nebudete nahrazovat pomocí cedníku.
Ano, nahradime. Zranitelnosti jsou hlavne v driverech a osekany kernel ma mnohem mene zranitelnosti. Remote code execution se naleznou jenom zridkakdy.
Apropos, neni trochu silene nahradit Win 3.11, ktery ma obcas nejakou diru - pomoci Windowsu, ktery jich ma stovky rocne?
Navíc ten firmware v těch strojích něco dělá.
A to je prave chyba. Ja nechci mit SW, ktery bude naslouchat na siti i kdyz je pocitac vypnuty.
Stará se o inicializaci každého kusu HW, řízení režimů procesoru, uspávání, probouzení
[...]
Dále chápu že Google neřeší nějaké notebooky a jejich power management
O to se staraji i tradicni OS jako je Windows, Linux nebo treba FreeBSD. Bez reseni ze strany OS power management nefunguje. O tom se presvedcis nainstalovanim treba DOSu na tvuj PC.
i když třeba možnost jen s přístupem na remote management nainstalovat OS, bez toho aby člověk strčil nohu do serverovny.
Na to netreba nekolik desitek MB kodu na remote management, staci PXE.
Kdyz jsou tam zadni vratka nebo diry, tak to zvladne i Putin, Trump, nejakej cinan nebo treba severokorejec, ktery na to prisel. To by si pomohli.
nakonec ho nemusí trápit ani ty stovky zranitelností ročně, protože na těch počítačích jsou to "jenom" naše osobní data. Ale co zbytek světa?
Google to prave trapi, jinak by to neresil. Otevreny kod se da lepe auditovat a Tavis Ormandy nachazi chyby.
Podle mě bude řešením spíš opravit stávající chyby a víc dohlížet na výrobce.
Jasne, rekneme jim "no no no, to se nesmi!". A co oni? Nic.
Ad Zranitelnosti jsou hlavne v driverech - Máte k tomu nějaká čísla? Co jsem se koukal, tak mi nepřišlo, že by zranitelnosti byly hlavně v driverech. Navíc firmwre musí zajistit inicializaci HW, a musí uživateli poskytnout prostředí, což dneska i u BIOSu bývá GUI. Takže stejně potřebujete spoustu driverů, včetně USB, HID a nějaké grafiky (UEFI implementuje Graphics Output Protocol).
Ad Ja nechci mit SW, ktery bude naslouchat na siti i kdyz je pocitac vypnuty - Když máte server na druhém konci světa, tak je celkem strategické mít nějaký BMC. Díky němu můžete mimo jiné počítač vzdáleně zapnout, nainstalovat OS bez toho abyste fyzicky připojoval instalační médium, provést tvrdý reboot, vidět konzoli a používat vzdáleně klávesnici a myš.
Ad Bez reseni ze strany OS power management nefunguje. - Bez podpory ze strany firmwaru také ne.
Ad Kdyz jsou tam zadni vratka nebo diry, tak to zvladne i Putin, Trump, nejakej cinan nebo treba severokorejec, ktery na to prisel. To by si pomohli. - A ona jsou tam zadní vrátka?
Ad Google to prave trapi, jinak by to neresil. - Google je autor nejděravějšího OS na světě, Android je naprostá bezpečnostní katastrofa. Myslíte že je dobré dát Googlu šanci, aby svoje děravé příšernosti nacpal na další miliardu strojů? Podle mě by to byla velká chyba.
No este keby ste si tych 167 code execution zranitelnosti aj pozreli vsak? Ono ja chapem ze vy by ste do toho narvali aj ovladace qualcomu, mediateku, broadcomu a dalsich vyrobcov pre android, ktore obsahuju drvivu vacsinu z tych 167 chyb a predpokladam, ze aj bluetooh stack a wifi ktory obsahuje ten zvysok chyb. To su totizto casti, ktore budu pre ME velmi potrebne, priam klucove. Vy si uvedomujete, ze co veta od vas to dokaz, ze jedine comu rozumiete je trolovanie?
Ale to je konzistentní s přístupem Microsoftu k driverům "Pokud pro HW není driver pro Windows, je to chyba výrobce HW, ne Windows. Pokud pro HW není driver pro Linux, je to chyba Linuxu, ne výrobce HW."
Takže teď pokud je chyba v driveru pro Windows, je to chyba výrobce a ne ve Windows, zato když je chyba v driveru pro Linux, je to chyba v Linuxu.
Jednoduché :)
Ve Windows není driver součástí jádra a nebývá otevřený , v Linux je součástí jádra a bývá otevřený. Tudíž jistý rozdíl tu je. Asi nelze považovat chybu v uzavřeném ovladači, například nVidie za chybu Linuxu ale v otevřeném ovladači který je součástí jádra už by tomu tak být mohlo. Není asi třeba říkat která z chyb bude opravena dříve.
To není tak jistý:
- I v Linuxu nemusí být ovladač součást jádra (dej si man modprobe, ať vidíš, jak se to dělá). Můžeš natáhnout proprietální binární blob, když chceš (resp. potřebuješ).
- Ve widlích ovladač zasahuje i nějaký věci, co do něho zrovna nepatří (konfigurační taby do dialogu atd.). Takže to, co ve widlích padá na chyby ovladačů, můžou být chyby GUIčka. Tím se počet chyb ve widlích taky trochu maskuje, prostě se to hodí na ovladač a hotovo...
Třeba zrovna na nebezpečnost ME bylo poukazováno dlouhodobě a Intel to k nějaké vlastní iniciativě za vyšší bezpečnost zdá se příliš nepovzbudilo. Na výrobce je možné účinně tlačit pouze nenakupováním jejich produktů a lépe auditovatelná alternativa k Intel-based počítačům na trhu není. Google si to zřejmě uvědomuje a proto začal problémy řešit po svém. Do spotřebitelských PC se to bohužel asi nedostane, možná, kdybych si koupil ChromeBook...
K poctu a zavaznosti zranitelnosti Linuxoveho kernelu v tomto kontexte: Ono si ten zoznam code execution vulnerabilities treba aj poriadne pozriet. Da sa z neho velmi rychlo zistit, ze code execution chyby v kerneli samotnom (kernel core & surroundings) su dokopy asi 4. Za zvysok mozu device drivery, ktorych zdrojovy kod bol commitnuty do kernelu. Zdrojovy kod kernelu naozaj nie je len tych 300 syscallov, bootloader a obrazok tucniaka na terminali pocas bootu. Prve a najdolezitejsie je, ze Linux pouzity ako nahrada FW nema dovod na tieto zariadenia sahat a teda nemusi mat prikompilovane prakticky ziadne ovladace zariadeni. Za inicializaciu ovladacov zodpoveda operacny system a FW musi mat iba minimalnu infrastrukturu k tomu, aby vedel zariadenia vyenumerovat. K tomu zrejme bude potrebny iba driver pre PCI-E zbernicu. Ak vobec. Druhy postreh k tym chybam: su to ovladace zariadeni prevazne pritomnych iba na SoC pouzivanych v mobiloch, iba par z nich sa tykalo PC class HW. Postreh treti: predpokladam, ze prevaznu vacsinu toho kodu napisali vyvojari vendorov daneho HW (aby nad tym slo spustit Android). Je blahove predpokladat, ze ti vyvojari budu radovo (horsi/lepsi) ako vyvojari, ktori pisu kod do FW inych druhov zariadeni. Kvalita toho kodu bude +- rovnaka ako kod vo FW alebo (podpisanych, alebo nepodpisanych) ovladacoch. Alebo aj horsia, pretoze uplny humac si musia nechat pre closedsource, Linuxovy kernel este aku-taku uroven ma a Torvalds nastastie nema problem niekomu znadat ak sa pokusi dnu dostat nieco, co uz lezie cez ciaru. Postreh piaty: ze tam tie chyby su ukazuje, ze open source nie je nepriestrelny a da sa donho prepasovat umyselne alebo neumyselne problem. Closed source, kde oci k review je radovo menej na tom bude radovo horsie (a to mozem potvrdit, kolkokrat na review v uz zrevieovanom kode nachadzam detske chyby) - ktora korporatna code review ma viac ako 10tich reviewerov? Dve denne na celej planete?
No a teraz k tomu zvysku. Ze zranitelnosti firmware nie su zverejnovane/nachadzane neznamena, ze tam nie su. To mate ako s testovanim. Testovanie (a test driven development) je velmi dobre na dokazovanie toho, ze v kode su chyby. Ale zlyhava (bez ohladu na to, ako dobre alebo podla akej metodologie sa to bude robit) v dokazovani toho, ze v kode ziadne chyby nie su. Len preto, ze o niecom neviete nemozete prehlasit, ze to nie je.
Co sa tyka inicializacie HW a role FW v tomto procese, tak sa obavam, ze je velmi obmedzena. Je to mozne velmi lahko dokazat sporom: Ak by FW mal byt zodpovedny za inicializaciu kazdeho kusu HW co sa do zariadenia strci do takej urovne, ze o nom nieco velmi specialne musi vediet, nebolo by mozne zobrat nahodnu sietovku alebo nahodny usb dongle a strcit ho len tak do pocitaca. FW v PC hraje velmi obmedzenu rolu pri inicializacii akehokolvek zariadenia. Asi nie vacsiu ako rolu postara - poskytuje unifikovane rozhranie (ACPI) ktorym sa moze operacny system dohodnut so zariadenim, ako budu nasledne komunikovat a ako bude zariadenie pristupovat k zdrojom systemu. Ziadna raketova veda, nahradenim closed source FW sa nestane, ze magicky pride uplne vsetok HW o funkcionalitu. Samozrejme je ale nutne podpodovat tie uplne najesencialnejsie veci "z opacnej strany". Co viem, tak v Core Boote sa ACPI ignorovalo a pouzival sa miesto toho podstatne lepsie postaveny a sirsie akceptovany OpenFirmware interface. Sice to s widlama nefunguje, ale koho by to trapilo, ze?
Power management riesi v prevaznej vacsine zasa operacny system, pretoze len ten vie, kolko prace pocitac v skutocnosti ma. Je mozne, ze niektore casti ACPI ide virtualizovat, ale pokial viem, tak povodnym ucelom ACPI bolo vytvorit HW nezavislu platformu, ktorou FW moze OS oznamit ako sa naraba s HW kvoli dosiahnutiu nejakej konkretnej cinnosti a OS si potom tieto cinnosti robi sam a FW sa mu do toho nestara. Je to zbytocne pomale a obmedzuje to operacny system v architekture (co je dovod preco zakapal PM BIOS).
K tym sluzbam, ktore firmware poskytuje: to ma dva problemy. Poprve charakter sluzieb. Vacsina z nich (remote shutdown a spol) ide na akomkolvek aspon trocha stabilnom systeme spravit bez nutnosti mat uberlayer. Proste sa ide do systemu lognut a bud ho rebootnut, alebo vypnut. KVM je tiez obezlicka, ktora sa objavila v dobach, ked boli remote access schopnosti windowsu takmer na bode mrazu a nejakym podivnym sposobom dodnes nevymrela. Podruhe: kolko percent pouzivatelov naozaj tuto funkcionalitu potrebuje a kolko z nich, ktori ju potrebuju ju naozaj aj pouzivaju? U desktopov a notebookov, kde nezanedbatelna cast predajov ide beznym frantom uzivatelom a len relativne maly fragment korporaciam (kde navyse nejaky deep remote management maju v sieti implementovany len niektore) to nebude zhave. U serverov by sa zakaznici nasli, ale ti sa uspokoja 1) remote accessom v OS, ked je system stabilny, netreba ho podryvat 2) ILO a spol. ktore maju dedikovany HW umoznujuci vzdialeny pristup nejakym kontrolovatelnym sposobom.
Emulacia obsolete HW pre OS, ktore ho nevedia. To myslite vazne? Aky nie uplne archaicky system nenabootuje a nebude vediet pouzivat USB mys a USB klavesnicu? Windows 98, Netware? Zvysne vymenovane funkcie ide realizovat plne v rezii dedikovaneho HW tak, ze nanho FW nemusi sahat ani mysliet. Specificky netboot bol historicky realizovany prioritne dedikovanym FW v sietovke.
Takze na vasu otazku "A co zbytek sveta?" tvrdim, ze zbytok sveta bude bez IME fungovat uplne v pohode a mozno si jeho odchod ani nevsimne. Velmi velka cast tych, ktori by bez neho zit teoreticky nevedeli bude bez neho zit aj tak, pretoze ho k vami proklamovanym funkciam aj tak nepouziva, takze si jeho odchod tiez nevsimne.
Je mi ale jasne, ze k masovemu ustupu od implementacie IME do strojov, kde nie je dovod ho mat (Atom? to fakt?) nedojde, pretoze existuju vyssie zaujmy.
Ad Da sa z neho velmi rychlo zistit, ze code execution chyby v kerneli samotnom (kernel core & surroundings) su dokopy asi 4 - bavme se o vulnerabilities a jejich procentu způsobenému drivery. Máte k tomu nějaká data? Já se zběžně koukal, a nepřipadá mi to, že by většina vulnerabilities byla v driverech. Navíc pokud nahradíte firmware Linuxem, tak musí inicializovat HW (například nastavit parametry RAM modulů), spravovat senzory a chlazení, obsluhovat grafiku (UEFI implementuje Graphics Output Protocol), USB hub a HID zařízení, bootovat asi budete pomocí driverů SATA a nějakých RAIDů, a musíte zavést OS z FS, takže přidejte driver FS.
K té inicializaci HW třeba tady: https://en.wikipedia.org/wiki/Memory_Reference_Code
Ad ze tam tie chyby su ukazuje, ze open source nie je nepriestrelny a da sa donho prepasovat umyselne alebo neumyselne problem - Souhlas, do open source SW může přispívat prakticky kdokoliv. Nevíte jestli ten člověk fyzicky existuje, nebo jestli je to tým nějaké tajné služby, který desetkrát přispěje zajímavým kódem, aby se otupila pozornost toho kdo commity kontroluje, a pak zanese backdoor který se dá považovat za chybu. Nevíte kdo za commitem stojí, neexistuje bezpečnostní prověrka, neexistuje žádná trestní ani jiná odpovědnost, neexistuje dohledatelnost. Není to dost hrozivé?
Ad ktora korporatna code review ma viac ako 10tich reviewerov - standardně commity prochází vedoucí týmu, a pak později reviewers, případně externí auditoři, a pravidelně také automatizované nástroje. U zaměstnanců se kontroluje minimálně průkaz totožnosti, jestli absolvovali deklarované vzdělání a pracovní posize, u citlivějších věcí se běžně dělá bezpečnostní prověrka.
Ad Power management riesi v prevaznej vacsine zasa operacny system, pretoze len ten vie, kolko prace pocitac v skutocnosti ma. - Jenže firmware ví jaké teplotní senzory stroj má, jaké jsou cílové teploty, jak se řídí větráky, jak reagovat na stisk klávesy Fn+Sleep, umí probudit CPU který je úplně zastavený atd.
Ad povodnym ucelom ACPI bolo vytvorit HW nezavislu platformu, ktorou FW moze OS oznamit ako sa naraba s HW kvoli dosiahnutiu nejakej konkretnej cinnosti a OS si potom tieto cinnosti robi sam a FW sa mu do toho nestara. - ACPI má poskytovat interface pro OS. Mimo jiné se z něj dozvíte jestli máte cc:NUMA systém a jaká je cena přístupu k různým zdrojům z různých jader CPU. List těch tabulek a API by byl dost dlouhý.
Ad charakter sluzieb:
Proste sa ide do systemu lognut a bud ho rebootnut, alebo vypnut. - Jistě, to funguje dokud vám například neztuhne OS, nezůstane viset kernel panic, neztuhne OS během shutdownu atd.
KVM je tiez obezlicka, ktora sa objavila v dobach, ked boli remote access schopnosti windowsu takmer na bode mrazu a nejakym podivnym sposobom dodnes nevymrela. - Stačí abyste si nastavil, že při bootu musíte vybrat OS a není tam timeout, a už KVM oceníte. Navíc když stroj přestane reagovat, tak na KVM vidíte co se děje na konzoli. Jako bonus můžete pomocí KVM provést instalaci OS.
kolko percent pouzivatelov naozaj tuto funkcionalitu potrebuje a kolko z nich, ktori ju potrebuju ju naozaj aj pouzivaju - Většina serverových instalací.
U desktopov a notebookov... - Těch jde velké procento do firemního sektoru. Typicky domácích modelů se pokud vím současný problém netýká.
Ad Specificky netboot bol historicky realizovany prioritne dedikovanym FW v sietovke. - Jistě, ale tu síťovku někdo musí inicializovat, zavést její modul firmwaru, dát tomu modulu API pro vstup z klávesnice a výstup na obrazovku (firmware mívá vlastní setup) atd.
Ad tvrdim, ze zbytok sveta bude bez IME fungovat uplne v pohode - Jenže firmware není zdaleka jen o IME. Je to velká spousta funkcionality, která by chyběla každému. IME jako takový by chyběl řadě firem.
>> Ad Da sa z neho velmi rychlo zistit, ze code execution chyby v kerneli samotnom (kernel core & surroundings) su dokopy asi 4 - bavme se o vulnerabilities a jejich procentu způsobenému drivery. Máte k tomu nějaká data?
Su to 4 stranky, staci si to zbezne prelistovat. Na prvej stranke vidim 4 exec zranitelnosti, ktore sa dotykaju kernelu samotneho, zvysok su HTC/Qualcomm bootloadery / drivery. Na druhej stranke som videl tiez asi 3 zranitelnosti tykajuce sa samotneho kernelu, zvysok zasa drivery prim ma asi NVidia.
Takze to vychadza zhruba tak, ze na 1 zranitelnost v kode kernelu, kde sa da predpokladat, ze commituju tie neoverene osoby o ktorych ani nikto nevie, ci v skutocnosti existuju pripada cca 10 zranitelnosti v kode driverov kam commituju ti prevereni programatori u ktorych sa overilo, ze maju deklarovane vzdelanie a kod presiel mnohostupnovym review.
Takze nie, nedesi ma, ze kod opensource software-u nerobia ludia s previerkami, pretoze samotny fakt, ze je kod otvoreny je lepsou previerkou, ako ked si jedna korporatna krysa zreviewuje kod druhej korporatnej kryse. Neviem, pre koho pracujete a teda ci to, co mi o korporatnych review hovorite je niekde skutocnostou, vyplodom vasej fantazie, alebo vlhky sen, ale moja skusenost s 10k+ SW domom je, ze nic z toho co hovorite nie je pravda.
Z clanku:
"Podle Minnicha je to dobré proto, že je kód stále k dispozici v otevřené podobě vhodné k auditu."
""Firmy chtějí používat firmware, kterému rozumí. Chtějí také bootovat rychle a bezpečně," říká Minnich."
"Během bootu počítače nejprve proběhnou dvě fáze (security neboli SEC a pre-EFI initialization čili PEI), které jsou kompletně proprietární a jejich funkce nebudou nikdy zveřejněny."
To jako fakt? Velmi mocny uzavreny intel firmware plny vaznych bezpecnostnich chyb nahradime za ze firmware kde porad SEC a PEI budou kompletne uzavreny ale diky zbytku to budem nazyvat bezpecne a auditovatelne?
WTF?
Neni spise resenim trvat na zcela otevrene a zcela plne auditovatelne verzi firmware (pokud je vubec RING -3 opravdu potreba) a pokud tomu vyrobci x86 (Intel, AMD, cinska VIA) reseni nevyjdou vstric, tak jejich vyrobky nekupovat nepouzivat?
Porad se otevreny svet muze obratit na ARM, (open)POWER a jine architektury a SW prepsat na tyto architektury.
Az zacne Intel prichazet o sve trhy, trzby a zisky, pak to bude ficak jak to pujde i kdyz to nejde!
Staci jen chtit!
Brání tomu pragmatický pohled na věc. Dejme tomu, že si chci pořídit pracovní stanici o výkonu shodném s mým současným notebookem a schopností provozovat všechny nástroje, které potřebuji k práci. Mohu mít buď líné ARMy s firmwarovými bloby od Broadcomu a spol. nebo hyperdrahé POWER stroje. x86 software, bez kterého se zkrátka neobejdu nepustím ani na jednom. I když si jako jednotlivec mohu dovolit uvažovat "ideologicky", musel bych být buď fakt hodně nenáročný nebo mít setsakra kliku, aby všechno, co potřebuji používat běhalo na mém ne-x86 zařízení a zaplatil bych za to neúměrně velké peníze. Firmy musí přemýšlet především ekonomicky a žádná cenově dostupná alternativa x86 strojům prostě dnes není. Myslím, že kdyby únik na jinou architekturu byl použitelnou možností, Google by se s žádným NERFem a podobnými iniciativami nejspíš neobtěžoval.
Clanek je zavadejici, uz jsem tu jednou uvedl, ze neni pravda, ze prechod k AMD nic nevyresi. Tak si to prosim opravte.
http://www.amd.com/en-us/innovations/software-technologies/security
AMD Secure Processor is currently only available on select AMD A-Series and AMD E-Series APUs.
Informace na tom webu jsou brutálně zastaralé..
Minimálně Ryzen PRO a EPYC PSP (resp. jeho následníka) mají a je plně aktivní:
https://www.anandtech.com/show/11591/amd-launches-ryzen-pro-cpus-enhanced-security-longer-warranty-better-quality
Co se týče spotřebitelského Ryzenu, tak PSP 100% obsahuje (je to stejný čip) a na 99.9% se také používá (normální Ryzen taky podporuje Secure Boot, který je zajišťován právě PSP) a jsou jen některé části vypnuté a nebo běží a jen nejsou ofic. podporovány (jako např. podpora ECC pamětí v běžných Ryzenech).
Oficiální potvrzení je např. zde: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdfy
"The encryption key used by the AES engine with SME
is randomly generated on each system reset and is not visible
to any software running on the CPU cores. This key is managed
entirely by the AMD Secure Processor (AMD-SP), a 32-bit
microcontroller (ARM Cortex-A5) that functions as a dedicated security subsystem integrated within the AMD SOC."
Dokonce i Vega ho má ;)
https://www.phoronix.com/scan.php?page=news_item&px=Vega-Pro-Secure-Processor
To si clovek rika, proc ten M$ Word premysli stale stejne tak dlouho jako pred 25 lety, pricemz vykon pocitacu v vzrostl radove 1000x. A ejhle, ono si to CPU dela neco zcela jineho a mily zlaty M$ Word provozuje jen tak na mimochodem. :-))))
Holt vymozenosti noveho milenia. ;-)
Ani bych nerek ... zhruba roky 90-95. Stroje na urovni i286-i486. Vypocet mezd pro cca 250 zamestnancu cca 2-3hodiny (s vymenou stroje se to se stejnym SW vyrazne zrychlovalo). Rekneme zhruba minutu na zamestnance.
Soucasnost. SQL server s 40+jadry 256+GB RAM + aplikacni server +- totez. Vypocet mezd pro cca 15 000 zamestnacu trva 10 ... dnu. Coz je ... zhruba minuta na zamestnance. Ovsem s HW o nekolik radu vykonejsim.
to ale nic nevypovídá o výkonnosti :), sleep 60 mi kupodivu bude trvat také stejně dlouho na starém a na novém HW.
Ten tvůj příklad s SQL serverem se mi nějak nezdá, viděl jsem už dost divnosti ve firmách, tuhle ještě ne, není tam jiné omezení? Jiné vytížení? Nečeká se na něco dalšího?
Je to cely uplne blbe navrzeny (blba struktura dat, blba struktura indexu ... imbecilni zpusoby komunikace ...), osobne umim vysledek tak asi tak 1000x rychlejs, ale to nic nemeni na tom, ze takhle vypada vetsina aplikaci. V principu umim samo ty vejplaty spocitat na urovni SQL a vyradim tim aplikacni server a klienta, coz zpusobuje rekneme 70% "pomalosti", a pokud si nasaju potrebny data do vlastnich tabulek, tak viz vejs, ale ty si v korporatu neco takovyho vemes na triko?
Bullshitový titulek...
iME se těžko nahradí, když to je součást chipsetu/CPU. Maximálně se nějak zruší běh výchozího firmware, ať už cleanerem, HAPem nebo jinak. Když by byl prolomen podpis FW, bylo by to o dost horší, ale pořád je to jen firmware. Titulek by měl spíš nahrazovat buggy UEFI/BIOS.
Nepochopil jsem, proč se lidi tak strašně hnevaji na Intel? Vždyť každý server má management interface (ilo nebo co já vím, jak tomu říkají), který umožňuje to samé. Neslyšel jsem na to žádné stížnosti, jen na ten Intel. Jaký je v tom rozdíl? To máte nějak zaručeno, že ty ostatní implementace neobsahují chyby? Opravdu bych uvítal faktickou odpověď, ne řev frustratu.
Kokos, nestacim sa divit, kolko chytrolinov je tu a odbornikov na Linux security. Som rad, ze sa niekto vyjadril otvorene a pravdivo k bezpecnosti vanilla Linux kernelu. Ked som prvykrat pocul o NERF, hned ma tema security v Linux jadre napadla ako prva. Bohuzial.
A ked uz hovorite, ze si treba tie zranitelnosti viac nastudovat, tak sa opytajte priamo panov Grega KH, Torvaldsa a ludi z Redhat Security timu preco permanentne odmietaju priradovat privesc CVE regulernym a vaznym chybam v samotnom Linux jadre, ktore su reportovane ale zial kvoli vylepseniu PR image Linuxu totalne ignorovane. A ich vecne zapieranie a silent fixy tychto bugov v commitoch. Este stale si myslite, ze ste s vanilla Linuxom v bezpeci? Neni to len o chybach v driveroch, ako tu mnohi pisete. Je mi vas uprimne luto. Nie ste o nic viac v bezpeci s vanilla Linuxom nez s deravym a closed source Intel ME, bodka. Linux a jeho kvalita a security uz davno nie je to, co byvalo, zial je to tak.
A pochopte, ze toto je totalne v zaujme Google. Ide o velmi velku hru. Podarilo sa mu dostat najderavejsi kernel sveta na miliardy mobilnych zariadeni a smutne zial verim tomu, ze sa mu casom podari aj toto. A ak si naozaj tak dopodrobna zistujete veci ako tu vsetci najmudrejsie pisete, tak pan Torvalds je plateny z Linux Foundation, kde jednym z najvacsich clenov je prave Google a Torvalds dostava od LF vyse 700k USD rocne, tipujem najma za ten jeho najubohejsi pristup "security bugs are just bugs" - viete kolko krat by som jemu a jeho komplicom vazne chcel dat do drzky ked musite riesit serious bezpecnostny incident kvoli bugom vo vanilla Linux jadre nasadenom vo velkom vo financnej institucii a pocitate realne skody a musite napravat chyby? To Torvalds by si toto mal kompletne odsrat za tieto jeho vyvojarske pristupy. Kto toto nezazil, nevie o com pisem. Skorumpovany smejd to je, ktory sa hra na velkeho bossa a riaditela Linux jadra. Ale vsak za tie prachy ktore dostava, hmm, kto by to nerobil, ze? Obcas commit sem, obcas tam, ale inak merge. Co to nevidite?
Takze tak. Kto tejto teme chce pochopit, ten to pochopi. Kto nechce, nech sa stale klania Torvaldsovi, bezpecnosti vanilla Linux jadra a jeho poskokom. V pozadi je dost veci o ktorych sa nepise. Hladajte pravdu.
Pozdravujem ludi z Kyberie, SD-ho (kde si sa stratil???) a ludi s nohami na zemi v IT svete. Linux vas nezachrani.
Linux a jeho kvalita a security uz davno nie je to, co byvalo, zial je to tak.
Takže chceš říct, že většina security chyb se do Linuxu zanesla v poslední době a dřív tam nebyly? :) Spíše bych řekl, že se o nich tolik nemluvilo a tolik se jich nehledalo.
Je pravda, že většina CVE jsou drivery, o tom, že linux je bez chyb nikdo nemluvil, nejde přitom jen o samotný kernel, ale o spousty user space nástrojů.
To co jsi tady popsal platí snad o všech OS. Pojišťovnictví bylo vždy v tomhle dost mimo a pokud kritická security chyba v OS (ať s CVE nebo bez něj) způsobí velké finanční ztráty, znamená zpravidla zanedbání spousty dalších věcí.
Ne úplně rozumím, jak to v případě Intel ME funguje a dost mě to zajímá. Je tu někdo, kdo toho ví víc?
Chápu System management mode. Chipset zatahá při nějaké sledované události za pin SMI#, procesor to nějakým pinem(SMIACT#) potvrdí a od té doby je systém ve speciálním režimu, kdy CPU vidí do "ukradené" části paměti, uloží se kontext a jede "na pozadí" speciální kód, který tam připravil BIOS(třeba fix nějakých chyb chipsetu nebo obsluha USB klávesnice, viditelné v DOSu :-)). Poté, co se udělá, co je třeba, se speciální instrukcí vrátíme do reality kódu operačního systému, aplikace apod... Musí to být rychlé, aby to nezpomalovalo běh CPU pro uživatele...
Nojo, ale ten ME vypadá daleko tajemněji. Kde ten Minix vlastně běží? Na nějakém malém procesoru uvnitř našeho procesoru? Nebo pro něj speciální hardware krade periodicky čas našeho procesoru????
Původně jsem myslel, že je to v principu něco jako iLo, ale vše je asi jinak?? Může to někdo objasnit?
Díky...
Zpráviček a článků k tomu tady za poslední dny vyšlo více a myslím, že k pochopení jak to funguje to stačí. Zjednodušeně řečeno, v CPU je další CPU, který může cokoli, aniž by o tom hlavní CPU věděl. Má to přístup do paměti a k perifériím, k síti. Běží na tom OS Minix... Prostě počítač uvnitř počítače, který běží i když "hlavní" PC je vypnuto.
Takze cisto teoreticky vedia znefunkcnit vsetky procesory jednym updatom
Osobně si myslím, že ne teoreticky, ale zcela prakticky jsou schopni znefunkčnit či ovládat jakýkoli počítač, který toto v sobě má (protože nejde jen o to CPU, ale má to podmínky, aby to mělo podporu v chipsetu, síťové kartě atd.). Vzhledem k tomu, že je to počítač, uvnitř počítače, který běží i když "hlavní" počítač je vypnutý a je možné tímto vnitřním počítačem jakkoli plně ovládat "hlavní" počítač a jediný Intel k tomu má plný přístup, tak to znamená, že vlastně váš počítač není ve skutečnosti opravdu váš, protože plnou kontrolu nad ním má někdo jiný než vy sami.
To je taky důvod, proč to řeší např. Google, protože je mu jasné, že když někdo bude chtít, tak mu je schopen plně ovládnout jejich datová centra, aniž by se proti tomu mohli nějak efektivně bránit hlavně kvůli tomu, že tento systém je nadřazen i OS i hypervisoru běžícímu na "hlavním" počítači.
reagoval jsem spíše na tvojí zmíňku s Googlem a nasazení v servovnách. Tam je poměrně těžké se přímo z internetu k daným serverům dostat. Ty sítě jsou dost krkolomné, integrované síťovky se nepoužívají skoro vůbec a tenhle malý procesor má velkou moc, ale strašně omezené zdroje. Takový útok by mohl být velice rychle prozrazen (můj tip).
Neřikám, že to možné není, ale zatím to reálné nebude a doufám, že zítra tady tahle věc v tomhle stavu také nebude a Intel se k tomu postaví čelem. Partnerům již obchodníci začínají ledacos naznačovat, uvidíme co se stane příští rok.
S tím určitě souhlasím, že to možné je, ale taky nevíme přesně, jaké vektory útoků jsou vůbec možné a ve chvíli, kdy tenhle počítač uvnitř počítače má přístup k paměti, PCI sběrně, USB atd. prostě kamkoli, tak je možné opravdu cokoli.
I když také doufám, že díky tomu, co se kolem toho děje teď, tak tahle věc může velmi rychle skončit a přestane se používat.
Nemusis trebat, wifi to prej pouzivat umi. A jelikoz to ma pristup do rameti, tak je to vlastne uplne jedno, vkladat vlastni komunikaci primo na sitovej stack neni zadna raketova veda. Predevsim to klidne muze fungovat i opacne, obcas si to nekam hrabne a zjisti, jestli neco delat ma a pripadne si sosne kod toho co.
Hlavna issue je, ze ak by napriklad bola usa vo vojne s eu, tak jednym kliknutim zrusia vsetky jej pocitace. Nehovoriac o tom, ze akakolvek security je iba iluzia. Kludne si mozeme pouzivat sifry nie 512, 1024 ale aj 4096... je to prt platne...pretoze nieco beziace pod os moze privatne kluce posielat na centralu. Cele zle. Ako su na tom ARMy?
... nebo v KMS založeném na xeon procesorech, jedna česká banka má takový stroječek od HPE.
Tahle intel věc má přístup do TPM, což může být občas problém. Každopádně pokud by Intel chtěl zrušit svůj půl století trvající byznys, měl by jiné možnosti jak upravit procesy a získat z nich údaje, které chce. Tohle je už hodně velké fantazírování.
Spíše se bojím, že této věci zneužije nějaká třetí strana, ale proti modifikaci IME FW by měly stačit prozatím kontroly kontrolních součtů a audit systémů. Nepozorovaně se dostat do klíčových systémů je také obrovský problém a náklady mohou být astronomické.
Prekvapuje me, ze tohle vsechno zjistili mnozi uzivatele az ted. Kdyby se nevysmivali lidem s odbornym vzdelanim a nehazeli je hned do jednoho pytle s tzv. konspiracnimi teoretiky a paranoiky, tak to nemuselo nabyt takovych obludnych rozmeru a Intel by to musel davno opravit.
Nahradit IME za Linux a Go je jen dalsi iluze. Opravu muze udelat jen Intel, nebo nekdo s pristupem k jejich nejtajnejsi dokumentaci. A Intelem to jen zacina, pokracovat se musi pres vsechny dodavatele svabu pro eth, wlan, audio, zakaz rozhrani s primym pristupem do pameti, atd. - jinak tenhle matrix nikdy neskonci.
lidé s odborným vzděláním často nejsou schopni problém popsat tak, aby tomu mainstream porozuměl, bez porozumění není šíření a bez šíření není nátlak.
Je absurdní nevěřit Intelu v jedné věci (IME) a věřit mu v jiné (procesor, síťové karty), všude má možnost páchat svoje zákeřnosti. V Intelu to ale vře a korporátním klientům už začali obchodníci slibovat změny, ale dokud to nebude veřejně, je to pořád další iluze.
Podivejte se na "test" hlasovanim na ctenarich root.cz - naprosty previs tech, kteri porad nechapou ani ty nejelementarnejsi pravdy v pomeru 3:11. Stale verite, ze nejaky tlak vetsiny neco zmeni? Samozrejme, je tady spousta bezpecnostnich diletantu, ale i tak je to jasna ukazka realne situace.
Reseni je pouze na tech, kdoz maji realnou silu a muzou ji rychle pouzit - stat a nadnarodni organizace. Kdyz uz vymysleli spolecenskou odpovednost, odpovednost k zivotnimu prostredi...tak odpovednost za bezpeci zakazniku ma byt vice nez prirozenym doplnkem.
nepsal jsem nic o většině a ani o potřebném množství. Politici zásadně dělají jen to, co rezonuje a co jim přinese body, dokud problém nepochopí politici či jejich poradci, ze strany státu se nemůžeme dočkat ničeho šťastného.
U nadnárodních korporací je podle mě situace lepší, interně si uvědomují nadcházející problémy a třeba u jedné české finanční instituce je dokonce rozpočet na bezpečnost vyšší než rozpočet na interní investice a lepší se to.
Při pohledu ale na českou scénu, kam vidět mohu, je zatím výsledek žalostný, jsou tady odpovědné firmy, ale často jen zásluhou jediného zaměstnance, který má dostatečně hluboké znalosti a dokázal prosadit změnu.
Nejsem naivní a nespoléhám se na většinu, ale dokud i na odborném webu se v diskuzích píšou takovéhle nesmysly, není šance to informace dostat neponičené dál.
Takze slova o mainstreamu nejsou vase? To je prave jen spolehani na vetsinu. Ovsem ani valna vetsina na root.cz nedokaze spravne popsat, co se deje v modernim PC mezi zapnutim vypinace a spustenim bootloaderu. Cim pak muzou seriozne prispet k diskuzi o bezpecnosti, tim spise reseni situace?
Politici maji kolem sebe dostatek aparatu, ktery by jim mel popsat (prave v otazkach bezpecnosti) realnou situaci jen na zaklade faktu a pragmatickeho uvazovani. Jedna ceska financni instituce je v tomto kontextu naprosto irelevantni. V CR by se mela resit predevsim bezpecnostni situace v produkovanych prumyslovych prvcich, ale nedeje se nic. Jedine stesti je, ze zatim neruplo v hlave nikomu s potrebnymi znalostmi, jenze jak dlouho to vydrzi?
Mimochodem, zadne obsahlejsi informace nikdy nedostanete mezi vetsinu populace nezkreslene a neponicene. To je totiz jeden ze zakladnich faktu o lidske spolecnosti. Myslet si opak je stejna iluze jako verit na Jeziska nebo vyreseni bezpecnostnich problemu mainstreamem...alespon s ohledem na prokazatelna empiricka data za uplynulou historii lidstva.
Jak funguji zaporne ringy? Myslel sem ze instrukce jsou rozdeleny podle ring 0..3 a pokud napr. Aplikace z userspace zkusi vykonat zmenu pametove stranky (ring 0), tak to zpusobi preruseni. Takhle jsou rozdeleny vsechny instr. Z instrukcni sady cpu. Ale jak jsou implementovany -ring? Nikde jsem nic ppdobneho nevidel?
záporné ringy nevstupují do samotných vykonávaných instrukcí a přímo je nikterak neovlivňují, procesor je nezohledňuje při vykonávání kódu. Stojí ale venku a mohu sami vyvolat přerušení, mohu sami přečíst registry a paměť, mohou třeba použít neveřejné instrukce procesoru k jeho další činnosti. Mají přístup na sběrnice, mohou si po nich posílat instrukce.
(profesně se tím nezabývám, je to můj laický pohled)
Predstav si to trebas tak, ze vemes (idealni) voltmetr a budes merit napeti. Aplikace (trebas vypinac) nevi, ze ty vis, jestli je sepnutej nebo ne. Co vic, ty mas krome toho jeste zdroj, kterym muzes ten stav menit, aniz by se to projevilo zvenku, na stavu toho vypinace (packa se nepohne ... ale stav se zmeni).
Tahle vec funguje stejne. Z pohledu aplikace (OS) se vykonavaji nejaky instrukce, prideluje se pamet ... ale ze HW dela jeste neco dalsiho (trebas ze vsechny provadeny instrukce posila intelu), to nemas sanci zjistit.
2Tomáš2: Moc bych si nedelal iluze o tom nezasahovani do provadenych instrukci. CPU ma mikrokod, kterej muze (i pomerne razantne) zmenit provadeni instrukci a predpokladam, ze na tyhle urovni do toho muzes zasahovat i doslova za chodu.