Mayhem - fanafihana kolikoly bitika fahatsiarovana mba hialana amin'ny fanamarinana sudo sy OpenSSH

Ny mpikaroka avy ao amin'ny Worcester Polytechnic Institute (Etazonia) dia nampiditra karazana fanafihana Mayhem vaovao izay mampiasa ny teknika fanodikodinana bitika fitadidiana kisendrasendra dynamic Rowhammer mba hanovana ny soatoavin'ny fari-piainan'ny stack ampiasaina ho saina ao amin'ny programa mba hanapahan-kevitra raha misy ny fanamarinana sy ny fisavana fiarovana. nandalo. Ny ohatra azo ampiharina amin'ny fanafihana dia aseho amin'ny fandalovana ny fanamarinana ao amin'ny SUDO, OpenSSH ary MySQL, ary koa ny fanovana ny vokatry ny fisavana mifandraika amin'ny fiarovana ao amin'ny tranomboky OpenSSL.

Ny fanafihana dia azo ampiharina amin'ny rindranasa mampiasa fisavana mba hampitahana ny soatoavina tsy mitovy amin'ny aotra. Ohatra amin'ny code vulnerable: int auth = 0; ... // kaody fanamarinana izay manova ny sandan'ny auth raha toa ka mahomby ny fanamarinana raha (auth != 0) miverina AUTH_SUCCESS; raha tsy izany dia miverina AUTH_FAILURE;

Ao anatin'ity ohatra ity, ho an'ny fanafihana mahomby dia ampy ny manimba izay bitika rehetra ao amin'ny fitadidiana mifandray amin'ny fari-piadidiana 32-bit ao amin'ny stack. Raha misy simba ny bitika ao amin'ny fari-piainana, dia tsy ho aotra intsony ny sanda ary ny mpandraharaha misy fepetra no hamaritra ny fahavitan'ny fanamarinana. Ny lamina fanamarinana toy izany dia mahazatra amin'ny fampiharana ary hita, ohatra, ao amin'ny SUDO, OpenSSH, MySQL ary OpenSSL.

Mayhem - fanafihan'ny fahatsiarovan-tena mba hialana amin'ny fanamarinana sudo sy OpenSSH

Ny fanafihana koa dia azo ampiharina amin'ny fampitahana amin'ny endrika "raha (auth == 1)", fa amin'ity tranga ity dia lasa sarotra kokoa ny fampiharana azy, satria ilaina ny manodina tsy ny 32, fa ny farany. Ny fomba dia azo ampiasaina ihany koa mba hisy fiantraikany amin'ny soatoavin'ny variables ao amin'ny rejisitra processeur, satria ny ao anatin'ny rejisitra dia azo alefa vetivety eo amin'ny stack rehefa misy ny fifandimbiasana, ny antso an-tariby, na ny mpandrindra famantarana. Mandritra ny vanim-potoana raha ao anaty fitadidiana ny soatoavin'ny rejisitra, dia azo ampidirina ao anatin'io fitadidiana io ny fanodinkodinana ary haverina amin'ny rejisitra ny sanda niova.

Mayhem - fanafihan'ny fahatsiarovan-tena mba hialana amin'ny fanamarinana sudo sy OpenSSH

Mba hanovana ny bitika dia ampiasaina ny iray amin'ireo fanovana ny fanafihana kilasy RowHammer. Satria ny fitadidiana DRAM dia sela misy dimanjato roa, samy misy capacitor sy transistor iray, ny famakiana tsy tapaka amin'ny faritra fitadidiana mitovy dia miteraka fiovaovan'ny voltase sy anomalies izay miteraka fatiantoka kely amin'ny sela manodidina. Raha ambony ny hamakin'ny famakiana, dia mety ho very ny sandan'ny sandan'ny mpifanolo-bodirindrina ary ny tsingerin'ny fanavaozana manaraka dia tsy hanam-potoana hamerenana ny toerany tany am-boalohany, izay hitarika amin'ny fiovan'ny sandan'ny angona voatahiry ao anaty sela. . Mba hiarovana amin'ny RowHammer, ny mpanamboatra chip dia nanampy mekanika TRR (Target Row Refresh), izay manakana ny kolikoly amin'ny sela amin'ny tranga manokana, fa tsy miaro amin'ny fiovaovan'ny fanafihana rehetra.

Mba hiarovana amin'ny fanafihana Mayhem, dia asaina ampiasaina amin'ny fampitahana fa tsy fanombanana ny fahasamihafana amin'ny aotra na fifanandrifian-javatra amin'ny iray, fa ny fisavana lalao amin'ny fampiasana sandan'ny voa kisendrasendra miaraka amin'ny octets tsy aotra. Amin'ity tranga ity, mba hametrahana ny sanda irina amin'ny fari-piainana, dia ilaina ny manodinkodina ireo bits manan-danja, izay tsy mitombina, mifanohitra amin'ny fanodinkodinana ny bitika iray. Ohatra amin'ny code tsy azo attackable: int auth = 0xbe406d1a; ... // kaody fanamarinana izay mametraka ny sandan'ny auth ho 0x23ab8701 raha toa ka mahomby ny fanamarinana raha (auth == 0x23ab8701) miverina AUTH_SUCCESS; raha tsy izany dia miverina AUTH_FAILURE;

Ny fomba fiarovana voafaritra dia efa nampiasain'ny mpamorona sudo ary nampidirina tao amin'ny famoahana 1.9.15 ho famahana ny vulnerability CVE-2023-42465. Mikasa ny hamoaka prototype ny kaody izy ireo amin'ny fanatanterahana ny fanafihana rehefa vita ny fanamboarana ireo tetikasa tena marefo.

Source: opennet.ru

Add a comment