Mayhem - ikọlu ibajẹ bit iranti lati fori sudo ati ijẹrisi OpenSSH

Awọn oniwadi lati Ile-ẹkọ Imọ-ẹrọ Worcester Polytechnic (AMẸRIKA) ti ṣafihan iru ikọlu Mayhem tuntun kan ti o lo ilana ipalọlọ ID wiwọle iranti Rowhammer lati yi awọn idiyele ti awọn oniyipada akopọ ti a lo bi awọn asia ninu eto lati pinnu boya ijẹrisi ati awọn sọwedowo aabo ni koja. Awọn apẹẹrẹ adaṣe ti ikọlu jẹ afihan lati fori ijẹrisi ni SUDO, OpenSSH ati MySQL, bakanna bi lati yi abajade ti awọn sọwedowo ti o ni ibatan si aabo ni ile-ikawe OpenSSL.

Ikọlu naa le lo si awọn ohun elo ti o lo awọn sọwedowo lati ṣe afiwe awọn iye ti o yatọ si odo. Apeere koodu ipalara: int auth = 0; ... // koodu ijẹrisi ti o yi iye auth pada ni ọran ti aṣeyọri aṣeyọri ti (auth!= 0) ba pada AUTH_SUCCESS; miiran da AUTH_FAILURE pada;

Ni aaye ti apẹẹrẹ yii, fun ikọlu aṣeyọri o to lati ba eyikeyi diẹ ninu iranti ti o ni nkan ṣe pẹlu oniyipada auth 32-bit lori akopọ. Ti eyikeyi diẹ ninu oniyipada ba bajẹ, iye naa kii yoo jẹ odo mọ ati pe oniṣẹ ipo yoo pinnu ipari aṣeyọri ti ijẹrisi. Iru awọn ilana afọwọsi bẹ jẹ ohun ti o wọpọ ni awọn ohun elo ati pe a rii, fun apẹẹrẹ, ni SUDO, OpenSSH, MySQL ati OpenSSL.

Ibanujẹ - ikọlu mangling iranti bit lati fori sudo ati ìfàṣẹsí OpenSSH

Ikọlu naa tun le lo si awọn afiwera ti fọọmu “ti o ba jẹ (auth == 1)”, ṣugbọn ninu ọran yii imuse rẹ di idiju diẹ sii, nitori pe o jẹ dandan lati yi ko si diẹ ninu 32, ṣugbọn bit ti o kẹhin. Ọna naa tun le ṣee lo lati ni agba awọn iye ti awọn oniyipada ninu awọn iforukọsilẹ ero isise, nitori awọn akoonu ti awọn iforukọsilẹ le wa ni ṣan fun igba diẹ si akopọ nigbati iyipada ipo, ipe iṣẹ, tabi oluṣakoso ifihan ina. Lakoko akoko lakoko ti awọn iye iforukọsilẹ wa ni iranti, awọn ipalọlọ le ṣe afihan sinu iranti yii ati pe iye ti o yipada yoo pada si iforukọsilẹ.

Ibanujẹ - ikọlu mangling iranti bit lati fori sudo ati ìfàṣẹsí OpenSSH

Lati yi awọn ege naa pada, ọkan ninu awọn iyipada ti ikọlu kilasi RowHammer ni a lo. Niwọn igba ti iranti DRAM jẹ titobi onisẹpo meji ti awọn sẹẹli, ọkọọkan ti o ni kapasito ati transistor kan, ṣiṣe awọn kika lemọlemọfún ti agbegbe iranti kanna ni abajade awọn iyipada foliteji ati awọn asemase ti o fa isonu idiyele kekere ni awọn sẹẹli adugbo. Ti kikankikan kika ba ga, lẹhinna sẹẹli adugbo le padanu iye idiyele ti o tobi to ati pe eto isọdọtun ti nbọ kii yoo ni akoko lati mu pada ipo atilẹba rẹ, eyiti yoo yorisi iyipada ni iye data ti o fipamọ sinu sẹẹli. . Lati daabobo lodi si RowHammer, awọn olupilẹṣẹ chirún ti ṣafikun ẹrọ TRR kan (Target Row Refresh), eyiti o ṣe idiwọ ibajẹ sẹẹli ni awọn ọran pataki, ṣugbọn ko daabobo lodi si gbogbo awọn iyatọ ikọlu ti o ṣeeṣe.

Lati daabobo lodi si ikọlu Mayhem, o gba ọ niyanju lati lo ni awọn afiwera kii ṣe igbelewọn awọn iyatọ lati odo tabi lasan pẹlu ọkan, ṣugbọn sọwedowo baramu nipa lilo iye irugbin laileto pẹlu awọn octets ti kii-odo. Ni idi eyi, lati ṣeto iye ti o fẹ ti oniyipada, o jẹ dandan lati ṣe atunṣe deede nọmba pataki ti awọn die-die, eyiti ko jẹ otitọ, ni idakeji si ipalọlọ ti ọkan bit. Apẹẹrẹ koodu ti kii ṣe ikọlu: int auth = 0xbe406d1a; ... // koodu ijẹrisi ti o ṣeto iye auth si 0x23ab8701 ni ọran ti ijẹrisi aṣeyọri ti (auth == 0x23ab8701) ba pada AUTH_SUCCESS; miiran da AUTH_FAILURE pada;

Ọna aabo ti a ti sọ tẹlẹ ti jẹ lilo nipasẹ awọn idagbasoke sudo ati pe o wa ninu itusilẹ 1.9.15 bi atunṣe fun ailagbara CVE-2023-42465. Wọn gbero lati ṣe atẹjade apẹrẹ ti koodu fun gbigbe ikọlu lẹhin ti awọn atunṣe ti ṣe si awọn iṣẹ akanṣe ipalara akọkọ.

orisun: opennet.ru

Fi ọrọìwòye kun