Podnoszenie uprawnień bez pytania

0

Posiadam jeden komputer z Windows 8 i przeglądarką Firefox. Z tego, co wiem, normalnie nie jest możliwe zapisywanie w Program Files i w folderach systemowych, da się to zrobić po podwyższeniu uprawnień. W zależności od ustawień, trzeba podać hasło użytkownika lub potwierdzić podniesienie uprawnień. Tak dzieje się przy każdej instalacji programu.

Moim zdaniem, jest to prosty, a zarazem skuteczny mechanizm przed niekontrolowanymi zmianami w systemie, które mogą go uszkodzić lub go nawet unieruchomić. W ten sposób można też odciąć wiele script kiddies, które próbują w sposób niekontrolowany zainstalować wirusa. Pytanie o uprawnienia administracyjne przy otwieraniu jakiegoś pliku, który teoretycznie nie ma na celu instalowania czegokolwiek od razu sugeruje, że coś jest nie tak, wystarczy kliknąć "nie" i wirus nie zainstaluje się (oczywiście nie wszystkie, bo na pewno da się to ominąć, co potwierdza przykład z Firefox).

Ostatnio Firefox sam się zaktualizował, w sumie słusznie, ale zaskoczyło mnie to, że nie było systemowego pytania o uprawnienia administracyjne, czyli Firefox podmienił pliki na nowsze w sposób niekontrolowany.

Ponieważ autorem Firefox nie jest Microsoft i nie ma z tą firmą nic wspólnego (poza wypuszczaniem binarek działających w Windows), to w jaki sposób można spowodować, żeby pisany przez siebie program mógł dokonywać instalacji lub modyfikacji czegokolwiek bez konieczności potwierdzania uprawnień administratora, w przypadku, gdy to podniesienie jest konieczne?

Jeżeli Firefox może, to równie dobrze może dowolny program odpowiednio zaimplementowany.

0

Mają opisane co nieco na swojej Wiki: https://wiki.mozilla.org/Silent_Update_OS_Dialogs.

1

Bardzo prosta odpowiedź - program się wcale nie instaluje w "Program Files" tylko per user w "AppData" do którego każdy użytkownik ma swobodny dostęp. Równie dobrze mógłby się też "instalować" na pulpicie.
Proste choć niezbyt bezpieczne rozwiązanie - tak jak mówisz - UAC powinno gwarantować że bez potwierdzenia żaden program nam nie napsuje w systemie - tutaj poszli na kompromis względem bezpieczeństwa - dowolna aplikacja może grzebać w plikach przeglądarki bez podnoszenia uprawnień.
Chrome już od bardzo dawna korzysta z tego, dzięki czemu można go też zainstalować na prawie dowolnym komputerze bez żadnych uprawnień (prawie, bo nadal obowiązują zasady grupy - administrator sieci może zablokować instalację chroma lub nawet dodatków w nim).

Są też inne możliwe rozwiązania - przykładowo możesz dodać uprawnienia do folderu korzystając z tego że chwilowo masz podniesione uprawnienia przy pierwszej instalacji.
Możesz też zainstalować w systemie "backdoora" - usługę która będzie działała w tle z podniesionymi uprawnieniami - usługę taką również można zainstalować dostając uprawnienia zaledwie jednorazowo.
Okazuje się że mozilla korzysta właśnie z tego ostatniego rozwiązania - w systemie razem z przeglądarką instaluje się usługa o nazwie "Mozilla Maintenance Service" która ma pełne uprawnienia i można się z nią komunikować z poziomu dowolnego użytkownika. To wydaje się trochę bezpieczniejsze niż rozwiązanie google'a bo nadal możemy sprawdzić na przykład podpisy aktualizacji zanim ją zainstalujemy, ale nadal daje furtkę potencjalnym hackerom (zwłaszcza jeśli wycieknie klucz prywatny używany do podpisywania aktualizacji lub gdy uda się wstrzyknąć własny kod do oficjalnego repo - tak się całkiem niedawno zdarzyło z SolarWinds i PHP).

Ogólnie nie podobają mi się te rozwiązania, zwłaszcza w dobie grasujących ransomware (o których pewnie słyszałeś że zaatakowały rurociąg w stanach przez co cena benzyny na stacjach skoczyła o 50c na galonie), byłoby lepiej gdyby były one opt-in.
Tutaj są informacje jak można wyłączyć tę usługę:
https://support.mozilla.org/en-US/kb/what-mozilla-maintenance-service

Swoją drogą ciekawostka - windows ma zabezpieczenie na wypadek ataku ransomware - nazywa się "Kontrolowany dostęp do folderu" i pozwala na ogranicznie dostępu do plików tylko do wybranej listy programów (i eksploratora plików)

0
obscurity napisał(a):

Bardzo prosta odpowiedź - program się wcale nie instaluje w "Program Files" tylko per user w "AppData" do którego każdy użytkownik ma swobodny dostęp. Równie dobrze mógłby się też "instalować" na pulpicie.

Proste choć niezbyt bezpieczne rozwiązanie - tak jak mówisz - UAC powinno gwarantować że bez potwierdzenia żaden program nam nie napsuje w systemie - tutaj poszli na kompromis względem bezpieczeństwa - dowolna aplikacja może grzebać w plikach przeglądarki bez podnoszenia uprawnień.

Sprawdziłem i z całą pewnością plik firefox.exe jest w C:\Program Files\Mozilla Firefox\, w tym samym katalogu jest dużo innych plików DLL i pomocniczych, które mają świeżą datę modyfikacji, więc były zmodyfikowane lub podmienione. Pobierać i instalować to sobie może do AppData, do Temp, na Pulpit lub moje dokumenty, ale ostatecznie pliki trafiają do C:\Program Files i stąd pytanie, jak to jest możliwe.

Przeszukałem też cały komputer na plik firefox.exe i on jest tylko w wymienionym wyżej katalogu, co wyklucza taką ewentualność, że C:\Program Files\Mozilla Firefox\ jest dowiązaniem symbolicznym do jakiegoś katalogu w AppData, czy innego w pełni dostępnego dla użytkownika.

Rozwiązanie z usługą "Mozilla Maintenance Service" ma sens i to wyczerpuje temat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1