Mashambulizi mapya kwenye miundo midogo ya usanifu wa wasindikaji wa Intel na AMD

Kundi la watafiti kutoka Chuo Kikuu cha Virginia na Chuo Kikuu cha California waliwasilisha aina mpya ya mashambulizi kwenye miundo midogo ya usanifu wa wasindikaji wa Intel na AMD, iliyotambuliwa wakati wa uhandisi wa reverse wa uwezo wa CPU usio na kumbukumbu. Mbinu ya kushambulia iliyopendekezwa inahusisha matumizi ya kache ya micro-op ya kati katika vichakataji, ambayo inaweza kutumika kupata taarifa zilizokusanywa wakati wa utekelezaji wa kubahatisha wa maagizo.

Kwa madhumuni ya uboreshaji, processor huanza kutekeleza maagizo kwa hali ya kubahatisha, bila kungoja hesabu za hapo awali zikamilike, na ikiwa itaamua kuwa utabiri huo haukuhesabiwa haki, inarudisha operesheni kwa hali yake ya asili, lakini data iliyochakatwa wakati huo. utekelezaji wa kubahatisha umewekwa kwenye kashe, yaliyomo ambayo yanaweza kuamuliwa.

Inabainika kuwa mbinu hiyo mpya inashinda kwa kiasi kikubwa shambulio la Specter v1, hufanya shambulio hilo kuwa gumu kugundua na haijazuiliwa na mbinu zilizopo za ulinzi dhidi ya mashambulizi ya njia ya kando iliyoundwa kuzuia udhaifu unaosababishwa na utekelezaji wa kubahatisha wa maagizo (kwa mfano, matumizi. ya maagizo ya LFENCE huzuia uvujaji katika hatua za mwisho za utekelezaji wa kubahatisha , lakini hailinde dhidi ya uvujaji kupitia miundo ndogo ya usanifu).

Njia hiyo huathiri mifano ya wasindikaji wa Intel na AMD iliyotolewa tangu 2011, ikiwa ni pamoja na mfululizo wa Intel Skylake na AMD Zen. CPU za kisasa huvunja maagizo changamano ya kichakataji kuwa utendakazi rahisi zaidi kama wa RISC, ambao umehifadhiwa kwenye akiba tofauti. Akiba hii kimsingi ni tofauti na kache za kiwango cha juu, haipatikani moja kwa moja na hufanya kazi kama buffer ya mtiririko kwa ufikiaji wa haraka wa matokeo ya kusimbua maagizo ya CISC katika maagizo madogo ya RISC. Hata hivyo, watafiti wamepata njia ya kuunda hali zinazotokea wakati migogoro ya upatikanaji wa cache na kuruhusu mtu kuhukumu yaliyomo ya cache ya uendeshaji mdogo kwa kuchambua tofauti katika wakati wa utekelezaji wa vitendo fulani.

Mashambulizi mapya kwenye miundo midogo ya usanifu wa wasindikaji wa Intel na AMD

Akiba ya utendakazi mdogo katika vichakataji vya Intel imegawanywa kuhusiana na nyuzi za CPU (Hyper-Threading), wakati wasindikaji wa AMD Zen hutumia kache iliyoshirikiwa, ambayo hutengeneza hali ya uvujaji wa data sio tu ndani ya uzi mmoja wa utekelezaji, lakini pia kati ya nyuzi tofauti katika SMT. (uvujaji wa data unaowezekana kati ya nambari inayoendesha kwenye cores tofauti za mantiki za CPU).

Watafiti wamependekeza njia ya msingi ya kugundua mabadiliko katika akiba ya utendakazi mdogo na matukio kadhaa ya mashambulizi ambayo huruhusu kuunda njia zilizofichwa za upitishaji data na kutumia msimbo ulio hatarini kuvuja data ya siri, katika mchakato mmoja (kwa mfano, kuvuja data ya kuchakata wakati wa kutekeleza. msimbo wa mtu wa tatu katika injini zilizo na JIT na kwenye mashine pepe), na kati ya kernel na michakato katika nafasi ya mtumiaji.

Wakati wa kupanga lahaja ya shambulio la Specter kwa kutumia akiba ya utendakazi mdogo, watafiti waliweza kufikia utendakazi wa 965.59 Kbps na kiwango cha makosa cha 0.22% na 785.56 Kbps wakati wa kutumia urekebishaji wa makosa, katika kesi ya kupanga uvujaji ndani ya anwani sawa. nafasi na kiwango cha upendeleo. Kwa uvujaji unaochukua viwango tofauti vya upendeleo (kati ya kernel na nafasi ya mtumiaji), utendakazi ulikuwa 85.2 Kbps na urekebishaji wa makosa umeongezwa na 110.96 Kbps na kiwango cha makosa cha 4%. Wakati wa kushambulia vichakataji vya AMD Zen, na kuunda uvujaji kati ya cores tofauti za mantiki za CPU, utendakazi ulikuwa 250 Kbps na kiwango cha makosa cha 5.59% na 168.58 Kbps na urekebishaji wa makosa. Ikilinganishwa na mbinu ya kawaida ya Specter v1, shambulio jipya lilikuwa kasi mara 2.6.

Inatarajiwa kwamba kulinda dhidi ya shambulio la akiba ya micro-op kutahitaji mabadiliko ambayo yatapunguza utendaji zaidi kuliko ikiwa umewasha ulinzi wa mashambulizi ya Specter. Kama maelewano mojawapo, inapendekezwa kuzuia mashambulizi kama haya si kwa kuzima kache, lakini katika kiwango cha ufuatiliaji hitilafu na kutambua majimbo ya kache ambayo ni ya kawaida kwa mashambulizi.

Kama ilivyo katika shambulio la Specter, kupanga uvujaji kutoka kwa kernel au michakato mingine inahitaji utekelezaji wa mlolongo fulani wa amri (vidude) kwa upande wa michakato ya mwathirika, na kusababisha utekelezaji wa kubahatisha wa maagizo. Takriban gadgets 100 zinazofanana zimepatikana kwenye kernel ya Linux, ambayo itaondolewa, lakini kazi za kizazi chao zinapatikana mara kwa mara, kwa mfano, zinazohusiana na kuendesha programu maalum za BPF kwenye kernel.

Chanzo: opennet.ru

Kuongeza maoni