Schrödinger cothurno confisus. Intel Booz Cohortis

Schrödinger cothurno confisus. Intel Booz Cohortis
Nos iterum ad imum descendere proposuimus et loqui de securitate stabilium x86-compatilium suggestuum computantium. Hoc tempore, principale investigationis medicamentum est Intel Boot Cohortis (non confundendae cum Intel BIOS Custodi!) - ferramentaria BIOS credita technologiae tabernus quod ratio computatralis venditor in scaena productioni perpetuo efficere vel disable potest. Bene iam novimus investigationem recipe: exsequendam technologiae huius technologiam tenuissime secare, architecturae eius describere, implens undocumented details, condire cum vectoribus impetum gustare et miscere. Ignem addamus cum fabula quomodo cimex in productione plurium concionatorum per annos permittit potentem oppugnatorem hac technica uti ad creandum latentem radicem quae amoveri non potest (etiam per programmatorem) in systemate.

Viam, articulus innititur relationibus "De Custodi pro Rootkits: Intel BootGuard" ex colloquio ZeroNights MMXIX ac 29th testimonii DefCon Russia (Utraque presentations hic).

Firmware pro suggestu computatrali cum architectura Intel 64

In primis, ad quaestionem respondeamus: quaenam est firmitudo suggesti computatorii recentioris cum architectura Intel 64? Nempe UEFI BIOS. Sed haec responsio accurate non erit. Inspice figuram quae escritorio (laptop) versionem huius architecturae ostendit.

Schrödinger cothurno confisus. Intel Booz Cohortis
Fundamentum est nexus:

  • Processor (CPU, Processus Centralis Unitus), qui, praeter nucleos principales, in nucleo graphics constructo (non in omnibus exemplaribus) et memoriam moderatoris (IMC, Integrated Memoria Controller);
  • Chipset (PCH, Platform Controller Hub), continens varias moderatores ad mutuas cum periphericis machinis et subsystematibus administrandi. Inter eos notum est Engine Intel Management (ME), quod etiam firmware (Intel ME firmware habet).

Laptops, praeter suprascriptos, moderatorem integralem requirunt (ACPI EC, Provectus Imperium ac Potentia Interface Embedded Controller), qui est responsalis operationi potestatis subsystem, touchpad, claviaturae, Fn clavium (Splendor screen, volumen sonus, claviaturae backlight, etc.) ) et magis. Habet autem et ipse firmitatem suam.

Coniunctio igitur firmware praedictae est firmware suggestus computatricis (ratio firmware), quae in memoria communis SPI mico reponitur. Ut utentes huius memoriae non confundantur ubi quis latet, contenta huius memoriae in partes sequentes (ut in figura ostenditur);

  • UEFI BIOS;
  • ACPI EC firmware (processus microarchitecturae Skylake cum regione separata (2015) apparuit), sed in-fera exempla usus eius nondum vidimus, sic firmware infixa moderatoris pars UEFI BIOS adhuc est);
  • Intel ME firmware;
  • conformatio (inscriptio MAC, etc.) constructi in GbE (Gigabit Ethernet) adaptoris retis;
  • descriptores mico - regione principalis memoriae splendentis, quae indicium ad alias regiones continet, necnon licentias ad eas access.

Schrödinger cothurno confisus. Intel Booz Cohortis
Differentia accessus regionum (secundum permissiones specificatas) tractatur a domino SPI bus - moderatoris SPI in corpulentia aedificata, per quam haec memoria accedit. Si licentiae positae sunt valores per Intel commendatos (ob rationes securitatis) tum, uterque usor mico SPI plenam accessum (legi/scribe) solum ad regionem suam habet. Reliqua aut-tantum aut inaccessa leguntur. Notum factum: in multis systematibus, CPU plenum accessum ad UEFI BIOS et GbE habet, aditum solum ut descriptores micant, nec accessus ad regionem Intel ME omnino habeat. Cur multi et non omnes? Commendatur libitum. Plura dicemus in articulo.

Mechanismi tuendi firmware computatrale tribunal a modificatione

Patet, firmum suggestum computatrale a compromisso possibile defendi debere, quod permitteret invasorem potentialem in ea locum obtinere (superesse OS updates / reinstallations), codicem suum praestantissimis modis exsequi, etc. Aditus ad SPI mico et circumscribendo regiones memoriae, sane, non satis est. Ideo variae machinae specificae ad unumquemque ambitum exsecutionis adhibitae sunt ad firmware a modificationibus tuendis.

Ita, firmware Intel ME signatur pro integritate et authenticitate temperantiae, et a ME moderatore cohibetur singulis diebus in ME UMA memoriam oneratur. Processus verificationis haec iam a nobis agitata est in una e vasadicatum Intel ME subsystem.

Et ACPI EC firmware fere, nonnisi integritatis retunditur. Attamen, ob hoc quod binarius hic in UEFI BIOS comprehenditur, fere semper eidem tutelae mechanismi obnoxii sunt, quibus UEFI BIOS utitur. De illis fama.

Hae machinae in duo genera dividi possunt.

UEFI Bios regionem scribere ad praesidium

  1. Corporis praesidio contenta SPI mico memoriam cum scribe-protegat thoracem laneum;
  2. Tutela proiectionis regionis UEFI BIOS in spatio electronico CPU utentis registris PRx chipset;
  3. Clausus conatus scribere ad UEFI BIOS regionem generando et dispensando correspondentes SMI interrumpendo BIOS_WE/BLE et SMM_BWP frenos in libris incisis constituendo;
  4. Provectior huius praesidii versio est Intel BIOS Cohortis (PFAT).

Praeter has mechanismos, venditores suas rationes securitatis evolvere et efficere possunt (exempli gratia, capsulae signantes cum UEFI BIOS updates).

Interest notandum quod in systemate specifico (dependens a venditore), non omnes machinae praedictae tutelae applicari possunt, omnino applicari non possunt, vel modo vulnerabili perficiantur. Plura legere potes de his mechanismis et de situ earum in exsequendo hoc articulum. Pro iis, quorum interest, commendamus te totam seriem articulorum in UEFI BIOS securitatis legere CodeRush.

UEFI Bios authenticitate comprobatio

Cum loquimur de technologia credita tabernus, prima res quae in mentem venit est Tutus Boot. Nihilominus architectonice ad authenticas partes externas ad UEFI BIOS (coegis, oneratis, etc.) destinatur, et non ipsum firmware.

Ergo Intel in SoCs cum microarchitecture Bay Trail (2012) ferramentum non-switchable Secure Boot (Verified Boot), quod nihil ad rem pertinet cum praefatae technologiae Secure Boot. Postea (2013) haec mechanismus emendatus est et sub nomine Intel Boot Custodi dimissa est pro desktop cum microarchitecture Haswell.

Antequam Cohortis Intel Boot descripseris, inspiciamus ambitus exsecutionis in architectura Intel 64, quae in compositione radices fidei huius technologiae creditae sunt.

CPU Intel

Cap suggerit processus principale esse ambitum ambitus in architectura Intel 64: cur etiam radix fidei? Evenit ut sit possessio elementorum quae ita facit;

  • Microcode ROM est memoria non volatilis, non rescriptabilis ad microcode recondens. Microcode creditur exsecutionem instructionis processus ratio simplicissima instructiones. Microcode quoque accidit bugs. Sic in BIOS binarios invenire potes cum updates microcode (superimposita sunt in caliginoso tempore, quia ROM superscribi non potest). Contentum binariorum horum encryptum est, quod analysin valde implicat (ideo, argumenta microcodei peculiaris iis solis qui eam explicant cognoscuntur), et signatur ad integritatem et sinceritatem moderandam;
  • AES clavis ad minutum contentis in microcode contentis;
  • Nullam RSA clavem publicam quae subscriptionem microcode updates comprobat;
  • RSA clavis publica Nullam, quae subscriptionem Intel-evolutam ACM (codex Module authenticitatis) modulorum codicillos coercet, qui CPU currere possunt antequam BIOS incipit (salve microcode) vel in operatione eius, cum aliqua eventa occurrunt.

Intel ME

Haec subsystem in nostro blog studiosa est duo vasa. Recordare hanc ambitum exsecutabile in microcontroller fabricato in scalpello fundatum esse et in systemate occultissimum et praestantissimum esse.

Quamvis furtim, Intel ME radicem etiam fideicommissam, quia habet;

  • ME ROM - non-volatilis, non rewritabilis memoria (nota renovatio methodi praevisa), continens codicem initio, necnon SHA256 Nullam RSA clavis publici, quae subscriptionem Intel ME firmware coercet;
  • AES key notitia secreta pro repono;
  • accessum ad copia fusorum (FPFs, Field Programmabilium Fusarum) in cortula inserti ad aliquarum informationum perdurantium repositorium, inter informationes a venditore systematis computatricis specificatae.

Intel Booz Cohortis 1.x

Parvus renuntiatio. Numeri versionis technologiae Intel Tabernae Cohortis quas in hoc articulo utimur arbitrariae sunt et nihil facere possunt cum numeratione adhibita in documentis internis Intel. Praeterea informationes de exsecutione huius technologiae hic datae per adversas machinas obtentae sunt, et indiligentias continere possunt ad specificationem pro Intel Boot Custodi comparati, quod verisimile est umquam evulgari.

Sic, Intel Boot Cohortis (BG) ferramentaria subsidia UEFI BIOS authenticas technologias habet. Iudicans per parvam eius descriptionem in libro [Platform Embedded Securitatis Technologiae Revelata, Caput Boot cum Integritate, seu Not Boot], ut creditae catenae tabernus operatur. Et prima nexus in eo est codice tabernus (microcode) intra CPU, qui eventu RESET (non confundendus cum vectore RESET in BIOS!). CPU modulus codicem invenit (Intel BG startup ACM) evolvit et signatum Intel in SPI memoria mico, in cella suum onerat, illud certificat (iam supra notatum est CPU clavem publicam nullam habere quae ACM subscriptionem comprobat. ) et incipit.

Schrödinger cothurno confisus. Intel Booz Cohortis

Hic modulus modulus auctor est cognoscere parvam partem initium UEFI BIOS - Initialis Boot Block (IBB), quae vicissim functionem continet ad comprobandum principalem partem UEFI BIOS. Ita, Intel BG permittit te ut veritas BIOS verificetur antequam OS patuissent (quod fieri potest sub vigilantia technologiae Securis Booz).

Intel BG technologia duos modos operandi praebet (alter non impedit alterum, i.e. uterque modus in systemate efficere potest, et uterque debilitari potest).

metiri Tabernus

In Tabernis Mensuris (MB) modum, singulae componentes tabernus (incipiendo a CPU tabernus ROM) "mensuras" altera utendi capacitatibus Rostris creditorum Module (TPM). Nam qui nesciunt, explicabo.

TPM habet PCRs (Register Configurationis Platform), qui exitum operationis hashing secundum formulam notant:

Schrödinger cothurno confisus. Intel Booz Cohortis

Illae. Praesens PCR valor ex priori pendet, et hi libri tantum retexere cum systema RESET est.

Ita, in MB modus, in aliquo puncto temporis, PCS reflectunt singularem (intra facultates hash operationis) identificantis codicis vel notitiae quae "metiri" erat. PCR valores in encryptione alicuius notitiae (TPM_Seal) adhiberi possunt. Post hoc, eorum decryptio (TPM_Unseal) tantum fieri poterit si PCR valores propter loading (i.e., nulla pars "mensurationis" mutata est.

Verificatur Booz

Res scarissima est iis qui UEFI BIOS mutare libet est Verified Boot (VB) modus, quo unaquaeque cryptographice cothurno componentia integritatem et authenticitatem alterius verificat. Et in casu verificationis erroris, (una sequentium) occurrit;

  • shutdown by timeout from 1 minute to 30 minutes (ita ut tempus usoris cognoscendi cur computatorium suum non tabernus et, si fieri potest, BIOS restituere conetur);
  • immediate shutdown (ut tempus cognoscendi et insuper agenda non habeat);
  • continuation of work with a direct face (est quando tempus nullum est ad salutem, quia plura ad faciendum sunt).

Electio actionis pendet a configuratione Intel BG determinato (nempe e consilio coercitionis sic dicto), quae in perpetuum memoratur a venditore suggesto computatorio in repositione speciali designato - chipset fuses (FPFs). De hac re fusius posthac habitabimus.

Praeter configurationem, venditor duas RSA 2048 claves generat et duas notitias structuras creat (in figura exhibet);

  1. Radix venditoris clavis manifesta (KEYM, OEM Radix Key Manifesta), quae ponit SVN (Securitatis Versionis Number) huius manifesti, SHA256 Nullam clavem publici alterius manifesti, RSA clavem publici publici (i.e. publici partis. clavis radicis venditoris) ad comprobandum huius manifesti subscriptionis et ipsius subscriptionis;
  2. IBB Manifestum (IBBM, Initialis Boot Block Manifestum), quod manifestat SVN, Nullam IBB SHA256, clavis publica ad comprobandum huius manifestae subscriptionis et ipsius subscriptionis subscriptionem.

SHA256 de OEM Radix Clavis detrahe constanter scripta ad fuses (FPFs), sicut configuratione Intel BG. Si configurationem Intel BG providet inclusioni huius technologiae, nunc in hoc systemate solus dominus partis privatae OEM radicis Key BIOS renovare potest (i.e. haec manifesta recalculare poterit), i.e. venditoris.

Schrödinger cothurno confisus. Intel Booz Cohortis

Cum tabulam inspicias, dubia statim oriuntur de necessitate tam longae verificationis catenae - uno manifesto adhiberi potuisti. Quid inpediunt?

Re quidem vera, Intel sic venditori facultatem praebet utendi diversis IBB claves ad diversas lineas productas et unam radicem. Si pars privata clavis IBB (quae signa secunda manifestant) divulgata est, incidentes unam tantum lineam productam afficiet et solum donec venditor novum par generat et recalculata manifestat in altera BIOS renovatio dat.

At si radix clavem suspectus sit (cum quo primum manifestum signatum est), illud succedere non poterit, revocatio procedendi non providetur. Nullam publicae partis huius clavem in FPFs semel programmata est.

Intel Tabernus Cohortis configurationis

Nunc propius inspiciamus de configuratione Intel BG et processu suae creationis. Si tabulam debitam spectes in GUI de Mico Imaginis Instrumentum e Intel Systemate Instrumenti Kit (STK), animadvertes configurationem Intel BG comprehendere Nullam publici partis clavem radicis venditoris, duos obscuros. bona, et sic porro. Intel BG profano.

Schrödinger cothurno confisus. Intel Booz Cohortis

Structura huius profile:

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

In genere, configuratione Intel BG valde flexibilis est. Considera, exempli gratia, vexillum Force_Gard_ACM. Cum purgatum est, si BG startup ACM modulus in SPI mico non invenitur, nulla certa caligo occurret. Infidus erit.

Iam antea scripsimus consilium exactionis pro VB modo configurari posse ut, si verificatione deficiat, iterum fida download occurret.

Relinquere sic concionatoribus...

GUI utilitatis personas "paratas" sequentes praebet:

numerus
regimen immutata
Description

0
No_FVME
Intel BG technology erret

1
VE
VB modus enabled, shutdown per timeout

2
VME
utroque modo enabled (VB and MB), shutdown by timeout

3
VM
utroque modo permittitur, quin systema inclinet

4
FVE
VB modus enabled, statim shutdown

5
FVME
et modos enabled, shutdown statim

Ut iam dictum est, configuratione Intel BG semel et pro omnibus scribenda est a venditore systematis in fusos (FPFs) - parva (secundum certificata informationes, solum 256 bytes) ferramenta informationum repositionis intra corpulentiam, quae programmari potest extra. de Intel productionis facilities (ut 'quare' Ager Programmabilis fuses).

Multum ad nendam configurationem, quia;

  • unum tempus programmabilem notitia tabularium habet (sicut ubi Configuratio Intel BG scripta est);
  • solum Intel ME legere et programmata facere potest.

Itaque, ut configurationem Intel BG technologiae in certa ratione constituendam, venditor hoc in productione facit:

  1. Instrumentum imaginis Flash (ex Intel STK), firmware imaginem creat cum configuratione Intel BG data variabilium intra regionem Intel ME (qualem speculum temporale pro FPFs dictum);
  2. Instrumento programmationis Flash programmandi (ex Intel STK), hanc imaginem scribit ad mico SPI memoriae ratio et sic dicta claudit. modum fabricandi (in hoc casu mandatum correspondens mittitur ad Intel ME).

Propter has operationes Intel ME bonas datas ex speculo pro FPFs in ME regione FPFs tradet, licentias in SPI mico descriptores pone valores ab Intel commendatis (in principio descriptis. articulus) systema praestare RESET.

Intel Boot Cohortis exsequendam Analysis

Ut analysim exsequendam technologiae huius technologici in certo exemplo, sequentia systemata ad vestigia technologiae Intel BG cohibita sumus;

ratio
illud

Gigabyte GA-H170-D3H
Skylake, est firmamentum

Gigabyte GA-Q170-D3H
Skylake, est firmamentum

Gigabyte GA-B150-HD3
Skylake, est firmamentum

MSI H170A Gaming Pro
Skylake, nullum subsidium

II Lenovo ThinkPad
Skylake, auxilium available, technicae enabled

Yoga pro Lenovo 2
Haswell, nullum subsidium

Lenovo U330p
Haswell, nullum subsidium

"Subsidium" significat praesentiam moduli Intel BG startup ACM, manifestat supra memoratas et in BIOS codice respondente, i.e. exsecutiones analysis.

Exemplum, sumamus unum ab officio receptam. vendor site image of SPI flash memory for Gigabyte GA-H170-D3H (versio F4).

Intel CPU tabernus ROM

Imprimis de actionibus processus processus dicamus si technologiae Intel BG facultas datur.

Exemplaria microcode decryptedarum invenire non potuit, ergo quomodo actiones infra descriptae perficiantur (in microcode vel in ferramentis) quaestio aperta est. Nihilominus, quod hodierni processus Intel processores "possunt" has actiones exercere, factum est.

Post exitum RESET status, processus (in cuius spatio inscriptionis contenta fulguri memoria iam praescripta est) invenit PAR (Firmware Tabula interface). Facile reperiens, monstratorem scribitur in inscriptione FFF FFC0h.

Schrödinger cothurno confisus. Intel Booz Cohortis
Hoc exemplo, haec inscriptio valorem FFD6 9500h continet. Cum hac inscriptione conversus, processus tabellam opportunam videt, quarum contenta in tabulas divisa sunt. Primus introitus est titulus sequentis structurae:

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 cothurno confisus. Intel Booz Cohortis
Propter aliquam causam ignotam, checksum in his tabulis non semper computatur (ager nullus relinquitur).

Reliquae tabulae indicant varias binarios qui opus parsed / exsecutioni sunt antequam BIOS exsecutioni mandatur, i.e. ante commutatione ad legatum RESET vector (FFFF FFF0h). Structura cuiuslibet talis introitus talis est:

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 cothurno confisus. Intel Booz Cohortis
Campus EntryType genus impedimenti huius viscus indicat. Plurium generum novimus:

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

Nunc perspicuum est unum ex viscusibus demonstrat situm Intel BG startup ACM binarii. Huius binarii caput structura typica est ad modulorum modulorum ex Intel evoluta (ACMs, microcode updates, sectiones codicis ME Intel, ...).

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 cothurno confisus. Intel Booz Cohortis
Processus hanc binarium in suum cella onerat, verificat et movet.

Intel BG startup ACM

Ex analysi operis huius ACM, manifestum factum est quod haec sequuntur:

  • accipit ex Intel ME figurationem Intel BG scriptam ad fuses corpulentiae (FPFs);
  • invenit KEYM et IBBM manifestat, certificat.

Ad has manifestas inveniendas, ACM mensa etiam apta utitur, quae duo genera viscusrum ad has structuras designandum (vide FIT_ENTRY_TYPES supra).

Propius inspiciamus manifestos. In structura primae manifestae complures obscuras constantes videmus, Nullam clavis publici e secundo manifesto, et OEM Radix Key publica tamquam structura nidificata signatum;

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 cothurno confisus. Intel Booz Cohortis
Ad comprobandum clavem publicam OEM radicis Key, meminimus SHA256 hash e fusibus adhibitam esse, quae hoc momento ab Intel ME iam recepta est.

Ad secundum manifesto transeamus. Constat tribus aedificiis:

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

Prima quaedam constantes continet;

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

Secundus continet SHA256 Nullam IBB et numerum descriptorum qui IBB contenta describunt (i.e. quod Nullam computatur ex);

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

Hanc structuram sequuntur descriptores IBB, alius post alterum. Contentum earum forma sequenti habet:

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

Simplex est: uterque descriptor continet electronicam / magnitudinem IBB FRUSTUM. Ita concatenatio caudicis ab his descriptoribus (in ipso ordine descriptores) demonstrata est IBB. Et fere IBB est omnium serierum sec et PEI modulorum complexus.

Secundus fines manifestus cum structura clavem publicam IBB continentem (per SHA256 e primo manifesto comprobata) et huius manifesti subscriptio:

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

Schrödinger cothurno confisus. Intel Booz Cohortis
Etiam ante initium exsecutionis UEFI BIOS, processus ACM mittet, qui veritatem contentorum sectionum cum SEC et PEI in codice periodo comprobabit. Deinde processus exit ACM, vector RESET movet, et BIOS exequi incipit.

Verificata PEI partitio moduli continere debet qui reliquos BIOS reprehendo (DXE codicem). Cuius moduli iam ab IBV (independent BIOS Vendor) explicantur vel ipsius venditoris ratio. Quod Tantum systemata Lenovo et Gigabyte in promptu nostro evasit et subsidium Intel BG habens, codicem ex his systematibus extractum consideremus.

UEFI BIOS moduli LenovoVerifiedBootPei

In Lenovo casu evenit ut LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D} modulus, a Lenovo elaboratus.

Eius officium est mensam detrahere pro DXE quaerere et cognoscere 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 moduli BootGuardPei

In casu Gigabyte, evenit ut BootGuardPei {B41956E1-7CA2-42DB-9562-168389F0F066} moduli, ab AMI evoluta, et ideo in quolibet AMI BIOS cum auxilio Intel BG praesens.

Algorithmus vero eius operandi aliquantum differt, ad idem ulcera;

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

Mensa Nullam {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} spectat sequentem formam habet:

typedef HASH_TABLE DXE_DESCRIPTORS[];

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

Intel Booz Cohortis 2.x

Breviter dicamus de alia exsecutione custodiae Intel Boot, quae inventa est in recentiore systemate Intel SoC cum microarchitectura Apollinis Lake - ASRock J4205-IT.

Etsi haec versio tantum in SoCs adhibenda est (ratio nova cum processore microarchitecturae Kaby Lake pergito utendi Intel Boot Guard 1.x), magni interest in exploranda nova optione architecturae suggestuum innixum Intel SoCs, quod tangibile viderit. mutationes, exempli gratia:

  • BIOS et Intel ME regiones (vel potius TXE Intel, secundum terminologiam Intel SoC) nunc sunt una regione IFWI;
  • quamquam Intel BG in suggestu dabatur, structurae ut FIT, KEYM, IBBM non inventae sunt in mico memoria;
  • nuclei praeter TXE et ISH (x86), nucleus tertius (iterum ARC obiter) additus est scalpello - PMC (Potentia Management Controller), consociata cum operabilitate potentiae subsystem et perficiendi vigilantia.

Schrödinger cothurno confisus. Intel Booz Cohortis
Contentum novi regionis IFWI est copia sequentium modulorum:

prospectumque Bias
nomine
Description

VI 0000h
SMIP
suggestum aliquod configuratione, a venditore signatum

VI 0000h
RBEP
Intel TXE firmware sectionem codici, x86, ab Intel . signata

VI 0001h
PMCP
firmware sectionem Codicis Intel PMC, ARC, subsignatam Intel

VI 0002h
FTPR
Intel TXE firmware sectionem codici, x86, ab Intel . signata

0007B000h
UCOD
CPU microcode updates signati ab Intel

VI 0008h
IBBP
UEFI BIOS, SEC/PEI augmenta, x86, venditor signati

VI 0021h
ISHC
signum sectionis firmware Intel ISH, x86, a venditore signatae

VI 0025h
NFTP
Intel TXE firmware sectionem codici, x86, ab Intel . signata

VI 0036h
IUNP
incognita

VI 0038h
OBBP
UEFI BIOS, DXE phase, x86, unsigned .

In analysi firmware TXE, apparebat quod post RESET, TXE processus in hoc statu servat, donec praecipua contenta spatii inscriptionis pro CPU praeparet (FIT, ACM, RESET vector ...). Praeterea, TXE hanc notitiam in suo SRAM ponit, post quam ad tempus processus accessum praebet ibi et "dimittit" a RESET.

Ad praesidium rootkits

Age, nunc ad "calidum" proficiscamur. Semel invenimus in multis systematibus SPI mico descriptores licentiam habere accessum regionum SPI memoriae mico, ut omnes huius memoriae utentes scribere possint et legere quamlibet regionem. Illae. nullo modo.

Post reprehendo cum utilitate MEinfo (ex Intel STK), vidimus modum fabricandi in his systematis non clausus esse, ergo fuses (FPFs) in statu indeterminato relicti sunt. Ita, Intel BG in talibus casibus non est datum nec debilitatum.

Loquimur de sequentibus systematibus (de Intel BG et quid postea in articulo dicetur, de systematibus cum Haswell processu microarchitecturae et superiori loquemur);

  • omnia producta Gigabyte;
  • omnes MSI producta;
  • 21 Lenovo laptop exempla et 4 Lenovo servo exempla.

Nimirum his concionatoribus indicavimus, tum ad Intel.

Adaequatum responsum ex modo secuta est Lenovoqui recognoverunt quaestionem et dimisit commissuram.

gigabyte Videtur quod informationes acceperunt de vulnerabilitate, sed nullo modo commentari.

Communicatio cum MSI omnino stabulantur rogatu nostro ut clavem publicam nostram PGP (in ut eos encrypted securitatis advisoriam mitteret). Dicebant se "fabricae ferrariae esse et claves PGP non fabricare".

Sed magis ad rem. Cum fuses in indefinito statu relinquuntur, utentis (vel invasoris) eas ipse proferre potest (difficillissimum est. invenire Intel STK). Hoc sequitur vestigia requirit.

1. Tabernus in Fenestra OS (generaliter, gradus infra descriptos etiam ex sub Linux fieri possunt, si analogum Intel STK pro desiderato OS explicas). Utens utilitate MEinfo, fac ut fuses in hac systemate programmata non sint.

Schrödinger cothurno confisus. Intel Booz Cohortis
2. Lege contenta memoriae mico utens Instrumento programmationis Flash.

Schrödinger cothurno confisus. Intel Booz Cohortis
3. Aperi imaginem legere utens aliquo instrumento UEFI BIOS edendi, mutandis necessariis (exemplum inducendi radixkit), crea / edit existentium KEYM et IBBM structuras in ME regione.

Schrödinger cothurno confisus. Intel Booz Cohortis
Schrödinger cothurno confisus. Intel Booz Cohortis
Publica pars clavis RSA in tabula illustratur, cuius fasciculae in fuscinulas cortinarum cum ceteris configurationis Intel BG programmata erunt.

4. Instrumentum imaginis Flash utens, novam imaginem firmware aedificabis (ponendo configurationem Intel BG).

Schrödinger cothurno confisus. Intel Booz Cohortis
5. Scribere novam imaginem ut splendeat utens Instrumento Flash Programming, comprobando MEinfo utendo nunc ME regionem contineat configurationem Intel BG.

Schrödinger cothurno confisus. Intel Booz Cohortis
6. Instrumento programming Flash utere ad modum fabricandi claudere.

Schrödinger cothurno confisus. Intel Booz Cohortis
7. Systema reboot, quo usus MEinfo cognoscere potes nunc programmata esse FPFs.

Schrödinger cothurno confisus. Intel Booz Cohortis
Haec actiones in perpetuum Intel BG de hac ratione enable. Impossibile erit solvere actionem, quam significat;

  • solus dominus partis privatae radicis clavis (i.e. ille qui Intel BG paravit) UEFI BIOS in hac systemate renovare poterit;
  • si firmware originalem ad hoc systema referas, exempli gratia, programmator usus, ne in (consequens consilium cogendi in eventu erroris verificationis);
  • ad tollendum talem UEFI BIOS, scalpturam cum programmatis FPFs reponere debes cum "purus" (i.e. scalpello resolder si accessum ad stationem solidariam ultrarubrum ad pretium currus accesseris, vel sicut repone matricas. ).

Ad intellegendum quid tale radixkit facere possit, debes aestimare quid sinit exsequi codicem tuum in ambitu UEFI BIOS. Dic, modo praestantissimo processus - SMM. Talis rootkit potest habere sequentes proprietates;

  • parallela cum OS efficiatur (potes configurare processus generando SMI interrumpentem, qui a timer urguetur);
  • omnia commoda entis in SMM modum habent (plenum accessum ad contenta RAM et subsidiorum ferramentorum, ab OS secretum);
  • Code rootkit potest encrypted et decrypted cum deductae in SMM modum. Quaevis notitia in promptu solum in SMM modus adhiberi potest ut clavis encryption. Puta Nullam inscriptionum in SMRAM. Ut hanc clavem, in SMM ascendere debes. Quod quidem potest fieri dupliciter. RCE in codice SMM reperi et abutere, vel tuum SMM moduli ad BIOS adde, quod fieri non potest, quandoquidem Boot Cohortis potuimus.

Sic vulnerabilitas permittit impugnatorem;

  • latentem, immobilem, ignotae propositi ratio;
  • exerce codicem tuum in uno ex cori coriorum corticis Intel SoC intra Intel

Schrödinger cothurno confisus. Intel Booz Cohortis
Schrödinger cothurno confisus. Intel Booz Cohortis
Quamvis facultates subsystem ISH subsystem Intel nondum exploratum esse videtur ut amet impetus vector contra Intel ME.

Inventiones

  1. Studium descriptionem technicam praebebat quomodo opera technologiae Intel Booz Custodiae. Minus duorum secretorum in securitate Intel per obscurum exemplar.
  2. Impugnatio missionis praebetur quae permittit in systemate radiculae immobilis creando.
  3. Vidimus moderni processus Intel processores multum posse exsequi codice proprietatis etiam ante BIOS incohant.
  4. Platformae cum architectura Intel 64 minus ac minus aptae fiunt ad liberorum programmatum currendum: ferramenta verificationis, increscens numerus technologiarum proprietariorum et subsystematum (tres coros in chipset SoC: x86 ME, x86 ISH et ARC PMC).

epieikeias

Venditores, qui consilio deserunt vestibulum modo aperiam sit amet elit. Hactenus, solum oculos claudunt et systemata nova Kaby Lake hoc demonstrant.

Users Intel BG in suis systematibus (quae vulnerabilitate descripti afficiuntur) disable in instrumento programmandi Flash cum -closemnf optione currendo. Primum, fac (utendo MEinfo) configurationem Intel BG in ME regione provideat ut technologiam hanc prorsus avertat post programmationem in FPFs.

Source: www.habr.com

Add a comment