Zapobiegaj uruchamianiu określonych aplikacji jako administrator

13

tło

Większość zestawów instalacyjnych ma możliwość uruchamiania programów zewnętrznych automatycznie lub w inny sposób po instalacji. Często pojawia się w instalatorze za pomocą takich opcji, jak „Pokaż plik Readme” lub „Uruchom program”.

Kwestia

Problem polega na tym, że wiele z tych instalatorów jest źle zakodowanych i nie odrzucają odpowiednio uprawnień. Na przykład automatyczne uruchomienie aplikacji lub otwarcie strony głównej aplikacji w przeglądarce często powoduje uruchomienie aplikacji lub przeglądarki z uprawnieniami administracyjnymi instalatora lub „wysokim” poziomem integralności UAC!

Może to spowodować naruszenie bezpieczeństwa poprzez otwarcie zainstalowanej aplikacji lub strony internetowej (i ewentualnie dodatków do przeglądarki), które działają teraz z podwyższonymi uprawnieniami.

(Jest to powód, dla którego zdecydowanie zalecam, aby nigdy nie wybierać opcji automatycznego uruchamiania podczas instalacji oprogramowania).

Pytanie

Czy istnieje sposób, aby zapobiec niektórych aplikacji (takich jak przeglądarka internetowa) od zawsze jest uruchomiony z uprawnieniami administracyjnymi, tj automatycznej listy rozwijanej przywileju oparciu o nazwie procesu?


źródło
2
Naprawdę podoba mi się to pytanie. Są produkty do podnoszenia praw dla procesów opartych na ścieżce, haszowaniu itp. Chciałbym zobaczyć coś, co automatycznie obniża prawa dla, powiedzmy, iexplore.exe, firefox.exe, chrome.exe itp.
Patrick Seymour
1
Jeśli program spawnujący ma uprawnienia administratora, czy nie mógł po prostu cofnąć tego, co wymyśliłeś, i uruchomić go mimo to? :)
ᴇcʜιᴇ007
1
Myślę, że tak, ale byłbym zaskoczony, gdyby instalator powiedział: „Hej, przejrzysz naszą stronę główną jako administrator, kolego!” i stale egzekwować te uprawnienia. Nie sądzę, bym kupił oprogramowanie od takiej firmy, pod warunkiem, że mógłbym się o tym dowiedzieć.
Patrick Seymour,

Odpowiedzi:

2

Zasadniczo zgadzam się z odpowiedzią „RUNAS”.

Wydaje mi się, że chcesz, aby instancje podprocesów były automatycznie ograniczane, jeśli działają jako administrator.

Istnieje kilka podejść. Jednak są / mogą być drastyczne i nie są dla nieśmiałego administratora, ponieważ narzut jest denerwujący. Ale wykonają robotę.

Pokazuj tylko Podejdź do jednego, chyba że poprosisz o więcej :

Dla każdej aplikacji, którą chcesz ograniczyć:

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

Teraz członkowie grupy administrators nie mogą wykonać tego pliku. Mogą wrócić i zmienić uprawnienia, aby usunąć zaznaczenie, aby móc je uruchomić, ale muszą to zrobić świadomie.

Ponadto, ponieważ martwisz się o to podczas instalatora, powinieneś wykonać tę samą procedurę dla „użytkownika” SYSTEMU , który również (skutecznie) działa również jako administrator, ponieważ z tego konta można korzystać podczas niektórych instalacji ( można użyć poświadczeń konta „ADMIN” w systemie Windows, aby uzyskać token poświadczeń SYSTEM ... ale to znacznie wykracza poza to, do czego kierowane jest to pytanie).

Oto kilka przykładów wykonania tego w systemie Windows 7:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Nacięcie
źródło
1

Powinieneś być w stanie osiągnąć niższy poziom uprawnień za pomocą dropmyrights lub psexec.

Wydaje się, że trudność polega na tym, że dzieje się to automatycznie, gdy instalator spawnuje nowe wystąpienie aplikacji.

Podejrzewam, że w tym celu musisz przynajmniej poprawić powiązania plików dla wszystkich odpowiednich typów plików, a także adresów URL, poprzedzając istniejące polecenie na przykład poleceniem psexec.

Będzie to działać tak długo, jak instalator będzie próbował otworzyć plik / adres URL z powiązaną aplikacją, zamiast określać plik wykonywalny do uruchomienia. Jeśli ścieżka pliku wykonywalnego jest jawnie określona, ​​myślę, że trzeba zastąpić standardowy plik wykonywalny shim, który uruchamia żądane polecenie.

sahmeepee
źródło
1

Jedną z rzeczy, których tu brakuje, jest to, że Internet Explorer i Windows Explorer NIE MOGĄ mieć podniesionych uprawnień (chyba że zrobisz włamanie do rejestru). Nie wiem o Firefox, Chrome itp., Ale jeśli spróbujesz uruchomić Internet Explorera jako administrator, chętnie zaakceptuje twoje dane uwierzytelniające, ale tak naprawdę nie podniesie uprawnień. Jest to funkcja bezpieczeństwa systemu Windows Vista i nowszych wersji. Poza tym jedynym sposobem, w jaki UAC nie działa (chyba że go wyłączyłeś), jest zalogowanie się na wbudowanym koncie administratora. To, że coś zostało zainstalowane z podwyższonymi uprawnieniami, nie oznacza, że ​​instalator może przyznać temu programowi podwyższone uprawnienia. Uprawnienia są określane przez konto, na którym program był uruchomiony. Jedynym sposobem, w jaki program można uruchomić z podwyższonymi uprawnieniami, bez Twojej wiedzy, jest to, że:

MegaloDon
źródło
1
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

Wyjaśnienie / krok po kroku

  1. Otwórz menu Start i wpisz cmd na pasku wyszukiwania
  2. Kliknij prawym przyciskiem myszy wiersz polecenia i wybierz Uruchom jako administrator. Wpisz:

    RUNAS /showtrustlevels
    
  3. Wybierz poziom zaufania odpowiedni do uruchomienia aplikacji, gdzie Xjest poziom zaufania, którego chcesz użyć, i wpisz:

    RUNAS /trustlevel:X "Application target"
    
David McGowan
źródło
Nie sądzę, żeby to zadziałało. Aby użyć RunA do uruchomienia wynikowego okna przeglądarki z niskimi uprawnieniami, musisz uruchomić instalator (przez RunA) z niskimi uprawnieniami. Może to spowodować, że instalator nie będzie działać.
Patrick Seymour,
cóż, jeśli chciałbyś to zrobić w ten sposób, zmieniłbyś zmienną środowiskową przeglądarki tak, aby zawierała komendę RUNAS / trustlevel, wtedy przeglądarka będzie zawsze uruchamiać się na wybranym poziomie zaufania, jest mało prawdopodobne, abyś kiedykolwiek musiał uruchamiać przeglądarkę w podwyższona sytuacja ... warto pomyśleć
David McGowan
Zmiana zmiennej środowiskowej jest trochę misją, będzie wymagała utworzenia prostego pliku exe w celu zastąpienia oryginału zawierającego proste wywołanie rzeczywistego pliku wykonywalnego z dołączoną komendą RUNAS. jak powiedziałem, trochę misji, możesz po prostu skopiować adres, który uruchamia okno przeglądarki, a następnie zamknąć i ponownie uruchomić przeglądarkę i wpisać adres
David McGowan
0

sprawdziłem różne rozwiązania i już mogę powiedzieć, że manifesty aplikacji lub flagi appcompat nie będą działać (tak, to nie jest prawdziwa odpowiedź, ale nadal chciałem się tym podzielić;))

to, co może być bliskie temu, czego szukasz, to tak zwany poziom integralności , można go ustawić w systemie plików (ACL) i ma wpływ na token, który przetwarza proces

w tym artykule wyjaśniono, jak utworzyć plik exe zawsze działający na „niskim poziomie integralności”

innym podejściem byłoby narzędzie strony trzeciej, takie jak monitor procesu w czasie rzeczywistym, którego używałby skaner antywirusowy lub zapora aplikacji, ale nie znam żadnego takiego, który można skonfigurować w ten sposób.

weberik
źródło
2
możesz zignorować moją odpowiedź, właśnie wypróbowałem tę metodę i nie zadziałała :(
weberik
0

Możesz użyć AppLocker.

Wierzę, że jest to dostępne w Windows 7 Enterprise, Ultimate i Server 2K8 i nowszych. Nie jestem pewien co do systemu Windows 8, ale zakładam, że jest taki sam (Enterprise i Ultimate).

Możesz skonfigurować AppLocker, przechodząc do zasad grupy:

Konfiguracja komputera -> Ustawienia systemu Windows -> Ustawienia zabezpieczeń -> Zasady kontroli aplikacji -> AppLocker -> Reguły plików wykonywalnych.

Kliknij prawym przyciskiem myszy i „Utwórz nową regułę ...”

Tutaj możesz zablokować uruchamianie określonych plików wykonywalnych przez wybranych użytkowników lub grupy. W twoim przykładzie możesz odmówić wykonania programu Internet Explorer przez grupę Administratorzy.

zako42
źródło