Nie trzeba szukać daleko żeby znaleźć historię luk w kompilatorach JIT JSa, które pozwalały na ucieczkę z sandboxa, a na blogu Projektu Zero Googla niedawno były artykuły o tym jak na FF na Windowsie dało się uciec z sandboxa, bo izolacja procesów źle brała pod uwagę istnienie procesu renderers GPU. Bezpieczeństwo nie jest trenerem zamkniętym
W Biblii kiedyś napisali, żeby dom budować na skale, a nie na ruchomych piaskach.
Błędy się zdażają wszędzie, ale cała platforma WIndows to są właśnie ruchome piaski, gdzie wszystkie tzw "zabezpieczenia" są nakładkami na system, a nie jego rdzeniem.
Miedzy rdzeniem a nakładkami zawsze jest jakaś luka, to sytuacja całkiem naturalna.
Właśnie dlatego Linux cały system uprawnień systemowych i LSM trzyma w kernelu, a nie w zewn sterownikach i userspace.
Identycznie postępują systemy z rodziny BSD, potem zarówno Android jak i ISO działają w internecie bez antywirusa 5 lat a nie 15 minut.
Dlatego nie masz co porównywać aplikacji na platformie WIndows od aplikacji w innych systemach, bo nie da się oddzielić jakości i trwałości stołu od jakości i trwałości podłogi, na której stoi.
Rozdzielnie zakładek na osobne procesy likwiduje 95% problemów z bezpieczeństwem wewnątrz aplikacji,
z którymi borykali się programiści wcześniej, bo po prostu wyrzuca je z wnętrza aplikacji na poziom systemu opracyjnego.
Inna sprawa, że to system operacyjny odpowiada za to, żeby jedne procesy systemowe nie mogły wykradać danych innych procesów systemowych.
Systemów operacyjnych Windows, Linux, BSD czy Android Mozilla na razie nie produkuje.
Jeżeli mechanizm Sandbox w Windows albo mechanizm Namespaces w Linuxie będzie miał błędy,
to będzie wina Mozilli czy systemu operacyjnego?
PS:
RTFW:
https://en.wikipedia.org/wiki/Linux_namespaces
PS2:
Mozilla się po prostu uczy od konkurencji i tym samym prawie cały problem bezpieczeństwa przeglądarki wynosi piętro wyżej, na poziom systemu operacyjnego.
Sam FF natomiast wraca z poziomu aplikacji pracującej na wielu zakładkach co wprowadziło tysiące problemów z bezpieczeństwem, na pozycję typu jeden proces - jedna zakładka, który znamy z Netscape i FF do wersji >3.0
Ma teraz jedynie wspólne okienko, te poszczególne procesy wyświetla w zakładkach.
Otwarte 3 karty FF u mnie:
Kod: Zaznacz cały
pacjent 964 3.2 3.1 3354100 504884 tty7 Sl 04:18 4:59 /usr/lib64/firefox/firefox -P pacjent --new-tab
pacjent 998 1.7 1.0 909644 160632 tty7 Sl 04:18 2:40 /usr/lib64/firefox/firefox -contentproc -parentBuildID 20200811042452 -prefsLen 1 -prefMapSize 426224 -appdir /usr/lib64/firefox/browser 964 gpu
pacjent 1048 1.0 2.0 34475796 323620 tty7 Sl 04:18 1:36 /usr/lib64/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 126 -prefMapSize 426224 -parentBuildID 20200811042452 -appdir /usr/lib64/firefox/browser 964 tab
pacjent 1622 0.6 1.3 2833392 207324 tty7 Sl 06:18 0:12 /usr/lib64/firefox/firefox -contentproc -childID 23 -isForBrowser -prefsLen 7478 -prefMapSize 426224 -parentBuildID 20200811042452 -appdir /usr/lib64/firefox/browser 964 tab
pacjent 1721 0.8 1.5 2861332 242188 tty7 Sl 06:19 0:14 /usr/lib64/firefox/firefox -contentproc -childID 24 -isForBrowser -prefsLen 7478 -prefMapSize 426224 -parentBuildID 20200811042452 -appdir /usr/lib64/firefox/browser 964 tab
pacjent 2084 4.5 1.4 2790136 229852 tty7 Sl 06:36 0:37 /usr/lib64/firefox/firefox -contentproc -childID 25 -isForBrowser -prefsLen 7777 -prefMapSize 426224 -parentBuildID 20200811042452 -appdir /usr/lib64/firefox/browser 964 tab
pacjent 2782 0.0 0.5 2595616 80408 tty7 Sl 06:41 0:00 /usr/lib64/firefox/firefox -contentproc -childID 26 -isForBrowser -prefsLen 7934 -prefMapSize 426224 -parentBuildID 20200811042452 -appdir /usr/lib64/firefox/browser 964 tab
RTFM:
Pozdro
