Utilizarea listelor albe pentru a îmbunătăți securitatea Firmware-ului

Firmware-ul a devenit mai popular în lumea cercetării securității computerelor. Atacurile care funcționează la nivel de firmware pot fi dificil de descoperit și au potențialul de a persista chiar și în scenarii de recuperare a metalelor goale. Acest tip de hack a fost bine documentat de investigațiile exploatărilor HackingTeam și Vault7.

din fericire, există metode de detectare și apărare împotriva unor astfel de atacuri. Atacurile bazate pe Firmware încearcă de obicei să adauge sau să modifice module de firmware de sistem stocate în NVRAM. Instrumentele furnizate de proiectul open source CHIPSEC pot fi utilizate pentru a genera și verifica hash-urile acestor module, astfel încât utilizatorii să poată detecta modificări neautorizate.

CHIPSEC CHISPEC, introdus în martie 2014, este un cadru pentru analiza securității la nivel de platformă a hardware-ului, dispozitivelor, firmware-ului sistemului, mecanismelor de protecție la nivel scăzut și configurarea diferitelor componente ale platformei. Conține un set de module, inclusiv teste simple pentru Protecții hardware și configurare corectă, teste pentru vulnerabilități în componentele firmware și platformă, instrumente de evaluare a securității și fuzzing pentru diverse dispozitive și interfețe de platformă și instrumente care achiziționează artefacte critice de firmware și dispozitiv.

modulul lista albă (instrumente.uefi.whitelist) utilizează CHIPSEC pentru a extrage o listă de executabile EFI dintr-o imagine firmware binară și construiește o listă de executabile “așteptate” și hash-uri corespunzătoare (.Fișier JSON) pentru a fi utilizat ulterior pentru comparație. Documentația este disponibilă ca parte a codului sursă al modulului pe github și în manualul CHIPSEC.

procesul presupune că începeți de la o “imagine firmware cunoscută bună”, de preferință o versiune de producție a firmware-ului furnizat de producător și că ați folosit CHIPSEC pentru a scana problemele cunoscute înainte de a lista albă accidental ceva urât. Acest exemplu utilizează firmware-ul UEFI open source pentru calcanul MinnowBoard (versiunea 0.97), pentru o mai bună vizibilitate în proces.

următoarea linie de comandă CHIPSEC creează o listă albă numită efilist.json bazat pe o “imagine bună cunoscută” (platform_fw.Coș):

python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin

CHIPSEC în Ubuntu Linux

aplicarea acestui proces la imaginile x64 “release” și “debug” ale firmware-ului MinnowBoard Calcan 0.97 produce următoarele liste albe:

  • MNW2MAX1.X64. 0097.D01. 1709211100.Coș (firmware UEFI x64, modul de depanare) – X64D97_whitelist.json
  • MNW2MAX1.X64. 0097.R01.1709211052.bin (firmware UEFI x64, modul de lansare) – X64R97_whitelist.json

(exercițiu pentru cititor: descărcați imaginile firmware, rulați CHIPSEC, vedeți dacă lista albă se potrivește)

este important să rețineți că fișierul JSON din lista albă rezultat nu este doar un hash al fișierului binar, ci conține hash-uri ale modulelor executabile ale imaginii firmware-ului. CHIPSEC are capacitatea de a scana și cataloga componente individuale de firmware, care pot fi utilizate pentru lista albă sau lista neagră executabile specifice.

postarea listelor albe

dacă ați fi producător de sistem, ați putea publica aceste liste albe pentru verificarea clienților. Cu toate acestea, cel mai bine este să semnați fișiere în scopuri de verificare. Pentru a vă asigura că lista albă obținută de un utilizator final este lista albă oficială, aceasta poate fi semnată cu GPG folosind o semnătură detașată:

gpg –detach-sign <file>

în plus, utilizatorii ar trebui să autentifice certificate pentru un nume de domeniu bine cunoscut pentru producătorul sistemului atunci când sunt livrate prin HTTPS. De asemenea, este recomandabil ca organizațiile IT să semneze liste albe generate intern pentru a preveni utilizarea listelor neautorizate în audituri.

verificarea listelor albe

dacă este disponibilă o semnătură detașată, GPG poate fi utilizat pentru a verifica fișierul listei albe:

gpg –verify <file>

odată ce autenticitatea listei albe a fost verificată, utilizatorul trebuie să facă o imagine a firmware-ului platformei folosind CHIPSEC. Această linie de comandă a folosit comanda ‘dump’ pentru a genera user_fw.Coș:

python chipsec_util.py spi dump user_fw.bin

acum, CHIPSEC poate fi folosit pentru a verifica imaginea firmware-ului platformei împotriva listei albe asociate. Acest exemplu ar verifica împotriva x64″ release ” imagine pentru Minnowboard Calcan 0.97:

python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin

în acest moment, CHIPSEC va returna o stare “trecută” sau “avertizare”. Dacă testul revine “trecut”, toate hash-urile au fost găsite în lista albă și se potrivesc cu valorile așteptate. Dacă testul returnează “avertisment”, a fost atunci ceva este diferit. Rețineți că un “avertisment” împotriva nu indică imediat o amenințare la adresa securității (ex: utilizatorul poate fi actualizat la cel mai recent firmware al producătorului), dar necesită investigații pentru a vă asigura că imaginea firmware modificată nu se datorează unei încercări de atac.

limitări

utilizarea unor instrumente precum CHIPSEC acest lucru poate îmbunătăți securitatea, dar niciun sistem nu poate fi absolut sigur, iar aceste proceduri nu se pot apăra împotriva tuturor atacurilor posibile. Există o serie de limitări de luat în considerare la interpretarea rezultatelor listei albe:

  • pot exista metode de ambalare a imaginilor personalizate sau proprietare pe care CHIPSEC nu le înțelege. Acest lucru ar putea duce la excluderea unor module, astfel încât modificările corespunzătoare pot fi ratate în timpul unei comparații pe lista albă.
  • Software-ul care rulează pe un sistem deja compromis poate fi păcălit. Dacă un sistem este deja compromis, este posibil ca CHIPSEC și software-ul similar să nu producă indicatori fiabili.

rezumat

capacitatea CHIPSEC de a genera liste albe oferă o metodă pentru validarea lanțului de aprovizionare firmware. Producătorii pot utiliza aceste instrumente pentru a ajuta utilizatorii să verifice versiunile oficiale de firmware, iar administratorii IT pot genera liste albe pentru audituri interne bazate pe imagini de încredere.

Lasă un răspuns

Adresa ta de email nu va fi publicată.