Nekola, používaj mozek!
Tak, jak je to podané tady, to je blbost.
To by znamenalo, že do paměťových buněk uložím například 0000 0000 a přečtu 0011 0011 což je obsah sousedních buněk. Jenže pokud by se to skutečně dělo, pak by ten počítač vůbec nefungoval.
To je jako by sis vytvořil X = 0; For (I=0;I++;1=65535) Delay; Print X; a X nebylo nula.
Já samozřejmě nevím, jestli je možné vypnou Dram refresh, je možné, že ano, pak by to zřejmě šlo, ale zase dost pochybuju, že půjde Dram Refresh vypnout z virtuálního stroje.
Na tom je zajimave, ze oni nepouzili mozek a ten efekt skutecne namerili a exploit udelali...
(Dobra zprava je, ze desktop s ECC pametmi je nejspis v bezpeci a i bez ECC to funguje jen za urcitych okolnosti)
Obecnejsi poznamka: je lepsi kouknout do sveta jevu na to, co se skutecne deje, nez se pokouset ignorovat to, co je, na zaklade toho, co ma byt. Kdyz jsem tohle vcera videl poprve, tak jsem na to take koukal s otevrenou pusou.
Hodně výrobců dělá šmejdské paměti, to se dá naměřit i Memtestem.
Vyšponují nahoru frekvenci, sníží napětí a počet opakování.
Když k tomu koupíš desku a šmejdskej zdroj, nemůžeš se divit, že "ráno" Memtestem nenaměříš žádný problém a večer, když zapneš pračku, ti tam začnou lítat chyby.
Opakovaným adresováním jsou schopní z paměti vydolovat nějaký extra data.
To samo o sobě je špatně, protože pak se nemůžeš spolehnout, že X=10; Print X; A dostaneš 16.
To samo o sobě není dobrá zpráva, hovoří to o (ne)kvalitě výroby, ale spát půjdu naprosto v klidu, HW je stejně prošpikovaný hromadou zadních vrátek a software je děravější než cedník i tak.
Tak jsem přežvejkal tenhle článek:
http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf
A rozhodně to nevypadá jako něco, co by se dělo na každé paměťové buňce, spíš se jedná o skupiny buněk.
Pořád si trvám na svém, je to mnoho povyku pro nic.
To, že se prodávají hodně šmejdské paměti, tak na tom není nic zvláštního, to je bohužel známá věc a třeba u SSD je to ještě horší.
Zajímavé jsou výsledky na AMD.
Napadají mě vysvětlení:
A) Na AMD jsou (byly) běžnější paměti s 1.8V než 1.5V u SB/IB/..
B) Na AMD nefunguje korektně vyplivnutí Cache, asi se vyplivne jen L1/L2, ale obsah proměnné se natáhne z L3
C) Na AMD je ostřeji nastaven refresh pamětí
D) Na AMD ty instrukce líp zpřehází zpracování mimo pořadí
E) ??
No já nevím, pokud by ten efekt byl 10% z hodnoty náboje v bitu v matici, prošlo to vrstvou logiky v paměti a sběrnicí, tak se to v hodnotě bitu ztratí a okolní buňka není vidět.
Pokud jde o RAM, tam bych viděl trochu jiný, věrohodnější vektor útoku. DRAM potřebuje řadič, který jí obsluhuje. A ten má řadu nastavení, jako refresh rate, latence, velikost burstu,...
Za předpokladu, že
a) získám přístup k řadiči
b) burst neodpovídá maximu, podporovanýmu čipem a řadičem
c) vím, jak věci překonfigurovat
není problém vyvolat buffer overflow a vyčíst víc dat. Se vším, co z toho vyplývá.
Ad a) Jde o to obejít systémový omezení - 1. privilegia procesoru, 2. MPU.
1. Z User space v OS se k tomu nedá přímo dostat, pokud to nejsou Win9x. Je potřeba dostat vyšší práva. Tam je možnost obrany v jádře.
2. MPU se dá při přístupu k řadiči RAM překonfigurovat a pohlídat, aby to nehodilo chybu a zpřístupnilo paměť. Ale proč by to kdo dělal, když s těmahle právama může odemknout cokoliv a podívat se kamkoliv? Nebo je možnost, že se u řadiče RAM nedekóduje celá adresa a zrcadlí se v paměti někam, kde to MPU nehlídá tak přísně, pak by mohly stačit práva normálního ovladače...
Ad b) Může nastat v případě, že autor systému chce z nějakýho důvodu zpracovávat 8 slov, paměť podporuje vyčtení až 16ti... Dost to závisí na systému. Je i možnost, že výrobce bouchá stejný čipy bez rozdílu a prodává je s podporou různé konfigurace jenom na papíře...
Pokud mluvíš o časech v řádech desítek minut, máš samozřejmě pravdu.
Pokud mluvíš o časech v řádech minut, pravdu nemáš:
http://technet.idnes.cz/prolomit-lze-jakekoli-sifrovani-disku-staci-zmrazit-pamet-pax-/sw_internet.aspx?c=A080221_230606_tec_denik_pka
Ano, pro spolehlivou funkci potřebuješ refresh dělat velmi často.
Mimoto dost pochybuji, že dram refresh vůbec půjde vypnout.
Ne, nevím ale je to stejné jako kdyby říkaly že udělají exploit v procesoru typu : dráhy pro elektrony jsou tak malé, že elektrony mohou přeskočit do vedlejší. Pokud tedy správně nastavíme podmínky v procesoru lze vyvolat přeskoky mezi dráhami vyvolat instrukci příp. instrukce které chceme.
Aby bylo jasno, nejsem vystudovaný informatik ale k tomuto prostě stačí používat mozek a vědět něco o fyzice.
Navíc co se týče RAM tak program který by vyvolal takovýto efekt by musel mít přístup k celé RAM a vědět kde se co nacházím, a možnost ovlivnovat zápis přímo na adresy, aby vhodně umístil na adresy určitě bajty do blízkosti vhodných bajtů které chce ovlivnit, žádoucím směrem.
Sorry, až uvidím tak uvěřím. Pro mě to je prostě technoblábol.
"assambleru" ... ne fakt nechci slovíčkařit a řešit překlepy.
- tak to podle jejich návodu proveď a dokaž. Vytvoř polopatický tutoriál aby to kdokoliv mohl snadno zopakovat(standardní věda - kýmkoli opakovatelný pokus) a já pak upravím své tvrzení na to že jsem se mýlil. Zní to fér?
I na Wiki máte spoustu zdrojů, které popisují použité techniky. Samozřejmě je to opakovatelné. Já osobně necítím potřebu doma opakovat výsledky všech experimentů. Pokud vás takové aktivity naopak uspokojují, je to super, jsem rád že máte dost času, a užijte si to.
http://en.wikipedia.org/wiki/Row_hammer#References
Nejsem si vědom kde jsi k těm svým fantazijním domněnkám došel. Nicméně s tebou jsem evidentně nemluvil. Pokud jsi to ovšem byl ty pod jiným Nickem, pak čekám že prokážeš své tvrzení tím že to zopakuješ, pokud ovšem na to máš.
A teď informace od tvz. "blbce" : "vyloženě je projevem chytrosti obhajovat myšlenky a postupy které si ani neověřím". Tomu se říká slepá víra a to nikdy nebylo znakem inteligence.
Ad s tebou jsem evidentně nemluvil - se mnou jste nemluvil, ale cítil jsem potřebu na vás odpovědět.
Ad prokážeš své tvrzení tím že to zopakuješ - pokud experiment úspěšně provedlo více důvěryhodných autorit, není důvod ho opakovat doma. Nebo myslíte že doma budu zkoušet účinnost antibiotik a vakcinace, měřit rychlost světla a testovat dědičnost barvy květů hrachu, jen abych si ověřil, že to fakt funguje?
Víš co? Prozradím ti jedno tajemství.
Na sloupech k vesnici je 22kV. Při odporu lidskýho těla 2,2kOhmů, pokud se toho dotkneš, proteče 10A. Výkonově to vychází na 220kW, který tě hned na místě upečou.
Tak co, jdeš si to ověřit na vlastní kůži?
A jinak já jsem taky nevěřil, ale zdá se, že to fakt funguje. A dkonce tam je i jednoduchý vysvětlení principu, jenomže u toho jsem musel i trochu myslet.
Ad při odporu lidskýho těla 2,2kOhmů - podle National Institute for Occupational Safety and Health je ten odpor lidského těla trochu jiný: Under dry conditions, the resistance offered by the human body may be as high as 100,000 Ohms. Wet or broken skin may drop the body’s resistance to 1,000 Ohms. ... High-voltage electrical energy quickly breaks down human skin, reducing the human body’s resistance to 500 Ohms. A teď nevím čemu mám věřit. Takže v zájmu vědy pozveme kolegu technomaniaka na vesnici, vezmeme měřáky, a ověříme jak se věci mají :)
Až 100 kΩ má suchá kůže pro stejnosměrný proud, střídavý se skrz kůži (která má na takto vysokém odporu největší podíl) docela rychle „propeče“ a odpor pak prudce klesne. (Zdroj)
Zas tak tajné to není: https://groups.google.com/forum/#!forum/rowhammer-discuss