Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Současné vývojové jádro je 2.6.38-rc4 vydané 7. února. Není tu nic, co by vyčnívalo. Nějaké aktualizace v architekturách (arm a powerpc), obvyklé aktualizace ovladačů: dri (radeon/i915), síťové karty, zvukové, multimediální, scsi, nějaké změny v souborových systémech (cifs, btrfs) a nějaké další drobnosti (síťování, sledovací body, atd.). Zkrácený changelog je v oznámení, všechny detaily vizte v kompletním changelogu.
Stabilní aktualizace: aktualizace dlouhodobě udržovaného jádra 2.6.35.11 vyšla 7. února s dlouhým seznamem důležitých oprav.
Aktualizace 2.6.27.58 byla vydána 9 února. Obsahuje pár tuctů důležitých oprav.
-- Alan Cox
-- James Bottomley napíná hranici tolerance
-- Markus Rechberger (kontext zde)
napsal Jake Edge, 9. února 2011
Téma jak umožnit, aby mohlo být naráz aktivních víc linuxových bezpečnostních modulů [Linux Security Module, LSM], se v jaderné komunitě objevuje s určitou pravidelností. V minulosti se objevily pokusy „skládat“ nebo „řetězit“ LSM, ale do hlavní řady se nikdy nedostalo nic. Na druhou stranu ale pokaždé, když se vývojář objeví s nějakým patchem, který by zvýšil bezpečnost jádra, je obvykle směrován na rozhraní LSM. Vzhledem k tomu, že „monolitická“ bezpečnostní řešení (jako SELinux, AppArmor a další) ve většině distribucí představují ten jediný aktivní LSM, ty jednodušší a konkrétněji zacílené LSM obvykle nelze použít. Diskuze v e-mailové konferenci linux-security-module nicméně naznačuje, že na vyřešení tohoto problému se pracuje.
Existující implementace LSM používá jedinou sadu ukazatelů na funkce ve struct security_operations, kam se ukládají „háčky“ volané, když se má rozhodnout o povolení přístupu. Jakmile se zaregistruje bezpečnostní modul (typicky při bootu použitím příznaku security=), jeho implementace se uloží do této struktury a ostatní LSM mají smůlu. Nápad skrývající se za skládáním LSM je mít několik verzí struktury security_operations a volat háčky každého registrovaného LSM, když se rozhoduje. I když to zní poměrně přímočaře, jsou tu jisté detaily, které je potřeba vyřešit, obzvláště když různé LSM dávají různé odpovědi na otázku ohledně stejného přístupu.
Tento problém sémantiky „spojení“ dvou (nebo více) byl na různých místech diskutován, aniž by bylo nalezeno skutečné globální řešení pro spojení dvou libovolných LSM. Jak před rokem varoval Serge E. Hallyn:
Jeden příklad skládání LSM tak, jak to popisuje Serge, v jádře již je; LSM kvalifikací [capabilities] je tam, kde je potřeba, volán z jiných LSM přímo. Tento konkrétní přístup nicméně samozřejmě není příliš obecný a správci LSM pravděpodobně hodně rychle ztratí trpělivost s přidáváním volání všech dalších LSM. Je potřeba snáze rozšiřitelnější řešení.
David Howells zaslal sadu patchů, která by tento rozšiřující mechanismus přidala. Dělá to tak, že umožní více volání inicializační funkce register_security(), každé s vlastní strukturou security_operations. Místo současné situace, kdy si každý LSM spravuje vlastní data pro každý objekt (přihlašovací údaje a práva, klíče, soubory, inody, superbloky, IPC a sockety), alokuje a spravuje tato data Davidův bezpečnostní framework.
Pro každý druh objektu získá struktura security_operations nová pole *_data_size a *_data_offset, to první vyplní LSM před voláním register_security(), to druhé spravuje framework. Pole s velikostí dat říká frameworku, kolik místa je potřeba pro informace o objektu specifické pro daný LSM, offset používá framework k lokalizaci soukromých dat LSM. Pro struct cred, struct key, struct file a struct super_block se data pro každý registrovaný LSM přilepí na konec struktury, ostatní používají zprostředkující ukazatel. Jsou definovány obalující funkce, které umožňují LSM získat svá data o objektu z nových polí v tabulce operací.
Framework poté udržuje seznam registrovaných LSM a na první místo vkládá LSM kvalifikací. Když je zavolán některý z bezpečnostních háčků, framework projde seznam a volá odpovídající háček pro každý registrovaný LSM. Způsob procházení závisí na specifickém háčku, ale obvykle se hledá nenulová návratová hodnota, která indikuje zamítnutí a která je frameworku vrácena. Další způsoby procházení se používají pro specializovaná volání, například když žádná návratová hodnota neexistuje nebo když má být volán jenom první nalezený háček. Výsledkem je, že se háčky pro registrované LSM volají v daném pořadí (kvalifikace jsou první) a první, kdo zamítne přístup, „vyhrál“. Protože je volání kvalifikací vyřešeno samostatně, nemusí se jimi ostatní LSM zatěžovat; framework to zajistí za ně.
Je tu ale pár háčků, které v prostředí více LSM nefungují moc dobře, hlavně jde o obslužné funkce (tj. secid_to_secctx(), task_getsecid() atd.) pro secid (ID bezpečnostního návěští specifické pro LSM). Davidova současná implementace tento háček prostě zavolá pro první LSM, který ho implementuje, což zabrání používat více LSM, které tyto háčky implementují (v současnosti pouze SELinux a Smack). Davidovo řešení je konkrétní kombinace explicitně zakázat:
Vývojář Smack Casey Schaufler ale není přesvědčen o tom, že to je správný přístup: To trochu bere vítr z plachet, že jo?. Raději by viděl obecnější řešení, které by umožnilo, aby framework obsluhoval více secid a s nimi spojených secctx (bezpečnostní kontext):
Další zajímavá část Caseyho zprávy je, že pracoval na alternativním přístupu k problému více LSM, který nazval „Glass“ [sklo]. Kód ještě nebyl vydán, ale Casey ho popsal jako LSM, který se skládá z jiných LSM:
Narozdíl od Davidova návrhu by Glass ponechal volání LSM kvalifikací v existujících LSM a commoncap by byl volán jenom v případě, že daný háček neimplementuje žádný LSM. Odůvodňuje to tím, že LSM již nyní řeší volání kvalifikací podle toho, jak je to potřeba, takže volání commoncap je potřeba jenom v případě, že to neudělal nikdo jiný. Glass navíc ponechává alokaci a správu bezpečnostních „blobů“ (data specifická pro LSM a objekt) na jednotlivých LSM a necentralizuje je ve frameworku jako Davidovy patche.
Kromě dalších rozdílů je zde zásadní rozdíl ve způsobu, jak se tato dvě řešení chovají v případě, že více LSM má háčky pro jednu bezpečnostní operaci. Glass úmyslně volá každý háček v každém registrovaném LSM, zatímco Davidův návrh typicky přeskočí zbytek řetězu, jakmile některý z LSM přístup zamítl. Casey si myslí, že LSM by měly být schopné udržovat stav, což znamená, že přeskočení jejich háčků může později ovlivnit rozhodnutí o přístupu:
Je potřeba vyřešit spoustu dalších záležitostí včetně věcí jako práce s /proc/self/attr/current (obsahuje bezpečnostní ID pro současný proces), protože různé programy v uživatelském prostoru již nyní zpracovávají obsah tohoto souboru, přestože se liší podle toho, který LSM je aktivní. Lepší by byl standardizovaný formát, který by bral na vědomí možnost běhu s více LSM, ale to by znamenalo porušit jaderné ABI a pravděpodobně to tedy neprojde. Obecně nicméně Casey a David poměrně dobře pokročili, co se týče definice požadavků pro podporu více LSM. Casey je optimistou s tím, že tato spolupráce ponese ovoce: Myslím si, že se nám tentokrát podařilo překonat problémy, které skládání LSM dříve zabránily.
Zatím je k dispozici pouze Davidův kód, ale Casey slíbil, že Glass brzy zveřejní. Se štěstím to povede na řešení skládání LSM, na kterém se vývojáři LSM budou moci shodnout bez ohledu na to, jestli přijde od Davida, Caseyho nebo společně od obou. Silnější odpor může klást Linus Torvalds a další jaderní hackeři, ale absence způsobu, jak kombinovat LSM, se objevuje příliš často na to, aby to bylo možné ignorovat donekonečna.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
An unmatched left parenthesis creates an unresolved tension that will stay with you all day. (http://xkcd.com/859/)
Za posledním citátem chybí závorka, tak pěkně děkuju ... )
Taky přebývá háček v citátu Jamese Bottomleyho nemají řádi pivo. A ještě v šestém odstavci od konce chybí "t" v Jesliže. V neposlední řadě bych v posledním odstavci ve větě Se štěstím to povede na řešení použil "k" místo "na".