Jste si jistí, že víte, co je Open Source? A používáte ho správně?

open source licence

Inspirací k na napsání tohoto příspěvku je vlastně krize vzniklá kolem Covid-19. Začnu malou osobní zkušeností.

Delší dobou se věnuji rizikům v oblasti IT. Pokud se budeme bavit o tom, co je riziko, jednoduše můžeme říci, že negativní událost, která má vliv na nějaké aktivum. Co je to ošklivé aktivum? No, vlastně všechno (informace v databázích, v programech, samotné programy, počítače, kabely, switche, routry, servery, firewaly, uložiště, konektivita a vlastně i zaměstnanec). Aktiva je vše, co má pro organizaci nějakou hodnotu a má to vliv na její fungovaní. Riziko působící na aktivum je způsobeno nějakou zranitelností. A jednou z činností mé práce je hledání zranitelností. Zranitelnosti, která nemusí být jen, jak se dočteme na wiki, chybou v programech nebo v řídících softwarech hardware. Zranitelnost může být i legislativní povahy, tedy v našem případě nedodržení licenční politiky open source. Abych se tedy dostal ke své zkušenosti. Pracoval jsem na projektu pro jednu velkou společnost, kde si díky zahraniční matce uvědomili, že používaní open source software nese velmi vysoké riziko (bude to také tím, že konkurence, několikrát zaplatila pekelně vysoké mimosoudní vyrovnání). Asi si teď položíte otázku, za co mohla konkurence zaplatit mimosoudní vyrovnání ve spojitosti s open source? Asi je čas přeskočit do záložky s Googlem, nebo vzít knihu a hledat, co to ten open source je.

Open source je uváděno také jako open source software, nebo také Free and open source software, ale také Free-libre / open source software (od toho jsou odvozené zkratky FLOSS, FOSS, F/OSS, OSS). Teď si asi většina znalejších IŤáků, začne klepat na čelo a řekne, co nám to tu bude kdo vyprávět, my přeci víme, co je OSS. Ale zkuste chvilku vydržet. A to platí i pro ty zkušenější. Pro ty, co OSS používají při vývoji software. Co to tedy ten OSS je? Wikipedia nám řekne, že je to „počítačový software s otevřeným zdrojovým kódem“ uvolněný pod „nějakou licencí“. On je to vlastně úplně perfektní popis, ale co si pod tím představit. Zde je vhodné malinko začít s legislativou (musím jen předeslat, že legislativa není v rámci Evropy, Spojených států a dalších zemí zcela stejná, což jen celou problematiku komplikuje). Abych zde nevypisoval celý zákon nebo definice, vezmu vše jen ve zkratkách. Zákon č. 121/2000 Sb., Autorský zákon, nám definuje, co je dílo. Je to nějaký počítačový program, databáze, obrázky (fonty, ikonky) a to vše i rozpracované a nedokončené. Mluví také o zaměstnaneckém díle a o tom, jak takové dílo (mějme na mysli software) použít. Zákon tedy říká, že na základě nějaké smlouvy nebo oprávnění, je možné OSS použít. Co to tedy ta smlouva nebo oprávnění je? No přeci LICENCE, kterou z nás většina nečte (no já vlastně také ne). Licence je vlastně druh adhezní smlouvy (někdo stanovil neměnnou smlouvu „ber za těch to podmínek a vypadni“). Zabíhat do občanského zákoníku pro naše pochopení není třeba, ale pokud by vás to zajímalo stačí juknout na Zákon č. 89/2012 Sb.. Shrňme si tedy, co dosud víme. Riziko, Aktivum, Zranitelnost (legislativní), Program, Dílo, Licence.

A zde se objeví naše problematika, která se začíná hodně komplikovat, větvit, mít mnoho podmínek a úskalí. Jistě mezi námi jsou lidé, kteří si poctivě čtou všechny smlouvy a licenční podmínky. No sáhněme si na srdce, zas až tak moc nás nebude. Naštěstí většina vývojářů nejsou právníci, a tak pokud chtějí přispět ostatním kolem sebe a poskytnout své dílo (program, software), veřejně k dispozici, sáhnout po nějaké známé, volně šiřitelné licenci a „pod ní“ umožní šíření svého programu, zdrojového kódu.

Kdo je vlastně uživatelem takového Open source? Část z nás si vzpomene, že si stáhli Libre Office (náhražka MS Office) a pravděpodobně někde, při stahovaní, instalaci nebo kde jim tom napsalo, že se seznámili s licencí. Ti zkušenější (většinou vývojáři) si vzpomenou, že vytvořili a zveřejnili nebo stáhli a použili nějaký program šířený pod nějakou veřejnou licenci. A právě pro vývojáře a uživateli jejich programu je určen tento článek.

Abych se tedy vrátil ke své zkušenosti. Takže: společnost si nechává pro své potřeby vyvíjet různé programy na míru, ale také si pronajímá vývojáře a ti pro ni, vyvíjí různé programy. Společnost tedy vyvíjí dvěma způsoby. Uživateli takového programu je pak společnost sama, nebo její zákazníci. Zde je třeba zase začít vysvětlovat. Open source je poskytován pod různými druhy licencí. Každá licence, umožňuje používat daný software „nějakým“ způsobem. Běžně používaných licencí je cca 50 druhů, pokud rozšíříme záběr na méně používané licence. Dostaneme se k číslu 200. Různých druhů licencí je samozřejmě mnohem více, ale jsou spíše vzácné, a tak nás nemusí zas až tak zajímat. Většina zkušenějších, zná licence MIT, Apache-2.0, BSL-1.0, PHP-3.01, X11 a jistě ví, že jsou to ty nejméně problematické. Můžete vzít zdrojový program, dynamicky nalinkovat do svého programu a prodat svému zákazníkovy.

Jenže co když se setkáme třeba s licencí BDS-4Clauses, AGPL-3.0, MPL-1.1 nebo Google Maps. No jo, ale co když je tím zákazníkem třeba univerzita, nebo výzkumný ustav, nebo nemocnice a software bude použít pro nějaké patentové účely, aby mohla získat granty? Lze to? Nebo, co když to je pro reklamní agenturu a software bude používat v reklamně. A mohu prodat program, který vzniknul tak, že používá nějaký open source jako svou součást? Lze program použít v České republice? A co teprve, když do svého programu jiný software šířený pod nějakou open source licencí nalinkuji staticky nebo využiji zdrojový kód a změním ho a zahrnu do svého software. Mohu to udělat? Mohu ho pak komerčně poskytovat? Nemusím pak vzniklý program zveřejnit a poskytnout pod stejnou licencí, pod jakou jsem stáhnul open source, který se stal součástí mého programu? Uvedl jsem licenci a tvůrce mnou zahrnutého open source software ve svém programu abych informoval o použití daného software? Nevznikne odvozené dílo? Nebylo těch otázek již moc ?. A teď si představte, že součástí vámi vyvíjeného programu nebude jen jedna knihovna šířena pod open source software, ale běžně tak 20-50. Napadlo vás, zda můžete mít v jednom domě 20-50 milenek? Nepohádají se, když každá bude chtít něco jiného a nebude možné splnit jejich požadavky současně? Stejné je to s licencemi, některé spolu prostě nemůžou být, protože jedna chce „něco“, co jiná „zakazuje“. Nelze tedy v jednom článku shrnout problematiku Open Source. Je to vždy na individuální posouzení každého použití. Lze však určit pár základních parametrů, které je třeba ohlídat. Ať již jste vývojářem, či uživatelem programů na zakázku. Zkontrolujte alespoň tyto základní parametry pro minimalizaci rizika.

– Způsob vývoje (pro zákazníka/pro své potřeby)

– Způsob použití (pro sebe/pro zákazníky)

– Způsob distribuce

– Potřeba zveřejnit Informace o licenci a autorech

– Způsob použití OSS (statické, dynamické,

– Závislost použitého OSS (je program závislý nebo může fungovat i bez jednotlivého OSS)

– Dojde ke změněn zdrojového kodu

– Lze použít program v daných zemích

– Potřebujete na program uplatnit patent

– Můžete na svůj program poskytnout záruky

– Lze použitý OSS sublicencovat.

– Je třeba zveřejnit zdrojový kod, program, dokumentaci veřejně na internetu a zpřístupnit

Způsobů práce s OSS a pohledu na OSS je mnoho. Uváděné parametry a uvažování nad nimi lze rozšířit na mnohem větší škálu. Většina problematik se zabývá tzv. „Copyleft“ nebo také „viralitou“ licence (tzn. jak velké je riziko, nebo jeho pravděpodobnost, že použitý OSS předá svou licenci na vzniklý program). Ale v zásadě již neříkají, za jakých podmínek se „virálnost“ licence uplatňuje. Je to nejjednodušší pohled na danou problematiku, neboť poskytnout jednoznačný právní výklad k jednotlivým licencím je velmi komplikované a je tedy na uživateli samotném, zda takové riziko použití OSS podstoupit. Jaké tedy plynou rizika ze špatného použití OSS? Zejména ta rizika spočívající v porušení duševního vlastnictví a jím doprovodná. Pokuta, soudní spor a nutnost náhrady škody, poškození reputace. Zjistit výši pokuty u GDPR (u nás zákon č. 110/2019 Sb.) nebo NIS (Vyhláška č. 82/2018 Sb.) je velmi jednoduché. V případě porušení zákona, hrozí pokuta až 4% z obratu. Jednoduchými počty pak lze spočítat, že vaše firma s obratem 50 mil zaplatí pokutu maximálně 2 mil. V horším případě zavřou jednatele nebo osobu odpovědnou. No jo, ale jak odhadnete nějaké dopady, kde není stanovena pokuta a její výše? Je možné se podívat na kauzy CoKinetic Systém, BMW (zde je v konečné fázi možné dohledat i zdrojové kódy BMW i3 na GitHub). Takže pokud jste hackerem a chcete prostudovat zdrojový kód i3, abyste věděli, jak ho hacknout, stačí hledat. Pokud jste přispěvatelem (spoluautorem) nějakého OSS, projděte si bankovnictví našich bank, nebo poskytovatelů různých služeb, nebo nahlédněte do zdrojových kódů různých produktů (televize, mobilní telefon), nebo nahlédněte do svého vozu, zda náhodou nepoužívá váš zdrojový kód a to v rozporu s licencí. A problém je na světě.

Rizik spojených s používání OSS je mnoho, stačí chvíli hledat a zjistíte, že mimosoudní vyrovnání placená za porušení OSS jsou astronomická. Po této pasáži by se mohlo zdát, že OSS je zlo. Ale není tomu tak. Oheň může zabíjet a brát majetek, ale může nás dostat ke hvězdám a může být prostředkem k mnoha úžasným produktům. Vždy záleží na tom, kdo OSS používá a zda se věnuje dodržování licencí, a tedy zákonů, o které se licence opírají. Samozřejmě můžeme ukázat na spory, zda je tedy lepší používat komerční software, nebo OSS. Je možné se ohlédnout za dalšími riziky spojenými s OSS a to zejména s pohledem na to, že obsahují známé zranitelnosti. Tento článek má být spíše pokusem o zviditelnění problematiky OSS, aby nebyla bagatelizována.

Abych se tedy vrátil, již po x-té, ke své zkušenosti. Společnost, kde jsem působil, si tedy je vědoma problematiky open source. Každý týden zahajuje 2-6 projektů. Některé vyvíjí sama pomocí vlastních programátorů, na vývoj některých si pronajímá cizí vývojáře, některé si nechá vyvíjet externími společnostmi. Některé projekty má pro sebe, a některé pro své zákazníky. Dle počtu projektů, počtu zákazníku, počtu použitých open source programů v rámci jednoho projektů se lze ptát, jak velké riziko společnosti hrozí při používání OSS?

Otázky na závěr:

Orientujete se v problematice používání OSS?

Znáte alespoň jednu společnost, která umí v ČR, pomoci s řešením problematiky OSS?

Znáte nějakou společnost, která aktivně v ČR řeší problematiku OSS v rámci svého vývoje?

Vojtěch Nol, senior konzultant GDPR Support s.r.o.