Portál AbcLinuxu, 4. května 2025 23:12

Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému

8. 10. 2012 | Luboš Doležel
Články - Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému  

Aktuální verze jádra: 3.6-rc3. Citáty týdne: Tejun Heo, Alan Cox, Andrew Moron. LSS: integrita adresářů a speciálních souborů.

Obsah

Aktuální verze jádra: 3.6-rc3

link

Aktuální vývojová verze jádra je 3.6-rc6 vydaná 16. září. Statistika je vcelku normální: dvě třetiny dělají ovladače, zbývající třetina je směs aktualizací v architekturách, souborových systémech (gfs2 a nfs) a různé obecně věci (plánovač, pracovní fronty a podobné). Linus doufá, že 3.6 bude venku brzo.

Stabilní aktualizace: verze 3.0.43, 3.4.11 a 3.5.4 vyšly 14. září s obvyklou dávkou důležitých oprav.

Citáty týdne: Tejun Heo, Alan Cox, Andrew Morton

link

Nejdřív musím říct, že to je pěkný bordel. Měl bych se za to stydět. Vy byste se za to měli stydět. My všichni, co jsme to dopustili, bychom se měli stydět. Než půjdeme dál, tak bychom měli aspoň deset sekund strávit s pocitem studu.

-- Tejun Heo

Cc: Mezci <stáj@vger.kernel.org>

-- Alan Cox

Lidé provozující gitové stromy dávají přednost opravným patchům vinou rozsáhlé neschopnosti.

-- Andrew Morton

LSS: integrita adresářů a speciálních souborů

link

Během posledních let získalo linuxové jádro schopnost zkoumat integritu souborů na disku v rámci ochrany proti offline útokům. Integrity Management Architecture (IMA) bylo přidáno do jádra 2.6.30 a pak následovaly další dílky skládanky, ale ještě to není hotové. Dmitry Kasatkin měl přednášku na Linux Security Summitu 2012 (LSS) ohledně rozšíření subsystému pro integritu, aby podporoval také obsah adresářů a různých speciálních souborů.

Ochrana integrity je nutná k tomu, aby bylo možné zabránit útočníkům ve změnách obsahu souborového systému bez vědomí jádra, tedy například odstraněním disku nebo nabootováním do jiného operačního systému. Integrita běhového prostředí je už řešená existujícími mechanismy řízení přístupu, jak Kasatkin řekl. Mezi ně patří mechanismy discretionary access control (DAC) jako tradiční unixová práva u souborů nebo schémata mandatory access control (MAC) jako u SELinuxu nebo Smack. Jenže tyto mechanismy závisí na důvěře v metadata pro řízení přístupu (např. bity oprávnění nebo rozšířené atributy s informacemi o zabezpečení), se kterými lze manipulovat pomocí offline útoku.

IMA zjišťuje integritu souborů počítáním kryptografického hashe z obsahu souboru, který je uložen v rozšířeném atributu (xattr) security.ima. IMA může být používána i s modulem TPM ke vzdálenému ověřování integrity spuštěného systému.

Modul pro rozšířenou validaci EVM byl přidán ve verzi 3.2 za účelem ochrany metadat souborů v inodeech proti offline útokům. Tato metadata zahrnují bezpečnostní xattr (včetně těch pro SELinux a Smack), práv, vlastníka, čísla inode apod. Opět se používá hash těchto hodnot, který EVM ukládá jako xattr security.evm.

V jádře 3.3 bylo přidáno rozšíření digitálních podpisů, které umožňuje podepisování atributů IMA a EVM. Kromě ukládání hashů v xattr může být ukládán a ověřován i digitální podpis hashe.

Funkčnost ověřování IMA, která je podle Kasatkina zacílena na jádro 3.7, zabrání v přístupu k souborům, jejichž IMA hash nesouhlasí s obsahem (soubor byl tedy upraven offline). Vyskytly se jisté problémy s uzamykáním, které bránily této funkci v začlenění, ale ty už byly vyřešeny.

Tyto dílky ale ještě nejsou vším, co je nutné pro skutečnou ochranu integrity. EVM chrání metadata inodů a IMA chrání obsah běžných souborů, jedna věc ale stále schází: názvy souborů. Na Linuxu inody názvy souborů neobsahují, ty sídlí v adresářích a vazba mezi názvem souboru a inodem není chráněna.

Následkem je to, že soubory je možné mazat, přejmenovávat či přesouvat v rámci offline útoku, aniž by to subsystém pro integritu detekoval. Kromě toho jsou symbolické odkazy a device nodes taktéž nechráněny, což znamená, že tyto soubory je možné přidávat, upravovat a mazat bez možnosti odhalení. Pomocí úprav obsahu adresářů je možné uskutečnit různé druhy útoků. Je například možné smazat soubor potřebný pro bootování nebo obnovit zazálohovanou verzi (spolu s odpovídajícími xatttr) programu, kde byly nalezeny zranitelnosti.

Kasatkin za pomoci dvou virtuálních systémů nasimuloval offline útok, kdy v jednom VM vytvořil soubory, pal disk připojil ve druhém VM a některé soubory změnil. Při použití existujícího kódu pro ochranu integrity nemohl přistoupit k upraveným souborům v původním VM, ale neměl problém v případě souborů, které byly přejmenovány nebo přesunuty (stejně tak nebyly odhaleny odstraněné soubory).

To vede k ochraně integrity adresářů a speciálních souborů, kterou navrhl. Pro adresáře budou přidány dva nové háčky ima_dir_check() a ima_dir_update(). Prvně jmenovaný by byl použit při vyhledávání cesty (z may_lookup()) a zabránil by v přístupu, pokud byly některé položky v adresáři nečekaně změněny. Když jsou pak adresáře aktualizovány na běžícím systému, tak je zavoláno ima_dir_update(), které upraví údaje o integritě, aby se v nich tyto úpravy odrazily.

Implementace ověřování začíná u kořenového inode při vyhledávání cesty. Při připojení souborového systému se nic neděje, ověřování probíhá až dle potřeby. Kdykoliv je alokováno dentry (cache položka adresáře), tak je toto ověřeno pomocí ima_dir_check(). Toto navrhované zpětné volání nerozbíjí procházení cest RCU, takže by nemělo způsobit problémy se škálováním na větších strojích. Údaj o integritě je počítán hashováním seznamu položek v adresáři s použitím čísla inode, názvu, typu a offsetu každého z nich; výsledek se ukládá v security.ima v tomto adresáři (které je pak chráněno pomocí EVM).

U speciálních souborů jako symbolických odkazů či device nodes byl přidán jeden nový háček: ima_link_check(). Ten je zavolán během vyhledávání cesty (follow_link()) a u systémového volání readlink(). Zde se vytváří hash cílové cesty v případě symbolických odkazů a major a minor čísla zařízení u device nodes. Hodnoty se opět zapisují do security.ima a ověřují se při přístupu.

Aktualizaci vyžaduje i sada uživatelských nástrojů pro nastavování ověřování integrity a vytváření obrazů, aby podporovala tyto nové funkce. Příkaz evmctl (součást balíčku ima-evm-utils) získal schopnost nastavovat referenční hashe pro adresáře a speciální soubory.

Kasatkin předvedl ochranu integrity s novým kódem. Při přesunu nebo přejmenování souboru není do adresáře, ve kterém je obsažen daný soubor, již možné vstoupit, takže příkazy jako ls nebo cd selžou s chybou EPERM. Ukázal také údaje o dopadu na výkon, který byl při srovnání s IMA/EVM bez speciálního zacházení s adresáři a speciálními soubory nevelký, ale při srovnání s vypnutým IMA/EVM už je rozdíl větší. Zajímavé je to, že oba typy IMA/EVM si vedly při kopírování souboru lépe než disk šifrovaný pomocí dm-crypt. Šifrování disků je pochopitelně dalším způsobem, jak zarazit offline útoky.

Mohlo by se zdát, že práce na subsystému integrity se blíží ke svému „dokončení“. Už nyní jsou k dispozici chybějící dílky; Kasatkin a další doufají, že budou v upstreamu brzy přijaty, ačkoliv poznamenal, že vývojáři VFS ještě nerevidovali jeho poslední patch. Ti z vás, kterým se podobná ochrana hodí, už nebudou muset čekat moc dlouho.

Odkazy a zdroje

Kernel coverage at LWN.net: September 20, 2012

Další články z této rubriky

Jaderné noviny – přehled za březen 2025
Jaderné noviny – přehled za únor 2025
Jaderné noviny – přehled za leden 2025
Jaderné noviny – přehled za prosinec 2024
Jaderné noviny – přehled za listopad 2024

Diskuse k tomuto článku

8.10.2012 08:58 psholty2 | skóre: 7 | blog: char
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Odpovědět | Sbalit | Link | Blokovat | Admin
"stable" je tiež "stáj", takze by to mohlo byt "Cc: Koně <stáj@vger.kernel.org>" alebo "Cc: Mezci <stáj@vger.kernel.org>"
8.10.2012 09:36 zxtlpn | skóre: 8 | blog: zxtlpn
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Nejen že mohlo, ono i je. Použitej překlad je hovadina.
Luboš Doležel (Doli) avatar 8.10.2012 11:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Díky. Lámal jsem si nad tím hlavou a vůbec mě nenapadlo se podívat na ten e-mail.
13.10.2012 16:29 Mažňák
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Speciálně u Jaderných novinek mi na abclinuxu připadá, že hodně lidem, kteří kernelu nerozumí, ale zároveň chtějí komentovat článek o "prestižních" věcech, zbývá jen jediné - nesmyslně se vrtat v překlepech a překladech.. :)
pavlix avatar 14.10.2012 15:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Mně připadá, že se takoví lidé mnohem spíše vyžívají v psaní duchaplných poznámek o těch, kdo okomentovali chybu v překladu :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
8.10.2012 09:22 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Odpovědět | Sbalit | Link | Blokovat | Admin
Nějak si nemohu pomoct, ale mám pocit že způsob ochrany souborů takovým způsobem, že systém k narušenému souboru odepře přístup mi nepřijde zrovna šťastný.

Co když dojde k nabourání kontrolního součtu díky chybě vniklé na některé nižší vrstvě? Půjde-li o nějaký klíčový soubor, jako např. /etc/passwd tak může jít do kopru celý systém.

Přesně taková věc se mi totiž v létě stala.
8.10.2012 09:29 Vladimír Čunát | skóre: 19
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Tenhle celý přístup je určen pro jiné situace než řeší většina lidí. Zde je prostě považován "špatný" soubor za horší než žádný. Odlišit chybu HW od napodobeniny někým kdo má k HW fyzický přístup dle mého názoru prostě nejde.
8.10.2012 10:52 Joker
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Pokud dojde k takové chybě HW, jde celý systém do kopru tak jako tak. Když potřebujete zachránit, co se dá, tak pořád jde rebootovat do systému s vypnutou ochranou.
Jendа avatar 8.10.2012 10:11 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Odpovědět | Sbalit | Link | Blokovat | Admin
Počkat, jak se řeší, když nemám TPM a někdo mi změní s obsahem souborů i hashe, případně rovnou jádro? Nebo se předpokládá, že se jádro bootuje z nějakého zařízení, ke kterému útočník nemá přístup?
8.10.2012 10:17 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
UEFI Secure Boot? (hides)
8.10.2012 10:55 Joker
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Tak třeba:
  1. jádro a initramdisk jsou na médiu, které takovým útokem není ohroženo (USB hodinky?)
  2. jádro a initramdisk jsou uložené v BIOSu, nejdou přeflashnout bez toho podpisu a bootují odtamtud (coreboot)
  3. teoreticky to umí i UEFI, ale prakticky to stejně skončí v TPM
Jendа avatar 8.10.2012 11:17 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
A on někdo má takto zabezpečený systém (jádro na externím médiu, TPM), ale nemá šifrovaný disk?
8.10.2012 12:46 tom
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
TPM je napriklad bezna soucast lepsich notebooku a pouziva se to k tomu, aby si uzivatel notebooku nemohl preinstalovat system. Tento pozadavek s sifrovanim vubec nesouvisi.
Conscript89 avatar 8.10.2012 13:06 Conscript89 | Brno
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
A to znamena ze se to tak opravdu pouziva?
I can only show you the door. You're the one that has to walk through it.
8.10.2012 16:15 tom
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Ano, proto se to do tech notebooku montuje.
Conscript89 avatar 9.10.2012 07:53 Conscript89 | Brno
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Stejne jako donedavna RJ11 v noteboocich?
I can only show you the door. You're the one that has to walk through it.
Jendа avatar 8.10.2012 16:26 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Ale jak tohle sakra zvyšuje bezpečnost?
8.10.2012 16:47 tom
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Tim, ze mate kontrolu nad tim, jaky SW si zamestnanci pousteji na noteboocich.
vlastikroot avatar 11.10.2012 18:09 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Jo, nechat je mit jen windows a nesifrovany disk ... uplne nejvic bezpecny :-D trusted computing - pekna 3.14covina.
We will destroys the Christian's legion ... and the cross, will be inverted
Jendа avatar 11.10.2012 18:58 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
A co když mají šifrovaný disk?
vlastikroot avatar 11.10.2012 21:23 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Furt tam je ten windows :-D
We will destroys the Christian's legion ... and the cross, will be inverted
Jendа avatar 12.10.2012 03:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
A co když nemají Windows?

(on teda Linux taky není zrovna etanolem bezpečnosti…)
12.10.2012 10:18 ivdo | skóre: 6 | blog: ivdo | Ostrava 49° 50' 52" N, 18° 17' 01" E
Rozbalit Rozbalit vše Re: Jaderné noviny – 20. 9. 2012: Postup v ověřování integrity systému
Etanol, etalon, ... Bacha na kolky a šarže :-)
8.10.2012 14:48 hnidopich
Rozbalit Rozbalit vše OPRAVTE NIEKTO TOHO MORONA
Odpovědět | Sbalit | Link | Blokovat | Admin
Co komu Andrew Morton spravil?
9.10.2012 00:24 ovoce
Rozbalit Rozbalit vše Re: OPRAVTE NIEKTO TOHO MORONA
Tak tak, zrovna na to koukám, v perexu je "Citáty týdne: Tejun Heo, Alan Cox, Andrew Moron." Chudák.
9.10.2012 06:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: OPRAVTE NIEKTO TOHO MORONA
Včera to IIRC bylo i v nadpisu sekce s citáty, ale tam už je to teď správně.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.