Citat:
japan: znači, svaki propust u FOS svetu je backdoor donated by agent smith, i na jedan otkriveni ide brdo i šesto neotkrivenih, dok su propusti u proprietary svetu samo posledica ljudske nesavršenosti (jer se ovakve stvari, i pored sve edukacije, dešavaju i najboljima), i svi su poznati?
To nisam nigdje tvrdio. Vi pingvini zaista imate selektivan vid.
Citat:
Apatrid: Ovdje mozemo da se slozimo da se sloziti necemo. Unixoidni svijet ima monolitni kernel kao manu, Windows monolitni bloatware koji svaka masina mora da vozi, htjeli-ne-htjeli, da "osisaju" cijelu pricu mogu samo probrani.
Monolitni kernel nije nikakva mana (ne znam kakve veze to ima sa sigurnosti uopće). I NT je monolitni kernel (strogo monolitni, ne hibridno-monolitni kako ga neki naivno nazivaju). Štoviše, čak i ako krucijalne OS komponente offloadaš u userland, sigurnosni propust u njima bi bio jednako opasan kao i kad bi se našao u kernel-modu.
Zamisli sigurnosni propust u memory manageru ili thread scheduleru koji se vrti u nezavisnom procesu u user-mode - na koji bi način on bio manje opasan od kernel-mode ekvivalenta? Sve što možeš jest, well, modificirati adresni prostor svih procesa preuzimanjem npr. page fault handlera, ili utjecati na redoslijed selektiranja threadova za izvršavanje, npr. sakrivajući svoj r00tkit proces. Bezopasno? Ma ne, uopće ;)
Windows nije "monolitni bloatware" već OS sa pomno organiziranim razinama apstrakcije (što se za *nixe ne bi moglo reći). Recimo POSIX layer dodan u Visti je potpuno transparentan u odnosu na win32 layer, jer jedan nema veze s drugim, pošto su oba rutirana preko native subsystema. Na *nixama se odvajkada koriste direktno sistemski pozivi zbog čega se npr. win32 može jedinu
simulirati wrappanjem na sistemske pozive. Na windowsima nitko ne koristi syscalle, štoviše osim par njih nijedan nije ni dokumentiran u MSDN-u. Ti to zovi bloat, ja fino gradiranje apstrakcija zovem esencijom sw inženjerstva.
Isto slijedi i npr. za COM, win32->shlwapi etc. Za Vistu su čak dizajnirali specijalne programe (ekstenzije kompilatora) koji provjeravaju razinu apstrakcije na kojoj se nalaziš, i koje API-je pozivaš. Npr. da unutar konteksta koda sistemskog DLL-a ne koristiš high-level funkcije iz shella. Na taj način poboljšavaš modularnost koda i ne stvaraš nepotrebne ovisnosti, korištenjem API-ja na "need to know" bazi. Prava je šteta što se takvo stupnjevanje apstrakcije ne može danas ostvariti na razini programskih jezika (vjerojatno može u Lispu :)
Windowse dizajniraju iskusni profesionalci ne wannabe-hax0ri koji žele što prije iz bezbolnije
trenutno riješiti problem. Richard Gabriel je loše strane idiotske *nix "more iz less" filozofije objasnio u nekolicini eseja, koga zanima evo dobra odskočna daska:
http://en.wikipedia.org/wiki/Worse_is_Better
http://en.wikipedia.org/wiki/Unix_philosophy
http://en.wikipedia.org/wiki/Unix_philosophy#Worse_is_better
http://www.elitesecurity.org/t29491-2#1441372
(zanemarite kontekst diskusije u gornjem odgovoru).
Recentna diskusija pthreads vs. win32 threads (bilo bi je fino revitalizirati ovdje na Advocacy :) na slashdotu je savršena potvrda toga: Ni jedan jedini pingvin koji je na /. komentirao ne shvaća na koji način unifikacija upravljanja resursima preko HANDLE-ova reducira broj API-ja, olakšava samo programiranje i proširenje funkcionalnosti. Sa SetKernelObjectSecurity() je prije 4-5 godina dodana podrška za postavljanje ACL-ova nad socketima (može jerbo taj API operira nad generičkim handleovima). UNIX pristup bi bio definiranje novog API-ja, odnosno nove podatkovne strukture acl_socket, te par novih apija za kreiranje/inicijalizaciju. I to bi obavezno prozvali "jednostavnijim načinom" :)
Citat:
Ne znam na osnovu cega se moze tvrditi da je "smanjivanje povrsine" KAO JEDNA OD METODA za izgradnju sigurnog sistema, prestala da igra. Ja mislim da NIKAD nece prestati da igra. Nijesu svi u situaciji da rade sa monolitnim softverom kome je tesko ili nemoguce "smanjiti povrsinu" kontakta ELIMINACIJOM softverskih komponenti koje se ne koriste ili bez kojih se moze u kriticnoj aplikaciji.
Nije prestala da igra ulogu, ali u kombinaciji SDL + proaktivne zaštite igra sve manju ulogu. Ti se glupi bugovi mogu otkloniti na razini dizajna i dobro-definiranim inženjerskim principima. Samo attack surface reduction kao strategija sigurnosti je besmislena - najbolji ti je primjer Mac OS X koji se, jednom kad je security researcherima dozlogrdila bahatost Appleovih PR majmuna i odvjetnika koje je na njih huškao, dobio po prstima:
http://applefun.blogspot.com/ Ne tako davno bio je "sveta krava" maloumnih Appleovih apostola koji su vjerovali u Appleove nadri-programere toliko da i eksplicitno gašenje ProPolice-a nisu uzimalo kao ozbiljnu prijetnju sigurnosti OS-a. Opskurnost kao gradivni čimbenik ukupne sigurnosti je besmislen, jer samo problem otklanja na drugu domenu. Ti nisi siguran, već samo POTENCIJALNO siguran :)
Citat:
Apatrid: Ne znam da li je Vista nesto novo, mislim da je to odluka svakog od nas. Meni (a i kojekome u industriji) licno je koncept virtuelizacije, tretiranje virtuelne masine kao svojevrsnog "jail"-a mnogo interesantnija alternativa za "smanjivanje povrsine" i podizanje genericke sigurnosti sistema, bilo da je sistem moja licna masina, ili nesto vece ili manje od toga.
Virtualiziraj pokretanje browsera u zasebnoj instanci OS-a na VM i dobio si što točno?
Jesu li ostali remotely exploitable bugovi? Jesu.
Može li se preko njih remotely instalirati malware koji radi identity theft i DoS? Može.
Rješava li uopće virtualizacija problem loše napisanog koda? Ne, samo ga prebacuje u drugu sferu.
Citat:
Tu oko mene je dosta primjera gdje firme voze "Windows on Windows" u VmWare okruzenju, tezeci da odvoje aplikacije
LOL. Možeš mi navesti neke primjere aplikacije koje ima smisla "razdvajati" instalirajući ih pod različitim VM, pošto dobiješ veću "sigurnost i nezavisnot izvršavanja" u odnosu na scenarij instaliranja pod istim matičnim OS-em, i separacijom preko različitih accountova u kojima bi se izvodili?