Fărădelege fără pată (partea a 2-a

Prima parte a ciclului poate fi văzută aici.

Continuați povestea noastră tristă ...

Dar mai întâi despre AMT.

Se crede că această tehnologie este prezentă doar în unele chipset-uri moderne Intel și pentru a evita problemele de securitate este suficient să alegeți chipset-uri fără suport AMT. În acest stadiu, acest lucru nu este adevărat, ultimul chipset din seria 7 din toate versiunile sprijină această tehnologie.







Și, din păcate, problema securității AMT nu este discutată deloc din cauza analfabetismului specialiștilor din IB, însă în Occident există numeroase publicații pe această temă, cu concluzii foarte dificile. Introduceți în motorul de căutare: "Intel AMT backdoor" și vedeți-vă singur.

Ceea ce este în mod specific Naryl Kaspersky nu este cunoscut, dar ideea generală de dezasamblare reală în această sferă de flint poate fi obținută din alte două evenimente dintr-un trecut nu atât de îndepărtat.

Între vechii rivali ai industriei procesoarelor a avut loc un conflict major, care a condus la o "scurgere" a informațiilor confidențiale despre backdoors în procesoare.

Dar, curând, "imperiul" AMD a lovit înapoi.

Apropo, Intel a numit această posibilitate nedocumentată o "implementare specifică" într-o expresie simplificată și nu a recunoscut această "caracteristică" ca o eroare de fundal sau de implementare. De asemenea, firma livrează procesorul cu acest lucru, așa cum este exprimat; "O implementare specifică a comenzii SYSRET."

Prin urmare, toți dezvoltatorii majori ai software-ului comercial trebuiau să își patcheze propriile produse pentru a ocoli această "trăsătură specifică a echipei". Dar această vulnerabilitate a comenzii SysRet poate fi exploatată de la nivelul driverelor și aplicațiilor și poate fi scrisă de oricine nu este prins. Deci, o vulnerabilitate care permite creșterea nivelului de privilegii este prezentă în procesoarele Intel până în prezent.

Informațiile de mai sus sunt de ajuns pentru a justifica afirmațiile privind confruntările secrete dintre producătorii de procesoare și filele hardware din produsele lor. periferie Datorită țării noastre și nefericirea cunoașterii „generali“ profesionale în domeniul controlului securității informațiilor și de a participa la aceste procese în acest moment nu putem, cu toate că acestea ar putea fi cu ușurință pe cea mai mică dorință.

Ciudat, cum pare, aici, "ca în Grecia, totul este ..." este disponibilă rezerva științifică necesară în verificarea automatizată a sistemului de comandă din țară. Liderul incontestabil în acest domeniu este Institutul de Programare Sistem al Academiei de Științe din Rusia (ISP RAS). Din păcate, experiența în domeniul verificării automate a structurilor procesoare ale acestui institut în loc de propriul nostru stat utilizează Coreea, în special Samsung.

Deci, se pare că nu apreciem, și în cele din urmă a pierdut, nici măcar nu plâng ...

Dar acest subiect are o altă parte, deși legală, dar absolut netransparentă. Acestea sunt mecanismele de actualizare a microcodului.

Pasiune prin microcod

Un pic de teorie pentru a pune lucrurile în practică. Arhitecturile x86 au un management hardware și software mixt. Orice comandă pentru procesorul x86 este un set de micro-operații, comenzile simple sunt o micro-operație, iar comenzile complexe pot fi compuse din sute, iar pentru unele echipe moderne de mii de micro-operații.

Comenzile simple (cum ar fi aritmetica, logica) procesorul efectuează logica combinatorică pentru o micro-operare, de fapt aceasta este execuția hardware a comenzii.

Comenzile mai complexe constau în lanțuri de micro-operații cu tranziții condiționale, cicluri, întreruperi. Deci, aceste lanțuri de micro-operații sunt microprogramele pentru executarea comenzilor procesorului. Aceasta este o explicație foarte superficială și simplificată a mecanismului de executare a comenzilor pe procesoarele moderne x86, dar cred că esența este clară.

Toate firmware-urile de executare a comenzilor sunt stocate în procesor în sine, într-o memorie nevolatilă specială, și sunt turnate acolo în stadiul fabricării. Dar, după cum știți, fiecare programator are o mie de linii de cod, există întotdeauna cel puțin o eroare, deci există erori în microprograme și un mecanism de patch-uri este folosit pentru a le repara rapid.

Cu alte cuvinte, conținutul memoriei de firmware poate fi corectat deja pe echipamentul curent, în acest scop sunt utilizate blocuri de informații speciale (actualizare microcod).







Intel are totul scris în documentație (vol. 3A capitolul 9.11 MICROCODE UPDATE FACILITIES). Mecanismul de actualizare a microcodului pentru procesoarele AMD poate fi găsit pe site-ul oficial, nu este descris în documentație. Microchipul de actualizare algoritmi pentru ambii producători sunt aproape identici, diferențele sunt doar în structura de patch-uri. Deci, să analizăm subiectul pe baza documentației oficiale Intel, aici este un extras:

9.11 FACILITĂȚI DE UPDATE A MICROCODELOR

Procesoarele de familie Pentium 4, Intel Xeon și P6 au capacitatea de a corecta erorile prin încărcarea unui bloc de date furnizat de Intel în procesor. Blocul de date se numește actualizare microcod. BIOS-ul trebuie să furnizeze pentru a utiliza această caracteristică în timpul inițializării sistemului. De asemenea, descrie o specificație care permite integrarea viitoarelor actualizări într-un sistem BIOS al sistemului.

Intel consideră lansarea unei actualizări de microcod pentru o versiune siliconică a unei actualizări a microcodului.

Actualizarea microcodului este utilizată pentru a corecta erorile procesorului. BIOS-ul, care are un încărcător de actualizare, este responsabil pentru încărcarea actualizării pe procesoare în timpul inițializării sistemului (Figura 9-7). Există doi pași în acest proces: primul este să încorporați blocurile de date de actualizare necesare în BIOS; al doilea este de a încărca.

Fărădelege fără pată (partea 2

Mecanismul de actualizare a microcodului este simplu, de fiecare dată după aplicarea puterii sau după emiterea semnalului Reset, este necesar să se descarce patch-ul la toate miezurile procesoarelor. Cu alte cuvinte, patch-urile actuale nu sunt salvate în memorie nevolatilă și trebuie să fie rescrise de fiecare dată.

Structura patch-ului este alcătuită din trei părți, prima parte a "antetului" și ultima "semnătură extinsă" sunt descrise în documentație în întregime, dar ele nu prezintă semnificație semnificativă.

Cea mai importantă parte ("Data" - dimensiunea nu este fixă), - corpul plasturelui, nu este descris în documentație, structura sa nu este cunoscută. Această parte conține microprograme care înlocuiesc firmware-ul procesorului cusut în timpul fazei de producție. Intel și AMD nu oferă nicio informație care să știe cel puțin ce comenzi și moduri de operare ale procesorului pot fi modificate.

Se presupune (așa cum se menționează în documentație) că procedura de actualizare a microcodului se face din BIOS, dar nu există restricții privind implementarea acestuia și în timpul operării ulterioare a procesorului. Cu alte cuvinte, este posibilă inserarea microprogramului procesorului la nesfârșit și în timpul funcționării sistemului de operare. Nu există blocări pentru modul de actualizare a microcodului în hardware-ul procesorului, dar nu există nici o autentificare a patch-urilor. Dar acest lucru este deja incorect, și smacks de un backdoor ascunse sub posibilități nedocumentate

Tradus în limbaj comun, este posibil pentru a optimiza algoritmul de orice procesor de comandă la un moment dat, astfel încât acesta a servit ca o caracteristică fără forme legale, trebuie doar să cunoască structura blocului de informații, și apoi de la orice comandă procesor poate crea un complet diferit, de fapt, în ei gust și înțelegere.

Producătorii de procesoare distribuie în mod regulat actualizări oficiale ale microcodului, dar nu există o listă de corecții de erori sau de optimizări adăugate. Există doar un număr de patch-uri, poate fi controlat după turnarea în procesor.

Idioția situației este că aceste actualizări trebuie să intre în procesor la momentul încărcării și, de exemplu, Microsoft nu furnizează informații oficiale despre numărul de patch-uri pe care le încarcă.

Iată un exemplu de astfel de fișier de actualizare microcod pentru sistemul de operare Windows.

Fărădelege fără pată (partea 2

Cu alte cuvinte, nu este posibil să controlați actualul firmware firmware chiar și la nivelul numărului său. De asemenea, nu este posibilă blocarea funcției de actualizare a firmware-ului în hardware, este întotdeauna disponibilă din inelul de privilegii zero.

O altă problemă este BIOS-ul plăcilor de bază, există întotdeauna un plasture cu microcod pentru procesor, dar cine garantează că este corect? Distorsiunea necorespunzătoare a conținutului său este posibilă în stadiul creării sale în Intel și în stadiul de turnare în BIOS în producția plăcii de bază.

În plus, patch-ul poate fi actualizat în timpul actualizării BIOS a plăcii de bază deja în curs de utilizare a echipamentului și nu este nici o problemă să îl înlocuiți cu BIOS. Cel puțin o oarecare garanție, care ar oferi o semnătură digitală pe un plasture, dar prezența sa nu este furnizată în actualizările de firmware structura, nu sunt aplicate producătorilor de BIOS nici o protecție externă pentru aceste patch-uri.

Așa că am ajuns la tema BIOS-ului modern, dar despre asta în următoarea parte a acestui ciclu trist de articole.

  • Fărădelege fără pată (partea 2
  • Fărădelege fără pată (partea 2
  • Fărădelege fără pată (partea a 2-a
  • Fărădelege fără pată (partea 2







Trimiteți-le prietenilor: