የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
እንደገና ወደ ዝቅተኛ ደረጃ ለመውረድ እና ስለ firmware x86-ተኳሃኝ የኮምፒዩተር መድረኮች ደህንነት ለመነጋገር እንመክራለን። በዚህ ጊዜ የጥናቱ ዋና ንጥረ ነገር Intel Boot Guard (ከኢንቴል ባዮስ Guard ጋር መምታታት የለበትም!) - በሃርድዌር የተደገፈ ባዮስ የታመነ የማስነሻ ቴክኖሎጂ የኮምፒዩተር ሲስተም ሻጭ በምርት ደረጃ ላይ በቋሚነት ማብራት ወይም ማጥፋት ይችላል። የምርምር አዘገጃጀቱን አስቀድመን አውቀናል፡ የዚህን ቴክኖሎጂ አተገባበር በተገላቢጦሽ ምህንድስና በትንሹ ቆርጠህ አውጣው፣ አርክቴክቸርውን ግለጽ፣ ሰነድ በሌላቸው ዝርዝሮች በመሙላት፣ ለመቅመስ እና ለመደባለቅ በአጥቂ ቬክተር ወቅት። ለዓመታት በበርካታ አቅራቢዎች ምርት ውስጥ ያለው ክሎኒድ ሳንካ እንዴት አጥቂ ይህንን ቴክኖሎጂ ተጠቅሞ በስርዓቱ ውስጥ ሊወገድ የማይችል (በፕሮግራም ባለሙያም ቢሆን) ሊወገድ የማይችል የተደበቀ rootkit እንዲፈጥር እንደፈቀደ ከሚገልጽ ታሪክ ጋር እሳት እንጨምር።

በነገራችን ላይ ጽሑፉ የተመሰረተው ከኮንፈረንሱ "On Guard for Rootkits: Intel BootGuard" በተባሉት ሪፖርቶች ላይ ነው. ዜሮ ምሽቶች 2016 እና 29 ኛው ስብሰባ DefCon ሩሲያ (ሁለቱም አቀራረቦች እዚህ).

Firmware ለኮምፒዩተር መድረክ ከ Intel 64 architecture ጋር

ለመጀመር፣ ለጥያቄው መልስ እንስጥ፡ የዘመናዊ ኮምፒዩተር መድረክ ከኢንቴል 64 አርክቴክቸር ጋር ያለው firmware ምንድን ነው? በእርግጥ, UEFI BIOS. ግን ይህ መልስ ትክክለኛ አይሆንም. የዚህን አርክቴክቸር የዴስክቶፕ (ላፕቶፕ) ሥሪት የሚያሳየውን ሥዕሉን እንመልከተው።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
መሰረቱ አገናኙ ነው፡-

  • ፕሮሰሰር (ሲፒዩ, ሴንትራል ፕሮሰሲንግ ዩኒት), እሱም ከዋና ዋናዎቹ በተጨማሪ, አብሮ የተሰራ የግራፊክስ ኮር (በሁሉም ሞዴሎች ውስጥ አይደለም) እና የማስታወሻ መቆጣጠሪያ (IMC, የተቀናጀ ማህደረ ትውስታ መቆጣጠሪያ);
  • ቺፕሴት (PCH፣ Platform Controller Hub)፣ ከተለያዩ መሳሪያዎች ጋር መስተጋብር ለመፍጠር እና ንዑስ ስርዓቶችን ለማስተዳደር የተለያዩ ተቆጣጣሪዎችን የያዘ። ከእነዚህም መካከል ታዋቂው የኢንቴል ማኔጅመንት ኢንጂን (ME) አንዱ ሲሆን በውስጡም firmware (Intel ME firmware) አለው።

ላፕቶፖች ከላይ ከተጠቀሱት በተጨማሪ የተቀናጀ መቆጣጠሪያ ያስፈልጋቸዋል (ACPI EC, የላቀ ቁጥጥር እና የኃይል በይነገጽ የተከተተ መቆጣጠሪያ), ለኃይል ንዑስ ስርዓት, ለመዳሰሻ ሰሌዳ, ለቁልፍ ሰሌዳ, ለ Fn ቁልፎች (የስክሪን ብሩህነት, የድምፅ መጠን, የቁልፍ ሰሌዳ) አሠራር ኃላፊነት አለበት. የጀርባ ብርሃን, ወዘተ) እና ተጨማሪ. እና እሱ ደግሞ የራሱ firmware አለው።

ስለዚህ, ከላይ ያለው የጽኑ ትዕዛዝ ጥምረት በጋራ የ SPI ፍላሽ ማህደረ ትውስታ ላይ የተቀመጠው የኮምፒተር መድረክ (ሲስተም firmware) firmware ነው. የዚህ ማህደረ ትውስታ ተጠቃሚዎች አንድ ሰው በሚተኛበት ቦታ ግራ እንዳይጋቡ ፣ የዚህ ማህደረ ትውስታ ይዘት በሚከተሉት ክልሎች ይከፈላል (በሥዕሉ ላይ እንደሚታየው)

  • UEFI ባዮስ;
  • ACPI EC firmware (የተለየ ክልል ከ Skylake ፕሮሰሰር ማይክሮአርክቴክቸር (2015) ጋር ታየ ፣ ነገር ግን በዱር ውስጥ እኛ የአጠቃቀም ምሳሌዎችን ገና አላየንም ፣ ስለዚህ የተከተተው መቆጣጠሪያ firmware አሁንም የ UEFI BIOS አካል ነው ።
  • Intel ME firmware;
  • አብሮገነብ GbE (Gigabit Ethernet) የአውታረ መረብ አስማሚ ውቅር (MAC አድራሻ፣ ወዘተ.)
  • ፍላሽ ገላጭ - ዋናው የፍላሽ ማህደረ ትውስታ ክልል, ወደ ሌሎች ክልሎች ጠቋሚዎችን እና እንዲሁም እነሱን ለመድረስ ፍቃዶችን ይዟል.

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
ወደ ክልሎች የመዳረሻ ልዩነት (በተጠቀሱት ፈቃዶች መሠረት) በ SPI አውቶቡስ ማስተር - በ ቺፕሴት ውስጥ የተገነባው የ SPI መቆጣጠሪያ, ይህ ማህደረ ትውስታ የሚደረስበት ነው. ፈቃዶቹ በኢንቴል ወደሚመከሩት እሴቶች (ለደህንነት ሲባል) ከተዋቀሩ እያንዳንዱ የ SPI ፍላሽ ተጠቃሚ ወደ ክልላቸው ብቻ ሙሉ መዳረሻ (ማንበብ/መፃፍ) አለው። የተቀሩት ወይ ተነባቢ-ብቻ ወይም ተደራሽ አይደሉም። የሚታወቅ እውነታ: በብዙ ስርዓቶች, ሲፒዩ ወደ UEFI BIOS እና GbE ሙሉ መዳረሻ አለው, የፍላሽ ገላጭዎችን ብቻ ማንበብ እና ወደ Intel ME ክልል ምንም መዳረሻ የለውም. ለምን ብዙ እና ሁሉም አይደሉም? የሚመከር አማራጭ ነው። በጽሁፉ ውስጥ የበለጠ እንነግራችኋለን።

የኮምፒተር መድረክን ፈርምዌር ከመቀየር ለመጠበቅ ዘዴዎች

በግልጽ ለማየት እንደሚቻለው የኮምፒዩተር ፕላትፎርም ፈርምዌር ሊፈጠር ከሚችለው ስምምነት የተጠበቀ መሆን አለበት ፣ ይህም አጥቂ በእሱ ውስጥ ቦታ እንዲያገኝ (የስርዓተ ክወና ዝመናዎችን / ዳግም መጫኑን) ፣ ኮዳቸውን በጣም ልዩ በሆኑ ሁነታዎች ፣ ወዘተ. እና የ SPI ፍላሽ ማህደረ ትውስታ ክልሎች መዳረሻን መገደብ, በእርግጥ በቂ አይደለም. ስለዚህ ለእያንዳንዱ የማስፈጸሚያ አካባቢ ልዩ ልዩ ስልቶች firmware ን ከማሻሻያዎች ለመጠበቅ ጥቅም ላይ ይውላሉ።

ስለዚህ፣ የIntel ME firmware ለውህደት እና ለትክክለኛነት ቁጥጥር የተፈረመ ሲሆን ወደ ME UMA ማህደረ ትውስታ በተጫነ ቁጥር በ ME ተቆጣጣሪው ይጣራል። ይህ የማረጋገጫ ሂደት በአንደኛው ውስጥ አስቀድሞ በእኛ ተብራርቷል። ጽሑፎችለ Intel ME ንኡስ ስርዓት የተሰጠ.

እና ACPI EC firmware እንደ ደንቡ የተረጋገጠው ለታማኝነት ብቻ ነው። ይሁን እንጂ ይህ ሁለትዮሽ በ UEFI ባዮስ ውስጥ የተካተተ በመሆኑ ሁልጊዜ ማለት ይቻላል የ UEFI ባዮስ በሚጠቀምባቸው ተመሳሳይ የጥበቃ ዘዴዎች ተገዢ ነው. ስለእነሱ እንነጋገር.

እነዚህ ዘዴዎች በሁለት ምድቦች ሊከፈሉ ይችላሉ.

ጥበቃን ወደ UEFI ባዮስ ክልል ይፃፉ

  1. የ SPI ፍላሽ ማህደረ ትውስታን ይዘት በጽሑፍ የሚከላከለው መዝለያ አካላዊ ጥበቃ;
  2. የ ቺፕሴት PRx መዝገቦችን በመጠቀም በሲፒዩ አድራሻ ቦታ ውስጥ የ UEFI BIOS ክልል ትንበያ ጥበቃ;
  3. በቺፕሴት መመዝገቢያ ውስጥ BIOS_WE / BLE እና SMM_BWP ቢት በማዘጋጀት ተጓዳኝ የSMI መቆራረጥን በማመንጨት እና በማስኬድ ወደ UEFI ባዮስ ክልል ለመጻፍ የሚደረጉ ሙከራዎችን ማገድ፤
  4. የዚህ ጥበቃ የበለጠ የላቀ ስሪት Intel BIOS Guard (PFAT) ነው።

ከእነዚህ ስልቶች በተጨማሪ ሻጮች የራሳቸውን የደህንነት እርምጃዎችን (ለምሳሌ በ UEFI BIOS ዝመናዎች ፊርማዎችን መፈረም) ማዳበር እና መተግበር ይችላሉ።

በአንድ የተወሰነ ስርዓት (በአቅራቢው ላይ በመመስረት) ሁሉም ከላይ የተጠቀሱትን የመከላከያ ዘዴዎች ሊተገበሩ እንደማይችሉ, ጨርሶ ሊተገበሩ እንደማይችሉ ወይም በተጋላጭ መንገድ ሊተገበሩ እንደሚችሉ መገንዘብ አስፈላጊ ነው. ስለእነዚህ ስልቶች እና በአተገባበሩ ውስጥ ስላለው ሁኔታ የበለጠ ማንበብ ይችላሉ። ይህ ጽሑፍ. ፍላጎት ላላቸው ሰዎች በ UEFI BIOS ደህንነት ላይ ሙሉውን ተከታታይ መጣጥፎች እንዲያነቡ እንመክርዎታለን CodeRush.

የ UEFI ባዮስ ማረጋገጫ ማረጋገጫ

ስለ የታመኑ የቡት ቴክኖሎጂዎች ስንነጋገር ወደ አእምሯችን የሚመጣው የመጀመሪያው ነገር Secure Boot ነው። ሆኖም ፣ በሥነ-ሕንፃ ፣ ከ UEFI BIOS (ሾፌሮች ፣ ሎደሮች ፣ ወዘተ) ውጭ ያሉትን አካላት ለማረጋገጥ የተነደፈ ነው ፣ እና firmware ራሱ አይደለም።

ስለዚህ፣ Intel in SoCs with the Bay Trail microarchitecture (2012) ሃርድዌር የማይቀየር ደህንነቱ የተጠበቀ ቡት (የተረጋገጠ ቡት) ተተግብሯል፣ ይህም ከላይ ከተጠቀሰው Secure Boot ቴክኖሎጂ ጋር ምንም ግንኙነት የለውም። በኋላ (2013) ይህ ዘዴ ተሻሽሏል እና በ Intel Boot Guard ስም በሃስዌል ማይክሮአርክቴክቸር ለዴስክቶፖች ተለቀቀ።

Intel Boot Guardን ከመግለጻችን በፊት፣ በ Intel 64 architecture ውስጥ ያለውን የ runtimesን እንይ፣ እነዚህም በጥምረት የዚህ የታመነ ቡት ቴክኖሎጂ የመተማመን ስር ናቸው።

Intel CPU

ካፕ ፕሮሰሰሩ በኢንቴል 64 አርክቴክቸር ውስጥ ዋነኛው የማስፈጸሚያ አካባቢ መሆኑን ይጠቁማል። ለምንድነው የእምነት መሰረት የሆነው? ይህን የሚያደርገው የሚከተሉት ንጥረ ነገሮች ባለቤትነት ነው፡-

  • የማይክሮኮድ ሮም የማይለዋወጥ፣ የማይክሮ ኮድን ለማከማቸት እንደገና ሊፃፍ የማይችል ማህደረ ትውስታ ነው። ማይክሮኮድ በጣም ቀላል በሆኑ መመሪያዎች ላይ የአቀነባባሪ መመሪያ ስርዓት መተግበር እንደሆነ ይታመናል. በማይክሮ ኮድ ውስጥም ይከሰታል ሳንካዎች. ስለዚህ በ BIOS ውስጥ የማይክሮኮድ ማሻሻያ ያላቸው ሁለትዮሽዎችን ማግኘት ይችላሉ (እነሱ በሚነሳበት ጊዜ ተደራቢ ናቸው ፣ ምክንያቱም ROM ሊፃፍ ስለማይችል)። የእነዚህ ሁለትዮሽ ይዘት ኢንክሪፕት የተደረገ ነው, ይህም ትንታኔን በእጅጉ ያወሳስበዋል (ስለዚህ, የማይክሮኮድ ልዩ ይዘት ለሚያዳብሩት ብቻ ይታወቃል), እና ታማኝነትን እና ትክክለኛነትን ለመቆጣጠር የተፈረመ ነው;
  • የማይክሮኮድ ማሻሻያዎችን ይዘቶች ለመበተን የ AES ቁልፍ;
  • የማይክሮ ኮድ ዝመናዎችን ፊርማ የሚያረጋግጥ የRSA የህዝብ ቁልፍ ሃሽ;
  • ሲፒዩ ባዮስ (ሄሎ ማይክሮኮድ) ከመጀመሩ በፊት ወይም በስራው ወቅት አንዳንድ ሁነቶች ሲከሰቱ ሊያሄድባቸው የሚችላቸውን ኢንቴል-የዳበረ ACM (የተረጋገጠ ኮድ ሞዱል) ኮድ ሞጁሎችን ፊርማ የሚያረጋግጥ የRSA የህዝብ ቁልፍ ሃሽ።

ኢንቴል ME

በብሎጋችን ውስጥ ያለው ይህ ንዑስ ስርዓት የተሰጠው ለ ሁለት መጣጥፎች. ይህ ሊተገበር የሚችል አካባቢ በ ቺፕሴት ውስጥ በተሰራው ማይክሮ መቆጣጠሪያ ላይ የተመሰረተ እና በሲስተሙ ውስጥ በጣም የተደበቀ እና ልዩ መብት ያለው መሆኑን ያስታውሱ።

ምንም እንኳን ድብቅነት ቢኖርም ፣ Intel ME እንዲሁ የመተማመን ስር ነው ፣ ምክንያቱም እሱ አለው-

  • ME ROM - የማይለዋወጥ ፣ የማይመለስ ማህደረ ትውስታ (የማዘመን ዘዴ አልተሰጠም) ፣ የመነሻ ኮድን ፣ እንዲሁም የ SHA256 ሃሽ የ RSA የህዝብ ቁልፍ ፣ የ Intel ME firmware ፊርማውን የሚያረጋግጥ;
  • ሚስጥራዊ መረጃን ለማከማቸት የ AES ቁልፍ;
  • በኮምፒዩተር ሲስተም አቅራቢ የተገለጸውን መረጃ ጨምሮ አንዳንድ መረጃዎችን ለቋሚ ማከማቻ በ ቺፕሴት ውስጥ የተቀናጀ የፊውዝ ስብስብ (ኤፍኤፍኤፍ ፣ የመስክ ፕሮግራም ፊውዝ) ማግኘት።

Intel Boot Guard 1.x

ትንሽ ማስተባበያ። በዚህ ጽሑፍ ውስጥ የምንጠቀመው የIntel Boot Guard ቴክኖሎጂ ስሪት ቁጥሮች የዘፈቀደ ናቸው እና በውስጣዊ ኢንቴል ዶክመንቴሽን ውስጥ ጥቅም ላይ ከሚውለው የቁጥር አሃዝ ጋር ምንም ግንኙነት ላይኖራቸው ይችላል። በተጨማሪም የዚህ ቴክኖሎጂ አተገባበር መረጃ የተገኘው በተገላቢጦሽ ምህንድስና ወቅት ነው፣ እና ለኢንቴል ቡት ጠባቂ ከተገለጸው ጋር ሲነጻጸር የተሳሳቱ ሊሆኑ ይችላሉ፣ ይህም በጭራሽ ሊታተም የማይችል ነው።

ስለዚህ፣ Intel Boot Guard (BG) በሃርድዌር የሚደገፍ UEFI ባዮስ የማረጋገጫ ቴክኖሎጂ ነው። በመጽሐፉ ውስጥ ባለው ትንሽ ገለፃ [የፕላትፎርም የተካተተ የደህንነት ቴክኖሎጂ ተገለጠ፣ ምዕራፍ ቡት ከ ኢንተግሪቲ፣ ወይም ቡት ቡት አይደለም]፣ እንደ ታማኝ የቡት ሰንሰለት ይሰራል። እና በውስጡ ያለው የመጀመሪያው ማገናኛ በሲፒዩ ውስጥ ያለው የማስነሻ ኮድ (ማይክሮ ኮድ) ነው, ይህም በ RESET ክስተት (BIOS ውስጥ ካለው RESET ቬክተር ጋር መምታታት የለበትም!). ሲፒዩ በኤስፒአይ ፍላሽ ሜሞሪ ላይ ኢንቴል ያዘጋጀውን እና የተፈረመ የኮድ ሞጁሉን (Intel BG startup ACM) አግኝቶ ወደ መሸጎጫው ጭኖታል፣ አረጋግጦታል (ከላይ እንደተገለፀው ሲፒዩ የኤሲኤም ፊርማውን የሚያረጋግጥ የህዝብ ቁልፍ ሃሽ እንዳለው ቀደም ሲል ተጠቅሷል። ) እና ይጀምራል።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ

ይህ የኮድ ሞጁል የ UEFI BIOS ትንሽ መነሻ ክፍልን የማረጋገጥ ሃላፊነት አለበት - የመጀመሪያ ደረጃ ቡት አግድ (IBB) , እሱም በተራው, የ UEFI BIOS ዋና ክፍልን የማረጋገጥ ተግባር ይዟል. ስለዚህ, Intel BG ስርዓተ ክወናውን ከመጀመርዎ በፊት የ BIOS ትክክለኛነትን እንዲያረጋግጡ ይፈቅድልዎታል (ይህም በ Secure Boot ቴክኖሎጂ ቁጥጥር ስር ሊከናወን ይችላል).

የ Intel BG ቴክኖሎጂ ሁለት የአሠራር ዘዴዎችን ያቀርባል (እና አንዱ በሌላው ላይ ጣልቃ አይገባም, ማለትም ሁለቱም ሁነታዎች በሲስተሙ ላይ ሊነቁ ይችላሉ, እና ሁለቱም ሊሰናከሉ ይችላሉ).

የሚለካ ቡት

በ Measured Boot (MB) ሁነታ እያንዳንዱ የማስነሻ አካል (ከሲፒዩ ቡት ሮም ጀምሮ) የታመነ የመሳሪያ ስርዓት ሞዱል (TPM) አቅምን በመጠቀም ቀጣዩን "ይለካል። ለማያውቁት ላስረዳችሁ።

TPM PCRs (የፕላትፎርም ውቅረት ተመዝጋቢዎች) አሉት፣ እሱም በቀመርው መሰረት የሃሺንግ ስራውን ውጤት ይመዘግባል፡-

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ

እነዚያ። የአሁኑ PCR ዋጋ በቀድሞው ላይ የተመሰረተ ነው, እና እነዚህ መዝገቦች እንደገና የሚጀምሩት ስርዓቱ ዳግም ሲጀመር ብቻ ነው.

ስለዚህ፣ በMB ሁነታ፣ በተወሰነ ጊዜ፣ PCRs ልዩ የሆነ (በሃሽ ኦፕሬሽን አቅም ውስጥ) ኮድ ወይም ዳታ መለያ "የተለካ" ያንፀባርቃሉ። የ PCR ዋጋዎች በአንዳንድ ውሂብ (TPM_Seal) አሠራር ምስጠራ ውስጥ መጠቀም ይችላሉ። ከዚያ በኋላ የእነሱ ዲክሪፕት (TPM_Unseal) የሚቻለው በመጫኛ ምክንያት የ PCR ዋጋዎች ካልተቀየሩ ብቻ ነው (ማለትም አንድ “የተለካ” ክፍል አልተቀየረም)።

የተረጋገጠ ቡት

የ UEFI BIOS ን ማሻሻል ለሚፈልጉ ሰዎች በጣም አስፈሪው ነገር የተረጋገጠ ቡት (VB) ሁነታ ነው, እያንዳንዱ የማስነሻ አካል የሚቀጥለውን ትክክለኛነት እና ትክክለኛነት በምስጠራ ያረጋግጣል. እና የማረጋገጫ ስህተት ከተፈጠረ (ከሚከተሉት ውስጥ አንዱ) ይከሰታል፡

  • ከ 1 ደቂቃ እስከ 30 ደቂቃዎች ባለው ጊዜ መዘጋት (ተጠቃሚው ኮምፒዩተሩ ለምን እንደማይነሳ ለመረዳት ጊዜ እንዲኖረው እና ከተቻለ ባዮስ (BIOS) ወደነበረበት ለመመለሾ ይሞክራል)
  • ወዲያውኑ መዘጋት (ተጠቃሚው ለመረዳት ጊዜ እንዳይኖረው እና በተጨማሪም ለማድረግ);
  • ቀጥ ያለ ፊት ያለው ሼል መቀጠል (ለደህንነት ጊዜ ከሌለው ፣ ምክንያቱም የበለጠ አስፈላጊ ነገሮች ስለሚኖሩ)።

የእርምጃው ምርጫ የሚወሰነው በተጠቀሰው የ Intel BG ውቅር (ማለትም የማስፈጸሚያ ፖሊሲ ተብሎ በሚጠራው) ላይ ነው, ይህም በቋሚነት በኮምፒዩተር መድረክ አቅራቢው በተለየ ሁኔታ በተዘጋጀ ማከማቻ ውስጥ - ቺፕሴት ፊውዝ (ኤፍኤፍኤፍ) ይመዘገባል. በዚህ ነጥብ ላይ በስፋት እንኖራለን።

ከማዋቀሩ በተጨማሪ ሻጩ ሁለት RSA 2048 ቁልፎችን ያመነጫል እና ሁለት የውሂብ አወቃቀሮችን ይፈጥራል (በሥዕሉ ላይ የሚታየው)

  1. የዚህን አንጸባራቂ SVN (የደህንነት ሥሪት ቁጥር) ያስቀመጠው የአቅራቢው ስርወ ቁልፍ ማኒፌስት (KEYM፣ OEM Root Key Maifest)፣ የቀጣዩ መግለጫ የህዝብ ቁልፍ SHA256 ሃሽ፣ የ RSA ህዝባዊ ቁልፍ (ማለትም የህዝብ ክፍል የአቅራቢው ስር ቁልፍ) የዚህን አንጸባራቂ ፊርማ እና ፊርማውን ማረጋገጥ;
  2. የዚህን አንጸባራቂ SVN፣ SHA256 የ IBB ሃሽ፣ የዚህን አንጸባራቂ ፊርማ የሚያረጋግጡበት የህዝብ ቁልፍ እና ፊርማው ራሱ ያስቀመጠው የIBB ማንፌስት (IBBM፣ Initial Boot Block Manifest) ነው።

የ SHA256 ሃሽ የኦሪጂናል ዕቃ አምራች ስርወ ቁልፍ ልክ እንደ ኢንቴል ቢጂ ውቅር ለ chipset fuses (FPFs) በቋሚነት ይፃፋል። የ Intel BG ውቅር ይህንን ቴክኖሎጂ ለማካተት የሚያቀርብ ከሆነ ከአሁን በኋላ በዚህ ስርዓት ውስጥ የ OEM Root Key የግል ክፍል ባለቤት ብቻ ባዮስ ማዘመን ይችላል (ማለትም እነዚህን መግለጫዎች እንደገና ማስላት ይችላል) ፣ ማለትም። ሻጭ.

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ

ስዕሉን ሲመለከቱ, እንደዚህ አይነት ረጅም የማረጋገጫ ሰንሰለት አስፈላጊነት ላይ ጥርጣሬዎች ወዲያውኑ ይነሳሉ - አንዱን አንጸባራቂ መጠቀም ይችሉ ነበር. ለምን ያወሳስበዋል?

እንደ እውነቱ ከሆነ ኢንቴል ስለዚህ ለአቅራቢው የተለያዩ የ IBB ቁልፎችን ለተለያዩ የምርት መስመሮች እና አንዱን እንደ ስር እንዲጠቀም እድል ይሰጣል. የIBB ቁልፍ (የሁለተኛው አንጸባራቂ ምልክት የሆነው) የግል ክፍል ከተለቀቀ ክስተቱ የሚነካው በአንድ የምርት መስመር ላይ ብቻ ነው እና ሻጩ አዲስ ጥንድ እስኪያመነጭ እና በሚቀጥለው ባዮስ ማሻሻያ ላይ እንደገና የተሰላ ማኒፌክቶችን እስኪያነቃ ድረስ ብቻ ነው።

ነገር ግን የስር ቁልፉ ከተበላሸ (የመጀመሪያው አንጸባራቂ የተፈረመበት) ከሆነ, እሱን መተካት አይቻልም, የመሻር ሂደቱ አልተሰጠም. የዚህ ቁልፍ የህዝብ ክፍል ሃሽ ለአንዴና ለመጨረሻ ጊዜ ወደ FPFs ተይዟል።

Intel Boot Guard ውቅር

አሁን የ Intel BG ውቅር እና የፍጥረቱን ሂደት በዝርዝር እንመልከት። ከኢንቴል ሲስተም መሣሪያ ኪት (STK) በፍላሽ ምስል መሣሪያ GUI ውስጥ ያለውን ተዛማጅ ትር ከተመለከቱ፣ የIntel BG ውቅር የአቅራቢውን ስርወ ቁልፍ የሕዝብ ክፍል ሃሽ እንደሚጨምር ያስተውላሉ። እሴቶች, ወዘተ. Intel BG መገለጫ.

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ

የዚህ መገለጫ አወቃቀር፡-

typedef struct BG_PROFILE
{
	unsigned long Force_Boot_Guard_ACM : 1;
	unsigned long Verified_Boot : 1;
	unsigned long Measured_Boot : 1;
	unsigned long Protect_BIOS_Environment : 1;
	unsigned long Enforcement_Policy : 2; // 00b – do nothing
                                              // 01b – shutdown with timeout
                                              // 11b – immediate shutdown
	unsigned long : 26;
};

በአጠቃላይ የ Intel BG ውቅር በጣም ተለዋዋጭ አካል ነው. ለምሳሌ የForce_Boot_Guard_ACM ባንዲራ ተመልከት። ሲጸዳ፣ በ SPI ፍላሽ ላይ ያለው የBG ማስጀመሪያ ACM ሞጁል ካልተገኘ፣ ምንም የታመነ ቡት አይከሰትም። የማይታመን ይሆናል.

የVB ሁነታ የማስፈጸሚያ ፖሊሲ ሊዋቀር እንደሚችል አስቀድመን ጽፈናል፣ ስለዚህም ማረጋገጫው ካልተሳካ፣ እንደገና፣ የማይታመን ማውረድ ይከሰታል።

እንደዚህ አይነት ነገሮችን ለሻጮቹ ይተዉት...

የመገልገያው GUI የሚከተሉትን "ዝግጁ-የተሰሩ" መገለጫዎችን ያቀርባል:

ክፍል
ሁናቴ
መግለጫ

0
ምንም_FVME
ኢንቴል ቢጂ ቴክኖሎጂ ተሰናክሏል።

1
VE
የቪቢ ሁነታ ነቅቷል፣ በጊዜ ማብቂያ ይዘጋል

2
ቪኤምኢ
ሁለቱም ሁነታዎች ነቅተዋል (VB እና MB)፣ በጊዜ ማብቂያ ይዘጋል

3
VM
ሁለቱም ሁነታዎች ነቅተዋል, ስርዓቱን ሳያጠፉ

4
FVE
የቪቢ ሁነታ ነቅቷል፣ ወዲያውኑ ተዘግቷል።

5
FVME
ሁለቱም ሁነታዎች ነቅተዋል፣ ወዲያውኑ ይዘጋሉ።

ቀደም ሲል እንደተገለፀው የኢንቴል ቢጂ ውቅር በስርዓቱ ሻጭ ለአንዴና ለመጨረሻ ጊዜ መፃፍ አለበት ወደ ቺፕሴት ፊውዝ (ኤፍኤፍኤፍ) - ትንሽ (ያልተረጋገጠ መረጃ 256 ባይት ብቻ) በ ቺፕሴት ውስጥ የሃርድዌር መረጃ ማከማቻ ውጭ ሊዘጋጅ ይችላል። የኢንቴል ማምረቻ ተቋማት (ለዚያም ነው የመስክ ፕሮግራም ሊደረግ የሚችል ፊውዝ)።

ውቅረትን ለማከማቸት በጣም ጥሩ ነው ምክንያቱም

  • የአንድ ጊዜ ፕሮግራም ሊደረግ የሚችል የውሂብ ማከማቻ ቦታ አለው (የኢንቴል ቢጂ ውቅር የተጻፈበት ብቻ)።
  • ኢንቴል ME ብቻ ነው ማንበብ እና ፕሮግራም ማድረግ የሚችለው።

ስለዚህ የIntel BG ቴክኖሎጂን በአንድ የተወሰነ ስርዓት ላይ ለማዋቀር ሻጩ በምርት ጊዜ የሚከተሉትን ያደርጋል።

  1. የፍላሽ ምስል መሣሪያን በመጠቀም (ከኢንቴል STK) ፣ ከ Intel BG ውቅር ጋር የጽኑዌር ምስልን ይፈጥራል በ Intel ME ክልል ውስጥ እንደ ተለዋዋጮች (ለኤፍኤፍኤፍ ጊዜያዊ መስታወት ተብሎ የሚጠራው)።
  2. የፍላሽ ፕሮግራሚንግ መሣሪያን በመጠቀም (ከኢንቴል STK) ይህንን ምስል ወደ ስርዓቱ የ SPI ፍላሽ ማህደረ ትውስታ ይጽፋል እና የሚጠራውን ይዘጋል። የማኑፋክቸሪንግ ሁነታ (በዚህ ጉዳይ ላይ, ተጓዳኝ ትዕዛዝ ወደ Intel ME ይላካል).

በእነዚህ ክንውኖች ምክንያት ኢንቴል ME በ ME ክልል ውስጥ ካሉት የ FPFs መስተዋቶች ውስጥ የተገለጹትን እሴቶች ለኤፍኤፍኤፍ ይሰጣል ፣ ፈቃዶቹን በ SPI ፍላሽ ገላጭ መግለጫዎች ኢንቴል ለሚመከሩት እሴቶች ያዘጋጃል (በዚህ መጀመሪያ ላይ የተገለጹት) ጽሑፍ) እና የስርዓት ዳግም ማስጀመርን ያከናውኑ።

Intel Boot Guard ትግበራ ትንተና

በአንድ የተወሰነ ምሳሌ ላይ የዚህን ቴክኖሎጂ አተገባበር ለመተንተን ለኢንቴል ቢጂ ቴክኖሎጂ ምልክቶች የሚከተሉትን ስርዓቶች አረጋግጠናል-

ስርዓት
አመለከተ

ጊጋባይት GA-H170-D3H
Skylake, ድጋፍ አለ

ጊጋባይት GA-Q170-D3H
Skylake, ድጋፍ አለ

ጊጋባይት GA-B150-HD3
Skylake, ድጋፍ አለ

MSI H170A Gaming Pro
Skylake፣ ምንም ድጋፍ የለም።

Lenovo ThinkPad 460
Skylake፣ ድጋፍ አለ፣ ቴክኖሎጂ ነቅቷል።

Lenovo Yoga 2 Pro
ሃስዌል ፣ ምንም ድጋፍ የለም።

Lenovo U330p
ሃስዌል ፣ ምንም ድጋፍ የለም።

"ድጋፍ" ማለት የ Intel BG ጅምር ACM ሞጁል, ከላይ የተጠቀሱትን መግለጫዎች እና በ BIOS ውስጥ ያለው ተዛማጅ ኮድ, ማለትም. ለመተንተን አተገባበር.

እንደ ምሳሌ ከቢሮ የወረደውን እንውሰድ። ለጊጋባይት GA-H170-D3H (ስሪት F4) የ SPI ፍላሽ ማህደረ ትውስታ የአቅራቢ ጣቢያ ምስል።

Intel CPU boot ROM

በመጀመሪያ የኢንቴል ቢጂ ቴክኖሎጂ ከነቃ ስለ ፕሮሰሰሩ ተግባር እንነጋገር።

ዲክሪፕት የተደረገው ማይክሮኮድ ናሙናዎችን ማግኘት አልተቻለም፣ ስለዚህ ከዚህ በታች የተገለጹት ድርጊቶች እንዴት እንደሚተገበሩ (በማይክሮ ኮድ ወይም በሃርድዌር) ክፍት ጥያቄ ነው። ቢሆንም፣ የዘመናዊ ኢንቴል ፕሮሰሰርስ እነዚህን ድርጊቶች ማከናወን መቻሉ እውነት ነው።

ከRESET ሁኔታ ከወጣ በኋላ ፕሮሰሰር (በአድራሻ ቦታው ውስጥ የፍላሽ ማህደረ ትውስታ ይዘቶች ቀድሞውኑ በካርታ ተቀርፀዋል) FIT (Firmware Interface Table) ን ያገኛል። ማግኘት ቀላል ነው፣ ለእሱ ጠቋሚው በ FFFF FFC0h አድራሻ ተጽፏል።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
በዚህ ምሳሌ፣ ይህ አድራሻ FFD6 9500h ዋጋ አለው። ወደዚህ አድራሻ በመዞር ፕሮሰሰሩ የ FIT ሠንጠረዥን ያያል, ይዘቱ ወደ መዝገቦች የተከፋፈለ ነው. የመጀመሪያው ግቤት የሚከተለው መዋቅር ርዕስ ነው.

typedef struct FIT_HEADER
{
	char           Tag[8];     // ‘_FIT_   ’
	unsigned long  NumEntries; // including FIT header entry
	unsigned short Version;    // 1.0
	unsigned char  EntryType;  // 0
	unsigned char  Checksum;
};

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
ባልታወቀ ምክንያት፣ ቼክሱሙ ሁልጊዜ በእነዚህ ሰንጠረዦች ውስጥ አይሰላም (መስኩ ባዶ ይቀራል)።

የተቀሩት ግቤቶች ባዮስ ከመተግበሩ በፊት መተንተን / መፈጸም የሚያስፈልጋቸውን የተለያዩ ሁለትዮሾችን ያመለክታሉ, ማለትም. ወደ ውርስ RESET vector (FFFF FFF0h) ከመቀየርዎ በፊት። የእያንዳንዱ እንደዚህ አይነት ግቤት መዋቅር እንደሚከተለው ነው.

typedef struct FIT_ENTRY
{
	unsigned long  BaseAddress;
	unsigned long  : 32;
	unsigned long  Size;
	unsigned short Version;     // 1.0
	unsigned char  EntryType;
	unsigned char  Checksum;
};

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የEntryType መስኩ ይህንን ግቤት የሚያመለክተው የማገጃውን አይነት ያሳያል። በርካታ ዓይነቶችን እናውቃለን-

enum FIT_ENTRY_TYPES
{
	FIT_HEADER = 0,
	MICROCODE_UPDATE,
	BG_ACM,
	BIOS_INIT = 7,
	TPM_POLICY,
	BIOS_POLICY,
	TXT_POLICY,
	BG_KEYM,
	BG_IBBM
};

አሁን ከመግቢያዎቹ አንዱ የኢንቴል ቢጂ ጅምር ACM ሁለትዮሽ የሚገኝበትን ቦታ እንደሚያመለክት ግልጽ ነው። የዚህ ሁለትዮሽ የራስጌ መዋቅር በኢንቴል ለተዘጋጁ የኮድ ሞጁሎች የተለመደ ነው (ኤሲኤምኤስ፣ ማይክሮ ኮድ ዝመናዎች፣ የኢንቴል ME ኮድ ክፍሎች፣ ...)።

typedef struct BG_ACM_HEADER
{
	unsigned short ModuleType;     // 2
	unsigned short ModuleSubType;  // 3
	unsigned long  HeaderLength;   // in dwords
	unsigned long  : 32;
	unsigned long  : 32;
	unsigned long  ModuleVendor;   // 8086h
	unsigned long  Date;           // in BCD format
	unsigned long  TotalSize;      // in dwords
	unsigned long  unknown1[6];
	unsigned long  EntryPoint;
	unsigned long  unknown2[16];
	unsigned long  RsaKeySize;     // in dwords
	unsigned long  ScratchSize;    // in dwords
	unsigned char  RsaPubMod[256];
	unsigned long  RsaPubExp;
	unsigned char  RsaSig[256];
};

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
ፕሮሰሰሩ ይህንን ሁለትዮሽ ወደ መሸጎጫው ይጭናል፣ ያረጋግጥ እና ያስጀምራል።

Intel BG ጅምር ACM

በዚህ የኤሲኤም ሥራ ትንተና ምክንያት የሚከተሉትን እንደሚያደርግ ግልጽ ሆነ።

  • ወደ ቺፕሴት ፊውዝ (ኤፍኤፍኤፍ) የተጻፈውን የ Intel BG ውቅር ከ Intel ME ይቀበላል;
  • KEYM እና IBBM መግለጫዎችን ያገኛል፣ ያረጋግጣቸዋል።

እነዚህን አንጸባራቂዎች ለማግኘት ኤሲኤም የFIT ሰንጠረዡንም ይጠቀማል፣ ወደእነዚህ መዋቅሮች ለመጠቆም ሁለት አይነት ግቤቶች አሉት (ከላይ FIT_ENTRY_TYPES ይመልከቱ)።

ማኒፌስቶዎቹን በጥልቀት እንመልከታቸው። በመጀመሪያው አንጸባራቂ መዋቅር ውስጥ፣ በርካታ ግልጽ ያልሆኑ ቋሚዎች፣ ከሁለተኛው አንጸባራቂ የተገኘ የህዝብ ቁልፍ ሃሽ እና የህዝብ OEM Root Key እንደ ጎጆ መዋቅር የተፈረመ እናያለን።

typedef struct KEY_MANIFEST
{
	char           Tag[8];          // ‘__KEYM__’
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 0
	unsigned char  : 8;             // 1
	unsigned short : 16;            // 0Bh
	unsigned short : 16;            // 20h == hash size?
	unsigned char  IbbmKeyHash[32]; // SHA256 of an IBBM public key
	BG_RSA_ENTRY   OemRootKey;
};

typedef struct BG_RSA_ENTRY
{
	unsigned char  : 8;             // 10h
	unsigned short : 16;            // 1
	unsigned char  : 8;             // 10h
	unsigned short RsaPubKeySize;   // 800h
	unsigned long  RsaPubExp;
	unsigned char  RsaPubKey[256];
	unsigned short : 16;            // 14
	unsigned char  : 8;             // 10h
	unsigned short RsaSigSize;      // 800h
	unsigned short : 16;            // 0Bh
	unsigned char  RsaSig[256];
};

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የኦሪጂናል ዕቃ አምራች ስርወ ቁልፍን ይፋዊ ቁልፍ ለማረጋገጥ ከፋይሶቹ SHA256 hash ጥቅም ላይ እንደዋለ እናስታውሳለን ይህም በአሁኑ ጊዜ ከኢንቴል ኤም ተቀብሏል።

ወደ ሁለተኛው ማኒፌስቶ እንሂድ። ሶስት መዋቅሮችን ያቀፈ ነው-

typedef struct IBB_MANIFEST
{
	ACBP Acbp;         // Boot policies
	IBBS Ibbs;         // IBB description
	IBB_DESCRIPTORS[];
	PMSG Pmsg;         // IBBM signature
};

የመጀመሪያው የተወሰኑ ቋሚዎችን ይይዛል-

typedef struct ACBP
{
	char           Tag[8];          // ‘__ACBP__’
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 1
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 0
	unsigned short : 16;            // x & F0h = 0
	unsigned short : 16;            // 0 < x <= 400h
};

ሁለተኛው የ IBB SHA256 ሃሽ እና የIBBን ይዘት የሚገልጹ ገላጭዎች ብዛት (ማለትም ሃሽ ከምን እንደሚሰላ) ይዟል።

typedef struct IBBS
{
	char           Tag[8];            // ‘__IBBS__’
	unsigned char  : 8;               // 10h
	unsigned char  : 8;               // 0
	unsigned char  : 8;               // 0
	unsigned char  : 8;               // x <= 0Fh
	unsigned long  : 32;              // x & FFFFFFF8h = 0
	unsigned long  Unknown[20];
	unsigned short : 16;              // 0Bh
	unsigned short : 16;              // 20h == hash size ?
	unsigned char  IbbHash[32];       // SHA256 of an IBB
	unsigned char  NumIbbDescriptors;
};

የ IBB ገላጭዎች ይህንን መዋቅር አንድ በአንድ ይከተላሉ. ይዘታቸው የሚከተለው ቅርጸት አለው።

typedef struct IBB_DESCRIPTOR
{
	unsigned long  : 32;
	unsigned long  BaseAddress;
	unsigned long  Size;
};

ቀላል ነው፡ እያንዳንዱ ገላጭ የIBB ቁራጭ አድራሻ/መጠን ይዟል። ስለዚህ በእነዚህ ገላጭ ገላጭዎች (በራሳቸው ገላጭዎች ቅደም ተከተል) የተጠቆሙት የብሎኮች ትስስር IBB ነው. እና እንደ አንድ ደንብ ፣ IBB የሁሉም የ SEC እና የ PEI ደረጃዎች ሞጁሎች ጥምረት ነው።

ሁለተኛው አንጸባራቂ የ IBB ህዝባዊ ቁልፍን በያዘ መዋቅር (ከመጀመሪያው አንጸባራቂ በSHA256 ሃሽ የተረጋገጠ) እና የዚህ አንጸባራቂ ፊርማ ያበቃል፡-

typedef struct PMSG
{
	char           Tag[8];            // ‘__PMSG__’
	unsigned char  : 8;               // 10h
	BG_RSA_ENTRY   IbbKey;
};

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
ስለዚህ የ UEFI ባዮስ አፈፃፀም ከመጀመሩ በፊት እንኳን ፕሮሰሰሩ ACM ን ያስነሳል ፣ ይህም የክፍሎችን ይዘት በ SEC እና PEI ደረጃ ኮድ ትክክለኛነት ያረጋግጣል ። በመቀጠል ፕሮሰሰሩ ከኤሲኤም ወጥቶ በRESET ቬክተር በኩል ይንቀሳቀሳል እና ባዮስ (BIOS) ማስኬድ ይጀምራል።

የPEI የተረጋገጠ ክፍልፋይ ቀሪውን ባዮስ (DXE ኮድ) የሚያረጋግጥ ሞጁል መያዝ አለበት። ይህ ሞጁል አስቀድሞ በ IBV (Independent BIOS Vendor) ወይም በሲስተሙ አቅራቢው እየተዘጋጀ ነው። ምክንያቱም የሊኖቮ እና ጊጋባይት ሲስተሞች ብቻ ናቸው በእጃችን የሚገኙት እና የኢንቴል ቢጂ ድጋፍ ስላላቸው ከእነዚህ ሲስተሞች የወጣውን ኮድ እናስብ።

UEFI ባዮስ ሞዱል LenovoVerifiedBootPei

በ Lenovo ሁኔታ፣ በ Lenovo የተሰራው LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D} ሞጁል ሆኖ ተገኘ።

ስራው ለDXE (በGUID) የሃሽ ጠረጴዛን መፈለግ እና DXEን ማረጋገጥ ነው።

if (EFI_PEI_SERVICES->GetBootMode() != BOOT_ON_S3_RESUME)
{
	if (!FindHashTable())
		return EFI_NOT_FOUND;
	if (!VerifyDxe())
		return EFI_SECURITY_VIOLATION;
}

Хеш таблица {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} имеет следующий формат:

typedef struct HASH_TABLE
{
	char          Tag[8];            // ‘$HASHTBL’
	unsigned long NumDxeDescriptors;
	DXE_DESCRIPTORS[];
};

typedef struct DXE_DESCRIPTOR
{
	unsigned char BlockHash[32];     // SHA256
	unsigned long Offset;
	unsigned long Size;
};

UEFI ባዮስ ሞዱል BootGuardPei

በጊጋባይት ሁኔታ፣ በኤኤምአይ የተገነባው BootGuardPei {B41956E1-7CA2-42DB-9562-168389F0F066} ሞጁል ሆኖ ተገኘ፣ እና ስለዚህ በማንኛውም AMI ባዮስ ከ Intel BG ድጋፍ ጋር አለ።

የአሠራሩ ስልተ-ቀመር በተወሰነ ደረጃ የተለየ ነው ፣ ግን ወደ ተመሳሳይነት ይወርዳል-

int bootMode = EFI_PEI_SERVICES->GetBootMode();

if (bootMode != BOOT_ON_S3_RESUME &&
    bootMode != BOOT_ON_FLASH_UPDATE &&
    bootMode != BOOT_IN_RECOVERY_MODE)
{
	HOB* h = CreateHob();
	if (!FindHashTable())
		return EFI_NOT_FOUND;
	WriteHob(&h, VerifyDxe());
	return h;
}

የሚታየው የሃሽ ሠንጠረዥ {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} የሚከተለው ቅርጸት አለው።

typedef HASH_TABLE DXE_DESCRIPTORS[];

typedef struct DXE_DESCRIPTOR
{
	unsigned char BlockHash[32];     // SHA256
	unsigned long BaseAddress;
	unsigned long Size;
};

Intel Boot Guard 2.x

ስለ ኢንቴል ቡት ጠባቂ አዲስ አሠራር በአፖሎ ሐይቅ ማይክሮአርክቴክቸር - ASRock J4205-IT ላይ ስለተገኘው ስለ ኢንቴል ቡት ጠባቂ በአጭሩ እንነጋገር።

ምንም እንኳን ይህ እትም በሶሲዎች ውስጥ ብቻ ጥቅም ላይ የሚውል ቢሆንም (አዳዲስ ስርዓቶች ከካቢ ሐይቅ ፕሮሰሰር ማይክሮአርክቴክቸር ጋር ኢንቴል ቡት ጠባቂ 1.x መጠቀማቸውን ቢቀጥሉም) በIntel SoCs ላይ ለተመሰረቱ የመሣሪያ ስርዓቶች አዲስ የስነ-ህንፃ አማራጭ ማሰስ ትልቅ ፍላጎት አለው ፣ይህም ተጨባጭ ታይቷል። ለውጦች ለምሳሌ:

  • ባዮስ እና ኢንቴል ME ክልሎች (ወይም ይልቁንስ Intel TXE, እንደ Intel SoC ቃላቶች) አሁን አንድ የ IFWI ክልል ናቸው;
  • ምንም እንኳን ኢንቴል ቢጂ በመድረኩ ላይ የነቃ ቢሆንም እንደ FIT፣ KEYM፣ IBBM ያሉ መዋቅሮች በፍላሽ ማህደረ ትውስታ ውስጥ አልተገኙም።
  • ከ TXE እና ISH ኮሮች (x86) በተጨማሪ ሶስተኛው ኮር (እንደገና ARC, በነገራችን ላይ) ወደ ቺፕሴት - PMC (የኃይል አስተዳደር መቆጣጠሪያ) ተጨምሯል, የኃይል ንዑስ ስርዓትን እና የአፈፃፀም ክትትልን ከማረጋገጥ ጋር የተያያዘ.

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የአዲሱ IFWI ክልል ይዘት የሚከተሉት ሞጁሎች ስብስብ ነው።

አድልዎ
ስም
መግለጫ

0000 2000 ሸ
አጭበርባሪ
አንዳንድ የመሳሪያ ስርዓት ውቅረት፣ በአቅራቢው የተፈረመ

0000 6000 ሸ
አርቢኢፒ
Intel TXE የጽኑ ኮድ ክፍል, x86, ኢንቴል የተፈረመ

0001 0000 ሸ
PMCP
የጽኑ ትዕዛዝ ኮድ ክፍል Intel PMC, ARC, በ Intel የተፈረመ

0002 0000 ሸ
FTPR
Intel TXE የጽኑ ኮድ ክፍል, x86, ኢንቴል የተፈረመ

0007B000h
UCOD
በ Intel የተፈረመ የሲፒዩ ማይክሮ ኮድ ዝመናዎች

0008 0000 ሸ
IBBP
UEFI ባዮስ፣ SEC/PEI ደረጃዎች፣ x86፣ ሻጭ ተፈራርመዋል

0021 8000 ሸ
አይ.ኤስ.ኬ.
የ Intel ISH firmware ኮድ ክፍል x86፣ በአቅራቢው የተፈረመ

0025 8000 ሸ
ኤንኤፍቲፒ
Intel TXE የጽኑ ኮድ ክፍል, x86, ኢንቴል የተፈረመ

0036 1000 ሸ
IUNP
ያልታወቀ

0038 1000 ሸ
ኦቢፒ
UEFI ባዮስ፣ DXE ደረጃ፣ x86፣ ያልተፈረመ

በTXE firmware ትንተና ወቅት፣ ከዳግም ማስጀመር በኋላ፣ TXE የአድራሻ ቦታውን መሰረታዊ ይዘቶች ለሲፒዩ (FIT፣ ACM፣ RESET vector ...) እስኪያዘጋጅ ድረስ ፕሮሰሰሩን በዚህ ሁኔታ እንደሚያቆይ ግልጽ ሆነ። ከዚህም በላይ TXE ይህንን ውሂብ በ SRAM ውስጥ ያስቀምጠዋል, ከዚያ በኋላ ፕሮሰሰሩን ለጊዜው እዚያ ድረስ ያቀርባል እና ከRESET "ይለቀቃል".

በ rootkits ጥበቃ ላይ

ደህና, አሁን ወደ "ትኩስ" እንሂድ. በአንድ ወቅት በብዙ ሲስተሞች የ SPI ፍላሽ ገላጭዎች የ SPI ፍላሽ ሚሞሪ ክልሎችን የመድረስ ፍቃድ እንዳላቸው ደርሰንበታል ስለዚህ ሁሉም የዚህ ማህደረ ትውስታ ተጠቃሚዎች ማንኛውንም ክልል መፃፍ እና ማንበብ ይችላሉ። እነዚያ። በጭራሽ.

ከ MEinfo መገልገያ (ከኢንቴል STK) ጋር ከተመለከትን በኋላ በእነዚህ ስርዓቶች ላይ ያለው የማምረቻ ሁኔታ አልተዘጋም ፣ ስለሆነም የ ቺፕሴት ፊውዝ (ኤፍኤፍኤፍ) በማይታወቅ ሁኔታ ውስጥ ቀርቷል። አዎ፣ ኢንቴል ቢጂ በእንደዚህ አይነት ጉዳዮች ላይ አልነቃም ወይም አልተሰናከለም።

እየተነጋገርን ያለነው ስለሚከተሉት ስርዓቶች ነው (ስለ ኢንቴል ቢጂ እና በአንቀጹ ውስጥ በኋላ ምን እንደሚብራራ ፣ ስለ Haswell ፕሮሰሰር ማይክሮአርክቴክቸር እና ከዚያ በላይ ስላለው ስርዓቶች እንነጋገራለን)

  • ሁሉም የጊጋባይት ምርቶች;
  • ሁሉም የ MSI ምርቶች;
  • 21 Lenovo ላፕቶፕ ሞዴሎች እና 4 Lenovo አገልጋይ ሞዴሎች.

በእርግጥ ግኝቱን ለእነዚህ አቅራቢዎች እንዲሁም ለኢንቴል አሳውቀናል።

በቂ ምላሽ የተከተለው ከ ብቻ ነው። Lenovoችግሩን የተቀበለው እና ጠጋኝ አወጣ.

ጊጋባይት ስለ ተጋላጭነቱ መረጃ የተቀበሉ ይመስላል፣ ግን በምንም መልኩ አስተያየት አልሰጡም።

ጋር ግንኙነት MSI የኛን ይፋዊ የፒጂፒ ቁልፍ ለመላክ ባቀረብነው ጥያቄ ሙሉ በሙሉ ቆሟል (የተመሰጠረ የደህንነት ምክር ለመላክ)። እነሱ "የሃርድዌር አምራቾች ናቸው እና የፒጂፒ ቁልፎችን አያመርቱም" ብለዋል.

ግን የበለጠ ወደ ነጥቡ። ፊውዝዎቹ ባልተገለጸ ሁኔታ ውስጥ ስለሚቀሩ ተጠቃሚው (ወይም አጥቂው) እራሱን ፕሮግራም ማድረግ ይችላል (በጣም አስቸጋሪው ኢንቴል STK ያግኙ). ይህ የሚከተሉትን ደረጃዎች ይጠይቃል.

1. ወደ ዊንዶውስ ኦፕሬቲንግ ሲስተም ማስነሳት (በአጠቃላይ ከዚህ በታች የተገለጹት እርምጃዎችም ከሊኑክስ ስር ሊደረጉ ይችላሉ ፣ ለተፈለገው ስርዓተ ክወና የ Intel STK አናሎግ ካዘጋጁ)። የMEinfo መገልገያን በመጠቀም በዚህ ስርዓት ላይ ያሉት ፊውዝ በፕሮግራም ያልተዘጋጁ መሆናቸውን ያረጋግጡ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
2. የፍላሽ ፕሮግራሚንግ መሣሪያን በመጠቀም የፍላሽ ማህደረ ትውስታን ይዘት ያንብቡ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
3. ማንኛውንም የ UEFI BIOS አርትዖት መሳሪያ በመጠቀም የተነበበውን ምስል ይክፈቱ ፣ አስፈላጊ ለውጦችን ያድርጉ (ለምሳሌ rootkit ይተግብሩ) ፣ በ ME ክልል ውስጥ ያሉትን የKEYM እና IBBM መዋቅሮች ይፍጠሩ / ያርትዑ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የ RSA ቁልፍ የህዝብ ክፍል በሥዕሉ ላይ ጎልቶ ይታያል ፣ የ hash ሃሽ ከተቀረው የኢንቴል ቢጂ ውቅር ጋር ወደ ቺፕሴት ፊውዝ ይዘጋጃል።

4. የፍላሽ ምስል መሳሪያን በመጠቀም አዲስ የጽኑዌር ምስል ይገንቡ (የIntel BG ውቅር በማዘጋጀት)።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
5. የፍላሽ ፕሮግራሚንግ መሳሪያን በመጠቀም አዲስ ምስል ይፃፉ፣ ME ክልሉ አሁን የኢንቴል ቢጂ ውቅር እንደያዘ MEinfo በመጠቀም ያረጋግጡ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
6. የማምረቻ ሁነታን ለመዝጋት የፍላሽ ፕሮግራሚንግ መሣሪያን ይጠቀሙ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
7. ስርዓቱ እንደገና ይጀመራል፣ ከዚያ በኋላ፣ MEinfoን በመጠቀም፣ FPFs አሁን ፕሮግራም መያዛቸውን ማረጋገጥ ይችላሉ።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
እነዚህ ድርጊቶች ለዘለዓለም በዚህ ስርዓት ላይ Intel BG ን አንቃ. ድርጊቱን ለመቀልበስ የማይቻል ይሆናል፣ ይህም ማለት፡-

  • በዚህ ስርዓት ላይ የ UEFI BIOS ን ማዘመን የሚችለው የስር ቁልፍ የግል ክፍል ባለቤት ብቻ ነው (ማለትም ኢንቴል ቢጂን የነቃው)።
  • ዋናውን firmware ወደዚህ ስርዓት ከመለሱ ፣ ለምሳሌ ፣ ፕሮግራመርን በመጠቀም ፣ እሱ እንኳን አይበራም (የማረጋገጫ ስህተት በሚከሰትበት ጊዜ የማስፈጸሚያ ፖሊሲ ውጤት)።
  • እንዲህ ዓይነቱን UEFI BIOS ለማስወገድ ቺፕሴትን በፕሮግራም በተዘጋጁ FPFs በ “ንፁህ” መተካት ያስፈልግዎታል (ማለትም በመኪና ዋጋ ወደ ኢንፍራሬድ መሸጫ ጣቢያ ካገኙ ቺፕሴት እንደገና መሸጥ ወይም ማዘርቦርድን ብቻ ​​ይተኩ) ).

እንደዚህ ያለ rootkit ምን ማድረግ እንደሚችል ለመረዳት ኮድዎን በ UEFI ባዮስ አካባቢ ውስጥ ለማስፈፀም ምን እንደሚያስችል መገምገም ያስፈልግዎታል። በለው ፣ በአቀነባባሪው በጣም ልዩ በሆነው ሁነታ - ኤስኤምኤም። እንዲህ ዓይነቱ rootkit የሚከተሉትን ንብረቶች ሊኖረው ይችላል:

  • ከስርዓተ ክወናው ጋር በትይዩ መፈፀም (የ SMI ማቋረጥን በማመንጨት ሂደቱን ማዋቀር ይችላሉ, ይህም በሰዓት ቆጣሪ የሚነሳ ነው);
  • በኤስኤምኤም ሁነታ ውስጥ የመሆን ሁሉም ጥቅሞች አሉት (የ RAM እና የሃርድዌር ሃብቶች ይዘቶች ሙሉ መዳረሻ ፣ ከስርዓተ ክወናው ምስጢር);
  • በኤስኤምኤም ሁነታ ሲጀመር የ rootkit ኮድ መመስጠር እና ዲክሪፕት ሊደረግ ይችላል። በኤስኤምኤም ሁነታ ብቻ የሚገኝ ማንኛውም ውሂብ እንደ ምስጠራ ቁልፍ ሊያገለግል ይችላል። ለምሳሌ፣ በSMRAM ውስጥ ካሉ የአድራሻዎች ስብስብ ሃሽ። ይህንን ቁልፍ ለማግኘት ወደ SMM መውጣት ያስፈልግዎታል። እና ይህ በሁለት መንገዶች ሊከናወን ይችላል. በኤስኤምኤም ኮድ ውስጥ RCE ን ይፈልጉ እና ይጠቀሙበት ወይም የራስዎን የኤስኤምኤም ሞጁል ወደ ባዮስ ያክሉት ፣ ይህ የማይቻል ነው ፣ ምክንያቱም ቡት ጠባቂን ስላነቃን።

ስለዚህ ይህ ተጋላጭነት አጥቂ የሚከተሉትን እንዲያደርግ ያስችለዋል።

  • በስርዓቱ ውስጥ የማይታወቅ ዓላማ የተደበቀ ፣ የማይነቃነቅ rootkit መፍጠር ፣
  • ኮድዎን በ Intel SoC ውስጥ ካሉት ቺፕሴት ኮርሶች በአንዱ ላይ ያድርጉት ፣ ማለትም ፣ በ Intel ISH (ምስሉን በቅርበት ይመልከቱ)።

የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
የ Schrödinger የታመነ ቡት። ኢንቴል ቡት ጠባቂ
ምንም እንኳን የ Intel ISH ንዑስ ስርዓት አቅም ገና አልተመረመረም ፣ በ Intel ME ላይ አስደሳች የጥቃት ቬክተር ይመስላል።

ግኝቶች

  1. ጥናቱ የIntel Boot Guard ቴክኖሎጂ እንዴት እንደሚሰራ ቴክኒካዊ መግለጫ ሰጥቷል። በኢንቴል ደህንነት ውስጥ በድብቅ ሞዴል ውስጥ ሁለት ሚስጥሮችን መቀነስ።
  2. በስርዓቱ ውስጥ የማይነቃነቅ rootkit ለመፍጠር የሚያስችል የጥቃት ሁኔታ ቀርቧል።
  3. ዘመናዊ የኢንቴል ፕሮሰሰሮች ባዮስ (BIOS) ከመጀመሩ በፊት ብዙ የባለቤትነት ኮድን መተግበር እንደሚችሉ አይተናል።
  4. የኢንቴል 64 አርክቴክቸር ያላቸው መድረኮች ነፃ ሶፍትዌሮችን ለማስኬድ ተስማሚ እየሆኑ መጥተዋል፡ የሃርድዌር ማረጋገጫ፣ ቁጥራቸው እየጨመረ የመጣ የባለቤትነት ቴክኖሎጂ እና ንዑስ ስርዓቶች (በሶሲ ቺፕሴት ውስጥ ሶስት ኮሮች፡ x86 ME፣ x86 ISH እና ARC PMC)።

ቅነሳዎች

ሆን ብለው የማምረቻ ሁነታን ክፍት የሚተዉ ሻጮች በእርግጠኝነት መዝጋት አለባቸው። እስካሁን ድረስ ዓይኖቻቸውን ብቻ እየዘጉ ነው እና አዲሱ የካቢ ሌክ ስርዓቶች ይህንን ያሳያሉ.

ተጠቃሚዎች የፍላሽ ፕሮግራሚንግ መሳሪያን ከ -closemnf ጋር በማሄድ ኢንቴል ቢጂን በስርዓታቸው (በተገለፀው ተጋላጭነት የተጎዱ) ማሰናከል ይችላሉ። በመጀመሪያ ፣ (MEinfoን በመጠቀም) በ ME ክልል ውስጥ ያለው የIntel BG ውቅር ይህንን ቴክኖሎጂ በኤፍፒኤፍ ውስጥ ከፕሮግራም በኋላ በትክክል ለማጥፋት የሚያስችል መሆኑን ማረጋገጥ አለብዎት።

ምንጭ: hab.com

አስተያየት ያክሉ