Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
ကျွန်ုပ်တို့သည် အနိမ့်ဆုံးအဆင့်သို့ ထပ်မံသွားရန် အဆိုပြုပြီး x86-သဟဇာတရှိသော ကွန်ပျူတာပလပ်ဖောင်းများအတွက် firmware ၏ လုံခြုံရေးအကြောင်း ဆွေးနွေးရန် အဆိုပြုပါသည်။ ယခုတစ်ကြိမ်၊ လေ့လာမှု၏ အဓိကပါဝင်ပစ္စည်းမှာ Intel Boot Guard ( Intel BIOS Guard နှင့် မရောထွေးစေရပါ။) - ကွန်ပျူတာစနစ်ရောင်းချသူသည် ထုတ်လုပ်မှုအဆင့်တွင် အပြီးအပိုင်ဖွင့်နိုင် သို့မဟုတ် ပိတ်နိုင်သည့် ဟာ့ဒ်ဝဲထောက်ခံသည့် ယုံကြည်ရသော BIOS boot နည်းပညာဖြစ်သည်။ ကောင်းပြီ၊ သုတေသနစာရွက်သည် ကျွန်ုပ်တို့နှင့်ရင်းနှီးပြီးသားဖြစ်သည်- ပြောင်းပြန်အင်ဂျင်နီယာကိုအသုံးပြု၍ ဤနည်းပညာ၏အကောင်အထည်ဖော်မှုကို ပါးပါးလှီးဖြတ်ပါ၊ ၎င်း၏ဗိသုကာပညာကိုဖော်ပြပါ၊ စာရွက်စာတမ်းမရှိသောအသေးစိတ်အချက်အလက်များဖြင့်ဖြည့်စွက်ပါ၊ ၎င်းကိုအရသာနှင့်ရောနှောရန် တိုက်ခိုက်ရေး vector များနှင့်အတူရာသီချိန်ပါ။ ရောင်းချသူအများအပြားထုတ်လုပ်ရာတွင် နှစ်အတော်ကြာအောင် ပုံတူပွားထားသည့် bug သည် အလားအလာရှိသော တိုက်ခိုက်သူအား ဖယ်ရှား၍မရသော စနစ်အတွင်းရှိ ဝှက်ထားသော rootkit တစ်ခုကို ဖန်တီးရန် ဤနည်းပညာကို အသုံးပြုရန် အလားအလာရှိသော တိုက်ခိုက်သူအား ခွင့်ပြုလိုက်သည်နှင့် (ပရိုဂရမ်မာတစ်ဦးပင်) အကြောင်းကို လောင်စာထည့်လိုက်ကြပါစို့။

စကားမစပ်၊ ဆောင်းပါးသည် ညီလာခံမှ “On Guardkits: Intel BootGuard” အစီရင်ခံစာများအပေါ် အခြေခံထားသည်။ ZeroNights 2016 ၂၉ ကြိမ်မြောက် အစည်းအဝေး DefCon ရုရှား (တင်ဆက်မှုနှစ်ခုလုံး ဒီမှာ).

Intel 64 ဗိသုကာနှင့်ကွန်ပြူတာပလပ်ဖောင်းအတွက် Firmware

ပထမဦးစွာ၊ မေးခွန်းကိုဖြေကြပါစို့- Intel 64 ဗိသုကာနှင့် ခေတ်မီကွန်ပြူတာပလပ်ဖောင်းတစ်ခု၏ Firmware သည် အဘယ်နည်း။ ဟုတ်ပါတယ်, UEFI BIOS ။ သို့သော် ထိုသို့သောအဖြေသည် တိကျမည်မဟုတ်ပါ။ ဤဗိသုကာ၏ ဒက်စတော့ (လက်တော့ပ်) ဗားရှင်းကို ပြသထားသည့် ရုပ်ပုံကို ကြည့်ကြပါစို့။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
အခြေခံကတော့ link ပါ

  • ပရိုဆက်ဆာ (CPU၊ Central Processing Unit) တွင် ပင်မ cores အပြင်၊ တပ်ဆင်ထားသော ဂရပ်ဖစ် core (မော်ဒယ်အားလုံးတွင်မဟုတ်) နှင့် memory controller (IMC၊ Integrated Memory Controller);
  • အရံကိရိယာများနှင့် အပြန်အလှန်ဆက်သွယ်ရန်နှင့် စနစ်ခွဲများကို စီမံခန့်ခွဲရန်အတွက် အမျိုးမျိုးသော ထိန်းချုပ်ကိရိယာများ ပါဝင်သော Chipset (PCH၊ Platform Controller Hub)။ ၎င်းတို့အနက်မှ နာမည်ကြီး Intel Management Engine (ME) သည် Firmware (Intel ME Firmware) ပါရှိသည်။

အထက်ဖော်ပြပါများအပြင် လက်ပ်တော့များသည် ပါဝါစနစ်ခွဲ၊ touchpad၊ ကီးဘုတ်၊ Fn ခလုတ်များ (စခရင်တောက်ပမှု၊ အသံအတိုးအကျယ်ကို လုပ်ဆောင်ရန် တာဝန်ရှိသော ACPI EC၊ Advanced Control နှင့် Power Interface Embedded Controller) လိုအပ်ပါသည်။ ကီးဘုတ်နောက်ခံအလင်း စသည်တို့) နှင့် အခြားအရာများ။ ၎င်းတွင်၎င်း၏ကိုယ်ပိုင် firmware လည်းရှိသည်။

ထို့ကြောင့် အထက်ဖော်ပြပါ Firmware ၏ စုစုပေါင်းသည် အများသုံး SPI flash memory တွင် သိမ်းဆည်းထားသည့် ကွန်ပျူတာ platform (system firmware) ၏ firmware ဖြစ်သည်။ ဤ Memory ၏အသုံးပြုသူများသည် ၎င်းသည် မည်သည့်နေရာတွင်ရှိသည်ကို မရှုပ်ထွေးစေရန်၊ ဤ memory ၏အကြောင်းအရာများကို အောက်ပါဒေသများ (ပုံတွင်ပြထားသည့်အတိုင်း) ခွဲခြားထားပါသည်။

  • UEFI BIOS;
  • ACPI EC ဖိုင်းဝဲ (Skylake ပရိုဆက်ဆာ မိုက်ခရိုဗိသုကာ (2015) နှင့်အတူ သီးခြားဒေသတစ်ခု ပေါ်လာသည်)၊ သို့သော် ၎င်း၏အသုံးပြုမှု၏နမူနာများကို ကျွန်ုပ်တို့မတွေ့ရသေးပါ၊ ထို့ကြောင့် built-in controller ၏ firmware ကို UEFI BIOS တွင် ထည့်သွင်းထားဆဲဖြစ်သည်) ;
  • Intel ME ဖိုင်းဝဲ;
  • Built-in GbE (Gigabit Ethernet) ကွန်ရက်အဒက်တာ၏ဖွဲ့စည်းပုံ (MAC လိပ်စာ၊ စသည်ဖြင့်)၊
  • Flash Descriptors များသည် အခြားဒေသများသို့ ညွှန်ပြချက်များ ပါ၀င်သည့် flash memory ၏ အဓိက ဧရိယာဖြစ်ပြီး ၎င်းတို့ကို ဝင်ရောက်အသုံးပြုခွင့်များ ပါဝင်သည်။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
ဤမမ်မိုရီကိုဝင်ရောက်အသုံးပြုသည့် chipset တွင်တည်ဆောက်ထားသော SPI ဘတ်စ်ကားမာစတာသည် (သတ်မှတ်ထားသောခွင့်ပြုချက်များနှင့်အညီ) ဧရိယာများသို့ဝင်ရောက်ခွင့်ကိုကန့်သတ်ရန်တာဝန်ရှိသည်။ ခွင့်ပြုချက်များကို Intel ၏ အကြံပြုထားသော (လုံခြုံရေးအကြောင်းပြချက်များအတွက်) တန်ဖိုးများအဖြစ် သတ်မှတ်ပါက၊ SPI flash အသုံးပြုသူတိုင်းသည် ၎င်းတို့၏ ဒေသအတွက်သာ (ဖတ်ရှု/ရေး) အပြည့်အဝ ဝင်ရောက်ခွင့်ရှိသည်။ ကျန်သည်များကို ဖတ်ရန်သာ သို့မဟုတ် လက်လှမ်းမမီနိုင်ပါ။ လူသိများသောအချက်တစ်ခု- စနစ်များစွာတွင် CPU သည် UEFI BIOS နှင့် GbE သို့ အပြည့်အဝဝင်ရောက်ခွင့်ရှိပြီး flash ဖော်ပြချက်များကိုသာဖတ်ရှုနိုင်ပြီး Intel ME ဒေသသို့ လုံးဝဝင်ရောက်ခွင့်မရှိပါ။ အဘယ်ကြောင့်နည်း။ အကြံပြုထားသည်ကို မလိုအပ်ပါ။ ဆောင်းပါးမှာ အသေးစိတ်ကို နောက်မှ ပြောပြပါမယ်။

ကွန်ပြူတာ ပလပ်ဖောင်း firmware ကို ပြုပြင်မွမ်းမံခြင်းမှ ကာကွယ်ရန် ယန္တရားများ

သေချာသည်မှာ၊ ကွန်ပျူတာပလက်ဖောင်းတစ်ခု၏ firmware သည် ဖြစ်နိုင်ချေရှိသော အပေးအယူလုပ်ခြင်းမှ ကာကွယ်သင့်သည်၊ ၎င်းတွင် ဖြစ်နိုင်ချေရှိသော တိုက်ခိုက်သူအား ၎င်းတွင် ခြေကုပ်ယူနိုင်စေမည့် (ရှင်သန်နိုင်သော OS အပ်ဒိတ်များ/ပြန်လည်ထည့်သွင်းမှုများ)၊ ၎င်းတို့၏ကုဒ်ကို အထူးအခွင့်ထူးခံမုဒ်များတွင် လုပ်ဆောင်ခြင်း စသည်ဖြင့် လုပ်ဆောင်နိုင်မည်ဖြစ်သည်။ SPI flash memory ဒေသများသို့ ဝင်ရောက်ခွင့်ကို ကန့်သတ်ခြင်းသည် မလုံလောက်ပါ။ ထို့ကြောင့်၊ firmware ကိုပြုပြင်မွမ်းမံခြင်းမှကာကွယ်ရန်၊ လည်ပတ်မှုပတ်ဝန်းကျင်တစ်ခုစီအတွက် သီးခြားယန္တရားအမျိုးမျိုးကိုအသုံးပြုသည်။

ထို့ကြောင့်၊ Intel ME firmware သည် သမာဓိနှင့် စစ်မှန်မှုကို ထိန်းချုပ်ရန် လက်မှတ်ရေးထိုးထားပြီး ME UMA memory ထဲသို့ တင်တိုင်း ME controller မှ စစ်ဆေးပါသည်။ ဤစိစစ်ရေးလုပ်ငန်းစဉ်ကို ကျွန်ုပ်တို့မှ ဆွေးနွေးထားပြီးဖြစ်သည်။ ဆောင်းပါးများIntel ME စနစ်ခွဲအတွက် ရည်ရွယ်ပါသည်။

စည်းမျဉ်းအရ ACPI EC firmware သည် သမာဓိရှိရန်အတွက်သာ စစ်ဆေးထားသည်။ သို့သော်၊ ဤဒွိစုံကို UEFI BIOS တွင်ထည့်သွင်းထားသောကြောင့်၊ ၎င်းသည် UEFI BIOS အသုံးပြုသည့် တူညီသောကာကွယ်မှုယန္တရားများကို အမြဲတမ်းနီးပါးလိုက်နာသည်။ သူတို့အကြောင်း ပြောကြည့်ရအောင်။

ဤယန္တရားများကို အမျိုးအစား နှစ်မျိုးခွဲနိုင်သည်။

UEFI BIOS ဒေသတွင် အကာအကွယ်ရေးပါ။

  1. SPI flash memory ၏ အကြောင်းအရာများကို ရေး-အကာအကွယ် jumper ဖြင့် ရုပ်ပိုင်းဆိုင်ရာ အကာအကွယ်၊
  2. PRx chipset မှတ်ပုံတင်မှုများကို အသုံးပြု၍ CPU လိပ်စာနေရာရှိ UEFI BIOS ဒေသ၏ ပရောဂျက်ကို ကာကွယ်ခြင်း၊
  3. Chipset မှတ်ပုံတင်များတွင် BIOS_WE/BLE နှင့် SMM_BWP ဘစ်များကို သတ်မှတ်ခြင်းဖြင့် သက်ဆိုင်ရာ SMI နှောင့်ယှက်မှုကို ထုတ်ပေးခြင်းဖြင့် UEFI BIOS ဒေသသို့ စာရေးရန် ကြိုးပမ်းမှုများကို ပိတ်ဆို့ခြင်း၊
  4. ဤကာကွယ်မှု၏ နောက်ထပ်အဆင့်မြင့်ဗားရှင်းမှာ Intel BIOS Guard (PFAT) ဖြစ်သည်။

ဤယန္တရားများအပြင်၊ ရောင်းချသူများသည် ၎င်းတို့၏ကိုယ်ပိုင်လုံခြုံရေးအစီအမံများကို တီထွင်ဖန်တီးနိုင်သည် (ဥပမာ၊ UEFI BIOS အပ်ဒိတ်များနှင့် ဆေးတောင့်များကို လက်မှတ်ထိုးခြင်း)။

တိကျသောစနစ်တစ်ခုတွင် (ရောင်းချသူအပေါ်မူတည်၍) အထက်ဖော်ပြပါ အကာအကွယ်ယန္တရားအားလုံးကို အသုံးချနိုင်မည်မဟုတ်ဘဲ ၎င်းတို့ကို လုံးဝမအသုံးချနိုင် သို့မဟုတ် ၎င်းတို့ကို ထိခိုက်လွယ်သောပုံစံဖြင့် အကောင်အထည်ဖော်နိုင်သည်ကို သတိပြုရန် အရေးကြီးပါသည်။ ဤယန္တရားများအကြောင်းနှင့် ၎င်းတို့၏ အကောင်အထည်ဖော်မှုဆိုင်ရာ အခြေအနေများကို သင်ပိုမိုဖတ်ရှုနိုင်ပါသည်။ ဤဆောင်းပါးတွင်. စိတ်ဝင်စားသူများအတွက်၊ UEFI BIOS လုံခြုံရေးဆိုင်ရာ ဆောင်းပါးစီးရီးတစ်ခုလုံးကို ဖတ်ရန် အကြံပြုအပ်ပါသည်။ CodeRush.

UEFI BIOS စစ်မှန်ကြောင်းအထောက်အထားပြခြင်း။

ယုံကြည်စိတ်ချရသော boot နည်းပညာများအကြောင်းပြောသောအခါတွင်၊ ပထမဆုံးသတိရသောအရာမှာ Secure Boot ဖြစ်သည်။ သို့သော်၊ ဗိသုကာအရ၎င်းသည် UEFI BIOS (ဒရိုက်ဗာများ၊ bootloaders စသည်ဖြင့်) ပြင်ပအစိတ်အပိုင်းများ၏စစ်မှန်မှုကိုစစ်ဆေးရန်ဒီဇိုင်းပြုလုပ်ထားပြီး firmware ကိုယ်တိုင်မဟုတ်ပါ။

ထို့ကြောင့် Intel၊ သည် Bay Trail microarchitecture (2012) ဖြင့် SoCs တွင် အထက်ဖော်ပြပါ Secure Boot နည်းပညာနှင့် တူညီခြင်းမရှိသည့် ဟာ့ဒ်ဝဲ မသန်စွမ်းသော Secure Boot (Verified Boot) ကို အကောင်အထည်ဖော်ခဲ့သည်။ နောက်ပိုင်း (2013) တွင် Haswell microarchitecture ဖြင့် desktops အတွက် Intel Boot Guard အမည်ဖြင့် ဤယန္တရားအား မြှင့်တင်ပြီး ထုတ်ဝေခဲ့သည်။

Intel Boot Guard ကို မဖော်ပြမီ Intel 64 ဗိသုကာလက်ရာရှိ လုပ်ဆောင်မှုပတ်ဝန်းကျင်များကို ကြည့်ရှုကြပါစို့

Intel CPU ပါ

Cap က ပရိုဆက်ဆာသည် Intel 64 ဗိသုကာလက်ရာတွင် အဓိကလုပ်ဆောင်သည့်ပတ်ဝန်းကျင်ဖြစ်ကြောင်း အကြံပြုထားသည်။ ၎င်းသည် အဘယ်ကြောင့်ယုံကြည်မှု၏အရင်းခံဖြစ်သနည်း။ သူ့အား ထိုသို့ဖြစ်စေသောအရာမှာ အောက်ပါဒြပ်စင်များကို ပိုင်ဆိုင်ထားခြင်းဖြစ်သည် ။

  • မိုက်ခရိုကုဒ် ROM သည် မိုက်ခရိုကုဒ်ကို သိမ်းဆည်းရန်အတွက် မတည်ငြိမ်သော၊ ပြန်လည်ရေးမရသော မှတ်ဉာဏ်တစ်ခုဖြစ်သည်။ မိုက်ခရိုကုဒ်သည် အရိုးရှင်းဆုံး ညွှန်ကြားချက်များကို အသုံးပြု၍ ပရိုဆက်ဆာ အမိန့်ပေးစနစ်၏ အကောင်အထည်ဖော်မှုဖြစ်သည်ဟု ယုံကြည်သည်။ မိုက်ခရိုကုဒ်တွင်လည်း ဖြစ်ပေါ်ပါသည်။ ပိုးကောင်များ. ထို့ကြောင့် BIOS တွင် microcode updates များပါရှိသော binaries ကိုသင်တွေ့နိုင်သည် ( ROM ကို overwrite လုပ်၍မရသောကြောင့် boot လုပ်နေစဉ်အတွင်း ထပ်လောင်းထားသည်)။ ဤ binaries များ၏ အကြောင်းအရာများကို ကုဒ်ဝှက်ထားပြီး၊ ခွဲခြမ်းစိတ်ဖြာမှုကို အလွန်ရှုပ်ထွေးစေသည် (ထို့ကြောင့်၊ မိုက်ခရိုကုဒ်၏ တိကျသောအကြောင်းအရာကို ၎င်းကို တီထွင်သူများသာ သိရှိသည်)၊ သမာဓိနှင့် စစ်မှန်မှုကို ထိန်းချုပ်ရန် လက်မှတ်ရေးထိုးခဲ့သည်။
  • မိုက်ခရိုကုဒ်မွမ်းမံမှုများ၏ အကြောင်းအရာများကို ကုဒ်ဝှက်ခြင်းအတွက် AES သော့၊
  • မိုက်ခရိုကုဒ်အပ်ဒိတ်များ၏ လက်မှတ်ကို အတည်ပြုရန် အသုံးပြုသည့် RSA အများသူငှာသော့၏ hash;
  • CPU သည် BIOS လုပ်ဆောင်မှု (hello microcode) မတိုင်မီ သို့မဟုတ် ၎င်း၏လုပ်ဆောင်မှုအတွင်း အချို့သောဖြစ်ရပ်များ ဖြစ်ပေါ်လာသည့်အခါ CPU မှ စတင်နိုင်သည့် Intel-developed ACM (Authenticated Code Module) ကုဒ်မော်ဂျူးများ၏ လက်မှတ်ကို အတည်ပြုသည့် RSA အများသူငှာသော့ဟက်ရှ်။

Intel ME

ကျွန်ုပ်တို့၏ဘလော့ဂ်သည် ဤစနစ်ခွဲအတွက် ရည်ရွယ်ပါသည်။ နှစ် ဆောင်းပါးများ. ဤလုပ်ဆောင်နိုင်သောပတ်ဝန်းကျင်သည် chipset တွင်တည်ဆောက်ထားသော microcontroller ပေါ်တွင်အခြေခံပြီး system တွင်အဝှက်ဆုံးနှင့်အခွင့်ထူးခံဖြစ်ကြောင်းကျွန်ုပ်တို့သတိရကြပါစို့။

၎င်း၏လျှို့ဝှက်ထားသော်လည်း၊ Intel ME သည် ၎င်းတွင်- ပါသောကြောင့် ယုံကြည်စိတ်ချရမှု၏အမြစ်တစ်ခုလည်းဖြစ်သည်။

  • ME ROM - မတည်ငြိမ်သော၊ ပြန်လည်ရေးမရသော မှတ်ဉာဏ် (အပ်ဒိတ်နည်းလမ်းကို ပံ့ပိုးပေးခြင်းမရှိပါ)၊ Intel ME ဖိုင်းဝဲ၏ လက်မှတ်ကို စစ်ဆေးပေးသည့် RSA အများသူငှာသော့၏ SHA256 hash နှင့် စတင်ကုဒ်ပါရှိသော၊
  • လျှို့ဝှက်အချက်အလက်များသိမ်းဆည်းရန်အတွက် AES သော့၊
  • ကွန်ပျူတာစနစ်ရောင်းချသူမှ သတ်မှတ်ထားသော အချက်အလက်အချို့ကို အမြဲတမ်းသိမ်းဆည်းရန်အတွက် Chipset (FPFs၊ Field Programmable Fuses) အစုအဝေးတစ်ခုသို့ ဝင်ရောက်နိုင်သည်။

Intel Boot Guard 1.x

ရှင်းလင်းချက်လေးတစ်ခု။ ဤဆောင်းပါးတွင်ကျွန်ုပ်တို့အသုံးပြုသည့် Intel Boot Guard နည်းပညာဗားရှင်းနံပါတ်များသည် ထင်သလိုဖြစ်ပြီး Intel ၏အတွင်းပိုင်းစာရွက်စာတမ်းများတွင်အသုံးပြုသည့်နံပါတ်များနှင့်ဘာမှမဆိုင်ပါ။ ထို့အပြင်၊ ဤနည်းပညာကို အကောင်အထည်ဖော်ခြင်းနှင့်ပတ်သက်ပြီး ဤနေရာတွင်ဖော်ပြထားသော အချက်အလက်များသည် ပြောင်းပြန်အင်ဂျင်နီယာဌာနအတွင်း ရရှိခဲ့ခြင်းဖြစ်ပြီး မည်သည့်အခါမျှ ထုတ်ဝေနိုင်ဖွယ်မရှိသည့် Intel Boot Guard အတွက် သတ်မှတ်ချက်များနှင့် နှိုင်းယှဉ်ပါက မှားယွင်းမှုများပါရှိသည်။

ထို့ကြောင့် Intel Boot Guard (BG) သည် ဟာ့ဒ်ဝဲ-ပံ့ပိုးထားသော UEFI BIOS စစ်မှန်ကြောင်းအထောက်အထားစိစစ်ခြင်းနည်းပညာဖြစ်သည်။ [Platform Embedded Security Technology Revealed၊ chapter Boot with Integrity, or Not Boot] စာအုပ်တွင် ၎င်း၏အတိုချုံးဖော်ပြချက်ဖြင့် အကဲဖြတ်ခြင်းဖြင့် ၎င်းသည် ယုံကြည်စိတ်ချရသော boot chain တစ်ခုအဖြစ် အလုပ်လုပ်ပါသည်။ ၎င်းတွင်ရှိသောပထမဆုံးလင့်ခ်သည် RESET ဖြစ်ရပ်မှအစပျိုးသည့် CPU အတွင်းရှိ boot code (မိုက်ခရိုကုဒ်) ဖြစ်သည် (BIOS တွင် RESET vector နှင့်မရောထွေးရပါ။) CPU သည် SPI flash memory တွင် Intel (Intel BG startup ACM) မှတီထွင်ပြီး လက်မှတ်ရေးထိုးထားသော ကုဒ် module တစ်ခုကို တွေ့ရှိပြီး ၎င်း၏ cache ထဲသို့ တင်ကာ စစ်ဆေးမည် (အထက်တွင် မှတ်သားထားပြီး CPU တွင် ACM ကို စစ်ဆေးသည့် public key ၏ hash တစ်ခုရှိသည် လက်မှတ်) နှင့်စတင်သည်။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard

ဤကုဒ် module သည် UEFI BIOS ၏အဓိကအစိတ်အပိုင်းကိုစစ်ဆေးရန်လုပ်ဆောင်နိုင်စွမ်းပါရှိသော UEFI BIOS - Initial Boot Block (IBB) ၏သေးငယ်သောအစပိုင်းကိုစစ်ဆေးရန်တာဝန်ရှိသည်။ ထို့ကြောင့်၊ Intel BG သည် OS ကိုမတင်မီ BIOS ၏စစ်မှန်ကြောင်းအတည်ပြုရန်ခွင့်ပြုသည် (Secure Boot နည်းပညာ၏ကြီးကြပ်မှုအောက်တွင်လုပ်ဆောင်နိုင်သည့်)။

Intel BG နည်းပညာသည် လည်ပတ်မှုမုဒ်နှစ်ခုကို ပံ့ပိုးပေးသည် (တစ်ခုက အခြားတစ်ခုနှင့် အနှောင့်အယှက်မဖြစ်ပါ၊ ဆိုလိုသည်မှာ မုဒ်နှစ်ခုလုံးကို စနစ်တွင် ဖွင့်ထားနိုင်သည် သို့မဟုတ် နှစ်ခုစလုံးကို ပိတ်ထားနိုင်သည်)။

တိုင်းတာ Boot

Measured Boot (MB) မုဒ်တွင်၊ boot အစိတ်အပိုင်းတစ်ခုစီ (CPU boot ROM မှစတင်သည်) သည် TPM (Trusted Platform Module) ၏စွမ်းရည်များကို အသုံးပြု၍ နောက်တစ်ခုအား "တိုင်းတာ" ပါသည်။ မသိသေးသူများအတွက် ရှင်းပြပေးပါဦး။

TPM တွင် PCRs (ပလပ်ဖောင်းပြင်ဆင်မှုမှတ်ပုံတင်ခြင်း) ပါရှိပြီး hashing လုပ်ဆောင်မှု၏ရလဒ်ကိုဖော်မြူလာအရရေးသားထားသည်-

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard

အဲဒါတွေ။ လက်ရှိ PCR တန်ဖိုးသည် ယခင်တစ်ခုပေါ်တွင်မူတည်ပြီး စနစ်အား RESET မှသာလျှင် ပြန်လည်သတ်မှတ်မည်ဖြစ်သည်။

ထို့ကြောင့်၊ MB မုဒ်တွင်၊ တစ်ချိန်ချိန်တွင် PCR များသည် "တိုင်းတာခြင်း" ဖြစ်သည့် ကုဒ် သို့မဟုတ် ဒေတာ၏ ထူးခြားသော (hashing လုပ်ဆောင်မှု၏စွမ်းရည်များအတွင်း) ကို ထင်ဟပ်စေသည်။ PCR တန်ဖိုးများကို အချို့သောဒေတာ ကုဒ်ဝှက်ခြင်း (TPM_Seal) လုပ်ဆောင်မှုတွင် အသုံးပြုနိုင်ပါသည်။ ၎င်းနောက်တွင်၊ တင်ခြင်း၏ရလဒ်အဖြစ် PCR တန်ဖိုးများ မပြောင်းလဲပါက ၎င်းတို့၏စာဝှက်စနစ် (TPM_Unseal) သည် ဖြစ်နိုင်လိမ့်မည် (ဆိုလိုသည်မှာ “တိုင်းတာထားသည်” အစိတ်အပိုင်းတစ်ခုမျှ မွမ်းမံထားခြင်းမရှိ)။

VerifiedBoot

UEFI BIOS ကိုမွမ်းမံလိုသူများအတွက် အဆိုးဆုံးမှာ boot အစိတ်အပိုင်းတစ်ခုစီ၏ မှန်ကန်မှုနှင့် စစ်မှန်မှုကို နောက်တစ်ခု၏ သမာဓိနှင့် စစ်မှန်ကြောင်း အတည်ပြုပေးသည့် Verified Boot (VB) မုဒ်ဖြစ်သည်။ စိစစ်မှု အမှားအယွင်းရှိပါက၊ (တစ်ခု) ဖြစ်သွားသည်-

  • 1 မိနစ်မှ 30 မိနစ်အထိ အချိန်လွန်ခြင်းဖြင့် ပိတ်ခြင်း (အသုံးပြုသူသည် အဘယ်ကြောင့် ၎င်း၏ကွန်ပြူတာကို boot မလုပ်ရသနည်း၊ ဖြစ်နိုင်ပါက BIOS ကို ပြန်လည်ရယူရန် ကြိုးစားသည်)။
  • ချက်ခြင်းပိတ်ခြင်း (အသုံးပြုသူသည် နားလည်ရန်အချိန်မရှိစေရန်၊ မည်သည်ကိုမျှ နည်းပါးစွာလုပ်ဆောင်နိုင်စေရန်)။
  • အေးဆေးတည်ငြိမ်တဲ့အမူအရာနဲ့ ဆက်လက်လုပ်ဆောင်ပါ (လုံခြုံရေးအတွက် အချိန်မရှိတဲ့အခါ၊ ပိုအရေးကြီးတဲ့အရာတွေရှိလို့)။

လုပ်ဆောင်ချက်ရွေးချယ်မှုသည် သတ်မှတ်ထားသော Intel BG ဖွဲ့စည်းမှုပုံစံ (ဆိုလိုသည်မှာ ပြဋ္ဌာန်းထားသောမူဝါဒဟု ခေါ်သည်) ပေါ်တွင် အထူးဒီဇိုင်းထုတ်ထားသော သိုလှောင်မှု - chipset fuses (FPFs) တွင် ကွန်ပျူတာပလပ်ဖောင်းရောင်းချသူမှ အပြီးအပိုင်မှတ်တမ်းတင်ထားသည့် လုပ်ဆောင်ချက်အပေါ် မူတည်ပါသည်။ ဤအချက်ကို နောက်ပိုင်းတွင် အသေးစိတ်ဖော်ပြပါမည်။

ဖွဲ့စည်းမှုအပြင်၊ ရောင်းချသူသည် RSA 2048 သော့နှစ်ခုကိုထုတ်ပေးပြီး ဒေတာဖွဲ့စည်းပုံနှစ်ခုကို ဖန်တီးသည် (ပုံတွင်ပြထားသည်)။

  1. ရောင်းချသူ၏ အမြစ်သော့ မန်နီးဖက်စ် (KEYM၊ OEM Root Key Manifest)၊ ဤဖော်ပြချက်၏ SVN (လုံခြုံရေးဗားရှင်းနံပါတ်)၊ နောက်ဖော်ပြချက်၏ အများသူငှာသော့၏ SHA256 ဟက်ရှ်၊ RSA အများသူငှာသော့ (ဆိုလိုသည်မှာ အများသူငှာ အစိတ်အပိုင်း ဖြစ်သည် ရောင်းချသူ၏ အမြစ်ကီး) ဤဖော်ပြချက်၏ လက်မှတ်နှင့် လက်မှတ်ကိုယ်တိုင် အတည်ပြုရန်၊
  2. ဤဖော်ပြချက်၏ SVN၊ IBB ၏ SHA256 hash ပါရှိသော IBB Manifest (IBBM၊ Initial Boot Block Manifest)၊ ဤဖော်ပြချက်၏ လက်မှတ်နှင့် လက်မှတ်ကိုယ်တိုင်ကို စစ်ဆေးရန်အတွက် အများသူငှာသော့ချက်။

OEM Root Key အများသူငှာသော့၏ SHA256 hash ကို Intel BG ဖွဲ့စည်းမှုပုံစံကဲ့သို့ပင် Chipset fuses (FPFs) တွင် အမြဲတမ်းမှတ်တမ်းတင်ထားသည်။ Intel BG configuration သည် ဤနည်းပညာကိုထည့်သွင်းရန်အတွက် ပံ့ပိုးပေးမည်ဆိုပါက၊ ယခုမှစ၍ OEM Root Key ၏ သီးသန့်အစိတ်အပိုင်းပိုင်ရှင်သာလျှင် ဤစနစ်တွင် BIOS ကို မွမ်းမံပြင်ဆင်နိုင်သည် (ဆိုလိုသည်မှာ ဤဖော်ပြချက်များကို ပြန်လည်တွက်ချက်နိုင်သည်) ၊ ဥပမာ။ ရောင်းချသူ။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard

ရုပ်ပုံကိုကြည့်သောအခါ၊ ရှည်လျားသောစိစစ်ရေးကွင်းဆက်တစ်ခုလိုအပ်ခြင်းနှင့်ပတ်သက်၍ သံသယများ ချက်ချင်းပေါ်လာသည် - ၎င်းတို့သည် သရုပ်ဖော်မှုတစ်ခုကို အသုံးပြုနိုင်သည်။ အဘယ်ကြောင့်အရာများကိုရှုပ်ထွေးစေသနည်း။

အမှန်မှာ၊ Intel သည် ၎င်းသည် ရောင်းချသူကို ၎င်း၏ထုတ်ကုန်များ၏ မတူညီသောလိုင်းများအတွက် မတူညီသော IBB သော့များကို အသုံးပြုရန်နှင့် တစ်ခုအား root key အဖြစ် အသုံးပြုရန် အခွင့်အရေးပေးထားသည်။ IBB သော့၏ကိုယ်ရေးကိုယ်တာအစိတ်အပိုင်း (ဒုတိယဖော်ပြချက်အား လက်မှတ်ရေးထိုးထားသည့်) ပေါက်ကြားပါက၊ ဖြစ်ရပ်သည် ထုတ်ကုန်လိုင်းတစ်ခုသာ အကျိုးသက်ရောက်မည်ဖြစ်ပြီး ရောင်းချသူမှ အတွဲအသစ်တစ်ခုထုတ်ပေးပြီး လာမည့် BIOS အပ်ဒိတ်တွင် ပြန်လည်တွက်ချက်ထားသော သရုပ်ဖော်မှုများပါ၀င်သည့်အချိန်အထိသာ အဆိုပါဖြစ်ရပ်သည် ထုတ်ကုန်လိုင်းတစ်ခုသာအကျိုးသက်ရောက်မည်ဖြစ်သည်။

သို့သော် root key (ပထမဖော်ပြချက်တွင် ရေးထိုးထားသည့်) အား အပေးအယူလုပ်ပါက၊ ၎င်းကို အစားထိုးရန် မဖြစ်နိုင်ပါ၊ ရုပ်သိမ်းခြင်းဆိုင်ရာ လုပ်ငန်းစဉ်အတွက် ထည့်သွင်းထားခြင်းမရှိပါ။ ဤသော့၏ အများသူငှာ အပိုင်း၏ hash ကို FPF တွင် တစ်ကြိမ်စီ စီစဥ်ထားသည်။

Intel Boot Guard Configuration

ယခု Intel BG ဖွဲ့စည်းမှုပုံစံနှင့် ၎င်းကိုဖန်တီးခြင်းလုပ်ငန်းစဉ်ကို အနီးကပ်လေ့လာကြည့်ကြပါစို့။ Intel System Tool Kit (STK) မှ Flash Image Tool utility ၏ GUI ရှိ သက်ဆိုင်သည့် tab ကိုကြည့်ပါက Intel BG configuration တွင် ရောင်းချသူ၏ root key ၏ အများသူငှာ အပိုင်း၏ hash ပါ၀င်သည်ကို သတိပြုမိပါလိမ့်မည်။ မရှင်းလင်းသောတန်ဖိုးများ စသည်တို့ 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 flash ရှိ BG startup ACM module ကို ရှာမတွေ့ပါက၊ ယုံကြည်ရသော boot ဖြစ်မလာပါ။ သူမသည် စိတ်မချရလိမ့်မည်။

စိစစ်မှု အမှားအယွင်းရှိပါက၊ မယုံကြည်ရသော ဒေါင်းလုဒ်တစ်ခု ဖြစ်ပေါ်လာစေရန် VB မုဒ်အတွက် ပြဋ္ဌာန်းထားသော မူဝါဒကို ကျွန်ုပ်တို့ အထက်တွင်ရေးခဲ့ပြီးဖြစ်သည်။

ထိုအရာများကို စျေးရောင်းသူများ၏ ဆုံးဖြတ်ချက်အရ ထားခဲ့ပါ...

GUI utility သည် အောက်ပါ "အဆင်သင့်လုပ်ထားသော" ပရိုဖိုင်များကို ပံ့ပိုးပေးသည်-

ဂဏန်း
Режим
ဖေါ်ပြချက်

0
No_FVME
Intel BG နည်းပညာကို ပိတ်ထားသည်။

1
VE
VB မုဒ်ကို ဖွင့်ထားပြီး အချိန်ကုန်သွားသဖြင့် ပိတ်သည်။

2
VME
မုဒ်နှစ်ခုစလုံးကို ဖွင့်ထားသည် (VB နှင့် MB)၊ အချိန်လွန်ခြင်းဖြင့် ပိတ်သည်။

3
VM
စနစ်အား မပိတ်ဘဲ မုဒ်နှစ်ခုလုံးကို ဖွင့်ထားသည်။

4
FVE
VB မုဒ်ကိုဖွင့်ထားပြီး၊ ချက်ချင်းပိတ်လိုက်ပါ။

5
FVME
မုဒ်နှစ်ခုစလုံးကို ဖွင့်ထားပြီး၊ ချက်ချင်းပိတ်ပါ။

ဖော်ပြထားပြီးဖြစ်သည့်အတိုင်း၊ Intel BG configuration ကို system vendor မှ chipset fuses (FPFs) သို့ တစ်ကြိမ်စီ ရေးရပါမည် - ပရိုဂရမ်ထည့်သွင်းနိုင်သည့် Chipset အတွင်းရှိ အချက်အလက်သိုလှောင်မှု ဟာ့ဒ်ဝဲအသေး (အတည်မပြုရသေးသော အချက်အလက်များအရ၊ 256 bytes သာ)၊ Intel ၏ ထုတ်လုပ်မှု အဆောက်အဦ အပြင်ဘက် (ဒါကြောင့် အတိအကျ Field Programmable Fuses)။

configuration ကို သိမ်းဆည်းရန် အလွန်ကောင်းမွန်သောကြောင့်၊

  • ဒေတာသိမ်းဆည်းရန်အတွက် တစ်ကြိမ်တည်း ပရိုဂရမ်လုပ်နိုင်သော ဧရိယာတစ်ခု ရှိသည် ( Intel BG ဖွဲ့စည်းမှုပုံစံကို ရေးထားသည့်နေရာတွင် အတိအကျ)
  • Intel ME ကသာ ၎င်းကိုဖတ်ပြီး ပရိုဂရမ်လုပ်နိုင်သည်။

ထို့ကြောင့်၊ တိကျသောစနစ်တစ်ခုတွင် Intel BG နည်းပညာအတွက် configuration ကိုသတ်မှတ်ရန်အတွက်၊ ရောင်းချသူသည် ထုတ်လုပ်မှုကာလအတွင်း အောက်ပါတို့ကို လုပ်ဆောင်သည်-

  1. Flash Image Tool utility (Intel STK မှ) ကို အသုံးပြု၍ ၎င်းသည် Intel ME ဒေသအတွင်းရှိ variable များပုံစံဖြင့် ပေးထားသော Intel BG configuration ဖြင့် firmware ပုံတစ်ခုကို ဖန်တီးပေးသည် (FPFs အတွက် ယာယီကြေးမုံဟု ခေါ်သည်);
  2. Flash Programming Tool utility (Intel STK မှ) ကို အသုံးပြု၍ ၎င်းသည် ဤပုံကို စနစ်၏ SPI flash memory သို့ ရေးပြီး ဟုခေါ်သည့်အရာကို ပိတ်သည်။ ထုတ်လုပ်မှုမုဒ် (ဤကိစ္စတွင်၊ သက်ဆိုင်ရာ command ကို Intel ME သို့ပေးပို့သည်)။

ဤလုပ်ဆောင်ချက်များ၏ရလဒ်အနေဖြင့် Intel ME သည် ME ဒေသရှိ FPFs အတွက်ကြေးမုံမှသတ်မှတ်ထားသောတန်ဖိုးများကို FPFs သို့ ပေးအပ်မည်ဖြစ်ပြီး၊ SPI flash ဖော်ပြချက်များတွင် ဆုံးဖြတ်ချက်များကို Intel မှအကြံပြုထားသည့်တန်ဖိုးများအဖြစ် သတ်မှတ်ပေးမည် (အစတွင်ဖော်ပြထားသော၊ article) နှင့် system RESET ကိုလုပ်ဆောင်ပါ။

Intel Boot Guard အကောင်အထည်ဖော်မှုကို လေ့လာခြင်း။

တိကျသောဥပမာကိုအသုံးပြု၍ ဤနည်းပညာ၏အကောင်အထည်ဖော်မှုကို ပိုင်းခြားစိတ်ဖြာရန်အလို့ငှာ၊ ကျွန်ုပ်တို့သည် Intel BG နည်းပညာ၏ခြေရာခံများအတွက်အောက်ပါစနစ်များကိုစစ်ဆေးခဲ့သည်-

စံနစ်
ပွောဆို

Gigabyte GA-H170-D3H
Skylake က ပံ့ပိုးမှုရှိပါတယ်။

Gigabyte GA-Q170-D3H
Skylake က ပံ့ပိုးမှုရှိပါတယ်။

Gigabyte GA-B150-HD3
Skylake က ပံ့ပိုးမှုရှိပါတယ်။

MSI H170A Gaming Pro
Skylake၊ အထောက်အပံ့မရှိပါ။

Lenovo က ThinkPad 460
Skylake၊ ပံ့ပိုးထားသော၊ နည်းပညာကို ဖွင့်ထားသည်။

Lenovo Yoga 2 Pro
Haswell၊ ပံ့ပိုးမှုမရှိပါ။

Lenovo U330p
Haswell၊ ပံ့ပိုးမှုမရှိပါ။

"ပံ့ပိုးမှု" အားဖြင့်ကျွန်ုပ်တို့သည် Intel BG startup ACM module ၏ရှေ့မှောက်တွင်၊ အထက်ဖော်ပြပါဖော်ပြချက်များနှင့် BIOS အတွင်းရှိသက်ဆိုင်ရာကုဒ်များဖြစ်သော၊ ဆိုလိုသည်မှာ။ ခွဲခြမ်းစိတ်ဖြာမှုအတွက် အကောင်အထည်ဖော်ခြင်း။

ဥပမာအနေနဲ့၊ ရုံးကနေ ဒေါင်းလုဒ်လုပ်ကြည့်ရအောင်။ Gigabyte GA-H170-D3H (ဗားရှင်း F4) အတွက် SPI flash memory ၏ ရောင်းချသူ ဝဘ်ဆိုဒ်ပုံ။

Intel CPU boot ROM

ပထမဆုံးအနေနဲ့ Intel BG နည်းပညာကို ဖွင့်ထားရင် ပရိုဆက်ဆာရဲ့ လုပ်ဆောင်ချက်တွေအကြောင်း ပြောကြရအောင်။

ကုဒ်ဝှက်ထားသော မိုက်ခရိုကုဒ်နမူနာများကို ရှာမတွေ့နိုင်ပါ၊ ထို့ကြောင့် အောက်တွင်ဖော်ပြထားသော လုပ်ဆောင်ချက်များကို မည်သို့အကောင်အထည်ဖော်သည် (မိုက်ခရိုကုဒ် သို့မဟုတ် ဟာ့ဒ်ဝဲတွင်) သည် အဖွင့်မေးခွန်းဖြစ်သည်။ သို့သော်၊ ခေတ်မီ Intel ပရိုဆက်ဆာများသည် ဤလုပ်ဆောင်ချက်များကို "လုပ်နိုင်သည်" ဟူသောအချက်ဖြစ်ပါသည်။

RESET အခြေအနေမှ ထွက်ပြီးနောက်၊ ပရိုဆက်ဆာသည် (flash memory ၏ အကြောင်းအရာများကို address space တွင် ပုံဖော်ထားပြီး) FIT (Firmware Interface Table) ဇယားကို တွေ့ရှိသည်။ ရှာရလွယ်ကူသည်၊ ၎င်းကိုညွှန်ပြသည့်လိပ်စာကို 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
အမည်မသိအကြောင်းအရင်းတစ်ခုခုကြောင့်၊ checksum ကို ဤဇယားများတွင် အမြဲမတွက်ချက်ပါ (အကွက်သည် သုညကျန်ရစ်သည်)။

ကျန်ရှိသော entry များသည် BIOS ကို မလုပ်ဆောင်မီ ခွဲခြမ်းစိတ်ဖြာရန်/လုပ်ဆောင်ရန် လိုအပ်သော binary အမျိုးမျိုးကို ညွှန်ပြသည်၊ ဆိုလိုသည်မှာ၊ အမွေအနှစ် 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 ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ 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 startup ACM binary ၏တည်နေရာကိုညွှန်ပြသည်မှာထင်ရှားပါသည်။ ဤ binary ၏ ခေါင်းစီးဖွဲ့စည်းပုံသည် Intel (ACMs၊ microcode အပ်ဒိတ်များ၊ Intel ME ကုဒ်အပိုင်းများ၊ ...) မှ ဖန်တီးထားသော ကုဒ် module များအတွက် ပုံမှန်ဖြစ်သည်။

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 startup ACM

ဤ ACM ၏လုပ်ဆောင်မှုကို ခွဲခြမ်းစိတ်ဖြာခြင်း၏ရလဒ်အနေဖြင့်၊ ၎င်းသည် အောက်ပါအတိုင်းလုပ်ဆောင်ကြောင်း ထင်ရှားလာပါသည်။

  • chipset fuses (FPFs) တွင်ရေးထားသော Intel ME မှ Intel BG configuration ကိုလက်ခံရရှိသည် ။
  • KEYM နှင့် IBBM တို့ကို တွေ့ရှိပြီး ၎င်းတို့ကို အတည်ပြုသည်။

ဤဖော်ပြချက်များကိုရှာဖွေရန်၊ ACM သည် ဖွဲ့စည်းပုံဒေတာကိုညွှန်ပြရန် ထည့်သွင်းမှုအမျိုးအစားနှစ်ခုပါရှိသော FIT ဇယားကိုလည်း အသုံးပြုသည် (အထက် FIT_ENTRY_TYPES ကိုကြည့်ပါ)။

Manifestos ကို အနီးကပ် လေ့လာကြည့်ရအောင်။ ပထမ manifest ၏ ဖွဲ့စည်းပုံတွင်၊ မထင်မရှား ကိန်းသေများစွာ၊ ဒုတိယ manifest မှ public key ၏ hash နှင့် public OEM Root Key ကို nested structure အဖြစ် လက်မှတ်ရေးထိုးထားသည်ကို တွေ့ရသည်-

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 အများသူငှာသော့ကိုအတည်ပြုရန်၊ ကျွန်ုပ်တို့သည် Intel ME ထံမှလက်ခံရရှိထားပြီးဖြစ်သည့် SHA256 hash fuses ကိုအသုံးပြုထားကြောင်းကျွန်ုပ်တို့သတိရမိပါသည်။

ဒုတိယဖော်ပြချက်သို့ ဆက်သွားကြပါစို့။ ၎င်းတွင်ဖွဲ့စည်းပုံသုံးမျိုးပါ ၀ င်သည်။

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 hash နှင့် IBB ၏အကြောင်းအရာများကိုဖော်ပြသောဖော်ပြသူအရေအတွက် (ဆိုလိုသည်မှာ hash မှတွက်ချက်ထားသည်) ပါရှိသည်။

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 အဆင့်များ၏ module များအားလုံး၏စုစည်းမှုဖြစ်သည်။

ဒုတိယ manifest ကို IBB အများသူငှာသော့ (ပထမ manifest မှ SHA256 hash ဖြင့် အတည်ပြုထားသည်) နှင့် ဤဖော်ပြချက်၏ လက်မှတ်ပါရှိသော ဖွဲ့စည်းပုံဖြင့် ပြီးမြောက်သည်-

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

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
ထို့ကြောင့်၊ UEFI BIOS မစတင်မီပင်၊ ပရိုဆက်ဆာသည် SEC နှင့် PEI အဆင့်ကုဒ်ဖြင့် အပိုင်းများ၏ အကြောင်းအရာများ၏ စစ်မှန်မှုကို စစ်ဆေးမည့် ACM ကို စတင်မည်ဖြစ်သည်။ ထို့နောက်၊ ပရိုဆက်ဆာသည် ACM မှထွက်ပြီး၊ RESET vector ကိုလိုက်နာကာ BIOS ကိုစတင်လုပ်ဆောင်သည်။

အတည်ပြုထားသော PEI အခန်းကန့်တွင် ကျန်ရှိသော BIOS (DXE ကုဒ်) ကို စစ်ဆေးမည့် မော်ဂျူးတစ်ခု ပါဝင်ရပါမည်။ ဤ module ကို IBV (Independent BIOS Vendor) သို့မဟုတ် စနစ်ရောင်းချသူကိုယ်တိုင်က တီထွင်ထားပြီးဖြစ်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ Lenovo နှင့် Gigabyte စနစ်များသာ ကျွန်ုပ်တို့၏လက်တွေ့တွင်ရှိပြီး Intel BG ပံ့ပိုးမှုပါရှိပါသည်၊ ဤစနစ်များမှထုတ်နုတ်ထားသောကုဒ်ကို ကြည့်ကြပါစို့။

UEFI BIOS မော်ဂျူး LenovoVerifiedBootPei

Lenovo ၏အခြေအနေတွင်၊ Lenovo မှထုတ်လုပ်သော LenovoVerifiedBootPei module {B9F2AC77-54C7-4075-B42E-C36325A9468D} ဖြစ်လာခဲ့သည်။

၎င်း၏အလုပ်မှာ DXE အတွက် hash table (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 မှတီထွင်သော Intel BG ပံ့ပိုးမှုပါရှိသော မည်သည့် AMI BIOS တွင်မဆိုရှိသော BootGuardPei module {B41956E1-7CA2-42DB-9562-168389F0F066} ဖြစ်လာခဲ့သည်။

၎င်း၏လည်ပတ်မှု algorithm သည် အနည်းငယ်ကွဲပြားသော်လည်း၊ ၎င်းသည် အတူတူပင်ဖြစ်သည်-

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;
}

ရှာနေသော hash table {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 ၏နောက်ထပ်အကောင်အထည်ဖော်မှုအကြောင်း အတိုချုပ်ပြောကြပါစို့။

ဤဗားရှင်းကို SoCs တွင်သာ အသုံးပြုမည်ဖြစ်သော်လည်း ( Kaby Lake ပရိုဆက်ဆာ မိုက်ခရိုဗိသုကာစနစ်အသစ်တွင် Intel Boot Guard 1.x ကို ဆက်လက်အသုံးပြုသည်)၊ သိသာထင်ရှားသောပြောင်းလဲမှုများကို မြင်တွေ့ခဲ့ရသည့် Intel SoC ပလပ်ဖောင်းများအတွက် ဗိသုကာရွေးချယ်မှုအသစ်ကို လေ့လာရန် အလွန်စိတ်ဝင်စားဖွယ်ကောင်းပါသည်။ ဥပမာ-

  • BIOS နှင့် Intel ME ဒေသများ (သို့မဟုတ် Intel SoC အတွက် အသုံးအနှုန်းအရ Intel TXE) သည် ယခုအခါ IFWI ဒေသတစ်ခုဖြစ်သည်။
  • Intel BG ကို ပလပ်ဖောင်းပေါ်တွင် ဖွင့်ထားသော်လည်း FIT, KEYM, IBBM ကဲ့သို့သော ဖွဲ့စည်းပုံများကို flash memory တွင် မတွေ့ရှိရပါ။
  • TXE နှင့် ISH cores (x86) အပြင်၊ chipset (ARC တစ်ဖန်၊ တစ်နည်းအားဖြင့်) - PMC (Power Management Controller) တွင် power subsystem ၏လုပ်ဆောင်နိုင်စွမ်းနှင့် စွမ်းဆောင်ရည်စောင့်ကြည့်ခြင်းတို့ကို သေချာစေမည့် တတိယ core ကိုထည့်သွင်းထားပါသည်။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
IFWI ဒေသအသစ်၏ အကြောင်းအရာသည် အောက်ပါ module များ အစုအဝေးတစ်ခုဖြစ်သည်-

ရွှေ့ပြောင်းခံရ
နာမတျောကို
ဖေါ်ပြချက်

၂၄ ၄၈ နာရီ
SMIP
ရောင်းချသူမှ လက်မှတ်ရေးထိုးထားသော အချို့သော ပလပ်ဖောင်းပုံစံဖွဲ့စည်းမှု

၂၄ ၄၈ နာရီ
RBEP
Intel TXE firmware ကုဒ်အပိုင်း၊ x86၊ Intel မှ လက်မှတ်ရေးထိုးခဲ့သည်။

၂၄ ၄၈ နာရီ
PMCP
Intel PMC firmware ကုဒ်ကဏ္ဍ၊ ARC၊ Intel မှ လက်မှတ်ရေးထိုးခဲ့သည်။

၂၄ ၄၈ နာရီ
FTPR
Intel TXE firmware ကုဒ်အပိုင်း၊ x86၊ Intel မှ လက်မှတ်ရေးထိုးခဲ့သည်။

0007 B000h
UCOD
Intel မှ လက်မှတ်ထိုးထားသော CPU အတွက် မိုက်ခရိုကုဒ် အပ်ဒိတ်များ

၂၄ ၄၈ နာရီ
IBBP
UEFI BIOS၊ SEC/PEI အဆင့်များ၊ x86၊ ရောင်းချသူမှ လက်မှတ်ထိုးထားသည်။

၂၄ ၄၈ နာရီ
ISHC
ရောင်းချသူမှ လက်မှတ်ထိုးထားသော Intel ISH ဖိုင်းဝဲကုဒ်အပိုင်း၊ x86

၂၄ ၄၈ နာရီ
NFTP
Intel TXE firmware ကုဒ်အပိုင်း၊ x86၊ Intel မှ လက်မှတ်ရေးထိုးခဲ့သည်။

၂၄ ၄၈ နာရီ
IUNP
အမည်မသိ

၂၄ ၄၈ နာရီ
OBBP
UEFI BIOS၊ DXE အဆင့်၊ x86၊ လက်မှတ်မထိုးပါ။

TXE firmware ၏ခွဲခြမ်းစိတ်ဖြာမှုအတွင်း၊ RESET ပြီးနောက် TXE သည် CPU အတွက် address space ၏အခြေခံအကြောင်းအရာများကိုမပြင်ဆင်မချင်း (FIT, ACM, RESET vector ... ) တွင်ပရိုဆက်ဆာကိုဤအခြေအနေတွင်ထိန်းသိမ်းထားကြောင်းထင်ရှားလာသည်။ ထို့အပြင် TXE သည် ဤဒေတာကို ၎င်း၏ SRAM တွင် ထားရှိပြီးနောက် ၎င်းသည် ပရိုဆက်ဆာအား ထိုနေရာတွင် ယာယီအသုံးပြုခွင့်ပေးပြီး RESET မှ "ထုတ်လွှတ်သည်" ဖြစ်သည်။

rootkits များကို သတိထားပါ။

ကဲ၊ အခု “ပူတယ်” အရာတွေဆီ ဆက်သွားကြရအောင်။ စနစ်များစွာတွင်၊ SPI flash ဖော်ပြချက်များသည် SPI flash memory ၏ ဒေသများကို ဝင်ရောက်ကြည့်ရှုရန် ခွင့်ပြုချက်များ ပါ၀င်သောကြောင့် ဤ memory ၏အသုံးပြုသူအားလုံးသည် မည်သည့်ဒေသကိုမဆို ရေးသားဖတ်ရှုနိုင်စေရန် တစ်ချိန်က တွေ့ရှိခဲ့သည်။ အဲဒါတွေ။ ဘယ်လိုမျှမဖြစ်နိုင်။

MEinfo utility (Intel STK မှ) ဖြင့် စစ်ဆေးပြီးနောက် ဤစနစ်များပေါ်ရှိ ထုတ်လုပ်မှုမုဒ်ကို မပိတ်ကြောင်း တွေ့ရှိသောကြောင့်၊ chipset fuses (FPFs) များကို သတ်မှတ်မထားသော အခြေအနေတွင် ကျန်ရှိနေပါသည်။ ဟုတ်ကဲ့၊ Intel BG သည် ထိုသို့သောကိစ္စများတွင် ဖွင့်မပိတ်ပါ။

ကျွန်ုပ်တို့သည် အောက်ပါစနစ်များအကြောင်းပြောနေပါသည် (Intel BG နှင့်ပတ်သက်ပြီး ဆောင်းပါးတွင် နောက်တွင်ဖော်ပြထားမည့်အရာများ၊ Haswell ပရိုဆက်ဆာနှင့် အဆင့်မြင့်ဗိသုကာဆိုင်ရာစနစ်များအကြောင်း ဆွေးနွေးပါမည်။)

  • Gigabyte ထုတ်ကုန်အားလုံး၊
  • MSI ထုတ်ကုန်အားလုံး၊
  • Lenovo လက်တော့ပ် 21 မော်ဒယ်နှင့် Lenovo ဆာဗာ 4 မော်ဒယ်။

ဟုတ်ပါတယ်၊၊ ကျွန်ုပ်တို့သည် ရှာဖွေတွေ့ရှိမှုကို ဤရောင်းချသူများအပြင် Intel သို့ တိုင်ကြားခဲ့သည်။

လုံလောက်တဲ့ တုံ့ပြန်မှုကနေ လာတာပါ။ Lenovo ကပြဿနာကို ဘယ်သူက အသိအမှတ်ပြုလဲ။ patch တစ်ခု ထွက်လာတယ်။.

Gigabyte ၎င်းတို့သည် အားနည်းချက်နှင့်ပတ်သက်သည့် အချက်အလက်များကို လက်ခံထားပုံရသော်လည်း မည်သို့မျှ မှတ်ချက်မပေးပေ။

ဆက်သွယ်ရေးနှင့် MSI သင်၏ အများသူငှာ PGP သော့ကို ပေးပို့ရန် ကျွန်ုပ်တို့၏ တောင်းဆိုမှုတွင် လုံးဝရပ်တန့်သွားသည် (သူတို့အား ကုဒ်ဝှက်ထားသော ပုံစံဖြင့် လုံခြုံရေးအကြံပေးချက်တစ်ခု ပေးပို့ရန်)။ ၎င်းတို့သည် "ဟာ့ဒ်ဝဲထုတ်လုပ်သူဖြစ်ပြီး PGP သော့များမထုတ်လုပ်ကြပါ။"

ဒါပေမယ့် အမှတ်ရရအောင်။ fuses များကို သတ်မှတ်မထားသော အခြေအနေတွင် ထားခဲ့သောကြောင့်၊ အသုံးပြုသူ (သို့မဟုတ် တိုက်ခိုက်သူ) သည် ၎င်းတို့အား သီးခြား အစီအစဉ်ဆွဲနိုင်သည် (အခက်ခဲဆုံးအချက်မှာ၊ Intel STK ကိုရှာပါ။) ဒီလိုလုပ်ဖို့၊ အောက်ပါအဆင့်တွေကို ပြီးအောင်လုပ်ရပါမယ်။

1. Windows OS သို့စတင်ပါ (ယေဘုယျအားဖြင့်၊ သင်သည် လိုချင်သော OS အတွက် Intel STK ၏ analogue တစ်ခုကို ဖန်တီးပါက၊ အောက်တွင်ဖော်ပြထားသော လုပ်ဆောင်ချက်များကို Linux အောက်တွင်လည်း လုပ်ဆောင်နိုင်သည်)။ MEinfo utility ကို အသုံးပြု၍ fuses များကို ဤစနစ်တွင် ပရိုဂရမ်မထားရှိကြောင်း သေချာပါစေ။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
2. Flash Programming Tool ကိုအသုံးပြု၍ flash memory ၏အကြောင်းအရာများကိုဖတ်ပါ။

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 ဖွဲ့စည်းမှုပုံစံနှင့်အတူ chipset fuses များတွင် ပရိုဂရမ်ထည့်သွင်းမည့် hash ကို ဖော်ပြထားသည်။

4. Flash Image Tool ကိုအသုံးပြု၍ firmware ပုံအသစ်တစ်ခုတည်ဆောက်ပါ (Intel BG configuration ကိုသတ်မှတ်ခြင်းဖြင့်)။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
5. Flash ပရိုဂရမ်းမင်းတူးလ်ကို အသုံးပြု၍ ဖလက်ရ်ှမမ်မိုရီတွင် ပုံအသစ်တစ်ခုရေးပြီး ME ဒေသတွင် ယခု Intel BG ဖွဲ့စည်းမှုပါရှိသည်ကို MEinfo ကိုအသုံးပြု၍ အတည်ပြုပါ။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
6. ထုတ်လုပ်မှုမုဒ်ကိုပိတ်ရန် Flash Programming Tool ကိုသုံးပါ။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
7. စနစ်သည် ပြန်လည်စတင်မည်ဖြစ်ပြီး၊ ထို့နောက် FPFs ကိုယခုပရိုဂရမ်ပြုလုပ်ထားကြောင်းစစ်ဆေးရန် MEinfo ကိုသုံးနိုင်သည်။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
ဒီလုပ်ရပ်တွေ အစဉ်အမြဲ ဤစနစ်တွင် Intel BG ကိုဖွင့်ပါ။ လုပ်ဆောင်ချက်ကို ပြန်ပြင်၍မရပါ၊ ဆိုလိုသည်မှာ-

  • root key ၏ သီးသန့်အစိတ်အပိုင်းပိုင်ရှင် (ဆိုလိုသည်မှာ Intel BG ကိုဖွင့်ထားသူ) မှသာလျှင် ဤစနစ်တွင် UEFI BIOS ကို အပ်ဒိတ်လုပ်နိုင်မည်ဖြစ်ပါသည်။
  • အကယ်၍ သင်သည် မူရင်း firmware ကို ဤစနစ်သို့ ပြန်ပေးမည်ဆိုပါက၊ ဥပမာအားဖြင့်၊ ပရိုဂရမ်မာတစ်ဦးကို အသုံးပြုနေပါက၊ ၎င်းသည် ဖွင့်မည်မဟုတ်ပါ (အတည်ပြုချက်မှားယွင်းပါက၊ ခိုင်လုံသောမူဝါဒ၏အကျိုးဆက်)၊
  • ထိုကဲ့သို့သော UEFI BIOS ကိုဖယ်ရှားရန်၊ သင်သည် ပရိုဂရမ်လုပ်ထားသော FPFs ဖြင့် ချစ်ပ်ဆက်ကို "သန့်ရှင်း" တစ်ခုဖြင့် အစားထိုးရန် လိုအပ်သည် (ဆိုလိုသည်မှာ ကားတစ်စီး၏စျေးနှုန်းကို အနီအောက်ရောင်ခြည် ဂဟေဆက်သည့်နေရာသို့ ဝင်ရောက်နိုင်လျှင် သို့မဟုတ် မားသားဘုတ်ကို အစားထိုးရုံဖြင့် ချစ်ပ်ဆက်ကို ပြန်လည်ရောင်းချပါ။ )

ထိုကဲ့သို့သော rootkit သည်ဘာလုပ်ဆောင်နိုင်သည်ကိုနားလည်ရန် UEFI BIOS ပတ်ဝန်းကျင်တွင်သင်၏ကုဒ်ကိုလုပ်ဆောင်ရန်ဘာဖြစ်နိုင်သည်ကိုအကဲဖြတ်ရန်လိုအပ်သည်။ အခွင့်ထူးခံအများဆုံး ပရိုဆက်ဆာမုဒ်တွင် - SMM ဆိုကြပါစို့။ ထိုသို့သော rootkit သည် အောက်ပါဂုဏ်သတ္တိများ ရှိနိုင်သည်-

  • OS နှင့်အပြိုင် လုပ်ဆောင်သည် (အချိန်တိုင်းကိရိယာဖြင့် အစပျိုးမည့် SMI အနှောင့်အယှက်တစ်ခု ဖန်တီးရန် လုပ်ဆောင်ခြင်းကို သင် configure လုပ်နိုင်ပါသည်။)
  • SMM မုဒ်တွင် ရှိနေခြင်း၏ အားသာချက်များအားလုံး ( RAM နှင့် ဟာ့ဒ်ဝဲအရင်းအမြစ်များ ၊ OS မှလျှို့ဝှက်ချက် )
  • SMM မုဒ်တွင် စတင်သောအခါ rootkit ၏ ပရိုဂရမ်ကုဒ်ကို ကုဒ်ဝှက်ပြီး စာဝှက်နိုင်သည်။ SMM မုဒ်တွင်သာ ရရှိနိုင်သော မည်သည့်ဒေတာကို ကုဒ်ဝှက်ခြင်းသော့အဖြစ် အသုံးပြုနိုင်ပါသည်။ ဥပမာ၊ SMRAM ရှိ လိပ်စာအစုံမှ hash တစ်ခု။ ဤသော့ကိုရယူရန်၊ သင်သည် SMM သို့ဝင်ရောက်ရန် လိုအပ်မည်ဖြစ်သည်။ ပြီးတော့ ဒါကို နည်းလမ်းနှစ်မျိုးနဲ့ လုပ်ဆောင်နိုင်ပါတယ်။ SMM ကုဒ်တွင် RCE ကိုရှာပြီး ၎င်းကိုအသုံးချပါ၊ သို့မဟုတ် Boot Guard ကိုဖွင့်ထားသောကြောင့်မဖြစ်နိုင်သောသင်၏ကိုယ်ပိုင် SMM module ကို BIOS သို့ထည့်ပါ။

ထို့ကြောင့် ဤအားနည်းချက်သည် တိုက်ခိုက်သူကို အောက်ပါတို့အား ခွင့်ပြုသည်-

  • စနစ်တွင် အမည်မသိရည်ရွယ်ချက်ဖြင့် ဖျောက်ဖျက်၍မရသော rootkit တစ်ခုကို ဖန်တီးပါ။
  • Intel SoC အတွင်းရှိ chipset cores များထဲမှ တစ်ခုပေါ်တွင် သင့်ကုဒ်ကို လုပ်ဆောင်ပါ ၊ ဥပမာအားဖြင့် Intel ISH တွင် (ပုံကို သေချာကြည့်ပါ)။

Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
Schrödinger ၏ ယုံကြည်စိတ်ချရသော ဒေါင်းလုဒ်။ Intel Boot Guard
Intel ISH စနစ်ခွဲ၏ စွမ်းရည်များကို မစူးစမ်းရသေးသော်လည်း၊ ၎င်းသည် Intel ME အတွက် စိတ်ဝင်စားစရာကောင်းသော တိုက်ခိုက်ရေး vector တစ်ခု ဖြစ်ပုံရသည်။

တွေ့ရှိချက်များ

  1. အဆိုပါလေ့လာမှုသည် Intel Boot Guard နည်းပညာ၏လုပ်ဆောင်မှုဆိုင်ရာနည်းပညာဆိုင်ရာဖော်ပြချက်တစ်ခုရရှိစေခဲ့သည်။ Intel ၏လုံခြုံရေးအတွက် လျှို့ဝှက်ချက်အချို့ကို လျှို့ဝှက်ထားသောပုံစံဖြင့် နုတ်ပါ။
  2. စနစ်တွင် uninstallable rootkit တစ်ခုကို ဖန်တီးနိုင်စေမည့် တိုက်ခိုက်မှုအခြေအနေတစ်ခုကို တင်ပြထားသည်။
  3. ခေတ်မီ Intel ပရိုဆက်ဆာများသည် BIOS မစတင်မီတွင်ပင် မူပိုင်ကုဒ်များစွာကို လုပ်ဆောင်နိုင်သည်ကို ကျွန်ုပ်တို့တွေ့မြင်ခဲ့ရသည်။
  4. Intel 64 ဗိသုကာနှင့် ပလပ်ဖောင်းများသည် အခမဲ့ဆော့ဖ်ဝဲလ်ကို အသုံးပြုရန်အတွက် သင့်လျော်မှု နည်းပါးလာသည်- ဟာ့ဒ်ဝဲအတည်ပြုခြင်း၊ ကိုယ်ပိုင်နည်းပညာများနှင့် လုပ်ငန်းခွဲစနစ်များ (SoC chipset တွင် cores သုံးခု- x86 ME၊ x86 ISH နှင့် ARC PMC)။

လျှော့ချရေး

ထုတ်လုပ်မှုမုဒ်ကို ရည်ရွယ်ချက်ရှိရှိ ဖွင့်ထားခဲ့သော ရောင်းချသူများသည် ၎င်းကို ပိတ်ရန် သေချာသင့်သည်။ ယခုအချိန်အထိ ၎င်းတို့၏ မျက်လုံးများကိုသာ ပိတ်ထားပြီး Kaby Lake စနစ်အသစ်က ယင်းကို ပြသထားသည်။

အသုံးပြုသူများသည် Flash Programming Tool ကို -closemnf ပါရာမီတာဖြင့် လုပ်ဆောင်ခြင်းဖြင့် ၎င်းတို့၏စနစ်များ (ဖော်ပြထားသော အားနည်းချက်ကို ခံရနိုင်သည့်) Intel BG ကို ပိတ်နိုင်သည်။ ပထမဦးစွာ၊ FPFs တွင် ပရိုဂရမ်ရေးဆွဲပြီးနောက် ဤနည်းပညာကို ME ဒေသရှိ Intel BG ဖွဲ့စည်းမှုပုံစံက ပိတ်ရန် (MEinfo ကိုအသုံးပြု၍) သေချာစေသင့်သည်။

source: www.habr.com

မှတ်ချက် Add