Open source a GDPR

Kybernetická bezpečnost dnes z významné části souvisí s open source software. Open source je však nutno hodnotit i z pohledu ochrany osobních údajů a GDPR.

Vývoj kódu a GDPR

Důležitost kybernetické bezpečnosti stále roste

Rok 2024 je  z pohledu kybernetické bezpečnosti velmi významným. V odborných kruzích rezonuje téma směrnice NIS2, opomíjen není ani související nový zákon o kybernetické bezpečnosti, který zmíněnou směrnici implementuje do českého právního řádu.

Zvyšuje se také nebezpečnost kybernetických útoků, neboť útočníci se naučili využívat i umělou inteligenci, a zvláště pokusy o průniky do systémů s jejím využitím posouvají tuto oblast na novou úroveň.

Všechny tyto okolnosti kladou na organizace nové nároky v oblasti ochrany informací i osobních údajů. To pochopitelně dopadá i na pověřence pro ochranu osobních údajů, kteří jsou častěji než dříve s problematikou kybernetické bezpečnosti konfrontováni.

Kybernetická bezpečnost z významné části souvisí právě s open source software.

I pověřenec pro ochranu osobních údajů (DPO) by měl být schopen se v dané oblasti orientovat. Proto vznikl tento článek, který by měl pověřence do problematiky uvést a také upozornit na rizika týkající se ochrany osobních údajů či obecně informací, která je při rozhodování o využití open source nutno hodnotit.

Protože je článek určen převážně odborníkům v oblasti ochrany osobních údajů, vyhýbá se detailnímu technickému popisu. Dopustíme se i několika málo zjednodušení. To nicméně nenaruší informační hodnotu článku, který je zaměřen zejména na menší organizace. V těch větších tyto věci mají v gesci většinou odborníci z jiných profesí.

Nudná, ale nutná teorie

Nejdříve si ozřejmíme několik pojmů, které je třeba znát.

Licence

Zjednodušeně řečeno, jde o smlouvu na využívání programu uzavřenou mezi uživatelem a autorem, případně jiným držitelem práv k software. Na jejím základě jsme oprávněni software za daných podmínek užívat. Program si nekupujeme, jen můžeme získat práva k jeho užití.

Open source software

Obecně jde o programy, ke kterým je veřejně k dispozici jejich zdrojový kód. Ty jsou často šířeny pod licencí, která umožňuje bezplatné užití a také úpravy zdrojového kódu. Někdy je možné open source kód integrovat i do programů s uzavřeným zdrojovým kódem, často ale licence požaduje zveřejnění zdrojového kódu každého programu, který obsahuje open source části.

Proč vlastně vývojáři někdy zveřejňují zdrojové kódy svých programů? Důvody mohou být různé, zejména:

  • Ideologie. Zde je typická víra v přínos open source a v sílu kolektivní inteligence, která vede k lepším a inovativnějším řešením.

  • Pragmatismus. Vývojáři vědí, že může jít o dobrý business, mimoto použití open source kódu šetří čas i náklady. Proč vynalézat kolo, když ho již napsal někdo jiný?

  • Transparentnost. Odpadají pochybnosti o tom, zda program skutečně dělá jen to, co dělat má, případné slabiny či zadní vrátka (back doors) pro útočníka jsou většinou rychle odhalena.

  • Nezávislost. Kolem open source projektů se často tvoří početné komunity uživatelů a vývojářů, vývoj je tedy nezřídka kdy poměrně dynamický a živelný. Vývoj není závislý na jedné firmě či státu.

  • Sebeprezentace. Participací na vývoji open source o sobě také vývojáři dávají vědět, což otevírá dveře k práci na zajímavých projektech.

Druhy licencí

Nejčastější licence k open source software je možné rozdělit do dvou hlavních kategorií.

Permisivní licence

Tyto licence jsou velmi přátelské, pokud jde o využití kódu i v komerčních aplikacích s uzavřeným zdrojovým kódem. Typickými zástupci jsou licence MIT a BSD. S trochou zjednodušení lze konstatovat, že budeme-li respektovat autorská práva a pokud akceptujeme, že je program poskytován bez záruk, v zásadě nejsme v použití kódů či aplikací dostupných pod těmito licencemi nijak omezováni.

Copyleftové licence

Licence z této kategorie nás celkem omezují v tom, jak můžeme výsledný kód šířit. V zásadě jde o to, že jakékoliv derivativní dílo, založené na kódu pod copyleftovou licencí nebo integrující takový kód, musí být následně licencováno buď pod stejnou nebo kompatibilní licencí.

Nejznámějším zástupcem z této kategorie je GNU General Public License (GNU GPL), která nás nutí k použití této či kompatibilní licence ve všech případech, kdy nějaký kód pod licencí GNU GPL integrujeme do svého projektu. GNU Lesser General Public License (GNU LGPL) je méně striktní varianta, která umožní kód šířit i s jinými podmínkami, pokud je GNU LGPL kód využíván „externě“, tj. v rámci sdílené knihovny (hodně zjednodušeno). Úpravy těchto sdílených knihoven je ale opět třeba šířit pod GNU LGPL či kompatibilní licencí a změny poskytnout ostatním.

Pro úplnost se sluší zmínit, že i ve světě open source programů existují programy a operační systémy, za které se platí. Ty většinou obsahují nějakou přidanou hodnotu nad rámec samotného software, jako je technická podpora a dlouhodobá aktualizace.

Proprietární software

V popisu určitě nesmíme opomenout ani na opak open source, tedy tzv. proprietární programy. Ty  jsou obvykle šířeny ve formě kompilátů (spustitelných aplikací) a bez přístupu ke zdrojovému kódu. K němu se můžeme dostat většinou jen v případě, že jsme významný klient a autor nám dovolí „nahlédnout pod pokličku“, případně musíme za svolení k použití a úpravám kódu dobře zaplatit.

Za proprietárními programy často stojí nějaká společnost či člověk, který se vývojem software živí, a licenci na software je tak třeba zakoupit. Nicméně ne vždy je třeba platit, sám jsem vytvořil řadu programů s uzavřeným zdrojovým kódem, z nichž mnohé jsou k dispozici zdarma. Jen nechci z praktických důvodů zveřejňovat zdrojový kód, neboť tento využívám i v programech, které zdarma neposkytuji, případně programy využívají i úřady a i ze smluvních důvodů je tak třeba konkrétní způsob implementace funkcí chránit. V podobné situaci je celá řada programátorů.

Ochrana know-how, postupů a také pozice na trhu patří mezi hlavní důvody, proč firmy zdrojové kódy nezveřejňují (nedávají k dispozici) a neumožňují jejich integraci do dalších projektů.

K proprietárnímu software lze většinou zakoupit placenou podporu, nebo je tato k dispozici určitou dobu od zakoupení produktu. Běžná bývá i síť obchodních zástupců, kteří pomohou s nákupem konkrétních licencí. Má-li vývoj komerční charakter, často program obsahuje i kvalitní nápovědu. Instalace bývá obvykle jednoduchá a uživatelsky přívětivá.

Licence ve světě proprietárních programů jsou často individuální, přičemž v oblasti vývoje software s uzavřeným zdrojovým kódem je vhodné znát i následující pojmy:

  • Freeware. Program je možné používat zdarma.

  • Shareware. Program je možné používat či vyzkoušet zdarma, bez koupě licence nemusí být přístupné všechny funkce.

  • Trial. Často jsou dostupné všechny funkce po omezenou dobu. Nemusí tomu být tak ale vždy, například u programů pro záchranu/obnovu dat.

Je třeba připomenout, že pojmy nejsou ustálené a záleží jen na autorovi, jak konkrétně podmínky využití programu upraví.

Úmyslně nezmiňuji problematiku pirátského používání programů. Věřím, že nikdo rozumný nebude v organizaci riskovat instalaci software z často pochybného zdroje a související zavlečení malware, nehledě na zbytečné právní spory a opletačky se zákonem.

Nevýhody open source software z pohledu ochrany dat

Nyní probereme největší nevýhody a rizika související s nasazením open source programů. Pro porovnání a snadnější vyhodnocení popíšeme i situaci ve světě proprietárního software.

Mezi největší nevýhody open source programů patří zejména následující:

Chybějící podpora

Jsme odkázáni na komunitní podporu či služby třetích stran, vývojář může, ale nemusí poskytnout potřebnou součinnost. Je pravda, že existuje řada firem, které jsou schopné poskytnout podporu i pro open source software. Kvalita služeb je však závislá na tom, jak detailně program znají a zda disponují vývojáři, kteří jsou schopni řešit chyby v kódu a dělat úpravy na míru.

Pokud se kolem projektu neutvoří komunita uživatelů a vývojářů a projekt spočívá na bedrech jednoho konkrétního člověka či malého týmu, častým problémem je také opuštění projektu. Vývojář software nejen že nevyvíjí, ale ani neopravuje chyby, včetně  bezpečnostních. Použití děravého software je nebezpečné a nelze ho doporučit.

Tato rizika jsou do značné míry eliminována, využíváme-li stále podporovanou linuxovou distribuci, v jejímž repozitáři je daný software umístěn. Na opravě děr a dalším vývoji pak spolupracují i vývojáři kolem daných distribucí, v těchto případech je často software bezpečný i roky po ukončení vývoje původními vývojáři. Problém často vyřeší i jiný vývojář, který program prostě potřebuje (pro sebe, zaměstnavatele či klienta), a tak vývoj či alespoň udržování převezme. Většinou pak program pojmenuje mírně jinak, případně název doplní například o písmena „NG“ („Next Generation“).

Složitá instalace

Někdy je instalace jednoduchá, ale jindy autoři zveřejní jen zdrojové kódy a ty je třeba sestavit. To nemusí být snadné. Chybějící spustitelné soubory je sice často možné stáhnout od třetích stran, nicméně skutečně je možné se vždy spolehnout na kompilát programu, který sestavil nějaký fanoušek ve volném čase? Takový kompilát nemusí obsahovat jen původní kód, ale také malware (škodlivý kód). Aby k těmto rizikům nedocházelo, je vhodné využívat důvěryhodnou linuxovou distribuci, která obsahuje předpřipravené instalační balíčky pro námi využívané aplikace.

Právní rizika

Vývojáři jsou občas lehkomyslní a problematice licencí se věnují mnohem méně než software samotnému. Opatrnost doporučuji obzvláště v případech, kdy open source program využívá například nějaký předtrénovaný AI model (umělou inteligenci). Program je například šířen pod licencí umožňující zdarma i komerční použití, licence samotného modelu ale může být méně otevřená a za komerční použití je nutné zaplatit. Stejně tak může program podporovat například více knihoven pro šifrování. Některé umožňují komerční i nekomerční použití zdarma, jiné nikoliv. Je tak třeba zkontrolovat i licence tzv. „závislostí“, tj. knihoven a podpůrných programů, jejichž funkce námi provozovaný open source program využívá.

Nesoulad s legislativou v oblasti ochrany osobních údajů

Většinou nemůžeme očekávat, že vývojáři ze zemí mimo EU budou zároveň i odborníky na GDPR. Může se tak stát, že na nový web nasadíme redakční systém, která nebude vyhovovat legislativě. V nastavení redakčních systémů tak může být třeba zakázat spuštění analytických a marketingových skriptů ihned po startu, kdy předpřipravené metriky jsou často poměrně podrobné. Pokud řešení neobsahuje vhodnou cookies lištu a není možné ji doinstalovat pomocí doplňku či vyvinout svépomocí, můžeme se také vystavit riziku pokuty.

Je vhodné rovněž zkontrolovat, zda součástí používaných řešení není telemetrie. Pokud program obsahuje funkce, které odesílají informace o jeho využívání, je třeba prověřit odesílaná data. Jak z pohledu kybernetické bezpečnosti, tak zpracování a ochrany osobních údajů.

Odesílání dat je častým problémem u frameworků pro vývoj mobilních aplikací. Pokud vývojář nevypne příslušné funkce, může nadnárodní korporaci za mořem nevědomky odesílat celkem podrobné informace o využívání aplikace i telefonech uživatelů.

Už dávno neplatí, že co je zadarmo a s otevřeným zdrojovým kódem, je automaticky přátelské k soukromí.

Nevýhody proprietárního software

Aby byl článek vyvážený, nyní to „natřeme“ i programům s uzavřeným zdrojovým kódem.

Chybějící podpora je u proprietárních programů mnohem větší problém než u open source software. Každý program s uzavřeným kódem jednou dospěje do stádia, kdy jej výrobce přestane udržovat. Všichni jsme se s touto situací již setkali a ne jednou – jakmile autor operačního systému oznámí, že již nebude vydávat opravy, je jediným řešením upgrade na vyšší verzi, výměna software, nebo vědomý provoz zastaralého a často i děravého software. Poslední z variant vyžaduje celou řadu úkonů, tj. děravý program je třeba obestavět celou hradbou bezpečnostních opatření, což bývá drahé a stejně nás to všech rizik nezbaví.

Ukončení vývoje a podpory často vidíme i u podnikových informačních systémů, kdy je toto součástí marketingové strategie dodavatele, neboť na implementaci nového řešení se prostě vydělá víc,  než na vybírání poplatku za podporu starší verze programu.

Narazíme i na složitou instalaci, například v případě, kdy potřebujeme provozovat starý software. Věc se řeší  různými emulacemi, tj. provozem programů v prostředí, které napodobuje jiný (často hodně starý) systém, neboť do zdrojového kódu zasáhnout nemůžeme. Když nepomůže ani to, jsme nuceni udržovat v chodu často archaické systémy, a to vážně není dobře.

Ani licenční nejistotě se nevyhneme. U řady proprietárních programů musíme hlídat, co s programy můžeme dělat a také kolik klientských počítačů se na serverové verze operačních systémů a programů připojuje. Do problémů se dostaneme, pokud další „CAL“ licence (licence pro klienty) nejsme schopni zakoupit buď kvůli ukončení podpory a prodeje nebo licenční politice dodavatele. Řada výrobců software postupuje tak, že nás od určitého počtu licencí nutí k přechodu na vyšší verzi , což ale nemusí být vždy jednoduché. Pokud tak nepředvídáme dostatečně dopředu, můžeme být nepříjemně zaskočeni vyššími náklady, než se kterými jsme počítali.

Telemetrie je kapitolou sama pro sebe. Velké množství aplikací a systémů zasílá svému výrobci data o využívání, přičemž tyto funkce často nejdou vypnout, maximálně lze omezit rozsah odesílaných dat. Ujistěte se tak, zda aplikace či systém využívá telemetrii a preferujte programy bez povinného odesílání diagnostických dat. K IP adrese a souvisejících informacích o uživatelích je totiž také třeba přistupovat jako k osobním údajům.  

Praktická doporučení pro pověřence

Provoz open source ani proprietárního software není bez rizik. Mnohá z nich mohou mít vliv jak na práva a svobody subjektů údajů, tak na dostupnost, důvěrnost a integritu osobních údajů. Nebudu zde opakovat, co vše by měl pověřenec pro ochranu osobních údajů podle GDPR dělat. Rozhodně ale doporučuji, aby měl alespoň základní povědomí i o oblasti software, licencích, aktuálnosti a hlídal funkce programů, zejména z kategorií telemetrie a využívaných analyticko-marketingových funkcí.

Rozhodně tak mějte přehled o programech ve vaší organizaci a ukažte kolegům z IT oddělení, že o open source software i souvisejících oblastech víte. Chtějte po nich informace o instalovaném software, včetně informací o verzích. Bavte se i o metodách ověřování licenční čistoty a možného zastarávání programů. Stejná péče by měla být věnována i podpůrným knihovnám. Chtějte i pravidelný reporting změn, přičemž ty změny alespoň periodicky kontrolujte. To nemusí být složité – pokud máte nainstalovanou aktuální verzi LibreOffice a v seznamu programů je rok stará verze, snadno na neaktuálnost reportů přijdete.

Před nasazením redakčního software se ptejte, zda není přítomná nějaká analytika či marketingové vyhodnocování návštěvníků, které by vyžadovalo nasazení cookie lišty. Ověřujte soulad s legislativou u všech nasazených programů a hlídejte si i přítomnost telemetrie. Připomínkujte výběr programu a preferujte takové, které „nevolají domů“. Ověřování nemusíte dělat vy, chtějte související reporty.

Samozřejmě se vyhněte zbytečné šikaně, cílem je ověřit správné fungování postupů v oblasti software, nikoliv šlapání po IT. Když uvidíte, že vše funguje, nepřidělávejte práci sobě ani ostatním. Na druhé straně, pokud vám kolegové z IT oddělení nebudou poskytovat součinnost, věc řešte s vedením společnosti, přičemž je ideální, pokud alespoň nějaká komunikace proběhne písemně. Pořiďte si důkaz, že jste na možný problém upozornili. Pokud bude někdo namítat, že „o toto se pověřenec starat nemá“, řekněte mu, že zohledňujete vše, co může mít vliv na dostupnost, důvěrnost a integritu osobních údajů a ovlivňovat práva a svobody subjektů údajů.

Open source a GDPR? Ano!

Obecně není důvod vyhýbat se open source programům, pokud máme v patrnosti výše zmíněná rizika. Ta lze do značné míry eliminovat volbou vhodné linuxové distribuce, která poskytne důvěryhodné repozitáře pro instalaci programů a dostupnost aktualizací. Výhody pak v drtivé většině případů jednoznačně převáží, což platí i pro další operační systémy.

Ve Windows s open source software zacházíme často podobně jako s proprietárními programy. Je třeba zejména hlídat, odkud program instalujeme, právní čistotu a v neposlední řadě i aktuálnost, tedy pokud program neobsahuje funkce automatické aktualizace. Řadu open source aplikací je možné nainstalovat přímo z Microsoft Store. Proprietární operační systémy a open source software se v žádném případě nevylučují, což dokládá i přítomnost programů s otevřeným zdrojovým kódem v distribuční platformě Microsoftu.

Loading...