Az Engedélyezőlisták használata a Firmware biztonságának javítása érdekében
a Firmware egyre népszerűbb a számítógépes biztonsági kutatások világában. A firmware szinten működő támadásokat nehéz lehet felfedezni,és még a csupasz fém helyreállítási forgatókönyvekben is fennállhatnak. Ez a fajta hack már jól dokumentált vizsgálatok a HackingTeam és Vault7 hasznosítja.
szerencsére vannak módszerek az ilyen támadások felderítésére és védelmére. A Firmware-alapú támadások általában megpróbálják hozzáadni vagy módosítani az NVRAM-ban tárolt rendszer firmware-modulokat. A nyílt forráskódú CHIPSEC projekt által biztosított eszközök felhasználhatók ezen modulok kivonatainak létrehozására és ellenőrzésére, így a felhasználók észlelhetik a jogosulatlan változásokat.
a CHISPEC, amelyet 2014 márciusában vezettek be, a hardverek, eszközök, rendszer firmware, alacsony szintű védelmi mechanizmusok platformszintű biztonságának elemzésére szolgáló keretrendszer, valamint a különböző platformkomponensek konfigurálása. Tartalmaz egy sor modult, beleértve a hardvervédelem és a helyes konfiguráció egyszerű tesztjeit, a firmware és a platformkomponensek sebezhetőségének tesztelését, a különböző platformeszközök és interfészek biztonsági felmérését és fuzzing eszközeit, valamint a kritikus firmware-t és eszköztermékeket megszerző eszközöket.
az engedélyezőlista modul (eszközök.uefi.whitelist) CHIPSEC-et használ az EFI futtatható fájlok listájának kibontásához egy bináris firmware-képből, és összeállítja a “várható” futtatható fájlok és a megfelelő hash-ek listáját (.JSON fájl) később használható összehasonlításhoz. A dokumentáció a modul forráskódjának részeként érhető el a GitHubon, valamint a CHIPSEC kézikönyvben.
a folyamat feltételezi, hogy egy “ismert jó firmware-képből” indul, lehetőleg a gyártó által biztosított firmware gyártási verziójából, és hogy a CHIPSEC-et használta az ismert problémák keresésére, mielőtt véletlenül engedélyezne valami csúnya dolgot. Ez a példa a nyílt forráskódú UEFI firmware-t használja a MinnowBoard rombuszhoz (0.97 kiadás), a folyamat jobb láthatósága érdekében.
a következő CHIPSEC parancssor létrehoz egy efilist nevű engedélyezőlistát.json egy “ismert jó kép” alapján (platform_fw.kuka):
python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin
alkalmazása ezt a folyamatot az x64″ release “és” debug ” képek a MinnowBoard Turbot 0.97 firmware termel a következő engedélyezőlisták:
- MNW2MAX1.X64. 0097.D01.1709211100.bin (UEFI x64 firmware, hibakeresési mód) – X64D97_whitelist.json
- MNW2MAX1.X64. 0097.R01.1709211052.bin (UEFI x64 firmware, kiadási mód) – X64R97_whitelist.json
(gyakorlat az olvasó számára: töltse le a firmware képeket, futtassa a CHIPSEC-et, nézze meg, hogy az engedélyezőlista megegyezik-e)
fontos megjegyezni, hogy az eredményül kapott JSON engedélyezőlista fájl nem csak a bináris fájl kivonata, hanem a firmware kép futtatható moduljainak kivonatait tartalmazza. A CHIPSEC képes beolvasni és katalogizálni az egyes firmware-összetevőket, amelyek felhasználhatók bizonyos futtatható fájlok engedélyezőlistájára vagy feketelistájára.
Engedélyezőlisták közzététele
ha Ön rendszergyártó lenne, közzéteheti ezeket az engedélyezőlistákat az ügyfelek ellenőrzése céljából. A legjobb azonban a fájlok aláírása ellenőrzés céljából. Annak biztosítása érdekében, hogy a végfelhasználó által megszerzett engedélyezőlista a hivatalos engedélyezőlista, különálló aláírással aláírható a GPG-vel:
gpg –detach-sign <file>
ezenkívül a felhasználóknak hitelesíteniük kell a rendszergyártó jól ismert tartománynevének tanúsítványait, ha HTTPS-en keresztül szállítják őket. Az informatikai szervezetek számára is tanácsos aláírni a belsőleg létrehozott engedélyezőlistákat, hogy megakadályozzák az illetéktelen listák felhasználását az ellenőrzések során.
Engedélyezőlisták ellenőrzése
ha különálló aláírás áll rendelkezésre, a GPG használható az engedélyezőlista fájl ellenőrzésére:
gpg –verify <file>
miután ellenőrizte az engedélyezési lista hitelességét, a felhasználónak képet kell készítenie a platform firmware-ről a CHIPSEC segítségével. Ez a parancssor a ‘dump’ parancsot használta a user_fw létrehozásához.kuka:
python chipsec_util.py spi dump user_fw.bin
most CHIPSEC lehet használni, hogy ellenőrizze a platform firmware képet a kapcsolódó engedélyezési lista. Ez a példa ellenőrizné a Minnowboard rombuszhal x64 “release” képét 0.97:
python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin
ezen a ponton a CHIPSEC “átadott” vagy “figyelmeztetés” állapotot ad vissza. Ha a teszt “sikeres” eredményt ad, akkor az összes hash megtalálható az engedélyezőlistán, és megfelelnek a várt értékeknek. Ha a teszt visszatér “figyelmeztetés”, volt, akkor valami más. Ne feledje, hogy a” figyelmeztetés ” ellen nem azonnal jelzi a biztonsági fenyegetést (pl.: lehet, hogy a felhasználó frissítette a gyártó legújabb firmware-jét), de vizsgálatot igényel, hogy megbizonyosodjon arról, hogy a megváltozott firmware-kép nem támadási kísérlet miatt történt-e.
korlátozások
az olyan eszközök használata, mint a CHIPSEC, javíthatja a biztonságot, de egyetlen rendszer sem lehet teljesen biztonságos, és ezek az eljárások nem képesek megvédeni az összes lehetséges támadást. Számos korlátozást kell figyelembe venni az engedélyezőlista eredményeinek értelmezésekor:
- lehetnek testreszabott vagy szabadalmaztatott képcsomagolási módszerek, amelyeket a CHIPSEC nem ért. Ez egyes modulok kizárását eredményezheti, így a megfelelő változások hiányozhatnak az engedélyezőlista-összehasonlítás során.
- a már veszélyeztetett rendszeren futó szoftverek becsaphatók. Ha egy rendszer már veszélybe került, a CHIPSEC és a hasonló szoftverek Nem biztos, hogy megbízható mutatókat szolgáltatnak.
Összegzés
a CHIPSEC engedélyezési listákat generáló képessége lehetővé teszi a firmware ellátási lánc érvényesítését. A gyártók kihasználhatják ezeket az eszközöket, hogy segítsék a felhasználókat a hivatalos firmware-kiadások ellenőrzésében, az informatikai rendszergazdák pedig megbízható képek alapján engedélyezőlistákat hozhatnak létre a belső ellenőrzésekhez.