Vyvoj neceho na tento zpusob (System kodoveho zabezpeceni s podporou evolucnich algoritmu) zacina na UTB.
Na UTB byl take vyvinut "evolucni" algoritmus, ktery behem dvou let vyvoje jednim clovekem temer bez nakladu v mnohem prekonal americky DE vyvijeny temer tricet let s naklady v radech desitek milionu dolaru.
jenze, kdyz uz jsme u tech biologickych prirovnani, pak vezte, ze:
- prostredi relativne geneticky uniformni dokaze projit mnohem rychlejsi evoluci (za predpokladu velke geneticke variability ma populace tendenci "zamrznout", prestava fungovat selekce).
- zaplata na virus XY se v homogennim prostredi aplikuje 1krat. takhle budete asi muset tvorit ruzne "vakciny" podle ruznych systemu napadenych ruznymi utocniky.
- z prekladu je videt, jak byl puvodni clanek strasne "informacne redundantni" - dal by se napsat 2 vetami. a to to byl "vedecky" text :-(.
Asi to nebude tak jednoduché. Počítač má vykonávat služby pro člověka narozdíl od organizmu, jehož úkolem je pouze přežít a rozmnožovat se (nemá tedy konkrétní úkol). Pokud bychom ponechali vývoj softwaru na nějaké evoluci (prvky náhody) můžeme dostat systém velmi odolný proti napadení či poškození, ovšem na úkor vykonávání člověkem zadané úlohy. Navíc evoluce je proces na miliony let.
Programovat aplikace pro takto heterogenní systém bude rozhodně lahůdka.
Vývoj software budou zřejmě obstarávat izolované skupiny, které se nebudou vzájemně informovat o svých výsledcích, aby každá z nich dělala jiné chyby. Každá aplikace bude zároveň mít v jeden časový okamžik mnoho verzí (větví).
Mám pocit, že ze mě někdo dělá většího blbce než jsem ;-)
To je vec, kterou nezarucis. Z tohoto pohledu vychazeji slusne dva typy systemu: Trusted unixy a simple based veci jako plan9.
Kazdy pristup ma sve vyhody a ale nikde nezarucis absenci chyb a proto je mozna vyhodnejsi pouzit na fundamentalni veci nekolik ruznych algoritmu a kdyz jedna verze selze nahradi se verzemi jinymi ci jejich komby.
kolik lidi si tady z toho dela srandu :)
Zminovany vyzkum mi nepripadne az tak absurdni. Vemte si treba takovy utok zalozeny na stack-overflow (zjednodusene, pro ty co to nevi: "zly hosi" najdou nechranenou stringovou promennou, kterou preplni, tim prepisou zasobnik a procesoru do nej podstrci svuj kod, ktery se nasledne vykona.) Pokud ma napr. x tisic lidi stejnou verzi MS IIS jako utocnik, tak mu staci 'rozpitvat' IIS, zjistit adresu kde doslo k preteceni, adresu potrebnych knihoven a pote co provede utok lokalne, muze ho uspesne na dalku opakovat i u tech x tisic dalsich lidi (jak se to krasne povedlo autorum cervu Code Red).
Pokud by ale kazdy mel na pocitaci jinak zkompilovanou verzi, s odlisnou bazovou adresou, s odlisnymi adresami promennych, funkci, knihoven, zasobniku.. pak by mel utocnik smulu ;) Tezko muzete strcit do ciziho pocitace zakerny kod, kdyz nevite na jake adrese se ocitne a na jake adrese jsou funkce ktere chce volat. Tuhle fintu se castecne snazi implementovat vyvojari OpenBSD - kazdy spusteny program by mel mit zasobnik na nahodne generovane adrese... a mozna jeste neco vic, ale uz si to presne nepamatuju :)
Vyzkum o kterem se tu pise mi tedy pripada jako dalsi logicky krok - mozna se mylim, ale nikde jsem si nevsiml ze odlisnosti v programech by meli delat sami programatori.. cela ta diverzifikace (hrozny slovo, ale cesky ekvivalent me nenapada :) by mela probihat automaticky a tak aby zachovala funkcionalitu programu.. a to prece neni vubec spatny napad, ne?