Àwọn olùwádìí láti ọ̀pọ̀lọpọ̀ ilé-ẹ̀kọ́ gíga ní Amẹ́ríkà àti Australia ti ṣe àgbékalẹ̀ ìkọlù Rowhammer méjì—GDDRHammer àti GeForge—tí ó gba ààyè fún ìbàjẹ́ àwọn bit kọ̀ọ̀kan nínú àwọn fídíò ìrántí GDDR nígbà tí wọ́n bá ń ṣe kernel CUDA tí kò ní àǹfààní lórí NVIDIA GPU. Láìdàbí ọ̀nà GPUHammer tí a gbé kalẹ̀ ní ọdún tó kọjá, àwọn ìkọlù tuntun wọ̀nyí kò mọ sí bí a ṣe ń nípa lórí ìwádìí tí a ṣe nínú ìrántí GPU ṣùgbọ́n ó gba ààyè fún gbogbo ìrántí pàtàkì nínú ààyè àdírẹ́sì CPU. Àwọn olùwádìí fi àwọn agbára tí ó fún ni ààyè láti wọ inú ètò ìgbanisíṣẹ́ nígbà tí wọ́n bá ń ṣe kernel CUDA tí kò ní àǹfààní lórí GPU kan hàn.
Àwọn ìkọlù méjèèjì máa ń pa àwọn sẹ́ẹ̀lì ìrántí fídíò pàtó tí àwọn olùkọlù kò ní ní tààràtà sí, èyí sì máa ń yí àwọn ìdìpọ̀ tí a kó pamọ́ sínú àwọn sẹ́ẹ̀lì wọ̀nyẹn padà. Kíkà àti kíkọ sí ìrántí nínú ààyè àdírẹ́sì CPU ni a ń ṣe nípa dídínà GPU memory allocator (cudaMalloc) láti fọ́ ìyàsọ́tọ̀ ìrántí GPU àti láti ṣe àkójọ àwọn àdírẹ́sì GPU foju sí àwọn àdírẹ́sì aláìlẹ́gbẹ́ nínú GPU ti ara tàbí iranti CPU.
A ṣe ìkọlù náà nípa ṣíṣe ìbàjẹ́ àwọn ìwọ̀n bit nínú ìrántí fídíò, èyí tí ó ń kó àwọn tábìlì ojú ìwé GPU tí ó jẹ́ olùṣeéṣe fún títúmọ̀ àwọn àdírẹ́sì ìfojúrí sí àwọn ti ara. Ìyàtọ̀ láàárín àwọn ìkọlù GDDRHammer àti GeForge ni pé ọ̀nà GDDRHammer ń ṣe àtúnṣe sí Àtẹ Ìpele Ìpele Ìpele Ìpele (PT), nígbà tí ọ̀nà GeForge ń ṣe àtúnṣe sí Àtòjọ Ojú ìwé Ìpele Ìpele Ìpele Ìpele Ìpele (PD0).
Lára àwọn nǹkan mìíràn, àwọn tábìlì ìtumọ̀ àdírẹ́sì tí a sọ pàtó ni a lò láti ṣètò ìwọ̀sí tààrà ti GPU sí ìrántí CPU, nítorí náà, yíyí àdírẹ́sì nínú tábìlì ojú ìwé GPU padà sí àdírẹ́sì ti ara nínú RAM àkọ́kọ́ àti ṣíṣètò àsíá APERTURE, èyí tí ó mú kí ipò mápù iranti CPU ṣeé ṣe, mú kí ó ṣeé ṣe láti ka àti kọ dátà tí ó wọlé sí ìrántí àkọ́kọ́ nípasẹ̀ ọkọ̀ akérò PCIe pẹ̀lú IOMMU tí a ti pa (tí a ti pa nípa àìyípadà).


Àwọn ìkọlù tó yọrí sí rere ni a fi hàn sí àwọn káàdì àwòrán oníṣẹ́-ọnà NVIDIA RTX A6000 tó ga jùlọ tí a gbé ka orí microarchitecture Ampere (àwọn káàdì tuntun bẹ̀rẹ̀ láti $6850, nígbà tí àwọn tí a lò bẹ̀rẹ̀ láti $4000) àti àwọn àwòṣe NVIDIA RTX 3060 oníbàárà ($250-$300). Ọ̀nà tí a ṣe fún yíyọ ààbò Rowhammer kúrò, pẹ̀lú lílo agbára parallelization ti GPU, gba ààyè fún ìbísí nínú ìwọ̀n ìbàjẹ́ sẹ́ẹ̀lì ní ìlọ́po 64 ní ìfiwéra pẹ̀lú àwọn ìkọlù tó ti kọjá. Gẹ́gẹ́ bí ìwọ̀n ìgbà díẹ̀ láti dènà àwọn ìkọlù, a lè mú kí ipò Àṣìṣe Àtúnṣe Àwọn Kóòdù (ECC) ṣiṣẹ́ nípa lílo àṣẹ "nvidia-smi -e 1", ṣùgbọ́n èyí ń fi àfikún ìlọ́po méjì hàn, ó sì ṣeé ṣe kí a kọjá wọn nípa lílo àwọn ọ̀nà ìkọlù bíi ECCploit àti ECC.fail.
Ikolu RowHammer ngbanilaaye lati yi awọn akoonu ti awọn ipin kọọkan ti iranti DRAM pada nipasẹ kika data cyclically lati awọn sẹẹli iranti adugbo. Niwọn igba ti iranti DRAM jẹ titobi onisẹpo meji ti awọn sẹẹli, ọkọọkan eyiti o ni kapasito ati transistor kan, ṣiṣe kika lemọlemọfún ti agbegbe iranti kanna yori si awọn iyipada foliteji ati awọn asemase, nfa isonu kekere ti idiyele ti awọn sẹẹli adugbo. Ti kika kika ba ga, lẹhinna sẹẹli ti o wa nitosi le padanu iye idiyele ti o tobi pupọ pe iyipo isọdọtun ti nbọ kii yoo ni akoko lati mu pada ipo atilẹba rẹ, eyiti yoo yorisi iyipada ninu iye data ti o fipamọ sinu sẹẹli naa.
Wọ́n dámọ̀ràn ọ̀nà ìkọlù Rowhammer ní ọdún 2014, èyí tó fa ìjà láàárín àwọn olùwádìí ààbò àti àwọn olùṣe ẹ̀rọ: àwọn olùṣe ẹ̀rọ memory chip gbìyànjú láti dènà àìlera náà, nígbà tí àwọn olùṣèwádìí rí àwọn ọ̀nà tuntun láti borí rẹ̀. Fún àpẹẹrẹ, láti dáàbò bo Rowhammer, àwọn olùṣe ẹ̀rọ chip fi ẹ̀rọ TRR (Target Row Refresh) kún un, ṣùgbọ́n ó hàn gbangba pé èyí kàn dí ìbàjẹ́ sẹ́ẹ̀lì lọ́wọ́ ní àwọn ọ̀ràn pàtó kan, kò sì dáàbò bo gbogbo àwọn ìṣẹ̀lẹ̀ ìkọlù tó ṣeé ṣe. Wọ́n ṣe àwọn ọ̀nà ìkọlù fún àwọn ẹ̀rọ DDR3, DDR4, àti DDR5 lórí àwọn ẹ̀rọ pẹ̀lú àwọn ẹ̀rọ Intel, AMD, àti ARM, àti fún ìrántí GDDR nínú àwọn GPU NVIDIA. Ní àfikún, a rí àwọn ọ̀nà láti borí àtúnṣe àṣìṣe ECC, a sì dámọ̀ràn àwọn ọ̀nà ìkọlù fún àwọn ìkọlù nẹ́tíwọ́ọ̀kì àti nípa ṣíṣe koodu JavaScript nínú ẹ̀rọ aṣàwákiri.
orisun: opennet.ru
