Skupina výzkumníků ze Švýcarského federálního technologického institutu v Curychu, Svobodné univerzity v Amsterdamu a společnosti Qualcomm zveřejnila novou metodu útoku třídy RowHammer, která umožňuje měnit obsah jednotlivých bitů dynamické operační paměti (DRAM). Útoku bylo přiděleno kódové jméno Blacksmith a identifikátor CVE-2021-42114. Na tuto problém jsou náchylné mnohé čipy DDR4, které jsou chráněny před dříve známými metodami třídy RowHammer. Nástroj pro testování vlastních systémů na zranitelnost byl publikován na GitHubu.
Připomeňme, že útoky třídy RowHammer umožňují zkreslit obsah jednotlivých bitů paměti prostřednictvím cyklického čtení dat z sousedních paměťových buněk. Protože paměť DRAM představuje dvourozměrné pole buněk, z nichž každá se skládá z kondenzátoru a tranzistoru, provádění nepřetržitého čtení jedné a téže oblasti paměti vede k fluktuacím napětí a anomáliím, které způsobují drobné ztráty náboje sousedních buněk. Pokud je intenzita čtení vysoká, může sousední buňka ztratit dostatečné množství náboje a další cyklus regenerace nebude mít čas obnovit její počáteční stav, což povede k změně hodnoty uložených v buňce dat.
Aby se ochránili před RowHammer, výrobci čipů navrhli mechanismus TRR (Target Row Refresh), který chrání před zkreslením buněk v sousedních řadách, ale protože ochrana byla založena na principu 'bezpečnost prostřednictvím nejasnosti (security by obscurity)', neřešila problém v jeho jádru a chránila pouze před známými specifickými případy, což umožnilo snadné hledání obchvatů. Například v květnu společnost Google navrhla metodu Half-Double, na kterou ochrana TRR nefungovala, protože při útoku byly postiženy buňky, které nebyly přímo sousedící s cílovou.
Nová metoda Blacksmith nabízí jiný způsob obcházení ochrany TRR, založený na nehomogenním přístupu k různým řadám agresorů s různou frekvencí za účelem vyvolání úniku náboje. Pro určení vzoru přístupu k paměti, který vede k úniku náboje, byl vyvinut speciální fuzzer, který automaticky upravuje parametry útoku pro konkrétní čip, variabilně upravuje pořadí, intenzitu a systematičnost přístupu k buňkám.
Podobná metoda, která není spojena s dopadem na stejné buňky, činí stávající metody ochrany TRR neefektivními, protože se ve své podstatě týkají počítání opakovaných přístupů k buňkám, a při dosažení určitého množství spouštějí dobíjení sousedních buněk. V Blacksmith se vzor přístupu rozprostírá současně na několik buněk z několika stran od cílové buňky, což umožňuje dosáhnout úniku náboje, aniž by se dosáhlo prahových hodnot.
Tato metoda se ukázala jako výrazně efektivnější než dříve navrhované způsoby obchodu s TRR — výzkumníkům se podařilo dosáhnout zkreslení bitů ve všech z 40 nedávno zakoupených různých paměťových čipů DDR4 vyrobených společnostmi Samsung, Micron, SK Hynix a neznámým výrobcem (u 4 čipů nebyl výrobce uveden). Pro srovnání, dříve navrhovaná metoda TRRespass, kterou rovněž navrhli ti samí výzkumníci, byla účinná pouze u 13 z 42 testovaných čipů.
V obecném pojetí se předpokládá, že metoda Blacksmith je aplikovatelná na 94 % všech DRAM čipů dostupných na trhu, ale podle prohlášení výzkumníků jsou některé čipy zranitelnější a snadněji se na ně útočí než na jiné. Použití kódů pro opravy chyb (ECC) a dvojnásobné frekvence obnovování paměti nezajišťuje úplnou ochranu, ale ztěžuje útok. Je pozoruhodné, že problém nelze zablokovat na již vydaných čipech a vyžaduje implementaci nové ochrany na hardwarové úrovni, proto útok zůstane relevantní i mnoho let.
Jako praktické příklady byly uvedeny metody použití Blacksmith k úpravě obsahu záznamů v tabulce stránek paměti (PTE, page table entry) k získání privilegia jádra, poškození uloženého veřejného klíče RSA-2048 v OpenSSH (můžeme přivést veřejný klíč do souladu s útočníkovým soukromým klíčem pro připojení k VM oběti) a obchodu s autentizací prostřednictvím modifikace paměti procesu sudo k získání práv root. V závislosti na čipu vyžaduje změna jednoho cílového bitu od 3 sekund do několika hodin provádění útoku. virtuálním stroji k odpovídajícímu soukromému klíči útočníka pro připojení k VM oběti) a obchodu s ověřováním pomocí modifikace paměti procesu sudo pro získání práv root. V závislosti na čipu se pro změnu jednoho cílového bitu vyžaduje od 3 sekund do několika hodin provádění útoku.

Dále bychom mohli zmínit publikaci otevřeného rámce LiteX Row Hammer Tester, který slouží k testování metod ochrany paměti proti útokům typu RowHammer, vyvinutého společností Antmicro na zakázku Googlu. Rámec je založen na využití FPGA pro plnou kontrolu nad příkazy, které jsou předávány přímo do čipu DRAM, což vylučuje vliv paměťového řadiče. Pro interakci s FPGA je nabízen nástrojový balíček v jazyce Python. Brána na bázi FPGA zahrnuje modul pro hromadný přenos dat (určuje vzory přístupu k paměti), Payload Executor, řadič na bázi LiteDRAM (zpracovává veškerou požadovanou logiku pro DRAM, včetně aktivace řádků a aktualizace paměti) a CPU VexRiscv. Výstupy projektu se šíří pod licencí Apache 2.0. Podporováno je využití různých platforem FPGA, včetně Lattice ECP5, Xilinx Series 6, 7, UltraScale a UltraScale+.
Zdroj: opennet.ru
