Možná se pletu, ale domnívám se, že GPL2 takové politice nijak nebrání. GPL přece nevyžaduje, aby byl produkt k dispozici zadarmo, ani aby byl k dispozici komukoliv. GrSecurity může kód dodávat jenom platícím zákazníkům, ale nesmí vyžadovat žádnou další platbu navíc za poskytnutí zdrojáku (snad kromě nějakého minimálníhi manipulačního poplatku) a nesmí platícím klientům bránit v tom, aby kód dále šířili v souladu s GPL a to i zadarmo, pokud se tak klient rozhodne.
Podle mne to omezení je, protože záměr toho ustanovení by byl zabránit šíření toho kódu, a u zákazníků by to tak i působilo (ostatně proto by to ta firma dělala). Navíc si nejsem jistý, zda by takové ustanovení smlouvy nebylo diskriminační, resp. jestli by nebyla diskriminace, pokud by Open Source Security po vypovězení smlouvy odmítlo s daným subjektem smlouvu podepsat znovu, pokud by o to měl zájem.
Zajímavé by bylo, kdyby OSS poskytla slevu za to, že klient nebude patche šířit.
A taky si nejsem jistý, zda vůbec patche samotné (před aplikací) jsou vždy odvozeným autorským dílem. Dovedu si představit patch, který nahradí všechny výskyty volání funkce printf
a nahradí je za volání funkce printf_hardened
. Když nebude šířen formou diffu ale skriptu, dá se aplikovat na libovolný kód. A vlastně to ani nemusí být autorské dílo…
Čistě teoreticky by snad bylo možné mít ve smlouvě klauzuli, že pokud budou kód dále distribuovat, GrSecurity vypoví smlouvu o podpoře. Reálně by to bylo jasně průhledná snaha se vys*at na GPL a GrSecurity by si tak v komunitě okamžitě vysloužila tu nejhorší pověst. Je ale taky pravda, že jejich reputace minimálně mezi vývojáři jádra je už tak jako tak v bodě nula.
Já tedy GPLv2 chápu úplně jinak..
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
grsecurity vzal Linux (GPLv2), upravil jej (vzniká odvozená práce) a tedy jej podle 2b musí distribuovat pod GPLv2 *at no charge to all third parties*.. Přičemž explicitně zmíněná třetí strana je autor (autoři) původní práce a implicitně kdokoli, kdo má zájem.
Kdokoli může prodávat věci pod GPLv2 (i když je nevytvořil - pokud bych získal současný zdroják grsecurity, nazval to bettergrsecurity a začal to prodávat za poloviční cenu, jsem naprosto v právu) - zároveň ale musí vždy dávat k dispozici zdroják na požádání a zdarma. Pokud to nedělá, ztrácí právo kopírovat, modifikovat a distribuovat původní dílo a může být souzen.
https://twitter.com/marcan42/status/724749571495075840
No, je to sice příklad trochu vytržený z kontextu, ale právě když jde o bezpečnost, tak to chce připomínky vývojářů jádra zapracovat, oni pak udělají i to code review. A ne udržovat vlastní patche, protože jsou tak zběsilé, že je nikdo z jaderných vývojářů reviewovat neche. A pak vnášet bezpečnostními featurami další chyby, právě proto, že kód je sice dobře míněný, ale špatně provedený.
Několik poznámek:
1) historické patche včetně podpisů (což na konkurenčních mirrorech nebývá ani zdaleka standardem) sbírám na https://nat.brmlab.cz/~jenda/grsec/. Bohužel mě to napadlo až loni v létě, takže mám jenom kernely 4.7 - 4.9.
2) odkaz do fóra máte chybný (dvojitý escape), https://forums.grsecurity.net/viewtopic.php?f=3&t=2980
3) Není někde dokumentace, co znamenají ty věci v tabulce? K některým jsem našel hezké papery, ale něco mi nic neříká a rád bych se dozvěděl, jak to funguje.
Přidám: https://pax.grsecurity.net/docs/. Ale představoval bych si i něco trochu víc implementation-specific.
Co přesně znamená 'platící zákazníky'? Znamená to že distribuce (třeba Alpine a SubgrapsOS) je nebudou moci distribuovat v základní instalaci?
Moc se v hardened nevyznám, ale opakovaně jsem slyšel od OpenBSD vývojářů, že Linux je v bezpečnostních mechanismech až příliš laxní. Jak jsou na tom OpenBSD/FreeBSD v porovnání s GrSecurity?
Co to znamena "zrusit" smlouvu? Pokud firma odstoupi od smlouvy (musi proto byt bud zakonny nebo ve smlouve explicitne uvedeny duvod), musime se vratit vzajemne plneni, tzn, ja patche, ona mi musi vratit penize. Co se stane se mnou zverejnenymi zdrojaky patche? :)
Jsem si docela jistý, že OpenBSD na Maců pojede: https://superuser.com/questions/528733/installing-openbsd-on-mac-mini-core-i5 někde na undeadly byla zmínka o zprovozňování i na Macboocích.
Ano, a koli tomu ti do systemu nainstaluje SUIDovanu binarku pre ROOTa (chrome-sandbox). Kto vie co v nej je. Mozu si tam pod rootom spustat co len chcu. Takze security urobena tak ze musis DOVEROVAT GOOGLU sa mi velmi nepaci. To radsej nech to bezi pod mojim ID a bez potreby takejto feature.
Na Ubuntu by řekl, zkus to s LXD. To žádnou podporu na straně CPU nepotřebuje. Plná virtualizace to sice není, ale izolace jmenných prostorů spolu s omezeními pomocí AppArmoru a SecCompu nabízí přinejmenším stejné zabezpečení proti nepřátelskému kódu, jako GrSecurity a firejail. Jestli to ale funguje na Archu, to nevím.
Buď je LXD v AUR, nebo se dá použít nspawn https://wiki.archlinux.org/index.php/Firefox/Tweaks#Run_Firefox_inside_an_nspawn_container
S tvrzenim o "prinejmensim stejnem zabezpeceni" bych byl opatrny. Grsec se hodne zpusoby snazi zabranit exploitnuti jadra. Namespacy jsou dost komplexni a jak pred par lety rekl Andy Lutomirski "if they're off you have a security problem, if they're on, you may also have a security problem" - snad je to dneska uz v lepsim stavu :)
Částečně je to pravda. Linux má skutečně tendenci věci řešit po microsoftsku: masivní inženýring a milion komplexních featur, kterým málokdo plně rozumí. Naproti tomu přístup OpenBSD, tj. mít co možná nejjednodušší a nejprůhlednější kód, aby bylo možné ho snadno auditovat, je sice lákavý, ale současně znamená, že OpenBSD nikdy nebude tak všestranný OS, jako Linux. Co je lepší záleží na konkrétních požadavcích.
Namespacy sice měly řadu porodních problémů (podobně jako jaily ve FreeBSD) ale v zásadě se to vyřešilo. Dneska se používají tak často a tak široce, i pro bezpečnostně kritické úkoly, že osobně neváhám k nim mít důvěru. Nějaký 0day se samozřejmě nikdy nedá vyloučit, ale totéž platí i o GrSec.
To jistě, a i proto nečekám, že by to někdo nutně touto formou šířil. Ale v principu to může např. nějaké distro koupit, integrovat do instalace a šířit ve svých repozitářích.
Spíš než smysluplný obchodní model mi to proto připadá jako truc ze strany GrSecurity: když náš úúúúžasný kód nechcete do jádra, tak budeme najust kasírovat uživatele. Předchozí jednání GrSecurity naznačuje, že potřebná infantilnost jim není cizí.