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?
Antworten:
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:
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:
quelle
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.
quelle
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
quelle
Erklärung / Schritt für Schritt
Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung und wählen Sie Als Administrator ausführen aus.
Wählen Sie eine Vertrauensebene aus, die für die Ausführung in Ihrer Anwendung geeignet ist, und geben
X
Sie die gewünschte Vertrauensebene ein:quelle
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.
quelle
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.
quelle