Co to jest chroot w systemie Linux i jak to działa?

Co to jest chroot w systemie Linux i jak to działa?
Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Czy chcesz uruchamiać aplikacje lub usługi w odizolowanej przestrzeni w systemie Linux? A może chcesz przetestować i debugować aplikację bez ingerencji w resztę systemu? Jeśli tak, będziesz chciał dowiedzieć się o chroot, potężnym mechanizmie wbudowanym w Linuksa, który pozwala ci stworzyć osobne środowisko w twoim systemie.





WYKORZYSTAJ WIDEO DNIA PRZEWIŃ, ABY KONTYNUOWAĆ TREŚĆ

Przyjrzyjmy się szczegółowo chrootowi, poznajmy jego zalety, przypadki użycia, jak skonfigurować go w systemie Linux, aw razie potrzeby, jak z niego uciec.





Co to jest chroot w Linuksie?

  demonstracja polecenia chroot

chroot lub change-root to prawdopodobnie jedna z najłatwiejszych i najstarszych form oprogramowania do konteneryzacji, która pozwala użytkownikowi na bezpieczne sandboxowanie aplikacji i usług. Piaskownica, w kategoriach komputerowych, to proces izolowania programu w ograniczonej przestrzeni z wcześniej zdefiniowanymi zasobami.





Jeśli jesteś zaznajomiony z Docker i jak to działa , możesz myśleć o chroot jako o bardzo uproszczonej wersji tego programu. chroot działa poprzez zmianę katalogu głównego programu, ograniczając dostęp i widoczność, a tym samym zapewniając dodatkową warstwę izolacji i bezpieczeństwa.

Zasadniczo tworzysz oddzielny katalog, kopiujesz wszystkie zależności programu do nowego katalogu, a następnie uruchamiasz polecenie chroot. Pozwala to programowi działać poprawnie bez dostępu do podstawowego systemu plików.



chrootowanie programu to świetny sposób na przetestowanie jego niezawodności w bezpiecznej przestrzeni bez zmiany rzeczywistych plików systemowych. Co więcej, możesz również zmniejszyć ryzyko bezpieczeństwa spowodowane przez przejęty pakiet, ponieważ w środowisku z chroot, przejęty pakiet nie będzie mógł uzyskać dostępu i modyfikować wrażliwych plików systemowych.

Program będzie mógł uzyskiwać dostęp i przeglądać tylko pliki zaimportowane do katalogu chroot, znanego również jako „więzienie chroot”. Dzięki temu program i jego podprocesy nie zakłócają działania systemu podstawowego.





Co to jest więzienie chroot?

Więzienie chroot to odizolowane środowisko, w którym rezydują i są wykonywane programy chroot. Termin więzienie chroot wywodzi się z koncepcji, że proces i jego podprocesy w środowisku chroot nie mają dostępu ani wglądu do podstawowego systemu plików i są uwięzione w granicach chroot z wcześniej określonymi zasobami.

Teraz, gdy koncepcja chroot jest dla ciebie jasna, weźmy się w garść i nauczmy się, jak stworzyć więzienie chroot i uruchamiać w nim procesy.





jak uzyskać obraz z pliku pdf

Jak stworzyć więzienie chroot i uruchamiać w nim programy

  chrootowanie katalogu i spawnowanie bash-1

Więzienie chroot to zasadniczo katalog zawierający wszystkie wymagane zasoby, pliki, pliki binarne i inne zależności, których program potrzebuje do prawidłowego działania.

Jednak w przeciwieństwie do zwykłego środowiska Linux, środowisko chroot jail jest bardzo ograniczone, a program nie może uzyskać dostępu do zewnętrznych lub dodatkowych plików i zasobów systemowych.

Na przykład, aby uruchomić powłokę Bash w więzieniu chroot, musisz skopiować plik binarny Bash i wszystkie jego zależności do katalogu chroot.

Oto kroki, aby utworzyć więzienie chroot i odrodzić powłokę Bash:

  1. Aby program działał pomyślnie, musisz skopiować wszystkie jego zależności do katalogu z chrootem. Znajdźmy plik binarny, w tym przypadku Bash, i lokalizację wszystkich jego zależności za pomocą poleceń who i ldd:
     which bash 
    ldd /usr/bin/bash
  2. Teraz, gdy znasz lokalizację pliku binarnego i jego zależności, skopiuj je do katalogu, który chcesz przekształcić w więzienie chroot. Za pomocą polecenia mkdir utwórz niezbędne katalogi i using polecenie cp , skopiuj wszystkie pliki do odpowiednich katalogów:
     mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. Wreszcie, po skopiowaniu programu i jego zależności, możesz uruchomić polecenie chroot z podwyższonymi uprawnieniami, używając przedrostka sudo, aby odrodzić środowisko chroot w wybranym katalogu. Domyślnie odrodzi powłokę Bash. Oto polecenie do wpisania:
     sudo chroot directory_name

To wszystkie kroki, aby odrodzić więzienie chroot i uruchomić w nim program.

Jak wydostać się z więzienia chroot

Chociaż więzienia chroot są dobre do testowania niestabilnego oprogramowania, są również przydatne podczas obsługi połączeń SSH, ponieważ chrootowanie podłączonych użytkowników jest jednym z wielu sposoby zabezpieczenia serwera SSH .

Z drugiej strony, jeśli jesteś testerem penetracyjnym i zalogowałeś się na serwerze SSH swojego celu, stwierdzenie, że jest to środowisko z chrootem, może być frustrujące i wydawać się ślepym zaułkiem.

Istnieje jednak wiele sposobów na ucieczkę z źle skonfigurowanego więzienia chroot, niektóre wymagają umiejętności programowania w języku C, podczas gdy inne można zautomatyzować za pomocą narzędzi. Kilka łatwych sposobów na ucieczkę od chroota to:

  • Zagnieżdżone wywołania chroot
  • Zagnieżdżone wywołania chroot z zapisanym deskryptorem pliku
  • Zamontuj metodę roota
  • ucieczka procfs
  • droga ucieczki

Pamiętaj, że aby wykonać ucieczkę chroot przy użyciu którejkolwiek z tych metod, musisz mieć eskalowane uprawnienia w systemie. Dowiedz się więcej o tych metodach ucieczki, przechodząc do repozytorium GitHub firmy chw00t , narzędzie do automatyzacji ucieczki chroot.

Teraz wiesz wszystko o chroot w systemie Linux

Teraz, gdy wiesz, czym jest chroot, jak działa i jak go wdrożyć, powinieneś być w stanie bez wysiłku uruchamiać aplikacje w piaskownicy z poziomu terminala. Pamiętaj, że jak wiesz, istnieje wiele sposobów na wyrwanie się z chrootowanego środowiska.

To pokazuje, że chroot nie został w żaden sposób zaprojektowany do implementacji jako funkcja bezpieczeństwa. Dlatego powinieneś używać chroot z dużą ostrożnością, ponieważ niewłaściwa konfiguracja może zakończyć się odwrotnym skutkiem i zagrozić bezpieczeństwu twojego systemu.

Najlepiej trzymać się dedykowanych rozwiązań piaskownicy, takich jak oprogramowanie do konteneryzacji lub maszyny wirtualne. Oba koncentrują się na piaskownicy i bezpieczeństwie, więc jeśli w mieście nie pojawi się nowy dzień zerowy, nie musisz się martwić o bezpieczeństwo i integralność swojego systemu.

Jeśli nie masz pewności, które oprogramowanie wybrać między oprogramowaniem do konteneryzacji a oprogramowaniem do wirtualizacji, wypróbuj oba i przekonaj się, które z nich jest lepsze.