Inżynier SUSE, Nikolay Borisov, rozesłał dziś zestaw łatek dla „ia32_disabled”, które umożliwiłyby wyłączenie obsługi 32-bitowych procesów x86 w systemach Linux x86_64. Jako pierwszy krok byłaby to opcja czasu rozruchu, gdy ustawiono „ia32_disabled”.

SUSE jest zainteresowany możliwością wyłączenia warstwy kompatybilności IA32, a proponowane poprawki umożliwiłyby wyłączenie 32-bitowych wywołań systemowych w jądrach 64-bitowych, a także wyłączenie procesów 32-bitowych.

Przyznają jednak, że 32-bitowe starsze oprogramowanie jest nadal w użyciu, więc na razie jest to opcja czasu rozruchu za pomocą opcji jądra „ia32_disabled”, a ostatecznie może być oferowana jako kompilacja Kconfig-przełącznik czasowy, jeśli chcesz całkowicie wyłączyć 32-bitowe wywołania systemowe i obsługę procesów.

Komentarze poprawki zawierają:

„Dystrybucje chciałyby jak najbardziej ograniczyć swoją powierzchnię ataku, ale jednocześnie muszą obsłużyć szeroką gamę starszego oprogramowania. Jedną z takich dróg, w których dystrybucje muszą zachować równowagę, jest obsługa 32-bitowych wywołań systemowych na jądro 64-bitowe. Idealnie byłoby, gdybyśmy mieli możliwość wyłączenia obsługi zgodności podczas uruchamiania systemu. Pozwoliłoby to na delegowanie decyzji, czy należy ją wyłączyć/włączyć, do administratorów systemu.

W oprócz wyłączenia 32-bitowego interfejsu syscall wyłączmy także możliwość uruchamiania procesów 32-bitowych. Osiąga się to poprzez ustawienie deskryptora GDT_ENTRY_DEFAULT_USER32_CS na nieobecny, co spowodowałoby pułapkę procesów 32-bitowych z wyjątkiem #NP. Ponadto zabrania się ładowania procesów kompatybilnych.”

Seria poprawek jest obecnie sprawdzana na LKML. Interesujące będzie obserwowanie, jak rozwija się ta praca i jak bardzo inni dostawcy są zainteresowani opcjonalnym wyłączeniem obsługi procesów 32-bitowych.

Categories: IT Info