W jakim stopniu możemy polegać na uprawnieniach systemu plików dla bezpieczeństwa?

31

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:

  1. 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?

  1. 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?
kok
źródło
4
tak i tak. wydaje się, że rozumiesz powiązane pojęcia poprawnie. Eskalacja ataku uprzywilejowanego będzie wymagana w celu ominięcia uprawnień, jeśli nie możesz uzyskać fizycznego dostępu do systemu.
Frank Thomas
2
Czy nie byłoby dobrym pomysłem migracja tego do Security.SE ? Wydaje się, że jest to bardziej logiczne miejsce.
Chris Cirefice,
3
@ChrisCirefice Głębsze zgłębienie koncepcji bezpieczeństwa uzasadniałoby migrację. Jest to jednak bardzo podstawowe pytanie dotyczące zrozumienia uprawnień systemu plików i ich szczególnej roli w koncepcji bezpieczeństwa systemu, więc dotyczy to tego superużytkownika o wiele bardziej.
JakeGould

Odpowiedzi:

31

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 użytecznym środkiem bezpieczeństwa dla zdalnych serwerów wszelkiego rodzaju.

Dłuższa odpowiedź.

Moje pytanie dotyczy uprawnień systemu plików (w szczególności uprawnień w stylu uniksowym) i ich związku z bezpieczeństwem.

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.

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ść.

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 rootdostęp do zdalnego systemu jest uważany za tak wielką nagrodę. Wejdź rootdo 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.

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.

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.

JakeGould
źródło
6
Myślę, że ta odpowiedź pomija coś raczej oczywistego, o czym warto wspomnieć. Bezpieczeństwo to nie tylko bezpieczeństwo obliczeniowe. Modele zagrożeń mają również znaczenie, ponieważ atakujący są ludźmi: atakujący zazwyczaj chcą unikać pozostawiania śladów. Jeśli dasz komuś fizyczny dostęp do urządzenia, ale robisz to w taki sposób, że nie można go manipulować bez pozostawiania śladu (od odcisków palców przez znaczniki sabotażu do zniszczenia urządzenia podczas manipulacji), to może rzeczywiście wzrosnąć bezpieczeństwo twojego systemu, mimo że dane są fizycznie dostępne.
Mehrdad
@ Mehrdad Ten komentarz może mieć sens w szerszej dyskusji na temat bezpieczeństwa i ochrony przed dostępem, ale to pytanie - i moja odpowiednia odpowiedź - koncentrują się na ogólnych koncepcjach logicznych uprawnień systemu plików w porównaniu z podstawowym fizycznym dostępem do systemu. W takim przypadku obawy dotyczące odcisków palców i twórców manipulacji są jedynie domniemaniem scenariusza fantasy. Jeśli ktoś ma fizyczny dostęp do niezaszyfrowanych danych, ma fizyczny dostęp do niezaszyfrowanych danych i 9 razy na 10 nie musi być „głównym złodziejem / szpiegiem”, aby uzyskać dostęp do tych danych w tym momencie.
JakeGould,
15

Twoje trzy punkty:

  1. Jeśli korzystasz z SSH jako zwykły użytkownik, nie masz dostępu do surowego urządzenia dyskowego. Zwykle potrzebujesz rootlub masz pozwolenie na dostęp do surowych i logicznych urządzeń dyskowych.

  2. 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.

  3. 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 rootexploitami, 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ę.

cde
źródło
Reguły uprawnień FS są dość solidne. Oni pracować tak długo, jak nie atakujący ma korzenie. Semantyka systemu plików POSIX (i rozszerzenia specyficzne dla Linuksa) są starannie zaprojektowane, aby nie otwierać więcej dostępu, niż można uzyskać za pomocą samego 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.
Peter Cordes