Warum kann eine App Daemons on the fly ohne sudo-Berechtigung erstellen und wie kann man dies stoppen?

Erstens komme ich von Linux, also gibt es viele Dinge, die mich verwirren, wie zum Beispiel Daemons.

Ich habe VOX.app installiert und es hat eine Art von Agenten und Cloud-bezogenen Prozessen, die automatisch gestartet werden können. Es gibt keine Option in der VOX-Benutzeroberfläche, mit der sie deaktiviert werden können. Ich habe Folgendes versucht, um diese Daemons zu entfernen:

launchctl entfernt com.coppertino.VOXCloud
launchctl entfernt com.coppertino.VOXAgent

Die obigen Befehle sind schon seltsam, weil ich sie nicht verwenden musste sudo. Der seltsamste Teil ist, was ich getan habe, ist anscheinend nutzlos, da es jedes Mal, wenn ich VOX.app starte, sie immer wieder erstellen kann. Das ist einfach verrückt.

Wenn dies das Sicherheitsmodell von macOS ist, wie kann ich die Dinge verstehen und vielleicht kontrollieren?

Hier gibt es zahlreiche Fragen. Diese Seite funktioniert am besten, wenn Sie eine Frage stellen.
Ich stimme zu - dies sollte geschlossen werden, wenn mehrere verwandte Fragen gestellt werden. Graham hat eine erstaunliche erste Gesamtantwort, also habe ich alle spezifischen Fragen bearbeitet und dies über das Sicherheitsmodell von Apple gemacht. Bitte stellen Sie eine Follow-on-Frage mit einer sehr engen spezifischen Follow-on-Frage, wenn Sie eine bestimmte Version einer App auf einer bestimmten Macos-Version haben, bei der Sie verhindern möchten, dass sie einen Start erstellt. Es kann allgemeine oder spezifische Schritte geben, um dies zu kontrollieren

Antworten (2)

Das allgemeine Sicherheitsmodell sieht vor, dass normale Benutzer alle Startelemente zu ihrem Realm (Benutzerbibliothek für sie) und nicht für das System hinzufügen können, also lassen Sie die Leute keine Administratorkonten haben, wenn Sie ihnen nicht vertrauen, dass sie keine Software ausführen, die das Installationsprogramm ausführt Startelemente auf Systemebene.

Es gibt keine einfache Möglichkeit, einen Administrator daran zu hindern, das System zu ändern. Sie können Gatekeeper oder signierte Apps erzwingen, aber die meisten Admin-Benutzer können diese Einstellung umgehen, sodass Sie einen ungebildeten Admin-Benutzer bestenfalls ein wenig verlangsamen.

Jobs pro Benutzer und computerweit

Unter macOS kann launchd Hintergrundprozesse pro Benutzer und computerweit verwalten.

Innerhalb Ihrer Benutzersitzung existieren Pro-Benutzer-Jobs. Sie beginnen und enden, wenn Sie sich am Computer an- und abmelden. Wenn den Jobs Jobtickets zugeordnet sind, finden Sie diese im Ordner ~/Library/LaunchAgentsund~/Library/LaunchDaemons

Computerweite Jobs beginnen und enden mit dem Computer. Diese Jobs werden in /Library/LaunchAgentsund gespeichert /Library/LaunchDaemons.

Von Apple verwaltete computerweite Jobs werden in /System/Library/LaunchAgentsund gespeichert /System/Library/LaunchDaemons.

Pro-Benutzer-Jobs benötigen keine Superuser-Berechtigung. Sie mussten also keine sudoJobs stoppen, die auf Benutzerebene von installiert wurden vox.app.

Einen launchdJob deaktivieren

Sie können einen launchd-Job entladen, um die Rückgabe zu blockieren:

Verwendung:launchctl unload <service-path, service-path2, ...>

  • -wDeaktiviert den Dienst zusätzlich, sodass zukünftige Ladevorgänge zu einem Dienst führen, der von launchd verfolgt wird, aber in keiner Weise gestartet oder entdeckt werden kann.
  • -S <session>Entlädt nur die Dienste, die der angegebenen Sitzung zugeordnet sind.
  • -D <domain>Entlädt launchd.plist(5)-Dateien aus der angegebenen Domäne. Weitere Einzelheiten finden Sie in der Diskussion zu demselben Flag, wenn es an den Lade-Unterbefehl übergeben wird.

Dies -wbewirkt, dass das Entladen auf die Festplatte geschrieben wird und über Sitzungen hinweg bestehen bleibt.

Weitere Informationen zum Stoppen, Entladen und Überschreiben von Jobs finden Sie unter:

Vielen Dank für die ausführliche Erklärung. Ich verstehe jetzt besser. Aber ich kann immer noch nicht deaktivieren com.coppertino.VOXAgentund com.coppertino.VOXClouddauerhaft. Die beiden Daemons können per launchctl list | grep -i voxBefehl gefunden werden und sie werden nicht angezeigt in ~/Library/LaunchAgents/und ich habe das Verzeichnis nicht ~/Library/LaunchDaemons. Ich kann sie verwenden launchctl remove, um sie zu entfernen, aber der schlechte Teil ist vox.app, dass automatisch zwei Daemons erstellt werden können, wenn ich sie starte. Also entferne ich es und erstelle vox.appsie und wiederhole es. Ist es möglich, die vox.appErstellung der beiden Dämonen zu stoppen?
Verwenden Sie den Dienstpfad und -w, um den Job zu entladen. Das wird den Job stoppen, der die Zukunft ausführt. Wer veröffentlicht vox.appund haben Sie die Entwickler nach diesem Verhalten gefragt?
Es tut mir leid, Sie noch einmal zu fragen. Wie finde ich seinen Pfad? -wbraucht Pfad als Argument, aber ich habe keine Ahnung, was ihre Pfade sind. Ich finde sie in keinem der Verzeichnisse: ~/Library/LaunchAgents, /Library/LaunchAgents, /Library/LaunchDaemons, /System/Library/LaunchAgents, /System/Library/LaunchDaemons, . Ich habe versucht zu verwenden, launchctl list com.coppertino.VOXAgentwas mir den Pfad auch nicht sagt. Ich habe versucht zu verwenden, launchctl print com.coppertino.VOXAgentwas einen Fehler zurückgibt Unrecognized target specifier. Ich habe versucht zu googeln, finde nichts Nützliches, wie man den Pfad eines Daemons findet. Verzeihung
Könnten Sie bitte eine neue Frage dafür stellen? Eine neue Frage wird spezifischere Antworten und ein breiteres Publikum anziehen.

Das allgemeine Problem wird in Graham Milns Antwort behandelt. Diese Antwort ist nur eine geringfügige Ergänzung zu der angegebenen Beispielanwendung:

Kurzfassung: macOS hat einige spezielle Verzeichnisse für dieses Verhalten. Dies sind die globalen und Benutzer-/Library-Pfade, die bereits in Grahams Antwort erwähnt wurden. Ein weniger sichtbarer und damit weniger offensichtlicher Pfad befindet sich jedoch in jedem Anwendungspaket.

Einige Apps sind zu schlau. Vox ist ein Paradebeispiel dafür. Diese Agenten werden nicht gut erklärt, aber oft beklagt und sind daher ein potenziell unerwünschtes Programm, eine Anwendung oder Software (PUPAS).

Diese Anwendung löst bereits beim Kopieren nach /Applications und beim ersten Start eine Ereigniskette aus.

Im Paketbündel befinden sich LoginItems:

   /Volumes/VOX/VOX.app/Contents/Library/LoginItems
  ../Loop.app
  ../VOX Agent.app

Beide werden vom systemeigenen DesktopServicesHelper als "Application Helper Login Item" kopiert/registriert. Solche „Helfer“ findet man oft auch in anderen Apps und sind meist nur störende Zusatzstoffe. Sie könnten durch praktische kleine Apps wie BlockBlock präventiv daran gehindert werden, sich überhaupt zu registrieren .

Da diese immer noch im App-Bundle enthalten sind, müssten Sie den Pfad innerhalb des App-Bundles suchen oder angeben!

Eine Suche nach automatisch gestarteten Programmen/Helfern muss /Applications und ~/Applications enthalten!

Ein weiteres Ärgernis findet sich dann innerhalb des App-Bundles :

 /Volumes/VOX/VOX.app/Contents/XPCServices 
 /Volumes/VOX/VOX.app/Contents/XPCServices/VOX\ Toolbox.xpc
 /Volumes/VOX/VOX.app/Contents/XPCServices/com.coppertino.Vox.GNTPClientService.xpc 

Eine Möglichkeit, diese benutzerspezifischen Prozesse daran zu hindern, Sie zu stören, wird in Grahams Antwort beschrieben, indem Sie launchctl.
Sie müssen nur auch in /Applications suchen.
Eine andere Methode wäre, in das Bündel zu gehen und diese Elemente einfach zu löschen . – Meistens starten diese Apps ohne sie gut, es fehlt nur die entsprechende Funktionalität. Vox war einst ein netter kleiner Musikplayer ohne Schnickschnack. Es funktioniert dafür ohne die auf der Festplatte vorhandenen Belästigungen.
Manchmal bieten Ihnen besser gestaltete Anwendungen eine Option, um diese Spielereien in ihrem Einstellungsdialog zu verhindern.

Persönlicher Favorit: Bei der Anwendung im angegebenen Beispiel wäre es am besten, die gesamte Anwendung zu löschen.

Um die Frage direkt zu beantworten Überschrift von

Warum kann eine App Daemons on the fly ohne sudo-Berechtigung erstellen und wie kann man dies stoppen?

Denn ein Benutzer startet die App mit seinen Rechten und Daemons, die in diesem Anwendungspaket enthalten sind, sind dann manchmal ziemlich ärgerlich so gestaltet, dass sie sich dann ziemlich intransparent als "Autostart" im Kontext dieses Benutzers und mit den Rechten dieses Benutzers registrieren. Zum Entladen oder Deregistrieren sind keine sudo/administrative Rechte oder Berechtigungen erforderlich. Wenn sich der Angreifer unter /Applications befindet, hängt die Entfernung möglicherweise von höheren Berechtigungen ab.