Hlavní navigace

Lékaři neřeší bezpečnost, ZFS na Linuxu se zlepšuje a miniaturní verze ESP32

Petr Krčmář

Zápisky z prvního dne šestého ročníku konference LinuxDays. Jak moc je špatná bezpečnost dat ve zdravotnictví, jak hledat ve svém systému nezvané hosty, trnitá cesta cryptolockeru a novinky u Espressif Systems.

Petr Kajzar: Bezpečnost dat ve zdravotnictví

Petr Kajzar je lékař, který se snaží změnit přístup zdravotnictví k bezpečnosti. Ani naše poměrně mladá generace lékařů nemá s počítači příliš dobrý vztah a stačí, že jim to funguje. Byrokracie je velmi mnoho, pacientů přibývá a lékaři nechtějí řešit další problémy. Lékaři jsou apriori proti všemu, chtějí hlavně léčit a nechtějí se zabývat ničím okolo. Stačí prý zadat do vyhledávače „lékaři odmítají“ a uvidíte sami. Zkuste si to. Já se to snažím změnit, na fakultě, na přednáškách, ale je to dlouhodobý proces. Nedá se to změnit jedním příkazem.

Lidé se v poslední době začali zajímat o počítačovou bezpečnost, jak přibývá různých útoků na data. Statistiky ukazují, že 46 procent lidí používá sociální sítě. Svůj profil ve zdravotnictví má vlastně každý z nás. Pokrývá to 100 % obyvatel. Už když se narodí miminko, má zavedený zdravotní záznam v systému. V počítači už to vlastně zůstane navždy. Většina nemocnic už používá počítačové systémy, minimálně jako podpůrný systém běžné zdravotnické dokumentace. Tyto počítače jsou obvykle připojeny k internetu. Jen 60 % lékařů tvrdí, že ke své práci používají internet. Ve skutečnosti je připojeno 90 % jejich počítačů. Lékaři už dnes vlastně ani nevnímají, že se data odesílají do pojišťoven a jejich programy používají přístupy k různým online službám.

V USA každoročně uniknou miliony zdravotnických záznamů. Jde samozřejmě o peníze. Před osmi lety se daly za kompletní záznam získat stovky dolarů, dnes jde spíše o jednotky dolarů. Dnes už totiž útočníci nechtějí data, ale přímé peníze. V posledních letech tedy těchto útoků ubývá a naopak na scénu nastupuje ransomware. Nemocnici to hodně zabolí, protože se zdravotnictví stalo už na informačních technologiích závislé. Spousta dat je už dnes vedeno jen v počítačích. Bez počítače nevíme, s čím se pacient léčí, kde v nemocnici leží nebo ho neumíme odeslat na vyšetření. Když pak útočník systém ochromí a požaduje platbu za obnovu, nemocnice velmi rychle zaplatí. Je to pro ni lepší než být dva týdny bez systému.

Pro útočníka je nejjednodušší zaútočit přímo na uživatele. Lékaři a sestry nejsou odborníci na IT, používají ho jen jako svůj podpůrný nástroj. Stačí jim tedy poslat phishingový mail a jste vevnitř. Velmi špatně se podle Petra Kajzara také zachází s daty. Velmi často leží citlivé dokumenty na ploše nebo je uživatelé nosí na flashkách. Velmi častým jevem je také sdílení přihlašovacích údajů. Když lékař potřebuje, aby mu sestra pomohla, běžně jí napíše své jméno a heslo. ‚Vyplň ten recept, já nemám čas.

Samostatnou kapitolou jsou pak zdravotnické přístroje, jednak ty velké používané k vyšetření. Jsou to mamuti, jejich vývoj trvá léta a už od začátku se vymyslí, na čem to poběží. Výroba trvá roky a v době uvolnění na trh už je pak software zastaralý. Nedávno jsem sedl k ultrazvuku z roku 2016, na kterém byla Windows XP. Bohužel je tu velký problém s aktualizacemi, protože přístroje samotné vydrží v nemocnici desítky let a je v nich pak velmi zastaralý software plný bezpečnostních děr.

Běžně jsou rozšířené také vestavěné přihlašovací údaje. Například tomografů není po světě zase tak moc, takže aby bylo možné dělat na nich jednoduše vzdálený servis, má technik k dispozici pevně vložený uživatelský účet. Velmi často jsou přihlašovací údaje uvedené přímo v manuálu, který je k dispozici na internetu. Dnes už se to hodně omezuje, ale na deset let starém tomografu to najdete. A ten v nemocnici bude ještě velmi dlouho sloužit, není důvod ho měnit.

Podobnými problémy trpí i malé přístroje jako kardiostimulátory, inzulinové pumpy a podobně. Výhoda je, že si to můžete koupit na eBay a prozkoumat, jaký kód v tom běží. Opět je software plný bezpečnostních chyb, mají vestavěné přihlašovací údaje a podobně. Opakují se tu vlastně úplně stejné chyby. Navíc se dnes i do těchto přístrojů dostává bezdrátová komunikace, aby lékař mohl pacienta kontrolovat na dálku. Obvykle tato komunikace probíhá nešifrovaně a navíc chybí autentizace. Kdokoliv tedy může zařízení sledovat nebo ovlivnit. Zajímavé je, že na eBay jsou teď kardiostimulátory nedostatkovým zbožím. Ještě před časem jste jich tam mohli koupit hromadu, dnes jsou vyprodány, nedávno proběhlo několik studií poukazujících na jejich bezpečnost.

Podle Kajzara je navíc poměrně snadné to vyřešit. Je potřeba vylepšit počítačovou gramotnost uživatelů, lépe se starat o systémy v nemocnicích a vylepšit bezpečnostní podporu zařízení. V Americe existuje návrh zákona, který nutí výrobce se starat zdarma o bezpečnostní aktualizace těchto přístrojů. Klidně ať to běží na XP, ale je nutné tomu zajistit podporu.

Martin Černáč: Trnitá cesta cryptolockeru

Forenzní laboratoř organizace CESNET velmi úzce spolupracuje s bezpečnostním týmem CSIRT. Když například přijde podvodný e-mail s fakturou, která ovšem místo kýženého dokumentu obsahuje malware. Tím vzniká incident. CSIRT ho začne řešit a začne nám klást různé otázky, třeba jak se uživatel nakazil malwarem nebo odkud podvodný e-mail dorazil. Hlavní otázky jsou: Jakou roli hraje odkaz při infekci ransomware? Jaké jsou lokální a síťové charakteristiky indikující otevření souboru?

Typicky vzniká například hypotéza, že se ransomware nainstaloval pomocí podvodného e-mailu. V případě cryptolockeru jsme začali sledováním odkazů na DropBox. Těch byly stovky, ale vedly jen na šest různých souborů s archivem. Většinou totiž dlouho na DropBoxu nevydrží.

V archivu byly typicky dva soubory, jeden z nich byl obfuskovaný JavaScript. Útočník se snažil znepříjemnit analýzu, escapoval znaky, skript skládá kód za chodu nebo využívá rozkládání řetězců. Skript se snažil stáhnout soubory ze dvou různých adres. Ty obsahují NSIS instalátor, který byl ale modifikován, takže nebylo možné jej rozbalit standardním způsobem. Byla tam přidána DLL knihovna, kterou instalátor považuje za plugin a dovolí jej zavést a nechá mu přepsat své funkce. Ve zmíněné DLL knihovně byl kód, který je schopen dešifrovat zbytek souboru a vložit do běžícího procesu. Zajímavé je, že vše tak zůstává v paměti a dešifrovaná podoba se nikdy nedostane na disk.

Takto získaný program pak nainstaluje samotný malware Cryptolocker. Data se ukládají do tmp adresáře uživatele a vytvoří proces svchost.exe. Těchto procesů je v systému celá řada, takže si uživatel běžně ničeho nevšimne. Ve výpisu procesů je ale mimo běžný strom, takže odborník si na první pohled všimne, že je něco špatně.

Ransomware pak začne postupně šifrovat data, náhodně generuje přípony a v každém adresáři nechá instrukce v souborech TXT a HTML. Jakmile skončí, změní pozadí plochy. Je hodně zaměřený na uživatele, takže se ho snaží informovat o tom, jak zaplatit. Změní plochu, otevře prohlížeč se stránkou a ještě otevře dialogové okno. V tu chvíli už Forenzní laboratoř má kýžené odpovědi pro CSIRT – odkaz vede na stažení souboru, uživateli se šifrují data, malware komunikuje s konkrétními servery na internetu.

Nejdůležitější otázkou je, jak takový útok zastavit. V tomto případě byly e-maily hodně různorodé, stejně jako se měnily odkazy na DropBox. S tím také nic neuděláme, mohli bychom krátkodobě zablokovat přístup na DropBox, ale to by se uživatelům nelíbilo. Je ale možné přidat pravidlo zabezpečení koncových stanic a přidat blokování práce s tmp soubory. Je také možné zablokovat přístup k serverům, ze kterých si skript stahuje soubory. Tím končí práce Forenzní laboratoře.

CSIRT reagoval nalezením a izolováním napadených zařízení podle IP adres, kontaktoval postižené uživatele a nabídl pomoc. Důležitá je také prevence, úprava pravidel práce s tmp adresářem a školení uživatelů. Úprava bezpečnostních pravidel se ukázala jako velmi efektivní, protože brzy přišly nové podobné útoky, proti kterým pomohl stejný postup.

Pavel Šnajdr: ZFS na Linuxu, co je nového

V červnu vyšlo ZFSonLinux 0.7.0 po delší době od předchozího stabilního vydání. Toto vydání se zaměřuje především na stabilizaci běhu ZFS na Linuxu a zlepšení spolupráce s paměťovou správou Linuxu. ZFS má vlastní cache, která je chytřejší než ta v Linuxu, protože sleduje i četnost použití jednotlivých stránek.

Slabina ale byla dříve v tom, že se používaly jaderné Slaby, které ale jsou na 32bitových architekturách omezené na spodní gigabajt paměti. Není tedy možné mít ARC cache větší než jeden gigabajt a hlavně se postupně paměť fragmentuje a později už není možné najít dostatečně velké souvislé bloky. Nově jsou uživatelská data přesunuta do vlastní paměti, což ale znamenalo významně přepsat kód ARCu. Změna to není triviální a dělá se proto postupně. Začalo se datovými buffery, ale například metadata jsou stále ještě ve Slabu. Zmizel ale problém s alokací velkých bloků, takže ZFS umí stále efektivně využívat velké množství paměti.

Novinkou je také komprimovaná ARC cache, která dekomprimuje data za běhu, pokud jsou potřeba. Když zjistí, že jsou některé stránky potřeba hodně často, nechá si je v nekomprimované podobě. Proběhla také hardwarová optimalizace, klesla zátěž například při přepočítávání RAID záznamů. Jsou tu i nové hašovací funkce jako SHA-512, Skein nebo Edon-R. Bohužel zatím nejsou akcelerovány v procesorech. Nově je také možné zavést rozumný limit na počet objektů souborového systému, aby například uživatel VPS nemohl příliš souborový systém zahltit požadavky. Velmi příjemná je také základní podpora diskových polí, takže souborový systém se umí v případě výpadku disku postarat o rozsvícení LED a po výměně disku jej umí sám vrátit do poolu.

Při posílání dat po síti pomocí zfs send je možné zapnout komprimaci a je možné také navázat na přerušené spojení. Do dat se přidávají tokeny a vy při navázání můžete vybrat pokračování od určitého tokenu a tím efektivně navázat na předchozí práci. Nově je možné také lépe sledovat statistiky jednotlivých požadavků na data a je také možné pozastavit scrub, pokud potřebujete dočasně pole použít.

Velkou netrpělivě očekávanou novinkou je podpora šifrování přímo v ZFS, která by se měla objevit s verzí 0.8.0. Doteď jste mohli řešit šifrování přímo na zařízeních, nad kterými máte postavený ZFS pool. To má nevýhodu v tom, že pokud máte například mirrorované pole, musíte šifrovat vícekrát. Je také možné šifrovat až nad ZFS, ale tím se zase ztrácí výkon. Podpora přímo na úrovni souborového systému umožňuje jednodušší správu a také je možné dělat všechny operace nad disky i bez znalosti klíčů. Je možné stále vidět nastavení souborového systému a rozdělení na jednotlivé datasety, i když bez klíče nemá správce přístup k datům.

Šifrování má i několik málo nevýhod, protože některé vlastnosti musely ustoupit. Například není možné nastavit více lokálních kopií dat než dvě, deduplikace je limitována na data šifrovaná jedním klíčem a dochází k mírným únikům dat týkajících se stejného obsahu jednotlivých bloků. Také je komprese společně s šifrováním náchylná na útok typu CRIME. Pokud ukládáte velké množství malých souborů, může klíč uniknout. Rozumné je nepoužívat kompresi a šifrování zároveň.

Další chystanou novinkou je takzvaný Declustered RAID (dRAID), který je alternativou k tradičnímu RAIDZ. Jeho problémem je dlouho trvající obnova dat v případě poškození některého z disků. dRAID rozkládá spare disky napříč celým polem a je tedy velká pravděpodobnost, že se data už na některém disku nacházejí. Obnovení je tedy výrazně rychlejší, bohužel má dRAID zase nevýhodu v tom, že celá konfigurace pole musí být známá předem a výsledek je tedy výrazně méně flexibilní. Tato a další novinky se objeví ve vydání 0.8.0 nebo ještě později.

Václav Zbránek: Novinky v projektu Turris

Projekt Turris organizace CZ.NIC se stále vyvíjí, mezi hlavní novinky patří: rychlejší booting a přechod původních Turrisů 1.x na Btrfs a nový updater. Znamená to, že budeme schopni držet podporu těchto zařízení velmi dlouho. Chtěli jsme, aby to bylo alespoň pět let. Doufáme ale, že to bude mnohem déle. Mnoho novinek se také týká bezpečnosti nebo uživatelského přístupu. Když si chcete podrobněji nastavit Wi-Fi, nemusíte se kamarádit s řádkou a zvládnete to.

Turris Omnia s 2 GB paměti je zatím vyprodán, probíhá výroba dalších 5000 kusů a jednání s dalšími společnostmi. Určitě se nebojte si Omnii koupit, její život ještě zdaleka nekončí, i když už si hrajeme s dalším zajímavým hardware.

V plánu je například systém vzdálených záloh, lepší podpora Nextcloudu, HaaS (honeypot as a service) jako samostatný projekt, lepší testování aktualizací a probíhá migrace z repozitářů OpenWRT na LEDE. Vtipné je, že LEDE se postupně zase spojuje s OpenWRT. Probíhá také přepis rozhraní Foris, který bude otevřenější a modulárnější. Chystáme také rodičovskou kontrolu, která bude založená na projektu Suricata. Nemáme ještě konkrétní datum, ale děláme na tom.

Pavel Kácha: Hledáme nezvané hosty

Téměř každému správci už se stalo, že mu někdo úspěšně zaútočil na server nebo nějakou službu. Není se za co stydět, stalo se to už skoro každému. Útočníci jdou hodně dopředu a jsou o dva kroky před námi. Důležitější podle Káchy je, jak na takový útok zareagujeme. Nejdřív je potřeba zachovat klid, nepanikařit a dát si kafe. Pak teprve začněte přemýšlet, co s tím dál.

Důležité je, že si nesmíte pošlapat žádné stopy. Cokoliv uděláte, bude dělat na serveru změny. Zkoumání souborů mění časové značky, zkoumání systému generuje logy. Určitě si udělejte bitové kopie disků i paměti, abyste si nepošlapali stopy. Dobré je si na začátku udělat časovou osu. Dělají to všichni vyšetřovatelé, pomůže vám to odhalit kauzalitu. Je možné si například projít celý souborový systém a uložit si někam časové značky. Pak to můžete protáhnout přes sort a zařadit si všechny události do časové osy. Nepodceňujte to, mnohokrát mi to pomohlo.

Dobrý nápad je si udělat kopii disku. K tomu je možné použít buď hardwarový write blocker, který ale nemá každý, nebo se spolehnout na blockdev, hdparm nebo připojit souborový systém jako read only. Musíte ale dát pozor na to, že i odpojení souborového systému provede na disku nějaké změny. Nehledě na to, že budete muset často pozabíjet spoustu služeb, abyste mohli odpojení vůbec udělat. Pokud máte obraz disku (image), můžete ji připojit a poté například hledat logy. Útočník obvykle smaže celé logy nebo vybraných pár řádek, ale to v praxi jen znamená označení bloků jako smazaných a dají se stále na disku najít.

Každý soubor na Linuxu má minimálně tři časové známky: mtime ukazuje modifikaci dat souboru či obsah adresáře, ctime odkazuje ke změně atribitů (jméno, vlastník, práva, link) a atime obsahuje čas posledního přístupu (čtení/spuštění) souboru. Kvůli výkonu se dnes v mnoha distribucích nastavuje u souborových systémů příznak noatime, který vypíná modifikaci časových značek při čtení souborů. Zvažte nepoužívání noatime či relatime alespoň na systémových oddílech, jsou-li oddělené od datových s častým přístupem.

Podobně je možné si zaznamenat všechny běžící procesy. Můžete v nich hledat anomálie. Když máte například spuštěný traceroute a jeho potomkem je Bash, je to hodně podezřelé. Podobně je možné hledat systémové procesy, které mají velmi vysoké PID. Tyto procesy se obvykle spouštějí se startem systému, takže PID by měl být velmi nízký. Pokud takový proces odhalíme, je možné použít například utilitu gcore, která udělá kopii paměti procesu. Pokud se malware spouští z disku, obvykle jsou důležité informace v souboru šifrované nebo obfuskované. Z paměti proto můžete dostat mnohem lepší data než ze souboru. Na kopii paměti pak můžete pustit strings nebo strace a dozvíte se například cesty k otevíraným souborům a podobně.

Poté přichází mravenčí práce hledání anomálií. Na začátku máte alespoň nějaké vodítko, jako třeba spuštěný proces nebo otevřený port. Chcete ale většinou i zjistit, co ten útočník používá. Dobrým začátkem můžou být utility jako chkrootkit, rhkunter či fslint, které vám pomohou automatizovaně najít podezřelé soubory. Dobré je se zaměřit také například na adresáře, ze kterých se něco spouští: etc, cron a další. Podezřelé jsou například tečkové (skryté) soubory v nedomovských adresářích, soubory bez vlastníka, uživatelská práva v systémových adresářích, neobvyklá oprávnění (s-bit) a podobně.

Tím vším to ale nekončí, správce by si měl položit spoustu dalších otázek: Jaké jsou souvislosti? Nemohl se útočník dostat i jinam? Nemohl mě využít na nějaký přeskok? Hlavní je se ale z celé věci poučit pro příště.

Radek Zajíc: Zálohujeme připojení k IPv6 Internetu

Radek Zajíc začal svou přednášku tím, že od připojení k internetu dnes očekává, že bude fungovat pořád. Jakmile dnes dojde k výpadku, uživatelé si začnou okamžitě stěžovat, že potřebují připojení teď hned. Co má ale poskytovatel dělat, když mu někdo překopne kabel? Elektřina je dnes dostupná prakticky vždycky, s vodou je to podobné. Na některých sídlištích v Praze jsou lidé zvyklí, že jim teplárna na dva týdny v létě vypne teplou vodu. Nechcete být dva týdny bez připojení k internetu.

Velké firmy a organizace obvykle nemají problém s připojením přes dva různé poskytovatele. U malých firem nebo v domácnostech už to tak běžné není, protože tam těžko ospravedlníte dvojnásobné výdaje. Pokud si ale pořídíte dvě různá připojení obvykle na dvou různých technologiích, budete mít velkou šanci, že zůstanete vždycky připojení. V IPv4 světě je to tak, že obvykle změníte výchozí bránu a bude vám to fungovat. V IPv6 je to ale jiné, protože oba poskytovatelé vám přidělí globální prefix, ale vaše počítače neví, kterou mají se kterou sítí používat. Musíte jim nějak říct, že mají nefunkční prefix používat.

V původním standardu IPv6 se s takovou situací počítalo, každý router může posílat svá oznámení a pokud vypadne, počítače přestanou daný prefix používat. Tohle schéma se ale příliš v praxi nepoužívá, protože hodně záleží na kvalitě implementace. V OpenWRT to funguje dobře, u modemu od UPC už si nejsem tak jistý. Proto se objevuje častěji schéma, kdy se mezi routery poskytovatele a uživatele vloží ještě brána, která provádí překlad adres a pro uživatele je pak vše transparentní. Je to ale ošklivé řešení, protože překladem do sítě přidáváte všechny ty problémy, které jste měli na IPv4.

Radek Zajíc problém nakonec vyřešil pomocí source routingu a používá DHCP server Dibbler, který v případě výpadku některého prefixu překonfiguruje RA v koncové síti, takže dokáže klienty informovat o nutnosti prefixy změnit. Server ohlašuje do sítě u prefixů dobu života 60 sekund, změna pak může být velmi rychlá. Je to ale proti RFC, které nutí posílat LifeTime alespoň dvě hodiny. V praxi ale tuhle povinnost nikdo neimplementuje, všichni rozšíření klienti bez problémů přijmou i kratší čas.

Záloha IPv6 konektivity je stále ještě neprobádaná věc. Když standard vznikal, počítalo se s tím, že sítě budou fungovat úplně jinak. Hlavně že budou jen IPv6 a nebude se tam už plést IPv4.

Petr Stehlík: Novinky u Espressif Systems

Espressif Systems je společnost, která vyrábí populární Wi-Fi čipy ESP8266 a ESP32. Na webu se charakterizují jako „a world-leading Internet-of-Things company“. Původní ESP8266 byl obrovským úspěchem díky bastlířům – původně šlo o doplnění Wi-Fi sítě k malým deskám, třeba k Arduinu. Díky alternativnímu firmware je možné jej ale proměnit v plnohodnotný malý počítač. Má mnoho omezení, ale vyhrává svou cenou.

Později se firma rozhodla vyrobit další generaci označenou jako ESP32, který už je vyvíjen s mnohem širšími ambicemi. Má dvě procesorová jádra, více paměti, více vstupů a výstupů, různá čidla a vůbec všechno, co by mohl uživatel potřebovat. Je to velmi nabušená věc, která je navíc velmi levná. Dnes stojí méně než kostka másla. První kusy se začaly objevovat na podzim roku 2016, na jaře 2017 pak vyšla první opravná revize, nyní je k dispozici verze 2.1 a pracuje se na verzi 3. Řada výrobců už chrlí vlastní desky včetně malých displejů a dalších vylepšení. Výhoda také je, že na rozdíl od ESP8622 je možné si ESP32 koupit u běžných výrobců.

Bohužel ESP32 má už 10 známých a zdokumentovaných chyb. Původní revize jich má 9, opravená ‚revize 1‘ má čtyři z nich a jednu novou! Co je to za vývojáře? Bohužel má hrozivé chyby ADC, které není možné opravit a naopak budou maskovány softwarovým převodem. Každá verze je totiž jiná a po výrobě se proměřují a do SDK je v plánu přidávat převodní tabulku. Uživatel ovšem nikdy neví, kterou revizi si pořídí. My už půl roku víme, že některé verze obsahují více chyb než jiné, ale vy si nemůžete být jisti, kterou si objednáváte.

Ve skutečnosti to ale podle Stehlíka vůbec nevadí, protože většinu problémů řeší SDK, které umí chyby samo obejít, takže na ně uživatel nenarazí. Horší je, že vývojářský software není zdaleka kompletní. Při startu hardware byla k dispozici verze 0.9, o rok později existuje sice verze 2.1, ale tak stále nepokrývá vše. Vývoj Arduino IDE se vleče, FreeRTOS je velmi složitě použitelný a kompilovaný, Lua je roztříštěná na tři forky a MicroPython není dostatečně vyvinutý. Petr Stehlík nakonec používá ESP IDF, ale musel si velkou řadu různých rozšíření doplnit sám.

Espressif Systems otevřel externí programátorskou pobočku v Brně. V Česku tedy můžeme všechny zmíněné chyby napravit! Neil Kolban také dokončuje svou knihu o ESP32, která obsahuje spoustu užitečných informací.

Poslední novinkou v přednášce byla ESP32 Pico D4, kterou měl dokonce Petr Stehlík u sebe. Je to kompletní ESP32, ve kterém jsou navíc 4 MB paměti, krystalový oscilátor a filtrační kondenzátory. To vše v rozměrech 7×7 mm, k použití stačí pouze 3V baterie a anténa. To je neuvěřitelná miniaturizace.

Našli jste v článku chybu?