Trumpa Mac programinės-aparatinės įrangos (firmware) istorija
Pograminė-aparatinė įranga (firmware) – programinė įranga, glaudžiai susijusi su aparatine žemu lygiu, radikaliai keitėsi su kiekviena skirtinga „Mac“ procesoriaus architektūra.
Klasikiniai „Mac“ kompiuteriai, veikę „Motorola 68K“ procesorių pagrindu turėjo savo „Macintosh“ ROM[1]. Tai pasikeitė kompanijai 1994 m. išleidus pirmuosius „PowerPC“ modelius, o 1995 m. „Power Macintosh 9500“ jau palaikė „Apple“ atvirosios programinės aparatinės įrangos (Open Firmware) versiją. Ji atsirado kaip „OpenBoot“ „Sun Microsystems“ SPARC pagrindu veikiančiuose kompiuteriuose ir buvo parašyta „Forth“ programavimo kalba. „Mac“ kompiuteriuose su „Open Firmware“ buvo galima paleisti į interaktyvios sąsajos aplinką, kurioje buvo gana paprasta palaikyti ir įkelti naują programinę-aparatinę įrangą. Tai taip pat buvo ir saugumo košmaras.
Programinės aparatinės įrangos versijų numeravimas buvo sudėtingas (paveikslėlyje aukščiau: $77D.45F6), įkrovos ROM versija $0004.25f1 ir „Mac OS ROM“ failo versija 8.7, skirta „Power Mac G4“, kuriame 2002 m, veikė „Mac OS 9.2.1“. Prireikus „Apple“ pateikdavo atskirus „Mac OS“ ROM failo naujinimus.
EFI
1998 m. „Intel“ pradėjo kurti originalią išplečiamą programinės-aparatinės įrangos sąsają EFI (angl. Extensible Firmware Interface) kaip jos numatytą BIOS pakaitalą asmeniniuose kompiuteriuose. Tuo metu, 2006 m. „Apple“ pradėjo perėjimą nuo „PowerPC“, EFI pasikeitė į UEFI („Unified EFI“) ir nuo to laiko jos versija pakilo iki 2.10 versijos (paskutinis atnaujinimas buvo išleistas 2022 m.)
Kai „Intel Mac“ išvalo pradines savitikros procedūras (POST) ir pradeda veikti pagrindiniai pasirinktiniai lustai, tokie kaip SMC, toliau įkeliama EFI programinė įranga. EFI fazės ir įkrovos įkroviklio boot.efi tikslas yra išplėsti pagrindines BootROM teikiamas galimybes iki tokio taško, kai jau galima įkelti „macOS“ branduolį su jo plėtiniais. Šio veiksmo pagrindinis tikslas yra suteikti prieigą prie „Mac“ aparatinės įrangos per įrenginių medį „IODeviceTree“, išvardijant ir susiejant visą to „Mac“ įrangą. Tai atlieka boot.efi ir perduoda branduoliui, kai jis įkeliamas, ir sudaro IOKit pagrindą „macOS“.
Konkrečiam „Mac“ modeliui skirta boot.efi programinė įranga taip pat teikia nuolatinį ir papildomą įkrovos paslaugų palaikymą, įskaitant atminties valdymą, pagrindines laikmačių ir įvykių funkcijas bei prieigą prie aparatinės įrangos. Ji palaiko pagrindinius įvesties ir išvesties konsolės protokolus bei prieigą prie duomenų saugojimo sistemų. „Runtime“ paslaugos išplečia jas, kad suteiktų prieigą prie NVRAM saugomų kintamųjų ir GUID/UUID, naudojamų pagrindiniams kintamiesiems EFI fazėje ir vėliau.
boot.efi ieško paleisties klavišų komandų, kurias „Apple“ iš pradžių pavadino „snag“ klavišais, pvz., „Command-R“, kad sistema būtų paleista atkūrimo režimu, „Command-S“ ir „-V“, skirta vieno vartotojo ir „Verbose“ režimams, ir „Shift“, skirta sistemos įkrovimui saugiu režimu.
Kai 2006 m. „Apple“ pristatė „Boot Camp“, ji atliko boot.efi pakeitimus, kurie leido kompiuterį įkrauti naudojant kitas operacines sistemas, ne tik „macOS“. Iš esmės tai pateikė tvarkyklių, palaikančių „Mac“ aparatinę įrangą „Windows“ aparatinės įrangos platformos požiūriu, rinkinį, kuris aktyvuojamas, kai „Mac“ įkrovimo metu paleidžiama „Windows“ operacinė sistema.
Programinės aparatinės įrangos (firmware) apsauga
2015 m. kovo mėn. du kibernetinio saugumo ekspertai iš LegbaCore, Xeno Kovah ir Corey Kallenberg, pademonstravo koncepciją įrodančias atakas prieš kelių kompiuterių („Dell“, HP ir kt.) BIOS, kurios galėjo būti naudojamos kenkėjiškam kodui implantuoti. Vėliau, tais pačiais metais, Kovah ir Trammell Hudson pademonstravo programinės įrangos kirminą, pavadintą „Thunderstrike 2“ skirtą „Mac“.
Pirmuosius devynerius „Mac“ kompiuterių su „Intel“ procesoriais metus, „Apple“ teikė EFI programinės aparatinės įrangos naujinimus atskirai nuo „OS X“ naujinimų. Šie programinės-aparatinės įrangos naujinimai iki šiol pasiekiami „Apple“ svetainėje.
2017 m. Rich Smith ir Pepijn Bruienne iš „Duo Labs“ nustatė, kad daugelyje „Mac“ kompiuterių veikia pasenusi programinė-aparatinė įranga. Klaidų ir kitų panašių problemų galimybė jiems kėlė mažesnį susirūpinimą, nei galima saugumo spragų išnaudojimo rizika. Tuo metu „Apple“ jau rūpinosi šia problema ir pasamdė Xeno Kovah ir Corey Kallenberg, kurie kompanijoje pradėjo dirbti 2015 m. lapkritį bei Nikolaj Schlej, kitą programinės įrangos saugos ekspertą, kuris prie jų prisijungė kitų metų rugpjūtį. Jie sukūrė naują įrankį „eficheck“ kuris viešai buvo išleistas 2017 m. rugsėjo 25 d. kartu su „High Sierra“. Kiekvieną savaitę, kol jis nebuvo pašalintas „macOS Sonoma“, „eficheck“ tikrino naudotojo „Mac“ kompiuteryje įdiegtą programinę-aparatinę įrangą ir lygino ją su kompanijos versijų, kurios žinomos kaip „geros“, duomenų bazės duomenimis. Jei būdavo randami neatitikimai, vartotojui leidus, „eficheck“ išsiųsdavo ataskaitą „Apple“.
T2 programinė-aparatinė įranga
2016 m., likus metams iki Smith ir Bruienne pranešimo, „Apple“ iš pradžių pristatė T1 lustą, o kitais metais – T2. Su dviem atskirais procesoriais kiekviename T2 „Mac“ yra du atskiri programinės įrangos rinkiniai, vienas EFI, o kitas žinomas kaip „iBridge“ arba „BridgeOS“. Pagal nustatytą modelį abu atnaujina tik „macOS“ diegimo ir naujinimo programos.
Po standartinio įjungimo savitikros ir SMC inicijavimo, T2 posistemis nustato galiojantį saugaus įkrovos lygį ir, jei tai yra visiškas arba vidutinis saugumas, prieš „boot.efi“ įkeliant ji patikrinama, užtikrinant saugumą viso įkrovos proceso metu.
Mac su M procesoriais
2020 m. išleidus „Mac“ kompiuterius, kuriuose naudojama M šeimos lustai, programinė-aparatinė įranga visiškai pasikeitė. Užtikrinat saugų sistemos įkrovimą ir buvo visiškai atsisakyta UEFI. „Apple Silicon Mac“ kompiuterių įkrovos saugos tikslas yra užtikrinti patikrintą pasitikėjimo grandinę, kurios negali išnaudoti kenkėjiški komponentai, kiekviename įkrovos proceso etape iki „macOS“ įkėlimo. Ši grandinė susideda iš keturių pagrindinių etapų:
- Boot ROM aparatinėje įrangoje.
- LLB (Low-Level Bootloader) – žemo lygio įkrovos įkroviklis - pirmasis etapas.
- iBoot – antrasis etapas.
- „macOS“ branduolys (kernel), įkeliantis visus reikiamus branduolio plėtinius.
Vienas iš daugelio pakeitimų, padarytų nustojus nausdoti UEFI, yra tai, kad paleisties klavišų kombinacijos buvo pakeistos kompiuterio įjungimo mygtuku, kurio pagalba dabar galima inicijuoti sistemos įkėlimą atkūrimo ir kitais specialiais paleidimo režimais. Tai pagerino atkūrimo režimo saugumą ir padarė jo funkcijas prieinamesnes. Dabar naudotojui nebereikia prisiminti įvairių klavišų kombinacijų skirtų sistemos įkėlimui specialiais režimais, nes visos yra integruotos į vieną aplinką.
„Mac“ kompiuteriai su „Apple Silicon“ procesoriais yra pirmieji „Mac“, kurių programinė-aparatinė įranga gali būti atnaujinta ir net įdiegta senesnė nei įdiegta kompiuteryje dabar, ją įdiegiant iš IPSW failų, kai „Mac“ aktyvuojamas DFU režimas. Bent jau kol kas visuose „Mac“ kompiuteriuose su „Apple Silicon“ procesoriais veikia vieninga programinės-aparatinės įrangos versija, susieta ne su lustu ar modeliu, o su „macOS“ versija ir pateikiama tik IPSW failuose ir „macOS“ atnaujinimuose.
-
ROM (angl. read-only memory) arba Pastovioji atmintis, tai atmintis, iš kurios duomenis, įrašytus jos gamybos metu, vėliau galima tik skaityti. ↩︎