To, co powiedział Douglas, jest w pełni poprawne, Linux to monolithic, a moduł może zrobić wszystko. Jest to wybór wzorowany głównie na Linus Thorvaldsie i pasuje do filozofii Open Source (dlaczego ograniczać, to kosztuje wydajność i można zobaczyć, co moduł robi ze źródła - praktycznie mówiąc tylko dla prawdziwych frajerów :-) -).
Teraz może trzeba załadować niektóre tak zwane moduły binarne od stron trzecich. Nawet jeśli wydają się być skompilowane, zwykle istnieje wspólny plik obiektowy jako czarna skrzynka i tylko interfejsy dookoła są w rzeczywistości skompilowane (jak w przypadku sterowników graficznych nvidii, których używam). Nie ma jednoznacznej odpowiedzi, jeśli ładujesz takie moduły, musisz zaufać sprzedawcy, jeśli nie, nie rób tego ...
Tylko root może ładować moduły, które korygują teorię. W praktyce jednak żaden system nie jest doskonały (nawet Linux). Od czasu do czasu występują luki w jądrze, które mogą umożliwić użytkownikom lokalnym lub zdalnym użytkownikom (bardzo rzadkim przypadkom) wprowadzenie kodu do jądra, aby mogli oni rootować prawa, a tym samym przejąć kontrolę nad systemem. Posiadanie kernela na bieżąco jest dobrą rzeczą ...
Po zakończeniu tego procesu przejdźmy do drugiej części pytania, na które dotychczas nie udzielono odpowiedzi: "do jakich funkcji programiści mają dostęp, które mogłyby zostać użyte w złych celach?". Wiele z tych rzeczy, które są zrobione dla SE-Linux może być również wykorzystane do złych celów, jak:
- Ukrywanie informacji w
/proc
lub /sys
katalogów, na przykład ukrywając złośliwe procesy użytkownika, nie są więc wyświetlane w narzędziach jak top
, ps
i tak dalej. Obejmuje to ukrywanie samego złośliwego modułu, więc nie jest wymienione w lsmod
.
- rejestrowanie i zapisywanie naciśnięć klawiszy ...
- wysyłanie danych do świata zewnętrznego. Żaden moduł jądra nie musi łączyć się z witryną i wysyłać informacji (z wyjątkiem stosu sieciowego w oryginalnym kodzie linuxowym), jeśli kod modułu powoduje, że coś źle pachnie. Jeśli niektóre ciągi są szyfrowane i odszyfrowywane dokonać pewnych operacji pachnie jeszcze gorzej ...
- ...
Lista jest duża, jeśli chcesz więcej szczegółów można rzucić okiem na Rootkit Hunter (http://www.rootkit.nl/projects/rootkit_hunter.html). To narzędzie, które uruchamiam od czasu do czasu. Może wykryć obecność niektórych szeroko używanych rootkits. Zarządza listą rootkitów, a wpisanie go na listę da ci pewność, jakie cele są celem tych bestii ... Tak jak powiedział Douglas, funkcje, które można wykorzystać, to w rzeczywistości wszystkie funkcje dostępne w jądrze, bez ograniczeń. Mówienie, czy moduł jest złym, czy nie, nie jest oczywiste.
Zakładasz tylko (fizycznego i zgodnie z prawem) administratora urządzenia ma uprawnienia root, który nie jest dość często zdarza. :) LKMs mogą robić rzeczy, o których root nic nie wie. –