Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Mēs ierosinām vēlreiz nolaisties lÄ«dz zemajam lÄ«menim un runāt par programmaparatÅ«ras x86 saderÄ«gu datoru platformu droŔību. Å oreiz pētÄ«juma galvenā sastāvdaļa ir Intel Boot Guard (nejaukt ar Intel BIOS Guard!) ā€“ ar aparatÅ«ru atbalstÄ«ta BIOS uzticama sāknÄ“Å”anas tehnoloÄ£ija, ko datorsistēmu pārdevējs var pastāvÄ«gi ieslēgt vai izslēgt ražoÅ”anas stadijā. Nu, mēs jau zinām pētÄ«juma recepti: smalki sagrieziet Ŕīs tehnoloÄ£ijas ievieÅ”anu, izmantojot reverso inženieriju, aprakstiet tās arhitektÅ«ru, piepildot to ar nedokumentētām detaļām, papildiniet to ar uzbrukuma vektoriem pēc garÅ”as un sajauciet to. Papildināsim uguni ar stāstu par to, kā gadiem ilgi klonēta kļūda vairāku pārdevēju ražoÅ”anā ļauj potenciālajam uzbrucējam izmantot Å”o tehnoloÄ£iju, lai izveidotu slēptu sakņu komplektu, kuru nevar noņemt (pat programmētājs) sistēmā.

Starp citu, raksts ir balstÄ«ts uz konferences ziņojumiem ā€œOn Guard for Rootkits: Intel BootGuardā€. ZeroNights 2016 un 29. sanāksme DefCon Krievija (abas prezentācijas Å”eit).

Programmaparatūra datora platformai ar Intel 64 arhitektūru

Sākumā atbildēsim uz jautājumu: kāda ir modernas datora platformas programmaparatÅ«ra ar Intel 64 arhitektÅ«ru? Protams, UEFI BIOS. Bet Ŕī atbilde nebÅ«s precÄ«za. ApskatÄ«sim attēlu, kurā parādÄ«ta Ŕīs arhitektÅ«ras darbvirsmas (klēpjdatora) versija.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Pamats ir saite:

  • Procesors (CPU, Central Processing Unit), kuram papildus galvenajiem kodoliem ir iebÅ«vēts grafiskais kodols (ne visos modeļos) un atmiņas kontrolleris (IMC, Integrated Memory Controller);
  • Chipset (PCH, Platform Controller Hub), kas satur dažādus kontrolierus mijiedarbÄ«bai ar perifērijas ierÄ«cēm un apakÅ”sistēmu pārvaldÄ«bai. Starp tiem ir bēdÄ«gi slavenais Intel Management Engine (ME), kuram ir arÄ« programmaparatÅ«ra (Intel ME programmaparatÅ«ra).

Klēpjdatoriem papildus iepriekÅ”minētajam ir nepiecieÅ”ams integrēts kontrolieris (ACPI EC, Advanced Control and Power Interface Embedded Controller), kas ir atbildÄ«gs par baroÅ”anas apakÅ”sistēmas darbÄ«bu, skārienpaliktnis, tastatÅ«ra, Fn taustiņi (ekrāna spilgtums, skaņas skaļums, tastatÅ«ra fona apgaismojums utt.). ) un vairāk. Un viņam ir arÄ« sava programmaparatÅ«ra.

Tātad iepriekÅ” minētās programmaparatÅ«ras kombinācija ir datora platformas programmaparatÅ«ra (sistēmas programmaparatÅ«ra), kas tiek saglabāta kopējā SPI zibatmiņā. Lai Ŕīs atmiņas lietotāji neapjuktu, kur kāds guļ, Ŕīs atmiņas saturs ir sadalÄ«ts Ŕādos reÄ£ionos (kā parādÄ«ts attēlā):

  • UEFI BIOS;
  • ACPI EC programmaparatÅ«ra (ar Skylake procesora mikroarhitektÅ«ru (2015) parādÄ«jās atseviŔķs reÄ£ions, taču mēs vēl neesam redzējuÅ”i tās izmantoÅ”anas piemērus, tāpēc iegultā kontrollera programmaparatÅ«ra joprojām ir daļa no UEFI BIOS);
  • Intel ME programmaparatÅ«ra;
  • iebÅ«vētā GbE (Gigabit Ethernet) tÄ«kla adaptera konfigurācija (MAC adrese utt.);
  • zibatmiņas deskriptori - galvenais zibatmiņas reÄ£ions, kurā ir norādes uz citiem reÄ£ioniem, kā arÄ« atļaujas tiem piekļūt.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Ar piekļuves diferencÄ“Å”anu reÄ£ioniem (saskaņā ar norādÄ«tajām atļaujām) veic SPI kopnes galvenais - mikroshēmojumā iebÅ«vētais SPI kontrolleris, caur kuru tiek piekļūta Å”ai atmiņai. Ja atļaujas ir iestatÄ«tas uz Intel ieteiktajām vērtÄ«bām (droŔības apsvērumu dēļ), katram SPI zibatmiņas lietotājam ir pilna piekļuve (lasÄ«Å”anas/rakstÄ«Å”anas) tikai savam reÄ£ionam. Pārējie ir vai nu tikai lasāmi, vai nav pieejami. Zināms fakts: daudzās sistēmās centrālajam procesoram ir pilna piekļuve UEFI BIOS un GbE, lasÄ«Å”anas piekļuve tikai zibatmiņas deskriptoriem un vispār nav piekļuves Intel ME reÄ£ionam. Kāpēc daudzi un ne visi? Ieteicamais nav obligāts. Mēs jums pastāstÄ«sim vairāk vēlāk rakstā.

Mehānismi datora platformas programmaparatūras aizsardzībai pret modifikācijām

AcÄ«mredzot datora platformas programmaparatÅ«ra ir jāaizsargā no iespējamiem kompromisiem, kas ļautu potenciālajam uzbrucējam tajā nostiprināties (izdzÄ«vot OS atjauninājumus/pārinstalÄ“Å”anu), izpildÄ«t savu kodu priviliģētākajos režīmos utt. Un ar piekļuves ierobežoÅ”anu SPI zibatmiņas reÄ£ioniem, protams, nepietiek. Tāpēc, lai aizsargātu programmaparatÅ«ru no modifikācijām, tiek izmantoti dažādi katrai izpildes videi raksturÄ«gi mehānismi.

Tātad Intel ME programmaparatÅ«ra ir parakstÄ«ta integritātes un autentiskuma kontrolei, un ME kontrolleris to pārbauda katru reizi, kad tā tiek ielādēta ME UMA atmiņā. Mēs jau esam apsprieduÅ”i Å”o verifikācijas procesu vienā no rakstiveltÄ«ta Intel ME apakÅ”sistēmai.

Un ACPI EC programmaparatÅ«ra, kā likums, tiek pārbaudÄ«ta tikai pēc integritātes. Tomēr, ņemot vērā to, ka Å”is binārs ir iekļauts UEFI BIOS, uz to gandrÄ«z vienmēr attiecas tie paÅ”i aizsardzÄ«bas mehānismi, kurus izmanto UEFI BIOS. Parunāsim par tiem.

Šos mehānismus var iedalīt divās kategorijās.

RakstīŔanas aizsardzība UEFI BIOS reģionā

  1. SPI zibatmiņas satura fiziskā aizsardzÄ«ba ar rakstÄ«Å”anas aizsardzÄ«bas džemperi;
  2. UEFI BIOS reÄ£iona projekcijas aizsardzÄ«ba CPU adreÅ”u telpā, izmantojot mikroshēmojuma PRx reÄ£istrus;
  3. Bloķēt mēģinājumus rakstÄ«t uz UEFI BIOS reÄ£ionu, Ä£enerējot un apstrādājot atbilstoÅ”o SMI pārtraukumu, iestatot BIOS_WE / BLE un SMM_BWP bitus mikroshēmojumu reÄ£istros;
  4. Uzlabota Ŕīs aizsardzības versija ir Intel BIOS Guard (PFAT).

Papildus Å”iem mehānismiem pārdevēji var izstrādāt un ieviest savus droŔības pasākumus (piemēram, parakstot kapsulas ar UEFI BIOS atjauninājumiem).

Ir svarÄ«gi atzÄ«mēt, ka konkrētai sistēmai (atkarÄ«bā no pārdevēja) visi iepriekÅ” minētie aizsardzÄ«bas mehānismi var nebÅ«t piemēroti, tie var netikt piemēroti vispār vai arÄ« tie var tikt ieviesti neaizsargātā veidā. Vairāk par Å”iem mehānismiem un situāciju ar to ievieÅ”anu varat lasÄ«t Å is raksts. Tiem, kurus interesē, iesakām izlasÄ«t visu rakstu sēriju par UEFI BIOS droŔību no CodeRush.

UEFI BIOS autentifikācijas pārbaude

Kad mēs runājam par uzticamām sāknÄ“Å”anas tehnoloÄ£ijām, pirmais, kas nāk prātā, ir droŔā sāknÄ“Å”ana. Tomēr arhitektoniski tas ir paredzēts, lai autentificētu komponentus ārpus UEFI BIOS (draiveri, ielādēji utt.), nevis paÅ”u programmaparatÅ«ru.

Tāpēc Intel SoC ar Bay Trail mikroarhitektÅ«ru (2012) ieviesa aparatÅ«ras nepārslēdzamu Secure Boot (Verified Boot), kam nav nekāda sakara ar iepriekÅ” minēto Secure Boot tehnoloÄ£iju. Vēlāk (2013. gadā) Å”is mehānisms tika uzlabots un ar nosaukumu Intel Boot Guard tika izlaists galddatoriem ar Haswell mikroarhitektÅ«ru.

Pirms Intel Boot Guard apraksta, apskatÄ«sim izpildes vides Intel 64 arhitektÅ«rā, kas kopā ir Ŕīs uzticamās sāknÄ“Å”anas tehnoloÄ£ijas uzticÄ«bas saknes.

Intel CPU

Cap liek domāt, ka procesors ir galvenā izpildes vide Intel 64 arhitektÅ«rā. Kāpēc tas ir arÄ« uzticÄ«bas sakne? Izrādās, ka tas ir Ŕādu elementu Ä«paÅ”ums:

  • Mikrokoda ROM ir nepastāvÄ«ga, nepārrakstāma atmiņa mikrokoda glabāŔanai. Tiek uzskatÄ«ts, ka mikrokods ir procesora instrukciju sistēmas ievieÅ”ana pēc vienkārŔākajām instrukcijām. Tas notiek arÄ« mikrokodā bugs. Tātad BIOS var atrast bināros failus ar mikrokoda atjauninājumiem (tie tiek uzlikti sāknÄ“Å”anas laikā, jo ROM nevar pārrakstÄ«t). Å o bināro failu saturs ir Å”ifrēts, kas ievērojami apgrÅ«tina analÄ«zi (tāpēc konkrētais mikrokoda saturs ir zināms tikai tiem, kas to izstrādā), un parakstÄ«ts, lai kontrolētu integritāti un autentiskumu;
  • AES atslēga mikrokoda atjauninājumu satura atÅ”ifrÄ“Å”anai;
  • RSA publiskās atslēgas hash, kas pārbauda mikrokoda atjauninājumu parakstu;
  • RSA publiskās atslēgas hash, kas pārbauda Intel izstrādāto ACM (Authenticated Code Module) koda moduļu parakstu, ko CPU var palaist pirms BIOS palaiÅ”anas (sveiki mikrokods) vai tās darbÄ«bas laikā, kad notiek kādi notikumi.

Intel ME

Å Ä« mÅ«su emuāra apakÅ”sistēma bija veltÄ«ta Š“Š²Šµ Raksts. Atgādiniet, ka Ŕī izpildāmā vide ir balstÄ«ta uz mikrokontrolleri, kas iebÅ«vēts mikroshēmojumā, un tā ir visslēptākā un priviliģētākā sistēmā.

Neskatoties uz slepenību, Intel ME ir arī uzticības sakne, jo tai ir:

  • ME ROM - nepastāvÄ«ga, nepārrakstāma atmiņa (nav paredzēta atjaunināŔanas metode), kas satur sākuma kodu, kā arÄ« RSA publiskās atslēgas SHA256 hash, kas pārbauda Intel ME programmaparatÅ«ras parakstu;
  • AES atslēga slepenās informācijas glabāŔanai;
  • piekļuve mikroshēmojumā integrētam droÅ”inātāju komplektam (FPF, Field Programmable Fuse), lai pastāvÄ«gi saglabātu noteiktu informāciju, tostarp informāciju, ko norādÄ«jis datorsistēmas piegādātājs.

Intel Boot Guard 1.x

Neliela atruna. Intel Boot Guard tehnoloÄ£ijas versiju numuri, ko mēs izmantojam Å”ajā rakstā, ir patvaļīgi, un tiem var nebÅ«t nekāda sakara ar Intel iekŔējā dokumentācijā izmantoto numerāciju. Turklāt Å”eit sniegtā informācija par Ŕīs tehnoloÄ£ijas ievieÅ”anu tika iegÅ«ta reversās inženierijas laikā, un tajā var bÅ«t neprecizitātes salÄ«dzinājumā ar Intel Boot Guard specifikāciju, kas, visticamāk, netiks publicēta.

Tātad Intel Boot Guard (BG) ir aparatÅ«ras atbalstÄ«ta UEFI BIOS autentifikācijas tehnoloÄ£ija. Spriežot pēc tā nelielā apraksta grāmatā [Platform Embedded Security Technology Revealed, Chapter Boot with Integrity, or Not Boot], tā darbojas kā uzticama sāknÄ“Å”anas ķēde. Un pirmā saite tajā ir sāknÄ“Å”anas kods (mikrokods) CPU iekÅ”pusē, ko aktivizē RESET notikums (nejaukt ar RESET vektoru BIOS!). Centrālais procesors atrod SPI zibatmiņā Intel izstrādāto un parakstÄ«tu koda moduli (Intel BG startup ACM), ielādē to keÅ”atmiņā, pārbauda (jau tika minēts iepriekÅ”, ka centrālajam procesoram ir publiskās atslēgas hash, kas pārbauda ACM parakstu. ) un sākas.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs

Å is koda modulis ir atbildÄ«gs par nelielas UEFI BIOS sākuma daļas - Initial Boot Block (IBB) - pārbaudi, kas savukārt satur funkcionalitāti UEFI BIOS galvenās daļas pārbaudei. Tādējādi Intel BG ļauj pārbaudÄ«t BIOS autentiskumu pirms OS sāknÄ“Å”anas (ko var veikt Secure Boot tehnoloÄ£ijas uzraudzÄ«bā).

Intel BG tehnoloÄ£ija nodroÅ”ina divus darbÄ«bas režīmus (un viens netraucē otram, t.i., sistēmā var iespējot abus režīmus un atspējot abus).

Izmērīts Boot

Režīmā Measured Boot (MB) katrs sāknÄ“Å”anas komponents (sākot ar CPU sāknÄ“Å”anas ROM) "mēra" nākamo, izmantojot uzticamās platformas moduļa (TPM) iespējas. Tiem, kas nezina, paskaidrojiet.

TPM ir PCR (platformas konfigurācijas reÄ£istri), kas reÄ£istrē jaukÅ”anas operācijas rezultātu pēc formulas:

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs

Tie. paÅ”reizējā PCR vērtÄ«ba ir atkarÄ«ga no iepriekŔējās, un Å”ie reÄ£istri tiek atiestatÄ«ti tikai tad, kad sistēma ir RESET.

Tādējādi MB režīmā kādā brÄ«dÄ« PCR atspoguļo unikālu (jaukÅ”anas operācijas iespēju robežās) koda vai datu identifikatoru, kas tika "izmērÄ«ts". PCR vērtÄ«bas var izmantot dažu datu Å”ifrÄ“Å”anai (TPM_Seal). Pēc tam to atÅ”ifrÄ“Å”ana (TPM_Unseal) bÅ«s iespējama tikai tad, ja PCR vērtÄ«bas nav mainÄ«juŔās ielādes rezultātā (t.i., nav mainÄ«ts neviens ā€œizmērÄ«taisā€ komponents).

VerifiedBoot

VisbÄ«stamākais tiem, kam patÄ«k modificēt UEFI BIOS, ir Verified Boot (VB) režīms, kurā katrs sāknÄ“Å”anas komponents kriptogrāfiski pārbauda nākamās integritāti un autentiskumu. Un verifikācijas kļūdas gadÄ«jumā notiek (viena no Ŕīm darbÄ«bām):

  • izslēgÅ”ana ar taimautu no 1 minÅ«tes lÄ«dz 30 minÅ«tēm (lai lietotājam bÅ«tu laiks saprast, kāpēc viņa dators netiek sāknēts, un, ja iespējams, mēģinātu atjaunot BIOS);
  • tÅ«lÄ«tēja izslēgÅ”ana (lai lietotājam nebÅ«tu laika saprast un turklāt darÄ«t);
  • darba turpināŔana ar taisnu seju (gadÄ«jums, kad nav laika droŔībai, jo ir svarÄ«gākas lietas, ko darÄ«t).

DarbÄ«bas izvēle ir atkarÄ«ga no norādÄ«tās Intel BG konfigurācijas (proti, no tā sauktās izpildes politikas), ko datora platformas pārdevējs pastāvÄ«gi reÄ£istrē Ä«paÅ”i izveidotā krātuvē - mikroshēmu droÅ”inātāji (FPF). SÄ«kāk par Å”o punktu pakavēsimies vēlāk.

Papildus konfigurācijai piegādātājs ģenerē divas RSA 2048 atslēgas un izveido divas datu struktūras (parādītas attēlā):

  1. Pārdevēja saknes atslēgas manifests (KEYM, OEM saknes atslēgas manifests), kurā tiek ievietots Ŕī manifesta SVN (droŔības versijas numurs), nākamā manifesta publiskās atslēgas SHA256 jaucējvārds, RSA publiskā atslēga (t.i., manifesta publiskā daļa). piegādātāja saknes atslēga), lai pārbaudÄ«tu Ŕī manifesta parakstu un paÅ”u parakstu;
  2. IBB manifests (IBBM, Initial Boot Block Manifest), kas ievieto Ŕī manifesta SVN, IBB SHA256 jaucējkodu, publisko atslēgu Ŕī manifesta paraksta pārbaudei un paÅ”u parakstu.

OEM saknes atslēgas SHA256 jaucējkods tiek pastāvÄ«gi ierakstÄ«ts mikroshēmojuma droÅ”inātājiem (FPF), tāpat kā Intel BG konfigurācija. Ja Intel BG konfigurācija paredz Ŕīs tehnoloÄ£ijas iekļauÅ”anu, tad turpmāk Å”ajā sistēmā BIOS var atjaunināt (t.i. var pārrēķināt Å”os manifestus) tikai OEM Root Key privātās daļas Ä«paÅ”nieks, t.i. pārdevējs.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs

Apskatot attēlu, uzreiz rodas Å”aubas par tik garas verifikācijas ķēdes nepiecieÅ”amÄ«bu - varējāt izmantot vienu manifestu. Kāpēc sarežģīt?

Faktiski Intel tādējādi nodroÅ”ina pārdevējam iespēju izmantot dažādas IBB atslēgas dažādām produktu lÄ«nijām un vienu kā sakni. Ja tiek nopludināta IBB atslēgas privātā daļa (kas paraksta otro manifestu), incidents ietekmēs tikai vienu produktu lÄ«niju un tikai lÄ«dz brÄ«dim, kad piegādātājs Ä£enerēs jaunu pāri un iespējos pārrēķinātos manifestus nākamajā BIOS atjauninājumā.

Bet, ja saknes atslēga ir apdraudēta (ar kuru ir parakstÄ«ts pirmais manifests), to nevarēs aizstāt, atsaukÅ”anas procedÅ«ra netiek nodroÅ”ināta. Ŕīs atslēgas publiskās daļas hash ir vienreiz un uz visiem laikiem ieprogrammēts FPF.

Intel Boot Guard konfigurācija

Tagad apskatÄ«sim tuvāk Intel BG konfigurāciju un tās izveides procesu. Ja skatāties uz atbilstoÅ”o cilni Flash attēla rÄ«ka GUI no Intel System Tool Kit (STK), jÅ«s pamanÄ«sit, ka Intel BG konfigurācijā ir iekļauts pārdevēja saknes atslēgas publiskās daļas jaukums, kas ir daži neskaidri. vērtÄ«bas utt. Intel BG profils.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs

Šī profila struktūra:

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

Kopumā Intel BG konfigurācija ir ļoti elastÄ«ga vienÄ«ba. Apsveriet, piemēram, karodziņu Force_Boot_Guard_ACM. Kad tas ir notÄ«rÄ«ts, ja BG startÄ“Å”anas ACM modulis SPI zibatmiņā netiek atrasts, uzticama sāknÄ“Å”ana nenotiks. Tas bÅ«s neuzticams.

Mēs jau rakstÄ«jām iepriekÅ”, ka VB režīma izpildes politiku var konfigurēt tā, ka, ja verifikācija neizdodas, atkal notiks neuzticama lejupielāde.

Atstājiet Ŕādas lietas pārdevēju ziņā...

Lietderības GUI nodroŔina Ŕādus "gatavus" profilus:

numurs
Režīms
Apraksts

0
Nē_FVME
Intel BG tehnoloģija ir atspējota

1
VE
VB režīms ir iespējots, izslēgÅ”ana pēc taimauta

2
VME
abi režīmi ir iespējoti (VB un MB), izslēgÅ”ana pēc taimauta

3
VM
abi režīmi ir iespējoti, neizslēdzot sistēmu

4
FVE
Iespējots VB režīms, tÅ«lÄ«tēja izslēgÅ”ana

5
FVME
abi režīmi iespējoti, tÅ«lÄ«tēja izslēgÅ”ana

Kā jau minēts, Intel BG konfigurācija sistēmas pārdevējam vienreiz un uz visiem laikiem jāieraksta mikroshēmojuma droÅ”inātājus (FPF) - nelielā (pēc nepārbaudÄ«tās informācijas tikai 256 baiti) aparatÅ«ras informācijas krātuvē mikroshēmojuma iekÅ”pusē, ko var programmēt ārpusē. Intel ražoÅ”anas iekārtām (tāpēc Programmējams lauks droÅ”inātāji).

Tas ir lieliski piemērots konfigurācijas glabāŔanai, jo:

  • ir vienreiz programmējama datu uzglabāŔanas zona (tieÅ”i tur, kur ir rakstÄ«ta Intel BG konfigurācija);
  • to var lasÄ«t un programmēt tikai Intel ME.

Tātad, lai iestatÄ«tu Intel BG tehnoloÄ£ijas konfigurāciju noteiktā sistēmā, pārdevējs ražoÅ”anas laikā veic Ŕādas darbÄ«bas:

  1. Izmantojot Flash Image Tool (no Intel STK), izveido programmaparatūras attēlu ar noteiktu Intel BG konfigurāciju kā mainīgos Intel ME reģionā (tā sauktais pagaidu spogulis FPF);
  2. Izmantojot Flash programmÄ“Å”anas rÄ«ku (no Intel STK), ieraksta Å”o attēlu sistēmas SPI zibatmiņā un aizver t.s. ražoÅ”anas režīms (Å”ajā gadÄ«jumā atbilstoŔā komanda tiek nosÅ«tÄ«ta Intel ME).

Šo darbību rezultātā Intel ME izmantos FPF norādītās vērtības no spoguļa FPFs ME reģionā, iestatīs atļaujas SPI zibspuldzes deskriptoros uz Intel ieteiktajām vērtībām (aprakstītas rakstu) un veiciet sistēmas RESET.

Intel Boot Guard ievieŔanas analīze

Lai analizētu Ŕīs tehnoloÄ£ijas ievieÅ”anu konkrētā piemērā, mēs pārbaudÄ«jām Ŕādas sistēmas, lai noteiktu Intel BG tehnoloÄ£ijas pēdas:

Sistēma
Piezīme

Gigabyte GA-H170-D3H
Skylake, ir atbalsts

Gigabyte GA-Q170-D3H
Skylake, ir atbalsts

Gigabyte GA-B150-HD3
Skylake, ir atbalsts

MSI H170A Gaming Pro
Skyleiks, bez atbalsta

Lenovo ThinkPad 460
Skylake, pieejams atbalsts, iespējota tehnoloģija

Lenovo Joga 2 Pro
Hasvels, bez atbalsta

Lenovo U330p
Hasvels, bez atbalsta

"Atbalsts" nozÄ«mē Intel BG starta ACM moduļa, iepriekÅ” minēto manifestu un atbilstoŔā koda klātbÅ«tni BIOS, t.i. ievieÅ”anas analÄ«zei.

Kā piemēru ņemsim no biroja lejupielādēto. SPI zibatmiņas pārdevēja vietnes attēls Gigabyte GA-H170-D3H (versija F4).

Intel CPU sāknÄ“Å”anas ROM

Vispirms parunāsim par procesora darbībām, ja ir iespējota Intel BG tehnoloģija.

AtÅ”ifrētā mikrokoda paraugus atrast neizdevās, tāpēc tas, kā tālāk aprakstÄ«tās darbÄ«bas tiek realizētas (mikrokodā vai aparatÅ«rā), ir atklāts jautājums. Tomēr fakts, ka mÅ«sdienu Intel procesori "var" veikt Ŕīs darbÄ«bas, ir fakts.

Pēc izieÅ”anas no RESET stāvokļa procesors (kura adreÅ”u telpā jau ir kartēts zibatmiņas saturs) atrod FIT (Firmware Interface Table). Atrast to ir viegli, rādÄ«tājs uz to ir rakstÄ«ts adresē FFFF FFC0h.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Å ajā piemērā Ŕī adrese satur vērtÄ«bu FFD6 9500h. PievērÅ”oties Å”ai adresei, procesors redz FIT tabulu, kuras saturs ir sadalÄ«ts ierakstos. Pirmais ieraksts ir Ŕādas struktÅ«ras virsraksts:

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

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Nezināma iemesla dēļ Å”ajās tabulās ne vienmēr tiek aprēķināta kontrolsumma (lauks ir atstāts tukÅ”s).

AtlikuÅ”ie ieraksti norāda uz dažādiem binārajiem failiem, kas ir jāparsē/jāizpilda pirms BIOS izpildes, t.i. pirms pārslēgÅ”anās uz mantoto RESET vektoru (FFFF FFF0h). Katra Ŕāda ieraksta struktÅ«ra ir Ŕāda:

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

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Lauks EntryType norāda bloka veidu, uz kuru norāda Å”is ieraksts. Mēs zinām vairākus veidus:

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

Tagad ir acÄ«mredzams, ka viens no ierakstiem norāda uz Intel BG startÄ“Å”anas ACM binārā atraÅ”anās vietu. Å Ä« bināra galvenes struktÅ«ra ir raksturÄ«ga Intel izstrādātajiem koda moduļiem (ACM, mikrokoda atjauninājumi, Intel ME koda sadaļas, ...).

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

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Procesors ielādē Å”o bināro failu savā keÅ”atmiņā, pārbauda un palaiž.

Intel BG startēŔanas ACM

Šīs ACM darba analīzes rezultātā kļuva skaidrs, ka tas rīkojas Ŕādi:

  • saņem no Intel ME Intel BG konfigurāciju, kas ierakstÄ«ta mikroshēmojuma droÅ”inātājiem (FPF);
  • atrod KEYM un IBBM manifestus, pārbauda tos.

Lai atrastu Ŕos manifestus, ACM izmanto arī FIT tabulu, kurā ir divu veidu ieraksti, kas norāda uz Ŕīm struktūrām (skatiet iepriekŔ FIT_ENTRY_TYPES).

Apskatīsim manifestus tuvāk. Pirmā manifesta struktūrā mēs redzam vairākas neskaidras konstantes, otrā manifesta publiskās atslēgas jaucējkodu un publisko OEM saknes atslēgu, kas parakstīta kā ligzdota struktūra:

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

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Lai pārbaudÄ«tu OEM saknes atslēgas publisko atslēgu, atgādinām, ka tiek izmantots SHA256 jaucējkods no droÅ”inātājiem, kas Å”obrÄ«d jau ir saņemts no Intel ME.

Pāriesim pie otrā manifesta. Tas sastāv no trim struktūrām:

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

Pirmajā ir dažas konstantes:

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

Otrajā ir ietverts IBB SHA256 jaucējkods un deskriptoru skaits, kas apraksta IBB saturu (t.i., no kā tiek aprēķināts jaukums):

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 deskriptori seko Å”ai struktÅ«rai viens pēc otra. To saturam ir Ŕāds formāts:

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

Tas ir vienkārÅ”i: katrs deskriptors satur IBB gabala adresi/izmēru. Tādējādi bloku savienoÅ”ana, uz kuru norāda Å”ie deskriptori (paÅ”u deskriptoru secÄ«bā), ir IBB. Un, kā likums, IBB ir visu SEC un PEI fāžu moduļu kombinācija.

Otrais manifests beidzas ar struktÅ«ru, kurā ir ietverta IBB publiskā atslēga (pārbaudÄ«ta ar SHA256 jaucējkodu no pirmā manifesta) un Ŕī manifesta paraksts:

typedef struct PMSG
{
	char           Tag[8];            // ā€˜__PMSG__ā€™
	unsigned char  : 8;               // 10h
	BG_RSA_ENTRY   IbbKey;
};

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Tātad, pat pirms UEFI BIOS izpildes sākuma procesors palaidīs ACM, kas pārbaudīs sadaļu satura autentiskumu ar SEC un PEI fāzes kodu. Pēc tam procesors iziet no ACM, pārvietojas pa RESET vektoru un sāk izpildīt BIOS.

PEI pārbaudÄ«tajā nodalÄ«jumā ir jābÅ«t modulim, kas pārbaudÄ«s pārējo BIOS (DXE kodu). Å o moduli jau izstrādā IBV (Independent BIOS Vendor) vai pats sistēmas piegādātājs. Jo MÅ«su rÄ«cÄ«bā izrādÄ«jās tikai Lenovo un Gigabyte sistēmas un ar Intel BG atbalstu, ņemsim vērā no Ŕīm sistēmām izvilkto kodu.

UEFI BIOS modulis LenovoVerifiedBootPei

Lenovo gadījumā izrādījās, ka tas ir Lenovo izstrādātais LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D} modulis.

Tās uzdevums ir uzmeklēt (pēc GUID) DXE jaucējtabulu un pārbaudīt 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 modulis BootGuardPei

Gigabyte gadījumā izrādījās, ka tas ir BootGuardPei {B41956E1-7CA2-42DB-9562-168389F0F066} modulis, ko izstrādājis AMI, un tāpēc tas ir pieejams jebkurā AMI BIOS ar Intel BG atbalstu.

Tās darbības algoritms ir nedaudz atŔķirīgs, taču tas ir vienāds:

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

Jauktabulai {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} ir Ŕāds formāts:

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

ÄŖsi parunāsim par citu Intel Boot Guard ievieÅ”anu, kas tika atrasta jaunākā sistēmā, kuras pamatā ir Intel SoC ar Apollo Lake mikroarhitektÅ«ru ā€“ ASRock J4205-IT.

Lai gan Ŕī versija tiks izmantota tikai SoC (jaunās sistēmas ar Kaby Lake procesora mikroarhitektÅ«ru turpina izmantot Intel Boot Guard 1.x), tā ir ļoti interesanta, lai izpētÄ«tu jaunu arhitektÅ«ras iespēju platformām, kuru pamatā ir Intel SoC un kas ir redzams taustāms. izmaiņas, piemēram:

  • BIOS un Intel ME reÄ£ioni (vai drÄ«zāk Intel TXE, saskaņā ar Intel SoC terminoloÄ£iju) tagad ir viens IFWI reÄ£ions;
  • lai gan platformā bija iespējots Intel BG, tādas struktÅ«ras kā FIT, KEYM, IBBM zibatmiņā netika atrastas;
  • papildus TXE un ISH kodoliem (x86) mikroshēmojumam tika pievienots treÅ”ais kodols (starp citu, atkal ARC) - PMC (Power Management Controller), kas saistÄ«ts ar energoapgādes apakÅ”sistēmas darbÄ«bas nodroÅ”ināŔanu un veiktspējas uzraudzÄ«bu.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Jaunā IFWI reģiona saturs ir Ŕādu moduļu kopa:

Offset
Vārds
Apraksts

0000 2000 stundas
SMIP
kāda platformas konfigurācija, ko parakstījis pārdevējs

0000 6000 stundas
RBEP
Intel TXE programmaparatūras koda sadaļa, x86, parakstījusi Intel

0001 0000 stundas
PMCP
programmaparatūras koda sadaļa Intel PMC, ARC, parakstījusi Intel

0002 0000 stundas
FTPR
Intel TXE programmaparatūras koda sadaļa, x86, parakstījusi Intel

0007B000h
UCOD
CPU mikrokoda atjauninājumi, ko parakstījis Intel

0008 0000 stundas
IBBP
UEFI BIOS, SEC/PEI fāzes, x86, pārdevēja paraksts

0021 8000 stundas
ISHC
koda sadaļa Intel ISH programmaparatūrai x86, ko parakstījis pārdevējs

0025 8000 stundas
NFTP
Intel TXE programmaparatūras koda sadaļa, x86, parakstījusi Intel

0036 1000 stundas
IUNP
nav zināms

0038 1000 stundas
OBBP
UEFI BIOS, DXE fāze, x86, neparakstīts

TXE programmaparatÅ«ras analÄ«zes laikā kļuva skaidrs, ka pēc RESET TXE uztur procesoru Å”ajā stāvoklÄ«, lÄ«dz tas sagatavo CPU adreÅ”u telpas pamata saturu (FIT, ACM, RESET vektors ...). Turklāt TXE ievieto Å”os datus savā SRAM, pēc tam uz laiku nodroÅ”ina procesoram tur piekļuvi un ā€œatbrÄ«voā€ to no RESET.

Uzmanību no rootkit

Nu, tagad pāriesim pie "karstā". Mēs reiz atklājām, ka daudzās sistēmās SPI zibatmiņas deskriptoriem ir atļaujas piekļūt SPI zibatmiņas reÄ£ioniem, lai visi Ŕīs atmiņas lietotāji varētu gan rakstÄ«t, gan lasÄ«t jebkuru reÄ£ionu. Tie. nevar bÅ«t.

Pēc pārbaudes ar utilÄ«tu MEinfo (no Intel STK), mēs redzējām, ka Å”ajās sistēmās ražoÅ”anas režīms nebija slēgts, tāpēc mikroshēmu droÅ”inātāji (FPF) tika atstāti nenoteiktā stāvoklÄ«. Jā, Ŕādos gadÄ«jumos Intel BG nav ne iespējots, ne atspējots.

Mēs runājam par Ŕādām sistēmām (attiecÄ«bā uz Intel BG un to, kas tiks aprakstÄ«ts vēlāk rakstā, mēs runāsim par sistēmām ar Haswell procesora mikroarhitektÅ«ru un augstāku):

  • visi Gigabyte produkti;
  • visi MSI produkti;
  • 21 Lenovo klēpjdatoru modeļi un 4 Lenovo serveru modeļi.

Protams, mēs ziņojām par atradumu Å”iem pārdevējiem, kā arÄ« Intel.

Adekvāta atbilde sekoja tikai no LenovokurÅ” atzina problēmu un izlaida plāksteri.

Gigabyte Šķiet, ka viņi pieņēma informāciju par ievainojamību, taču nekādus komentārus nesniedza.

Saziņa ar MSI pilnÄ«bā apstājās pēc mÅ«su pieprasÄ«juma nosÅ«tÄ«t mÅ«su publisko PGP atslēgu (lai nosÅ«tÄ«tu viņiem Å”ifrētu droŔības ieteikumu). Viņi paziņoja, ka viņi "ir aparatÅ«ras ražotāji un neražo PGP atslēgas".

Bet vairāk par lietu. Tā kā droÅ”inātāji ir atstāti nenoteiktā stāvoklÄ«, lietotājs (vai uzbrucējs) var tos ieprogrammēt pats (visgrÅ«tākais ir atrodiet Intel STK). Tam nepiecieÅ”amas Ŕādas darbÄ«bas.

1. Sāknējiet operētājsistēmā Windows OS (vispārÄ«gi tālāk aprakstÄ«tās darbÄ«bas var veikt arÄ« no Linux, ja vēlamajai operētājsistēmai izstrādājat Intel STK analogu). Izmantojot MEinfo utilÄ«tu, pārliecinieties, vai Ŕīs sistēmas droÅ”inātāji nav ieprogrammēti.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
2. Lasiet zibatmiņas saturu, izmantojot Flash programmÄ“Å”anas rÄ«ku.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
3. Atveriet lasÄ«to attēlu, izmantojot jebkuru UEFI BIOS rediģēŔanas rÄ«ku, veiciet nepiecieÅ”amās izmaiņas (ieviesiet, piemēram, rootkit), izveidojiet / rediģējiet esoŔās KEYM un IBBM struktÅ«ras ME reÄ£ionā.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Attēlā ir izcelta RSA atslēgas publiskā daļa, kuras hash tiks ieprogrammēts mikroshēmojuma droÅ”inātos kopā ar pārējo Intel BG konfigurāciju.

4. Izmantojot Flash Image Tool, izveidojiet jaunu programmaparatūras attēlu (iestatot Intel BG konfigurāciju).

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
5. Uzrakstiet jaunu attēlu zibspuldzei, izmantojot Flash programmÄ“Å”anas rÄ«ku, pārbaudiet, izmantojot MEinfo, vai ME reÄ£ionā tagad ir Intel BG konfigurācija.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
6. Izmantojiet Flash programmÄ“Å”anas rÄ«ku, lai aizvērtu ražoÅ”anas režīmu.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
7. Sistēma tiks atsāknēta, un pēc tam, izmantojot MEinfo, varat pārbaudīt, vai FPF tagad ir ieprogrammēti.

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Å Ä«s darbÄ«bas uz visiem laikiem iespējot Intel BG Å”ajā sistēmā. DarbÄ«bu nevarēs atsaukt, kas nozÄ«mē:

  • tikai saknes atslēgas privātās daļas Ä«paÅ”nieks (t.i., tas, kurÅ” iespējoja Intel BG) varēs atjaunināt UEFI BIOS Å”ajā sistēmā;
  • ja atgriežat Å”ai sistēmai oriÄ£inālo programmaparatÅ«ru, piemēram, izmantojot programmētāju, tā pat neieslēdzas (pārbaudes kļūdas gadÄ«jumā tas ir izpildes politikas sekas);
  • Lai atbrÄ«votos no Ŕādas UEFI BIOS, mikroshēmojums ir jāaizstāj ar ieprogrammētiem FPF ar ā€œtÄ«ruā€ (t.i., pārlodējiet mikroshēmu, ja ir pieejama infrasarkanā lodÄ“Å”anas stacija par automaŔīnas cenu, vai vienkārÅ”i nomainiet mātesplati. ).

Lai saprastu, ko var darÄ«t Ŕāds rootkit, jums ir jāizvērtē, kas ļauj izpildÄ«t jÅ«su kodu UEFI BIOS vidē. Teiksim, procesora priviliģētākajā režīmā - SMM. Šādam rootkit var bÅ«t Ŕādas Ä«paŔības:

  • jāizpilda paralēli OS (apstrādi var konfigurēt, Ä£enerējot SMI pārtraukumu, ko aktivizēs taimeris);
  • ir visas SMM režīma priekÅ”rocÄ«bas (pilna piekļuve RAM saturam un aparatÅ«ras resursiem, slepenÄ«ba no OS);
  • Rootkit kodu var Å”ifrēt un atÅ”ifrēt, kad tas tiek palaists SMM režīmā. Jebkurus datus, kas pieejami tikai SMM režīmā, var izmantot kā Å”ifrÄ“Å”anas atslēgu. Piemēram, jaucējkods no adreÅ”u kopas SMRAM. Lai iegÅ«tu Å”o atslēgu, jums bÅ«s jāiekļūst SMM. Un to var izdarÄ«t divos veidos. Atrodiet RCE SMM kodā un izmantojiet to vai pievienojiet savu SMM moduli BIOS, kas nav iespējams, jo esam iespējojuÅ”i Boot Guard.

Tādējādi Ŕī ievainojamÄ«ba ļauj uzbrucējam:

  • izveidot sistēmā slēptu, nenoņemamu rootkit ar nezināmu mērÄ·i;
  • izpildiet savu kodu vienā no mikroshēmojuma kodoliem Intel SoC iekÅ”ienē, proti, Intel ISH (skatiet attēlu tuvāk).

Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Å rēdingera uzticamais zābaks. Intel sāknÄ“Å”anas aizsargs
Lai gan Intel ISH apakÅ”sistēmas iespējas vēl nav izpētÄ«tas, Ŕķiet, ka tas ir interesants uzbrukuma vektors pret Intel ME.

Atzinumi

  1. PētÄ«jumā tika sniegts tehnisks apraksts par to, kā darbojas Intel Boot Guard tehnoloÄ£ija. MÄ«nus pāris Intel droŔības noslēpumu, izmantojot neskaidrÄ«bas modeli.
  2. Tiek parādīts uzbrukuma scenārijs, kas ļauj sistēmā izveidot nenoņemamu rootkit.
  3. Mēs esam redzējuÅ”i, ka mÅ«sdienu Intel procesori spēj izpildÄ«t daudz patentēta koda pat pirms BIOS palaiÅ”anas.
  4. Platformas ar Intel 64 arhitektÅ«ru kļūst arvien mazāk piemērotas bezmaksas programmatÅ«ras darbināŔanai: aparatÅ«ras pārbaude, arvien vairāk patentētu tehnoloÄ£iju un apakÅ”sistēmu (trÄ«s kodoli SoC mikroshēmojumā: x86 ME, x86 ISH un ARC PMC).

Atvieglojumi

Pārdevējiem, kuri apzināti atstāj atvērtu ražoÅ”anas režīmu, tas noteikti ir jāaizver. Pagaidām viņi tikai aizver acis, un jaunās Kaby Lake sistēmas to parāda.

Lietotāji var atspējot Intel BG savās sistēmās (kuras ietekmē aprakstÄ«tā ievainojamÄ«ba), palaižot Flash programmÄ“Å”anas rÄ«ku ar opciju -closemnf. Pirmkārt, jums jāpārliecinās (izmantojot MEinfo), vai Intel BG konfigurācija ME reÄ£ionā nodroÅ”ina precÄ«zu Ŕīs tehnoloÄ£ijas izslēgÅ”anu pēc programmÄ“Å”anas FPF.

Avots: www.habr.com

Pievieno komentāru