Retbleed በኢንቴል እና AMD ሲፒዩዎች ግምታዊ የማስፈጸሚያ ዘዴ ላይ አዲስ ጥቃት ነው።

ከኢቲኤች ዙሪክ የተመራማሪዎች ቡድን በሲፒዩ ውስጥ በተዘዋዋሪ የሚደረጉ ሽግግሮች ግምታዊ አፈፃፀም ዘዴ ላይ አዲስ ጥቃት ለይቷል ፣ይህም መረጃን ከከርነል ማህደረ ትውስታ ለማውጣት ወይም በአስተናጋጁ ስርዓት ላይ ከቨርቹዋል ማሽኖች ለማደራጀት ያስችላል ። ድክመቶቹ ሬትብለድ (CVE-2022-29900፣ CVE-2022-29901) የሚል ስያሜ የተሰጣቸው እና በባህሪያቸው ለ Specter-v2 ጥቃቶች ቅርብ ናቸው። ልዩነቱ የሚመጣው "ret" (ተመለስ) መመሪያን በሚሰራበት ጊዜ በግምታዊ የአፈፃፀም ኮድ አደረጃጀት ላይ ነው ፣ እሱም አድራሻውን ከቁልል ለመዝለል ፣ የ‹jmp› መመሪያን በመጠቀም በተዘዋዋሪ ዝላይ ከመዝለል ፣ አድራሻውን ከ መጫን ማህደረ ትውስታ ወይም የሲፒዩ መመዝገቢያ.

አጥቂ ለተሳሳተ የሽግግር ትንበያ ሁኔታዎችን መፍጠር እና በፕሮግራሙ አፈጻጸም አመክንዮ ያልተሰጠ ግምታዊ ወደሆነ የኮድ ብሎክ የተደረገ ሽግግር ማደራጀት ይችላል። በመጨረሻም ፕሮሰሰሩ የቅርንጫፉ ትንበያ ትክክል እንዳልሆነ እና ስራውን ወደ መጀመሪያው ሁኔታ ይመልሰዋል፣ ነገር ግን በግምታዊ አፈፃፀም ወቅት የተሰራው መረጃ በመጨረሻው መሸጎጫ እና ማይክሮአርክቴክቸር ቋት ውስጥ ይሆናል። በስህተት የተፈፀመ ብሎክ ማህደረ ትውስታን ከደረሰ፣ ግምታዊ አፈፃፀሙ በማህደረ ትውስታ ውስጥ የተነበበው መረጃ በጋራ መሸጎጫ ውስጥ እንዲቀመጥ ያደርገዋል።

ከግምታዊ ክንውኖች በኋላ በመሸጎጫው ውስጥ የቀረውን መረጃ ለማወቅ አጥቂ የጎን ቻናል ቴክኒኮችን በመጠቀም ቀሪውን ውሂብ ለማወቅ ለምሳሌ በተሸጎጡ እና ያልተሸጎጡ መረጃዎች ላይ የመድረሻ ጊዜ ለውጦችን መተንተን ይችላል። በሌላ ልዩ ልዩ ደረጃ ላይ ካሉ አካባቢዎች መረጃን ሆን ተብሎ ለማውጣት (ለምሳሌ ከከርነል ማህደረ ትውስታ) “መግብሮች” ጥቅም ላይ ይውላሉ - በከርነል ውስጥ ያሉ የትዕዛዝ ቅደም ተከተሎች በውጫዊ ሁኔታዎች ላይ በመመርኮዝ መረጃን ከማስታወሻ ለማንበብ ተስማሚ ናቸው ። አጥቂው ።

ሁኔታዊ እና ቀጥተኛ ያልሆኑ የዝላይ መመሪያዎችን ከሚጠቀሙ ክላሲክ የስፔክተር ክፍል ጥቃቶች ለመከላከል አብዛኛዎቹ ኦፕሬቲንግ ሲስተሞች የ"retpoline" ቴክኒክን ይጠቀማሉ፣ ይህም ቀጥተኛ ያልሆነ ዝላይ ስራዎችን በ"ret" መመሪያ በመተካት ላይ የተመሰረተ ነው፣ ለዚህም ፕሮሰሰሮች የተለየ የቁልል ሁኔታ ትንበያ ክፍል ይጠቀማሉ። የቅርንጫፍ ትንበያ እገዳን አለመጠቀም. እ.ኤ.አ. በ 2018 ሬትፖላይን ሲተዋወቅ ፣ የ‹retpoline› መመሪያን በመጠቀም ስፔክተር የሚመስሉ የአድራሻ ዘዴዎች ለግምታዊ ቅርንጫፎች ተግባራዊ እንዳልሆኑ ይታመን ነበር።

የ Retbleed ጥቃት ዘዴን የፈጠሩት ተመራማሪዎች በሊኑክስ ከርነል ውስጥ ያለውን ተጋላጭነት ለመጠቀም ተስማሚ የሆኑ መመሪያዎችን (መግብሮችን) ቅደም ተከተሎችን ለመለየት የ “ret” መመሪያን በመጠቀም ግምታዊ ሽግግርን ለመጀመር የማይክሮ አርክቴክቸር ሁኔታዎችን የመፍጠር እድልን አሳይተዋል ። እንደነዚህ ያሉ ሁኔታዎች እራሳቸውን የሚያሳዩበት.

በጥናቱ ወቅት፣ ኢንቴል ሲፒዩዎች ባላቸው ሲስተሞች ላይ በዘፈቀደ መረጃ ከከርነል ማህደረ ትውስታ ውስጥ በተጠቃሚ ቦታ ላይ ካለ ያልተፈቀደ ሂደት በሴኮንድ 219 ባይት እና 98% ትክክለኛነት ለማውጣት የሚያስችል የስራ ብዝበዛ ተዘጋጅቷል። በAMD ፕሮሰሰሮች ላይ የብዝበዛው ውጤታማነት በጣም ከፍ ያለ ነው-የፍሳሹ መጠን በሴኮንድ 3.9 ኪባ ነው። እንደ ተግባራዊ ምሳሌ፣ የ/etc/shadow ፋይልን ይዘት ለማወቅ የታቀደውን ብዝበዛ እንዴት መጠቀም እንደምንችል እናሳያለን። በኢንቴል ሲፒዩዎች ላይ ባሉ ስርዓቶች ላይ የስር ተጠቃሚውን የይለፍ ቃል ሃሽ ለመወሰን ጥቃቱ በ 28 ደቂቃዎች ውስጥ እና በ AMD ሲፒዩዎች ስርዓቶች ላይ - በ 6 ደቂቃዎች ውስጥ.

ጥቃቱ ከQ6 8 በፊት ለተለቀቁት 3-2019 የኢንቴል ፕሮሰሰርስ (ስካይላይክን ጨምሮ) እና AMD ፕሮሰሰሮች በዜን 1፣ ዜን 1+ እና ዜን 2 ማይክሮ አርክቴክቸር ላይ ተመስርተው ከQ2021 3 በፊት ተረጋግጠዋል። እንደ AMD ZenXNUMX እና Intel Alder Lake ባሉ አዳዲስ ፕሮሰሰር ሞዴሎች እንዲሁም በአርኤም ፕሮሰሰሮች ውስጥ ችግሩ በነባር የጥበቃ ዘዴዎች ታግዷል። ለምሳሌ የIBRS (ቀጥተኛ ያልሆነ ቅርንጫፍ የተገደበ ግምት) መመሪያዎችን መጠቀም ከጥቃት ለመከላከል ይረዳል።

ለሊኑክስ ከርነል እና ለXen hypervisor የለውጥ ስብስብ ተዘጋጅቷል፣ ይህም በሶፍትዌር ውስጥ ያለውን ችግር በአሮጌ ሲፒዩዎች ላይ ያግዳል። ለሊኑክስ ከርነል የታቀደው ንጣፍ 68 ፋይሎችን ይለውጣል፣ 1783 መስመሮችን ይጨምራል እና 387 መስመሮችን ይሰርዛል። እንደ አለመታደል ሆኖ ጥበቃው ከፍተኛ ወጪን ያስከትላል - በ AMD እና Intel ፕሮሰሰር ላይ በተደረጉ ጽሑፎች ውስጥ የአፈፃፀም ቅነሳው ከ 14% ወደ 39% ይገመታል ። በአዲሶቹ የኢንቴል ሲፒዩዎች ትውልዶች ውስጥ የሚገኝ እና ከሊኑክስ ከርነል 4.19 ጀምሮ የሚደገፍ በIBRS መመሪያዎች ላይ በመመስረት ጥበቃን መጠቀም የበለጠ ተመራጭ ነው።

በኢንቴል ፕሮሰሰር ላይ፣ በግምታዊ ቀጥተኛ ያልሆነ ዝላይ የአድራሻ መተካት የሚከናወነው በReturn Stack Buffer ውስጥ በታችኛው ወሰን (የውስጥ ፍሰት) በኩል በሚከሰት ባህሪ ምክንያት ነው። እንደዚህ አይነት ሁኔታዎች በሚከሰቱበት ጊዜ የ "ret" መመሪያ ለመደበኛ ቀጥተኛ ያልሆኑ መዝለሎች ጥቅም ላይ ከሚውለው ጋር ተመሳሳይ የአድራሻ ምርጫ አመክንዮ መተግበር ይጀምራል. በሊኑክስ ከርነል ውስጥ እንደዚህ አይነት የኋላ ፍሰትን ለመጀመር ሁኔታዎችን የሚፈጥሩ እና በስርዓት ጥሪዎች ተደራሽ የሚሆኑ ከአንድ ሺህ በላይ ቦታዎች ተገኝተዋል።

በ AMD ፕሮሰሰሮች ላይ የ “ret” መመሪያ ግምታዊ አፈፃፀም የሚከናወነው ቁልል-ተኮር ቋት (የመመለሻ አድራሻ ቁልል) ሳይጠቅስ እና የቅርንጫፉ ትንበያ ክፍል የ “ret” መመሪያን እንደ መቆጣጠሪያ መመለሻ ሳይሆን እንደ ቀጥተኛ ያልሆነ ቅርንጫፍ ነው የሚመለከተው። , እና, በዚህ መሠረት, ውሂቡን ለመተንበይ ቀጥተኛ ያልሆኑ ሽግግሮች ይጠቀማል. በነዚህ ሁኔታዎች፣ በስርዓት ጥሪ ሊደረስ የሚችል ማንኛውም “ret” ክወና ሊበዘበዝ ይችላል።

በተጨማሪም ፣ ሌላ ጉዳይ እንዲሁ በ AMD ሲፒዩዎች (CVE-2022-23825 ፣ የቅርንጫፍ ዓይነት ግራ መጋባት) ተለይቷል ፣ ከሐሰት ቅርንጫፎች አፈፃፀም ጋር በተያያዘ - የቅርንጫፍ ትንበያ ሁኔታዎች አስፈላጊው የቅርንጫፍ መመሪያ ባይኖርም እንኳን ሊከሰቱ ይችላሉ ፣ ይህም የቅርንጫፍ ትንበያ ቋት ላይ ተጽዕኖ ያሳድራል። ያለ መመሪያ "ret". ይህ ባህሪ የጥበቃ አተገባበርን በእጅጉ ያወሳስበዋል እና የቅርንጫፉን ትንበያ ቋት የበለጠ በንቃት ማጽዳትን ይጠይቃል። በከርነል ላይ ሙሉ ጥበቃን መጨመር የትርፍ መጠኑን በ209 በመቶ ይጨምራል ተብሎ ይጠበቃል።

ምንጭ: opennet.ru

አስተያየት ያክሉ