Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
A daba lati sọkalẹ lọ si ipele kekere lẹẹkansi ati sọrọ nipa aabo famuwia fun awọn iru ẹrọ kọnputa ibaramu x86. Ni akoko yii, eroja akọkọ ti iwadi jẹ Intel Boot Guard (kii ṣe idamu pẹlu Intel BIOS Guard!) - imọ-ẹrọ bata BIOS ti o ni igbẹkẹle ti o ni atilẹyin ohun elo ti olutaja eto kọnputa le mu ṣiṣẹ patapata tabi mu ṣiṣẹ ni ipele iṣelọpọ. O dara, ohunelo iwadi naa ti mọ tẹlẹ si wa: bibẹ pẹlẹbẹ imuse ti imọ-ẹrọ yii nipa lilo imọ-ẹrọ yiyipada, ṣapejuwe faaji rẹ, kikun pẹlu awọn alaye ti ko ni iwe-aṣẹ, akoko pẹlu awọn ipakokoro ikọlu lati ṣe itọwo ati dapọ. Jẹ ki a ṣafikun epo si itan ti bii kokoro kan ti o ti ni cloned fun awọn ọdun ni iṣelọpọ ti awọn olutaja pupọ gba laaye ikọlu ti o pọju lati lo imọ-ẹrọ yii lati ṣẹda rootkit ti o farapamọ ninu eto ti ko le yọkuro (paapaa pẹlu pirogirama).

Nipa ọna, nkan naa da lori awọn ijabọ “Lori Ẹṣọ ti Rootkits: Intel BootGuard” lati apejọ naa. Zeronights 2016 ati ipade 29 DefCon Russia (mejeeji awọn ifarahan nibi).

Famuwia fun pẹpẹ kọmputa kan pẹlu Intel 64 faaji

Ni akọkọ, jẹ ki a dahun ibeere naa: kini famuwia ti pẹpẹ kọnputa ode oni pẹlu faaji Intel 64? Dajudaju, UEFI BIOS. Ṣugbọn iru idahun kii yoo jẹ deede. Jẹ ki a wo aworan naa, eyiti o fihan ẹya tabili tabili (kọǹpútà alágbèéká) ti faaji yii.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Ipilẹ jẹ ọna asopọ:

  • Oluṣeto (Sipiyu, Central Processing Unit), eyiti, ni afikun si awọn ohun kohun akọkọ, ni awọn mojuto awọn eya aworan ti a ṣe sinu (kii ṣe ni gbogbo awọn awoṣe) ati oludari iranti (IMC, Adarí Iranti Integrated);
  • Chipset (PCH, Ipele Adarí Platform), ti o ni ọpọlọpọ awọn olutona fun ibaraenisepo pẹlu awọn ẹrọ agbeegbe ati iṣakoso awọn ọna ṣiṣe. Lara wọn ni Intel Management Engine (ME) ti a mọ daradara, eyiti o tun ni famuwia (Intel ME famuwia).

Kọǹpútà alágbèéká, ni afikun si eyi ti o wa loke, nilo oluṣakoso ti a ṣe sinu rẹ (ACPI EC, Iṣakoso ilọsiwaju ati Oluṣeto Imudanu Ibaraẹnisọrọ Agbara), eyiti o jẹ iduro fun iṣẹ ṣiṣe ti agbara subsystem, touchpad, keyboard, Fn awọn bọtini (imọlẹ iboju, iwọn didun ohun). , backlight keyboard, ati bẹbẹ lọ) ati awọn ohun miiran. Ati pe o tun ni famuwia tirẹ.

Nitorinaa, lapapọ famuwia ti o wa loke jẹ famuwia ti pẹpẹ kọnputa (famuwia eto), eyiti o fipamọ sori iranti filasi SPI ti o wọpọ. Ki awọn olumulo ti iranti yii ko ni idamu nipa ibiti o wa, awọn akoonu ti iranti yii ti pin si awọn agbegbe atẹle (bii o han ninu eeya):

  • UEFI BIOS;
  • ACPI EC famuwia (agbegbe lọtọ han pẹlu Skylake isise microarchitecture (2015), ṣugbọn ni-egan a ko tii ri awọn apẹẹrẹ ti lilo rẹ, nitorinaa famuwia ti oludari ti a ṣe sinu tun wa ninu UEFI BIOS) ;
  • Intel ME famuwia;
  • iṣeto ni (MAC adirẹsi, ati be be lo) ti-itumọ ti ni GbE (Gigabit Ethernet) nẹtiwọki ohun ti nmu badọgba;
  • Awọn apejuwe Filaṣi jẹ agbegbe akọkọ ti iranti filasi ti o ni awọn itọka si awọn agbegbe miiran, ati awọn igbanilaaye lati wọle si wọn.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Ọga ọkọ akero SPI, oludari SPI ti a ṣe sinu chipset, nipasẹ eyiti a ti wọle si iranti yii, jẹ iduro fun raye si iwọle si awọn agbegbe (ni ibamu pẹlu awọn igbanilaaye ti a sọ). Ti a ba ṣeto awọn igbanilaaye si awọn iye iṣeduro Intel (fun awọn idi aabo), lẹhinna olumulo filasi SPI kọọkan ni iraye si kikun (ka/kọ) si agbegbe wọn nikan. Ati awọn iyokù ti wa ni boya kika-nikan tabi inaccessible. Otitọ ti a mọ daradara: lori ọpọlọpọ awọn ọna ṣiṣe, Sipiyu ni iwọle ni kikun si UEFI BIOS ati GbE, iwọle ka nikan si awọn asọye filasi, ko si iwọle si agbegbe Intel ME rara. Kini idi lori ọpọlọpọ, kii ṣe lori gbogbo? Ohun ti a ṣe iṣeduro ko nilo. A yoo sọ fun ọ diẹ sii ni awọn alaye nigbamii ninu nkan naa.

Awọn ọna ẹrọ fun aabo famuwia Syeed kọnputa lati iyipada

O han ni, famuwia ti pẹpẹ kọnputa yẹ ki o ni aabo lati adehun ti o ṣeeṣe, eyiti yoo gba laaye ikọlu ti o pọju lati ni ipasẹ kan ninu rẹ (awọn imudojuiwọn OS ti o ye / awọn fifi sori ẹrọ), ṣiṣẹ koodu wọn ni awọn ipo ti o ni anfani julọ, ati bẹbẹ lọ. Ati ihamọ wiwọle si awọn agbegbe iranti filasi SPI jẹ, dajudaju, ko to. Nitorinaa, lati daabobo famuwia lati awọn iyipada, ọpọlọpọ awọn ọna ṣiṣe ni pato si agbegbe iṣẹ kọọkan ni a lo.

Nitorinaa, famuwia Intel ME ti fowo si lati ṣakoso iduroṣinṣin ati otitọ, ati pe oludari ME ṣe ayẹwo ni gbogbo igba ti o ba gbe sinu iranti ME UMA. Ilana ijerisi yii ti sọrọ tẹlẹ nipasẹ wa ninu ọkan ninu ìwé, igbẹhin si Intel ME subsystem.

Ati ACPI EC famuwia, gẹgẹbi ofin, ti ṣayẹwo nikan fun iduroṣinṣin. Sibẹsibẹ, nitori otitọ pe alakomeji yii wa ninu UEFI BIOS, o fẹrẹ jẹ nigbagbogbo labẹ awọn ilana aabo kanna ti UEFI BIOS nlo. Jẹ ki a sọrọ nipa wọn.

Awọn ọna ṣiṣe wọnyi le pin si awọn ẹka meji.

Kọ aabo ni agbegbe UEFI BIOS

  1. Idaabobo ti ara ti awọn akoonu ti SPI filasi iranti pẹlu a Kọ-dabobo jumper;
  2. Idabobo asọtẹlẹ ti agbegbe UEFI BIOS ni aaye adirẹsi Sipiyu nipa lilo awọn iforukọsilẹ chipset PRx;
  3. Awọn igbiyanju ìdènà lati kọwe si agbegbe UEFI BIOS nipa ṣiṣẹda ati sisẹ idalọwọduro SMI ti o baamu nipa ṣeto awọn bit BIOS_WE/BLE ati SMM_BWP ninu awọn iforukọsilẹ chipset;
  4. Ẹya ti ilọsiwaju diẹ sii ti aabo yii jẹ Ẹṣọ Intel BIOS (PFAT).

Ni afikun si awọn ọna ṣiṣe wọnyi, awọn olutaja le dagbasoke ati ṣe awọn igbese aabo tiwọn (fun apẹẹrẹ, fowo si awọn capsules pẹlu awọn imudojuiwọn UEFI BIOS).

O ṣe pataki lati ṣe akiyesi pe lori eto kan pato (da lori olutaja), kii ṣe gbogbo awọn ọna aabo ti o wa loke le ṣee lo, wọn le ma lo rara, tabi wọn le ṣe imuse ni ọna ipalara. O le ka diẹ sii nipa awọn ilana wọnyi ati ipo pẹlu imuse wọn ninu Arokọ yi. Fun awọn ti o nifẹ si, a ṣeduro pe ki o ka gbogbo lẹsẹsẹ awọn nkan lori aabo UEFI BIOS lati KooduRush.

UEFI BIOS ìfàṣẹsí

Nigba ti a ba sọrọ nipa awọn imọ-ẹrọ bata ti o gbẹkẹle, ohun akọkọ ti o wa si ọkan ni Secure Boot. Bibẹẹkọ, ni ayaworan o jẹ apẹrẹ lati rii daju ododo ti awọn paati ita si UEFI BIOS (awakọ, awọn bata bata, ati bẹbẹ lọ), kii ṣe famuwia funrararẹ.

Nitorinaa, Intel, ni awọn SoCs pẹlu Bay Trail microarchitecture (2012), ṣe imuse ohun elo ti kii ṣe alaabo Secure Boot (Boot Verified), eyiti ko ni nkankan ni wọpọ pẹlu imọ-ẹrọ Boot Secure ti a mẹnuba loke. Nigbamii (2013), ẹrọ yii ni ilọsiwaju ati idasilẹ labẹ orukọ Intel Boot Guard fun awọn kọnputa agbeka pẹlu Haswell microarchitecture.

Ṣaaju ki o to ṣe apejuwe Intel Boot Guard, jẹ ki a wo awọn agbegbe ipaniyan ni Intel 64 faaji, eyiti, ni apapọ, jẹ awọn gbongbo ti igbẹkẹle fun imọ-ẹrọ bata igbẹkẹle yii.

Intel Sipiyu

Fila ni imọran pe ero isise naa jẹ agbegbe ipaniyan akọkọ ni faaji Intel 64. Kini idi ti o jẹ gbongbo ti igbẹkẹle? O wa ni jade pe ohun ti o jẹ ki o jẹ iru ohun-ini ti awọn eroja wọnyi:

  • Microcode ROM jẹ ti kii-iyipada, iranti ti kii ṣe atunkọ fun titoju microcode. O gbagbọ pe microcode jẹ imuse ti eto aṣẹ ero isise nipa lilo awọn ilana ti o rọrun julọ. O ṣẹlẹ ni microcode paapaa idun. Nitorinaa ninu BIOS o le wa awọn alakomeji pẹlu awọn imudojuiwọn microcode (ti a bò lakoko bata, nitori ROM ko le kọkọ kọ). Awọn akoonu ti awọn alakomeji wọnyi jẹ ti paroko, eyiti o ṣe idiju itupalẹ pupọ (nitorinaa, akoonu pato ti microcode nikan ni a mọ si awọn ti o dagbasoke), ati fowo si lati ṣakoso iduroṣinṣin ati otitọ;
  • Bọtini AES fun idinku awọn akoonu ti awọn imudojuiwọn microcode;
  • hash ti bọtini gbogbo eniyan RSA ti a lo lati jẹrisi ibuwọlu ti awọn imudojuiwọn microcode;
  • elile bọtini gbangba RSA, eyiti o jẹrisi ibuwọlu ti Intel-idagbasoke ACM (Module Code Module) awọn koodu koodu, eyiti Sipiyu le ṣe ifilọlẹ ṣaaju ipaniyan BIOS (hello microcode) tabi lakoko iṣẹ rẹ, nigbati awọn iṣẹlẹ kan waye.

Intel ME

Bulọọgi wa ti yasọtọ si eto abẹlẹ yii meji awọn nkan. Jẹ ki a ranti pe agbegbe ipaniyan yii da lori microcontroller ti a ṣe sinu chipset ati pe o farapamọ julọ ati anfani ninu eto naa.

Pelu aṣiri rẹ, Intel ME tun jẹ gbongbo igbẹkẹle nitori pe o ni:

  • ME ROM - ti kii ṣe iyipada, iranti ti kii ṣe atunkọ (ko si ọna imudojuiwọn ti a pese) ti o ni koodu ibẹrẹ, bakanna bi SHA256 hash ti bọtini gbogbogbo RSA, eyiti o jẹrisi ibuwọlu ti famuwia Intel ME;
  • Bọtini AES fun titoju alaye ikoko;
  • wiwọle si kan ti ṣeto ti fuses (FPFs, Field Programmable Fuses) ese sinu chipset fun yẹ ipamọ ti diẹ ninu awọn alaye, pẹlu ti pato nipa awọn kọmputa eto ataja.

Intel Boot Guard 1.x

A kekere disclaimer. Awọn nọmba ẹya imọ-ẹrọ Intel Boot Guard ti a lo ninu nkan yii jẹ lainidii ati pe o le ni nkankan lati ṣe pẹlu nọmba ti a lo ninu iwe inu inu Intel. Ni afikun, alaye ti a pese nibi nipa imuse ti imọ-ẹrọ yii ni a gba lakoko imọ-ẹrọ yiyipada, ati pe o le ni awọn aiṣedeede ni akawe si sipesifikesonu fun Intel Boot Guard, eyiti ko ṣeeṣe lati ṣe atẹjade.

Nitorinaa, Intel Boot Guard (BG) jẹ imọ-ẹrọ ijẹrisi UEFI BIOS ti o ni atilẹyin ohun elo. Ti o ṣe idajọ nipasẹ apejuwe kukuru rẹ ninu iwe [Platform Embedded Security Technology Revealed, Chapter Boot with Integrity, or Not Boot], o ṣiṣẹ bi ẹwọn bata ti o gbẹkẹle. Ati ọna asopọ akọkọ ninu rẹ ni koodu bata (microcode) inu Sipiyu, eyiti o jẹ okunfa nipasẹ iṣẹlẹ RESET (kii ṣe idamu pẹlu fekito RESET ninu BIOS!). Sipiyu wa module koodu ti o ni idagbasoke ati fowo si nipasẹ Intel (Intel BG startup ACM) lori iranti filasi SPI, gbe e sinu kaṣe rẹ, jẹri (o ti ṣe akiyesi tẹlẹ loke pe Sipiyu ni elile ti bọtini gbangba ti o jẹrisi ACM Ibuwọlu) ati bẹrẹ.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard

Module koodu yii jẹ iduro fun ijẹrisi apakan ibẹrẹ kekere ti UEFI BIOS - Ibẹrẹ Boot Block (IBB), eyiti, lapapọ, ni iṣẹ ṣiṣe fun ijẹrisi apakan akọkọ ti UEFI BIOS. Nitorinaa, Intel BG gba ọ laaye lati rii daju otitọ ti BIOS ṣaaju ikojọpọ OS (eyiti o le ṣe labẹ abojuto ti imọ-ẹrọ Boot Secure).

Imọ-ẹrọ Intel BG n pese awọn ipo iṣẹ meji (ati pe ọkan ko dabaru pẹlu ekeji, ie awọn ipo mejeeji le ṣiṣẹ lori eto, tabi mejeeji le jẹ alaabo).

Iwọn Boot

Ni Iwọn Iwọn Boot (MB), paati bata kọọkan (ti o bẹrẹ pẹlu CPU bata ROM) “awọn wiwọn” atẹle nipa lilo awọn agbara ti TPM (Trusted Platform Module). Fun awọn ti ko mọ, jẹ ki n ṣalaye.

TPM ni awọn PCR (Awọn iforukọsilẹ Iṣeto Platform), sinu eyiti abajade iṣẹ ṣiṣe hashing ti kọ ni ibamu si agbekalẹ:

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard

Awon. iye PCR ti o wa lọwọlọwọ da lori ọkan ti tẹlẹ, ati pe awọn iforukọsilẹ wọnyi jẹ atunto nikan nigbati eto naa ba tun.

Nitorinaa, ni ipo MB, ni aaye kan ni akoko, awọn PCR ṣe afihan iyasọtọ kan (laarin awọn agbara ti iṣẹ hashing) idamọ koodu tabi data ti a “diwọn.” Awọn iye PCR le ṣee lo ni diẹ ninu iṣẹ fifi ẹnọ kọ nkan data (TPM_Seal). Lẹhin eyi, yiyọkuro wọn (TPM_Unseal) yoo ṣee ṣe nikan ti awọn iye PCR ko yipada nitori abajade ikojọpọ (ie, kii ṣe paati “idiwọn” kan ti a yipada).

Wadi Boot

Ohun ti o buru julọ fun awọn ti o fẹ lati yipada UEFI BIOS ni ipo Boot Verified (VB), ninu eyiti paati bata kọọkan ni cryptographically jẹrisi iduroṣinṣin ati ododo ti atẹle naa. Ati ninu ọran ti aṣiṣe ijẹrisi, (ọkan ninu) ṣẹlẹ:

  • tiipa nipasẹ akoko isinmi lati iṣẹju 1 si awọn iṣẹju 30 (ki olumulo naa ni akoko lati ni oye idi ti kọnputa rẹ ko ṣe bata, ati, ti o ba ṣeeṣe, gbiyanju lati mu BIOS pada);
  • Tiipa lẹsẹkẹsẹ (ki olumulo ko ni akoko lati ni oye, pupọ kere si, ohunkohun);
  • tẹsiwaju lati ṣiṣẹ pẹlu ikosile ifọkanbalẹ (pe ọran naa nigbati ko si akoko fun ailewu, nitori awọn nkan pataki diẹ sii wa lati ṣe).

Yiyan iṣe da lori iṣeto Intel BG ti a ti sọ tẹlẹ (eyun, lori eyiti a pe ni eto imulo imuṣiṣẹ), eyiti o gbasilẹ nigbagbogbo nipasẹ olutaja pẹpẹ kọnputa ni ibi ipamọ ti a ṣe apẹrẹ pataki - fiusi chipset (FPFs). A yoo gbe lori aaye yii ni awọn alaye diẹ sii nigbamii.

Ni afikun si iṣeto ni, olutaja n ṣe awọn bọtini RSA 2048 meji ati ṣẹda awọn ẹya data meji (ti o han ninu eeya):

  1. Afihan bọtini root ti olutaja (KEYM, OEM Root Key Manifest), eyiti o ni SVN (Nọmba Ẹya Aabo) ti manifesto yii, SHA256 hash ti bọtini gbangba ti ifihan atẹle, bọtini gbangba RSA (ie apakan ti gbogbo eniyan ti bọtini root ti olutaja) lati rii daju ibuwọlu ti manifesto yii ati ibuwọlu funrararẹ;
  2. IBB Manifest (IBBM, Ibẹrẹ Boot Block Manifest), eyiti o ni SVN ti manifesto yii, SHA256 hash ti IBB, bọtini ti gbogbo eniyan fun ijẹrisi ibuwọlu ti iwe-aṣẹ yii ati ibuwọlu funrararẹ.

Hash SHA256 ti bọtini gbangba bọtini OEM ti wa ni igbasilẹ lailai ni awọn fiusi chipset (FPFs), gẹgẹ bi iṣeto Intel BG. Ti iṣeto BG Intel ba pese fun ifisi ti imọ-ẹrọ yii, lẹhinna lati igba yii nikan oniwun ti apakan ikọkọ ti OEM Root Key le ṣe imudojuiwọn BIOS lori eto yii (ie, ni anfani lati tun ṣe iṣiro awọn ifihan wọnyi), ie. ataja.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard

Nigbati o ba n wo aworan naa, awọn iyemeji dide lẹsẹkẹsẹ nipa iwulo fun iru ẹwọn ijẹrisi gigun - wọn le ti lo ifihan kan. Kí nìdí complicate ohun?

Ni otitọ, Intel nitorinaa pese olutaja pẹlu aye lati lo awọn bọtini IBB oriṣiriṣi fun awọn laini oriṣiriṣi ti awọn ọja rẹ ati ọkan bi bọtini root. Ti apakan ikọkọ ti bọtini IBB (pẹlu eyiti a fọwọsi ifihan keji) n jo, iṣẹlẹ naa yoo kan laini ọja kan nikan ati titi ti olutaja yoo ṣe ipilẹṣẹ bata tuntun ati pẹlu awọn ifihan ti a ṣe iṣiro ni imudojuiwọn BIOS atẹle.

Ṣugbọn ti bọtini root (pẹlu eyiti o ti fowo si akọkọ) ti gbogun, kii yoo ṣee ṣe lati paarọ rẹ; ko si ilana ifagile ti a pese fun. hash ti apakan gbangba ti bọtini yii jẹ eto sinu FPF ni ẹẹkan ati fun gbogbo.

Intel Boot Ṣọ iṣeto ni

Bayi jẹ ki a wo isunmọ si iṣeto Intel BG ati ilana ti ṣiṣẹda rẹ. Ti o ba wo taabu ti o baamu ni GUI ti IwUlO Ọpa Aworan Filaṣi lati Apo Ọpa Intel System (STK), iwọ yoo ṣe akiyesi pe iṣeto Intel BG pẹlu elile ti apakan gbangba ti bọtini root ataja, tọkọtaya kan ti koyewa iye, ati be be lo. Intel BG profaili.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard

Ilana ti profaili yii:

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

Ni gbogbogbo, iṣeto Intel BG jẹ nkan ti o rọ pupọ. Wo, fun apẹẹrẹ, asia Force_Boot_Guard_ACM. Nigbati o ba ti yọ kuro, ti module ACM ibẹrẹ BG lori filasi SPI ko ba ri, ko si bata ti o gbẹkẹle yoo waye. Yoo jẹ alaigbagbọ.

A ti kọ tẹlẹ loke pe eto imulo imudani fun ipo VB le jẹ tunto pe ti aṣiṣe ijẹrisi ba wa, igbasilẹ ti ko ni igbẹkẹle yoo waye.

Fi iru nkan bẹẹ silẹ ni lakaye ti awọn olutaja...

IwUlO GUI n pese awọn profaili “ṣetan-ṣe” atẹle wọnyi:

Yara
Ipo
Apejuwe

0
Ko si_FVME
Intel BG ọna alaabo

1
VE
Ipo VB ti ṣiṣẹ, tiipa nipasẹ akoko ipari

2
VME
awọn ipo mejeeji ṣiṣẹ (VB ati MB), tiipa nipasẹ akoko ipari

3
VM
awọn ipo mejeeji ṣiṣẹ, laisi pipa eto naa

4
FVE
Ipo VB ṣiṣẹ, tiipa lẹsẹkẹsẹ

5
FVME
awọn ipo mejeeji ṣiṣẹ, tiipa lẹsẹkẹsẹ

Gẹgẹbi a ti sọ tẹlẹ, iṣeto Intel BG gbọdọ wa ni kikọ ni ẹẹkan ati fun gbogbo nipasẹ olutaja eto sinu awọn fiusi chipset (FPFs) - kekere kan (ni ibamu si alaye ti a ko rii daju, awọn baiti 256 nikan) ibi ipamọ ohun elo ti alaye inu chipset, eyiti o le ṣe eto. ita awọn ohun elo iṣelọpọ Intel (ti o ni idi gangan Aaye siseto Fuses).

O jẹ nla fun titoju iṣeto ni nitori:

  • ni agbegbe ọkan-akoko-eto fun titoju data (gangan ibi ti Intel BG iṣeto ni ti kọ);
  • Intel ME nikan ni o le ka ati ṣeto rẹ.

Nitorinaa, lati ṣeto iṣeto ni fun imọ-ẹrọ Intel BG lori eto kan pato, olutaja ṣe atẹle lakoko iṣelọpọ:

  1. Lilo IwUlO Ọpa Aworan Flash (lati Intel STK), o ṣẹda aworan famuwia pẹlu iṣeto Intel BG ti a fun ni irisi awọn oniyipada laarin agbegbe Intel ME (eyiti a pe ni digi igba diẹ fun FPFs);
  2. Lilo IwUlO Ohun elo Ohun elo Flash (lati Intel STK), o kọwe aworan yii si iranti filasi SPI ti eto ati tilekun ohun ti a pe. ipo iṣelọpọ (ni idi eyi, aṣẹ ti o baamu ni a firanṣẹ si Intel ME).

Bi abajade ti awọn iṣẹ wọnyi, Intel ME yoo ṣe awọn iye ti a sọ pato lati digi fun awọn FPF ni agbegbe ME si awọn FPF, ṣeto awọn ipinnu ni awọn apejuwe filasi SPI si awọn iye ti a ṣe iṣeduro nipasẹ Intel (apejuwe ni ibẹrẹ ti nkan) ati ṣe atunto eto kan.

Onínọmbà ti Intel Boot Guard imuse

Lati ṣe itupalẹ imuse ti imọ-ẹrọ yii ni lilo apẹẹrẹ kan pato, a ṣayẹwo awọn eto atẹle fun awọn itọpa ti imọ-ẹrọ Intel BG:

Eto
Daakọ

Gigabyte GA-H170-D3H
Skylake, atilẹyin wa

Gigabyte GA-Q170-D3H
Skylake, atilẹyin wa

Gigabyte GA-B150-HD3
Skylake, atilẹyin wa

MSI H170A Awọn ere Awọn Pro
Skylake, ko si atilẹyin

Lenovo ThinkPad 460
Skylake, atilẹyin, imọ-ẹrọ ṣiṣẹ

Lenovo Yoga 2 Pro
Haswell, ko si atilẹyin

Lenovo U330p
Haswell, ko si atilẹyin

Nipa "atilẹyin" a tumọ si wiwa Intel BG ibẹrẹ ACM module, awọn ifihan ti a mẹnuba loke ati koodu ti o baamu ni BIOS, ie. imuse fun onínọmbà.

Fun apẹẹrẹ, jẹ ki a mu eyi ti a ṣe igbasilẹ lati ọfiisi. ataja aaye ayelujara aworan ti SPI filasi iranti fun Gigabyte GA-H170-D3H (version F4).

Intel Sipiyu bata ROM

Ni akọkọ, jẹ ki a sọrọ nipa awọn iṣe ti ero isise ti imọ-ẹrọ Intel BG ba ṣiṣẹ.

Ko ṣee ṣe lati wa awọn ayẹwo ti microcode decrypted, nitorinaa bii awọn iṣe ti a ṣalaye ni isalẹ ṣe ṣe imuse (ni microcode tabi ohun elo) jẹ ibeere ṣiṣi. Sibẹsibẹ, o jẹ otitọ pe awọn ilana Intel ode oni “le” ṣe awọn iṣe wọnyi.

Lẹhin ti o jade kuro ni ipo RESET, ero isise naa (awọn akoonu ti iranti filasi ti tẹlẹ ti ya aworan sinu aaye adirẹsi) wa tabili FIT (Tabili Interface Firmware). O rọrun lati wa; itọka si i ni kikọ ni adirẹsi FFFF FFC0h.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Ninu apẹẹrẹ ti o wa labẹ ero, iye FFD6 9500h wa ni adirẹsi yii. Nipa iwọle si adirẹsi yii, ero isise naa rii tabili FIT, awọn akoonu ti o pin si awọn igbasilẹ. Akọsilẹ akọkọ jẹ akọsori ti eto atẹle:

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

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Fun idi kan ti a ko mọ, checksum kii ṣe iṣiro nigbagbogbo ninu awọn tabili wọnyi (aaye naa jẹ osi odo).

Awọn titẹ sii ti o ku ntoka si orisirisi awọn alakomeji ti o nilo lati ṣe itupalẹ / ṣiṣẹ ṣaaju ṣiṣe BIOS, i.e. ṣaaju ki o to yipada si ohun-ini RESET fekito (FFFF FFF0h). Ilana ti titẹ sii kọọkan jẹ bi atẹle:

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

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Aaye EntryType sọ fun ọ iru idinamọ awọn aaye titẹsi yii si. A mọ awọn oriṣi pupọ:

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

Bayi o han gbangba pe ọkan ninu awọn titẹ sii tọka si ipo ti Intel BG ibẹrẹ ACM alakomeji. Ilana akọsori ti alakomeji yii jẹ aṣoju fun awọn modulu koodu ti o dagbasoke nipasẹ Intel (ACM, awọn imudojuiwọn microcode, awọn apakan koodu 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];
};

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Awọn ero isise fifuye yi alakomeji sinu awọn oniwe-kaṣe, wadi o ati ki o nṣiṣẹ o.

Intel BG ibẹrẹ ACM

Bi abajade ti itupalẹ iṣẹ ti ACM yii, o han gbangba pe o ṣe atẹle naa:

  • gba iṣeto ni Intel BG lati Intel ME, ti a kọ sinu awọn fiusi chipset (FPFs);
  • ri KEYM ati IBBM farahan ati ki o mọ daju wọn.

Lati wa awọn ifihan wọnyi, ACM tun nlo tabili FIT, eyiti o ni awọn oriṣi titẹsi meji lati tọka data igbekalẹ (wo FIT_ENTRY_TYPES loke).

Jẹ ká ya a jo wo ni manifestos. Ninu eto ti iṣafihan akọkọ, a rii ọpọlọpọ awọn aiṣedeede ti ko boju mu, hash ti bọtini gbangba lati ifihan keji, ati bọtini OEM Gbongbo Gbongbo ti gbogbo eniyan fowo si bi eto itẹ-ẹiyẹ:

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

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Lati ṣe idaniloju bọtini bọtini gbogbogbo OEM Root, a ranti pe a lo SHA256 hash ti awọn fiusi, eyiti o ti gba tẹlẹ lati ọdọ Intel ME ni aaye yii.

Jẹ ki a lọ si iwe-ifihan keji. O ni awọn ẹya mẹta:

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

Ni igba akọkọ ni diẹ ninu awọn iduro:

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

Ekeji ni hash SHA256 ti IBB ati nọmba awọn alapejuwe ti o ṣe apejuwe awọn akoonu inu IBB (ie, kini hash ti ṣe iṣiro lati):

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

Awọn apejuwe IBB tẹle ilana yii, ọkan lẹhin ekeji. Awọn akoonu inu wọn ni ọna kika wọnyi:

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

O rọrun: oluṣapejuwe kọọkan ni adiresi/iwọn ti chunk IBB. Nitorinaa, isomọ ti awọn bulọọki tọka si nipasẹ awọn alapejuwe wọnyi (ni ilana ti awọn alapejuwe funrararẹ) jẹ IBB. Ati, gẹgẹbi ofin, IBB jẹ ikojọpọ gbogbo awọn modulu ti awọn ipele SEC ati PEI.

Afihan keji ti pari nipasẹ eto ti o ni bọtini gbangba IBB ninu (ti o jẹri nipasẹ SHA256 hash lati ifihan akọkọ) ati ibuwọlu ti iṣafihan yii:

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

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Nitorinaa, paapaa ṣaaju ki UEFI BIOS bẹrẹ ṣiṣe, ero isise naa yoo ṣe ifilọlẹ ACM, eyiti yoo rii daju otitọ ti awọn akoonu ti awọn apakan pẹlu SEC ati koodu alakoso PEI. Nigbamii ti, ero isise naa jade kuro ni ACM, tẹle vector RESET ati bẹrẹ ṣiṣe BIOS.

Ipin PEI ti a rii daju gbọdọ ni module kan ti yoo ṣayẹwo iyokù BIOS (koodu DXE). Yi module ti wa ni tẹlẹ ni idagbasoke nipasẹ IBV (Independent BIOS olùtajà) tabi awọn eto ataja ara. Nitori Awọn eto Lenovo ati Gigabyte nikan wa ni isọnu wa ati pe o ni atilẹyin Intel BG; jẹ ki a wo koodu ti a fa jade lati awọn eto wọnyi.

UEFI BIOS module LenovoVerifiedBootPei

Ninu ọran ti Lenovo, o yipada lati jẹ module LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D}, ti a ṣe nipasẹ Lenovo.

Iṣẹ rẹ ni lati wa soke (nipasẹ GUID) tabili hash fun DXE ati rii daju DXE naa.

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 module BootGuardPei

Ninu ọran Gigabyte, o yipada lati jẹ module BootGuardPei {B41956E1-7CA2-42DB-9562-168389F0F066}, ti o dagbasoke nipasẹ AMI, nitorinaa, wa ni eyikeyi AMI BIOS pẹlu atilẹyin Intel BG.

Algoridimu iṣẹ rẹ jẹ iyatọ diẹ, sibẹsibẹ, o ṣan silẹ si ohun kanna:

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

Tabili hash {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} ti o n wa ni ọna kika wọnyi:

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

Jẹ ki a sọrọ ni ṣoki nipa imuse miiran ti Ẹṣọ Boot Intel, eyiti a rii ni eto tuntun ti o da lori Intel SoC pẹlu microarchitecture Apollo Lake - ASRock J4205-IT.

Botilẹjẹpe ẹya yii yoo ṣee lo nikan ni awọn SoC (awọn eto tuntun pẹlu microarchitecture ero isise Kaby Lake tẹsiwaju lati lo Intel Boot Guard 1.x), o jẹ iwulo nla ni kikọ aṣayan faaji tuntun fun awọn iru ẹrọ Intel SoC, eyiti o ti rii awọn ayipada pataki, fun apẹẹrẹ:

  • awọn agbegbe BIOS ati Intel ME (tabi dipo Intel TXE, ni ibamu si awọn ọrọ-ọrọ fun Intel SoC) jẹ agbegbe IFWI kan bayi;
  • botilẹjẹpe Intel BG ti ṣiṣẹ lori pẹpẹ, awọn ẹya bii FIT, KEYM, IBBM ko rii ni iranti filasi;
  • ni afikun si awọn ohun kohun TXE ati ISH (x86), a ṣe afikun mojuto kẹta si chipset (ARC lẹẹkansi, nipasẹ ọna) - PMC (Aṣakoso Iṣakoso Agbara), ti o ni nkan ṣe pẹlu aridaju iṣẹ ṣiṣe ti agbara subsystem ati ibojuwo iṣẹ.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Akoonu ti agbegbe IFWI tuntun jẹ ṣeto ti awọn modulu wọnyi:

Aiṣedeede
Имя
Apejuwe

0000 2000h
SMIP
kan awọn Syeed iṣeto ni, wole nipasẹ awọn ataja

0000 6000h
RBEP
Intel TXE famuwia koodu apakan, x86, wole Intel

0001 0000h
PMCP
Intel PMC famuwia koodu apakan, ARC, wole Intel

0002 0000h
FTPR
Intel TXE famuwia koodu apakan, x86, wole Intel

0007 B000h
UCOD
awọn imudojuiwọn microcode fun Sipiyu, fowo si nipasẹ Intel

0008 0000h
IBBP
UEFI BIOS, SEC/PEI awọn ipele, x86, fowo si nipasẹ awọn ataja

0021 8000h
ISHC
Intel ISH famuwia koodu apakan, x86, fowo si nipasẹ awọn ataja

0025 8000h
NFTP
Intel TXE famuwia koodu apakan, x86, wole Intel

0036 1000h
IUNP
jẹ aimọ

0038 1000h
OBBP
UEFI BIOS, alakoso DXE, x86, ti ko forukọsilẹ

Lakoko itupalẹ ti famuwia TXE, o han gbangba pe lẹhin atunto, TXE ntọju ero isise ni ipo yii titi yoo fi mura awọn akoonu ipilẹ ti aaye adirẹsi fun Sipiyu (FIT, ACM, RESET vector ...). Pẹlupẹlu, TXE gbe data yii sinu SRAM rẹ, lẹhin eyi o fun ni iwọle si ero isise naa fun igba diẹ ati “tusilẹ” lati atunbere.

Lori oluso lodi si rootkits

O dara, bayi jẹ ki a lọ si nkan “gbona”. A ṣe awari ni ẹẹkan pe lori ọpọlọpọ awọn ọna ṣiṣe, awọn apejuwe filasi SPI ni awọn igbanilaaye lati wọle si awọn agbegbe ti iranti filasi SPI ki gbogbo awọn olumulo ti iranti yii le kọ ati ka eyikeyi agbegbe. Awon. ko ṣee ṣe.

Lẹhin ti ṣayẹwo pẹlu ohun elo MEinfo (lati Intel STK), a rii pe ipo iṣelọpọ lori awọn eto wọnyi ko ni pipade, nitorinaa, awọn fiusi chipset (FPFs) ti wa ni ipo aisọye. Bẹẹni, Intel BG ko tan tabi pa ni iru awọn ọran naa.

A n sọrọ nipa awọn ọna ṣiṣe atẹle (pẹlu n ṣakiyesi Intel BG ati kini yoo ṣe apejuwe nigbamii ninu nkan naa, a yoo sọrọ nipa awọn ọna ṣiṣe pẹlu microarchitecture ero isise Haswell ati giga julọ):

  • gbogbo Gigabyte awọn ọja;
  • gbogbo awọn ọja MSI;
  • Awọn awoṣe 21 ti awọn kọnputa agbeka Lenovo ati awọn awoṣe 4 ti awọn olupin Lenovo.

Nitoribẹẹ, a royin wiwa naa si awọn olutaja wọnyi, ati si Intel.

Ohun deedee lenu wá nikan lati Lenovoti o mọ awọn isoro ati tu alemo kan.

gigabyte Wọn dabi ẹni pe wọn gba alaye naa nipa ailagbara, ṣugbọn ko sọ asọye ni eyikeyi ọna.

Ibaraẹnisọrọ pẹlu MSI da duro patapata lori ibeere wa lati firanṣẹ bọtini PGP ti gbogbo eniyan (lati fi imọran aabo ranṣẹ si wọn ni fọọmu fifi ẹnọ kọ nkan). Wọn sọ pe wọn “jẹ olupese ohun elo ati pe wọn ko ṣe awọn bọtini PGP.”

Ṣugbọn jẹ ki a lọ si aaye naa. Niwọn bi a ti fi awọn fiusi silẹ ni ipo ti a ko sọ pato, olumulo (tabi ikọlu) le ṣe eto wọn ni ominira (ohun ti o nira julọ ni ri Intel STK). Lati ṣe eyi, o nilo lati pari awọn igbesẹ wọnyi.

1. Bata sinu Windows OS (ni gbogbogbo, awọn iṣe ti a ṣalaye ni isalẹ tun le ṣee ṣe labẹ Linux, ti o ba ṣe agbekalẹ afọwọṣe ti Intel STK fun OS ti o fẹ). Lilo MEinfo IwUlO, rii daju wipe fuses ti wa ni ko siseto lori yi eto.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
2. Ka awọn akoonu ti iranti filasi nipa lilo Ọpa siseto Flash.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
3. Ṣii aworan kika ni lilo eyikeyi ohun elo atunṣe UEFI BIOS, ṣe awọn ayipada to ṣe pataki (ṣafihan rootkit kan, fun apẹẹrẹ), ṣẹda / satunkọ KEYM ti o wa tẹlẹ ati awọn ẹya IBBM ni agbegbe ME.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Aworan naa ṣe afihan apakan ti gbogbo eniyan ti bọtini RSA, hash eyiti yoo ṣe eto sinu awọn fiusi chipset pẹlu iyoku ti iṣeto BG Intel.

4. Lilo Ọpa Aworan Filaṣi, kọ aworan famuwia tuntun kan (nipa eto iṣeto Intel BG).

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
5. Kọ aworan tuntun si iranti filasi nipa lilo Ọpa siseto Flash, ati rii daju nipa lilo MEinfo pe agbegbe ME ni iṣeto ni Intel BG bayi.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
6. Lo Ọpa siseto Flash lati pa ipo iṣelọpọ.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
7. Eto naa yoo tun bẹrẹ, lẹhin eyi o le lo MEinfo lati rii daju pe awọn FPF ti ni eto bayi.

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Awọn iṣe wọnyi lai ati lailai jeki Intel BG lori eto yi. Iṣẹ naa ko le ṣe atunṣe, eyiti o tumọ si:

  • Nikan eni ti apakan ikọkọ ti bọtini root (ie, ẹniti o mu Intel BG ṣiṣẹ) yoo ni anfani lati ṣe imudojuiwọn UEFI BIOS lori eto yii;
  • ti o ba da famuwia atilẹba pada si eto yii, fun apẹẹrẹ, lilo pirogirama kan, kii yoo paapaa tan-an (ibajade eto imulo imuṣiṣẹ ni ọran ti aṣiṣe ijẹrisi);
  • Lati yọ iru UEFI BIOS kuro, o nilo lati paarọ chipset pẹlu awọn FPF ti a ṣe eto pẹlu “mimọ” kan (ie, resolder chipset ti o ba ni iwọle si ibudo soldering infurarẹẹdi kan idiyele ọkọ ayọkẹlẹ kan, tabi nirọrun rọpo modaboudu). ).

Lati loye kini iru rootkit le ṣe, o nilo lati ṣe iṣiro ohun ti o jẹ ki o ṣee ṣe lati ṣiṣẹ koodu rẹ ni agbegbe UEFI BIOS. Jẹ ki a sọ, ni ipo ero isise ti o ni anfani julọ - SMM. Iru rootkit le ni awọn ohun-ini wọnyi:

  • ṣiṣẹ ni afiwe pẹlu OS (o le tunto sisẹ lati ṣe idalọwọduro SMI kan, eyiti yoo fa nipasẹ aago);
  • ni gbogbo awọn anfani ti wiwa ni ipo SMM (wiwọle ni kikun si awọn akoonu ti Ramu ati awọn orisun ohun elo, aṣiri lati OS);
  • Koodu eto rootkit le jẹ fifi ẹnọ kọ nkan ati decrypted nigbati o ṣe ifilọlẹ ni ipo SMM. Eyikeyi data ti o wa ni ipo SMM nikan le ṣee lo bi bọtini fifi ẹnọ kọ nkan. Fun apẹẹrẹ, hash kan lati ṣeto awọn adirẹsi ni SMRAM. Lati gba bọtini yii, iwọ yoo nilo lati wọle si SMM. Ati pe eyi le ṣee ṣe ni awọn ọna meji. Wa RCE ni SMM koodu ati ki o nilokulo o, tabi fi ara rẹ SMM module to BIOS, eyi ti o jẹ soro niwon a sise Boot Guard.

Nitorinaa, ailagbara yii ngbanilaaye ikọlu lati:

  • ṣẹda a farasin, undeletable rootkit ti aimọ idi ninu awọn eto;
  • ṣiṣẹ koodu rẹ lori ọkan ninu awọn ohun kohun chipset inu Intel SoC, eyun, lori Intel ISH (ṣọra wo aworan naa).

Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Gbigba lati ayelujara Gbẹkẹle Schrödinger. Intel Boot Guard
Botilẹjẹpe awọn agbara ti ipilẹ-iṣẹ Intel ISH ko tii ṣawari, o han pe o jẹ fekito ikọlu ti o nifẹ fun Intel ME.

awari

  1. Iwadi naa jẹ ki o ṣee ṣe lati gba ijuwe imọ-ẹrọ ti iṣẹ ti imọ-ẹrọ Iboju Boot Intel. Iyokuro awọn aṣiri tọkọtaya kan ni aabo Intel nipasẹ awoṣe aibikita.
  2. Oju iṣẹlẹ ikọlu ti gbekalẹ ti o fun ọ laaye lati ṣẹda rootkit uninstallable ninu eto naa.
  3. A rii pe awọn ilana Intel ode oni ni agbara lati ṣiṣẹ ọpọlọpọ koodu ohun-ini paapaa ṣaaju ki BIOS bẹrẹ ṣiṣe.
  4. Awọn iru ẹrọ pẹlu faaji Intel 64 n dinku ati pe ko dara fun ṣiṣe sọfitiwia ọfẹ: ijẹrisi ohun elo, nọmba ti n pọ si ti awọn imọ-ẹrọ ohun-ini ati awọn ọna ṣiṣe (awọn ohun kohun mẹta ninu chipset SoC: x86 ME, x86 ISH ati ARC PMC).

Awọn idinku

Awọn olutaja ti o mọọmọ fi ipo iṣelọpọ silẹ ni ṣiṣi yẹ ki o rii daju lati tii. Nitorinaa, oju wọn nikan ni pipade, ati awọn eto Kaby Lake tuntun fihan eyi.

Awọn olumulo le mu Intel BG ṣiṣẹ lori awọn eto wọn (eyiti o ni ifaragba si ailagbara ti a ṣalaye) nipa ṣiṣe Ọpa siseto Flash pẹlu paramita -closemnf. Ni akọkọ, o yẹ ki o rii daju (lilo MEinfo) pe iṣeto BG Intel ni agbegbe ME n pese fun pipa imọ-ẹrọ yii lẹhin siseto ni FPFs.

orisun: www.habr.com

Fi ọrọìwòye kun