Toto se nebude týkat jen x86 ale obecně jakékoliv architektury, která bude ke zvýšení výkonu sdílet cache, pipeline nebo predikovat další běh. Chtě nechtě, jedno vlákno pak nutně ovlivní druhé vlákno (např. zpozděním). Pak už stačí jen mravenčí prací zjišťovat, jaké chování měřitelné v jednom vláknu je způsobené vstupy v jiném vláknu.
Mírnit toto riziko lze tím, že kritické procesy budou odizolované (což je v době, kdy používáme plnou virtualizaci prakticky nemožné), nebo metodami obfuskace (přidáním nějakého náhodného prvku, aby nebylo tak lehké zjistit něco křížem). Ale eliminovat toto riziko jde jedině tím, že vlákna budou na sobě prakticky úplně nezávislá, nebudeme se snažit optimalizovat průběh pipeline, nebudeme využívat technologie jako je hyperthreading atd.
Osobně nevidím velké riziko těchto chyb. Na stanicích se to dá ošetřit afinitou kritických procesů. Na serverech bude potřeba začít uvažovat o tom, jestli jsou sdílené hostingy tím pravým, resp. pokud by měly být úplně ošetřeny, sníží se reálný výkon oproti serveru s optimalizacemi povolenými.
Je tedy potřeba se jen smířit se s tím, že větší bezpečí = snížení výkonu. Ale to není nic nezvyklého. Dnešní operační systémy jsou mnohem bezpečnější než ty před dvaceti lety, a nijak nám nevadí, že mají mnohonásobně vyšší režii.
on je bonus jeste v tom ze spousta napadnutelnych casti je IP od jinych vendoru.. casto si Intel , ARM + IBM licencovalo nektere technologie a ty jsou napadnutelne. AMD si cast vyvinulo samo a proto je toho napadnutelneho meni a nebo jdou hure napadnout. ( o trosku odlisnejsi pristup k cachovani, predikci, smt)
Kdybys neblabolil, AMD je napadnutelny uplne stejne. Jenom jejich vykon je o 30% horsi ... protoze jejich predikce je o 50% kratsi ... a tudiz je jaksi k dispozici min dat. A uplene stejne je napadnutelny ARM a cokoli dalsiho, protoze naprosto VSICHNI pouzivaji obdobny postupy uz 15+let.
niektorými útokmi je napadnuteľné aj AMD, ale nie všetkými
https://www.youtube.com/watch?v=rwbs-PN0Vpw
https://www.youtube.com/watch?v=mIKSXv0Cgjg
lebo napr. Intel nekontroluje príznaky v tabuľke stránok včas, čím ale získa 3-7% výkonu...
Ono pri LoJaxe od 51:40
https://www.youtube.com/watch?v=ldNl4LivNAc
a pod nepomôže ani bezpečný CPU..
"Je tedy potřeba se jen smířit se s tím, že větší bezpečí = snížení výkonu. "
Potom by ale Intel a AMD neměl propagovat jejich procesory jako bezpečné a měl na toto riziku jasně zákazníka upozornit. Přístup Intelu zatloukat a pak to ještě neopravit a tvářit se že je vše OK fakt nepřidá důvěru značce.
Potom by ale Intel a AMD neměl propagovat jejich procesory jako bezpečné a měl na toto riziku jasně zákazníka upozornit. Přístup Intelu zatloukat a pak to ještě neopravit a tvářit se že je vše OK fakt nepřidá důvěru značce.
To je stejné jako u výrobců automobilů. Některé modely trpí na rozvody, některé na poloosy, některé na elektroniku. Prostě to je určitý stupeň vývoje a toho, čeho je výrobce schopný dosáhnout v danou dobu a na daném trhu.
Pokud si někdo myslí, že hardware, procesor, firmware, operační systém, software jsou bez chyb, tak je to spíš chyba toho, kdo si to myslí. Všímám si toho, že si lidé do nedávné doby neuvědomovali, že i procesor může mít chyby tohoto charakteru.
Mate pravdu, tohle se proste stane a Intelu bych to nijak nevycital.
Tam me vadi jina vec - nevim zda jste zaznamenal posledni kauzu ohledne umirajicich embedded/Atom procesoru. Intel o te chybe prokazatelne vi dlouho a dal je vesele vyrabi a dodava pres nekolik generaci, aniz by to opravil. Pritom oprava je otazkou redesignu nekolika jednotlivych tranzistore a da se bez problemu zvladnou v ramci steppingu (coz i dokazal u prumyslovych Atomu, u custommer dela mrtveho brouka a jen updatoval Errata...). Pritom je to vec, ktera zpusobi smrt cipu nekde mezi 2. a 3. rokem provozu...
Bohužel takhle se chovají i výrobci automobilů, mobilních telefonů, vysavačů, mixérů, ..., prostě všeho kolem nás.
Je mnoho konstrukčních detailů, které by šly vylepšit, ale schválně to neudělají a uvedou nový model (s novými chybami). Je pak na spotřebiteli, aby si mezi značkami vybíral ty, které mu celkově vyhovují nejvíc (nebo vadí nejmíň).
Pokud je ale Intel i přes tyto svoje "vlasnosti" stále populární, pak to asi dělá dobře (tj. nevadí to lidem zas až tak moc, aby to přestali kupovat, nebi si připlatili na jiný model).
Tohle není o vylepšení konstrukce, tohle je prostě tvrdá chyba, která ani neměla projít přes DRC. Když tohle udělá automobilka, většinou následuje svolávací akce. Cisco už tahle sranda stála přes 100M USD. Takže nedoporučuji kupovat cokoliv, v čem je Atom starší než Gemini Lake.
sdílené hostingy byly ale průser od začátku, vzhledem k tomu, že jednotliví klienti nemají vyhrazenou konkrétní fyzickou paměť, stačí si alokovat všechnu dostupnou paměť a přečíst, malloc, který při alokaci paměti provádí její nulování je nedostatkové zboží.
Prakticky se takhle dají přečíst privátní ssl klíče (v případě dockeru a openstacku běžně), jakákoliv osobní data, která aplikace zpracovává, hesla do administrací (vtipné).
Jistou dobu jsem se "bavil" tím, že jsem tyhle chyby s PoC kódem nahlašoval, bohužel ignorace ze strany hostingů a provozovatelů webů je vysoká.
Ja čakám na lahôdku v podobe zneužitia...
University Researchers Publish Paper On GPU Side-Channel Attacks
Written by Michael Larabel in Security on 15 November 2018
Demonstrated attacks included a browser-based attack, extracting passwords / keystroke logging,
https://www.phoronix.com/scan.php?page=news_item&px=Uni-GPU-Side-Channel-Flaw
Jinak doplním:
Intel x86 Considered Harmful
https://blog.invisiblethings.org/papers/2015/x86_harmful.pdf
je veľmi dobré, že dané chyby v CPU sa postupne odhaľujú a zverejňujú - zasiahnuté sú INTEL, AMD a samozrejme ARM. Veď vo filme o Snowdenovi sa otvorene hovorilo o zbere dát z INTEL-ov. Na CPU Intel pravdepodobne funguje malý operačný systém - pozmenený MINIX na ring 0. V dnešnej dobe už nie je tak ťažké navrhnúť open source CPU napríklad RISC-V alebo OpenRisc - nie je to sci-fi dá sa to. Avšak aby sa nová architektúra uchytila je nutné, aby nejaká veľká spoločnosť do toho investovala. Ono čiastočným riešením by bol návrh nového CPU, ktorý by fungoval aspoň vo firewaloch a v sieťových prvkoch. Nie je nutné vymýšlať super architektúru, ktorá porazí vo výkone Intel, AMD, ARM, ale architektúru, ktorá bude bezpečná a ktorú bude možné nasadiť na perifériách napríklad vo firewaloch
Máš tam pár nepřesností a docela to zavání konspirací:
1) Není pravda, že "Na CPU Intel pravdepodobne funguje malý operačný systém - pozmenený MINIX na ring 0". JE tam vlastní jádro, z pohledu hlavních jader je to nějaký záporný ring (tuším -3) a hlavní CPU vůbec nemá tucha, že tam něco takovýho je.
2) "V dnešnej dobe už nie je tak ťažké navrhnúť open source CPU napríklad RISC-V alebo OpenRisc - nie je to sci-fi dá sa to." Jo, na dost velkým FPGA. Hodit to na křemík je mnohem větší problém.
3) " Ono čiastočným riešením by bol návrh nového CPU, ktorý by fungoval aspoň vo firewaloch a v sieťových prvkoch. Nie je nutné vymýšlať super architektúru, ktorá porazí vo výkone Intel, AMD, ARM, ale architektúru, ktorá bude bezpečná a ktorú bude možné nasadiť na perifériách napríklad vo firewaloch" No třeba já mám doma ve firewallu PowerPC a v bývalé práci jsme takovou desku dělali s SH3 od Hitachi (teď už na Renesasu), konkrétne na SH3/7705. Hodně je toho na MIPSech,... Jenomže problém se týká mašin, kde jede virtualizace a sdílení prostředků, tam se chce výkon za každou cenu.
Za sebe, chce to několik (klidně pár desítek) malých jednotek s CPU, vlastní "malou" RAM (řekněme do 256MB), MPU a krypto jednotkou. Jednu jako systémovou a ostatní jako samostatný systémy pro klienty s tím, že sestava bude sdílet disky a velkou RAM. Jiná jednotka ví jenom že sdílený prostředek je "BUSY" a že na něco čeká,, ale neví na koho a proč. Dobře nastavená MPU (systémem z master jednotky - aplikace slave jednotky se nedostane na management bus) zabrání tomu, aby se dostal ke sdíleným prostředkům a oblastem globální paměti, který má zakázaný. A klidně tam můžou být zranitelný jádra, který se prostě nebudou sdílet.
Udělat takovou jednotku ve velikosti SO-DIMM včetně zdrojů technologicky není problém. Picnout jich 20 do řady vedle sebe do 19" kastle taky není problém, PCIe má dost dobrou propustnost dat... Jenom to realizovat a umět to prodat.
Zbytečně složité. Stačí vzít libovolnou současnou architekturu a zajistit, aby po každém použití sdíleného prostředku bylo uklizeno. Tj. např. invalidovat chacheline, pokud byla načtena spekulativní větví. Navíc tohle půjde i relativně snadno zverifikovat.
Problém není idělat cokoliv. Já to teď mám na stole pár https://www.enclustra.com/en/products/system-on-chip-modules/mars-xu3/, pokud chcete (a zaplatíte to), klidne vám k tomu udělám základovku s PCIe switchem.
Akorát nevím, k čemu by to prakticky bylo. Roste pak režije, rostou latence, a sw, který by to bych schopný nějak efektivně využít ani nemluvím...
Nakonec jsou i věsi jako Tilera nebo xeon phi, ale využití je dost omezené.
Tak v security prvcích to zrovna problém moc není, viz třeba F5 a Checkpoint security advisory, které v podstatě (velmi zjednodušeně) říkaly že dokud se nezapne konkrétní ne zcela běžně používaná funkcionalita (jako threat emulation), tak zařízení z principu nejsou zranitelná, prostě proto, že na nich neběží žádný untrusted kód, a to co na nich běží ty přístupy už dávno má.
(např. velká část funkcionality v Checkpoint firewallech je implementovaná v kernelu, a co není v kernelu má roota, až na apacheho a postfixe)
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.