Projekt Landrun rozwija nieuprzywilejowany system izolacji aplikacji.

Projekt Landrun rozpoczął rozwój nowego systemu do izolowanego uruchamiania poszczególnych aplikacji. Do izolacji wykorzystywany jest moduł jądra Linux LSM Landlock, który pozwala na stworzenie środowiska sandbox bez wykonywania operacji z uprawnieniami uprzywilejowanymi. Pod względem funkcjonalności Landrun jest podobny do narzędzia Firejail, ale wyróżnia się prostszą realizacją, niewielką wagą oraz możliwością działania jako zwykły użytkownik bez potrzeby użycia flagi suid. Kod projektu został napisany w języku Go i jest dystrybuowany na licencji GPLv2.

Mechanizm Landlock pozwala programom bez uprawnień na ograniczenie użycia obiektów jądra Linux, takich jak hierarchie plików, gniazda sieciowe i ioctl. W przeciwieństwie do przestrzeni nazw i filtracji wywołań systemowych, izolowane środowisko jest tworzone przez jądro Linux w formie dodatkowej warstwy nad istniejącymi mechanizmami zarządzania dostępem. Do interakcji z podsystemem Landlock w narzędziu landrun wykorzystywana jest biblioteka go-landlock od twórców LandLock.

Landrun pozwala na zmniejszenie ryzyka kompromitacji głównego systemu podczas uruchamiania zaufanych lub potencjalnie wrażliwych programów. Wśród możliwości wyróżnia się wsparcie dla selektywnego ograniczania dostępu na poziomie poszczególnych katalogów, przypinanie uprawnień do ścieżek plików (zezwolenie lub zakaz na odczyt, zapis i wykonanie) oraz kontrola nad inicjowaniem i odbieraniem połączeń TCP.

Na przykład, przy pomocy Landrun można zabronić procesowi uruchamiania plików wykonywalnych, zezwolić na zapis tylko w określonym podkatalogu z danymi, zabronić tworzenia gniazd nasłuchujących dla połączeń sieciowych oraz zezwolić na wysyłanie zapytań sieciowych tylko do wskazanych portów TCP. W najprostszej formie, aby zabronić zapisu, uruchamiania i możliwości sieciowych, program można wykonać komendą „landrun —ro /”, a aby zainstalować nginx, można użyć: landrun —rox /usr/bin —ro /lib,/lib64,/var/www —rwx /var/log —bind-tcp 80,443 /usr/bin/nginx

W planach na przyszłość przewiduje się rozszerzone zarządzanie dostępem do systemu plików, wsparcie dla UDP oraz zarządzanie zasobami procesów. Do ograniczenia dostępu na poziomie systemu plików wymagane jest co najmniej jądro Linux 5.13, a do ograniczeń sieciowych — 6.8.

Dodatkowo warto zauważyć, że do bazy kodu Firejail wprowadzono już zmiany umożliwiające korzystanie z podsystemu jądra Landlock do izolacji bez bitu suid i podnoszenia uprawnień, ale wydanie z tą obsługą nie zostało jeszcze opublikowane.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster