Klidně to může být problém nedostatečně definovaného, dokumentovaného a/nebo testovaného rozhraní. Autor kódu nepředpokládal, že by v datech nějaký objekt nemusel být, a autor dat neměl čím vhodným objekt naplnit, tak ho tam prostě nedal. A asi neexistuje žádný validátor, který zkontroloval, že je ten datový soubor vytvořen správně, a nevaliduje to ani interpret. Nebo ten validátor existuje, ale chová se jinak, než skutečný interpret.
Tohle nebylo instalováno jako driver. Sice to má příponu sys, ale není to driver. Oni tomu říkají „konfigurační soubor“, tj. je to právě taková vylepšená databáze signatur – soubor s daty, kterými se řídí ten bezpečnostní engine. Ta chyba v ovladači, který zkolaboval na špatných datech, tam klidně mohla být už dlouho. Akorát teď se jim poprvé povedlo uvolnit soubor s daty, který tu chybu (někdy) způsobil.
Z vyjadreni Crowdstrike je patrno, ze se (navzdory pripone) nebavime o kernelovem driveru. Z tehoz vyjadreni je patrne, ze nic jineho nez ten channel file (na ktery lze pohlizet asi jako na nejake signatury) poruseny nebyl. Ano, je relevantni diskutovat o tom, jak si samotny Crowdstrike resi kontolu integrity podobnych veci, se kterymi pracuji.
Skoro to vypada na takovou tu "klasiku", kdy se na podobne veci v ramci vseobjimajiciho "spechu" kasle - podobne funkce uzivatel typicky nevidi, takze nemivaji z pohledu vyvoje moc prioritu. A takove "nedodelky" se daji najit na mnoha mistech.
Nemyslím si, že šlo o nějaké stihnutí distribučního okna. Tohle se aktualizuje několikrát denně. Bezpečnější jazyk samozřejmě není zárukou, že nedojde k žádné chybě. Ale zrovna tomu dereferencování nulového ukazatele by jiný jazyk zabránil. To testování bylo víc odfláknuté v době, kdy vznikl ten kód, než teď, kdy vznikla konfigurace, na které spadl.
Žel, tak to dopadá, když se na software spěchá a odflákne se testování. Obávám se, že tady ani použití bezpečnějších jazyků není zárukou, že se to nebude opakovat.
Ony ty bezpečnější jazyky nejsou rozhodně všelék - a nemělo by se na to zapomínat.
Ale to není ani to zpomalení distribuce - já za tím tuším snahu stihnout distribuční okno
a tlak na urychlené dodání. (Ne, že bych to neznal z práce...) Pak se spousta testů udělá formálně, nebo se prostě nestihne.
Jen doufám, že ten problém, který to mělo řešit, alespoň stál za to,
Protože je to aktualizace reagující na nově objevenou bezpečnostní hrozbu. Řešení jako ta od firmy CrowdStrike si firmy pořizují i proto, aby dokázala rychle reagovat na aktuální hrozby. Firmy si to nepořizují proto, aby pak slyšely: „Ano, útočník prošel přes naše bezpečnostní řešení. Ano, o tomto typu útoku jsme věděli a uměli jsme ho detekovat. Bohužel jste zrovna byly v kontrolní skupině.“
Nemyslím si, že se v tomto případě půjde cestou zpomalení distribuce. Spíš se zavedou další nástroje na kontrolu kódu, možná přepis do bezpečnějších jazyků tam, kde to jde. Protože v tomto případě údajně ta nová data způsobila dereferencování nulového ukazatele v C++ kódu.