Jak a proč se dělají záplaty

1. 6. 2005

Sdílet

Už jste někdy záplatovali počítač?To znamená, zda jste do něj instalovalinějakou aktualizaci programu? Pokud máte operační systém od Microsoftu a používáte internet, pak skoro určit...

Už jste někdy záplatovali počítač?To znamená, zda jste do něj instalovali
nějakou aktualizaci programu? Pokud máte operační systém od Microsoftu a

používáte internet, pak skoro určitě ano. Ale ani dalším programům a systémům

od jiných výrobců se potřeba záplatování nevyhýbá. Co ale ve skutečnosti taková

záplata představuje? Jak se dělá a jakými mechanismy se distribuuje? A proč by

její výroba neměla být otázkou několika desítek minut?



Svět je plný počítačů a ty jsou plné aplikací. Každý program, než je uvolněn

pro veřejnost, prochází testováním. Počínaje výrobkem nadšence, který si jej

ověří alespoň u dvou kamarádů, zda nepadá, až po profesionální produkt

softwarové společnosti s tisíci zaměstnanci, která jej kontroluje mnohem

sofistikovanějšími metodami. V každém případě aplikace, která se dostane do

volného oběhu nebo prodeje, by měla být alespoň minimálně funkční. Mnoho chyb

však nelze odhalit ani tím nejpodrobnějším testováním. A tak se čas od času

stane, že je nějaký nedostatek v programu objeven až po nějaké době při jeho

používání. Jak si ukážeme dále, nemusí jít vždy nutně pouze o chybu, která by

souvisela s nešikovností programátora nebo toho, kdo aplikaci navrhoval.

Problematické místo může v aplikaci vzniknout mnoha dalšími způsoby nebo si jej

tam dokonce lidé mohou přimyslet.

V každém případě pak je nutné problém nějak vyřešit. U jednoduchých programů se

to dělá vydáním aktualizované verze. Problém v aplikaci prostě odstraníme tím,

že ji odinstalujeme a nahradíme takovou verzí, kde se již tento nedostatek

nevyskytuje. Vydávání aktualizovaných verzí aplikací však má také svoje

nedostatky. Hlavním z nich je, že aktualizovaný program je potřeba nejprve

odinstalovat – to často znamená vymazat i jeho data a přijít o jeho nastavení.

Nová verze také nemusí být nejmenší a především představuje zásah do

fungujícího prostředí (byť s chybou).

A tak je zde druhá možnost, kterou je vydávání jednotlivých aktualizací. Tedy

jakýchsi balíčků, jež nahrazují vybrané části programu. Lidově se jím říká

záplaty a v poslední době se s nimi můžeme setkat takřka na každém kroku. Proč?

Protože, jak se ukazuje, dokonalá aplikace nebo dokonalý systém neexistuje a

záplatovat se chtě nechtě musí. Vydávání aktualizací (záplat) nicméně kromě

řešení problémů také přináší a vyvolává mnoho dalších obtíží.



Typy problémů

Pokud čtete elektronické či papírové časopisy o počítačích, víte, že takřka

každý druhý den je vydána aktualizace nějakého programu. Tyto aktualizace

obvykle řeší „bezpečnostní chyby“. Stalo se módou posledních několika let

hledat tyto chyby v oblíbených operačních systémech a aplikacích. Ačkoliv

„nejděravější“ jsou v tomto smyslu operační systémy z rodiny Windows, není to

pouze vina jejich výrobce – společnosti – Microsoft ač právě na ni je vina

často svalována. Opravované chyby jsou často dílem kutilů, kteří je schválně

vyhledávají. Takto záplatované „problémy“ by bez svých objevitelů pravděpodobně

neexistovaly a jejich řešení může v některých případech přinést více neštěstí

než pozitiv. Bezpečnostní chyby navíc ani zdaleka nejsou jediným typem

problému, který by vyžadoval aktualizaci. Základním předpokladem je, že problém

je nalezen až po oficiálním vydání aplikace. V zásadě můžeme události, jež

vedou k vydávání záplat, kategorizovat takto:

Funkční chyby jsou nedostatky ve fungování aplikace nebo její části. Komponenta

(funkce či něco podobného) většinou díky nedokonalému testování za určitých

okolností selhává, nebo nefunguje tak, jak by fungovat měla. Některé části

aplikace nejsou za určitých okolností dostupné nebo jsou nepoužitelné. Příčinou

funkční chyby je většinou chyba na straně programátorů a softwarových inženýrů.

Vnitřní kolize vznikají tehdy, když si dvě části stejného programu nebo systému

uvnitř nerozumí. V důsledku toho může docházet k selhávání části aplikace nebo

celku. Aplikace (systém) se může chovat neočekávaně, může padat, může docházet

ke ztrátě dat. Vnitřní kolize se nejčastěji vyskytují tehdy, když různé části

programu vyvíjejí různé týmy a dostatečně nekomunikují (nebo nepřipraví

dostatečnou dokumentaci). V současné době je tento typ kolizí u nových aplikací

vzácností a někdy vzniká jako důsledek předchozích aktualizací. Celkově

množství výskytu těchto chyb klesá.

Vnější kolize neboli nekompatibilita. Aplikace může být nekompatibilní buď s

jinou aplikací, nebo se součástí operačního prostředí, ve kterém funguje,

případně s hardwarem. K nekompatibilitě může dojít vlivem nedokonalého

testování (vina je na programátorech), ale také vlivem časového posunu. V tom

případě se program stane nekompatibilním s „moderním“ operačním systémem ne

proto, že by se změnil on, ale proto, že se změnil operační systém.

Nekompatibilita je tedy vyvolána někým jiným a původní programátoři za ni

nemohou. Podobně mohou kolidovat i jednotlivé aplikace mezi sebou. Ne vždy je

taková kolize odstranitelná a ne vždy má smysl se ji snažit odstranit.

Příkladem jsou antivirové systémy. V manuálu ke každému z nich najdeme, že jej

nesmíme používat současně s jiným systémem.

Změna použití se týká především operačních systémů. Funkce, která byla

zamýšlena pro určité použití, se v praxi používá jinak. Na takové použití ale

není konstruovaná, a tak je potřeba tuto funkci přepracovat, aby vyhovovala

novému účelu.

Exploit – konečně to nejoblíbenější. V nějaké části aplikace nebo systému je

objeven nedostatek a je popsán způsob, jak tohoto nedostatku využít k překonání

ochrany aplikace a pro přístup k informacím v ní uloženým, který nebyl tvůrci

plánován. Většinou se to týká jednotlivých programů, v krajním případě ale může

úspěšný exploit jediné aplikace vést až ke stavu, kdy ten, kdo jej využije,

získá přístup k celému počítači nebo počítačovému systému.

Interpretační chyby – nejedná se o chyby v pravém slova smyslu, ale o

nedorozumění. Něco, co je ve své podstatě naprosto bezproblémové, se stává

problémem v důsledku toho, jak je to interpretováno. Nedorozumění mezi tvůrci

aplikace nebo systému a mezi jeho uživateli nebo tvůrci podřazených aplikací

vede až k tomu, že se objeví některá z předchozích chyb a interpretační selhání

se tak stává například důvodem, proč něco objektivně nefunguje jak má, nebo je

dokonce vystaveno riziku napadení. Interpretační chyby lze považovat za hlavní

zdroj jak vnějších, tak i vnitřních kolizí.

Toto byly pouze některé z problémů, které vyvolávají potřebu aktualizací.

Pokusili jsme se vytvořit seznam generických chyb. Tento seznam není úplný a

nemusí být ani přesný, nicméně by měl poskytnout dostatečný přehled o

základních a nejčastějších nedostatcích. Běžný počítačový program je v současné

době již poněkud složitou záležitostí. V jeho jádru se díky použití

sofistikovaných vývojových nástrojů dokonce – ač je to paradoxní – nemusí

vyznat ani jeho tvůrci. Především z hlediska bezpečnostních problémů je možné,

že nedostatek vznikne naprosto mimo kontrolu autorů aplikace, aniž by na něj

mohli včas přijít. To je důvod, proč je mnoho nedostatků i přes intenzívní

testování aplikací objeveno až mnoho měsíců po jejím oficiálním uvolnění.



Jak doktor vyměnil nohu

Jak jsme si řekli, pokud se v nějakém systému najde chyba, existují dvě cesty,

jak z toho ven. První možnost je, řekneme-li to trochu zjednodušeně, vymazání

této aplikace a její nahrazení novou, bezchybnou verzí. To je ale velmi často

problém – tím větší, s čím složitější aplikací pracujeme (zkuste kvůli chybě v

kalkulačce reinstalovat Windows). Proto softwarové firmy vydávají balíky

aktualizující pouze jednotlivé části jejich dílek. Bohužel, takový balík –

záplata řešící problém nebo aktualizace, dodávající novou funkci či vlastnost –

s sebou nese nejedno riziko. Především je potřeba zvládnout aktualizační

mechanismus. Pokud se to nepovede, může nainstalování updatu vést k většímu

problému než byl ten, který měla záplata řešit. Mezi další rizika patří

„pooperační“ problémy. Například opravená komponenta se nebude snášet s něčím

jiným. Vzniku podobného problému se výrobci softwaru snaží zabránit tím, že

stejně jako aplikace, která má být opravována, prochází i záplaty velmi přísným

testováním na oba dva typy kolizí a na další možnosti, jak by mohly negativně

interferovat s okolním prostředím. To ale neznamená, že se vždy podaří všechny

nedostatky objevit. Celý proces by se dal přirovnat k tomu, kdybychom chtěli

zraněnému člověku přišít novou končetinu od někoho jiného. V případě, že se to

podaří, bude tento člověk znovu chodit. Pokud ale nikoliv, možná umře. Rizika,

která jsou spojena se záplatováním aplikací a především pak operačních systémů,

se v případě, že takový systém, respektive stejné či přímo kooperující

komponenty jsou záplatovány vícenásobně, mnohonásobí. Vzniká pak totiž zmatek

vycházející z toho, že současně může existovat mnoho různých verzí prakticky

téhož. Tím se sice (spekulativně) může zvyšovat bezpečnost, protože heterogenní

systém není možné napadnout tak snadno jako systém víceméně jednolitý. Současně

ale klesá kompatibilita se součástkami a s aplikacemi, které jsou na takovém

systému závislé, a dále dochází k problémům i v jeho vlastním rámci. Například

při nesprávném používání některých z funkcí systému podřízenými programy může i

při takové změně, která by „papírově“ neměla být nekorektní, dojít větší

aktualizací jeho vnitřních částí k zásadnímu narušení konzistence běžících

aplikací. Takové chybě se říká „Guru Meditation“ a můžeme se s ní setkat takřka

vždy, když je vydána nová verze operačního systému pro jakýkoliv počítač.

Přichází ale často i s jednotlivými aktualizacemi – například s nedávným

vydáním balíku SP2 pro Windows XP od Microsoftu. To je ovšem trochu odbočka

někam jinam.



Jak se dělá aktualizace?

Je půlnoc a automatický systém ve vašem počítači zjistil, že je k dispozici

nová verze jedné ze síťových komponent. Během několika minut dojde k jejímu

stažení z aktualizačního serveru Microsoftu a nainstalování do vašeho počítače.

Že se uvnitř něco změnilo, se díky plně automatickému nastavení v podstatě

nedozvíte. V době, kdy se aktualizace stahuje, totiž spíte a ráno počítač

funguje stejně, jako fungoval večer, i když s novou komponentou. Jak je to

možné? Proces, který na první pohled vypadá jednoduše a nic od vás nevyžaduje,

je výsledkem poměrně dlouhého vývoje plného omylů. A sám o sobě rozhodně

jednoduchý není. Pojďme se tedy podívat, jak taková modelová aktualizace vzniká.

( Na počátku je nalezení problému. Řekněme, že nezávislý bezpečnostní auditor

našel (česky a mnohem přesněji bychom řekli, že vyšťoural) zranitelnost v

komponentě webového prohlížeče. Při použití určité syntakticky sice správné,

ale nesmyslné struktury skriptovacího jazyka na webové stránce se stane, že

prohlížeč v operačním systému zareaguje chybně. Jeho část se zacyklí a pokud je

mu následně dodán odkaz na spustitelný soubor, vykoná jej, aniž by se zeptal

uživatele. To je krajní možnost chyby a navíc velice generalizovaná, nicméně

právě takto některé z objevených bezpečnostních nedostatků vypadají. Auditor

dále zjistí, že k problému je náchylná pouze jedna verze webového prohlížeče,

přitom stejný operační systém může obsahovat nejméně tři různé verze. Podle

toho, kdy byl vydán, zda byla již aktualizována jeho jiná část a také podle

toho, v jaké jazykové verzi v daném systému existuje.

Webový prohlížeč se skládá z mnoha komponent. Když problém zobecníme (velmi

silně), pak tyto komponenty můžeme najít na disku počítače na různých místech

nejčastěji v podobě dynamických knihoven – souborů s příponou .dll. Každá z

těchto knihoven obsahuje číslo své verze. Toto číslo je, když se na něj

podíváte, poměrně podrobné. Identifikuje totiž jednak generaci dané komponenty,

jednak její samotnou verzi a jednak číslo sestavení, tak zvaný build. Chyba se

pak může vyskytovat v určitém rozsahu sestavení, řekněme tedy, že je potřeba

aktualizovat soubory, které mají číslo verze v rozsahu 6.0.2400.1200 –

6.0.2400.1300. Čísla mají vnitřní význam, který může být u různých produktů

různý a rozdíl jedné stovky v čísle buildu rozhodně neznamená, že na světě je

sto různých verzí. V každém případě víme, kde chybu hledat.

Jak ji ale opravit? Výrobce musí přesně vědět, za jakých okolností je možné

nalezeného bezpečnostního nedostatku využít. Jedině simulováním takových

okolností je možné problém v komponentě prostudovat a zjistit, co přesně jej

způsobuje. Mnoho aplikací včetně webového prohlížeče se programuje ve

vývojových balících, pracujících na tak zvané vysoké úrovni. To znamená, že

programátoři se k nejnižší vrstvě aplikace již prakticky nedostanou, ale právě

tam dochází k největšímu počtu chyb. Zranitelná komponenta je spouštěna v

prostředí, které umožňuje její přesné monitorování a na základě jejich reakcí

je vyhledán jak potenciál selhání, tak i přesný mechanismus, jenž k němu vede.

Následně jsou navrhovány změny, které je potřeba provést, aby došlo k odbourání

zjištěné závady. Tyto změny ale musí být navrhovány s ohledem na další věci,

mezi něž patří zejména:

Zachování funkčnosti. To znamená, že všechno, co má prohlížeč správně umět a co

fungovalo před vydáním záplaty, musí fungovat i posléze.

Zachování konzistence. Aktualizací jedné části nesmí vzniknout chyba v jiné

nebo nesmí dojít ke kolizi s jinou.

Zachování kompatibility. Programy určené pro webový prohlížeč by měly fungovat

i poté, co se některá jeho část změní. To je problém, protože do duše jejich

autorů programátoři prohlížeče nevidí.

V některých případech stačí provést drobnou změnu a potřebnou část

překompilovat. V okamžiku, kdy se tak stane, dojde ke zvýšení čísla build a

případně subverze upravované komponenty. Jindy je změna výraznější nebo je

dokonce třeba celou komponentu přepsat. Zde si musíme uvědomit, že co na disku

počítače představuje soubor o velikosti několik desítek kilobajtů, je ve

skutečnosti moře řádků zdrojového kódu v programovacím jazyce. Vyznat se v něm

není zdaleka jednoduché, zejména ne v případě, kdy chybu způsobuje až

kompilátor – program, který převádí zdrojový kód komponenty do podoby, která je

srozumitelná počítači a dalším kompilovaným programům.

Změna v jedné komponentě si také může vynutit změnu v dalších částech. Ty sice

opravovanou chybu neobsahují, nicméně by posléze mohly se změněnou částí

programu prohlížeče interferovat, a tak je nutné zajistit, aby k tomu nemohlo

docházet. Zalepení jediné chyby tak vede k nutnosti vyměnit řekněme dvě další

knihovny.

( Testování aktualizovaných částí. Řekněme, že výrobce úspěšně aktualizoval

jednu část webového prohlížeče a vyřešil tak potenciálně zneužitelné místo.

Aktualizované části se dostávají na testovací pracoviště. Zde je třeba zjistit,

zda jejich nasazení – to znamená výměna starších verzí za novější v potenciálně

napadnutelných systémech – nemůže způsobit nějaký problém. Komponenty se

testují na množství počítačů a jsou schválně uváděny do takových situací, u

nichž se předpokládá, že by mohly způsobit problémy, interference, nebo by

mohly být vyvolány hackerem ve snaze najít další bezpečnostní nebo funkční

nedostatek. Velmi často se stane, že při takovém testování je skutečně další

problematická část objevena a je nutné s celým procesem vytváření aktualizace

jít prakticky vzato zase na začátek. To se může několikrát opakovat, až

testovací středisko dospěje k názoru, že aktualizovaná verze je v rámci

možností bezchybná.

V minulosti došlo u produktů Microsoftu, ale i dalších výrobců několikrát k

tomu, že při programování záplaty, respektive aktualizované komponenty byla

zanedbána fáze testování. Výsledkem bylo, že aktualizovaná komponenta způsobila

mnohem větší problémy než ty, které vlastně měla řešit. V současné době probíhá

velmi detailní testování každé připravované aktualizace. V případě

bezpečnostních záplat ale toto testování silně komplikuje faktor času. Dochází

totiž k tomu, že čas mezi objevením nedostatku a jeho praktickým zneužitím se

zkracuje. Červi, založení na nově objevených nedostatcích, se objevují hodiny

poté, co byly tyto nedostatky zveřejněny. Strategie založené na utajování

bezpečnostních problémů až do okamžiku, kdy jsou vydány záplaty, se ukazují

jako ne zrovna účinné, a tak se testovací týmy bezpečnostních, ale i funkčních

aktualizací dostávají do časového stresu. Tím pochopitelně stoupá

pravděpodobnost, že vydaná záplata obsahuje chybu. Existuje několik různých

koncepcí co s tímto stavem dělat a jejich popis by zde byl nad naše možnosti.

Následuje fáze přípravy samotné aktualizace. Až doposud jsme totiž hovořili

pouze o aktualizované verzi komponenty, u níž byla objevena chyba, a o nové

verzi několika dalších, které, jak se ukázalo, s touto komponentou

bezprostředně souvisí. Zkušený uživatel nebo počítačový nadšenec by si byl

schopen ve zranitelném webovém prohlížeči tyto komponenty vyměnit sám. To ale

rozhodně neplatí o uživateli nezkušeném a už vůbec ne o správci, který má na

starosti řekněme několik desítek až stovek počítačů. U každého z nich by musel

zjistit, zda obsahuje zranitelnou verzi, a teprve kdyby zjistil, že ano, měl by

ji nahradit za novou, bezchybnou. To ale také může znamenat nutnost pracovat s

procesy v počítači, některé z nich zastavit, aby došlo k „odblokování“ souboru

a ten mohl být přepsán, eventuálně restartování počítače a znovuspuštění

procesů. Proto je vytvořena aktualizace – balíček. Ta se skládá jednak z

aktualizovaných souborů a jednak ze seznamu akcí, které je potřeba provést, aby

byla aktualizace nainstalována. Vzniká záplata v takové formě, jak ji známe.

Tato záplata je následně instalována do počítače.

Instalace záplaty – ať už ji zprostředkovává k tomu určený systém, třeba

Windows Update, nebo ji provádíme ručně vypadá následovně.

Nejprve instalační balíček (z praktických důvodů mívá formu jednoho

spustitelného souboru) zkontroluje, zda nedošlo například při jeho stahování z

internetu nebo zápisu na médium, ze kterého jej spouštíme, ke změně obsažených

dat. Pro tyto účely jsou v něm uloženy kontrolní součty všech souborů

aktualizace i příslušných skriptů, které se v něm nacházejí. Spustitelná část

balíku jej extrahuje do počítače a porovná, zda to, co bylo extrahováno,

odpovídá přesně tomu, co tvůrci zabalili a vypustili do světa. Aktualizace jsou

totiž potenciálním cílem hackerů. Může také dojít k jejich narušení během

přepravy – instalování jakkoliv porušené komponenty do jinak fungující aplikace

nebo operačního systému by mohlo mít katastrofální následky.

Pokud je všechno v pořádku, musí instalátor zjistit, zda počítač, ve kterém byl

spuštěn, aktualizaci vůbec potřebuje. Jestliže instalujeme aktualizaci ze

spustitelného souboru, tedy ručně, děje se tak až po jejím extrahování.

Jestliže ale používáme aktualizační systém, je tento proces převrácen a provádí

se úplně na začátku, ještě před stažením updatu ze serveru výrobce softwaru.

Nutnost aktualizace se zjišťuje podle čísel verzí komponent. Existuje několik

přístupů, uveďme si tedy některé z nich:

- V počítači je komponenta určité verze (ekvivalence).

- V počítači komponenta určité verze chybí, nebo je k dispozici verze nižší

(škála).

- V systému najdeme několik komponent daných verzí (výčet).

Na základě těchto pravidel se rozhoduje o nutnosti aktualizace. Kromě verzí

však mohou rozhodovat i další faktory. Těm, které musí být splněny, aby mohlo

dojít k nainstalování záplaty, říkáme podmiňující. Je to například určitá

jazyková verze operačního systému – některé záplaty totiž nelze nainstalovat na

verzi jinou. Existují ale i takové, které nainstalování záplaty, byť je pro

daný systém určena, zabrání – jsou jejími kontraindikátory. Může jít například

o přítomnost jiného softwaru nebo komponenty, která se s tou aktualizovanou

vylučuje. Možností je ovšem pochopitelně ještě o něco více.

Následně je třeba zajistit, aby instalátor záplaty měl právo přístupu k

souborům, které má změnit. Prakticky to znamená zastavení procesů, jež tyto

soubory používají. V moderních Windows lze tuto akci provádět za plného chodu

systému, ve starších verzích však byla výměna systémového souboru nerozlučně

spjata s restartováním operačního systému a s následnou operací, která byla

sice technicky velmi zajímavá, ale současně poměrně riskantní. Po této operaci

byla nutná výměna samotných souborů, které předcházelo zálohování jejich

původních verzí. Je to proto, aby bylo možné v případě potřeby aktualizaci

(záplatu) zase odinstalovat a vrátit se k původnímu stavu vyměněných komponent.

Zajímavý problém se v tomto okamžiku objevuje tehdy, jestliže je jedna

komponenta aktualizována vícenásobně.

Po provedení výměny souborů je většinou potřeba ještě upravit konfiguraci

daného programu. V případě webového prohlížeče to znamená změnit záznam o jeho

verzi, aby ji mohlo být možné při dalších aktualizacích správně identifikovat,

případně pro potřeby aplikací, které jej využívají. Záznamy o provedených

záplatách se ukládají do speciálních katalogů. Ty slouží k odlaďování programů,

sledování jejich změn a mají význam i z hlediska počítačové bezpečnosti.



Excesy se záplatami

Záplaty aplikací a systémů problémy účinně řeší, ale jak jsme si zde již

několikrát řekli, mohou je i způsobovat. Totéž bohužel platí o záplatovancích

aplikacích. Chyby již byly nalezeny v aktualizačním mechanizmu společnosti

Symantec, ale také v několika dalších, menších. Dalším faktorem je, že

„doporučené“, tedy plně automatické nastavení v podstatě zcela vynechává z

procesu aktualizace počítače uživatele. Ten tak sice není odpovědný za

potenciální problémy, k nimž může dojít, ale ztrácí kontrolu nad tím, co přesně

se s jeho systémem děje. Většina aktualizačních mechanismů má různá střední

nastavení, nicméně tato nastavení bývají označována jako expertní a běžní

uživatelé jsou od nich (v zásadě správně) odrazováni. Několik nedávných

problémů ovšem ukazuje, že ani aktualizacím nelze stoprocentně věřit. Naštěstí

se již softwarovým výrobcům podařilo vyřešit zásadní problém aktualizačních

systémů – totiž otázku, jak má aktualizace opravit sama sebe.



Záplaty potřebujeme

Bez aktualizací softwaru (jak funkčních, tak i bezpečnostních) se v současné

době již prakticky neobejdeme. Jejich existence a vývoj má svá pozitiva, ale

přináší také bohužel negativní důsledky. Těchto negativních důsledků bychom si

měli být vědomi. Lze předpokládat, že v dohledné době množství objevených

bezpečnostních mezer, především v operačních systémech, bude dále stoupat.

Jestliže přitom hovoříme pouze o záplatování Windows, dopouštíme se veliké

chyby. Jak se totiž na desktopové počítače dostávají alternativní systémy,

především různé distribuce OS GNU/Linux, stoupá počet chyb, které jsou objeveny

i v nich a tím pádem stoupá i potřeba aktualizací. Pro ty, kteří si zvykli

hanět Microsoft, že jeho produkty jsou vadné, se v souvislosti s uvedeným

trendem blíží do jisté míry „doba pravdy“. Například aktualizace Linuxu je v

mnoha ohledech technicky obtížnější než aktualizace systémů Windows, především

díky dodnes ne zcela dokonale zvládnutému systému balíčků a jejich vzájemných

závislostí, které se často týkají jednotlivých verzí.

Záplaty nás tedy provázejí a ještě provázet budou. Doufáme, že tento text

přinesl alespoň základní informaci o tom, jak vypadá jejich vývoj, testování a

distribuce. V mnoha ohledech by se dalo říci, že jde o proces, který je

obtížnější než proces vývoje původního softwaru, který je následně záplatován.

Někteří odborníci tvrdí, že vývoj záplaty se trochu podobá psaní dalšího dílu

rozjetého televizního seriálu – víte přesně, co děláte, ale naprosto vše musí

sedět. Za vším tím tichým stahováním a instalováním komponenty někdy o půlnoci

nebo ve dvě hodiny ráno je ukryt vskutku poměrně složitý proces, který jsme zde

mohli spíše jen naznačit, než popsat do všech důsledků. Pokud vás zajímají

další informace, obraťte se na weby určené pro programátory. Najdete jich tam

mnoho – avšak informace budou mnohem více technického rázu.



Automatické aktualizační systémy

Aktualizační systémy jako například Windows Update nebo Live Update společnosti

Symantec pomáhají udržovat produkty, pro něž jsou určeny, v aktuálním stavu. To

znamená, že průběžně zjišťují verze nainstalovaných komponent a pomocí

speciálního protokolu je porovnávají s těmi nejnovějšími dostupnými. Pokud je

vydána aktualizace, pak se tyto systémy postarají o její korektní stažení a

nainstalování. Pravdou je, že ne vždy je možné používat jejich služeb, ale

práci při aktualizacích počítačů výrazně usnadňují. V případě velkých podniků

jsou aktualizace některých komponent testovány ještě dříve na úrovni k tomu

určeného oddělení firmy, až pak jsou nainstalovány jednotlivým uživatelům. V

tom případě se například u produktů Microsoftu aktualizace jednotlivých

počítačů neprovádí ze serveru Windows Update, ale z k tomu určených serverů v

rámci firmy. Totéž se děje i tam, kde se více lpí na tom, aby všechny počítače

fungovaly naprosto spolehlivě a také tam, kde právě dvakrát nedůvěřují výrobcům

softwaru.