Ve svém minulém blogu jsem se zmínil, že je třeba změnit přístup k ICT bezpečnosti a musí se definovat alespoň několik základních pravidel pro zajištění bezpečnosti počítačů, chytrých telefonů, ale i počítačových systémů ve výrobě, automobilech a dalších oblastech lidské činnosti. Poznal jsem (v česky i anglicky hovořícím prostředí), že současná komunita ICT odborníků současný stav dobrovolně nezmění. Jedna třetina komunity se brání jakékoliv změně, protože se aktivně podíleli na vytvoření současné podoby, druhá třetina jsou „programátoři v Power Pointu“ a zbývající část jsou ti co se systém snaží udržet v chodu a nemají čas na sledování novinek a na diskuse s prvníma dvěma skupinama. To je i důvod proč následující 3 kroky musí prosadit lidé „zvenku“, tedy non-IT majitelé firem, ředitelé, politici a redaktoři, tedy sebevědomí a moudří bežní uživatelé.

Současný stav

Tvorba počítačových programů je jedna z mála nebo dokonce jediná výrobní činnost, která nemusí počítat s fyzikálními nebo chemickými vlastnostmi materiálů1.

Ve strojírenství, ve stavebnictví i v dalších oborech se musí počítat s roztažností materiálů. Technici dnes dokáží počítat s přírodními podmínkami, které sami nedokáží ovlivnit. Platí to pro mosty, koleje, ale i pro ložiska v motoru vašeho automobilu.

Podobný přístup platí i v kosmetice nebo farmacii, kde se vyvíjí krémy nebo léky pro člověka. Fakt, že je lidské tělo složitý organismus, není třeba nijak detailněji popisovat. Přesto jsou farmaceutické a kosmetické firmy schopny vyvíjet nové výrobky, které nemají žádné nebo pouze omezené vedlejší účinky. Všechny tyto firmy zodpovídají za svoji práci.

V případě vývoje operačních systémů výrobci prosadili názor, že operační systém je tak složitý systém, že za něho vlastně autoři nemohou ručit. To je základní omyl, operační systém vytvořili lidé. Operační systém neovlivňuje roztažnost materiálu, elektromagnetické pole, chemické reakce, atd.. Neovlivňují jej tedy problémy, se kterými se musí vypořádat konstruktéři a vědci ve strojírenství, elektrotechnice, potravinářství nebo farmacii. Operační systém pracuje podle člověkem nastavených pravidel.

Názory, že chyby v programech jsou normální, jsou slyšet již velmi dlouho a mnoho uživatelů i ICT odborníků tomu uvěřilo. Jak jsem již uvedl, tak vývoj SW je první obor, který je založen pouze na práci lidí a nemusí brát ohled na přírodní zákony. Chybný pohled, tedy že tvůrci nemohou ručit za své chyby v operačním systému, má dopady na fungování celého oboru ICT. Takový chybný názor má vliv na ekonomické ztráty, případně zbytečné náklady, které podle různých průzkumů dosahují, pouze v oblasti počítačových virů, po celém světě ročně mnoha stovek miliónů USD.

Chybný přístup a vyhýbání se odpovědnosti je nejvíc vidět v případě ICT bezpečnosti, kde se již více jak 10 let řeší pouze následky, místo prevence.

V případě běžných výrobků je normální, že výrobci odpovídají za kvalitu svých výrobků. Současně existují a používají se postupy jak rozpoznat padělek od originálu. Není to vždy jednoduché, ale tyto kontrolní mechanizmy fungují. V prostředí hlavního proudu ICT nic takového není, přestože technologie počítačů a mobilů to umožňují.

 Změny, které zavedou pořádek do instalovaného SW a posunou bezpečnost o několik řádů výše, jsou přitom velmi jednoduché. Řešení je bez velkých požadavků na uživatele a bez omezení svobody Internetu. Navrhované změny přitom nezavádí nic nového proti stavu v běžném, non-IT prostředí. Navrhované změny zavedou jinou úroveň odpovědnosti na stranu tvůrců programů a na stranu uživatelů. Přesně podle toho, co může zajistit SW firma a co dokáže zajistit běžný uživatel nebo obyčejný IT administrátor.

Zdá se vám nemožné vyřešit ve třech krocích problém, na kterém pracuje mnoho tisíc odborníků po celém světě?? Často ta nejjednodušší řešení bývají ta nejlepší.

 

Změna ve třech krocích :

1, Nezávislá kontrola výrobků, tedy zdrojových kódů programů

 2, Jasné informace o původu instalačních souborů. Odlišení originálu od padělku při instalaci.

 3, Jasné informace o částech operačního systému. Odlišení originálu od padělku v počítači.

 Tyto tři kroky dokáží změnit a zlepšit prostředí ICT a ICT bezpečnosti od anarchie a Potěmkinovy vesnice k mnohonásobně bezpečnějšímu prostředí aniž by byla dotčena či ohrožena svoboda občanů nebo firem. Nebude ani dotčena uživatelská jednoduchost počítačů, tabletů a telefonů.

  V následujících odstavcích jsem tyto kroky velmi stručně popsal.

 

Zastánci současného stavu určitě budou tvrdit, že takto není možné bezpečnost ICT řešit a problém je na straně uživatelů. Takový názor slyším již 15 let a za tu dobu se v oblasti bezpečnosti ICT nic skutečně nového neobjevilo. Ano, objevili se nové verze antivirových programů, firewallů a dalších bezpečnostních programů, ale nic skutečně nového co by pomohlo vyřešit problém se sofistikovanými útoky se neobjevilo.

Bezpečnost ICT se točí v kruhu a „odborníci“ tvrdí, že „uživatelé si nedokáží zabezpečit své počítače“, „uživatelé si nainstalují do svých počítačů cokoliv“.

Podmínka č. 1 - Kontrola zdrojových kódů

V současné době programátoři a SW firmy dávají programy okamžitě po dokončení na trh. Marketing již víc jak deset let vítězí nad kvalitou a testy. Chyby se řeší až aktualizacemi. Někdy se dokonce jedna chyba dotýká i několika po sobě jdoucích verzí operačního systému2. To znamená, že tvůrci průběžně nemodernizují zdrojové kódy. Problémy s tím mají IT správci i uživatelé. Netvrdím, že firmy neprovádí testy, ale provádí je jedním zavedeným způsobem, který je ovlivněn programátorskými způsoby v konkrétních firmách.

Řešení :

Nezávislé agentury/ firmy by pro tvůrce operačních systémů a dalších programů kontrolovaly zdrojové kódy. Kontrola by se měla povinně vztahovat na všechny operační systémy a pak na vybranou skupinu důležitých programů, především prohlížeče, JAVA. Firma(y), která by audit / kontrolu zdrojových kódů prováděla, by o výsledku svého testování vydala pro uživatele zprávu.

Nástroje na provádění takových kontrol již dnes existují. Využívají je především malé a středně velké firmy, které bojují o své místo na trhu.

Dnes neexistují nástroje jak přinutit velké výrobce operačních systémů, prohlížečů a dalších důležitých programů k využívání takových kontrol. Takže základem je přinutit velké SW firmy k provádění nezávislých kontrol zdrojových kódů.

Přínos :

Prověrky zdrojových kódů pomohou zvýšit kvalitu nového SW. Tento typ prověrek není 100%, ale nezávislý pohled pomůže i tvůrcům operačních systémů a aplikací. Především takové prověrky pomohou odhalit slabiny a chyby programátorů, které jsou v operačních systémech a aplikacích často více jak deset let2.

Prověrku je možné přirovnat k práci daňového auditora nebo ke klinickým testům nových léků. Rozdíl je pouze v tom, že prověrka nového SW může být hotova během několika hodin, dnů. Naproti tomu chyby v operačních systémech mohou ohrožovat lidi, počítačové aplikace a SCADA systémy mnoho měsíců.

 Proč se to zatím neprovádí?

Vy byste jezdili dobrovolně se svým automobilem na technickou kontrolu? Pokud na programátory a SW firmy nikdo nevytváří tlak, tak oni používají tu nejjednodušší cestu a snižují náklady na vývoj nových verzí operačního systému nebo dalších programů. Je jednodušší říkat, že si uživatelé nedokáží zabezpečit své počítače, tablety a telefony.

Podmínka č. 2 - Kontrolní součet instalačního souboru

V běžném, nepočítačovém světě existují opatření proti padělkům výrobků. Není podstatné zda se jedná o Adidas tričko nebo náhradní díly k letadlu. Tato opatření chrání uživatele i výrobce. V prostředí počítačových programů existují pouze ojedinělé akce jednotlivých firem. Především v prostředí operačních systémů UNIX a Linux. V nejrozšířenějších operačních systémech pro PC, tablety nebo telefony taková povinnost neexistuje.

V současné době neexistuje jasná povinnost zveřejňovat informace o instalačním souboru / balíčku. Může se tedy stát, že běžný uživatel i IT správce získá z důvěryhodného zdroje instalační soubor / balíček, který je doplněn o Trojského koně3.

V současné době nemá běžný uživatel a IT administrátor možnost snadno odlišit pravý a zfalšovaný instalační balíček.

Nástroje a postupy pro odlišení originálu a „padělku“ mezi počítačovými soubory existují. Jedná se o matematické (kryptografické) funkce, kterým se říká HASH4(Hašovací funkce), což je jednosměrné matematické funkce. Takže například z počítačového souboru je možné vypočítat HASH, ale obráceně z HASH není možné vypočítat původní obsah počítačového souboru.

Ověření může probíhat následujícím způsobem. Na počátku vytvoří programátoři nový program a k němu vygenerují kontrolní hash. Uživatel, který si program zkopíruje, má možnost si opět vygenerovat kontrolní hash. Pokud se hash zveřejněná tvůrci shoduje s výsledkem na straně uživatele, tak je velká jistota, že nikdo po cestě soubor neupravil.

Existují rizika, že v konkrétním algoritmu pro tvorbu hash bude nalezena slabina a podvodníci by mohli vydávat svůj upravený program za program pocházející od skutečného autora. Tomu se dá předejít současným použitím dvou různých hash algoritmů jak na straně tvůrců, tak i při ověřování na straně uživatelů. Použití druhého hash algoritmu ale nepředstavuje žádnou technickou komplikaci ani časové zdržení při ověřování.

 Řešení :

Tvůrci SW by zveřejňovali ke každému instalačnímu souboru dvě (minimálně dvě) kontrolní hash.

Uživatel by si následně ověřoval pravost instalačního souboru. Ověření pravosti by za uživatele mohl provádět také download modul prohlížeče.

V případě zjištění rozdílné hash by tento modul nedovolil instalaci upraveného souboru.

 

Přínos :

Kontrolní součet (hash) instalačního souboru pomůže zajistit, že do operačního systému počítače, mobilu nebo i jiného zařízení se nainstaluje pouze soubor, u kterého byla ověřena hash a její hodnota souhlasí s hodnotou, kterou zveřejnil autor programu.

 Pokud je hash instalačního balíčku v pořádku a přesto se v programu objeví zadní vrátka, muselo dojít k porušení bodu 1 o kontrole zdrojových kódů.

Podmínka č. 3 - Kontrolní součet programů a knihoven

Jedním z největších problémů současných operačních systémů a aplikací je nemožnost ověření pravosti jednotlivých souborů nutných pro fungování operačního systému a aplikací. Nejedná se o vaše video, fotku nebo dopis. Jde o soubory, které používá operační systém a aplikace.

Počítačové viry právě tuto mezeru zneužívají a ukrývají se různým způsobem uvnitř legálních programů. Absurdní je, že tento problém přiznala ve svém sloupku i ředitelka Microsoftu ČR.

 

Řešení :

Řešením je obdoba DNS serverů, tedy celosvětová síť serverů, na kterých budou uvedena jména souborů, jejich verze a velikost, současně se dvěma hash jednotlivých souborů.

Tvůrci operačních systémů, prohlížečů a dalších aplikací by zadávali do databáze těchto serverů informace o jednotlivých souborech, které patří k příslušné verzi programu.

Uživatel, případně bezpečnostní aplikace v mobilu nebo počítači uživatele, by se dotazovaly těchto serverů na údaje o kontrolovaných souborech.

Odlišné kontrolní součty (hash) v záznamu serverů a u uživatele by znamenaly, že došlo k modifikaci souboru virem nebo jiným zásahem. V každém případě změna neodpovídá změnám provedeným tvůrcem příslušného souboru.

Inspiraci pro vytvoření takové sítě serverů je možné nalézt ve struktuře DNS serverů, které překládají dotazy uživatelů a jejich prohlížečů z formátu www.firma.cz, kterému rozumí lidé do formátu adresy 123.456.789.123, které v síti TCP/IP rozumí počítače.

 Přínos :

Hlavním přínosem bude odstranění virových infekcí a útoků sofistikovaných virů, které jsou zaměřené na modifikaci souborů operačních systémů a dalších aplikací. Dotaz do databáze informací o jednotlivých souborech dokáže velmi rychle rozpoznat, zda se jedná o oficiální verzi souboru nebo o „padělek“, tedy soubor, který někdo (člověk nebo virus) upravil.

Závěr

Tyto tři návrhy nabourávají současné status quo v oblasti ICT. V prostředí ICT dnes autoři za nic neručí a zástupci těchto firem prosadili názor, že problém je na straně uživatelů, kteří si nedokáží zabezpečit své počítače.

Virus Stuxnet, vykradené účty přes internetbanking, sofistikované útoky virů na firmy a úřady a naposledy virus v japonské jaderné elektrárně v Monju5 dokazují, že problém se zabezpečením přesahuje možnosti běžných správců a uživatelů. Je tedy třeba přehodnotit tento stav a znova určit kdo a za co v ICT zodpovídá. Jinak se bezpečnost Internetu a celého oboru ICT budou dalších několik let točit v kruhu. V začarovaném kruhu.

 Řešení uvedená v tomto blogu jsou relativně jednoduchá, jejich příspěvek k řešení bezpečnosti však může být velký. K prosazení takových změn je potřeba zájem každého uživatele.

 

-----------------------------------------------------------------------------

1Program snímá údaje z periférie/ registru. Skutečnou komunikaci s čidly má na starosti hardware.

2Analýza slabin 2012 – http://analyza2012.salamandr.cz

3Případ viru Stuxnet

4Hašovací funkce je matematická funkce (resp. algoritmus) pro převod vstupních dat do (relativně) malého čísla. Kryptografická hašovací funkce je v kryptografii hašovací funkce s takovými vlastnostmi, které umožňují její použití v aplikacích zabezpečení informací, jako například autentizace nebo zaručení integrity zprávy. (http://cs.wikipedia.org)

5http://www.japantoday.com/category/national/view/monju-power-plant-facility-pc-infected-with-virus