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?
Odpowiedzi:
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ć:
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:
źródło
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.
źródło
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:
źródło
Wyjaśnienie / krok po kroku
Kliknij prawym przyciskiem myszy wiersz polecenia i wybierz Uruchom jako administrator. Wpisz:
Wybierz poziom zaufania odpowiedni do uruchomienia aplikacji, gdzie
X
jest poziom zaufania, którego chcesz użyć, i wpisz:źródło
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.
źródło
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.
źródło