Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 8
  • Cum se dezactivează cardul integrat pe un laptop. Cum se dezactivează Intel HD Graphics

Cum se dezactivează cardul integrat pe un laptop. Cum se dezactivează Intel HD Graphics

), folosesc un al doilea procesor grafic discret pentru a le rula, în timp ce se întreabă cum să dezactiveze placa video încorporată.

Capacitățile acestui adaptor video integrat sunt suficiente pentru a rula cele mai comune aplicații.

Aplicația Catalyst pentru plăcile video Radeon are opțiuni similare pentru dezactivarea plăcilor, dar în secțiunea Power (articolul Switchable Graphics).

Cu toate acestea, în unele cazuri (în special pe laptopuri - de exemplu, pe Asus sau Lenovo), astfel de metode nu ajută, iar placa video nu este dezactivată nici de hardware (folosind Windows sau panouri de control adaptoare) sau fizic (sau pur și simplu a fost nu se poate afla prezența și locația jumperului).

Metoda 3. Cum se oprește cardul prin BIOS?

Pentru a opri placa video din BIOS, reporniți computerul. La începutul pornirii computerului, o tastă este apăsată pentru a intra în BIOS (de obicei Del, F2 sau F10).

Pachetul software de control este diferit pentru fiecare computer, iar aspectul meniului poate diferi.

Cu toate acestea, în majoritatea cazurilor, intrarea în el arată astfel:

După ce placa video integrată este găsită, valoarea parametrului din fața acesteia este schimbată de la Activat la Dezactivat.

Fiecare computer modern cu un procesor Intel conține un cal troian hardware numit Management Engine. În mod oficial, aceasta este o caracteristică pentru administratori de sistem, care, desigur, a fost creată pentru confortul nostru. De fapt, este o formă legalizată de urmărire a fiecărui utilizator. Alegerea sistemului de operare nu afectează nimic, deoarece Intel ME funcționează într-un mod complet autonom.

Intel ME

Ce este Intel Management Engine și de ce este necesar

O caracteristică interesantă a Intel Management Engine este capacitatea de a funcționa atunci când computerul este oprit, cu condiția ca alimentarea să fie menținută din rețea. Un computer care este inactiv sau oprit poate continua comunicarea în rețea. Din acest motiv, primele versiuni ale Management Engine au fost integrate în controlerul de rețea, dar apoi hardware-ul ME a fost mutat într-un loc mai retras.

A doua caracteristică intrigantă a ME este independența sa absolută față de procesorul central. Acest lucru oferă serviciilor speciale două oportunități foarte, foarte plăcute simultan:

  • În primul rând, puteți pune interfața de rețea în modul de interceptare și niciun program, chiar și teoretic, nu este capabil să detecteze acest lucru și să avertizeze utilizatorul. Toate programele speciale care curăță troienii și rootkit-urile se uită în primul rând la interfețele disponibile și le verifică pentru activarea modului promiscuu. Dacă modul este activ și utilizatorul nu l-a cerut în mod explicit, atunci acest fapt va fi considerat ca o dovadă a prezenței unui software rău intenționat. Motorul de management ia în considerare această nuanță și toate operațiunile sunt efectuate fără implicarea procesorului. Se dovedește a fi troianul perfect invizibil.
  • În al doilea rând, utilizatorul este garantat că nu va putea dezactiva Management Engine, deoarece troianul este un sistem aproape autonom. Cuvântul „aproape” este folosit deoarece RAM-ul partajat este încă folosit într-un anumit stadiu al inițializării ME. Dar inginerii Intel s-au asigurat că își ascund troianul hardware în cel mai fiabil mod. ME prin BIOS solicită alocarea RAM. BIOS-ul alocă cantitatea specificată și... marchează acest fragment cu un steag special. După aceea, procesorul nu poate accesa memoria alocată chiar și atunci când funcționează la cel mai înalt nivel de autoritate. Astfel, utilizatorul nu numai că nu poate elimina ME, dar nici măcar nu poate perturba temporar funcționarea acestuia prin modificarea datelor din RAM.

Cum se dezactivează Intel Management Engine

Acest lucru este greu de făcut. Hamsterii cu Windows în acest moment pot termina de citit. Linuxoizii fără cunoștințe profunde despre hardware pot trece și ei prin pădure. Cei care au rămas sunt invitați să viziteze site-ul cu minunatul pachet miracol Libreboot. Libreboot este un întreg set de programe concepute, după cum sugerează și numele, pentru a elibera componenta hardware a boot-ului de tot felul de spyware.

După cum am menționat mai sus, troianul de la Intel nu folosește procesorul în activitatea sa. Prin urmare, rularea Libreboot pe computerul principal nu va face nimic. Iubitorul de libertate va avea nevoie de un programator extern special. Din fericire, costă un ban și se vinde de pe site. Cel mai popular model este BeagleBone Black.

După ce ați obținut acest dispozitiv, trebuie să deschideți computerul și să găsiți microcircuitul troian. Arata cam asa:

Și conectați programatorul la el:

Aceasta completează partea dificilă și rămâne să copiați și să lipiți câteva comenzi. Mergem la dispozitivul miracol prin ssh și tastăm:

[email protected]: / dev / shm # / opt / flashrom / flashrom -p linux_spi: dev = / dev / spidev1.0, spispeed = 4096

Așa aflăm versiunea și modelul cipului. Acum facem un dump de firmware:

[email protected]: / dev / shm # / opt / flashrom / flashrom -p linux_spi: dev = / dev / spidev1.0, spispeed = 4096 [-c< model>] -r factory_x220.bin

Să extragem codul BIOS din dump. Utilitarul ifdtool din kitul coreboot vă va ajuta în acest sens.

Ifdtool -x factory_x220.bin

Acum cel mai important moment: dezactivarea unui troian de la Intel folosind un utilitar miraculos numit me_cleaner de la un mare iubitor de Linux Nicolas Corner:

Me_cleaner.py intel_me.bin

Să scriem BIOS-ul modificat înapoi în imaginea firmware:

Ifdtool -i ME: intel_me.bin factory_x220.bin

Să transferăm firmware-ul modificat înapoi pe BeagleBone Black prin scp și să flashăm cipul spion cu firmware-ul modificat cu ME dezactivat.

Scp -C factory_x220.bin.new [email protected] beaglebone.local: / dev / shm [email protected] beaglebone: / dev / shm # / opt / flashrom / flashrom -VVp linux_spi: dev = / dev / spidev1.0, spispeed = 4096 [-c ] -w factory_x220.bin.new

Gata. Acum computerul poate fi considerat cu adevărat fără supraveghere. Și amintiți-vă, troianul hardware Intel Management Engine transformă orice computer într-un instrument de urmărire și control. Sistemul de operare pe care îl utilizați nu contează - ME funcționează complet offline. Procedura descrisă mai sus este complexă și amenință cu defecțiuni dacă instrumentele prezentate sunt utilizate greșit. Dar nu există alte modalități de a obține un computer protejat de interceptări telefonice.

Din ce în ce mai des apar întrebări despre dezactivarea plăcii video încorporate în computer și activarea unei plăci video externe. Există multe motive pentru a dezactiva Intel HD Graphics. Cel mai obișnuit exemplu este o problemă în jocurile mai vechi pentru computer, care se poate tăia mult.

Ei bine... nu am cumpărat cel mai bun hardware pentru a renunța la suport suplimentar. În acest articol, vă vom arăta o modalitate ușoară de a dezactiva Intel HD Graphics integrat.

Vom explica pas cu pas folosind exemplul celui mai popular model de placă grafică găsit în computere și laptopuri, NVIDIA GeForce.

Odată cu instalarea driverului pentru placa video GeForce, primim software-ul pentru gestionarea setărilor plăcii - „NVIDIA Control Panel”. Appletul este accesibil din panoul de control.

În primul rând, trebuie să ajungem la panoul de control. O metodă generică care funcționează pe Windows XP, Vista, Windows 7 și Windows 8 este de a invoca fereastra Run. Pentru Windows XP, Vista, Windows 7 și Windows 8, cel mai simplu mod de a-l invoca este apăsând combinația de taste WIN + R, apoi introduceți control sau control.exe.

Pe panoul de control (pictograme mici), selectați panoul de control NVIDIA. Când este vizualizat în modul categorie, NVIDIA poate fi găsit în secțiunea Aspect și personalizare.

De asemenea, puteți utiliza pictograma setărilor NVIDIA găsită în bara de sistem sau în meniul contextual - „Schimbați GPU-ul implicit”.

Pentru a dezactiva grafica Intel HD integrată, accesați fila „Gestionați setările 3D”.

În mod implicit, GPU-ul preferat este selectat automat. Schimbați selecția automată la un procesor NVIDIA de înaltă performanță și confirmați modificările făcând clic pe butonul „Aplicați”.

Putem schimba si selectiv placa video preferata, in raport cu un anumit program (joc). În acest scop, folosim o altă filă - „Setări program”. Indicăm aplicația sau jocul, după care indicăm placa video necesară din lista derulantă.

O soluție și mai ușoară pentru dezactivarea Intel HD Graphics este utilizarea meniului contextual. Când faceți clic dreapta (scurt) pe fișierul jocului sau al aplicației, selectați din meniul „Run with a graphics processor” - „NVIDIA processor with high performance”.

În cazul plăcilor ATI (Radeon), procedura este similară. Totul poate fi configurat prin Centrul de control al Catalyst în secțiunea de gestionare a energiei PowerPlay (grafică comutabilă).

În unele cazuri, poate fi necesară dezactivarea plăcii video integrate folosind BIOS-ul computerului. Această funcție de dezactivare a plăcii grafice integrate poate fi denumită diferit, de exemplu, Adaptorul grafic primar (PCI, PCI Express și OnBoard / Internal) sau GPU integrat cu opțiunile Enable If No Ext PEG și Always Enable.

Dacă aveți dubii, asigurați-vă că citiți instrucțiunile furnizate cu computerul/laptop-ul sau întrebați pe forumuri și/sau în comentariile articolului.

Metodele de mai sus nu dezactivează complet placa video integrată. O oprire completă este posibilă numai prin BIOS. Cu toate acestea, cea mai sigură soluție este să instalați selecția plăcii grafice din sistemul de operare. Apoi suportul pentru jocuri și aplicații se realizează prin procesorul plăcii video externe.

Intel ME Technology (sau AMT, Active Management Technology) este unul dintre cele mai misterioase și puternice elemente ale platformelor x86 moderne. Instrumentul a fost conceput inițial ca o soluție de administrare la distanță. Cu toate acestea, are o funcționalitate atât de puternică și este atât de departe de controlul utilizatorilor de dispozitive bazate pe Intel, încât mulți dintre ei ar dori să dezactiveze această tehnologie, ceea ce nu este atât de ușor de realizat.

La forumul Positive Hack Days VI desfășurat pe 17 și 18 mai la Moscova, cercetătorii Positive Technologies Maxim Goryachy și Mark Ermolov au prezentat mai multe tehnici de dezactivare a Intel ME, însoțite de o demonstrație video a procesului.

Ce este și de ce trebuie să vă deconectați

Intel Management Engine (ME) este un procesor suplimentar „ascuns” care este prezent în toate dispozitivele bazate pe chipset-uri Intel (nu doar în PC-uri și laptop-uri, ci și în servere). ME runtime nu „dormite” niciodată și funcționează chiar și atunci când computerul este oprit (dacă există o tensiune de așteptare) și are, de asemenea, acces la RAM, interfață de rețea, controler USB și adaptor grafic integrat.

În ciuda unor astfel de oportunități vaste, există întrebări cu privire la nivelul de securitate al ME - cercetătorii anteriori au descoperit deja vulnerabilități grave și vectori de atac. În plus, subsistemul conține funcții potențial periculoase - telecomandă, NFC, partiție de serviciu ascunsă. Interfețele ME sunt nedocumentate, iar implementarea este proprietară.

Toate aceste motive duc la faptul că mulți consideră tehnologia ME ca o „bucă de hardware”. Situația este agravată de faptul că, pe de o parte, utilizatorul dispozitivului nu are capacitatea de a dezactiva această funcționalitate, iar pe de altă parte, producătorul de echipamente poate face greșeli în configurația ME.

Vestea bună este că încă mai există modalități de a ME dezactiva.

Tehnici de oprire Intel ME

Cercetătorii de la Positive Technologies Maxim Goryachy și Mark Ermolov au prezentat un raport despre închiderea Intel ME la forumul Positive Hack Days VI de la Moscova. Experții au descris mai multe tehnici pentru dezactivarea acestui subsistem:
  1. Inițializare ME bazată pe eșec;
  2. Prin mecanismul de actualizare a firmware-ului ME;
  3. Comenzi nedocumentate
  4. Mecanism nedocumentat destinat dezvoltatorilor de hardware - Modul Manufacture.
Cercetătorii au descoperit că dezvoltatorii de platforme hardware uită adesea să dezactiveze Modul Manufacture, ceea ce permite ca cea din urmă metodă să fie utilizată pe un număr mare de computere fără costuri suplimentare în „timp real”.

Majoritatea metodelor de oprire folosesc mecanisme ME încorporate concepute pentru furnizorii de dispozitive cu platforme Intel. Toate sunt descrise în detaliu în prezentarea, care este publicată pe GitHub. De legătură este prezentat un videoclip demonstrativ despre dezactivarea ME (este și mai jos):

Cu toate acestea, apare o întrebare rezonabilă: „Într-adevăr, ME încetează să funcționeze pe deplin atunci când folosesc mecanismele sale de oprire încorporate?” Ca dovadă a faptului că ME este dezactivat, cercetătorii citează următorul argument: ME operează în două moduri de utilizare a memoriei: doar SRAM (încorporat în ME) și SRAM + UMA. UMA este o porțiune a memoriei gazdă care este utilizată ca memorie de schimb. După ce gazda inițializează controlerul DRAM, ME comută întotdeauna la modul SRAM + UMA.

Astfel, dacă ME este cu adevărat oprit, atunci când accesul ME la memoria UMA este dezactivat la nivel hardware la un moment arbitrar (prin canalul VCm), nu vor exista defecțiuni hardware în ME din cauza lipsei de date și cod care au fost împins în memoria UMA (astfel de defecțiuni hardware vor duce la o oprire de urgență a componentelor hardware principale ale platformei). Pe de altă parte, utilizarea acestor metode permite atacuri DoS asupra tehnologiei AMT dacă este utilizată pentru control de la distanță.

Investigarea arhitecturii interne a Intel Management Engine (ME) versiunea 11 a relevat un mecanism care dezactivează această tehnologie după inițializarea hardware-ului și pornirea procesorului principal. Cum am găsit acest regim nedocumentat și legătura lui cu programul de stat pentru construirea unei platforme de încredere a Platformei de Înaltă Asigurări (HAP), vom spune în acest articol.

Autorii avertizează că utilizarea acestor cunoștințe în practică poate duce la deteriorarea echipamentului de calcul și nu își asumă nicio responsabilitate pentru aceasta și, de asemenea, nu garantează operabilitatea sau inoperabilitatea a nimic și nu recomandă experimentarea fără prezența unui SPI. programator.

Introducere

Intel Management Engine este o tehnologie proprietară care este un microcontroler integrat pe un cip Platform Controller Hub (PCH) cu un set de periferice încorporate. Prin intermediul PCH trece aproape toată comunicarea dintre procesor și dispozitivele externe, prin urmare Intel ME are acces la aproape toate datele de pe computer, iar capacitatea de a executa cod de la terți vă permite să compromiteți complet platforma. Astfel de posibilități nesfârșite au atras cercetătorii de câțiva ani, dar acum interesul pentru tehnologia Intel ME a crescut semnificativ. Unul dintre motivele pentru aceasta este tranziția acestui subsistem la o nouă arhitectură hardware (x86) și software (MINIX modificat ca sistem de operare). Utilizarea platformei x86 vă permite să utilizați întreaga putere a instrumentelor de analiză a codului binar, ceea ce anterior era dificil, deoarece înainte de versiunea a 11-a, era folosit un nucleu cu un sistem de comandă rar - ARC. Din păcate, analiza Intel ME versiunea 11 a fost îngreunată de faptul că executabilele sunt pline cu cod Huffman cu tabele necunoscute. Dar grupul nostru de cercetare (Dmitry Sklyarov, Mark Ermolov, Maxim Goryachy) a reușit să le restabilească (utilitatea pentru despachetarea imaginilor poate fi găsită pe pagina noastră din GitHub).

După despachetarea modulelor executabile, am început să examinăm „umplutura” software și hardware a Intel ME. Echipa noastră face acest lucru de destul de mult timp și am acumulat o cantitate mare de materiale pe care s-a decis să le publicăm. Acesta este primul articol dintr-o serie de articole dedicate structurii interne și particularităților funcționării Intel ME, iar în el vă vom spune cum să dezactivați funcționalitatea principală a subsistemului. Această întrebare chinuiește specialiștii, deoarece dezactivarea acesteia ar reduce riscurile de scurgere de date, de exemplu, dacă se descoperă o vulnerabilitate zero-day în această tehnologie.

Cum să ME stinge

Cum să dezactivez ME - această întrebare este adesea adresată de unii proprietari de computere cu arhitectură x86. Tema dezactivării a fost pusă în repetate rânduri, inclusiv de către cercetătorii companiei noastre.

Vulnerabilitatea critică recent descoperită (9,8 din 10) în Intel Active Management Technology (AMT), o tehnologie bazată pe Intel ME, adaugă urgență acestei probleme.

Să ne întristăm pe cititor imediat - este imposibil să dezactivați complet ME pe computerele moderne. Acest lucru se datorează în primul rând faptului că această tehnologie este responsabilă pentru inițializare, gestionarea energiei și pornirea procesorului principal. Complicațiile sunt adăugate și de faptul că o parte a codului este „cablată” în interiorul microcircuitului PCH, care îndeplinește funcțiile podului de sud pe plăcile de bază moderne. Instrumentul principal al entuziaștilor care „luptează” cu această tehnologie este eliminarea tot ceea ce „nu este necesar” din imaginea memoriei flash, menținând în același timp operabilitatea computerului. Dar acest lucru nu este atât de ușor de făcut, deoarece dacă codul încorporat în PCH nu găsește modulele ME în memoria flash sau stabilește că acestea sunt deteriorate, sistemul nu va porni. De câțiva ani se dezvoltă în rețea proiectul me_cleaner, în cadrul căruia este disponibil un utilitar special care vă permite să eliminați cea mai mare parte a imaginii și să lăsați doar componentele vitale pentru sistemul principal. Dar chiar dacă sistemul a pornit, este prea devreme să ne bucurăm - după aproximativ 30 de minute, poate apărea o oprire automată, deoarece în cazul unor defecțiuni, ME intră în modul Recuperare, în care nu funcționează mai mult de o anumită perioadă. timp fix. Ca urmare, procesul de curățare devine mai complicat. De exemplu, înainte de cea de-a 11-a versiune, a fost posibil să se reducă dimensiunea imaginii la 90 KB, dar în cea de-a 11-a versiune, aceasta era deja doar la 650 KB.

Figura 1. Suport pentru arhitecturi Skylake + în me_cleaner

Secrete la QResource

Intel oferă producătorilor de plăci de bază posibilitatea de a seta un număr mic de parametri ME. Pentru a face acest lucru, compania oferă producătorilor de echipamente un set special de software, care include utilități precum Flash Image Tool (FIT) pentru setarea parametrilor ME și Flash Programming Tool (FPT), care acceptă programarea memoriei flash direct prin -in controller SPI. Aceste programe nu sunt disponibile utilizatorului final, dar pot fi găsite cu ușurință pe Internet. Din aceste utilitare pot fi extrase un număr mare de fișiere XML (detaliat Intel ME: The Way of theStatic Analysis), al căror studiu vă permite să învățați o mulțime de lucruri interesante: structura firmware-ului ME și descrierea curelei PCH - biți speciali de configurare pentru diferite subsisteme integrate în cipul PCH.


Figura 2. Fișiere XML împachetate

Ne-a interesat unul dintre aceste câmpuri cu numele „reserve_hap”, deoarece era un comentariu vizavi de acesta - High Assurance Platform (HAP) enable.

Figura 3. Cureaua PCH pentru Platforma High Assurance

Căutarea pe Google nu a durat mult. Literal, al doilea link spune că acesta este numele Programului Trust Platform asociat cu Agenția de Securitate Națională a SUA (NSA). O prezentare care descrie programul poate fi găsită. Primul nostru gând a fost să punem acest ritm și să vedem ce se întâmplă. Oricine poate face acest lucru dacă are un programator SPI sau acces la Flash Descriptor (pe multe plăci de bază, drepturile de acces la regiunile de memorie flash sunt setate incorect).


Figura 4. Starea ME după activarea biților HAP

După încărcarea platformei, utilitarul meinfo raportează o stare ciudată - Alt Disable Mode. Testele cursive au arătat că ME nu răspunde la comenzi și nu reacționează în niciun fel la influențele din sistemul de operare. Am decis să ne dăm seama cum trece sistemul la acest mod și ce înseamnă. Până în acest moment, am analizat deja partea principală a modulului BUP, care este responsabilă pentru inițializarea inițială a platformei și, pe baza rezultatelor meinfo, stabilește această stare. Pentru a înțelege algoritmul BUP, este necesar să descrieți mai detaliat mediul software Intel ME.

Software-ul Intel ME 11

Începând cu seria PCH 100, Intel a reproiectat complet acest cip. S-a făcut o tranziție la o nouă arhitectură de microcontrolere încorporate - de la compania ARCompact ARC la x86. Ca bază a fost ales microcontrolerul Minute IA (MIA) pe 32 de biți, care este utilizat în microcalculatoarele Intel Edison și SoC Quark. Se bazează pe designul microprocesorului scalar Intel 486 foarte vechi, cu adăugarea unui set de instrucțiuni (ISA) de la procesorul Pentium. Totuși, pentru PCH, compania produce acest nucleu folosind tehnologia semiconductoare de 22 nm, obținând o eficiență energetică ridicată a microcontrolerului. Există trei astfel de nuclee în noul PCH: Management Engine (ME), Integrated Sensors Hub (ISH) și Innovation Engine (IE). Ultimele două pot fi activate și dezactivate în funcție de modelul PCH și platforma țintă, iar nucleul ME funcționează întotdeauna.


Figura 5. Trei procesoare x86 în PCH

Astfel de schimbări globale au necesitat modificări în componenta software a ME. În special, MINIX (fostul ThreadX RTOS) a fost ales ca bază pentru sistemul de operare. Firmware-ul ME include acum un sistem de operare complet cu propriile procese, fire de execuție, manager de memorie, driver de magistrală hardware, sistem de fișiere și multe altele. ME are un criptoprocesor hardware integrat care acceptă algoritmi SHA256, AES, RSA, HMAС. Hardware-ul este accesat de către procesele utilizatorului printr-un tabel local de descriptori (LDT). Spațiul de adrese al procesului este, de asemenea, organizat prin LDT - este doar o parte a spațiului de adrese global al nucleului, ale cărui limite sunt stabilite în descriptorul local. Astfel, nucleul nu trebuie să treacă la memoria diferitelor procese (schimbarea directoarelor paginilor), ca, de exemplu, în Microsoft Windows sau Linux.

Aceasta încheie revizuirea mediului software Intel ME și luați în considerare mai detaliat modul în care sunt încărcate sistemul de operare și modulele.

Etape de pornire Intel ME

Pornirea începe cu programul ROM, care este conținut în memoria statică încorporată în PCH. Din păcate, publicul larg nu știe să citească sau să suprascrie această memorie, dar pe Internet puteți găsi versiuni „pre-vânzare” de firmware ME cu o secțiune ROMB (ROM BYPASS), care, în presupunerea noastră, dublează funcționalitatea de ROM. Astfel, examinând un astfel de firmware, puteți restabili funcționalitatea principală a programului de inițializare primară.

Studierea ROMB vă permite să înțelegeți scopul ROM-ului - efectuarea inițializării inițiale a echipamentelor, de exemplu, un controler SPI, verificarea semnăturii digitale a antetului secțiunii FTPR, încărcarea modulului RBE, care este deja localizat în memoria flash. RBE, la rândul său, verifică sumele de control ale modulelor KERNEL, SYSLIB, BUP și transferă controlul către punctul de intrare al nucleului.

Trebuie remarcat faptul că aceste trei entități - ROM, RBE și KERNEL - sunt executate la nivelul de privilegii zero (în ring-0) al nucleului MIA.


Figura 6. Verificarea integrității SYSLIB, KERNEL și BUP în RBE

Primul proces pe care nucleul îl generează este BUP, care rulează deja în spațiul său de adrese, în ring-3. Nucleul nu pornește alte procese din proprie inițiativă, BUP însuși face acest lucru, precum și un modul separat LOADMGR, vom reveni la el mai târziu. Scopul BUP (platforma BringUP) este de a inițializa întregul mediu hardware al platformei (inclusiv procesorul), de a efectua funcții primare de gestionare a energiei (de exemplu, porniți sistemul prin apăsarea butonului de pornire) și porniți toate celelalte procese ME. Astfel, putem spune cu încredere că PCH-urile din seria 100 și superioare pur și simplu fizic nu au capacitatea de a rula fără firmware-ul ME corect. În primul rând, BUP inițializează un controler de gestionare a puterii (PMC) și un controler ICC. În al doilea rând, lansează un întreg lanț de procese; unele dintre ele sunt „hard-coded” în cod (SYNCMAN, PM, VFS), iar cealaltă parte este conținută în InitScript (analog cu autorun), care este stocat în antetul de volum FTPR și este protejat de o semnătură digitală.


Figura 7. Lansarea SYNCMAN și PM

Astfel, BUP citește InitScript și pornește toate procesele care se conformează tipului de pornire ME și sunt procese IBL.


Figura 8. Procesarea InitScript


Figura 9. Lista modulelor cu steag IBL

Dacă începerea procesului eșuează, BUP nu va porni sistemul sau îl va pune în modul Recuperare, în care va exista o oprire automată după câteva zeci de minute... După cum puteți vedea în ilustrație, LOADMGR este ultimul din lista proceselor IBL. El este cel care pornește procesele rămase, dar spre deosebire de BUP, dacă apare o eroare în timpul pornirii modulului, LOADMGR va trece pur și simplu la următorul.

Astfel, prima opțiune de restricționare a funcționării Intel ME este eliminarea tuturor modulelor care nu au steag IBL în InitScript, ceea ce va reduce semnificativ dimensiunea firmware-ului. Dar inițial am vrut să aflăm ce se întâmplă cu ME în modul HAP. Pentru a face acest lucru, luați în considerare modelul de programare BUP mai detaliat.

Figura 10. Schema de lansare a modulelor în ME

A menționa

Dacă te uiți cu atenție la algoritmul modulului BUP, poți spune că în interiorul acestuia este implementată o mașină de stări clasică. Execuția este împărțită funcțional în două componente: etapele de inițializare (reprezintă aceeași mașină de stări) și executarea solicitărilor de servicii ale altor procese după inițializarea sistemului. Numărul de etape de inițializare este diferit, în funcție de platformă și SKU (TXE, CSME, SPS, consumer, corporate), dar se pot distinge în continuare principalele comune tuturor versiunilor.

Primul stagiu

În etapa inițială, se creează sistemul de fișiere de diagnostic intern sfs (SUSRAM FS este un sistem de fișiere situat în memoria volatilă), se citește configurația și, cel mai important, se primesc informații de la PMC despre ceea ce a condus la această pornire - alimentare. pe platformă, repornirea globală a întregii platforme, repornirea numai ME sau trezirea dintr-o stare de repaus. Această etapă se numește determinarea fluxului de pornire. Etapele ulterioare ale mașinii de stare de inițializare depind de aceasta. În plus, sunt acceptate mai multe moduri de operare: normal și un set de moduri de serviciu în care funcționalitatea principală ME nu este executată - HAP, HMRFPO, TEMP_DISABLE, RECOVERY, SAFE_MODE, FW_UPDATE și FD_OVERRIDE.

A doua faza

În următoarea etapă, controlerul ICC este inițializat și se încarcă profilul ICC (responsabil pentru frecvențele de ceas ale consumatorilor principali), Boot Guard este inițializat și începe interogarea ciclică a confirmării pornirii procesorului.

A treia etapă

BUP așteaptă un mesaj de la PMC că procesorul principal a pornit. BUP începe apoi un ciclu asincron pentru a interoga PMC-ul pentru evenimente de alimentare (repornire sau oprire a platformei) și trece la următoarea etapă. Dacă apare un astfel de eveniment, BUP va lua acțiunea solicitată pe măsură ce trece între etapele de inițializare.

Etapa a patra

În această etapă, hardware-ul intern este inițializat. BUP începe, de asemenea, un ciclu de interogare heci (un dispozitiv special conceput pentru a primi comenzi de la BIOS sau sistemul de operare) pentru a primi un DID (mesaj DRAM Init Done) de la BIOS. Acest mesaj îi permite ME să înțeleagă că BIOS-ul principal a inițializat RAM și a rezervat o regiune specială pentru ME, UMA și apoi trece la etapa următoare.

Etapa a cincea

Imediat ce DID-ul este primit, BUP, în funcție de modul de operare, care este determinat de diverse componente, fie lansează procesele IBL din InitScript (în timpul funcționării normale), fie se blochează într-o buclă, din care poate ieși doar la recepție un mesaj de la PMC, de exemplu, ca urmare a unei cereri de repornire sau oprire a sistemului.

În această etapă găsim procesarea HAP, iar în acest mod BUP nu execută InitScript, ci se blochează. Astfel, restul secvenței de acțiuni în timpul funcționării normale nu are legătură cu HAP și nu vor fi luate în considerare de noi. Principalul lucru de reținut este că în modul HAP, BUP efectuează toate inițializarea platformei (ICC, Boot Guard), dar nu pornește principalele procese ME.


Figura 11. Definiția modului HAP

Figura 12. Transferarea ME la a cincea etapă, care este echivalentă cu înghețarea


Figura 13. Etapa a cincea

Setarea bitului HAP

Pe baza celor de mai sus, a doua opțiune pentru dezactivare este instalarea bitului HAP și îndepărtarea sau deteriorarea tuturor modulelor, cu excepția celor care sunt necesare pentru pornirea BUP - RBE, KERNEL, SYSLIB, BUP. Acest lucru se poate face pur și simplu prin eliminarea acestora din secțiunea CPD a FTPR și recalculând suma de control a antetului CPD (structura firmware-ului ME este descrisă mai detaliat).

Mai rămâne o întrebare: cum să setați acest bit? Puteți utiliza fișierele de configurare FIT și puteți determina unde se află în imagine, dar există o modalitate mai ușoară. Dacă deschideți FIT, atunci în secțiunea ME Kernel puteți găsi un anumit parametru Rezervat. Acest bit este responsabil pentru activarea modului HAP.


Figura 14. Bit de activare a modului HAP

HAP și Boot Guard

De asemenea, am găsit un cod în BUP care, atunci când HAP este activat, setează un bit suplimentar în politicile Boot Guard. Din păcate, încă nu am reușit să ne dăm seama ce controlează acest bit.


Figura 15. Setarea unui bit suplimentar pentru Boot Guard

ME 11 suport în me_cleaner

În timp ce acest articol era pregătit pentru publicare, dezvoltatorii au actualizat me_cleaner, drept urmare a început să elimine toate modulele din imagini, cu excepția RBE, KERNEL, SYSLIB și BUP, dar fără a seta bitul HAP, care mă pune în „TemporaryDisable”. modul ". Am devenit curioși ce se întâmplă cu această abordare.

Am aflat că ștergerea partițiilor cu sistemul de fișiere ME are ca rezultat o eroare la citirea cfg_rules. Acest fișier conține o serie de setări diferite de sistem. Printre acestea, credem că există un steag pe care l-am numit „bup_not_temporary_disable”. Dacă nu este setat, întregul subsistem este pus în modul TemporaryDisable și, deoarece acest flag este o variabilă globală, inițializată implicit la zero, o eroare de citire este privită ca o configurație care necesită dezactivare.

De asemenea, rețineți că am verificat și firmware-ul de pe serverul și versiunile mobile ale ME (SPS 4.x și TXE 3.x). În versiunea de server, acest flag este întotdeauna setat la 1, iar în versiunea mobilă nu este analizat. Din cele de mai sus rezultă că această metodă nu va funcționa pe versiunile server și mobile (Apollo Lake) ME.


Figura 16. Citirea fișierului cfg_rules

În loc de o concluzie

Astfel, am găsit o curea PCH nedocumentată care ne permite să punem Intel ME în modul de dezactivare a funcționalității principale într-un stadiu incipient. Deși eliminarea fizică a modulelor din imagine menținând în același timp funcționalitatea demonstrează implicit că acest mod dezactivează ME, analiza binară nu lasă loc de îndoială. Putem spune cu un grad ridicat de încredere că Intel ME nu mai poate ieși din acest mod, deoarece în modulele RBE, KERNEL și SYSLIB nu s-a găsit nicio funcționalitate care să permită acest lucru. De asemenea, credem că ROM-ul integrat în PCH nu diferă practic de ROMB, la care nici nu s-a găsit nimic similar. Astfel, HAP va proteja împotriva vulnerabilităților prezente în toate modulele, cu excepția RBE, KERNEL, SYSLIB, ROM și BUP, dar, din păcate, acest mod nu va proteja împotriva exploatării erorilor din etapele anterioare.

Am împărtășit detaliile studiului cu reprezentanții Intel. Răspunsul lor a confirmat presupunerea noastră despre legătura regimului fără acte cu programul Platformei de Înaltă Asigurare. Cu permisiunea companiei, iată un extras din răspuns:

Mark / Maxim,
Ca răspuns la solicitările clienților cu cerințe specializate, explorăm uneori modificarea sau dezactivarea anumitor funcții. În acest caz, modificările au fost făcute la cererea producătorilor de echipamente în sprijinul evaluării de către clienții lor a programului „Platforma de înaltă asigurare” al guvernului SUA. Aceste modificări au suferit un ciclu de validare limitat și nu sunt o configurație acceptată oficial.

Considerăm că acest mecanism este o solicitare comună din partea oricărui serviciu guvernamental care dorește să reducă probabilitatea scurgerii canalului lateral. Dar întrebarea principală rămâne: cum afectează HAP funcționarea Boot Guard? Din cauza caracterului închis al acestei tehnologii, nu este încă posibil să răspundem la această întrebare, dar sperăm că în viitorul apropiat vom reuși.

Top articole similare