NetMute

Cos'è apsd su Mac? La spiegazione del daemon di notifica push di Apple

Quasi ogni utente Mac che osserva attentamente cosa fa la sua macchina sulla rete alla fine si imbatte in apsd. Si trova in Activity Monitor con un piccolo ma costante flusso di dati, ricompare nei log del firewall ogni volta che la Wi-Fi si riconnette, e il suo nome non rivela nulla. Quella combinazione — costante, inspiegata, a livello di sistema — è esattamente la forma di qualcosa che sembra sospetto senza esserlo. Ecco cos'è apsd, perché si comporta così, come verificare che la copia sul tuo Mac sia di Apple, e cosa succede realmente se lo blocchi.

Lettura di 7 minAggiornato

Cos'è realmente apsd

apsd è il Apple Push Notification service daemon. È una parte standard di macOS, distribuita e firmata da Apple, ed è responsabile di mantenere la connessione del tuo Mac alla rete di notifiche push di Apple (APNs). Non è malware, non è un componente opzionale, e non è qualcosa che hai installato tu.

Il suo compito è ristretto ma centrale: mantiene aperta una connessione ai server push di Apple in modo che i messaggi inviati al tuo Mac possano arrivare nel momento stesso in cui vengono inviati, anziché aspettare che qualche app li controlli. Quando l'infrastruttura di Apple ha qualcosa per la tua macchina, la spinge giù attraverso quella connessione, e apsd la consegna alla parte del sistema a cui appartiene.

Una quantità sorprendente di macOS si basa su quel singolo canale. iMessage e FaceTime lo usano per il segnalamento, così un messaggio o una chiamata in arrivo arrivano istantaneamente. Mail lo utilizza per gli account che supportano la consegna push. Find My dipende da esso. Calendario, Contatti e Promemoria lo usano per sapere se qualcosa è cambiato su un altro dispositivo. Notifiche dell'App Store e di app di terze parti viaggiano attraverso di esso. Su Mac iscritti a Mobile Device Management, i comandi MDM vengono consegnati allo stesso modo, motivo per cui apsd è un requisito fondamentale nelle flotte gestite.

Quindi, quando vedi apsd attivo sulla rete, stai di solito guardando la tubatura dietro a una notifica che stavi per ricevere — o dietro al sistema che silenziosamente conferma di non avere nulla di nuovo per te.

Perché apsd è sempre connesso

Il motivo per cui apsd compare in ogni monitor di rete è di natura architetturale piuttosto che accidentale. Le notifiche push funzionano solo se il dispositivo ricevente è raggiungibile, e il modo in cui Apple rende un dispositivo raggiungibile è aprire una connessione a lungo termine verso i server di Apple e mantenerla attiva. La connessione rimane attiva, per lo più inattiva, scambiando piccoli pacchetti di keep-alive in modo che entrambe le estremità sappiano che è ancora valida.

Quel design è deliberatamente efficiente. L'alternativa — ogni app che vuole notificarti aprendo una propria connessione e facendo polling per gli aggiornamenti — comporterebbe dozzine di socket, dozzine di wakeup, e un impatto misurabile sulla durata della batteria e sulla larghezza di banda. Invece c'è un canale condiviso per tutto il sistema, e le app individuali non comunicano mai direttamente con i loro backend di notifica dal tuo Mac. Consegnano il messaggio al servizio di Apple, e Apple lo spinge giù attraverso la singola connessione che apsd mantiene.

La connessione deve anche essere ristabilita ogni volta che la rete sottostante cambia. Il risveglio dal sonno, il passaggio dal Wi-Fi all'Ethernet, l'unirsi a una rete diversa, la connessione o disconnessione da una VPN — ognuno di questi eventi interrompe il socket esistente, e apsd ne crea immediatamente uno nuovo. Se osservi un log di connessione mentre ti sposti tra le reti, apsd sarà uno dei primi processi a riconnettersi ogni volta.

Gli endpoint con cui comunica sono host di push e courier gestiti da Apple, e il traffico APNs viene tipicamente trasportato tramite TCP sulla porta 5223, con fallback usati quando quella porta non è disponibile su una rete restrittiva. Il volume è normalmente piccolo: molte connessioni, scambi brevi, non molti byte in totale. Quel profilo — alta visibilità, pochi byte — è ciò che rende apsd evidente negli strumenti di monitoraggio senza che sia mai realmente pesante.

È apsd sicuro, e come verificarlo da solo

apsd è sicuro. È un daemon di prima parte di Apple, fa parte di macOS da molti anni, e il suo comportamento di rete è pienamente spiegato dal lavoro che svolge. La preoccupazione ragionevole non è se il vero apsd sia pericoloso, ma se il processo in esecuzione con quel nome sul tuo Mac sia quello reale — una domanda lecita, dato che dare malware un nome noioso che suona come un sistema è un vecchio trucco.

Puoi risolvere questa questione senza strumenti speciali. In Activity Monitor, trova apsd nella scheda Network o CPU e apri l'inspector facendo doppio clic. Il daemon genuino funziona come root, vive all’interno del volume di sistema in sola lettura piuttosto che nella tua cartella home, Applicazioni, o in una cartella Downloads, ed è avviato da launchd piuttosto che da qualunque altra cosa tu abbia aperto. Una copia di apsd che si trovi da qualche parte nella tua cartella utente sarebbe un’anomalia da investigare.

Il controllo più forte è la firma del codice. I binari di sistema di Apple sono firmati da Apple, e su macOS moderno il volume di sistema è sigillato crittograficamente, quindi un daemon di sistema manomesso o sostituito non può essere semplicemente sistemato senza lasciare tracce. Se vuoi verificarlo esplicitamente, macOS include strumenti da riga di comando che riportano l’autorità di firma di qualsiasi binario, e per apsd quell’autorità dovrebbe essere Apple.

Vale anche la pena notare cosa apsd non fa. Non invia i tuoi messaggi o documenti ad Apple come contenuto. Il canale push trasporta payload di notifica e segnali per i servizi sopra descritti, e per servizi end-to-end criptati come iMessage è un percorso di consegna, non un luogo dove si trovano contenuti leggibili. Vedere apsd connettersi costantemente ti dice che il sistema di notifica funziona, niente di più.

Devi bloccare apsd?

La risposta onesta è no, ed è utile essere specifici sul perché, perché le conseguenze sono insolitamente ampie per un singolo processo.

Bloccare apsd non silenzia selettivamente un’app rumorosa. Interrompe il canale attraverso cui arrivano tutte le notifiche push sul Mac. iMessage smette di apparire finché qualcos’altro non forza una sincronizzazione. Le chiamate FaceTime smettono di squillare. Find My perde la capacità di rispondere prontamente. Gli account Mail che si affidano al push tornano a controllare periodicamente o smettono di aggiornarsi del tutto. Calendario, Contatti e Promemoria smettono di ricevere aggiornamenti sui cambiamenti fatti sugli altri dispositivi. Le notifiche di app di terze parti semplicemente non arrivano. Su un Mac gestito, i comandi MDM da parte di IT smettono di essere consegnati, il che di solito si traduce in un ticket di supporto piuttosto che in una soluzione.

Peggio ancora, il modo in cui si manifesta il fallimento è confuso piuttosto che ovvio. Nulla mostra un errore che dica che il push è bloccato. Le cose semplicemente smettono di essere tempestive, e settimane dopo ti trovi a debugare perché i messaggi arrivano sul tuo iPhone ma non sul tuo Mac.

Se l’obiettivo sottostante è ridurre le notifiche, gli strumenti giusti sono quelli progettati per questo. Le Impostazioni di sistema ti permettono di disattivare le notifiche per ogni app, e le modalità Focus ti consentono di sopprimerle per contesto o programmazione — entrambe interrompono l’interruzione lasciando intatta la consegna. Se l’obiettivo è ridurre il traffico in background, apsd è comunque il target sbagliato: in termini di byte spostati è uno dei più leggeri tra i talker tipici di un Mac. I processi che effettivamente spostano dati sono di solito client di sincronizzazione, agenti di backup, updater, e app con SDK di analisi o pubblicità, e sono quelli su cui vale la pena concentrarsi.

Quando apsd utilizza CPU o rete elevata, e il quadro più ampio

Occasionalmente apsd si comporta davvero in modo anomalo, e il sintomo è quasi sempre lo stesso: utilizzo sostenuto della CPU e una serie di tentativi di connessione ben oltre il modello di keep-alive silenzioso. Quello che stai di solito osservando è un ciclo di riconnessione — il daemon cerca di stabilire la sua connessione, il tentativo fallisce o viene interrotto, e riprova, indefinitamente.

Le cause comuni meritano di essere analizzate in ordine. Una rete instabile o restrittiva è la più frequente: portali captive, reti aziendali che filtrano le porte usate da APNs, o una VPN instabile possono tutte impedire ad apsd di completare una connessione mentre continua a tentare. Una credenziale scaduta è il passo successivo — un account Mail o iCloud la cui autenticazione è scaduta si presenta spesso come un churn di push piuttosto che un errore chiaro, e disconnettere e riconnettere quell’account risolve il problema. Problemi con il Portachiavi che influenzano i certificati coinvolti nella connessione push producono lo stesso schema. Se nessuno di questi casi si applica, un riavvio elimina un numero sorprendente di questi cicli. Controlla anche se il ciclo segue una rete specifica; apsd che funziona perfettamente a casa e si ripete in ufficio indica la rete, non il tuo Mac.

Il punto più ampio è quello che ti ha portato qui. apsd è uno dei tanti daemon che macOS esegue senza chiedere, e la maggior parte di essi si collega alla rete — tutto normale, tutto opaco di default. macOS ti dà quasi nessuna visibilità su quali processi si connettono e dove, motivo per cui un processo ordinario con un nome sconosciuto appare come allarmante.

Questa lacuna di visibilità è ciò che NetMute colma. Mostra traffico in tempo reale per app e per processo, così puoi vedere cosa fa apsd accanto a tutto il resto sul tuo Mac. La registrazione a livello di dominio traccia quali domini ogni processo ha contattato, quando, e quanta dati sono stati trasferiti, trasformando un sospetto vago in una risposta precisa. Quando qualcosa non dovrebbe comunicare, il firewall per app lo blocca con un clic, con regole temporanee a scadenza automatica per quando vuoi solo testare se il blocco interrompe qualcosa. I profili di rete permettono alle regole di seguire la rete a cui sei connesso, e Tracker Shield copre più di 1.100 domini di tracker noti. L’obiettivo non è bloccare di più — come mostra apsd, la maggior parte del traffico di background è legittima — ma distinguere tra le due cose.

Domande frequenti su apsd

Vedi esattamente a cosa si connette il tuo Mac

NetMute mostra ogni processo sul tuo Mac in tempo reale, registra i domini contattati da ciascuno e ti permette di bloccare tutto ciò che non dovrebbe parlare. Gratis su Mac App Store, con un acquisto in-app una tantum per Premium. Nessun abbonamento.

Scarica NetMute