By Alan Cao If you love exploit mitigations, you may have heard of a new system call named mseal landing into the Linux kernel’s 6.10 release, providing a protection called “memory sealing.” Beyond…
So, for now, the software developer is responsible for protecting these regions, as they have the context to determine when and where sealing should be applied appropriately.
Czyli już na starcie wiadomo, że nic z tego nie będzie.
Pewnie będzie można na palcach jednej ręki policzyć projekty, które użyją tego syscalla (pewnie Chromium, może jakieś VMki).
Dzisiaj 99% software’u dynamicznie alokuje/zwalnia pamięć, zatem jest niekompatybilne z mseal.
Osobiście wolałbym pledge, ale wątpię, żeby kiedykolwiek został zaimplementowany w kernelu.
Co daje ten argument o 99% softu? Tyle samo nie używa pewnie AVX, SMP i RT. Wprowadził to ktoś od Chromium. Na tym chyba polega wolne/otwarte oprogramowanie. Oczywiście musiał zderzyć się z komisją, żeby nie musieć tego samemu utrzymywać.
Możesz mieć pledge, jeśli udasz się drogą Filistyna.
Mnie ten art zainspirował przemyśleniami o tym, czy dzisiaj musi istnieć kernel i user space. Czy można oprzeć system na samych atrybutach obszarów pamięci w tej samej przestrzeni adresowej. To by dawało dużo nowych, ciekawych możliwości. Oczywiście poszedłem w jakieś ekstremum w stylu system jako corewars. Ale można pokusić się nawet o system o wielu procesach zarządzających, konkurujących ze sobą.
Z tego co widzę, nie da się wyłączyć tego syscalla, więc kernel znowu się powiększył, a skorzysta na tym tylko kilka projektów.
AVX skaluje się lepiej, bo może go użyć biblioteka (chociażby kodek audio/video), o czym nie muszą nawet wiedzieć linkujące z nią programy.
Nie można tego powiedzieć o mseal, bo biblioteka wtedy powodowałaby albo wyciek pamięci, albo nie dałoby się jej zamknąć.
SMP można wyłączyć w biosie i kernelu. W praktyce zarządza tym transparentnie kernel (eksponując dodatkowe rdzenie logiczne).
Taki system bez kernela na pewno byłby mniej wydajny. Procesy musiałyby ustalać między sobą dostęp do każdego zasobu.
Mi nie chodziło o to czy da się coś wyłączyć. Tylko, że jest dużo niszowych rozwiązań. Zgodnie z teorią, że bogatego oprogramowania nikt nie używa w 100%. Każdy używa swojego 10%. Dla każdego jest to inne 10%.
Tego syscalla może używać też jakaś biblioteka. W tym prawdziwy system operacyjny - przeglądarka.
Poszedłeś jeszcze dalej niż ja. Myślałem, że musiałby istnieć jakiś nanokernel obsługujący przerwania i wyjątki, który zdejmuje ograniczenia i przekazuje je do procesu zarządzającego.
Jednak twoje obawy przypominają obawy ludzi od Multicsa wobec *nixa.
W przemyśleniach mam jeszcze zamiast kolejek procesów to łańcuchy procesów. W sumie już coś takiego robiłem ze dwa razy.
Czyli już na starcie wiadomo, że nic z tego nie będzie.
Pewnie będzie można na palcach jednej ręki policzyć projekty, które użyją tego syscalla (pewnie Chromium, może jakieś VMki).
Dzisiaj 99% software’u dynamicznie alokuje/zwalnia pamięć, zatem jest niekompatybilne z mseal.
Osobiście wolałbym
pledge
, ale wątpię, żeby kiedykolwiek został zaimplementowany w kernelu.Co daje ten argument o 99% softu? Tyle samo nie używa pewnie AVX, SMP i RT. Wprowadził to ktoś od Chromium. Na tym chyba polega wolne/otwarte oprogramowanie. Oczywiście musiał zderzyć się z komisją, żeby nie musieć tego samemu utrzymywać.
Możesz mieć
pledge
, jeśli udasz się drogą Filistyna.Mnie ten art zainspirował przemyśleniami o tym, czy dzisiaj musi istnieć kernel i user space. Czy można oprzeć system na samych atrybutach obszarów pamięci w tej samej przestrzeni adresowej. To by dawało dużo nowych, ciekawych możliwości. Oczywiście poszedłem w jakieś ekstremum w stylu system jako corewars. Ale można pokusić się nawet o system o wielu procesach zarządzających, konkurujących ze sobą.
Z tego co widzę, nie da się wyłączyć tego syscalla, więc kernel znowu się powiększył, a skorzysta na tym tylko kilka projektów.
AVX skaluje się lepiej, bo może go użyć biblioteka (chociażby kodek audio/video), o czym nie muszą nawet wiedzieć linkujące z nią programy.
Nie można tego powiedzieć o mseal, bo biblioteka wtedy powodowałaby albo wyciek pamięci, albo nie dałoby się jej zamknąć.
SMP można wyłączyć w biosie i kernelu. W praktyce zarządza tym transparentnie kernel (eksponując dodatkowe rdzenie logiczne).
Taki system bez kernela na pewno byłby mniej wydajny. Procesy musiałyby ustalać między sobą dostęp do każdego zasobu.
Mi nie chodziło o to czy da się coś wyłączyć. Tylko, że jest dużo niszowych rozwiązań. Zgodnie z teorią, że bogatego oprogramowania nikt nie używa w 100%. Każdy używa swojego 10%. Dla każdego jest to inne 10%.
Tego syscalla może używać też jakaś biblioteka. W tym prawdziwy system operacyjny - przeglądarka.
Poszedłeś jeszcze dalej niż ja. Myślałem, że musiałby istnieć jakiś nanokernel obsługujący przerwania i wyjątki, który zdejmuje ograniczenia i przekazuje je do procesu zarządzającego.
Jednak twoje obawy przypominają obawy ludzi od Multicsa wobec *nixa.
W przemyśleniach mam jeszcze zamiast kolejek procesów to łańcuchy procesów. W sumie już coś takiego robiłem ze dwa razy.