Bruke Hvitelister For Å Forbedre Firmware Sikkerhet
Firmware har blitt mer populært i verden av datasikkerhet forskning. Angrep som opererer på firmware-nivå kan være vanskelig å oppdage, og har potensial til å vedvare selv i bare-metall utvinning scenarier. Denne typen hack har blitt godt dokumentert av undersøkelser Av HackingTeam og Vault7 utnytter.
Heldigvis finnes det metoder for å oppdage og forsvare seg mot slike angrep. Firmwarebaserte angrep forsøker vanligvis å legge til eller endre systemmoduler lagret i NVRAM. Verktøy levert av open source CHIPSEC-prosjektet kan brukes til å generere og verifisere hashes av disse modulene, slik at brukerne kan oppdage uautoriserte endringer.
CHISPEC, introdusert I Mars 2014, er et rammeverk for å analysere plattformnivå sikkerhet av maskinvare, enheter, system firmware, lavt nivå beskyttelsesmekanismer, og konfigurasjonen av ulike plattformkomponenter. Den inneholder et sett med moduler, inkludert enkle tester for maskinvarebeskyttelse og korrekt konfigurasjon, tester for sårbarheter i fastvare – og plattformkomponenter, sikkerhetsvurdering og fuzzing verktøy for ulike plattformenheter og grensesnitt, og verktøy som anskaffer kritisk firmware og enhetsartefakter.
hvitelistemodulen (verktøy.uefi.hviteliste) bruker CHIPSEC til å trekke ut en liste OVER EFI-kjørbare FILER fra et binært fastvarebilde, og bygger en liste over “forventede” kjørbare filer og tilsvarende hasher (.JSON-fil) som skal brukes senere for sammenligning. Dokumentasjon er tilgjengelig som en del av modulen kildekoden på github, og I CHIPSEC manual.
prosessen antar at du starter fra et “kjent godt fastvarebilde”, helst en produksjonsversjon av fastvaren som leveres av produsenten, og at DU har brukt CHIPSEC til å skanne etter kjente problemer før du ved et uhell hvitlistet noe ekkel. Dette eksemplet bruker ÅPEN kildekode UEFI-firmware for MinnowBoard Turbot (utgivelse 0.97), for bedre synlighet i prosessen.
FØLGENDE CHIPSEC kommandolinje oppretter en hviteliste som heter efilist.json basert på et “kjent godt bilde” (platform_fw.bin):
python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin
Bruk av denne prosessen til x64 “release ” og” debug ” bilder Av MinnowBoard Turbot 0.97 firmware produserer følgende hvitelister:
- MNW2MAX1.X64.0097.D01.1709211100.bin (UEFI x64 firmware, feilsøkingsmodus) – X64D97_whitelist.json
- MNW2MAX1.X64.0097.R01.1709211052.bin (UEFI x64 firmware, utgivelsesmodus) – X64R97_whitelist.json
(øvelse for leseren: SE om din hviteliste matcher)
det er viktig å merke seg at resulterende JSON hviteliste fil er ikke en bare hash av binærfilen, den inneholder hashes av firmware bildets kjørbare moduler. CHIPSEC har evnen til å skanne og katalogisere individuelle fastvarekomponenter, som kan brukes til å hviteliste eller svarteliste bestemte kjørbare.
Postering Av Hvitelister
hvis du var systemprodusent, kan du publisere disse hvitelistene for kundeverifisering. Det er imidlertid best å signere filer for verifiseringsformål. For å sikre at hvitelisten oppnådd av en sluttbruker er den offisielle hvitelisten, kan den signeres MED GPG ved hjelp av en frittstående signatur:
gpg –detach-sign <file>
i Tillegg bør brukere godkjenne sertifikater for et velkjent domenenavn for systemprodusenten når de leveres OVER HTTPS. DET anbefales også AT IT-organisasjoner signerer internt genererte hvitelister for å hindre at uautoriserte lister blir brukt i revisjoner.
Kontrollere Hvitelister
HVIS en frittstående signatur er tilgjengelig, KAN GPG brukes til å verifisere hvitelistefilen:
gpg –verify <file>
når autentisiteten til hvitelisten er bekreftet, må brukeren ta et bilde av plattformens firmware ved HJELP AV CHIPSEC. Denne kommandolinjen brukte kommandoen ‘dump’ til å generere user_fw.bin:
python chipsec_util.py spi dump user_fw.bin
NÅ KAN CHIPSEC brukes til å verifisere plattformens fastvarebilde mot den tilhørende hvitelisten. Dette eksemplet vil verifisere mot x64 “release” – bildet for Minnowboard Turbot 0.97:
python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin
PÅ dette tidspunktet VIL CHIPSEC returnere en” BESTÅTT “eller” ADVARSEL ” status. Hvis testen returnerer “BESTÅTT”, ble alle hashes funnet i hvitelisten, og de samsvarer med forventede verdier. Hvis testen returnerer “ADVARSEL”, var da noe er annerledes. Merk at en “ADVARSEL” mot ikke umiddelbart indikerer en sikkerhetstrussel (for eksempel: brukeren kan ha oppdatert til produsentens nyeste firmware), men det krever undersøkelse for å sikre at det endrede fastvarebildet ikke skyldes et forsøk på angrep.
Begrensninger
Ved hjelp av verktøy som CHIPSEC kan dette forbedre sikkerheten, men ingen system kan være helt sikre, og disse prosedyrene kan ikke forsvare seg mot alle mulige angrep. Det er en rekke begrensninger å vurdere når man tolker hvitelisteresultater:
- det kan være tilpassede eller proprietære bildeemballasjemetoder SOM CHIPSEC ikke forstår. Dette kan føre til at noen moduler blir ekskludert, så tilsvarende endringer kan bli savnet under en hviteliste-sammenligning.
- Programvare som kjører på et allerede kompromittert system, kan bli lurt. HVIS et system allerede er kompromittert, KAN CHIPSEC og lignende programvare ikke produsere pålitelige indikatorer.
Sammendrag
MULIGHETEN FOR CHIPSEC å generere hvitelister gir en metode for å validere firmware forsyningskjeden. Produsenter kan bruke disse verktøyene til å hjelpe brukere med å verifisere offisielle firmwareutgivelser, OG IT-administratorer kan generere hvitelister for interne revisjoner basert på pålitelige bilder.