Hlavní navigace

Kde se berou bezpečnostní mezery?

Vojtěch Bednář 12. 5. 2004

Nebezpečí útoku hackerů, nebezpečí zničení komunikací a všudypřítomné červy a viry, které počítač napadly přímo nebo přes emailového klienta. Tak vypadá bezpečnostní situace v současné IT infrastruktuře a to, co ji umožňuje, se jmenuje bezpečnostní mezery softwaru. Kde se v něm berou? Jak je vůbec možné, že existují?

Pro pochopení této otázky musíme poněkud odhlédnout od jednoduchého technokratického přístupu k IT, ačkoliv ten to nejspíše vůbec neponese rád. Jestliže jsou osobní počítače konstruovány jako univerzální zařízení od doby, kdy se začaly vyrábět, pak masivní nástup Internetu a z toho plynoucí sesíťování dříve samostatných přístrojů tento princip z jedné strany podtrhnulo, z druhé naopak nabouralo. Některé funkce, které byly podstatné pro samostatně existující zařízení, se staly buďto nadbytečnými, nebo jejich důležitost v důsledku propojení do složitých systémů ztratila na významu. Naopak jiné vlastnosti deklarující „univerzálnost“ se staly ještě podstatnějšími.

Při konstrukci systému, který má plnit úlohu relativně univerzálního klienta nebo serveru v propojeném prostředí, je třeba vycházet z teze, že dopředu nevíme „co po tom vlastně všechno budeme chtít“. Jinými slovy, vnitřní struktura systému musí být dostatečně flexibilní, aby jej bylo možné donutit provozovat i takové aplikace k takovým účelům, které v době vzniku systému ještě neexistovaly.

Snaha vytvořit jednotné aplikační rozhraní (API), které by integrovalo jak systémové, tak i síťové, optimalizační a prezentační funkce, vyhořela v okamžiku, kdy se ukázalo, že vývoj síťové infrastruktury v prostředí velkých systémů, a zejména Internetu, nelze kvalifikovaně předvídat. A tak je současný typický klient – obyčejné PC – doslova prošpikováno různými API a protokoly, které se podílejí na jeho fungování v míře omezené buďto účelem (TCP/IP), platformou (Win32), prostředím (Javascript), případně kombinací několika z těchto prvků. Typický stav přitom je, že nevyužíváme pouze jedno z těchto rozhraní, ale v rámci jedné konkrétní aplikace mnoho různých. Tato API a protokoly jsou přitom v rámci aplikace ve vzájemné interakci, což je ostatně dáno jejich samotnou povahou.

Interakce vytváří možnost variability využití. Různá rozhraní si můžeme zkrátka představit jako ozubená kolečka, která do sebe zapadají v mnoha různých kombinacích. A ne všechny z nich lze předvídat. Zde se otevírá největší prostor pro bezpečnostní mezery softwaru – a všechna z nich plynoucí rizika a nedostatky.

Zatímco v desítkách tisíc vzájemných kombinací různých funkcí vykonávají tato rozhraní pozitivní činnost, v několika specifických mohou selhat. Děje se tak především u nesmírně vzácných kombinací nastavení různých prvků. Běžné chyby – jako přetečení nebo naprosté vyprázdnění kritické vyrovnávací paměti, nechtěné dělení nulou, vyvolání nekryté systémové výjimky apod. – jsou obvykle výsledkem ne skutečné chyby v aplikaci nebo v systému, ale velmi nešťastnou kombinací několika, jinak naprosto běžně se vyskytujících faktorů, která je možná, ale která nebyla testována, v horším případě testována byla, ale byla označena za nemožnou (pravděpodobnost nižší než 1:1 mil.).

Komplikovaný kód

Složitý systém, aplikace, která v sobě agreguje množství různých vlastností, protokolů a API, je tedy hlavním zdrojem nechtěných bezpečnostních závad. Kromě nechtěné náhody vyvolané obtížnou orientací ve všech možnostech nabízených komplikovaným systémem „koleček“ ale existují další původci bezpečnostních problémů.

Mezi ty nejčastější patří například ladící kód. Tedy taková část aplikace, která za normálních okolností v ní není vůbec přítomna a používá se pouze při vývoji nebo testování. Mnoho současných systémů obsahuje ladící kód i ve verzi, která je veřejně dostupná, a ten je v ní pouze deaktivován. Jeho aktivace pak může umožnit provádět s aplikací (systémem, počítačem) i takové věci, které by jinak neměly být možné.

Homogenní prostředí chybám svědčí

Samotná bezpečnostní chyba, i pokud je objevena, ještě vůbec nemusí být zdrojem problému, jestliže ji není jak využít. Tedy v případě, kdy zneužití nekorektně fungující části systému brání další komponenty, které fungují zcela správně, případně v nich nebyl nalezen analogický problém. Protože je ale prostředí globálního IT poměrně velmi homogenní, stačí jedna dostatečně zobecnitelná kombinace nedostatků a problém celosvětového významu je na cestě. Typickou ukázkou je aktuální řádění červa Sasser. Totéž homogenní prostředí ale přispívá k relativně spolehlivému a stálému fungování informačních systémů. Bohužel tak, jak je možné zneužít jeho chybu, je možné zneužít i chybu jeho zabezpečení (a k tomuto jevu v poslední době dochází).

Lepení chybám nesvědčí

Opravování bezpečnostních mezer formou „záplat“ tak, jak je provozováno v případě produktů Microsoftu, ale i dalších firem, sice přináší rychlé řešení jednotlivých problémů, může však mít velmi nevítané vedlejší efekty. Těmi je jednak snižování kompatibility, jednak riziko vytváření nových rizik, která bez aplikací záplat neexistovala. Příkladem toho je opět nedávná vadná záplata pro systémy Windows 2000 či spekulace o kompatibilitě aplikací se SP2 pro Windows XP.

Nelze si vybrat

Problém bezpečnostních mezer není, jak jsem se pokusil tímto článkem nastínit, ani zdaleka jen problémem techniky jako i logiky a tak trochu filozofie. Vzniknul překotným vývojem, a proto je nepravděpodobné, že by se jej podařilo rychle opravit bez radikální výměny koncepce, na níž funguje IT. Nelze si tedy vybrat, zda se vystavit riziku záplatování, nebo ponechat rizika známá (obojí je iracionální). Lze pouze důvěřovat tvůrcům softwaru, že při hledání a řešení bezpečnostních záplat nejen programují, ale i přemýšlejí.

Anketa

Aktualizujete pravidelně svůj software?

Našli jste v článku chybu?

15. 5. 2006 17:48

uživatel si přál zůstat v anonymitě
neuveritelne.. ten maniak KUKU spamuje snad celej internet

15. 5. 2006 17:48

uživatel si přál zůstat v anonymitě
Ten magor je i tady???
Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Mňam TV splnila slib a odešla z DVB-T

Mňam TV splnila slib a odešla z DVB-T

Vitalia.cz: Vláknina: Rozpustná, nebo nerozpustná?

Vláknina: Rozpustná, nebo nerozpustná?

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Podnikatel.cz: 3, 2, 1..EET startuje. Na co nezapomenout?

3, 2, 1..EET startuje. Na co nezapomenout?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

DigiZone.cz: Digi CZ výrazně zlevnila balíček HBO

Digi CZ výrazně zlevnila balíček HBO

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Podnikatel.cz: Pozor, pojišťovny mění čísla účtů

Pozor, pojišťovny mění čísla účtů

120na80.cz: 5 poporodních problémů a jejich řešení

5 poporodních problémů a jejich řešení

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Měšec.cz: Vklad na cizí účet je draze zpoplatněn (přehled)

Vklad na cizí účet je draze zpoplatněn (přehled)