Pierwsza stabilna wersja sudo-rs została już wydana

sudo

Implementacja sudo i su w Rust ma na celu poprawę bezpieczeństwa w tych narzędziach.

Trzy miesiące temu dzieliliśmy się na naszym blogu informacją o utworzeniu projektu „Sudo-rs” przez ISRG, organizację będącą założycielem projektu Let's Encrypt i promującą rozwój technologii zwiększających bezpieczeństwo Internetu.

W publikacji tej podzieliliśmy się niektórymi szczegółami i charakterystyką projektu, którego zasadniczym celem jest stworzenie implementacji narzędzi SUDO i SU w języku Rust (publikację można przeczytać pod poniższym linkiem ).

Pierwsza stabilna wersja sudo-rs

Powodem, dla którego o tym wspominam, jest fakt, że niedawno uruchomiono pierwszą stabilną wersję projektu Sudo-rs , w którego rozwoju uczestniczyli inżynierowie z Ferrous Systems i Tweede Golf, a finansowanie zapewnili Google, Cisco i Amazon Web Services.

Dla tych, którzy nie znają projektu „Sudo-rs”, mogę powiedzieć, że jego celem jest rozwijanie wersji narzędzi SUDO i SU w języku Rust, przeznaczonych do wykonywania poleceń w imieniu innych użytkowników, ponieważ SUDO jest narzędziem konsolowym w systemach operacyjnych typu Unix, które umożliwia wykonywanie poleceń z uprawnieniami innego użytkownika, domyślnie superużytkownika root.

Funkcje `sudo` i `su` w `sudo-rs` zostały napisane od podstaw w języku Rust, który jest coraz częściej używany i polecany w branży, ponieważ stał się jednym z głównych języków programowania dla Androida, a nawet obsługuje go jako drugorzędny język programowania w jądrze Linuksa. Microsoft ze swojej strony również wielokrotnie wspominał o zamiarze przepisania jądra i niektórych zawartych w nim bibliotek systemu Windows.

Wspomniano, że narzędzia te są w miarę możliwości kompatybilne z klasycznymi narzędziami SUDO i SU , co pozwala na używanie sudo-rs jako transparentnego zamiennika SUDO w typowych scenariuszach , które odpowiadają domyślnej konfiguracji /etc/sudoers w Ubuntu i Debianie. Sudo-rs został już zaimplementowany w miejsce tradycyjnego pakietu SUDO w dystrybucji Wolfi Linux, aby zapewnić najwyższy poziom bezpieczeństwa.

Zastosowanie języka Rust do rozwoju SU i SUDO ma na celu ograniczenie ryzyka wystąpienia luk w zabezpieczeniach spowodowanych niebezpiecznym przetwarzaniem pamięci oraz wyeliminowanie występowania błędów, takich jak próba dostępu do obszaru pamięci po jego zwolnieniu i wyczerpanie pamięci na granicach buforów.

Ponadto, aby zapewnić odpowiedni poziom bezpieczeństwa, projekt opracował rozszerzony zestaw testów , który pozwala również na monitorowanie utrzymania wymaganego poziomu zgodności z oryginalnym narzędziem sudo. Aby zmniejszyć powierzchnię ataku i liczbę potencjalnych luk w zabezpieczeniach sudo-rs, zdecydowano się zrezygnować z implementacji rzadko wykorzystywanej funkcjonalności sudo.

Wśród różnic w stosunku do SUDO należy wymienić uwzględnienie domyślnego trybu use_pty, wśród zasadniczo niezaimplementowanych funkcji znajdują się mail_badpass oraz zgodność z sendmail, natomiast funkcje, które nie zostały jeszcze zaimplementowane, ale zostaną dodane w przyszłości: narzędzie sudoedit, tryby NOEXEC i NOINTERCEPT, obsługa łączenia „domyślnych” bloków konfiguracji z poszczególnymi użytkownikami i poleceniami, możliwość uwierzytelniania bez użycia PAM.

Warto wspomnieć, że w tym miesiącu wrzesień ma być w stanie potwierdzić jakość wdrożenia oraz że planowany jest również niezależny audyt bazy kodu sudo-rs.

Dodatkowo wspomniano, że druga wersja ma dodać narzędzia do pracy w środowiskach wielodostępnych , takie jak tryb NOEXEC, dzienniki audytu, możliwość mapowania hostów przez sudoers oraz obsługę do 16 grup użytkowników. Trzecia wersja ma być zgodna z konfiguracją sudoers używaną w Fedorze, a także zawierać narzędzie sudoedit oraz mechanizmy SELinux i AppArmor w celu zwiększenia bezpieczeństwa.

Na koniec , jeśli chcesz dowiedzieć się więcej na ten temat , możesz znaleźć szczegóły pod poniższym linkiem.


Dodaj jako preferowane źródło w Google