Silicon Root of Trust – Technologie vytesaná do kamene

Jak tento „kořen“ funguje?

V článku “Zbraň proti kyberválce…” jsme si řekli, jakého úspěchu dosáhlo HPE ve spojení s bezpečností nových generací serverů ProLiant a to především díky inovaci s názvem – Silicon Root of Trust. Jak však funguje a jak chrání celou infrastrukturu? To vše se dozvíte v následujících řádcích.

V prvé řadě je nutné pochopit, proti čemu vlastně infrastrukturu chrání. V dnešní době existuje mnoho způsobů, kterými lze napadnout jakoukoli síť – od té nejmenší v malé firmě čítající pár zařízení a počítačů až po obrovské mezinárodní sítě globálních firem s tisíci připojených zařízení od počítačů, tiskáren, televizí až po lednice a čtečky přístupových karet na dveřích. Jedním z těchto útoků je také útok na firmware a ovladače systému.

Firmware je ve své podstatě software, tedy program, který je nahraný na určitém hardwaru (fyzickém komponentu systému). Díky firmware jsme schopni ovládat a řídit jednotlivé komponenty systému. Ve firmware jsou základní instrukce ke spuštění hardware, k ovládání jeho funkcí, ke komunikaci jednotlivých komponent mezi sebou. Firmware tak zajišťuje, aby si jednotlivé komponenty rozuměly a byly tak k dispozici konkrétnímu operačnímu systému ve stavu „v provozu, připraven“.

Firmware, na rozdíl od klasických programů, je semi-permanentně uložený v paměti hardwaru – zůstává ve flash paměti. Při startu či vypnutí systému se nijak nemění. Je tedy těžko napadnutelný. Kdybychom ovšem nepotřebovali mít možnost příležitostně firmware updatovat. Třeba kvůli novým komponentám v systému. V takové situaci se pak celý kód přepisuje. A to je ten kámen úrazu, bezpečnostní riziko, chcete-li příležitost pro útok.

Firmware je totiž stále pouze program, sada instrukcí. Připustíme-li možnost, že takovou sadu instrukcí útočník upraví, přepíše nebo jen poškodí, poté ji úspěšně nahraje do paměti (podaří se mu vyvolat a spustit update firmware), míří tím vlastně na samotnou funkčnost systému a tím i jeho bezpečnost. Následně může dojít ke změně chování daného systému nebo jeho kompletní nefunkčnosti. A jelikož se nacházíme ještě v momentě před spuštěním operačního systému a dalších programů, je softwarově velmi těžké s takovým útokem bojovat. Laicky by se dalo říct, že se nemůžeme bránit například „antivirovým“ programem, protože jsme ještě ve fázi, kdy jej neumíme ani pustit.

Tento útok tak nemusí být namířený přímo na odcizení dat, údajů, identity, hesel apod., ale míří na samotnou funkčnost systému a tím i jeho bezpečnost – v našem případě serverů, které bývají velmi často kritickým prvkem business modelu (například datacentra musí být neustále funkční a jakýkoli výpadek může znamenat miliónové ztráty během několika minut, a to ani nemluvě o riziku spojeném s následnou ztrátou a zabezpečením takových dat).

A zde se dostáváme k našemu křemíkovému kořenu důvěry. Ten by se dal přirovnat k digitálnímu otisku prstu, který je zabudován přímo do samotného křemíku, ze kterého se vyrábí komponenty systému. Jedná se tedy o ochranu na úrovni materiálu, což znamená, že se nedá přepsat nebo změnit jako jiný program. Jako by byly klasické jedničky a nuly kódu „vytesané do kamene“, z kterého je hardware vyrobený. Samotný firmware má pak v sobě zakódovaný obraz onoho imaginárního prstu. Při spuštění systému prioritně proběhne autentizace, jestli kód zašifrovaný ve firmwaru sedí s tím, který je v Křemíkovém kořenu důvěry. Pokud ano, dojde ke spuštění zbytku systému – startu samotného firmware a následně spuštění operačního systému. Pokud ne, systém upozorní na nelegální odchylku – kód firmwaru se nějak změnil oproti kódu uloženému v samotném křemíku. V ten moment už správce serveru ví, že je něco špatně a může podniknout patřičné kroky, například automatický roll-back, tedy vrácení verze firmwaru na verzi, která správně fungovala a tím obnovit plnou funkčnost serveru. Zároveň pak proběhne detailní analýza toho, k jakému problému došlo, aby se mu dalo v budoucnosti předejít.

Křemíkový kořen důvěry tedy významným způsobem snižuje riziko softwarového útoku, který by mohl přijít ještě před spuštěním všech dalších bezpečnostních funkcí a programů na úrovni operačního systému.