Jak vzniká opravný balíček (hotfix) pro produkty Microsoftu

Víte jak se vytváří oprava (hotfix) pro Internet Explorer nebo Windows? Víte že hotfixy se před vydáním testují několik týdnů a proto vydání hotfixu trvá tak dlouho?

Kolem nedávné opravy chyby v Internet Exploreru se vedou rozsáhlé diskuze. Někteří si stěžují, že to Microsoftu trvalo moc dlouho chybu opravit, někteří chválí Microsoft za rychlou reakci. Zde je alespoň částečné rozkrytí toho, co všechno se musí stát, aby nová záplata spatřila světlo světa.

Zjištění potenciální zranitelnosti

Existuje mnoho kanálů, kterými se Microsoft může dozvědět o případné zranitelnosti v některém z našich produktů. Většinu chyb najde Microsoft sám, o některých se dozví od partnerů nebo bezpečnostích výzkumníků tzv. „white hats“ a v nejhorším připadě se objeví veřejný útok na danou chybu („zero day attack“). Jen pro zajímavost, Microsoft zaměstnává celkem početnou skupinu hackerů, kteří se snaží heknout vše, co vyjde z MS kuchyňky. Všechny tyto připady, kdy je potencionálně ohrožena bezpečnost zákazníků, jsou od začátku zpracovávány ve specielním týmu Microsoft Security Response Center (MSRC) a tento tým je zodpovědný za celý proces od reportu chyby až po uvedení aktualizace.

Tato skupina určí (ve spolupráci s produktovým týmem) jak závažná je daná chyba a tím i jak brzo je nutné vydat záplatu. Vždy se jedná o zvažování zda je důležitější opravit chybu co nejdříve a nebo je možné strávit více času na kvalitě opravy a nalezení podobných problémů v jiných komponentách.

Vytváření záplaty

Prvním krokem je zjistit, zda existuje podobný problém i v jiné oblasti. Produktový tým se snaží v kódu najít podobný problém jak přímou revizí zdrojového kódu, tak testováním podobných scénářů. Cílem je opravit pokud možno všechny chyby najednou, aby zákazníci nemuseli instalovat několik záplat po sobě a zároveň zde nebyl dán prostor případným dalším útočníkům, kteří by na vydanou záplatu použili tzv. reverse-engineering.

Zároveň s vytvářením opravy, se MSRC pokouší najít možné způsoby, jak ochránit zákazníky dříve, než bude k dispozici záplata. Výsledkem tohoto zkoumání bývá sada doporučení zákazníkům a zároveň seznam napadnutelných konfigurací. Viz například tabulka opatření v tomto postu.

Jakmile je zjištěno, kde všude se daná chyba nachází, vytvoření vlastní opravy je obvykle velmi rychlé (v mnoha případech se jedná o hodiny, nebo jednotky dní). Opravu vždy vytváří produktový tým (skupina, která vlastní danou komponentu) a tato prochází prvním testováním uvnitř tohoto týmu. Zároveň se vytvoří vlastní záplata obsahující tuto opravu. Pro zajímavost, pro každou verzi a platformu OS je potřeba vytvořit záplatu zvlášť (až 30 různých). 

Testování opravy

Fáze testování je ta část, která trvá ze všeho nejdéle. MSRC nepovolí zveřejnění opravy dokud nesplňuje velmi přísná kritéria, která zajišťují, aby oprava nezpůsobila nechtěné změny v chování daného produktu. Testování oprav do některých komponent se účastní mnoho různých produktových skupin. Například oprava v Internet Explorer, který je součástí několika verzí operačních systémů a je podporován ve 26 jazycích, je samozřejmě mnohem náročnější, než testování opravy v komponentě, která nemá tolik závislostí.

Testování významné opravy může vyžadovat i několik stovek lidí pracujích po několik týdnů. Testuje se vlastní oprava, komponenty, které na opraveném kódu zavisí a naopak komponenty, na kterých zavisí opravovaný kód. Ověřuje se kompatibilita aplikací, funkčnost instalátoru a další uživatelské scénáře. Při testování je potřeba ověřit funkčnost opravy na všech možných konfiguracích a verzích operačních systému a aplikací, kterou danou komponentu používají. Často je nutné vytvořit nové testy pro lepší pokrytí dané oblasti.

Celý článek Jak vzniká ‚záplata‘

0 Responses to “Jak vzniká opravný balíček (hotfix) pro produkty Microsoftu”


  • No Comments

Leave a Reply