Google браузерде JavaScript қолдану арқылы Spectre осалдықтарын пайдалануды көрсетеді

Google ашылды бірнеше күн бұрын әртүрлі эксплуатациялық прототиптер осалдықтарды пайдалану мүмкіндігін көрсететін JavaScript кодын шолғышта орындау кезінде Spectre класының, жоғарыда аталған қауіпсіздік әдістерін қолданбай.

Эксплуатация процестің жадына қол жеткізу үшін қолданыла алады ол веб-мазмұнды өңдейді ағымдағы қойындыда. Эксплойттың жұмысын тексеру үшін аққан парақтың веб-сайты ашылды және операцияның логикасын сипаттайтын код GitHub-та орналастырылды.

Ұсынылған прототип арналған шабуыл жүйелері Linux және Chrome 7 ортасында Intel Core i6500-88U процессорлары, дегенмен, бұл эксплуатацияны басқа ортада пайдалану үшін өзгертулер енгізілуі мүмкін екенін жоққа шығармайды.

Операция әдісі ерекше емес процессорлар Intel: тиісті бейімделуден кейін, Эксплуатация ARM архитектурасына негізделген Apple M1 қоса алғанда, үшінші тарап процессорларымен жүйелерде жұмыс істейтіндігі расталды. Кішкентай өзгертулерден кейін эксплуатация басқа операциялық жүйелерде және Chromium қозғалтқышына негізделген басқа браузерлерде жұмыс істейді.

Стандартты Chrome 88 және Intel Skylake процессорларына негізделген ортада біз секундына 1 килобайт жылдамдықпен ағымдағы Chrome қойындысындағы веб-мазмұнды (рендерлеу процесі) көрсетуге жауап беретін процесстен деректердің ағып кетуіне қол жеткіздік. Сонымен қатар, альтернативті прототиптер әзірленді, мысалы, тұрақтылықты төмендету есебінен өнімділікті пайдалану кезінде ағып кету жылдамдығын 8 кБ / с-қа дейін арттыруға мүмкіндік беретін эксплуатация. ). Сондай-ақ, бір миллисекундтық таймер дәлдігімен жұмыс жасайтын нұсқа дайындалды, оның көмегімен басқа процестің жадына секундына 5 байт жылдамдықпен қол жеткізуді ұйымдастыруға болады.

Жарияланған демо-код үш бөлімнен тұрады:

  • Бірінші бөлім жұмыс уақытын бағалау үшін таймерді калибрлеңіз процессордың нұсқауларын алыпсатарлық орындау нәтижесінде процессордың кэшінде қалатын деректерді алу үшін қажет операциялар.
  • Екінші бөлім JavaScript массивін бөлу кезінде қолданылатын жадының орналасуын анықтайды.
  • Үшінші бөлім жады мазмұнын анықтау үшін Spectre осалдығын тікелей пайдаланады кейбір процедураларды алыпсатарлық орындау үшін жағдай жасау нәтижесінде ағымдағы процестің нәтижесі, оның нәтижесін процессор сәтсіз болжауды анықтағаннан кейін алып тастайды, бірақ орындалу іздері ортақ кэште орналасады және оларды қалпына келтіруге болады кэштелген және кэштелмеген деректерге қол жеткізу уақытының өзгеруін талдайтын бөгде арналарды қолдана отырып, кэш мазмұнын анықтау әдістері.

Ұсынылған пайдалану техникасы жоғары дәлдіктегі таймерлерді жояды performance.now () API арқылы қол жетімді және SharedArrayBuffer типін қолдаусыз, бұл жалпы жадта массивтер құруға мүмкіндік береді.

Эксплуатацияға спекулятивті кодтың орындалуын тудыратын Spectre құрылғысы және алыпсатарлық орындау кезінде қандай деректер кэштелетінін анықтайтын бүйірлік каналдың ағып кету анализаторы кіреді.

Гаджет JavaScript массивінің көмегімен жүзеге асырылады, онда буфер шегінен тыс аймаққа кіруге әрекет жасалады, бұл компилятор қосқан буферлік өлшемді тексеруге байланысты филиалдың болжау блогының күйіне әсер етеді (процессор рұқсатты мерзімінен бұрын спекулятивті түрде орындайды, бірақ тексергеннен кейін күйін қайтарады).

Кэштің мазмұнын уақыттың жеткіліксіз дәлдігі жағдайында талдау үшін процессорларда қолданылатын Tree-PLRU кэш деректерін шығару стратегиясын алдап, цикл санын көбейту арқылы айырмашылық уақытын айтарлықтай арттыруға мүмкіндік беретін әдіс ұсынылды. кэштен қайтарылады және кэште мән болмаған жағдайда.

Google шабуылдардың орындылығын көрсету үшін эксплуатацияның прототипін жариялады Spectre класының осалдығын қолдану және веб-әзірлеушілерді осындай шабуылдардың қаупін барынша азайтатын әдістерді қолдануға шақыру.

Сонымен қатар, Google ұсынылған прототипті елеулі түрде қайта қарамай, демонстрацияға ғана емес, кеңінен қолдануға дайын әмбебап ерліктерді жасау мүмкін емес деп санайды.

Дерек көзі: https://security.googleblog.com


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.