Verhindern, dass bestimmte Anwendungen als Administrator ausgeführt werden

13

Hintergrund

Die meisten Installations-Toolkits bieten die Möglichkeit, externe Programme nach der Installation automatisch oder auf andere Weise zu starten. Dies wird im Installationsprogramm häufig über Optionen wie "Readme anzeigen" oder "Programm starten" angezeigt.

Problem

Das Problem ist, dass viele dieser Installationsprogramme schlecht codiert sind und Berechtigungen nicht ordnungsgemäß verwerfen. Beispielsweise führt das automatische Starten der Anwendung oder das Öffnen der Anwendungshomepage im Browser häufig zum Starten der Anwendung oder des Browsers mit den Administratorrechten des Installationsprogramms oder einer "hohen" UAC-Integritätsstufe!

Dies kann zu Sicherheitsverletzungen führen, indem die installierte Anwendung oder eine Webseite (und möglicherweise Browser-Add-Ons) geöffnet wird, die jetzt mit erhöhten Berechtigungen ausgeführt werden.

(Dies ist der Grund, warum ich dringend empfehle, bei der Installation der Software niemals die Autostart-Optionen zu wählen.)

Frage

Gibt es eine Möglichkeit zu verhindern , dass bestimmte Anwendungen (z. B. ein Webbrowser) jemals mit Administratorrechten gestartet werden, z. B. mit einem automatischen Drop-Privileg basierend auf dem Prozessnamen?


quelle
2
Ich mag diese Frage wirklich. Es gibt Produkte, die Rechte für Prozesse erhöhen, die auf Pfaden, Hashes usw. basieren. Ich würde gerne etwas sehen, das automatisch Rechte für z. B. iexplore.exe, firefox.exe, chrome.exe usw. fallen lässt.
Patrick Seymour
1
Wenn das Laichprogramm Administratorrechte hat, kann es dann nicht einfach das, was Sie sich einfallen lassen, rückgängig machen und es trotzdem ausführen? :)
ƬᴇcƬᴇιʜ007
1
Ich denke, es könnte sein, aber ich wäre überrascht, wenn ein Installateur sagen würde: "Hey, du wirst als Administrator auf unserer Homepage stöbern, Kumpel!" und kontinuierlich diese Berechtigungen durchgesetzt. Ich glaube nicht, dass ich Software von einer solchen Firma kaufen würde, vorausgesetzt, ich könnte es herausfinden.
Patrick Seymour

Antworten:

2

Grundsätzlich stimme ich der Antwort von "RUNAS" zu.

Mir scheint, Sie möchten, dass Subprozess-Instanzen automatisch eingeschränkt werden, wenn sie als Administrator ausgeführt werden.

Es gibt einige Ansätze. Sie sind / können jedoch drastisch sein und sind nichts für den schüchternen Administrator, da der Aufwand ärgerlich ist. Sie werden den Job machen.

Es wird nur der erste Ansatz angezeigt, sofern nicht weitere angefordert werden :

Für jede Anwendung, die Sie einschränken möchten:

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.

Mitglieder der Administratorengruppe können diese Datei jetzt nicht ausführen. Sie können zurückgehen und die Berechtigungen ändern, um das zu deaktivieren, damit sie es ausführen können, aber sie müssen das wissentlich tun.

Da Sie sich darüber Sorgen machen, dass dies während eines Installationsvorgangs auftritt, sollten Sie dasselbe Verfahren auch für den SYSTEM- Benutzer ausführen , der auch (effektiv) als Administrator ausgeführt wird, da dieses Konto während einiger Installationen verwendet werden kann ( Mit den Anmeldeinformationen eines Windows-ADMIN-Kontos kann ein SYSTEM-Anmeldeinformationen-Token abgerufen werden.

Hier einige Bilder dazu unter Windows 7:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Nick
quelle
1

Sie sollten in der Lage sein, die niedrigere Berechtigungsstufe entweder mit dropmyrights oder mit psexec zu erreichen.

Der heikle Teil scheint darin zu liegen, dass dies automatisch geschieht, wenn ein Installer eine neue Instanz der Anwendung erzeugt.

Ich vermute deshalb, dass Sie zumindest die Dateizuordnungen für alle relevanten Dateitypen und auch für URLs optimieren müssen, indem Sie Ihrem vorhandenen Befehl beispielsweise den Befehl psexec voranstellen.

Dies funktioniert so lange, wie das Installationsprogramm versucht, die Datei / URL mit der zugehörigen Anwendung zu öffnen, anstatt die auszuführende ausführbare Datei anzugeben. Wenn der Pfad der ausführbaren Datei explizit angegeben wird, müssten Sie vermutlich die Standard-ausführbare Datei durch eine Shim-ausführbare Datei ersetzen, die den gewünschten Befehl ausführt.

Sahmeepee
quelle
1

Eine Sache, die hier übersehen wird, ist, dass die Berechtigungen von Internet Explorer und Windows Explorer NICHT erhöht werden können (es sei denn, Sie führen einen Registrierungs-Hack durch). Ich weiß nichts über Firefox, Chrome usw., aber wenn Sie versuchen, Internet Explorer als Administrator auszuführen, werden Ihre Anmeldeinformationen gerne akzeptiert, die Berechtigungen werden jedoch nicht erhöht. Dies ist eine Sicherheitsfunktion von Windows Vista und höher. Außerdem ist die Benutzerkontensteuerung nur dann wirksam, wenn Sie beim integrierten Administratorkonto angemeldet sind (es sei denn, Sie haben sie deaktiviert). Nur weil etwas mit erhöhten Berechtigungen installiert wurde, bedeutet dies nicht, dass das Installationsprogramm diesem Programm erhöhte Berechtigungen erteilen kann. Die Berechtigungen richten sich nach dem Konto, unter dem das Programm ausgeführt wurde. Die einzige Möglichkeit, ein Programm mit erhöhten Berechtigungen auszuführen, ohne dass Sie wissen, dass dies der Fall ist, wenn

MegaloDon
quelle
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.

Erklärung / Schritt für Schritt

  1. Öffnen Sie das Startmenü und geben Sie cmd in die Suchleiste ein
  2. Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung und wählen Sie Als Administrator ausführen aus.

    RUNAS /showtrustlevels
    
  3. Wählen Sie eine Vertrauensebene aus, die für die Ausführung in Ihrer Anwendung geeignet ist, und geben XSie die gewünschte Vertrauensebene ein:

    RUNAS /trustlevel:X "Application target"
    
David McGowan
quelle
Ich denke nicht, dass das funktionieren wird. Um mit RunAs das resultierende Browserfenster mit geringen Rechten ausführen zu können, müssen Sie das Installationsprogramm (über RunAs) mit geringen Rechten ausführen. Dies würde wahrscheinlich dazu führen, dass das Installationsprogramm nicht funktioniert.
Patrick Seymour
Wenn Sie dies auf diese Weise tun möchten, ändern Sie die Umgebungsvariable für Ihren Browser so, dass sie den Befehl RUNAS / trustlevel enthält. Der Browser wird dann immer in der ausgewählten Vertrauensebene gestartet. Es ist unwahrscheinlich, dass Sie den Browser jemals in einer ausführen müssen erhöhte Situation ... einen Gedanken wert
David McGowan
Das Ändern der Umgebungsvariablen ist eine leichte Aufgabe. Sie müssen eine einfache Exe erstellen, um das Original zu ersetzen, das einen einfachen Aufruf der tatsächlichen ausführbaren Datei mit dem enthaltenen RUNAS-Befehl enthält. Wie ich schon sagte, ein bisschen wie eine Mission, Sie könnten einfach die Adresse kopieren, mit der das Browserfenster gestartet wird, und dann den Browser schließen und neu starten und die Adresse
David McGowan
0

Ich habe mir verschiedene Lösungen angesehen und kann Ihnen bereits sagen, dass Anwendungsmanifeste oder appcompat-Flags nicht funktionieren (ja, das ist keine richtige Antwort, aber ich wollte dies trotzdem teilen;))

Möglicherweise liegt die so genannte Integritätsstufe in der Nähe des gesuchten Objekts. Sie kann innerhalb des Dateisystems (ACL) festgelegt werden und wirkt sich auf das Token aus, das der Prozess enthält

In diesem Artikel wird erläutert, wie Sie eine Exe-Datei immer auf "niedriger Integritätsstufe" ausführen.

Ein anderer Ansatz wäre ein Tool eines Drittanbieters, wie ein Echtzeit-Prozessmonitor, den ein Virenscanner oder eine Anwendungsfirewall verwenden würde, aber ich kenne kein Tool, das auf diese Weise konfiguriert werden kann.

weberik
quelle
2
Sie können meine Antwort ignorieren, ich habe gerade diese Methode ausprobiert und es hat nicht funktioniert :(
Weberik
0

Sie können AppLocker verwenden.

Ich glaube, dass dies in Windows 7 Enterprise, Ultimate und Server 2K8 und höher verfügbar ist. Ich bin mir bei Windows 8 nicht sicher, gehe aber davon aus, dass es dasselbe ist (Enterprise und Ultimate).

Sie können AppLocker einrichten, indem Sie die Gruppenrichtlinie aufrufen:

Computerkonfiguration -> Windows-Einstellungen -> Sicherheitseinstellungen -> Anwendungssteuerungsrichtlinien -> AppLocker -> Ausführbare Regeln.

Rechtsklick und "Neue Regel erstellen ..."

Hier können Sie verhindern, dass bestimmte ausführbare Dateien von ausgewählten Benutzern oder Gruppen ausgeführt werden. In Ihrem Beispiel können Sie die Ausführung von Internet Explorer durch die Gruppe Administratoren verweigern.

zako42
quelle