Retbleed як ҳамлаи нав ба механизми иҷрои тахминии CPU-ҳои Intel ва AMD мебошад

Гурӯҳи муҳаққиқони ETH Zurich ҳамлаи навро ба механизми иҷрои спекулятсионии гузариши ғайримустақим дар CPU муайян карданд, ки имкон медиҳад маълумот аз хотираи ядро ​​​​бароварда шавад ё ҳамла ба системаи ҳост аз мошинҳои виртуалӣ ташкил карда шавад. Ин осебпазириҳо бо номи рамзии Retbleed (CVE-2022-29900, CVE-2022-29901) ном доранд ва табиатан ба ҳамлаҳои Spectre-v2 наздиканд. Тафовут ба ташкили иҷрои спекулятивии коди худсарона ҳангоми коркарди дастури "ret" (бозгашт), ки суроғаро барои ҷаҳидан аз стек мегирад, ба ҷои ҷаҳиши ғайримустақим бо истифода аз дастури "jmp", боркунии суроға аз хотира ё реестри CPU.

Ҳамлагар метавонад барои пешгӯии нодурусти гузариш шароит фароҳам оварад ва гузариши мақсаднок ва тахминиро ба блоки код, ки дар мантиқи иҷрои барнома пешбинӣ нашудааст, ташкил кунад. Дар ниҳоят, протсессор муайян мекунад, ки пешгӯии филиал асоснок набуд ва амалиётро ба ҳолати аввалааш бармегардонад, аммо маълумоте, ки ҳангоми иҷрои тахминӣ коркард шудааст, дар кэш ва буферҳои микроархитектуравӣ хотима меёбад. Агар блоки хато иҷрошуда ба хотира дастрасӣ пайдо кунад, пас иҷрои тахминии он боиси он мегардад, ки маълумоти аз хотира хондашуда дар кэши муштарак ҷойгир карда шаванд.

Барои муайян кардани маълумоти дар кэш боқимонда пас аз амалиёти тахминӣ, ҳамлакунанда метавонад усулҳои канали паҳлӯиро барои муайян кардани маълумоти боқимонда, ба монанди таҳлили тағирот дар вақти дастрасӣ ба маълумоти кэшшуда ва кэшнашуда истифода барад. Барои мақсаднок истихроҷи иттилоот аз минтақаҳои сатҳи имтиёзҳои дигар (масалан, аз хотираи ядро) "гаҷетҳо" истифода мешаванд - пайдарпаии фармонҳои дар ядро ​​мавҷудбуда, ки барои хондани маълумот аз хотира вобаста ба шароити берунӣ, ки метавонанд ба онҳо таъсир расонанд, мувофиқанд. ҳамлагар.

Барои муҳофизат аз ҳамлаҳои классикии синфи Spectre, ки дастурҳои ҷаҳиши шартӣ ва ғайримустақимро истифода мебаранд, аксари системаҳои оператсионӣ техникаи "retpoline" -ро истифода мебаранд, ки ба иваз кардани амалиёти ғайримустақим бо дастури "ret" асос ёфтааст, ки барои он протсессорҳо воҳиди пешгӯии ҳолати стекро истифода мебаранд. . истифода набурдани блоки пешгӯии филиал. Вақте ки ретполин дар соли 2018 ҷорӣ карда шуд, боварӣ дошт, ки манипуляцияҳои суроғаҳои ба Spectre монанд барои шохаҳои тахминӣ бо истифода аз дастури "ret" амалӣ нестанд.

Тадқиқотчиёне, ки усули ҳамлаи Retbleed-ро таҳия кардаанд, имкони фароҳам овардани шароити микроархитектуриро барои оғози гузариши тахминӣ бо истифода аз дастури “ret” нишон доданд ва абзорҳои омодаро барои муайян кардани пайдарпаии дастурҳо (гаҷетҳо) нашр карданд, ки барои истифода аз осебпазирӣ дар ядрои Linux мувофиқанд, ки дар он чунин шароит зохир мегардад.

Дар рафти тадқиқот эксплоити корӣ омода карда шуд, ки дар системаҳои дорои CPU-ҳои Intel имкон медиҳад, ки маълумоти худсарона аз хотираи ядро ​​​​аз раванди беимтиёз дар фазои корбар бо суръати 219 байт дар як сония ва 98% дақиқӣ гирифта шавад. Дар коркардкунандагони AMD, самаранокии истисмор хеле баландтар аст - суръати ихроҷ 3.9 КБ дар як сония аст. Ҳамчун мисоли амалӣ, мо нишон медиҳем, ки чӣ тавр истифода бурдани эксплоити пешниҳодшуда барои муайян кардани мундариҷаи файли /etc/shadow. Дар системаҳои дорои CPU-ҳои Intel, ҳамла барои муайян кардани хэш пароли корбари реша дар 28 дақиқа ва дар системаҳои дорои CPU-ҳои AMD - дар 6 дақиқа анҷом дода шуд.

Ҳамла барои наслҳои 6-8 протсессори Intel, ки то семоҳаи 3 соли 2019 бароварда шуда буданд (аз ҷумла Skylake) ва протсессори AMD дар асоси микроархитектураҳои Zen 1, Zen 1+ ва Zen 2, ки то семоҳаи 2021-и соли 3 бароварда шуда буданд, тасдиқ карда шудааст. Дар моделҳои навтари протсессори монанди AMD ZenXNUMX ва Intel Alder Lake, инчунин дар протсессори ARM, мушкилот бо механизмҳои мавҷудаи муҳофизат баста мешаванд. Масалан, истифодаи дастурҳои IBRS (Indirect Branch Restricted Speculation) аз ҳамлаҳо муҳофизат мекунад.

Барои ядрои Linux ва гипервизори Xen як қатор тағиротҳо омода карда шудаанд, ки мушкилотро дар нармафзор дар CPU-ҳои кӯҳна маҳкам мекунанд. Ямоқи пешниҳодшуда барои ядрои Linux 68 файлро тағир медиҳад, 1783 сатр илова мекунад ва 387 сатрро нест мекунад. Мутаассифона, муҳофизат боиси хароҷоти зиёди изофӣ мегардад - дар матнҳое, ки дар протсессори AMD ва Intel гузаронида мешаванд, коҳиши самаранокӣ аз 14% то 39% ҳисоб карда мешавад. Истифодаи муҳофизат дар асоси дастурҳои IBRS, ки дар наслҳои нави CPU-ҳои Intel мавҷуд аст ва аз ядрои Linux 4.19 дастгирӣ мешавад, беҳтар аст.

Дар протсессори Intel, иваз кардани суроға барои ҷаҳиши ғайримустақими тахминӣ ба шарофати хусусияте анҷом дода мешавад, ки ҳангоми фаромадани сарҳади поёнӣ (поёнӣ) дар буфери Return Stack пайдо мешавад. Вақте ки чунин шароит ба вуқӯъ мепайвандад, дастури "ret" ба корбурди мантиқи интихоби суроғаҳо, ки барои ҷаҳиши ғайримустақими муқаррарӣ истифода мешавад, оғоз мекунад. Дар ядрои Linux зиёда аз ҳазор ҷойҳо пайдо шуданд, ки барои оғози чунин ҷараёни бозгашт шароит фароҳам меоранд ва тавассути зангҳои система дастрасанд.

Дар протсессори AMD, иҷрои тахминии дастури "ret" бидуни истинод ба буфери мушаххаси стек (Return Address Stack) анҷом дода мешавад ва воҳиди пешгӯии филиал дастури "ret" -ро на ҳамчун баргардонидани назорат, балки ҳамчун шохаи ғайримустақим баррасӣ мекунад. , ва мувофиқан, маълумотро барои пешгӯии гузариши ғайримустақим истифода мебарад. Дар ин шароит амалан ҳама гуна амалиёти "ret"-ро, ки тавассути занги система дастрас кардан мумкин аст, истифода бурдан мумкин аст.

Илова бар ин, дар CPU-ҳои AMD (CVE-2022-23825, Branch Type Confusion) низ масъалаи дигар муайян карда шудааст, ки бо татбиқи шохаҳои сохтагӣ алоқаманд аст - шароит барои пешгӯии филиалҳо ҳатто бидуни дастурҳои зарурии филиал ба амал омада метавонанд, ки имкон медиҳад ба буфери пешгӯии филиал таъсир расонад. бе дастури "ret". Ин хусусият татбиқи муҳофизатро ба таври назаррас мушкил мекунад ва тозакунии фаъолтари буфери пешгӯии филиалро талаб мекунад. Илова кардани муҳофизати пурра ба ядро ​​интизор меравад, ки хароҷоти изофӣ 209% афзоиш ёбад.

Манбаъ: opennet.ru

Илова Эзоҳ