Zarządzanie uprawnieniami aplikacji – minimalizacja dostępów nie tylko w serwerach

avlab.pl 6 godzin temu
Zdjęcie: Zarządzanie uprawnieniami aplikacji – minimalizacja dostępów nie tylko w serwerach


Jedną z podstawowych zasad w bezpieczeństwie IT jest kwestia minimalizacji uprawnień. Niezależnie czy mówimy o tym w kontekście użytkowników i ich dostępów czy też aplikacji i ich możliwości w – technicznie ujmując – środowisku uruchomieniowym. Ta reguła sprawdza się w każdej sytuacji. Dla przykładu opisywaliśmy exploit Copy Fail, który pomimo dużej skuteczności i ogólnej prostoty wykorzystania nie zadziałał w chroot. Podobnie z wp2shell w systemie WordPress (gdzie w ostatnim czasie podatności za sprawą AI odkrywane są regularnie) – tutaj zablokowanie na poziomie serwera HTTP „wrażliwych” funkcji PHP stanowi kompleksowe zabezpieczenie przed tym i analogicznymi atakami.

Dlatego też popularna współcześnie konteneryzacja jest dobrym rozwiązaniem z punktu widzenia bezpieczeństwa. Aplikacja działa w odseparowanym (oczywiście w ogólnym znaczeniu) od systemu operacyjnego kontenerze i nie ma możliwości wykonania akcji poza nim. Nie jest to rozwiązanie odporne na wszystkie ataki, bo nieautoryzowany dostęp do kontenera typowej aplikacji internetowej pozwoli na odczyt jej konfiguracji i odkrycie w ten sposób dostępów do baz danych czy sekretów do zewnętrznych usług, natomiast samo stosowanie konteneryzacji jest zdecydowanie zalecaną metodą wdrożeń.

Minimalizowanie uprawnień nie dotyczy wyłączenie środowisk serwerowych, bo to podejście powinno być używane też w przypadku tzw. „komputerów biurkowych” czy aplikacji przeznaczonych na telefony.

Właśnie dla aplikacji mobilnych to zarządzanie uprawnieniami jest chyba najlepiej przemyślane. W systemach Android i iOS to użytkownik decyduje, jakie uprawnienia przyznaje aplikacji. Co więcej w systemie od Google, po pewnym czasie braku aktywności w danej aplikacji jej uprawnienia są ograniczane. Bez trudności możemy również przejrzeć aktualne uprawnienia każdej zainstalowanej aplikacji.

Podobnie w systemach operacyjnych przeznaczonych na desktopy, czyli Windows i macOS. W systemach Windows wystarczy wejść w Ustawienia -> Prywatność i zabezpieczenia, aby przejrzeć aplikacje mające dostęp do poszczególnych „kategorii” uprawnień.

Niechlubny wyjątek stanowią dystrybucje systemu Linux. Powszechnie są uznawane za ceniące prywatność alternatywy dla Windows, natomiast mnogość dystrybucji, jak również interfejsów i serwerów graficznych, stanowi ograniczenie dla wprowadzenia scentralizowanego miejsca zarządzania dostępami aplikacji. Nie bez znaczenia pozostaje też ilość metod instalacji – paczki DEB, paczki RPM, AppImage, Snap, Flatpak i pewnie kilka mniej znanych formatów.

Jednak te bardziej nowoczesne menedżery pakietów Snap i Flatpak pozwalają na precyzyjne określenie uprawnień dla poszczególnych aplikacji. Snap jest alternatywą dla apt najlepiej kojarzoną z systemami Ubuntu. Zainstalowane aplikacje (z racjonalnymi wyjątkami, takimi jak Visual Studio Code) uruchamiane są w sandboxach, przez co ich dostęp do systemu operacyjnego jest ograniczony na kilku poziomach. Pozwala to również na bardzo wygodne zarządzanie uprawnieniami poprzez Ustawienia -> Aplikacje.

Po wybraniu aplikacji z listy pojawi się możliwość granularnego (w bardzo szerokim stopniu) nadania bądź odebrania przyznanych wcześniej uprawnień. Trzeba jednak zachować zdrowy rozsądek, bo podjęcie nieprzemyślanych działań (odebranie zbyt wielu możliwości) może spowodować nieprawidłowe funkcjonowanie aplikacji.

W przypadku Flatpak (który może wydawać się mniej przyjazny dla użytkowników) również mamy do czynienia z sandboxem. Sam Flatpak jednak nie jest ściśle powiązany z jedną dystrybucją, więc nie będziemy w stanie wygodnie zarządzać uprawnieniami w jednakowy sposób.

Sprawdzonym rozwiązaniem jest doinstalowanie paczki Flatseal, która pozwoli na prostą modyfikację uprawnień.

Oprócz weryfikacji dostępów zainstalowanych aplikacji warto też zwrócić uwagę na ich ilość i „jakość”. Nie ma większego powodu, aby instalować aplikacje działające standardowo w przeglądarce internetowej. Spora część aplikacji to „opakowana” witryna internetowa, która działa jakby stanowiła faktyczną aplikację desktopową. Powinniśmy zachować porządek w systemie operacyjnym – posiadać jedynie realnie konieczne oprogramowanie i pamiętać o kopiach zapasowych oraz przenoszeniu do dysków w chmurze zbędnych w bieżącym czasie danych.

Jeśli nie mamy pewności, czy dana aplikacja jest godna zaufania, należy przemyśleć jej uruchomienie w maszynie wirtualnej. Instalacja VirtualBox i systemu operacyjnego nie są skomplikowanymi zagadnieniami, a być może pozwolą uniknąć przykrych sytuacji związanych z uruchomieniem szkodliwego programu.

Idź do oryginalnego materiału