Perché un'app può creare demoni al volo senza il permesso di sudo e come fermarlo?

5

In primo luogo, vengo da Linux quindi ci sono molte cose che mi confondono come demoni.

Ho installato VOX.app e ha alcuni tipi di agenti e processi relativi al cloud che possono essere avviati automaticamente. Non vi è alcuna opzione nell'interfaccia utente VOX che possa disabilitarli. Ho provato quanto segue per rimuovere quei demoni:

launchctl remove com.coppertino.VOXCloud
launchctl remove com.coppertino.VOXAgent

I comandi precedenti sono già strani perché non ho bisogno di usare sudo . La parte più strana è ciò che ho fatto è apparentemente inutile poiché ogni volta che lancio VOX.app, può crearli ancora e ancora. Questo è solo pazzo.

Se questo è il modello di sicurezza di macOS come posso capire le cose e forse controllare per questo?

    
posta sgon00 18.08.2018 - 10:37
fonte

2 risposte

5

Il modello di sicurezza generale è che i normali utenti possono aggiungere qualsiasi elemento di avvio al proprio ambito (libreria utente per loro) e non per il sistema, quindi non lasciare che le persone abbiano account admin se non si ha fiducia che non vengano eseguiti software che installa gli elementi di avvio a livello di sistema.

Non esiste un modo semplice per impedire a un utente amministratore di modificare il sistema. Puoi imporre il gatekeeper o le app firmate, ma la maggior parte degli utenti amministratori può ignorare tale impostazione, quindi, nel migliore dei casi, rallenta un utente amministratore non istruito per un po '.

Lavori per utente e computer

Su macOS, launchd può gestire i processi in background per utente e computer.

I lavori per utente esistono all'interno della sessione utente. Iniziano e si fermano con l'accesso e l'uscita dal computer. Se i lavori hanno associati i job ticket, li troverai con la cartella ~/Library/LaunchAgents e ~/Library/LaunchDaemons

I lavori su computer iniziano e terminano con il computer. Questi lavori sono memorizzati in /Library/LaunchAgents e /Library/LaunchDaemons .

I lavori a computer gestiti da Apple sono memorizzati in /System/Library/LaunchAgents e /System/Library/LaunchDaemons .

I lavori per utente non hanno bisogno del permesso di super utente. Pertanto non è stato necessario sudo per interrompere i processi installati a livello utente da vox.app .

Disabilitazione di un lavoro launchd

Puoi scaricare un lavoro di avvio per bloccarlo restituendo:

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

  • -w Additionally disables the service such that future load operations will result in a service which launchd tracks but cannot be launched or discovered in any way.
  • -S <session> Only unloads the services associated with the specified session.
  • -D <domain> Unloads launchd.plist(5) files from the specified domain. See the discussion regarding this same flag when given to the load subcommand for further details.

Il -w fa sì che lo scaricamento venga scritto sul disco e venga mantenuto tra le sessioni.

Per ulteriori informazioni sull'arresto, lo scarico e l'override dei lavori, vedi:

risposta data 18.08.2018 - 14:26
fonte
1

Il problema generale viene gestito nella risposta di Graham Miln. Questa risposta è solo una piccola aggiunta esercitata sull'applicazione di esempio fornita:

Versione breve: macOS ha alcune directory speciali per questo tipo di comportamento. Questi sono i percorsi globali e utente / libreria già menzionati nella risposta di Graham. Ma un percorso meno visibile e quindi meno ovvio è all'interno di ogni pacchetto di applicazioni.

Alcune app sono troppo intelligenti. Vox è un primo esempio di questo. Questi agenti non sono ben spiegati ma spesso lamentati e quindi un programma, un'applicazione o un software potenzialmente indesiderato (PUPAS)

Questa applicazione attiva già una catena di eventi quando viene copiata in / Applicazioni e nuovamente al momento del primo avvio.

All'interno del pacchetto sono LoginItems:

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

Entrambi sono copiati / registrati dal DesktopServicesHelper del sistema come "elemento di accesso all'helper dell'applicazione". Questo tipo di "aiutanti" si trovano spesso anche in altre app e di solito sono semplicemente ingombranti aggiungendo fastidi. Potrebbero essere preventivamente bloccati dalla registrazione, in primo luogo, da pratiche piccole app, come BlockBlock .

Dato che questi sono ancora contenuti all'interno del pacchetto di app dovresti cercare o fornire il percorso all'interno del pacchetto di app!

Una ricerca per programmi / helper avviati automaticamente deve includere / Applicazioni e ~ / Applicazioni!

Un altro fastidio viene quindi trovato all'interno del pacchetto di app :

 /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 

Un modo per disabilitare questi processi per utente da fastidio è delineato nella risposta di Graham, utilizzando launchctl .
Hai solo bisogno di cercare all'interno di / Applicazioni pure.
Un altro metodo sarebbe quello di andare nel pacchetto e solo eliminare questi elementi. - La maggior parte delle volte queste app iniziano senza di esse, mancano semplicemente le rispettive funzionalità. Vox era una volta un simpatico musicista "senza fronzoli". Funziona per quello senza quei fastidi presenti sul disco.
A volte applicazioni progettate in modo migliore ti offrono la possibilità di evitare quegli imbrogli nei loro dialoghi delle preferenze.

Preferito personale: nel caso dell'applicazione nell'esempio fornito, sarebbe meglio cancellare l'intera applicazione.

Per rispondere direttamente al titolo della domanda di

Why can an app create daemons on the fly without sudo permission and how to stop it?

Poiché un utente lancia l'app con i suoi privilegi e i demoni contenuti in quel pacchetto di applicazioni, a volte è abbastanza fastidiosamente progettato per registrarsi in modo abbastanza poco trasparente come "avvio automatico" all'interno del contesto dell'utente e con i diritti dell'utente. Per scaricare o annullare la registrazione non è richiesto alcun sudo / diritti amministrativi o permessi. Se l'autore del reato si trova in / Applicazioni, la rimozione potrebbe dipendere da autorizzazioni più elevate.

    
risposta data 18.08.2018 - 17:37
fonte

Leggi altre domande sui tag