Třetí ročník slovenské konference OpenCamp proběhl po šestileté přestávce. Ta původně vznikla kvůli covidu, ale potom nějakou dobu trvalo, než jsme se s organizátory dohodli, že je třeba v tom pokračovat,
vysvětlil na úvod Marek Galinski. Základem organizačního týmu je asi pět lidí, kteří se o komunitní akci starají. Chceme, aby tahle akce dál rostla.
Milan Pikula: Kód, ceny a důsledky
Dnes se programuje tak, že vezmeme programovací jazyk, který už sám o sobě dává k dispozici základní nástroje. Poté nasadíme vývojové prostředí a nějaký framework, který možnosti rozšíří a nabídne spoustu dalších možností. Na konci dne máte funkční kolos, který obsahuje spoustu modulů a tisíce řádků kódu.
Příkladem takového nástroje je Pear, což byl redakční systém vznikající mezi lety 1999 a 2010. Do něj přispělo 923 přispěvatelů, kteří poslali přes 70 tisíc commitů. Dá se vypočítat, že odhadem do toho bylo vloženo 614 člověkoroků vývoje.
Tohle vše je dnes zastaralé. Když podobný projekt zakládáme, musíme přemýšlet nad tím, že nebude existovat navždy. Projekty morálně zastarávají a umírají.
Nedávná studie zkoumala projekty na GitHubu a rozdělila je na živé, zombie a mrtvé projekty. Velká část projektů zanikne už první rok, polovina projektů se nedostane přes čtyři roky.
Větší šanci na přežití mají velké projekty s rozsáhlou komunitou, což asi není překvapení.
Je tedy řešením uzavřený software? My víme, že samozřejmě ne.
U otevřeného projektu alespoň vidíte, že jsou některé části zastaralé, uzavřený projekt to před vámi skrývá. Běžně řešíme komerční aplikaci, která někde hluboko uvnitř používá zastaralé knihovny.
Poté je tu ještě peklo závislostí, kdy váš projekt může záviset na stovkách různých balíků, které jsou v různém stavu. Je na mně jako na vývojáři si tohle hlídat. Co když ale máme závislosti na závislostech na závislostech?
Problém je, že útočníci tohle vědí a zaměřují se na to. Četli jste veškerý zdrojový kód svého projektu?
Problémem je také prodej různých projektů, například pluginů do prohlížečů. Vývojáři občas prodají plugin včetně uživatelské základny.
Už se objevily případy, kdy vývojář prodal svůj projekt neznámé straně, která do něj okamžitě přidala třeba cryptominer.
Vývojáři začali programovat pomocí AI, ale současné modely nepřemýšlejí. Chovají se tak, jako když vy řídíte. Většinou jde všechno hladce a vlastně nic neřešíte.
Když dojde k nějaké mimořádnosti, vy zapnete mozek a vyřešíte ji. Tohle ale umělá inteligence neudělá.
Ve výstupech jsou architektonické chyby a různé nedokonalosti, které ale řada vývojářů nekontroluje a neřeší.
Každý vývojář má zodpovědnost za vlastní software, musí mít plán na údržbu a opravu software. Musíme mít i plán na vyřazení, což dělají jen ty největší projekty.
Svět se mění, knihovny mizí a vývojář musí přemýšlet nad tím, že některé součásti bude potřeba nahradit.
Alexander Valach: Project Achilles – služba pro vyhledávání zranitelností
CSIRT.SK poskytuje služby pro veřejný sektor a má tým pro řešení bezpečnostních incidentů. V současné době má dvě pobočky: v Bratislavě a v Košicích. Pokud potřebujete poznat svého klienta, musíte k tomu mít vhodný systém a opřít se o kvalitní legislativu.
K tomuto účelu CSIRT používá vládní informační systém Achilles, který dovoluje sbírat informace o organizacích, jejich kontaktních informací, IP adresách, otevřených službách a softwarových řešení.
Projekt Achilles vznikl na základě zkušeností s incidenty v roce 2021, kdy se objevily zranitelnosti ProxyShell, které mohly vést ke vzdálenému spuštění kódu. Na jaře pak byla vytvořená záplata a poté v létě bylo publikováno CVE. To je perfektní stav, kdy už je k dispozici záplata a uživatelé měli možnost se ochránit před zveřejněním.
Přesto CISA poslala varování, že jde o velmi vážnou zranitelnost.
Přesto ještě v srpnu bylo po celém světě napadeno přes 2000 serverů. Na Slovensku to zasáhlo šest subjektů, z čehož jeden byl reálně zneužitý.
Došlo k úniku e-mailů a převzetí kontroly nad serverem Exchange. Kromě toho proběhl pokus o ovládnutí doménového řadiče, který byl nakonec neúspěšný.
Přestože byly k dispozici všechny informace, nepodařilo se incidentu zabránit. Měli jsme všechny potřebné údaje, IP adresy, názvy domén i kontaktní informace.
Přesto vyvstala řada otázek: Co se vlastně pokazilo? Proč organizace chybu neopravila? Dostala varování a ignorovala ho? Víme o organizacích, které se nám přiznají. Kolik takových dalších ale existuje?
Proto vznikl projekt Achilles, který má za úkol identifikovat možné vstupní vektory útoků a umožnit včasné varování subjektů. Cílem je snížit riziko vzniku bezpečnostního incidentu pomocí prevence.
Achilles je složený z kombinace tří nástrojů: open-source ELK stacku, komerčního skeneru Nessus a vlastních komponent Cyber Operations Center (COC). To je srdce Achillesu, které zajišťuje, aby byly zasílány správné reporty.
Subjekt do systému zadá své IP adresy, aktiva, domény a kontakty. Tyto informace se využijí v COC, které spustí skener. Objevené zranitelnosti se ukládají do ELK a vytvářejí se jednoduché statistiky.
Ty pomáhají na základě těchto dat směřovat další aktivity. Z COC pak jdou informace do tiketovacího systému, ze kterého pak putuje mail do cílové organizace.
Na straně subjektu (klienta) je potřeba do systému odeslat kontaktní údaje, šifrovací klíč, seznam domén nebo IP adres a přidat skener na whitelist. Je třeba také informovat svůj bezpečnostní tým a poskytovatele, aby o legitimním skenu věděl předem.
Poté proběhne sken, zranitelnosti se dají do reportu a ten pak putuje klientovi.
Skeny se zaměřují na zastaralý software, což jsou různé redakční systémy (WordPress, Joomla, Drupal), webové servery (Apache, Nginx, Tomcast) a také mailové servery, FTP servery a jiné. Kromě toho se hledají chybějící nebo zastaralá konfigurace TLS, nefunkční a nepoužívané web a otevřené služby jako RDP, SSH nebo VNC. Klasickým problémem jsou už nepoužívané služby, o které se už nikdo nestará.
Služba už skenuje více než 28 tisíc IP adres pro více než 184 subjektů. Drtivá většina zranitelností je webového charakteru, dále to jsou poštovní služby a poté následují další.
Velká část zranitelností se týká zastaralého PHP nebo Apachem. Tyto zranitelnosti se dají vyřešit jednoduše tím, že aktualizujete svůj systém a software.
V budoucnu je v plánu zvýšit frekvenci skenování, zvýšit počet skenovaných subjektů, vytvoření portálu pro přehled výsledků ze skenů a zpřístupnění kódu jako open source. Chceme využívat výsledky z dalších skenerů jako Artemis, OpenVAS nebo Trend Vision One.
Problémem nejsou samotné zranitelnosti, ale především lidé. Nessus je překvapivě přesný a má jen asi 0,01 % falešně pozitivních výsledků. Klíčová je viditelnost v rámci subjektů a komunikace s nimi. Proaktivní přístup znamená obrovský rozdíl.
Je třeba investovat do lidí a jejich vzdělávání, k čemuž slouží výcvikové a školicí středisko Kybernetická aréna. Je určená pro manažery i techniky, mysleli jsme na obě skupiny.
Romi: Open source jako základ pro Web3
Web1 jsme tu měli na přelomu tisíciletí, šlo především o statické weby určené pouze ke čtení. Poté přišel v novém tisíciletí Web2, který nabídl mezilidské interakce a bylo možné začít přes web komunikovat. Data ovšem ovládly velké společnosti, které také mají kontrolu nad veškerými daty. Od roku 2020 máme další krok v evoluci, kterému říkáme Web3.
Přišla infrastruktura založená na blockchainu, kdy se uživatelé stali držiteli dat.
Základem jsou decentralizované aplikace, které spolu mohou komunikovat pomocí otevřených protokolů. Data jsou uložena v decentralizovaných databázích, které mohou být opět mezi aplikacemi sdílené. Aplikace jsou pak uloženy a prováděny v rámci Blockchainu. Dnes už to není věc určená jen pro nějaké geeky, bavíme se o trhu se 4,2 miliony vývojářů a více než 10 tisíc aktivních projektů.
Celé to začalo Bitcoinem, který je open source od prvního dne vzniku. Je přímo spojený s tím, že byl nejprve zveřejněn dokument o jeho fungování a pak následoval zdrojový kód.
Rovnou pak byl spuštěn první uzel a od toho dne je vše zveřejněno, kdokoliv se na něj může podívat a udělat si vlastní verzi. Veškerý vývoj dalších součástí pak probíhá komunitně.
V roce 2015 pak přišlo Ethereum, které je technologicky pokročilejší a nabízí decentralizované aplikace. Kód je otevřený, může se na něm kdokoliv podílet.
Kromě toho vznikla ještě Ethereum Foundation, která se snaží organizovat vývojářské týmy a stará se o samotný protokol. Je ale jen jednou z mnoha entit.
Pro ukládání vlastních aktiv se používají peněženky, kdy nejrozšířenější je MetaMask a v popularitě ji dohání Rabby wallet. Lidé v nich mají majetek v hodnotě miliard dolarů a celé je to zabezpečené open-source softwarem.
Výhodou otevřeného prostředí je, že i zavedenému hráči může velmi rychle vyrůst konkurence.
Pokud chceme ještě lepší bezpečnost, je možné nasadit hardwarovou peněženku. No a co tento hardware, je taky otevřený? Samozřejmě!
Česká společnost Trezor působí globálně a jejich stejnojmenná kryptopeněženka má kompletně otevřený hardware kromě secure elementu pro uložení citlivých dat. Nenašli žádný, který by open source byl, rozhodli se vytvořit vlastní.
Tím vznikl kryptočip TropicSquare.
V rámci Etherea pak může běžet celá řada aplikací, jako souborový systém IPFS, směnárna Uniswap a platforma pro půjčky Aave. V ní se denně otočí miliardové hodnoty, celé je to zase open source, takže si před každou transakcí můžete ověřit zdrojový kód.
Open source je důležitější než kód samotný, protože umožňuje budovat důvěru. Vzniká tím lepší vztah s technologií, stojí to za části úspěchu Linuxu.
Otevřené prostředí také přispívá ke sdílení znalostí a dalšímu vzdělávání. Pokud můžu dostat otázku na jakoukoliv otázku, motivuje mě to k dalšímu zkoumání.
Může jít i o výhodu na trhu, což se například projevilo na trhu s LLM pro AI.
Při tvorbě podobných otevřených technologií potřebujeme mít také dostatečně robustní systém řízení. Obvykle je na začátku nějaký návrh na změnu, poté probíhá otevřená diskuse a následuje hlasování a případně implementace. Hlasování může být založené na vlastnění aktiv, která drží lidé zainteresovaní do celého ekosystému.
Ti jsou motivovaní chtít pro projekt to nejlepší.
Zdenko Vrabel: Kontejnery a síťování
Když se něco v síťování rozbije, přestane fungovat úplně všechno. Když ale něco vylepšíte, velmi rychle se to projeví.
Málokdo ví, že režie okolo sítí v kontejnerech je velmi významná a může způsobit až 35% propad výkonu.
Kontejnery jsou vlastně iluze, která je postavená na linuxovém jádře, cgroups a jmenných prostorech (namespaces). Aplikace vnímá své okolí přes syscally, tedy volání systémového jádra. Jmenný prostor umožňuje pro aplikaci vytvořit obálku, která jí pak dává upravený pohled na svět. Tím vzniká určitá izolace aplikací, která ale není tak dokonalá jako u plnohodnotné virtualizace.
Jmenných prostorů je více typů, jeden z nich dokáže vytvořit pohled na vlastní síťová rozhraní. Aplikace mohou stejné prostředí i sdílet, což se nám hodí například při ladění.
Nepříjemná věc je, že všechno běží v jednom jádře a někomu se může podařit z kontejneru vyskočit. Všechno má své plusy a mínusy.
O správu kontejnerů se starají containerd a runc, které se ale postarají jen o spuštění jmenného prostoru a dál se o něj nestarají. Potřebujeme pak další komponentu, která se postará o přípravu celého síťování. Asi nejrozšířenější je CNI, které je velmi jednoduché na konfiguraci a správu, ale je velmi těžké s ním pracovat bez práv roota. Red Hat má svou vlastní alternativu, která je součástí Podmanu.
Existují ale i další alternativy.
Každý kontejner má tedy své virtuální rozhraní, ale je potřeba ho propojit se zbytkem světa. Obvyklým řešením je propojení skutečného síťového rozhraní na hostiteli s virtuálními hostiteli pomocí vnet. Implementace ale není příliš dobrá, hodně se tam kopírují data mezi různými buffery a má to velký dopad na výkon.
Modernější implementace se jmenuje Netkit a ta zvyšuje výkon asi o 10 %. Někdo se soustředil na jeden problém, vyřešil ho a máme všichni lepší síť.
Výsledná rozhraní je možné propojit pomocí bridge.
Zajímavé to začne být, jakmile do hry vstoupí více samostatných hostitelů, mezi kterými chceme propojovat jednotlivé aplikace. K tomu se používá řešení, kterému síťaři říkají network overlay.
Můžeme k tomu v Linuxu použít například VxLAN nebo Geneve. Způsobuje to ale další režii. Šlo by to tedy lépe?
AWS to řeší tak, že adresy všech kontejnerů mapuje do jednoho síťového segmentu. Je třeba ale dát pozor na to, že když máme třeba 20 tisíc podů, žere to IP adresy.
Pro správu síťových prostředí může programátor použít Netlink, což je v zásadě socket vedoucí do linuxového jádra. Musíte mu posílat správné zprávy, ale je tak možné ovládat celý síťový stack.
Pro složitější situace je možné napsat si vlastní logiku pomocí eBPF. Výhoda je, že je to virtuální stroj, který je možné upravovat za běhu.
Jano Suchal: Stát jako platforma
Slovensko.Digital je občanské sdružení, které funguje přibližně deset let. Připomínkuje legislativu a různé dokumenty a hodnotí státní projekty. Když jsme zastavili projekty za více než 300 milionů eur, přestali jsme to počítat.
Což je velká škoda, protože by bylo lepší, kdyby ty projekty vznikly. Jejich kvalita ale byla zoufalá.
Stát ve fyzickém světě staví dálnice, provozuje nemocni a podobně. Co jsou ale takové dálnice ve světě IT? Co nám stát vlastně v této oblasti dává?
Stát se může stát platformou ve třech hlavních oblastech: zveřejňuje open data, otevírá API nebo vydává software jako open source.
Příkladem již otevřených státních registrů jsou registry právnických osob, registr adres, účetních uzávěrech nebo centrální registr smluv. Registr právnických osob je dokonce zveřejněný pod licencí Creative Commons, dalo to hodně práce a hádek s právníky.
Kromě toho stát zveřejňuje různé statistiky jako počty daňových přiznání nebo data k vyplnění jednotlivých políček.
Katastr si nechal před časem za státní peníze nafotit celé území z letadla ve vysoké kvalitě. Můžete si tam zajít a oni vám to dají na nějaké úložiště, ale jsou to surová data a je jich poměrně hodně.
Některé firmy a weby tato data používají. Takto kvalitní data jiné státy okolo vůbec nemají.
Na základě takových otevřených dat vznikla řada zajímavých projektů jako Finstat.sk, automatické doplňování podrobností do fakturačních aplikací nebo web priznanie.digital, kde je možné vyplnit daňové přiznání. Nechtěli jsme podporovat všechna políčka a tak jsme z otevřených dat zjistili nejběžnější scénáře.
Ukázalo se, že některá políčka vyplňují jen jednotky subjektů. Otázka je, zda pak na základě tohoto zjištění nezjednodušit legislativu.
Jedním z mála projektů s veřejně dostupným API je Slovensko.sk. Stát má povinnost pro všechna podání otevřít API a každý rezort by měl pravidelně kontrolovat, zda má taková API dostupná. Z hlediska legislativy jde o zcela rovnocenný přístup ke službám státu.
Díky tomuto API je možné přistupovat do slovenské datové schránky například přes alternativní aplikaci GovBox. Stejně tak je možné používat nástroj Autogram pro podepisování dokumentů, včetně hromadného podání.
Do legislativy se podařilo dostat, že veškerý nově vyvíjený software placený státem musí být zveřejněný pod licencí kompatibilní s EUPL. V realitě jsem to bohužel ještě neviděl.
Podařilo se ale dotlačit ministerstvo vnitra, aby zveřejnilo SDK pro přístup k NFC na nových občanských průkazech. Využili jsme toho a vytvořili jsme Autogram na mobilu, kde stačí přiložit občanský průkaz zezadu k mobilu a podepsat dokument.
Organizace se snaží také budovat komunitu, pořádá členská setkání, komunitní akce a hackdays obvykle pro asi 50 lidí. Nejsou to klasické hackatony, k nám přijdete a dostanete seznam úkolů, které je potřeba udělat.
Veronika Pizano: Otevírání dveří novým talentům
Aj ty v IT je organizace, která existuje od roku 2012. Snaží se vzdělávat lidi na celém Slovensku, včetně malých škol v nejzapadlejších vesnicích. Někdy jsme překvapení, jak mají takové školy vybavené učebny a že jim chybí vzdělaní učitelé.
Mezi cílové skupiny patří děti, středoškoláci, dospělí i učitelé samotní.
Cílem je více vzdělaných lidí zabývajících se IT. Co může Slovensko do budoucna rozvíjet? Myslíme si, že to jsou jen lidé.
Na Slovensku je v IT přibližně 17,4 % žen, v Evropě je to 19 %. Nejsme příliš pozadu, ale nemůžeme si ani příliš tleskat.
Čísla se navíc příliš nezlepšují, na IT fakultách dlouhodobě studuje asi 15 % žen. Naopak nejlépe v Evropě jsou na tom překvapivě Bulharsko a Rumunsko.
Proč je potřeba mít více žen v IT? Ženy mají jinou zkušenost než muži a je prokázáno, že mohou přinést do projektu nový pohled.
Ženy mohou v této oblasti najít velmi dobré uplatnění, oceňují lepší plat a kvalitní pracovní prostředí. Jen na Slovensku chybí asi 20 000 lidí v informačních technologiích.
Tato místa by mohly obsadit právě ženy.
Proč ženy nechtějí do IT vstupovat? Je to ovlivněno například rodovými stereotypy. Nikdo jim nic nezakazuje, ale když jim od malička vštěpují, že jsou šikovné a nikdy nesmějí dělat chyby, nechtějí jít do IT, kde se učíme právě chybami.
Děvčata se pak raději učí biflováním informací, které pak napíší do testu. Navíc od malička jsou děvčata vychovávána tak, že se nechtějí pouštět do žádných dobrodružství a zkoušet něco nového.
Rodiče také stále často ještě určují, kam půjdou děti na střední školu. Děvče se zájmem o techniku je pak velmi často přesměrováno raději na ekonomickou školu. Ztrácíme tam velký potenciál běžnými stereotypy.
Navíc je problém v samotném školství, kde je informatika vyučována učiteli, kteří tento předmět dostanou navíc ke svém běžnému vzdělání.
Organizace se snaží motivovat a vysvětlovat, proč je dobré do IT vstupovat. Nejčastěji jsou to ženy mezi 30 a 40 lety, které se po mateřské dovolené rozhodly, že chtějí změnu.
V rámci kurzů jsou používány zábavné přístupy, využití Scratche, Ozobotů, Micro:Bit a podobných nástrojů. Během hraní si ani neuvědomí, že se učí něco nového.
Organizace dokáže také zapůjčit hardware například do škol, kde nemají na podobné technologie dostatečné zdroje.
Všechny kurzy na školách probíhají bezplatně. Pokud chceme vzdělávat děti, musíme to dělat bezplatně. V opačném případě by jim na to třeba rodiče nedali peníze.
Vzdělání pro dospělé ženy je placené a ze získaných peněz se platí právě kurzy ve školách. Největší zájem je o kurzy testování, datovou analýzu, strojové učení a kybernetickou bezpečnost. Šedesát procent našich účastnic si najde uplatnění v IT nebo začne uplatňovat nově nabyté vzdělání v jiném oboru.
Michal Hrušecký: Co je nového v Turrisu
Celý projekt Turris vznikl jako bezpečnostní sonda, která má pomáhat týmu CSIRT.CZ sbírat data o útocích na internetu. Tuto funkci realizuje projekt Turris Sentinel, který obsahuje minimální honeypoty, které jen sbírají uživatelská hesla, která útočníci používají. Také se logují pokusy z firewallu aby bylo vidět, které další minimální honeypoty by bylo zajímavé přidat. Nová verze Turris Sentinel přešla z iptables na nftables a díky tomu znovu sbírá a blokuje i útoky po IPv6. Podpora pro ip6tables nebyla úplná, proto jsme se dříve zaměřovali jen na IPv4,
zdůvodnňuje Michal Hrušecký.
Na veřejné stránce Sentinel View je k dispozici i kontrola hesel po vzoru služby Have I been pwned. Můžete tak bezpečně ověřit, jestli vaše heslo je použité ve sbíraných datech.
Stránka také poskytuje přehled dat dynamického firewallu, který v reálném čase zablokovává a odblokovává útočníky. Celé je to plně automatizované.
Data jsou pod licencí CC-NC-SA, takže je možné je celkem volně používat.
Nejčastější útoky jsou na SMTP, následuje Telnet. HTTP a FTP je spíš na ústupu. Celkem systém zaznamená 15 tisíc útoků každou minutu. V přehledu není SSH, který není obsluhován minimálním honeypotem, ale jinou službou Honeyport-as-a-service, která emuluje mnohem komplexnější prostředí.
Když jsme se Sentinel View začínali, bylo to dostupné jen po IPv6, protože to je uvnitř CZ.NIC jednodušší.
Stejně tak správce zajímalo, jak IPv6 funguje v rámci celého ekosystému Turris. Zhruba třetina routerů stahuje aktualizace po IPv6, ale z hlediska útoků jde jen o 0,642 promile útoků. Útočníci tedy stále zřejmě ještě nemají o IPv6 zájem.
Nadcházející verze TurrisOS 7.2 nabídne funkci přesměrování portu v rozhraní ReForis. Také jsme přidali backend ntfy.sh, který umožňuje posílat třeba notifikace o nově připojených zařízeních.
V rámci aprílového vtipu byl připojen reproduktor k sériovému výstupu a vývojáři napsali software, který jakýkoliv zvuk převede do formátu pro tento zvukový výstup.
Následující verze systému ponese označení TurrisOS 9.0 a bude stavět na aktuálním OpwnWrt 24.10. Rozhodli jsme se přeskočit verzi TurrisOS 8.0, protože nestojí za úsilí.
V OpenWrt již oznámili přechod z balíčkovacího systému opkg na apt, což bude znamenat hodně práce pro TurrisOS 10.
Chystá se také nový hardware v podobě Turris Omnia NG, která má být k dispozici už letos a cenovka má být pod 500 dolary. Drobné detaily se stále můžou měnit, ale hlavní specifikace jsou už známé. Nabídne čtyřjádrový procesor na 2,2 GHz, 2 GB RAM, čtyři 2,5GbE porty a dva 10GbE porty SFP+. Bude k dispozici Wi-Fi 7 a router nově nabídne TFT displej. Stále řešíme, co na něm přesně budeme zobrazovat,
uzavírá Michal Hrušecký.
(Autorem fotografií jsou Petr Krčmář a Martin Fekete.)