Blog - Kodrla.eu

Tři pilíře bezpečnosti, čili CIA triáda

V tomto článku se seznámíme se základními pilíři bezpečnosti, CIA triádou.

Když se začneme zabývat bezpečností, zjistíme, že se točíme stále dokola kolem stejných témat. Řešíme, jak zajistit, aby se k systémům nebo datům nedostal nikdo nepovolaný. Přemýšlíme, zda informace, kterou se zabýváme, není podvrh. A v neposlední řadě řešíme, jak zajistit, aby systémy fungovaly a data byla dostupná.

Protože tato témata se řeší všude, v každé organizaci, dostala své oficiální pojmenování – CIA triáda, neboli tři pilíře bezpečnosti. Jsou jimi důvěrnost (anglicky Confidentiality), integrita (Integrity) a dostupnost (Availability). Když se podíváme na počáteční písmena anglických termínů, bude nám jasné, proč hovoříme o CIA.

Ve skutečnosti by tato zkratka měla být CIAN. Zajímá nás totiž třeba i to, zda je identita odesílatele skutečná, nebo kdo skutečně provedl změnu v systému. Řešíme tedy ještě jednu důležitou oblast, Nepopiratelnost (Non-repudiation).

Důvěrnost

Důvěrnost znamená, že informace je dostupná pouze zamýšleným příjemcům a my se snažíme zajistit, že nikdo jiný k ní nemá přístup. K zajištění důvěrnosti ve světě informačních technologií se obvykle používá šifrování. Není to ale jediný způsob. Můžeme použít i opatření známá z fyzického světa, např. trezor. Řekněme, že máme zálohovací systém. Když dojde ke katastrofě a my potřebujeme začít obnovovat data, zjistíme, že se do toho systému nepřihlásíme, protože heslo máme bezpečně uložené ve správci hesel na síti – ale síť nefunguje. Proto se někdy, někde a některá hesla ukládají v obálce do trezoru. V takovém případě musí existovat pravidla, kdo a za jakých okolností smí heslo vyzvednout. Třeba: heslo smí vyzvednout pouze CIO a CISO současně, proti podpisu obou osob do protokolu. Při vyzvednutí zkontrolují neporušenost obálky a pečetí (podpisů) na ní.

Morální zastarávání

Zajištění důvěrnosti má jeden zásadní problém: nelze jí dosáhnout jediným opatřením a pro vždy. Všechna technická bezpečnostních opatření dříve nebo později morálně nebo fyzicky zastarají. Lepidlo na obálce degraduje a může umožnit její otevření neoprávněnou osobou. Šifrovací algoritmus se díky nárůstu výpočetního výkonu počítačů podaří prolomit. Ovšem kombinací procesních, organizačních a technických opatření lze udržet zajištění důvěrnosti trvale na akceptovatelné úrovni, i když jednotlivá technická opatření postupně zastarávají.

Při plánování bezpečnostních opatření s tím musíme počítat a zařídit se podle toho. Můžeme buď nastavit proces tak, abychom zastarání předešli. Např. můžeme vyžadovat, aby obálka byla jednou za rok otevřena a nahrazena novou. Můžeme kontrolovat bezpečnost šifer a plánovaně data přešifrovat šifrou modernější.

Legitimní variantou je i vědomá akceptace rizika. Například můžeme data k patentu zašifrovat aktuálně bezpečnou šifrou a riziko jejího budoucího prolomení akceptovat, protože pravděpodobnost, že bude šifra prolomena ještě před podáním patentové přihlášky, a zároveň dojde k odcizení nosiče dat, je extrémně nízká. Náklady na další vrstvu ochrany by byly nepřiměřené ve srovnání s hrozícím rizikem.

Nejběžnější šifrovací algoritmy

Mezi nejčastěji používané šifrovací algoritmy dnes patří zejména AES (používá se v TLS, VPN, diskovém šifrování...), RSA (v asymetrickém šifrování) nebo Diffie–Hellman (pro bezpečnou výměnu klíčů), což jsou v současné době víceméně standardy. Určitě je ale dobré alespoň vědět i o dalších, jako ChaCha20 (moderní rychlá šifra, ideální pro mobilní zařízení; používá se v TLS (Google, Cloudflare), Twofish (finalista AES soutěže) nebo ECC (elliptic curve cryptography, kryptografie založená na eliptických křivkách — moderní, efektivní, dnes preferované před RSA).

Více se na šifrování podíváme v článku Šifrování pro začátečníky.

Integrita

Integrita dat nebo komunikace znamená jistotu, že informace nebyla neoprávněně změněna. Příjemce informace si potřebuje být jistý, že je informace ves tejném stavu, jako ji vytvořil původce, tj. ten, kdo ji vytvořil (vygeneroval, sepsal apod.). Oba výtisky smlouvy, uzavřené mezi dvěma stranami, musejí být stejné, jinak vznikne chaos, každá ze stran bude říkat něco jiného, dokládat to smlouvou, a kdo má pravdu? Kdo ví. Lékárník si musí být jistý, že předpis, který mu pacient předkládá, nebyl pozměněný.

V běžném životě máme jen omezené možnosti, jak potvrdit, že se dokument nezměnil. Na poštovní poukázce vypisujeme částku čísly i slovy. Můžeme dokument podepsat, ale to nezaručí, že někdo nepozmění jeho obsah. Nejsme schopni garantovat nezměněnost dokumentu. A nejsme ani schopni změnu detekovat.

V digitálním životě to máme jednodušší. Máme nástroje, které nám spolehlivě řeknou, zda byla data nebo dokument pozměněný. Když si stahuju antivirový program, chci mít jistotu, že si ho stahuju v podobě, kterou vydal jeho výrobce. Nechci si stáhnout něco, co nějaký hacker upravil. Naštěstí výrobce to napadlo také a na web dal hash souboru. Já si po stažení souboru spočítám jeho hash na mém počítači. A když oba hashe souhlasí, vím, že mám originální, nepozměněný soubor.

Co je to hash?

Hash je unikátní kryptografický otisk dat. Jasně, chápu. Ale co to znamená? Zjednodušeně řečeno, hashovací algoritmy převádějí nějaký vstup (text, soubor s textem, obrázkem, aplikaci, obecně textová i binární data…) na standardní výstup, tzv. hash, který je obvykle reprezentovaný pevně dlouhým řetězcem znaků. Algoritmy zajišťují, že:

  1. Jeden vstup bude mít vždy ten samý výstup, i když ho budu počítat opakovaně

  2. Je velmi obtížné najít dva různé vstupy, které mají stejný hash (tzv. kolizi, viz níže).

Ověřování integrity počítáním hashe

Když budeme hash počítat opakovaně, dostaneme vždy stejný hash. A to jak na Windows, na linuxu, na Macu, ve webovém prohlížeči, kdykoli a kdekoli. Ale jedina drobná změna způsobí, že se oba hashe budou lišit do té míry, že nám stačí pohled na prvních pár znaků a na pár znaků posledních a víme, že je hash jiný.

Nejběžnější hashovací algoritmy

Nejběžnějším hashovacím algoritmem současnosti je SHA-2, zejm. SHA-256 a SHA-512. Proč se SHA-2 rozděluje? Ve skutečnosti jde o celou rodinu algoritmů s různou délkou výstupu. Číslovka za SHA označuje délku hashe v bitech. Delší hash poskytuje vyšší odolnost vůči kolizím, zatímco kratší varianty bývají praktičtější a úspornější. SHA-256 aktuálně představuje dobrý kompromis mezi bezpečností a použitelností, proto se z něj stala de facto univerzální volba. Poskytuje vysokou rychlost, jeho výstup je relativně krátký, ale je pořád dostatečně bezpečný.

Samozřejmě se používá a používalo mnoho dalších algoritmů. Některé jsou běžně použitelné, jiné zastaralé. Co je příčinou ústupu od starších algoritmů? Nejvážnějším důvodem, proč se algoritmy opouštějí, je vytvoření kolize. Kolize znamená, že dva různé vstupy vytvoří stejný hash, což je u kryptografického hashování zásadní problém. Pokud lze kolize cíleně vytvářet, útočník může například vytvořit dokument, který má stejný hash jako dokument jiný, nebo obejít některé mechanismy ověřování integrity. Algoritmus pak už nelze považovat za dostatečně bezpečný pro moderní kryptografické použití.

O hashování se můžete víc dočíst v článku Heč, už vím, co je heš!.

Dostupnost

Dostupnost zajišťuje, že jsou data, informace nebo systém přístupný oprávněnému uživateli a právě v tom okamžiku, kdy to potřebuje.

Co je nám platné, že máme data, když se k nim nedokážeme dostat? Ve fyzickém světě můžeme potřebu dostupnosti pocítit třeba v obchodě. Máme nákup v košíku, přijdeme na pokladnu a pokladní hlásí „nejde terminál!“ Jasně, že nejde, kam by chodil, nemá nožičky. Ovšem, pokladní tím myslí, že spojení s bankou není dostupné. Můžete mít v bance miliony, ale pokud v danou chvíli nemáte hotovost, máte smůlu. Systém není dostupný a nákup vám bude odepřen. A o tom je celá dostupnost v praxi: požadovaná služba nebo data existují, ale v okamžiku, kdy je potřebujeme, nejsou k dispozici.

V digitálním světě řešíme dostupnost převážně systémů nebo služeb. Typickým příkladem může být Internet. Organizace nemá připojení do Internetu kvůli tomu, aby uživatelé mohli trávit čas na facebooku nebo se podívat na jízdní řád vlaku domů. Pro organizaci je to byznys nástroj. S jeho pomocí komunikuje e-mailem s klienty a dodavateli. Má do Internetu vystavený e-shop nebo služby, které poskytuje. Jeho výpadek znamená výpadek podnikání.

Proto se firma rozhodne řešit dostupnost svých služeb, svého e-shopu. V takovém případě se to obvykle řeší redundancí. Firma nemá pouze jednoho poskytovatele připojení, ale třeba dva různé. V případě výpadku jednoho poskytovatele se připojení přepne na druhého a firma může fungovat dál. Dvojí připojení pochopitelně něco stojí, ale vyžaduje-li firma vysokou dostupnost a nedostupnost by stála výrazně víc, než cena druhého připojení, je tohle cesta, jak dostupnost zajistit.

Co je nejdůležitější?

Občas kladu zákeřnou otázku: který pilíř je nejdůležitější? Často dostávám odpověď, že důvěrnost. Nabízí se to, ochrana před neoprávněným přístupem je přesně to, co si většina lidí pod pojmem bezpečnost představí. Ale podívejme se na to podrobněji, na pár příkladech

Historie transakcí na bankovním účtu je zcela jistě důvěrná informace a zákony to tak i vyžadují. Takže je nejdůležitější? Může být. Ale co když jde o transparentní účet? Tam je důvěrnost transakcí kontraproduktivní, transparentní účet existuje právě proto, aby každý viděl, co se na účtu dělo.

Co takové lékařské záznamy? Když půjde pacient na transfúzi krve, musí dostat správnou skupinu. Neoprávněná změna záznamu v kartě může znamenat ohrožení pacienta na životě. Je tedy integrita nejdůležitější?

Přesuňme se do teplárny. Co když v zimě nebudou dostupné její služby? Lidé začnou mrznout.

Na těchto příkladech jsem chtěl ukázat, že se nedá univerzálně říct, který pilíř je nejdůležitější. Každá organizace si to musí vyhodnotit sama. A aby to nebylo málo komplikované, i v rámci jedné organizace se můžou priority výrazně lišit. Každá služba může mít jinou prioritu a ta se může měnit i v čase.

Podívejme se na jídelní lístek v kantýně. Ráno je důležitá důvěrnost. Kuchař nechce, aby lidé věděli, co bude, dokud nemá zajištěnou dodávku všech surovin. Když lidem naslibuje jako dezert buchty s mákem, ale dodavatel mu nepřiveze mák, lidé budou zbytečně zklamaní.

Dopoledne už má všechny suroviny a začíná vařit. To je chvíle, kdy se z jídelníčku stává nejdůležitější informační systém ve firmě. Od zveřejnění musí být zajištěna jeho dostupnost a integrita. Lidé potřebují vědět, na co se můžou těšit. Ovšem odpoledne, po zavření kantýny, už jsou data z jídelníčku stará a nepotřebná. Když nebude dostupný, nebo ho někdo upraví, už to nikoho nezajímá.

A to je pointa celé bezpečnosti. Bezpečnost nemá univerzálně jeden nejdůležitější pilíř, na který se zaměříme. Požadavky organizace závisí na kontextu, službě, času a mnoha dalších faktorech.

Nepopiratelnost

Někdy můžeme uvažovat i o dalších parametrech, jako např. nepopiratelnost. Nepopiratelnost znamená, že uživatel nemůže popřít provedení dané akce, nebo že nikdo nemůže zpochybnit původce informace. Pro zajištění nepopiratelnosti se obvykle používá elektronický podpis. Nejlépe bude vysvětlit si to na příkladech.

Popření akce

Ve firmě má každý uživatel přidělené uživatelské jméno a k němu příslušné heslo. Heslo má povinnost chránit a nikomu nesdělovat. To je základní princip firemní autentizace. Jestliže dojde k bezpečnostnímu incidentu, např. přístup do databáze a následné smazání dat, přičemž se v logu objeví uživatelské jméno Pepy Nováka, bude mít Pepa co vysvětlovat.

Zaměstnavatel totiž oprávněně předpokládá, že akci provedl ten, kdo se úspěšně autentizoval příslušnými přihlašovacími údaji. Pokud měl heslo znát pouze Pepa, nemůže jednoduše tvrdit, že to nebyl on. Logy a autentizace zajišťují, že uživatel nemůže popřít, že akci provedl.

Popření autora

Přijde nám dokument podepsaný elektronickým podpisem, ve kterém nám finanční úřad oznamuje nedoplatek na daních. Pokud podpis platně ověříme, máme jistotu, že dokument skutečně pochází od finančního úřadu, nikdo jiný totiž nemá přístup k jeho privátnímu klíči. Nemůžeme tedy tvrdit, že jsme dokument považovali za podvrh nebo že ho úřad nevytvořil. Elektronický podpis zajišťuje nezpochybnitelné autorství.

Praktické příklady zajištění ochrany důvěrnosti, integrity a dostupnosti

Při diskusi o CIA triádě mě tak napadlo, že nebude od věci říct to explicitně: když se bavíme o důvěrnosti, integritě a dostupnosti, nebavíme se jen o datech. I když data chráníme asi nejčastěji, ale stejně tak se můžeme bavit o poskytovaných službách nebo produktech. A protože to může být maličko hůř představitelné, uveďme si pár příkladů:

CIA u produktů

Ochranu důvěrnosti produktu si ukážeme na sběratelských kartičkách. Některé se prodávají v neprůhledných balíčcích. Výrobce tak chrání důvěrnost obsahu balíčku před jeho zakoupením. Musel vymyslet bezpečnostní opatření, které zabrání, aby si sběratel koupil jen balíček s konkrétními kartami.

Integritu produktů zaručují různé uzávěry, kolky nebo pečeti. Když si půjdete do koupit nápoj a uvidíte, že víčko je porušené, pravděpodobně sáhnete po jiné lahvi, budete mít pochybnosti o integritě produktu.

Dostupnost produktu znamená, že je produkt k dispozici tehdy, kdy ho zákazník potřebuje. Výrobci proto chrání výrobu před výpadky, udržují zásoby náhradních dílů, budují záložní výrobní kapacity a plánují distribuci tak, aby se produkty dostaly na trh i v případě mimořádných událostí.

CIA u služeb

Důvěrnost služby znamená, že chráním to, jak sloužba funguje. Jako příklad si uvedeme antispamový filtr poskytovatele e-mailových služeb. Uživatel vidí, které e-maily skončily ve spamu. Vstupní data (e-maily) i výstup (rozhodnutí je spam/není spam) jsou tedy známé. Přesná pravidla a detekční mechanismy jsou ale interní, neveřejné. Poskytovatel tak chrání důvěrnost fungování služby, aby útočníci nemohli filtr snadno obcházet, případně aby konkurence nemohla kopírovat know-how.

Integrita služby je důležitá například při řízení dopravy pomocí semaforů. Pokud by útočník dokázal narušit řídicí systém a změnit nebo prohodit signály pro změnu barev na semaforech, služba by sice dál „fungovala“, ale poskytovala by nesprávné výsledky. V důsledku by v křižovatce mohl vzniknout chaos a zvýšené riziko nehod.

Dostupnost služby je nesjpíš snadno představitelná. Uživatelé využívají nějakou službu, např. e-mail, a poskytovatel se pokouší zajistit, že se uživatelé do svých schránek dostanou, když potřebují.

Na těchto příkladech jsem chtěl ukázat, že CIA neřešíme jen u dat, ale musíme ho řešit v kontextu organizace, kterou pomáháme chránit. Budu rád, když mi další příklady pošlete do komentářů.

Shrnutí

CIA triáda je základní stavební kámen bezpečnosti. Teprve když víme, které pilíře jsou v dané situaci důležité, můžeme nastavit bezpečnostní opatření tak, aby skutečně odpovídala potřebám organizace. Nevynakládáme zdroje např. na šifrování tam, kde důvěrnost není potřebná, ale firma potřebuje dostupnost. Proto je klíčové rozumět tomu, jak organizace funguje, jaké služby poskytuje, jaké procesy jsou kritické a které informace mají jakou hodnotu.