Come disinstallare l'antivirus sul Mac senza rompere la rete
Un prodotto antivirus non è una sola app. È un bundle app più un insieme di registrazioni gestite da macOS: un'estensione di sistema, una configurazione di filtro di rete salvata, uno o più job launchd, di solito un helper privilegiato, e su un Mac gestito un profilo di configurazione. Trascinare il bundle nel Cestino può lasciare componenti e registrazioni al loro posto. È per questo che questa categoria ha la reputazione di essere irrimovibile, e perché la prima mossa è l'uninstaller del fornitore stesso, non il Finder.
Cosa installa un prodotto di sicurezza oltre al bundle app
Puoi elencare questi componenti senza modificarli, su qualsiasi Mac, in circa un minuto:
systemextensionsctl list
ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
ls -la /Library/PrivilegedHelperTools
profiles list
pkgutil --pkgs | grep -i vendorname
Un'estensione di sistema porta il codice che ispeziona file e traffico, sostituendo le
estensioni del kernel che questo software installava un tempo, ed è per questo che il
vecchio consiglio di cancellare un .kext non descrive più niente. La
guida alle estensioni di sistema
di Apple dice dove vive: "System extensions reside inside your app's
Contents/Library/SystemExtensions folder." Attivarne una richiede la tua approvazione, ed
è per questo che installare software di sicurezza comporta sempre una tappa nelle
Impostazioni. La
nota tecnica di deployment
di Apple aggiunge la proprietà che conta al momento della rimozione: un provider impacchettato
così "runs in a global context, completely independent of the logged in user."
Un filtro di contenuti di rete o un proxy trasparente è un oggetto separato, ed è quello che porta via a molti l'accesso a internet. La configurazione che lo attiva appartiene al sistema piuttosto che all'app. NEFilterManager è esplicito: "The filter configuration is stored in the Network Extension preferences which are managed by the Network Extension framework," e le modifiche hanno effetto solo quando l'app proprietaria le salva esplicitamente.
I job launchd avviano i pezzi in background. /Library/LaunchDaemons gira come root
all'avvio, prima che chiunque acceda; /Library/LaunchAgents gira per ogni utente al login;
~/Library/LaunchAgents gira per te. Un plist in quelle cartelle è una registrazione con
launchd, non un normale file di impostazioni.
Un helper privilegiato sotto /Library/PrivilegedHelperTools è un eseguibile posseduto
da root abbinato a un daemon che andrebbe scaricato prima che il file vada da qualsiasi
parte. Un profilo di configurazione, su un Mac distribuito da un datore di lavoro o una
scuola, porta le approvazioni delle estensioni e i payload del filtro così il software si
installa senza chiedere niente a nessuno, e lo stesso meccanismo può rimetterlo al suo posto.
Perché trascinarlo nel Cestino non sempre basta
Apple documenta una buona notizia, ed è più ristretta di quanto sembri a prima lettura: "The system automatically uninstalls any system extensions when the user deletes the corresponding app." Questo copre l'estensione dentro il bundle, e non dice niente sulle altre registrazioni, nessuna delle quali sta dentro il bundle.
La configurazione del filtro è dietro la lamentela più comune qui. Ha una propria durata nelle preferenze di Network Extension, e Apple documenta la sua rimozione come una chiamata esplicita che fa l'app proprietaria. Cancellare un'app non fa mai quella chiamata. Ciò che resta è un filtro attivo che punta a un provider che non esiste più, e i sintomi sono quelli che la gente segnala dopo una rimozione a metà: ricerche DNS che falliscono, un browser che si blocca su ogni pagina, connessioni che vanno in timeout mentre l'icona Wi-Fi mostra segnale pieno. La rete è a posto. Il traffico viene consegnato a un filtro che non può rispondere.
I job launchd sono il secondo fallimento. Cancellare un eseguibile non deregistra il job che lo avvia, converte un servizio funzionante in uno che fallisce a ogni avvio, e un job configurato per restare vivo viene ritentato in loop, ed è da lì che vengono le segnalazioni "la ventola parte dopo che l'ho disinstallato". Cancellare il plist mentre il job è caricato è l'immagine speculare: launchd tiene il job fino al prossimo riavvio senza niente sul disco dietro. L'helper e il profilo sopravvivono per lo stesso motivo, e un criterio di gestione può avviare la reinstallazione del software rimosso.
La difficoltà è una scelta di design
Un software di sicurezza che qualsiasi processo potesse disinstallare silenziosamente non
varrebbe niente, dato che la prima cosa che farebbe un malware capace sarebbe rimuovere
ciò che lo osserva. Quindi macOS mette entrambi gli estremi del ciclo di vita dove un
processo in background non può arrivare: l'attivazione richiede un essere umano che clicca
Consenti nelle Impostazioni (la
pagina di avviso di Apple indica Elementi login
ed estensioni su macOS 15 e successivi, Privacy e sicurezza prima), e la disattivazione è
una richiesta dell'app che possiede l'estensione. L'attrito è quel design che funziona, e
non c'è alcuna sequenza di comandi rm che sia la vera disinstallazione che ti viene
tenuta nascosta.
La regola: esegui prima l'uninstaller del fornitore
Sempre, e prima di toccare qualsiasi altra cosa. Solo l'app che contiene l'estensione può inviare una richiesta di disattivazione per essa. Solo l'app che ha salvato la configurazione del filtro può rimuoverla dalle preferenze di Network Extension. Solo lo strumento del fornitore sa quali dei suoi componenti reinstalleranno gli altri se fermati fuori sequenza. Nessun uninstaller di terze parti può ottenere quegli agganci, quindi uno scanner di residui, Mole incluso, serve per ciò che resta dopo che lo strumento del fornitore ha girato, mai come sostituto di esso.
Se hai già trascinato l'app nel Cestino, rimettila a posto con File > Ripristina, avviala, e usa il suo uninstaller. Le sezioni sotto indicano dove ogni fornitore tiene il suo.
Dove ogni fornitore tiene il suo uninstaller
Ogni link sotto rimanda al sito di assistenza del produttore, con le istruzioni aggiornate. Le pagine possono cambiare, quindi segui quelle piuttosto che questo riassunto se i due discordano.
McAfee
L'uninstaller è già sul Mac, in Applicazioni, chiamato come il prodotto che hai comprato, quindi un'installazione Total Protection e una LiveSafe non usano lo stesso. L' articolo di McAfee ti fa accedere come amministratore, chiudere ogni app McAfee, poi aprire Vai > Applicazioni e fare doppio clic su quell'uninstaller. Due dei suoi passi sono il motivo per leggerlo invece di improvvisare: ti dice di cliccare Consenti quando macOS chiede riguardo a un'estensione di sistema, ed è concluso da un riavvio come passo numerato piuttosto che come suggerimento. Un'icona Dock morta può sopravvivere alla rimozione e va trascinata via a mano.
Norton
Anche qui un'app uninstaller separata già in Applicazioni. La pagina di disinstallazione di Norton percorre Vai > Applicazioni, poi doppio clic su Norton Uninstaller, poi "type your administrator account password, and then click Install Helper", poi di nuovo la password, poi Finish. Il passo dell'helper è come l'uninstaller ottiene i privilegi per smontare i propri componenti a livello di sistema.
Avast
Un uninstaller in-app, su una pagina che si apre escludendo l'alternativa ovvia: "Moving Avast Security to the Trash or using Clean My Mac does not fully uninstall the application." Il percorso documentato è Avast Security > Uninstall Avast Security nella barra dei menu, Continua, poi la password di avvio del tuo Mac e Install Helper. Lo stesso uninstaller sta anche in Applicazioni come Avast Security Uninstaller, per quando l'app non si apre.
Bitdefender
Un binario uninstaller dedicato invece di un trascinamento. La pagina di disinstallazione ti fa aprire la cartella Bitdefender, doppio clic su Bitdefender Uninstaller, spuntare il prodotto, cliccare Uninstall, e inserire un nome e una password di amministratore. Lo stesso passaggio offre di rimuovere Bitdefender VPN, che vale la pena accettare se non lo tieni, dato che quel componente registra una propria estensione di rete.
Malwarebytes
Una voce di menu in-app. L'
articolo di disinstallazione
ti porta attraverso Aiuto > Disinstalla Malwarebytes nella barra dei menu, un prompt di
conferma, e la password del tuo Mac. Insolitamente per questa categoria, la stessa pagina
accetta anche la rimozione tramite Finder, il che è una dichiarazione del fornitore sulla
propria impronta. I vecchi articoli di disinstallazione su support.malwarebytes.com ora
reindirizzano; usa la pagina help.malwarebytes.com.
Sophos
Due prodotti, due risposte. Sophos Home, il prodotto consumer, usa un'app separata
Remove Sophos Home avviata da Spotlight. La
pagina
è diretta sull'alternativa: "DO NOT drag Sophos Home to the Trash as this will not
uninstall the program." Installa un helper, chiede la tua password, e richiede un riavvio.
La stessa pagina contiene una sezione opzionale per rimuovere le estensioni di sistema
Sophos in seguito, e quella procedura racchiude systemextensionsctl uninstall tra la
disattivazione e la riattivazione di System Integrity Protection. È la dichiarazione più
chiara di dove sta il confine: anche l'uninstaller di un fornitore stesso non sempre porta
via le proprie estensioni. Quei passi sono opzionali, esattamente come li etichetta il
fornitore, e SIP vale la pena lasciarla attiva.
Sophos Endpoint, il prodotto gestito, usa Remove Sophos Endpoint da Launchpad, ma la documentazione lo blocca: "If tamper protection is turned on, you need to turn it off before you can uninstall Sophos Endpoint." Serve un amministratore Sophos Central o la password per dispositivo tenuta in quella console, quindi su un Mac di lavoro non è un'operazione lato utente.
Kaspersky
In-app, tramite il pannello di supporto. La
pagina di disinstallazione
percorre Aiuto > Supporto, Disinstalla, di nuovo Disinstalla, poi credenziali di
amministratore, e avverte che le estensioni di Chrome e Firefox sopravvivono all'app.
Kaspersky pubblica anche uno strumento di rimozione
separato, kavremover-mac, per quando il percorso in-app fallisce. Entrambe le pagine
portano date 2024, quindi verifica in base alla tua versione.
Se il Mac è gestito, la risposta è il tuo team IT
Prima di passarci una serata, controlla se la decisione è tua:
profiles status -type enrollment
profiles list
Il primo stampa lo stato di iscrizione DEP e MDM senza diritti di amministratore, il secondo elenca i profili di configurazione installati per il tuo utente, e la stessa informazione appare sotto Impostazioni di Sistema > Generali > Gestione dispositivo. La guida alla Gestione dispositivo di Apple è chiara su cosa segue: "Some profiles can only be removed by a system administrator of your Mac. If you can't remove a profile, your Mac may be a managed computer."
Su un Mac gestito, un criterio può reinstallare il software di sicurezza o impedirne la rimozione. L’IT può custodire le credenziali della protezione anti-manomissione. Chiedi di verificare l’assegnazione del software e la procedura prevista per rimuoverlo.
Verificare la rimozione
Questi controlli aiutano a individuare una disinstallazione incompleta prima che crei problemi. Eseguili quando il programma di disinstallazione ha terminato e il Mac si è riavviato: alcuni componenti completano la disattivazione solo dopo il riavvio.
1. Estensioni di sistema.
systemextensionsctl list
Su un Mac senza nulla installato, l'output è una singola riga che legge 0 extension(s).
Altrimenti ogni riga nomina l'identificativo di team, il bundle identifier dell'estensione,
la sua versione, e uno stato tra parentesi. Qualsiasi cosa che porti ancora
l'identificativo del fornitore rimosso va verificato in base allo stato riportato.
Lo strumento offre systemextensionsctl uninstall <teamID> <bundleID>, e alcuni fornitori
lo documentano esattamente per questo caso, ma usalo solo quando la pagina del fornitore
te lo dice.
2. Registrazioni launchd. Cerca le label del fornitore in tutte e tre le posizioni, poi chiedi a launchd cosa è effettivamente caricato:
ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
launchctl list | grep -i vendorname
sudo launchctl list | grep -i vendorname
Le due chiamate launchctl list rispondono a domande diverse: la prima copre la tua
sessione di login, la seconda il dominio di sistema dove vivono i daemon root. Un plist
residuo senza un job caricato corrispondente è obsoleto, un job caricato senza plist è un
Mac che ha bisogno di un riavvio, e un job in entrambi è software ancora in esecuzione.
Mole mostra le stesse tre posizioni come un'unica lista, che è la prossima sezione.
3. Filtri di rete. Un filtro di contenuti registrato appare in Impostazioni di Sistema > Rete come voce Filtri. Cerca eventuali voci del produttore. Un filtro rimasto dopo la rimozione dell'app può interferire con la connessione, ma non è l'unica causa possibile.
4. Elementi login ed estensioni. Apri Impostazioni di Sistema > Generali > Elementi login ed estensioni e leggi sia la lista di login sia gli elementi in background sotto. I componenti del fornitore sopravvivono spesso all'app qui.
5. Processi in esecuzione. In Monitoraggio Attività, cerca il nome del fornitore e passa a Tutti i processi dal menu Vista così i daemon posseduti da root sono inclusi. Un risultato vuoto dopo un riavvio è la conferma che vuoi.
6. Ricevute. pkgutil --pkgs | grep -i vendorname elenca identificativi di pacchetti,
non percorsi di file. Aiuta a riconoscere le installazioni. Controlla i residui sotto
~/Library/Application Support una volta che i componenti attivi sono spariti.
Se non emergono anomalie è un buon segno, non la prova di una rimozione completa. Controlla anche gli altri punti e segui le indicazioni del produttore.
Cosa fa Mole qui, e cosa si rifiuta di fare
La scheda App di Mole riunisce l'elenco delle app e gli elementi di avvio su un unico schermo, così i launch agent, i launch daemon, e i login item che un prodotto ha registrato sono visibili accanto all'app che li ha registrati, ciascuno con il suo percorso reale.
Per i residui, Mole confronta per identità del bundle piuttosto che per nome, e i percorsi
a livello di sistema che conosce sono quelli sopra: /Library/LaunchDaemons/<bundle-id>.plist,
/Library/LaunchAgents/<bundle-id>.plist, /Library/PrivilegedHelperTools/<bundle-id>, e
le ricevute sotto /private/var/db/receipts. Ogni corrispondenza a livello di sistema richiede
una verifica manuale e resta deselezionata: scegli di includere
ogni percorso dopo averlo letto, invece di escludere da una lista già spuntata. Le
rimozioni vanno nel Cestino e sono recuperabili finché non lo svuoti; gli elementi
saltati e falliti vengono riportati, e tutto gira in locale.
Due rifiuti contano più di tutto questo. Mole scansiona /Library/SystemExtensions per
estensioni possedute dall'app che si sta rimuovendo, e quando ne trova una solleva un
avviso che la nomina e dice che potrebbe restare dopo che l'app è sparita. Non tenta la
disattivazione, perché non può: quella richiesta deve venire dall'app proprietaria. E per
fornitori i cui prodotti sono bloccati, gestiti, o distruttivi da rimuovere pezzo per pezzo,
inclusi ESET, CrowdStrike, SentinelOne, Jamf, Palo Alto GlobalProtect, e Cisco Secure
Client, Mole rifiuta del tutto di disinstallarli e indica l'uninstaller ufficiale del
fornitore.
Il confine è ciò che rende affidabile il resto di questa pagina, quindi va detto senza
attenuanti: Mole non è una risposta al malware, non è un backup, e non è un sostituto di un
uninstaller del fornitore per software che installa driver, componenti VPN o estensioni di
sistema. Per gli antivirus, il lavoro di Mole inizia dopo che l'uninstaller del fornitore ha
finito. In un terminale, il gratuito e open source
Mole CLI copre la stessa revisione con mo uninstall, e
questo comando accetta --dry-run così puoi leggere prima l'elenco dei percorsi.
Domande frequenti
Internet ha smesso di funzionare dopo che ho cancellato il mio antivirus. Cosa faccio?
Una possibile causa è una configurazione di filtro di rete rimasta dopo l'app. Si trova nelle
preferenze di Network Extension, che il framework gestisce indipendentemente dal bundle,
quindi cancellare l'app lascia un filtro attivo che punta a un provider che non c'è più.
Controlla Impostazioni di Sistema > Rete per una voce Filtri e
systemextensionsctl list per un'estensione sopravvissuta. La soluzione è reinstallare il
prodotto del fornitore ed eseguire il suo uninstaller. Reinstallare software che stai
cercando di rimuovere sembra sbagliato ed è comunque il percorso più breve.
Posso semplicemente cancellare i plist in /Library/LaunchDaemons?
Non come prima mossa, e raramente come ultima. Un plist lì è una registrazione con
launchd, quindi rimuovere il file mentre il job è caricato lascia il job in esecuzione fino
al prossimo riavvio senza niente sul disco a spiegarlo. Una volta che l'uninstaller del
fornitore ha girato, il Mac si è riavviato, e sudo launchctl list non mostra alcun job
caricato corrispondente, un plist obsoleto è un residuo inerte. Non rimuoverne mai uno
appartenente a software ancora installato.
L'uninstaller del fornitore chiede la mia password e poi fallisce. E ora?
Controlla tre cose. Il Mac è gestito, nel qual caso la protezione anti-manomissione o un profilo sta bloccando la rimozione e la risposta è l'IT. Il prodotto è ancora in esecuzione, dato che alcuni uninstaller non riescono a finire mentre il proprio daemon tiene aperti dei file, quindi riavvia e riprova. E l'uninstaller è aggiornato, dato che alcuni fornitori pubblicano uno strumento di rimozione standalone separato dal percorso in-app. Se tutte e tre sono a posto, il supporto del fornitore è la prossima tappa.
Devo riavviare prima di controllare se è sparito?
Sì. Sia lo smontaggio dell'estensione sia la deregistrazione launchd si completano attraverso un boot, quindi un controllo eseguito subito dopo che l'uninstaller ha finito può mostrare residui già programmati per sparire, e allo stesso modo può nascondere un daemon che tornerà.
Approfondimenti correlati
- Come disinstallare completamente le app su Mac per la sequenza generale, i bundle identifier, e i container condivisi.
- Rimuovere i file residui dopo la disinstallazione delle app Mac per i residui una volta confermato che i componenti attivi sono spariti.
- Cosa i Mac cleaner non dovrebbero mai cancellare per l'altro lato dello stesso giudizio.