Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
අපි නැවතත් පහත් මට්ටමකට බැස x86-අනුකූල පරිගණක වේදිකා සඳහා ස්ථිරාංගවල ආරක්ෂාව ගැන කතා කිරීමට යෝජනා කරමු. මෙවර, අධ්‍යයනයේ ප්‍රධාන අමුද්‍රව්‍යය වන්නේ Intel Boot Guard (Intel BIOS Guard සමඟ පටලවා නොගත යුතුය!) - පරිගණක පද්ධති වෙළෙන්දාට නිෂ්පාදන අවධියේදී ස්ථිරවම සක්‍රිය හෝ අක්‍රිය කළ හැකි දෘඪාංග-සහාය දක්වන විශ්වාසදායී BIOS ඇරඹුම් තාක්ෂණය. හොඳයි, පර්යේෂණ වට්ටෝරුව දැනටමත් අපට හුරුපුරුදු ය: ප්‍රතිලෝම ඉංජිනේරු විද්‍යාව භාවිතයෙන් මෙම තාක්‍ෂණය ක්‍රියාත්මක කිරීම සිහින් ව කපා, එහි ගෘහ නිර්මාණ ශිල්පය විස්තර කරන්න, ලේඛනගත නොකළ විස්තර වලින් එය පුරවන්න, රස කිරීමට සහ මිශ්‍ර කිරීමට ප්‍රහාරක දෛශික සමඟ කන්නය. වෙළෙන්දන් කිහිප දෙනෙකු නිෂ්පාදනය කිරීමේදී වසර ගණනාවක් ක්ලෝන කර ඇති දෝෂයක් මෙම තාක්ෂණය භාවිතා කර ඉවත් කළ නොහැකි (ක්‍රමලේඛකයෙකු සමඟ වුවද) පද්ධතිය තුළ සැඟවුණු rootkit එකක් නිර්මාණය කිරීමට විභව ප්‍රහාරකයෙකුට ඉඩ දෙන ආකාරය පිළිබඳ කතාවට ඉන්ධන එකතු කරමු.

මාර්ගය වන විට, ලිපිය පදනම් වී ඇත්තේ සම්මන්ත්‍රණයෙන් “On Guard of Rootkits: Intel BootGuard” වාර්තා මත ය. ZeroNights 2016 සහ 29 වන රැස්වීම ඩෙෆ්කොන් රුසියාව (ඉදිරිපත් කිරීම් දෙකම මෙහි).

Intel 64 ගෘහ නිර්මාණ ශිල්පය සහිත පරිගණක වේදිකාවක් සඳහා ස්ථිරාංග

පළමුව, අපි ප්රශ්නයට පිළිතුරු දෙමු: Intel 64 ගෘහ නිර්මාණ ශිල්පය සහිත නවීන පරිගණක වේදිකාවක ස්ථිරාංග යනු කුමක්ද? ඇත්ත වශයෙන්ම, UEFI BIOS. නමුත් එවැනි පිළිතුරක් නිවැරදි නොවනු ඇත. මෙම ගෘහ නිර්මාණ ශිල්පයේ ඩෙස්ක්ටොප් (ලැප්ටොප්) අනුවාදය පෙන්වන පින්තූරය දෙස බලමු.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
පදනම වන්නේ සබැඳිය:

  • ප්‍රොසෙසරය (CPU, මධ්‍යම සැකසුම් ඒකකය), ප්‍රධාන හරයන්ට අමතරව, ගොඩනඟන ලද ග්‍රැෆික් හරයක් (සියලු මාදිලිවල නොවේ) සහ මතක පාලකයක් (IMC, ඒකාබද්ධ මතක පාලකය);
  • චිප්සෙට් (PCH, Platform Controller Hub), පර්යන්ත උපාංග සමඟ අන්තර්ක්‍රියා කිරීමට සහ උප පද්ධති කළමනාකරණය සඳහා විවිධ පාලක අඩංගු වේ. ඒවා අතර සුප්‍රසිද්ධ Intel Management Engine (ME), එහි ස්ථිරාංග (Intel ME ස්ථිරාංග) ද ඇත.

ලැප්ටොප් පරිගණක සඳහා, ඉහත ඒවාට අමතරව, බල උප පද්ධතිය, ටච් පෑඩ්, යතුරුපුවරුව, එෆ්එන් යතුරු (තිර දීප්තිය, ශබ්ද පරිමාව) ක්‍රියාත්මක කිරීම සඳහා වගකිව යුතු බිල්ට් පාලකයක් (ACPI EC, උසස් පාලන සහ බල අතුරුමුහුණත් කාවැද්දූ පාලක) අවශ්‍ය වේ. , යතුරුපුවරු පසුතල ආලෝකය, ආදිය ) සහ වෙනත් දේවල්. තවද එයට තමන්ගේම ස්ථිරාංග ද ඇත.

එබැවින්, ඉහත ස්ථිරාංගවල සම්පූර්ණත්වය යනු පොදු SPI ෆ්ලෑෂ් මතකය මත ගබඩා කර ඇති පරිගණක වේදිකාවේ (පද්ධති ස්ථිරාංග) ස්ථිරාංග වේ. මෙම මතකය භාවිතා කරන්නන් එය කොතැනද යන්න ගැන ව්‍යාකූල නොවන පරිදි, මෙම මතකයේ අන්තර්ගතය පහත කලාපවලට බෙදා ඇත (රූපයේ පෙන්වා ඇති පරිදි):

  • UEFI BIOS;
  • ACPI EC ස්ථිරාංග (ස්කයිලේක් ප්‍රොසෙසර ක්ෂුද්‍ර ගෘහ නිර්මාණ ශිල්පය (2015) සමඟ වෙනම කලාපයක් දර්ශනය විය, නමුත් එහි භාවිතය පිළිබඳ උදාහරණ අපි තවමත් දැක නැත, එබැවින් බිල්ට් පාලකයේ ස්ථිරාංග තවමත් UEFI BIOS තුළ ඇතුළත් වේ) ;
  • Intel ME ස්ථිරාංග;
  • බිල්ට් GbE (Gigabit Ethernet) ජාල ඇඩැප්ටරයේ වින්‍යාසය (MAC ලිපිනය, ආදිය);
  • ෆ්ලෑෂ් ඩිස්ක්‍රිප්ටර් යනු ෆ්ලෑෂ් මතකයේ ප්‍රධාන කලාපය වන අතර එහි අනෙකුත් ප්‍රදේශ වෙත යොමු කිරීම් මෙන්ම ඒවාට ප්‍රවේශ වීමට අවසර ඇත.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
SPI බස් මාස්ටර්, චිප්සෙට් එකට ගොඩනගා ඇති SPI පාලකය, මෙම මතකය හරහා ප්‍රවේශ වන අතර, කලාප වෙත ප්‍රවේශය සීමා කිරීම සඳහා වගකිව යුතුය (නිශ්චිත අවසරයන්ට අනුකූලව). අවසර Intel හි නිර්දේශිත (ආරක්ෂක හේතූන් මත) අගයන්ට සකසා ඇත්නම්, සෑම SPI ෆ්ලෑෂ් පරිශීලකයෙකුටම ඔවුන්ගේ කලාපයට පමණක් සම්පූර්ණ ප්‍රවේශය (කියවීමට/ලිවීමට) ඇත. ඉතිරිය කියවීමට පමණක් හෝ ප්‍රවේශ විය නොහැක. හොඳින් දන්නා කරුණකි: බොහෝ පද්ධතිවල, CPU හට UEFI BIOS සහ GbE වෙත පූර්ණ ප්‍රවේශය ඇත, ෆ්ලෑෂ් විස්තර සඳහා පමණක් කියවීමට ප්‍රවේශය ඇත, සහ Intel ME කලාපයට ප්‍රවේශයක් නොමැත. ඇයි බොහෝ මත, සහ සියල්ල මත නොවේ? නිර්දේශිත දේ අවශ්ය නොවේ. අපි ඔබට පසුව ලිපියෙන් වැඩි විස්තර කියන්නෙමු.

පරිගණක වේදිකා ස්ථිරාංග වෙනස් කිරීමෙන් ආරක්ෂා කිරීම සඳහා යාන්ත්‍රණ

නිසැකවම, පරිගණක වේදිකාවක ස්ථිරාංග විය හැකි සම්මුති වලින් ආරක්ෂා විය යුතු අතර, එමඟින් විභව ප්‍රහාරකයෙකුට එහි අඩිතාලමක් ලබා ගැනීමට ඉඩ සලසයි (OS යාවත්කාලීන කිරීම් / නැවත ස්ථාපනය කිරීමෙන් බේරෙන්න), ඔවුන්ගේ කේතය වඩාත් වරප්‍රසාදිත මාතයන් තුළ ක්‍රියාත්මක කිරීම යනාදිය. සහ SPI ෆ්ලෑෂ් මතක කලාප වෙත ප්රවේශය සීමා කිරීම, ඇත්ත වශයෙන්ම, ප්රමාණවත් නොවේ. එබැවින්, ස්ථිරාංග වෙනස් කිරීම් වලින් ආරක්ෂා කිරීම සඳහා, එක් එක් මෙහෙයුම් පරිසරයට විශේෂිත වූ විවිධ යාන්ත්රණ භාවිතා කරනු ලැබේ.

මේ අනුව, Intel ME ස්ථිරාංග අඛණ්ඩතාව සහ සත්‍යතාව පාලනය කිරීම සඳහා අත්සන් කර ඇති අතර, එය ME UMA මතකයට පටවන සෑම අවස්ථාවකම ME පාලකය විසින් පරීක්ෂා කරනු ලැබේ. මෙම සත්‍යාපන ක්‍රියාවලිය දැනටමත් අප විසින් එකකින් සාකච්ඡා කර ඇත ලිපි, Intel ME උප පද්ධතියට කැප කර ඇත.

ACPI EC ස්ථිරාංග, රීතියක් ලෙස, පරීක්ෂා කරනු ලබන්නේ අඛණ්ඩතාව සඳහා පමණි. කෙසේ වෙතත්, මෙම ද්විමය UEFI BIOS තුළ ඇතුළත් කර ඇති නිසා, එය සෑම විටම පාහේ UEFI BIOS භාවිතා කරන එකම ආරක්ෂණ යාන්ත්රණවලට යටත් වේ. අපි ඔවුන් ගැන කතා කරමු.

මෙම යාන්ත්රණ වර්ග දෙකකට බෙදිය හැකිය.

UEFI BIOS කලාපයේ ආරක්ෂාව ලියන්න

  1. ලිඛිත-ආරක්ෂිත ජම්පර් සමඟ SPI ෆ්ලෑෂ් මතකයේ අන්තර්ගතයේ භෞතික ආරක්ෂාව;
  2. PRx චිප්සෙට් රෙජිස්ටර් භාවිතයෙන් CPU ලිපින අවකාශයේ UEFI BIOS කලාපයේ ප්‍රක්ෂේපණය ආරක්ෂා කිරීම;
  3. චිප්සෙට් රෙජිස්ටර්වල BIOS_WE/BLE සහ SMM_BWP බිටු සැකසීමෙන් අනුරූප SMI බාධා කිරීම් උත්පාදනය කිරීම සහ සැකසීම මගින් UEFI BIOS කලාපයට ලිවීමට උත්සාහ කිරීම අවහිර කිරීම;
  4. මෙම ආරක්ෂණයේ වඩාත් දියුණු අනුවාදයක් වන්නේ Intel BIOS Guard (PFAT) ය.

මෙම යාන්ත්‍රණයන්ට අමතරව, වෙළෙන්දන්ට ඔවුන්ගේම ආරක්ෂක පියවරයන් සංවර්ධනය කර ක්‍රියාත්මක කළ හැකිය (උදාහරණයක් ලෙස, UEFI BIOS යාවත්කාලීන සමඟ කැප්සියුල අත්සන් කිරීම).

විශේෂිත පද්ධතියක් මත (වෙළෙන්දා මත පදනම්ව), ඉහත සඳහන් සියලුම ආරක්ෂණ යාන්ත්‍රණ යෙදිය නොහැකි බව සැලකිල්ලට ගැනීම වැදගත්ය, ඒවා කිසිසේත් යෙදිය නොහැක, නැතහොත් ඒවා අවදානමට ලක්විය හැකි ආකාරයෙන් ක්‍රියාත්මක කළ හැකිය. ඔබට මෙම යාන්ත්‍රණ සහ ඒවා ක්‍රියාත්මක කිරීමත් සමඟ තත්වය ගැන වැඩිදුර කියවිය හැකිය මේ ලිපිය කියවන්න. උනන්දුවක් දක්වන අය සඳහා, UEFI BIOS ආරක්ෂාව පිළිබඳ සම්පූර්ණ ලිපි මාලාව කියවන ලෙස අපි නිර්දේශ කරමු කෝඩ් රෂ්.

UEFI BIOS සත්‍යාපනය

අපි විශ්වාසවන්ත ඇරඹුම් තාක්ෂණයන් ගැන කතා කරන විට, මතකයට එන පළමු දෙය වන්නේ ආරක්ෂිත ඇරඹුම් ය. කෙසේ වෙතත්, වාස්තුවිද්‍යාත්මකව එය UEFI BIOS (ධාවක, ඇරඹුම් කාරක යනාදිය) වලට පිටතින් ඇති සංරචකවල සත්‍යතාව තහවුරු කිරීමට නිර්මාණය කර ඇති අතර ස්ථිරාංග නොවේ.

එබැවින්, Intel, Bay Trail microarchitecture (2012) සමඟ SoCs තුළ, ඉහත සඳහන් කළ ආරක්‍ෂිත ඇරඹුම් තාක්‍ෂණය සමඟ පොදු කිසිවක් නොමැති දෘඪාංග ආබාධිත නොවන ආරක්‍ෂිත ඇරඹුමක් (තහවුරු කළ ඇරඹුම) ක්‍රියාත්මක කළේය. පසුව (2013), මෙම යාන්ත්‍රණය වැඩිදියුණු කර Haswell microarchitecture සහිත ඩෙස්ක්ටොප් සඳහා Intel Boot Guard නමින් නිකුත් කරන ලදී.

Intel Boot Guard විස්තර කිරීමට පෙර, Intel 64 ගෘහ නිර්මාණ ශිල්පයේ ක්‍රියාත්මක කිරීමේ පරිසරයන් දෙස බලමු, ඒවා ඒකාබද්ධව, මෙම විශ්වාසනීය ඇරඹුම් තාක්ෂණය සඳහා විශ්වාසයේ මූලයන් වේ.

Intel CPU

Cap යෝජනා කරන්නේ ප්‍රොසෙසරය Intel 64 ගෘහ නිර්මාණ ශිල්පයේ ප්‍රධාන ක්‍රියාත්මක පරිසරය බවයි.එය විශ්වාසයේ මූලය වන්නේ ඇයි? ඔහු එසේ කරන්නේ පහත සඳහන් අංග සන්තකයේ තබා ගැනීම බව පෙනේ:

  • Microcode ROM යනු මයික්‍රොකෝඩ් ගබඩා කිරීම සඳහා වාෂ්පශීලී නොවන, නැවත ලිවිය නොහැකි මතකයකි. මයික්‍රොකෝඩ් යනු සරලම උපදෙස් භාවිතා කරමින් ප්‍රොසෙසර විධාන පද්ධතිය ක්‍රියාත්මක කිරීම බව විශ්වාස කෙරේ. මයික්‍රොකෝඩ් වලද සිදුවේ දෝෂ. එබැවින් BIOS තුළ ඔබට මයික්‍රොකෝඩ් යාවත්කාලීන සහිත ද්විමය සොයා ගත හැක (ආරම්භයේදී උඩින්, ROM නැවත ලිවිය නොහැකි බැවින්). මෙම ද්විමය වල අන්තර්ගතය සංකේතනය කර ඇති අතර, එය විශ්ලේෂණය බෙහෙවින් සංකීර්ණ කරයි (එබැවින්, මයික්‍රොකෝඩයේ නිශ්චිත අන්තර්ගතය එය සංවර්ධනය කරන අයට පමණක් දැනගත හැකිය), සහ අඛණ්ඩතාව සහ සත්‍යතාව පාලනය කිරීමට අත්සන් කර ඇත;
  • ක්ෂුද්‍ර කේත යාවත්කාලීනවල අන්තර්ගතය විකේතනය කිරීම සඳහා AES යතුර;
  • මයික්‍රොකෝඩ් යාවත්කාලීනවල අත්සන සත්‍යාපනය කිරීමට භාවිතා කරන RSA පොදු යතුරේ හැෂ්;
  • RSA පොදු යතුරු හැෂ්, ඉන්ටෙල්-සංවර්ධිත ACM (සත්‍යාපිත කේත මොඩියුල) කේත මොඩියුලවල අත්සන සත්‍යාපනය කරයි, CPU හට BIOS ක්‍රියාත්මක කිරීමට පෙර (hello microcode) හෝ එහි ක්‍රියාකාරිත්වය අතරතුර, යම් යම් සිදුවීම් සිදු වූ විට දියත් කළ හැක.

Intel ME

අපගේ බ්ලොග් අඩවිය මෙම උප පද්ධතියට කැප විය දෙකක් ලිපි. මෙම ක්‍රියාත්මක කළ හැකි පරිසරය චිප්සෙට් එකට ගොඩනගා ඇති ක්ෂුද්‍ර පාලකයක් මත පදනම් වූ අතර එය පද්ධතියේ වඩාත්ම සැඟවුණු සහ වරප්‍රසාදිත බව අපි සිහිපත් කරමු.

එහි රහස්‍ය භාවය තිබියදීත්, Intel ME විශ්වාසයේ මූලයක් වන්නේ එයට ඇත්තේ:

  • ME ROM - ආරම්භක කේතය අඩංගු වාෂ්පශීලී නොවන, නැවත ලිවිය නොහැකි මතකයක් (යාවත්කාලීන ක්‍රමයක් සපයා නැත) මෙන්ම Intel ME ස්ථිරාංගයේ අත්සන සත්‍යාපනය කරන RSA පොදු යතුරේ SHA256 හැෂ්;
  • රහස් තොරතුරු ගබඩා කිරීම සඳහා AES යතුර;
  • පරිගණක පද්ධති වෙළෙන්දා විසින් නිශ්චිතව දක්වා ඇති තොරතුරු ඇතුළුව සමහර තොරතුරු ස්ථිර ගබඩා කිරීම සඳහා චිප්සෙට් එකට ඒකාබද්ධ කර ඇති ෆියුස් කට්ටලයකට (FPFs, Field Programmable Fuses) ප්‍රවේශය.

Intel Boot Guard 1.x

කුඩා වියාචනයක්. මෙම ලිපියේ අප භාවිතා කරන Intel Boot Guard තාක්‍ෂණ අනුවාද අංක අත්තනෝමතික වන අතර Intel හි අභ්‍යන්තර ලේඛනගත කිරීමේදී භාවිතා වන අංකනය සමඟ කිසිදු සම්බන්ධයක් නොතිබිය හැකිය. මීට අමතරව, මෙම තාක්‍ෂණය ක්‍රියාත්මක කිරීම පිළිබඳ මෙහි සපයා ඇති තොරතුරු ප්‍රතිලෝම ඉංජිනේරු විද්‍යාවේදී ලබා ගත් අතර, ඉන්ටෙල් බූට් ගාර්ඩ් සඳහා වන පිරිවිතරයන්ට සාපේක්ෂව සාවද්‍යතාවයන් අඩංගු විය හැකිය, එය කිසිදා ප්‍රකාශයට පත් කිරීමට අපහසුය.

එබැවින්, Intel Boot Guard (BG) යනු දෘඪාංග-සහාය දක්වන UEFI BIOS සත්‍යාපන සත්‍යාපන තාක්ෂණයකි. පොතේ [Platform Embedded Security Technology Revealed, chapter Boot with Integrity, or not Boot] පොතේ එහි කෙටි විස්තරය අනුව විනිශ්චය කිරීම, එය විශ්වාසදායක ඇරඹුම් දාමයක් ලෙස ක්‍රියා කරයි. තවද එහි ඇති පළමු සබැඳිය වන්නේ CPU තුළ ඇති ඇරඹුම් කේතය (මයික්‍රොකෝඩ්) වන අතර එය RESET සිදුවීම මගින් ක්‍රියා විරහිත වේ (BIOS හි ඇති RESET දෛශිකය සමඟ පටලවා නොගත යුතුය!). CPU විසින් SPI ෆ්ලෑෂ් මතකයේ Intel (Intel BG startup ACM) විසින් සංවර්ධනය කර අත්සන් කරන ලද කේත මොඩියුලයක් සොයාගෙන, එය එහි හැඹිලියට පටවා, සත්‍යාපනය කරයි (CPU සතුව ACM සත්‍යාපනය කරන පොදු යතුරේ හැෂ් එකක් ඇති බව දැනටමත් ඉහත සඳහන් කර ඇත. අත්සන) සහ ආරම්භය.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard

UEFI BIOS - Initial Boot Block (IBB) හි කුඩා ආරම්භක කොටසක් සත්‍යාපනය කිරීම සඳහා මෙම කේත මොඩියුලය වගකිව යුතුය, එය UEFI BIOS හි ප්‍රධාන කොටස සත්‍යාපනය කිරීමේ ක්‍රියාකාරිත්වය අඩංගු වේ. මේ අනුව, Intel BG මඟින් මෙහෙයුම් පද්ධතිය පූරණය කිරීමට පෙර BIOS හි සත්‍යතාව තහවුරු කිරීමට ඔබට ඉඩ සලසයි (එය ආරක්ෂිත ඇරඹුම් තාක්ෂණයේ අධීක්ෂණය යටතේ සිදු කළ හැකිය).

Intel BG තාක්‍ෂණය මඟින් මෙහෙයුම් ආකාර දෙකක් සපයයි (සහ එකක් අනෙකට බාධා නොකරයි, එනම් ක්‍රම දෙකම පද්ධතිය මත සක්‍රීය කළ හැකිය, නැතහොත් දෙකම අක්‍රිය කළ හැකිය).

මනින ලද බූට්

මනින ලද ඇරඹුම් (MB) මාදිලියේදී, එක් එක් ඇරඹුම් සංරචක (CPU ඇරඹුම් ROM වලින් ආරම්භ වන) TPM (විශ්වාසදායී වේදිකා මොඩියුලය) හි හැකියාවන් භාවිතා කර ඊළඟ එක "මින" කරයි. නොදන්න අයට පැහැදිලි කරන්නම්.

TPM සතුව PCR (වේදිකා වින්‍යාස ලේඛන) ඇත, එහි හැෂිං මෙහෙයුමේ ප්‍රතිඵලය සූත්‍රයට අනුව ලියා ඇත:

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard

එම. වත්මන් PCR අගය පෙර අගය මත රඳා පවතින අතර, මෙම ලේඛන නැවත සකසනු ලබන්නේ පද්ධතිය නැවත සකසන විට පමණි.

මේ අනුව, MB ප්‍රකාරයේදී, යම් අවස්ථාවක දී, PCRs "මනින ලද" කේතයේ හෝ දත්තවල අනන්‍ය (හැෂින් මෙහෙයුමේ හැකියාවන් තුළ) හඳුනාගැනීමක් පිළිබිඹු කරයි. PCR අගයන් සමහර දත්ත සංකේතාංකන (TPM_Seal) මෙහෙයුමකදී භාවිතා කළ හැක. මෙයින් පසු, ඒවායේ විකේතනය (TPM_Unseal) කළ හැක්කේ පැටවීමේ ප්‍රති result ලයක් ලෙස PCR අගයන් වෙනස් නොවන්නේ නම් පමණි (එනම්, එක "මනින ලද" සංරචකයක්වත් වෙනස් කර නොමැත).

සත්‍යාපිත ඇරඹුම්

UEFI BIOS වෙනස් කිරීමට කැමති අයට නරකම දෙය වන්නේ සත්‍යාපිත ඇරඹුම් (VB) මාදිලිය වන අතර, සෑම ඇරඹුම් සංරචකයක්ම ඊළඟ එකෙහි අඛණ්ඩතාව සහ සත්‍යතාව ගුප්ත විද්‍යාත්මකව සත්‍යාපනය කරයි. සහ සත්‍යාපන දෝෂයක් සිදුවුවහොත්, (එකක්) සිදු වන්නේ:

  • මිනිත්තු 1 සිට මිනිත්තු 30 දක්වා කාලය අවසන් වීමෙන් වසා දැමීම (පරිශීලකයාට ඔහුගේ පරිගණකය ආරම්භ නොවන්නේ මන්දැයි තේරුම් ගැනීමට කාලය ඇති අතර, හැකි නම්, BIOS යථා තත්වයට පත් කිරීමට උත්සාහ කරයි);
  • ක්ෂණිකව වසා දැමීම (පරිශීලකයාට තේරුම් ගැනීමට කාලය නොමැති වීම, වඩා අඩුවෙන්, ඕනෑම දෙයක්);
  • සන්සුන් ප්‍රකාශනයකින් දිගටම වැඩ කිරීම (ආරක්ෂාව සඳහා කාලය නොමැති විට, වඩාත් වැදගත් දේවල් කිරීමට ඇති නිසා).

ක්‍රියාව තේරීම රඳා පවතින්නේ නිශ්චිත Intel BG වින්‍යාසය (එනම්, ඊනියා බලාත්මක කිරීමේ ප්‍රතිපත්තිය මත), එය පරිගණක වේදිකා වෙළෙන්දා විසින් විශේෂයෙන් නිර්මාණය කරන ලද ගබඩාවක ස්ථිරවම සටහන් කර ඇත - චිප්සෙට් ෆියුස් (FPFs). අපි පසුව මෙම කාරණය වඩාත් විස්තරාත්මකව වාසය කරමු.

වින්‍යාසයට අමතරව, වෙළෙන්දා RSA 2048 යතුරු දෙකක් ජනනය කර දත්ත ව්‍යුහ දෙකක් නිර්මාණය කරයි (රූපයේ පෙන්වා ඇත):

  1. මෙම ප්‍රකාශනයේ SVN (ආරක්ෂක අනුවාද අංකය) අඩංගු වෙළෙන්දාගේ මූල යතුර මැනිෆෙස්ට් (KEYM, OEM Root Key Manifest), මීළඟ ප්‍රකාශනයේ පොදු යතුරේ SHA256 හෑෂ්, RSA පොදු යතුර (එනම් පොදු කොටස විකුණුම්කරුගේ මූල යතුර) මෙම ප්‍රකාශනයේ අත්සන සහ අත්සනම සත්‍යාපනය කිරීමට;
  2. මෙම ප්‍රකාශනයේ SVN, IBB හි SHA256 හැෂ්, මෙම ප්‍රකාශනයේ අත්සන සහ අත්සන සත්‍යාපනය කිරීමේ පොදු යතුර අඩංගු IBB මැනිෆෙස්ට් (IBBM, ආරම්භක ඇරඹුම් වාරණ ප්‍රකාශනය).

OEM Root Key පොදු යතුරේ SHA256 හැෂ් Intel BG වින්‍යාසය මෙන් චිප්සෙට් ෆියුස් (FPFs) තුළ ස්ථිරවම සටහන් වේ. Intel BG වින්‍යාසය මෙම තාක්‍ෂණය ඇතුළත් කිරීම සඳහා සපයන්නේ නම්, මෙතැන් සිට OEM Root Key හි පුද්ගලික කොටසෙහි හිමිකරුට පමණක් මෙම පද්ධතියේ BIOS යාවත්කාලීන කළ හැකිය (එනම්, මෙම මැනිෆෙස්ටස් නැවත ගණනය කිරීමට හැකි වේ), i.e. වෙළෙන්දා.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard

පින්තූරය දෙස බලන විට, මෙතරම් දිගු සත්‍යාපන දාමයක අවශ්‍යතාවය පිළිබඳව වහාම සැක මතු වේ - ඔවුන්ට එක් මැනිෆෙස්ටයක් භාවිතා කළ හැකිව තිබුණි. දේවල් සංකීර්ණ කරන්නේ ඇයි?

ඇත්ත වශයෙන්ම, ඉන්ටෙල් විසින් විකුණුම්කරුට තම නිෂ්පාදනවල විවිධ රේඛා සඳහා විවිධ IBB යතුරු සහ එකක් මූල යතුර ලෙස භාවිතා කිරීමට අවස්ථාව ලබා දෙයි. IBB යතුරේ පුද්ගලික කොටස (දෙවන මැනිෆෙස්ටය අත්සන් කර ඇති) කාන්දු වුවහොත්, සිද්ධිය බලපානු ලබන්නේ එක් නිෂ්පාදන පෙළකට පමණක් වන අතර විකුණුම්කරු නව යුගලයක් උත්පාදනය කර ඊළඟ BIOS යාවත්කාලීනයේ නැවත ගණනය කළ මැනිෆෙස්ට ඇතුළත් වන තෙක් පමණි.

නමුත් මූල යතුර (පළමු මැනිෆෙස්ටය අත්සන් කර ඇති) අවදානමට ලක්වුවහොත්, එය ප්‍රතිස්ථාපනය කිරීමට නොහැකි වනු ඇත; අවලංගු කිරීමේ ක්‍රියා පටිපාටියක් සපයා නැත. මෙම යතුරේ පොදු කොටසෙහි හැෂ් එක වරක් සහ සියල්ලටම FPF වෙත වැඩසටහන්ගත කර ඇත.

Intel Boot Guard Configuration

දැන් අපි Intel BG වින්‍යාසය සහ එය නිර්මාණය කිරීමේ ක්‍රියාවලිය දෙස සමීපව බලමු. ඔබ Intel System Tool Kit (STK) වෙතින් Flash Image Tool උපයෝගීතාවයේ GUI හි අනුරූප ටැබය දෙස බැලුවහොත්, Intel BG වින්‍යාසය තුළ විකුණුම්කරුගේ මූල යතුරේ පොදු කොටසෙහි හැෂ් එකක් ඇතුළත් වන බව ඔබට පෙනෙනු ඇත. නොපැහැදිලි අගයන් ආදිය. Intel BG පැතිකඩ.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard

මෙම පැතිකඩෙහි ව්යුහය:

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
No_FVME
Intel BG තාක්ෂණය අබල කර ඇත

1
VE
VB මාදිලිය සක්‍රීය කර ඇත, කල් ඉකුත්වීමෙන් වසා දැමීම

2
VME
මාතයන් දෙකම සක්‍රීය කර ඇත (VB සහ MB), කල් ඉකුත්වීමෙන් වසා දැමීම

3
VM
පද්ධතිය අක්‍රිය නොකර, මාතයන් දෙකම සක්‍රීය කර ඇත

4
FVE
VB මාදිලිය සබල කර ඇත, වහාම වසා දැමීම

5
FVME
මාතයන් දෙකම සක්රිය කර ඇත, වහාම වසා දැමීම

දැනටමත් සඳහන් කර ඇති පරිදි, Intel BG වින්‍යාසය පද්ධති වෙළෙන්දා විසින් චිප්සෙට් ෆියුස් (FPFs) තුළට එක් වරක් ලිවිය යුතුය - කුඩා (සත්‍යාපනය නොකළ තොරතුරු වලට අනුව, බයිට් 256 ක් පමණි) චිප්සෙට් එක තුළ ඇති තොරතුරු දෘඩාංග ගබඩා කිරීම, එය වැඩසටහන්ගත කළ හැකිය. Intel හි නිෂ්පාදන පහසුකම් වලින් පිටත (ඒකයි හරියටම ක්ෂේත්ර වැඩසටහන්ගත කළ හැකි ෆියුස්).

වින්‍යාසය ගබඩා කිරීම සඳහා එය විශිෂ්ටයි මන්ද:

  • දත්ත ගබඩා කිරීම සඳහා එක් වරක් වැඩසටහන්ගත කළ හැකි ප්‍රදේශයක් ඇත (හරියටම Intel BG වින්‍යාසය ලියා ඇත);
  • එය කියවා වැඩසටහන්ගත කළ හැක්කේ Intel ME හට පමණි.

එබැවින්, නිශ්චිත පද්ධතියක් මත Intel BG තාක්ෂණය සඳහා වින්‍යාසය සැකසීම සඳහා, විකුණුම්කරු නිෂ්පාදනය අතරතුර පහත සඳහන් දේ කරයි:

  1. Flash Image Tool utility භාවිතා කරමින් (Intel STK වෙතින්), එය Intel ME කලාපය තුළ විචල්‍යයන් ආකාරයෙන් ලබා දී ඇති Intel BG වින්‍යාසය සහිත ස්ථිරාංග රූපයක් නිර්මාණය කරයි (FPF සඳහා ඊනියා තාවකාලික දර්පණය);
  2. ෆ්ලෑෂ් ක්‍රමලේඛන මෙවලම් උපයෝගීතාව භාවිතා කරමින් (Intel STK වෙතින්), එය මෙම රූපය පද්ධතියේ SPI ෆ්ලෑෂ් මතකයට ලියන අතර ඊනියා වසා දමයි. නිෂ්පාදන මාදිලිය (මෙම අවස්ථාවේදී, අනුරූප විධානය Intel ME වෙත යවනු ලැබේ).

මෙම මෙහෙයුම්වල ප්‍රතිඵලයක් ලෙස, Intel ME විසින් ME කලාපයේ FPF සඳහා කැඩපතේ සිට FPF වෙත නිශ්චිත අගයන් ලබා දෙනු ඇත, SPI ෆ්ලෑෂ් විස්තරවල විභේදන Intel විසින් නිර්දේශ කරන ලද අගයන් වෙත සකසනු ඇත (ආරම්භයේදී විස්තර කර ඇත. ලිපිය) සහ පද්ධතිය RESET කරන්න.

Intel Boot Guard ක්රියාත්මක කිරීම පිළිබඳ විශ්ලේෂණය

නිශ්චිත උදාහරණයක් භාවිතා කරමින් මෙම තාක්ෂණය ක්‍රියාත්මක කිරීම විශ්ලේෂණය කිරීම සඳහා, අපි Intel BG තාක්ෂණයේ හෝඩුවාවන් සඳහා පහත පද්ධති පරීක්ෂා කළෙමු:

පද්ධතිය
අදහස් දැක්වීම්

Gigabyte GA-H170-D3H
ස්කයිලේක්, ආධාරකයක් තිබේ

Gigabyte GA-Q170-D3H
ස්කයිලේක්, ආධාරකයක් තිබේ

Gigabyte GA-B150-HD3
ස්කයිලේක්, ආධාරකයක් තිබේ

MSI H170A Gaming Pro
ස්කයිලේක්, ආධාරකයක් නැත

ලෙනොවෝ තින්ක්පෑඩ් 460
Skylake, supported, technology enabled

ලෙනොවෝ යෝග 2 Pro
හස්වෙල්, සහය නැත

Lenovo U330p
හස්වෙල්, සහය නැත

"සහාය" යන්නෙන් අපි අදහස් කරන්නේ Intel BG ආරම්භක ACM මොඩියුලය, ඉහත සඳහන් කළ මැනිෆෙස්ටස් සහ BIOS හි අනුරූප කේතය, i.e. විශ්ලේෂණය සඳහා ක්රියාත්මක කිරීම.

උදාහරණයක් විදියට ඔෆිස් එකෙන් ඩවුන්ලෝඩ් කරපු එක ගනිමු. Gigabyte GA-H170-D3H (F4 අනුවාදය) සඳහා SPI ෆ්ලෑෂ් මතකයේ විකුණුම්කරු වෙබ් අඩවියේ රූපය.

Intel CPU ඇරඹුම් ROM

මුලින්ම Intel BG තාක්ෂණය සක්‍රීය කර ඇත්නම් ප්‍රොසෙසරයේ ක්‍රියා ගැන කතා කරමු.

විකේතනය කරන ලද ක්ෂුද්‍ර කේතයේ සාම්පල සොයා ගැනීමට නොහැකි විය, එබැවින් පහත විස්තර කර ඇති ක්‍රියා ක්‍රියාත්මක කරන්නේ කෙසේද (මයික්‍රොකෝඩ් හෝ දෘඪාංග වලින්) විවෘත ප්‍රශ්නයකි. කෙසේ වෙතත්, නවීන ඉන්ටෙල් ප්‍රොසෙසරවලට මෙම ක්‍රියා සිදු කළ හැකි බව සත්‍යයකි.

RESET තත්වයෙන් පිටවීමෙන් පසු, ප්රොසෙසරය (ෆ්ලෑෂ් මතකයේ අන්තර්ගතය දැනටමත් ලිපින අවකාශයට සිතියම්ගත කර ඇත) FIT (ස්ථිර මෘදුකාංග අතුරුමුහුණත් වගුව) වගුව සොයා ගනී. එය සොයා ගැනීම පහසුය; එහි දර්ශකය FFFF FFC0h ලිපිනයෙහි ලියා ඇත.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
සලකා බලන උදාහරණයේ, 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 ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
කිසියම් නොදන්නා හේතුවක් නිසා, මෙම වගු තුළ චෙක්සම් සෑම විටම ගණනය නොකෙරේ (ක්ෂේත්‍රය බිංදුව ඉතිරි වේ).

ඉතිරි ඇතුළත් කිරීම් BIOS ක්‍රියාත්මක කිරීමට පෙර විග්‍රහ කිරීමට/ක්‍රියාත්මක කිරීමට අවශ්‍ය විවිධ ද්විමය වෙත යොමු කරයි, i.e. පැරණි RESET දෛශිකය වෙත මාරු වීමට පෙර (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 ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
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
};

එක් ප්‍රවේශයක් Intel BG ආරම්භක ACM ද්විමය ස්ථානයට යොමු වන බව දැන් පැහැදිලිය. මෙම ද්විමයයේ ශීර්ෂ ව්‍යුහය Intel (ACMs, microcode updates, Intel 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 Boot Guard
ප්‍රොසෙසරය මෙම ද්විමය එහි හැඹිලියට පටවා එය සත්‍යාපනය කර එය ක්‍රියාත්මක කරයි.

Intel BG ආරම්භක ACM

මෙම ACM හි කාර්යය විශ්ලේෂණය කිරීමේ ප්රතිඵලයක් වශයෙන්, එය පහත සඳහන් දේ කරන බව පැහැදිලි විය:

  • Intel BG වින්‍යාසය Intel ME වෙතින් ලබා ගනී, චිප්සෙට් ෆියුස් (FPFs);
  • KEYM සහ IBBM ප්‍රකාශන සොයාගෙන ඒවා සත්‍යාපනය කරයි.

මෙම මැනිෆෙස්ටස් සොයා ගැනීමට, ව්‍යුහ දත්ත දැක්වීමට ප්‍රවේශ වර්ග දෙකක් ඇති FIT වගුව ද ACM භාවිතා කරයි (ඉහත FIT_ENTRY_TYPES බලන්න).

අපි ප්‍රතිපත්ති ප්‍රකාශන දෙස සමීපව බලමු. පළමු මැනිෆෙස්ටයේ ව්‍යුහය තුළ, අපි නොපැහැදිලි නියතයන් කිහිපයක් දකිමු, දෙවන මැනිෆෙස්ටයෙන් පොදු යතුරේ හැෂ් එකක් සහ පොදු OEM මූල යතුර කැදැලි ව්‍යුහයක් ලෙස අත්සන් කර ඇත:

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 ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
OEM Root Key පොදු යතුර සත්‍යාපනය කිරීම සඳහා, අපි SHA256 හැෂ් ෆියුස් භාවිතා කරන බව අපට මතකයි, එය මේ වන විට Intel ME වෙතින් ලැබී ඇත.

අපි දෙවන ප්‍රතිපත්ති ප්‍රකාශනයට යමු. එය ව්යුහයන් තුනකින් සමන්විත වේ:

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 ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
එබැවින්, UEFI BIOS ක්‍රියාත්මක වීමට පෙර පවා, ප්‍රොසෙසරය ACM දියත් කරනු ඇත, එමඟින් SEC සහ PEI අදියර කේතය සමඟ කොටස්වල අන්තර්ගතයේ සත්‍යතාව තහවුරු කරනු ඇත. ඊළඟට, ප්‍රොසෙසරය ACM වෙතින් පිටවී, RESET දෛශිකය අනුගමනය කර BIOS ක්‍රියාත්මක කිරීම ආරම්භ කරයි.

සත්‍යාපිත PEI කොටසෙහි ඉතිරි BIOS (DXE කේතය) පරීක්ෂා කරන මොඩියුලයක් අඩංගු විය යුතුය. මෙම මොඩියුලය දැනටමත් IBV (ස්වාධීන BIOS විකුණුම්කරු) හෝ පද්ධති විකුණුම්කරු විසින්ම සංවර්ධනය වෙමින් පවතී. නිසා ලෙනොවෝ සහ ගිගාබයිට් පද්ධති පමණක් අප සතුව තිබූ අතර ඉන්ටෙල් බීජී සහාය ඇත; අපි මෙම පද්ධති වලින් උපුටා ගත් කේතය දෙස බලමු.

UEFI BIOS මොඩියුලය 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 BIOS මොඩියුලය BootGuardPei

Gigabyte සම්බන්ධයෙන් ගත් කල, එය AMI විසින් සංවර්ධනය කරන ලද BootGuardPei මොඩියුලය {B41956E1-7CA2-42DB-9562-168389F0F066} බවට පත් විය, එබැවින් Intel BG සහාය ඇති ඕනෑම AMI BIOS එකක පවතී.

එහි මෙහෙයුම් ඇල්ගොරිතම තරමක් වෙනස් ය, කෙසේ වෙතත්, එය එකම දෙයකට බැස යයි:

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

Apollo Lake microarchitecture - ASRock J4205-IT සමඟ Intel SoC මත පදනම් වූ නවතම පද්ධතියකින් සොයාගත් Intel Boot Guard හි තවත් ක්‍රියාත්මක කිරීමක් ගැන කෙටියෙන් කතා කරමු.

මෙම අනුවාදය SoC වල පමණක් භාවිතා කරනු ඇත (Kaby Lake processor microarchitecture සහිත නව පද්ධති Intel Boot Guard 1.x දිගටම භාවිතා කරයි), සැලකිය යුතු වෙනස්කම් දැක ඇති Intel SoC වේදිකා සඳහා නව ගෘහ නිර්මාණ විකල්පය අධ්‍යයනය කිරීම මහත් උනන්දුවක් දක්වයි. උදාහරණයක් ලෙස:

  • BIOS සහ Intel ME කලාප (හෝ ඒ වෙනුවට Intel TXE, Intel SoC සඳහා වන පාරිභාෂිතයට අනුව) දැන් එක් IFWI කලාපයකි;
  • Intel BG වේදිකාව මත සක්‍රීය කර තිබුණද, FIT, KEYM, IBBM වැනි ව්‍යුහයන් ෆ්ලෑෂ් මතකයේ දක්නට නොලැබුණි;
  • TXE සහ ISH cores (x86) වලට අමතරව, චිප්සෙට් එකට තුන්වන හරයක් එකතු කරන ලදී (ARC නැවතත්, මාර්ගයෙන්) - PMC (බල කළමනාකරණ පාලක), බල උප පද්ධතියේ ක්‍රියාකාරිත්වය සහතික කිරීම සහ කාර්ය සාධනය අධීක්ෂණය කිරීම හා සම්බන්ධ වේ.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
නව IFWI කලාපයේ අන්තර්ගතය පහත මොඩියුල සමූහයකි:

නැඹුරුව
නම
විස්තර

0000 2000 පැය
SMIP
විකුණුම්කරු විසින් අත්සන් කරන ලද නිශ්චිත වේදිකා වින්‍යාසයක්

0000 6000 පැය
RBEP
Intel TXE ස්ථිරාංග කේත කොටස, x86, අත්සන් කරන ලද Intel

0001 0000 පැය
පීඑම්සීපී
Intel PMC ස්ථිරාංග කේත අංශය, ARC, අත්සන් කරන ලද Intel

0002 0000 පැය
FTPR
Intel TXE ස්ථිරාංග කේත කොටස, x86, අත්සන් කරන ලද Intel

0007 B000h
UCOD
CPU සඳහා මයික්‍රොකෝඩ් යාවත්කාලීන කිරීම්, Intel විසින් අත්සන් කර ඇත

0008 0000 පැය
IBBP
UEFI BIOS, SEC/PEI අදියර, x86, වෙළෙන්දා විසින් අත්සන් කර ඇත

0021 8000 පැය
ISHC
Intel ISH ස්ථිරාංග කේත කොටස, x86, වෙළෙන්දා විසින් අත්සන් කර ඇත

0025 8000 පැය
NFTP
Intel TXE ස්ථිරාංග කේත කොටස, x86, අත්සන් කරන ලද Intel

0036 1000 පැය
IUNP
නොදනී

0038 1000 පැය
OBBP
UEFI BIOS, DXE අදියර, x86, අත්සන් නොකළ

TXE ස්ථිරාංග විශ්ලේෂණය කිරීමේදී, RESET කිරීමෙන් පසුව, CPU (FIT, ACM, RESET දෛශිකය ...) සඳහා ලිපින අවකාශයේ මූලික අන්තර්ගතයන් සකස් කරන තෙක් TXE ප්‍රොසෙසරය මෙම තත්වයේ තබා ගන්නා බව පැහැදිලි විය. එපමනක් නොව, TXE මෙම දත්ත එහි SRAM හි ස්ථානගත කරයි, ඉන් පසුව එය තාවකාලිකව ප්‍රොසෙසරයට එහි ප්‍රවේශය ලබා දී එය RESET වෙතින් "මුදා හරියි".

රූට්කිට් වලින් ආරක්ෂා වීම

හොඳයි, දැන් අපි "උණුසුම්" දේවල් වෙත යමු. බොහෝ පද්ධතිවල, SPI ෆ්ලෑෂ් ඩිස්ක්‍රිප්ටරවල SPI ෆ්ලෑෂ් මතකයේ ප්‍රදේශ වෙත ප්‍රවේශ වීමට අවසර ඇති බව අපි වරක් සොයා ගත්තෙමු, එවිට මෙම මතකයේ සියලුම පරිශීලකයින්ට ඕනෑම කලාපයක් ලිවීමට සහ කියවීමට හැකිය. එම. කොහෙත්ම නැහැ.

MEinfo උපයෝගීතාව (Intel STK වෙතින්) පරීක්ෂා කිරීමෙන් පසුව, මෙම පද්ධතිවල නිෂ්පාදන මාදිලිය වසා නොමැති බව අපි දුටුවෙමු, එබැවින් චිප්සෙට් ෆියුස් (FPFs) නිර්වචනය නොකළ තත්වයක පවතී. ඔව්, එවැනි අවස්ථාවලදී Intel BG සක්‍රිය හෝ අක්‍රිය කර නැත.

අපි කතා කරන්නේ පහත සඳහන් පද්ධති ගැන ය (Intel BG සම්බන්ධයෙන් සහ ලිපියේ පසුව විස්තර කෙරෙන දේ සම්බන්ධයෙන්, අපි Haswell ප්‍රොසෙසර ක්ෂුද්‍ර ගෘහ නිර්මාණ ශිල්පය සහ ඉහළ පද්ධති ගැන කතා කරමු):

  • සියලුම ගිගාබයිට් නිෂ්පාදන;
  • සියලුම MSI නිෂ්පාදන;
  • Lenovo ලැප්ටොප් මාදිලි 21ක් සහ Lenovo servers මාදිලි 4ක්.

ඇත්ත වශයෙන්ම, අපි මෙම සොයාගැනීම් මෙම විකුණුම්කරුවන්ට මෙන්ම Intel වෙත වාර්තා කළෙමු.

ප්රමාණවත් ප්රතිචාරයක් පැමිණියේය ලෙනොවෝගැටලුව හඳුනාගත් අය සහ පැච් එකක් නිකුත් කළේය.

ගිගාබයිට් ඔවුන් අවදානම පිළිබඳ තොරතුරු පිළිගන්නා බවක් පෙනෙන්නට තිබුණත්, කිසිම ආකාරයකින් අදහස් දැක්වූයේ නැත.

සමඟ සන්නිවේදනය MSI ඔබගේ පොදු PGP යතුර යැවීමට (ඔවුන්ට සංකේතාත්මක ආකාරයෙන් ආරක්ෂක උපදේශනයක් යැවීමට) අපගේ ඉල්ලීම මත සම්පූර්ණයෙන්ම ඇනහිට ඇත. ඔවුන් ප්‍රකාශ කළේ ඔවුන් "දෘඪාංග නිෂ්පාදකයෙකු වන අතර PGP යතුරු නිෂ්පාදනය නොකරන" බවයි.

නමුත් අපි කාරණයට යමු. ෆියුස් නිශ්චිතව දක්වා නොමැති තත්වයක පවතින බැවින්, පරිශීලකයාට (හෝ ප්‍රහාරකයාට) ඒවා ස්වාධීනව වැඩසටහන්ගත කළ හැක (වඩාත්ම දුෂ්කර දෙය වන්නේ Intel STK සොයා ගන්න) මෙය සිදු කිරීම සඳහා, ඔබ පහත පියවර සම්පූර්ණ කළ යුතුය.

1. Windows OS වෙත ආරම්භ කරන්න (සාමාන්‍යයෙන්, ඔබ කැමති OS සඳහා Intel STK හි ප්‍රතිසමයක් සංවර්ධනය කරන්නේ නම්, පහත විස්තර කර ඇති ක්‍රියා ලිනක්ස් යටතේද කළ හැකිය). MEinfo උපයෝගීතාව භාවිතා කරමින්, මෙම පද්ධතියේ ෆියුස් වැඩසටහන්ගත කර නොමැති බවට වග බලා ගන්න.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
2. ෆ්ලෑෂ් ක්‍රමලේඛන මෙවලම භාවිතයෙන් ෆ්ලෑෂ් මතකයේ අන්තර්ගතය කියවන්න.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
3. ඕනෑම UEFI BIOS සංස්කරණ මෙවලමක් භාවිතයෙන් කියවීමේ රූපය විවෘත කරන්න, අවශ්‍ය වෙනස්කම් කරන්න (උදාහරණයක් ලෙස rootkit හඳුන්වා දෙන්න), ME කලාපය තුළ පවතින KEYM සහ IBBM ව්‍යුහයන් සාදන්න/සංස්කරණය කරන්න.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
පින්තූරය RSA යතුරේ පොදු කොටස උද්දීපනය කරයි, එහි හැෂ් Intel BG වින්‍යාසයේ ඉතිරි කොටස් සමඟ චිප්සෙට් ෆියුස් වෙත වැඩසටහන්ගත කෙරේ.

4. ෆ්ලෑෂ් රූප මෙවලම භාවිතයෙන්, නව ස්ථිරාංග රූපයක් සාදන්න (Intel BG වින්‍යාසය සැකසීමෙන්).

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
5. ෆ්ලෑෂ් ක්‍රමලේඛන මෙවලම භාවිතයෙන් මතකය ෆ්ලෑෂ් කිරීමට නව රූපයක් ලියන්න, සහ ME කලාපයේ දැන් Intel BG වින්‍යාසය අඩංගු බව MEinfo භාවිතයෙන් තහවුරු කරන්න.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
6. නිෂ්පාදන මාදිලිය වසා දැමීමට ෆ්ලෑෂ් ක්‍රමලේඛන මෙවලම භාවිතා කරන්න.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
7. පද්ධතිය නැවත ආරම්භ වනු ඇත, පසුව ඔබට FPFs දැන් වැඩසටහන්ගත කර ඇති බව තහවුරු කර ගැනීමට MEinfo භාවිතා කළ හැක.

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
මෙම ක්රියාවන් навсегда මෙම පද්ධතිය මත Intel BG සබල කරන්න. ක්‍රියාව පසුගමනය කළ නොහැක, එනම්:

  • මෙම පද්ධතියේ UEFI BIOS යාවත්කාලීන කිරීමට හැකි වන්නේ මූල යතුරේ පුද්ගලික කොටසෙහි හිමිකරුට (එනම් Intel BG සක්‍රීය කළ තැනැත්තාට) පමණි;
  • ඔබ මෙම පද්ධතියට මුල් ස්ථිරාංග ආපසු ලබා දෙන්නේ නම්, උදාහරණයක් ලෙස, ක්‍රමලේඛකයෙකු භාවිතා කරමින්, එය ක්‍රියාත්මක නොවේ (සත්‍යාපන දෝෂයක් ඇති විට බලාත්මක කිරීමේ ප්‍රතිපත්තියේ ප්‍රතිවිපාකයක්);
  • එවැනි UEFI BIOS ඉවත් කිරීම සඳහා, ඔබ "පිරිසිදු" එකක් සමඟ වැඩසටහන්ගත FPF සමඟ චිප්සෙට් ආදේශ කළ යුතුය (එනම්, ඔබට මෝටර් රථයක මිල අධෝරක්ත පෑස්සුම් මධ්‍යස්ථානයකට ප්‍රවේශය තිබේ නම් චිප්සෙට් එක නැවත විකුණන්න, නැතහොත් මවු පුවරුව ප්‍රතිස්ථාපනය කරන්න. )

එවැනි රූට්කිට් එකකට කළ හැකි දේ තේරුම් ගැනීමට, UEFI BIOS පරිසරය තුළ ඔබේ කේතය ක්‍රියාත්මක කිරීමට හැකි වන්නේ කුමක් දැයි ඔබ ඇගයීමට ලක් කළ යුතුය. අපි කියමු, වඩාත්ම වරප්රසාදිත ප්රොසෙසර මාදිලියේ - SMM. එවැනි රූට්කිට් එකකට පහත ගුණාංග තිබිය හැක:

  • OS සමඟ සමාන්තරව ක්‍රියාත්මක කර ඇත (ඔබට SMI බාධාවක් උත්පාදනය කිරීමට සැකසුම් වින්‍යාසගත කළ හැක, එය ටයිමරයක් මඟින් ක්‍රියාරම්භ කරනු ඇත);
  • SMM මාදිලියේ සිටීමේ සියලු වාසි ඇත (RAM සහ දෘඪාංග සම්පත් වල අන්තර්ගතයට සම්පූර්ණ ප්රවේශය, OS වෙතින් රහස්යභාවය);
  • SMM ආකාරයෙන් දියත් කළ විට rootkit හි වැඩසටහන් කේතය සංකේතනය කර විකේතනය කළ හැක. SMM මාදිලියේ පමණක් පවතින ඕනෑම දත්තයක් සංකේතාංකන යතුරක් ලෙස භාවිතා කළ හැක. උදාහරණයක් ලෙස, SMRAM හි ලිපින කට්ටලයකින් හැෂ් එකක්. මෙම යතුර ලබා ගැනීමට, ඔබ SMM වෙත පිවිසීමට අවශ්ය වනු ඇත. ඒ වගේම මේක ක්‍රම දෙකකින් කරන්න පුළුවන්. SMM කේතයේ RCE සොයාගෙන එය ප්‍රයෝජනයට ගන්න, නැතහොත් ඔබේම SMM මොඩියුලය BIOS වෙත එක් කරන්න, එය අප Boot Guard සක්‍රීය කළ බැවින් එය කළ නොහැක.

මේ අනුව, මෙම අවදානම ප්‍රහාරකයෙකුට ඉඩ දෙන්නේ:

  • පද්ධතිය තුළ නොදන්නා අරමුණක සැඟවුණු, මකා දැමිය නොහැකි rootkit සාදන්න;
  • Intel SoC තුළ ඇති එක් චිප්සෙට් හරයක් මත, එනම් Intel ISH මත ඔබේ කේතය ක්‍රියාත්මක කරන්න (පින්තූරය දෙස හොඳින් බලන්න).

Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
Schrödinger ගේ විශ්වාසනීය බාගත කිරීම. Intel Boot Guard
Intel ISH උප පද්ධතියේ හැකියාවන් තවමත් ගවේෂණය කර නොමැති වුවද, එය Intel ME සඳහා සිත්ගන්නා ප්‍රහාරක දෛශිකයක් ලෙස පෙනේ.

සොයා ගැනීම්

  1. අධ්‍යයනයෙන් Intel Boot Guard තාක්ෂණයේ ක්‍රියාකාරිත්වය පිළිබඳ තාක්ෂණික විස්තරයක් ලබා ගැනීමට හැකි විය. නොපැහැදිලි ආකෘතිය හරහා Intel හි ආරක්ෂාව පිළිබඳ රහස් කිහිපයක් අඩු කරන්න.
  2. පද්ධතිය තුළ අස්ථාපනය කළ හැකි රූට්කිට් එකක් සෑදීමට ඔබට ඉඩ සලසන ප්‍රහාරක දර්ශනයක් ඉදිරිපත් කෙරේ.
  3. නවීන ඉන්ටෙල් ප්‍රොසෙසර BIOS ක්‍රියාත්මක වීමට පෙර පවා හිමිකාර කේත රාශියක් ක්‍රියාත්මක කිරීමේ හැකියාව ඇති බව අපි දුටුවෙමු.
  4. Intel 64 ගෘහනිර්මාණ ශිල්පය සහිත වේදිකා නිදහස් මෘදුකාංග ධාවනය සඳහා අඩු වැඩි වෙමින් පවතී: දෘඪාංග සත්‍යාපනය, වැඩිවන හිමිකාර තාක්‍ෂණ සහ උප පද්ධති ගණන (SoC චිප්සෙට්හි හර තුනක්: x86 ME, x86 ISH සහ ARC PMC).

අවම කිරීම්

හිතාමතාම නිෂ්පාදන මාදිලිය විවෘතව තබන විකුණුම්කරුවන් එය වසා දැමීමට වග බලා ගත යුතුය. මෙතෙක් ඔවුන්ගේ ඇස් පමණක් වසා ඇති අතර නව Kaby Lake පද්ධති මෙය පෙන්නුම් කරයි.

-closemnf පරාමිතිය සමඟ ෆ්ලෑෂ් ක්‍රමලේඛන මෙවලම ක්‍රියාත්මක කිරීමෙන් පරිශීලකයින්ට ඔවුන්ගේ පද්ධති මත Intel BG අක්‍රිය කළ හැකිය (විස්තර කරන ලද අවදානමට ගොදුරු විය හැක). පළමුව, ME කලාපයේ Intel BG වින්‍යාසය FPF වල ක්‍රමලේඛනය කිරීමෙන් පසු මෙම තාක්ෂණය අක්‍රිය කිරීම සඳහා සපයන බවට (MEinfo භාවිතා කරමින්) ඔබ සහතික විය යුතුය.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න