Whitelistien käyttäminen Firmware-tietoturvan parantamiseen
Firmware on yleistynyt tietokoneiden tietoturvatutkimuksen maailmassa. Firmware-tasolla toimivia hyökkäyksiä voi olla vaikea löytää, ja niillä on mahdollisuus säilyä jopa paljasmetallien talteenottoskenaarioissa. Tämän tyyppinen hakkerointi on hyvin dokumentoitu tutkimuksissa HackingTeam ja Vault7 hyödyntää.
onneksi on olemassa menetelmiä tällaisten hyökkäysten havaitsemiseksi ja niitä vastaan puolustautumiseksi. Laiteohjelmistopohjaiset hyökkäykset pyrkivät tyypillisesti lisäämään tai muokkaamaan NVRAMIIN tallennettuja järjestelmän laiteohjelmistomoduuleja. Avoimen lähdekoodin chipsec-projektin tarjoamia työkaluja voidaan käyttää näiden moduulien hashien luomiseen ja todentamiseen, jotta käyttäjät voivat havaita luvattomat muutokset.
Chispec on maaliskuussa 2014 esitelty kehys laitteistojen, laitteiden, järjestelmän firmwaren, matalan tason suojamekanismien ja erilaisten alustakomponenttien konfiguroinnin analysointiin. Se sisältää joukon moduuleja, mukaan lukien yksinkertaiset testit laitteiston suojauksille ja oikeille konfiguraatioille, testit laiteohjelmiston ja Alustan komponenttien haavoittuvuuksille, turvallisuusarviointi-ja fuzzaustyökalut erilaisille alustalaitteille ja käyttöliittymille sekä työkalut kriittisten laiteohjelmistojen ja laiteesineiden hankkimiseksi.
whitelist module (työkalut.uefi.whitelist) käyttää CHIPSEC poimia luettelon EFI suoritettavat tiedostot binary firmware kuva, ja rakentaa luettelon “odotettu” suoritettavat tiedostot ja vastaavat hashes (.JSON-tiedosto) käytettäväksi myöhemmin vertailussa. Dokumentaatio on saatavilla osana moduulin lähdekoodia GitHubissa ja CHIPSEC-ohjekirjassa.
prosessi olettaa, että aloitat “tunnetusta hyvästä firmware-kuvasta”, mieluiten valmistajan toimittamasta laiteohjelmiston tuotantoversiosta, ja että olet käyttänyt CHIPSECIÄ tunnettujen ongelmien etsimiseen ennen kuin vahingossa listaat jotain ikävää. Tässä esimerkissä käytetään avoimen lähdekoodin UEFI-laiteohjelmistoa MinnowBoard-Piikkikampelalle (julkaisu 0.97) paremman näkyvyyden saamiseksi prosessiin.
Seuraava CHIPSEC-komentorivi luo valkoiselle listalle efilistin.json perustuu “tunnettuun hyvään kuvaan” (platform_fw.bin):
python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin
tämän prosessin soveltaminen MinnowBoard Turbot 0.97 firmwaren x64 “release” – ja “debug” – kuviin tuottaa seuraavat whitelistit:
- MNW2MAX1.X64. 0097.D01. 1709211100.bin (UEFI x64 firmware, debug mode) – X64D97_whitelist.json
- MNW2MAX1.X64. 0097.R01. 1709211052.bin (UEFI x64 firmware, julkaisutila) – X64R97_whitelist.json
(liikuntaa lukijalle: Lataa firmware-kuvat, suorita chipsec, katso, vastaako whitelist)
on tärkeää huomata, että tuloksena oleva JSON whitelist-tiedosto ei ole vain binääritiedoston hajautus, se sisältää firmware-kuvan suoritettavien moduulien Tiivisteet. CHIPSEC on kyky skannata ja luetteloida yksittäisiä firmware komponentteja, joita voidaan käyttää whitelist tai Blacklist tiettyjä suoritettavia.
laittamalla Valonlistat
jos olisit järjestelmävalmistaja, voisit julkaista nämä valonlistat asiakkaan varmennusta varten. Kuitenkin, se on parasta allekirjoittaa tiedostoja todentamista varten. Sen varmistamiseksi, että loppukäyttäjän saama valkoluettelo on virallinen valkoluettelo, se voidaan allekirjoittaa GPG: llä erillisellä allekirjoituksella:
gpg –detach-sign <file>
lisäksi käyttäjien tulisi todentaa varmenteet järjestelmän valmistajan tunnetulle verkkotunnukselle, kun se toimitetaan HTTPS: n kautta. IT-organisaatioiden kannattaa myös allekirjoittaa sisäisesti luotuja whitelistejä, jotta luvattomia listoja ei käytetä auditoinneissa.
Tarkistuslistat
jos käytettävissä on erillinen allekirjoitus, GPG: tä voidaan käyttää tarkistuslistatiedoston tarkistamiseen:
gpg –verify <file>
kun valkolistan aitous on varmistettu, käyttäjän on otettava kuva Alustan firmwaresta CHIPSECIN avulla. Tämä komentorivi käytti “dump” – komentoa user_fw: n luomiseen.bin:
python chipsec_util.py spi dump user_fw.bin
nyt CHIPSECIÄ voidaan käyttää alustan firmware-kuvan tarkistamiseen suhteessa siihen liittyvään whitelistiin. Tämä esimerkki todentaa vastaan x64″ release “kuva Minnowboard piikkikampela 0.97:
python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin
tässä vaiheessa CHIPSEC palauttaa “PASSED” tai “WARNING” – tilan. Jos testi palaa “läpäissyt”, kaikki hashes löytyi valkoiselle listalle ja ne vastaavat odotusarvoja. Jos testi palauttaa “varoitus”, oli sitten jotain on erilaista. Huomaa, että” varoitus ” ei välittömästi osoita tietoturvauhkaa (esim: käyttäjä on saattanut päivittää valmistajan uusimpaan laiteohjelmistoon), mutta se vaatii tutkimusta varmistaakseen, että muutettu laiteohjelmistokuva ei johdu hyökkäysyrityksestä.
rajoitukset
käyttämällä työkaluja kuten CHIPSEC tämä voi parantaa turvallisuutta, mutta mikään järjestelmä ei voi olla täysin turvallinen, eivätkä nämä menettelyt voi puolustautua kaikkia mahdollisia hyökkäyksiä vastaan. On olemassa useita rajoituksia huomioon tulkittaessa whitelist tuloksia:
- voi olla räätälöityjä tai omia kuvapakkausmenetelmiä, joita CHIPSEC ei ymmärrä. Tämä voi johtaa joidenkin moduulien poissulkemiseen, joten vastaavat muutokset saattavat jäädä huomaamatta whitelist-vertailussa.
- jo vaarantuneessa järjestelmässä toimivia ohjelmistoja voi huijata. Jos järjestelmä on jo vaarantunut, CHIPSEC ja vastaavat ohjelmistot eivät välttämättä tuota luotettavia indikaattoreita.
Yhteenveto
CHIPSECIN kyky luoda whitelistejä tarjoaa menetelmän firmware-toimitusketjun validoimiseksi. Valmistajat voivat hyödyntää näitä työkaluja, joiden avulla käyttäjät voivat tarkistaa viralliset laiteohjelmistojulkaisut, ja IT-järjestelmänvalvojat voivat luoda whitelistejä luotettaviin kuviin perustuvia sisäisiä tarkastuksia varten.