Un sistem de operare monolitic precum Linux sau Windows este format dintr-un nucleu de drivere, servicii si procese low level numit kernel si foarte multe aplicatii care interactioneaza cu acesta pentru a executa taskuri pe statia respectiva fara a accesa direct hardware-ul. Printre aceste aplicatii amintim si desktop managerul dar si browserul web.
Pe windows, toate aplicatiile care vin cu sistemul de operare precum si kernelul, sunt dezvoltate si mentinute de o singura "armata" de programatori de la Microsoft.
Linux este de fapt un kernel. Sistemul de operare cu totul (kernel + aplicatii) se numeste distributie Linux. Pe linux, fiecare aplicatie este dezvoltata separat de catre organizatii diferite: Apache foundation, kde, X Window System. Fiecare organizatie este responsabila cu rezolvarea propriilor vulnerabilitati in software. Organizatiile care creaza aceste distributii: ubuntu, centOS, gentoo, etc. au posibilitatea de a alege dintre un numar mare de aplicatii de calitate. Mai mult, au posibilitatea de a intarzia integrarea unei versiuni noi a unei aplicatii in distributia lor pana cand este testata suficient.
Totusi vulnerabilitatile apar.
La Microsoft munca sisifica se varsa in capul programatorilor. Acestia rezolva in cele din urma orice vulnerabilitate insa intotdeauna cu un delay care poate sa dureze si luni de zile.
In cazul Linux, si tu poti remedia o vulnerabilitate :) Bineinteles, codul va fi atent studiat si adaptat de catre cei din conducerea organizatiei.
Odata o vulnerabilitate rezolvata:
Utilizatorii WIndows vor primi cu dificultate update-uri de software. Foarte multi nici nu primesc update-uri deoarece nu au software original si au impresia ca au nevoie de licenta pentru asta. iar aceste update-uri sunt doar pentru softurile de baza din Windows, nu si pentru multitudinea de aplicatii vulnerabile instalate de utilizator.
Utilizatorii Linux primesc foarte repede update-uri. Sunt chiar enervant de multe intrucat comunitatea de programatori linux este numeroasa si foarte activa. Update-urile ajung la majoritatea utilizatorilor conectati la internet. Mai mult, aceste update-uri sunt impartite in "pre-release si stable" oferind utilizatorilor posibilitatea de a alege intre o versiune mai "testata" sau mai "recenta". Absolut toate update-urile vin pe aceeasi cale: un program universal care se ocupa de descarcarea aplicatiilor, verificarea integritatii lor si instalarea corecta a acestora.
Cat despre partea software:
Linux este un sistem multi-user. Exista zeci de "utilizatori" virtuali pe un sistem linux. In timp ce pe windows mai toate aplicatiile ruleaza ca userul autentificat (Tu), pe linux, aplicatile, in special cele de importanta critica ruleaza sub credentiale diferite proprii lor. Acesti utilizatori au drepturi foarte limitate, de a face doar operatiile pentru care au fost creati.
Atat structura de fisiere ntfs folosita pe Windows cat si Ext2,3,4 de pe Linux implementeaza permisiuni separate pentru useri. Exista un "proprietar" al fiecarui fisier. si permisiuni diferite pentru proprietar, pentru grupul din care face parte acesta si pentru toti ceilalti. DUpa cum am spus insa, pe Windows mai tot românul are un utilizator care este si administrator, si, intrucat acesta ruleaza aplicatii cu aceleasi drepturi ca el, aplicatiile pot sa faca aproape orice pe sistemul sau. In windows 7 exista acea masura de securitate: o fereastra enervanta care atentioneaza utilizatorul cand o aplicatie incearca sa faca ceva ce necesita drepturi de administrator parte dintr-un sistem numit Data execution prevention. Astfel aplicatiile au 2 nivele de permisiune: De [...] și total. Aplicatiile care ruleaza in permisiuni de [...] nu pot nici macar sa schimbe data si ora. , motiv pentru care foarte multe aplicatii cer utilizatorului sa le ofere permisiuni totale. Iar utilizatorul, naviv, le ofera. Odata acestea oferite, daca aplicatiile respective au vulnerabilitati (intotdeauna au), acestea pot permite unui atacator sa foloseasca aplicatia cu drepturile depline ale acesteia pentru a compromite intreg calculatorul.
Pe linux exista doar cateva programe care solicita utilizatoruluidrepturi depline, cum ar fi package managerul care instaleaza alte programe. Odata acestea oferite, package managerul are grija sa creeze utilizatori cu drepturi limitate pentru fiecare aplicatie esentiala astfel incat orice vulnerabilitate a acesteia este continuta in spatiul influentei acesteia.