Hmm, secure boot.
Takze ochranka skontroluje dav ako celok, ci splna urcite ktriteria. Nasledne ho vpusti dnu. A dodatocne, pocas dna skontroluje kluce, pristupove karty, alebo cedulky a tych co nemaju validny kluc (kartu, cedulku) vyhodi?
Nefunguje vacsina firiem tak ze kontroluje kazdeho individualne a az potom ho pusti dnu? I napriek tomu, ze to predstavuje urcite zdrzanie.
Jasne, a ono nikdy v secure bootu nebyla zadna chyba a muzeme tomu na 100% verit... tak moc, ze nekterou kontrolu prohlasime uz za zbytecnou... :-) Vase duvera v to, ze vyrobce desky to udela skutecne bezchybne je zabavna... kdepak se bere?
Vypujcil bych si od klasiku :-) Takove chyby vyloucit proste nejde. A odlozenim nekterych kontrol se jen poskytne prostor pro utocnika. A nebojte, on se nekdo dostatecne kreativni vzdycky najde. Cesta do pekel je vzdy dlazdena dobrym umyslem - tady tim dobrym umyslem je o chlup zrychlit boot za cenu, ze se potencialne vytvori novy vektor utoku. Problemum se ma predchazet a ne je vytvaret - bohuzel to ne kazdy vyvojar zvladne... ono prave tohleto "a tohle je zbytecny" uz v minulosti bylo mnohokrat zdrojem prusvihu.
"Zapomínáte na secure boot"
Ani ne ... ty zjevne netusis, ze zdaleka ne vsechny moduly nutne musi byt v initu. Tam musi byt jen ty, ktere potrebjes k bootu, a dalsi hromada se jich muze spustit az potom.
Takze to spis vypada tak, ze tobe prijde k vratum dav, ty nahodne vylosujes 5 lidi, ti kontrolou projdou atak pustis dovnitr cely dav.
A teprve expost budes po arealu honit jedlotlivce, i kterych si najednou zjistil, ze je snima neco spatne, ale oni ti uz mezi tim barak podpalili.
Ani ne ... ty zjevne netusis, ze zdaleka ne vsechny moduly nutne musi byt v initu. Tam musi byt jen ty, ktere potrebjes k bootu, a dalsi hromada se jich muze spustit az potom.
Zjevně netušíte vy. Právě proto dává smysl při načítání modulů z initrd ověřování podpisů odložit, ale zapnout ho před tím, než se začnou načítat ostatní moduly.
To jste rekl vy, ja nic o neprustrelnosti netvrdil. Ale system, kde se kontrola na chvili vypne s tim, ze se to "doufejme" casem dozene rozhodne je podstatne vice zranitelny, a to uz v navrhu. V tech vasich paralelach s airbagy ad vyse - to je jak kdybyste zapinal airbag (nebo i jen bezpecnostni pas) az na dalnici s tim, ze na vyjezdu ze sidliste se prece nemuze nic stat... jenze presne takhle uvazujete s tim docasnym vypnutim kontroly kernelovych modulu, i kdyz si to odmitate pripustit.
Preklopeno k diskutovanemu problemu, bootne kernel, nejakym zpusobem se natahne nepodepsany a malwarem infikovany modul, ten pozmeni i chovani sysfs tak, ze userspace dodatecne zapnuti kontrol zdanlive jakoze projde a nebude zaregistrovane... :-) To se podle vas nemuze stat, co? :D Usetrite par milisekund vymenou za to, ze pootevrete utocnikovi vratka...
V čem přesně se vaše situace liší od toho, že bootne kernel, nějakým způsobem se operace ověření podpisů modulů nahradí za no-op, natáhne se nepodepsaný a malwarem infikovaný modul, ten pozmění chování kernelu tak, že ověřování podpisů modulů zdánlivě jakože projde… :-) To se podle vás nemůže stát, co? :D Ušetříte pár milisekund výměnou za to, že pootevřete útočníkovi vrátka… Čím víc smajlíků, tím víc Adidas :-P
Psal jste o nic vyse a soucasne tu u toho obhajujete jejich nepouzivani ve meste. Aneb sam si nevidite do vlastnich ust... :-)
Odlozeni kontroly u natahovanych kernelovych modulu jde prirovnat k tomu nepoutani se za jizdy po meste :P
20. 9. 2023, 13:08 editováno autorem komentáře
Já jsem se na něco ptal, vy se odpovědi stále vyhýbáte.
Nepoužívání pásů ve městě neobhajuju. Stále se tváříte, jako kdybyste nevěděl o mechanismu secure bootu, který zajistí jiný způsob ochrany načítaných modulů. Takže v tom příkladu s pásy v autě vám tam pořád chybí jiná ochrana srovnatelná s pásy, která by se používala v době, kdy dotyčný pásy nemá zapnuté. Není tak těžké to pochopit, tak ze sebe pořád nedělejte hlupáka, který to nechápe.
Ja vim o mechanismu secure bootu a jeho slabostech, taky jsem si postudoval zpusob fungovani patche - kdy se kontrola proste vypne do chvile, nez ji neco opet zapne. V tom mezicase je proste okno, kdy se muze stat neco hodne skaredeho - a secure boot tomu sam o sobe uz nezabrani... a jak toho vyuzije utocnik je ciste na jeho kreativite.
Prirovnani s pasy je prilehave - to je stejne jako se poutat az po dosazeni rychlosti 40km/h s tim, ze do te doby me ochrani kastle auta. Hlupaka delate ze sebe vy - bezpecnost systemu neni o jedne izolovane funkci, k tem pasum mate krom te kastle taky airbag a ty funkce se vzajemne doplnuji.
Ponechme teď chybnou implementaci. Chybně implementováno může být cokoli, včetně ověřování podpisů modulů v jádře. A výše uvedený proces není nic složitého, co by bylo nějak náchylné k chybné implementaci.
Mezi body 2 a 3. Protoze kdy se tak stane je pouhy dohad. Muze tak byt obratem (ihned, jak se to snazite navliknout vy), ale take treba az pote, co systemd vyhlasi, ze je vse running... Prave tady je ta faze, kdy nekteri honi ty milisekundy, aby se mohli chlubit o chlup rychlejsim startem (analogie jde hledat i u windows service). Vy sva tvrzeni o bezpecnosti celeho prcesu stavite na necem, co jeste implementovane neni, nebo jsem to ja minimalne nenasel. Existuje pouze kernelovy patch, co to vypne a co doufa, ze to nekdy nekdo zase zapne. Ale komu vadi tech par milisekund pri modprobe to asi nezapne jako prvni vec, protoze tim by ten boot sam zdrzel - to je zas muj odhad.
Tak jeste presneji, kdyz mate problem chapat psany text v nejakem kontextu. Poradi, ktere uvadite je ciste vase spekulace. Vas bod tri muze klidne nastat treba az po vasem bodu pet. A nebo uz nekde mate implementaci, o kterou byste sva tvrzeni mohl oprit? ;-) Mate leda tak kulovy a mozna rizika plynouci z nevhodne implementace hodnotite jako Hurvinek.
Danny: Nebo také můžete použít jádro, které podpisy modulů vůbec neověřuje. Jenže pro implementaci nové funkcionality není podstatné, zda je možné ji použít špatně, ale to, zda je možné ji použít správně. To, jestli to má implementovaná správně, si holt bude muset ověřit ten, kdo tu odloženou kontrolu zapne.
Tyhle kecy jsou z kategorie "musim jet po meste aspon kilo, abych byl v cili o chlup rychleji". Obcas to ma ponekud fatalni konce. A zrovna programatori jsou lidi, co skarede chyby produkuji pomerne casto - takze je jen otazka casu, kdy ty vase teorie budou v praxi seriozni bezpecnostni problem... kvuli zdanlive usetrene chvilce.