Kiedy instaluję program taki jak GIMP lub LibreOffice w systemie Linux, nigdy nie pytam o uprawnienia. Czy instalując program w systemie Ubuntu, wyraźnie udzielam temu programowi pełnego uprawnienia do odczytu / zapisu w dowolnym miejscu na dysku i pełnego dostępu do Internetu?
Teoretycznie, czy GIMP może odczytać lub usunąć dowolny katalog z mojego dysku, nie wymagając hasła typu sudo?
Jestem ciekawy tylko, czy jest to technicznie możliwe, a nie to, czy jest prawdopodobne, czy nie. Oczywiście wiem, że to mało prawdopodobne.
permissions
security
software-installation
stackinator
źródło
źródło
Odpowiedzi:
Są tutaj dwie rzeczy:
gdy instalujesz program w standardowy sposób (instalator systemu, taki jak apt / apt-get na Ubuntu), zwykle instaluje się go w katalogu, w którym jest dostępny dla wszystkich użytkowników (/ usr / bin ...). Ten katalog wymaga zapisania uprawnień, więc potrzebujesz specjalnych uprawnień podczas instalacji.
kiedy używasz programu, działa on z twoim identyfikatorem użytkownika i może tylko odczytywać lub zapisywać, w których programy wykonane z twoim identyfikatorem mogą czytać lub pisać. W przypadku Gimp odkryjesz na przykład, że nie możesz edytować standardowych zasobów, takich jak pędzle, ponieważ są one udostępnione
/usr/share/gimp/
i że musisz je najpierw skopiować. Pokazuje to również,Edit>Preferences>Folders
gdzie większość folderów występuje w parach, systemowy tylko do odczytu i użytkownika, do którego można pisać.źródło
rm -rf ~/
. Jeśli instalujesz z innych źródeł, musisz zachować ostrożność (lub instalować ze źródła, po sprawdzeniu kodu).Tak, jeśli używasz
sudo
lub ekwiwalentu, dajesz instalatorowi pełne uprawnienia do odczytu / zapisu w dowolnym miejscu na dysku. To w większości to samo. Istnieje również flaga, którą może ustawić instalator, zwana setuid, która spowoduje, że program będzie miał pełne uprawnienia także po instalacji.Nawet jeśli zignorujemy instalator i jeśli program nie jest setuid (bardzo rzadko programy używają setuid), po uruchomieniu program ma pełny dostęp do wszystkiego, do czego twoje konto ma dostęp. Na przykład, jeśli jesteś zalogowany do swojej bankowości internetowej, może ona hipotetycznie wysłać wszystkie twoje środki do Nigerii.
Model bezpieczeństwa - czyli sposób zaprojektowania systemu bezpieczeństwa - w Linuksie jest bardzo stary. Został odziedziczony po Uniksie z lat 60. Wtedy nie było Internetu, a większość ludzi w dziale korzystała z tego samego komputera. Większość twoich programów pochodzi od zaufanych dużych firm. Dlatego system bezpieczeństwa został zaprojektowany w celu ochrony użytkowników przed sobą, a nie w celu ochrony użytkowników przed uruchomionymi programami.
Obecnie jest dość przestarzały. Android oparty jest na Linuksie, ale działa, tworząc osobne „konto użytkownika” dla każdej aplikacji, zamiast dla każdego użytkownika. Nie wiem, czego używa iOS. Wysiłki takie jak Flatpak próbują obecnie przenieść to samo na pulpit Linuksa.
źródło
To, czego chcesz, zapewnia aplikacje Flatpack. Są to w dużej mierze odpowiedniki aplikacji na iOS, Androida lub Windows Store.
Nie korzystałem z nich, więc nie wiem, czy zaimplementowali GUI, aby zobaczyć uprawnienia wymagane przez każdą aplikację, gdy jest ona zainstalowana.
https://blogs.gnome.org/alexl/2017/01/20/the-flatpak-security-model-part-2-who-needs-sandboxing-anyway/
Nie użyłem również alternatywy Ubuntu, Snappy, aby wiedzieć, czy zapewnia ona taką funkcję widoczną w GUI.
źródło
Jest to technicznie możliwe i rozwiązań należą
apparmor
,selinux
ifirejail
lub nawet pełne pojemniki podobaLXC
lub pełną maszynę wirtualną (npVirtualBox
,kvm
lubvmware
). W przypadku sieci istniejeopensnitch
klonlittlesnitch
programu z OSX.Powodem, dla którego nie ma powszechnego modelu bezpieczeństwa z uprawnieniami nadanymi przez użytkownika, jest to, że tradycyjnie zachowujesz ostrożność podczas uruchamiania na komputerze. 90% tego, co znajduje się w aplikacjach systemów mobilnych, byłoby uważane za szkodliwe oprogramowanie na PC.
Istnieją skanery w poszukiwaniu adware (tj. Adaware lub Spybot D&D), które klasyfikowałyby zachowania takie jak łączenie Facebooka, Google Analytics i sieci reklamowych jako szkodliwe oprogramowanie na PC. Jeśli chodzi o te rzeczy, ekosystem mobilny przypomina zrestartowanie komputera. Każdy dołącza adware tylko dlatego, że jest to łatwe i dodaje analizy, tylko dlatego, że jest ciekawy. Skutkami ubocznymi są zmniejszona prywatność i bezpieczeństwo. Część bezpieczeństwa jest uwzględniona w modelu piaskownicy, część prywatności jest nadal otwartym problemem.
Innym powodem, dla którego nie ma się tego długo na komputerze, jest złożoność piaskownicy, co oznacza, że oba mogą być zbyt wolne dla starszych komputerów i wymagały więcej inżynierii w celu uzyskania czegoś, co wtedy miało niewielką przewagę.
Dzisiaj widzimy próby użycia piaskownicy w nowych formatach pakietów, takich jak snap i flatpak, a przeglądarki używają go również do swoich rozszerzeń. Chromium używa modelu uprawnień od samego początku, a Firefox używa go do wszystkich rozszerzeń internetowych (od 57 jedynych rozszerzeń, które można zainstalować). Jest to całkiem rozsądne, ponieważ ludzie instalują rozszerzenia przeglądarki od nieznanych autorów, podobnie jak aplikacje osób, o których nigdy nie słyszeli, sądząc, że nie są bardziej niebezpieczne niż odwiedzana witryna, co jest fatalnym błędem, gdy nie ma piaskownicy, która by ich chroniła.
źródło
Android wykorzystuje model bezpieczeństwa „marketplace”: różne aplikacje pochodzą od różnych (częściowo zaufanych) dostawców i powinny być odizolowane od chronionych zasobów i od siebie nawzajem. Większość aplikacji jest dystrybuowana dla zysku: są sprzedawane (payware), wyświetlają płatne reklamy lub „zarabiają” na swoich użytkownikach, sprzedając swoje dane stronom trzecim. Istnieje silna motywacja do angażowania się w nielegalny dostęp do danych, nawet jeśli zostaną złapani.
Większość aplikacji w Debianie, Red Hacie i podobnych „klasycznych” dystrybucjach Linuksa jest dystrybuowana w formie źródłowej: gdy aplikacje open source uzyskają wystarczającą przyczepność, są ręcznie wybierane do włączenia przez opiekunów dystrybucji. Motywacja do uzyskania nielegalnego dostępu do danych jest niewielka - potencjalne korzyści nie uzasadniają wysiłków.
Warto zauważyć, że zaawansowany model bezpieczeństwa Androida jest jednym z powodów, dla których zyskał tak dużą przyczepność, łatwo pokonując iOS na rynkach mobilnych. Nowoczesne dystrybucje Linuksa na komputery stacjonarne nie są po prostu „inne”, - w rzeczywistości są znacznie opóźnione pod względem modeli bezpieczeństwa i dystrybucji.
Niektóre dystrybucje Linuksa oferują ulepszenia systemu dystrybucji oprogramowania: scentralizowane repozytoria oprogramowania stron trzecich (AUR), specjalistyczne formaty pakietów do dystrybucji oprogramowania firm trzecich (AppImage, Snappy, Flatpack), systemy repozytoriów wtórnych (Docker). Niestety te ulepszenia zyskują z czasem bardzo małą przyczepność: AppImage został wynaleziony w 2004 r., Pierwsza wersja AUR została wydana w 2005 r., Ale żadna z nowoczesnych dystrybucji Linuksa oficjalnie nie przyjęła swoich funkcji po> 10 latach.
źródło
Aplikacje te są instalowane w uprzywilejowanej części systemu plików, do której Ty i większość użytkowników zwykle nie masz dostępu.
W dystrybucjach głównego nurtu skonfigurowanych do użytku na komputerze, pojedynczy użytkownik początkowo skonfigurowany podczas instalacji zwykle ma uprawnienia administratora. Zwykle będą proszeni o podanie własnego hasła logowania do instalacji oprogramowania, i nie zawsze.
Po zainstalowaniu oprogramowanie będzie domyślnie skonfigurowane do wykonywania przez zwykłych użytkowników i umożliwi odczyt plików danych. To wszystko, czego potrzeba.
Nie program. Zdarza się, że konto użytkownika należy do różnych grup, a różne grupy zapewniają dostęp do różnych zasobów.
Model bezpieczeństwa w systemie Linux polega na tym, że twoje konto użytkownika ma określone prawa, a grupy, do których należy twoje konto, mają określone prawa. Prawo do dowolnej części systemu plików wymaga uprawnień roota, które zwykle nie są przyznawane użytkownikom. Nawet jeśli korzystasz z sudo , nie zyskujesz wszystkich praw.
Zwykłe konta użytkowników mają zazwyczaj dostęp do zasobów, których będą potrzebować, takich jak Internet.
Dostęp do dowolnego katalogu lub pliku, do którego masz prawa dostępu, można uzyskać z uruchomionej aplikacji, ponieważ zazwyczaj dziedziczy ona Twoje prawa. Zwykle zalogowany użytkownik domyślnie nie ma prawa zmieniać większości krytycznych plików systemowych lub plików udostępnionych.
Należy pamiętać, że większość użytkowników zazwyczaj instaluje aplikacje z repozytoriów, które są dobrze nadzorowane, a ryzyko wrogiego kodu jest niskie.
Prawdopodobnie zasugerowałbym dodatkowe lektury, aby poznać uprawnienia systemu Linux.
Wprowadzenie do uprawnień systemu Linux
Zrozumienie uprawnień do plików Linux
Model bezpieczeństwa systemu Android ewoluuje w celu zaspokojenia potrzeb użytkowników, którzy nie tylko ogólnie nie rozumieją nic o podstawowym modelu bezpieczeństwa systemu operacyjnego, ale prawie nic nie rozumieją o komputerach.
Model Linuksa (który szczerze bardziej lubię bardziej) został zaprojektowany, aby umożliwić użytkownikom (w szczególności administratorom) większą kontrolę nad bezpieczeństwem w systemie (w granicach, jeśli ich uprawnienia są dozwolone).
Myślę, że z punktu widzenia użytkownika najlepiej to opisać jako różnicę między sterowaniem w pełni automatycznym a półautomatycznym lub ręcznym. Współcześni konsumenci chcą pełnej automatyki. Linux ma tryb półautomatyczny i manualny. Większość użytkowników Linuksa nigdy nie musi wiedzieć o modelu bezpieczeństwa, ale kontrola jest dostępna, jeśli potrzebujesz lub chcesz.
źródło
Po zainstalowaniu niektórych programów możesz je zainstalować we własnej przestrzeni użytkownika (tj. Samodzielnie w katalogu domowym), a nie w całym systemie. W związku z tym nie jesteś proszony o uprawnienia administratora, ponieważ nie potrzebujesz ich do instalowania programu na własny użytek. Tak zainstalowany program rzeczywiście nie byłby w stanie uzyskać dostępu do plików, którym nie udzielono uprawnienia „członkowie niebędący właścicielami, którzy nie są grupą, mogą odczytać to uprawnienie” bez eskalacji uprawnień.
źródło