Brug af hvidlister til at forbedre sikkerheden

er blevet mere populært inden for computersikkerhedsforskning. Det kan være vanskeligt at opdage angreb, der opererer på fastnetniveau, og har potentialet til at fortsætte, selv i bare-metal-gendannelsesscenarier. Denne type hack er blevet veldokumenteret af undersøgelser af HackingTeam og Vault7 udnytter.

heldigvis er der metoder til at opdage og forsvare mod sådanne angreb. Angrebene forsøger typisk at tilføje eller ændre systemmoduler, der er gemt i NVRAM. Værktøjer, der leveres af open source CHIPSEC-projektet, kan bruges til at generere og verificere hashes af disse moduler, så brugerne kan registrere uautoriserede ændringer.

CHIPSEC CHISPEC, introduceret i Marts 2014, er en ramme for analyse af platformniveau sikkerhed af udstyr, enheder, systemfirma, beskyttelsesmekanismer på lavt niveau og konfiguration af forskellige platformkomponenter. Den indeholder et sæt moduler, herunder enkle test for beskyttelse af udstyr og korrekt konfiguration, test for sårbarheder i komponenter til fast udstyr og platforme, sikkerhedsvurderings-og sløringsværktøjer til forskellige platformsenheder og grænseflader og værktøjer, der erhverver kritiske artefakter til fast udstyr og enheder.

hvidlistemodulet (værktøjer.uefi.hvidliste) bruger CHIPSEC til at udtrække en liste over EFI-eksekverbare filer fra et binært firmabillede og bygger en liste over “forventede” eksekverbare filer og tilsvarende hashes (.JSON fil), der skal bruges senere til sammenligning. Dokumentation er tilgængelig som en del af modulet kildekode på github, og i CHIPSEC manual.

processen antager, at du starter fra et “kendt godt firmabillede”, helst en produktionsversion af det firmabillede, der leveres af producenten, og at du har brugt CHIPSEC til at scanne efter kendte problemer, før du ved et uheld hvidlister noget grimt. Dette eksempel bruger open source UEFI-programmet til Piggvaren (frigivelse 0.97) for bedre synlighed i processen.

følgende CHIPSEC kommandolinje opretter en hvidliste med navnet efilist.json baseret på et “kendt godt billede” (platform_fv.bin):

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

CHIPSEC i Ubuntu Linuk

anvendelse af denne proces på H64 “release” og “debug” billeder af Piggvaren 0.97 producerer følgende hvidlister:

  • MN2MAKS1.64.0097.D01. 1709211100.bin (UEFI 64-program, fejlretningstilstand) – 64d97_hvidliste.json
  • MNV2MAKS1.64.0097.R01. 1709211052.bin (UEFI 64-program, release mode) – 64r97_hvidliste.json

(øvelse for læseren: se om din hvidliste matcher)

det er vigtigt at bemærke, at den resulterende JSON-hvidlistefil ikke er en bare hash af den binære fil, den indeholder hash af firmabilledets eksekverbare moduler. CHIPSEC har evnen til at scanne og katalogisere individuelle komponenter, som kan bruges til at hvidliste eller sortliste specifikke eksekverbare filer.

udstationering af hvidlister

hvis du var systemproducent, kunne du offentliggøre disse hvidlister til kundebekræftelse. Det er dog bedst at underskrive filer til verifikationsformål. For at sikre, at hvidlisten opnået af en slutbruger er den officielle hvidliste, kan den underskrives med GPG ved hjælp af en fritliggende signatur:

gpg –detach-sign <file>

derudover, brugere skal godkende certifikater for et velkendt domænenavn for systemproducenten, når de leveres via HTTPS. Det er også tilrådeligt for it-organisationer at underskrive internt genererede hvidlister for at forhindre uautoriserede lister i at blive brugt i revisioner.

kontrol af hvidlister

hvis en fritliggende signatur er tilgængelig, kan GPG bruges til at verificere hvidlistefilen:

gpg –verify <file>

når ægtheden af hvidlisten er blevet verificeret, skal brugeren tage et billede af platformen ved hjælp af CHIPSEC. Denne kommandolinje brugte kommandoen ‘dump’ til at generere user_fv.bin:

python chipsec_util.py spi dump user_fw.bin

nu kan CHIPSEC bruges til at verificere platformens firmabillede mod den tilhørende hvidliste. Dette eksempel ville verificere mod H64 “release” – billedet til elritse pighvar 0.97:

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

på dette tidspunkt returnerer CHIPSEC en” bestået “eller” advarsel ” status. Hvis testen returnerer “bestået”, blev alle hash fundet i hvidlisten, og de matcher forventede værdier. Hvis testen returnerer” advarsel”, var så noget er anderledes. Bemærk, at en” advarsel ” mod ikke umiddelbart angiver en sikkerhedstrussel (f.eks.: bruger kan have opdateret til producentens nyeste program), men det kræver undersøgelse for at sikre, at det ændrede programbillede ikke skyldes et forsøg på angreb.

begrænsninger

brug af værktøjer som CHIPSEC dette kan forbedre sikkerheden, men intet system kan være helt sikkert, og disse procedurer kan ikke forsvare sig mod alle mulige angreb. Der er en række begrænsninger at overveje, når man fortolker hvidlisteresultater:

  • der kan være tilpassede eller proprietære billedemballeringsmetoder, som CHIPSEC ikke forstår. Dette kan resultere i, at nogle moduler udelukkes, så tilsvarende ændringer kan gå glip af under en hvidlistesammenligning.
  • programmer, der kører på et allerede kompromitteret system, kan narre. Hvis et system allerede er kompromitteret, kan CHIPSEC og lignende programmer muligvis ikke producere pålidelige indikatorer.

Resume

CHIPSEC ‘ s evne til at generere hvidlister giver en metode til validering af virksomhedens forsyningskæde. Producenter kan udnytte disse værktøjer til at hjælpe brugerne med at verificere officielle produktudgivelser, og IT-administratorer kan generere hvidlister til interne revisioner baseret på pålidelige billeder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.