Google истифодаи осебпазирии Spectre-ро тавассути иҷрои JavaScript дар браузер нишон медиҳад

Google якчанд прототипҳои эксплойтро нашр кард, ки имкони истифодаи осебпазирии синфи Spectre ҳангоми иҷрои коди JavaScript дар браузерро нишон медиҳанд, ки усулҳои муҳофизати қаблан иловашударо сарфи назар мекунанд. Exploits метавонад барои дастрасӣ ба хотираи раванди коркарди мундариҷаи веб дар ҷадвали ҷорӣ истифода шавад. Барои санҷидани кори эксплоит вебсайти leaky.page ба кор андохта шуд ва коди тавсифи мантиқи кор дар GitHub ҷойгир карда шуд.

Прототипи пешниҳодшуда барои ҳамла ба системаҳо бо протсессори Intel Core i7-6500U дар муҳити дорои Linux ва Chrome 88 тарҳрезӣ шудааст. Барои истифодаи эксплоит барои дигар муҳитҳо, тағирот лозим аст. Усули истисмор ба протсессори Intel хос нест - пас аз мутобиқсозии мувофиқ, истисмор барои кор дар системаҳо бо CPU-ҳои истеҳсолкунандагони дигар, аз ҷумла Apple M1 дар асоси меъмории ARM тасдиқ карда шуд. Пас аз ислоҳи ночиз, истисмор инчунин дар дигар системаҳои оператсионӣ ва дар дигар браузерҳо дар асоси муҳаррики Chromium кор кардан мумкин аст.

Дар муҳите, ки ба протсессори стандартии Chrome 88 ва Intel Skylake асос ёфтааст, имкон дошт, ки маълумотро аз раванди коркарди мундариҷаи веб дар ҷадвали кунунии Chrome (раванди рендерер) бо суръати 1 килобайт дар як сония ифшо кунад. Илова бар ин, прототипҳои алтернативӣ таҳия карда шуданд, масалан, эксплойт, ки имкон медиҳад, бо ҳисоби кам кардани устуворӣ, ҳангоми истифодаи таймери performance.now() бо дақиқии 8 микросекунд (5 миллисония) суръати ихроҷро то 0.005 кБ/с зиёд кунад. ). Версияе низ омода карда шуд, ки бо дақиқии таймери як миллисония кор мекард, ки метавонад барои ташкили дастрасӣ ба хотираи раванди дигар бо суръати тақрибан 60 байт дар як сония истифода шавад.

Рамзи намоишии нашршуда аз се қисм иборат аст. Қисми аввал таймерро барои ҳисоб кардани вақти иҷрои амалҳо барои барқарор кардани маълумоте, ки дар кэши протсессор дар натиҷаи иҷрои тахминии дастурҳои CPU заруранд, калибр мекунад. Қисми дуюм тарҳбандии хотираро, ки ҳангоми тақсим кардани массиви JavaScript истифода мешавад, муайян мекунад.

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

Техникаи истисмори пешниҳодшуда имкон медиҳад, ки бидуни таймерҳои дақиқи баланд тавассути API performans.now() дастрас ва бидуни дастгирии навъи SharedArrayBuffer, ки имкон медиҳад массивҳоро дар хотираи муштарак эҷод кунад. Ба истисмор гаҷети Spectre, ки боиси иҷрои назоратшавандаи спекулятивии код мегардад ва анализатори ихроҷи канори каналро дар бар мегирад, ки маълумоти кэшшударо ҳангоми иҷрои спекулятсия муайян мекунад.

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

Қайд карда мешавад, ки Google прототипи истисморро бо мақсади нишон додани имконпазирии ҳамлаҳо бо истифода аз осебпазирии синфи Spectre ва ташвиқи таҳиягарони веб ба истифодаи усулҳое, ки хатарҳои чунин ҳамлаҳоро кам мекунанд, нашр кардааст. Дар ҳамин ҳол, Google чунин мешуморад, ки бидуни коркарди назарраси прототипи пешниҳодшуда, эҷоди эксплойтҳои универсалӣ, ки на танҳо барои намоиш, балки барои истифодаи васеъ омодаанд, ғайриимкон аст.

Барои кам кардани хатар, соҳибони сайтҳо ташвиқ карда мешаванд, ки сарлавҳаҳои ба наздикӣ татбиқшуда Policy Cross-Origin Opener (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame-ро истифода баранд. Имконот, X -Content-Type-Options ва SameSite Cookie. Ин механизмҳо мустақиман аз ҳамлаҳо муҳофизат намекунанд, аммо онҳо ба шумо имкон медиҳанд, ки маълумоти сайтро аз ихроҷ ба равандҳое ҷудо кунед, ки дар онҳо рамзи JavaScript-и ҳамлакунанда иҷро карда мешавад (ихроҷ аз хотираи раванди ҷорӣ рух медиҳад, ки ба ғайр аз рамзи ҳамлакунанда , инчунин метавонад маълумотро аз сайти дигаре, ки дар ҳамон ҷадвал кушода шудааст, коркард кунад). Идеяи асосӣ ин ҷудо кардани иҷрои коди сайт дар равандҳои гуногун аз рамзи тарафи сеюм, ки аз манбаъҳои беэътимод гирифта шудааст, масалан, тавассути iframe дохил карда мешавад.



Манбаъ: opennet.ru

Илова Эзоҳ