Moje pytanie dotyczy uprawnień systemu plików (w szczególności uprawnień w stylu uniksowym) i ich związku z bezpieczeństwem.
Powiedzmy, że mam dostęp do komputera z kontem gościa i użytkownikiem o imieniu Bob. Nie znam hasła Boba, ale mogę korzystać z konta gościa. Konto gościa nie ma absolutnie żadnych uprawnień do odczytu dla wszystkich plików Boba, więc nie mogę odczytać żadnego z plików Boba, gdy jestem zalogowany jako gość.
Jednak z prawdziwej perspektywy „przeciwnika” mam pełny dostęp do tego niezaszyfrowanego dysku. Mogę to zobrazować, zapisać na później, uruchomić inny system operacyjny, aby po prostu odczytać pliki Boba, ignorując ustawienia uprawnień systemu plików.
Z tego dochodzę do pytania:
- Ustawienie uprawnień systemu plików na niezaszyfrowanym dysku to tylko flaga, prawda? I jedyną rzeczą, która powstrzymuje mnie przed czytaniem plików, do których nie mam uprawnień, jest fakt, że system operacyjny powie „Och, nie możesz tego odczytać, nie masz pozwolenia”. Ten plik jest nadal na dysku w surowej formie i mogłem to odczytać, po prostu ignorując flagi systemu plików (powiedzmy, przez jakiś podejrzany bootowalny system operacyjny, który po prostu ignoruje uprawnienia). Czy to wszystko jest poprawne?
Teraz powiedz, że nie mam bezpośredniego dostępu do dysku i po prostu ssh-s do komputera. Nie mam uprawnień do odczytu żadnego z plików Boba. Naprawdę nic nie mogę na to poradzić, prawda?
- Biorąc pod uwagę moje ograniczone uprawnienia, po prostu nie mogę uzyskać dostępu do plików Boba bez względu na to, jak bardzo się staram, nie? Co jeśli użyję jakiegoś exploita, aby uzyskać dostęp do roota? Czy mogę teraz ominąć flagi uprawnień systemu operacyjnego? Czy to się kiedykolwiek zdarza?
Odpowiedzi:
Krótsza odpowiedź.
Jeśli masz fizyczny dostęp do systemu komputerowego - komputera lub systemu przechowywania danych - a jedyną dostępną „ochroną” są uprawnienia do plików, nie masz 100% ochrony.
Te niezaszyfrowane dane można skopiować i sklonować przy minimalnym wysiłku przy użyciu prawie żadnych narzędzi innych niż posiadanie innego urządzenia, które można podłączyć do dysku systemowego w celu wykonania kopii danych.
I tak, potencjalnie niektóre dowodowe aspekty fizycznej penetracji mogą wymagać uwzględnienia w dostępie na poziomie fizycznym; na przykład upewnienie się, że nie pozostały żadne odciski palców, a plomby „widoczne dla manipulacji” również zostały usunięte. Ale szczerze mówiąc, ogromna większość istniejących systemów może mieć fizycznie usunięte dyski w celu fizycznej kopii danych, a użytkownik końcowy nigdy się nie dowie. Jeśli masz dysk, masz dysk, a następnie masz dane, jeśli są niezaszyfrowane.
Właśnie dlatego szyfrowanie na użytkownika lub szyfrowanie całego dysku jest obecnie tak wielką sprawą; laptopy i inne przenośne urządzenia komputerowe są obecnie tak dużą częścią rynku, że ryzyko utraty danych w wyniku kradzieży urządzenia lub przypadkowego wypożyczenia komputera jest znacznie wyższe niż kiedykolwiek wcześniej.
Jeśli dysk nie jest zaszyfrowany, dane na nim są otwartą książką gotową do odczytu. Ta koncepcja nie ogranicza się do maszyn z systemem Linux / Unix, ale do dowolnego systemu operacyjnego w dowolnym miejscu; jeśli masz fizyczny dostęp do niezaszyfrowanego systemu, masz ten system.
To powiedziawszy, uprawnienia do plików są użytecznym środkiem bezpieczeństwa dla zdalnych serwerów wszelkiego rodzaju.
Dłuższa odpowiedź.
Po pierwsze, pamiętaj, że bezpieczeństwo na komputerach - i wszystko - jest naprawdę tylko środkiem odstraszającym, który spowalnia rzeczy i niekoniecznie zapewnia absolutne bezpieczeństwo.
Na przykład najsłabszym zabezpieczeniem w jakimkolwiek budynku fizycznym są drzwi, które musisz otworzyć, wchodząc / wychodząc, lub okno, które musisz otworzyć, aby wpuścić powietrze. Tak, możesz zamknąć drzwi i okna i ustawić alarmy, ale jeśli ktoś naprawdę chce mieć dostęp do czegoś - i ma czas, zasoby, bogactwo i wysiłek, aby je realizować - będzie miał do niego dostęp.
Problemem jest tutaj kontekst dostępu. Jeśli masz fizyczny dostęp do komputera, prawie wszystko jest możliwe. Ale jeśli łączysz się tylko przez połączenie zdalne - poprzez jakąś sieć - własność systemu plików jest zdecydowanie skuteczną metodą bezpieczeństwa. W przypadku serwerów Linux / Unix uprawnienia i własność są skutecznymi formami bezpieczeństwa zapobiegającymi zdalnej ingerencji.
Dlatego w świecie Linux / Unix
root
dostęp do zdalnego systemu jest uważany za tak wielką nagrodę. Wejdźroot
do zdalnego systemu, a wtedy naprawdę zrobiłeś coś, co daje ci większy dostęp bez konieczności wchodzenia do centrum danych i klonowania dysku.Tak. Dokładnie. Jeśli masz fizyczny dostęp do automatu, to - jak wyjaśniono na wstępie - wszystkie zakłady są wyłączone. Możesz uzyskać dostęp do plików i katalogów należących do innych, tworząc obraz dysku - lub nawet po prostu przeglądając surową zawartość samego dysku - bez większego wysiłku technicznego.
Każdy, kto - na przykład - pożyczy ci swój komputer osobisty i założy nowe konto tylko dla ciebie, nie myśląc o tym scenariuszu, w zasadzie rozdaje wszelkie dane osobowe, które ma na swoim komputerze, nie wiedząc o tym.
Nieco styczna, ale myślę, że właśnie dlatego tak wielu zwykłych użytkowników przekazuje stare komputery bez najmniejszego wysiłku, aby wyczyścić dane na dysku. Ustawiają hasło użytkownika i zakładają, że utrzymywali bezpieczeństwo swoich danych do tego stopnia, że mogli po prostu wrzucić dysk do kosza i nie myśleć dwa razy. Gdy w rzeczywistości nie ma prawdziwego szyfrowania ani czyszczenia danych, każdy dysk wyrzucony do kosza lub sprzedany używany może być odczytany przez każdego w dowolnym miejscu bez większego wysiłku lub głębokiego wysiłku technicznego.
źródło
Twoje trzy punkty:
Jeśli korzystasz z SSH jako zwykły użytkownik, nie masz dostępu do surowego urządzenia dyskowego. Zwykle potrzebujesz
root
lub masz pozwolenie na dostęp do surowych i logicznych urządzeń dyskowych.Jeśli zrootujesz się przez exploita, jesteś najpotężniejszym użytkownikiem w systemie i masz dostęp do większości wszystkiego, w tym urządzenia. Ponieważ jesteś rootem, możesz bezpośrednio uzyskiwać dostęp do plików Boba, więc nie musisz uzyskiwać dostępu do urządzenia dyskowego.
Fizyczny dostęp bije
root
. Korzeń jest warstwą logiczną. Możesz go zignorować, uzyskując fizyczny dostęp do dysku. Obejmuje to ładowanie wspomnianego dysku do oddzielnego systemu operacyjnego, w którym jesteś rootem.Oczywiście systemy powinny być zabezpieczone przed
root
exploitami, ale nowe exploity pojawiają się codziennie. Żaden system nie jest w 100% bezpieczny, ale możesz go zabezpieczyć ze względów praktycznych, ograniczając dostęp.Oczekuje się, że uprawnienia systemu plików będą działać tylko w sytuacjach ograniczonego dostępu użytkownika, w których system operacyjny nie zostanie naruszony. Jest to system „bądź uczciwy (i typowy) dla użytkowników”, jak zamki rowerowe. Działa, aby zapobiegać „przestępstwom możliwości” bardziej niż zawodzić bezpieczną całkowitą ochronę.
źródło
open(2)
. np.linkat(2)
pozwala utworzyć pozycję katalogu dla otwartego deskryptora pliku, ale tylko wtedy, gdy liczba linków nie jest już równa zero, więc proces, który otrzymuje otwartą FD dla usuniętego pliku, nie może połączyć go z powrotem z systemem plików. Oczywiście atakujący uzyskujący dostęp do roota lub dostępu fizycznego oznacza, że jesteś tostem. Szyfrowanie pomaga w fizycznym, ale nie tak bardzo rootowaniu.