Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
macOS-Security-and-Privacy-Guide — Guida curata sulla sicurezza e privacy di macOS con istruzioni pratiche per la modellazione delle minacce, la crittografia del disco, la configurazione del firewall, l'autenticazione sicura e l'hardening della rete. | Kitploit
Strumenti/GitHubGitHub/drduh/macos-security-and-privacy-guide
Sicurezza di ReteSicurezza WirelessCrittografiaPrivacyAutenticazioneApprendimento e FormazioneRisorse Curate
GitHubdrduh/macos-security-and-privacy-guide

macOS-Security-and-Privacy-Guide

Guida curata sulla sicurezza e privacy di macOS con istruzioni pratiche per la modellazione delle minacce, la crittografia del disco, la configurazione del firewall, l'autenticazione sicura e l'hardening della rete.

Vedi Repository
22.5k1.5k10h 10m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Questa guida è una raccolta di tecniche per migliorare la sicurezza e la privacy di macOS su Mac Apple silicon. Si rivolge a utenti esperti che desiderano adottare pratiche di sicurezza comunemente usate dalle organizzazioni, ma è adatta anche a utenti alle prime armi con un interesse per la privacy e la sicurezza.

Per i Mac gestiti da organizzazioni, consulta il macOS Security Compliance Project, mantenuto dall'Istituto Nazionale di Standard e Tecnologia degli Stati Uniti Istituto Nazionale di Standard e Tecnologia degli Stati Uniti.

Questa guida è fornita "così com'è" - senza garanzie di alcun tipo. Sei l'unico responsabile di qualsiasi conseguenza derivante dal seguirla.

  • Nozioni di base
  • Modello di minaccia
    • Risorse
    • Avversari
    • Capacità
    • Mitigazioni
    • Modello di esempio
  • Hardware
  • Installare macOS
    • Attivazione del sistema
    • Account Apple
    • App Store
    • Virtualizzazione
      • Container Apple
  • Primo avvio
  • Account amministratore e utente
    • Avvertenze
    • Configurazione
  • Firmware
  • FileVault
  • Modalità Lockdown
  • Firewall
    • Firewall a livello di applicazione
      • Modalità invisibile
      • App firmate
      • Ricarica firewall
      • Ottieni stato
      • AirDrop
    • Firewall di terze parti
    • Filtro pacchetti
      • Configurazione pf di esempio
      • Comandi firewall
      • Blocca reti
  • Servizi
  • Suggerimenti Siri e Spotlight
  • Homebrew
  • DNS
    • Profili DNS
    • File hosts
    • DNSCrypt
    • Dnsmasq
  • Autorità di certificazione
  • Privoxy
  • Browser
    • Firefox
    • Chrome
    • Safari
    • Privacy del browser web
  • Tor
  • VPN
  • PGP/GPG
  • Email
    • Thunderbird
  • Messaggeri
    • XMPP
    • Signal
    • iMessage
  • Malware
    • Download di software
    • App Sandbox
    • Hardened Runtime
    • Antivirus
    • Gatekeeper
  • Protezione dell'integrità di sistema
  • Metadati e artefatti
  • Autenticazione
  • Backup
  • Wi-Fi
  • SSH
  • Accesso fisico
  • Monitoraggio
    • Log
    • DTrace
    • Processi
    • Rete
      • Wireshark
  • Varie
    • Salvaschermo
    • Dati diagnostici
    • Lettore multimediale
    • Gestori dei file
    • Opzioni Finder
    • Umask personalizzato
    • Inserimento da tastiera
    • Hardening della rete
    • Sudoers
  • Software correlato
  • Risorse aggiuntive

Nozioni di base

Applica le migliori pratiche di sicurezza generali:

  • Creare un modello di minaccia

    • Il tuo avversario è un intercettatore locale, un criminale che usa malware comune o un'organizzazione ben finanziata e altamente capace?
    • Definisci le minacce o i gruppi da cui ti stai difendendo e cosa possono realisticamente fare.
  • Mantieni aggiornati il sistema e il software

    • Installa regolarmente gli aggiornamenti disponibili per il sistema operativo e tutte le applicazioni.
    • Gli aggiornamenti si installano nelle Impostazioni di Sistema o con l'utilità da riga di comando softwareupdate. Nessuna delle due richiede un Account Apple.
    • Iscriviti alla mailing list Apple security-announce o controlla i security release di Apple.
  • Crittografa i dati sensibili

    • Attiva FileVault per crittografare l'archiviazione interna.
    • Usa un gestore di password per le credenziali degli account e valuta di crittografare separatamente i file particolarmente sensibili.
  • Garantisci la disponibilità dei dati

    • Crea backup regolari dei dati critici e sii pronto a ripristinare da un backup in caso di compromissione.
    • Crittografa i backup prima di copiarli su supporti esterni o su archiviazioni cloud di terze parti. In alternativa, usa un servizio di backup che fornisca crittografia end-to-end.
    • Verifica i backup accedendovi con regolarità, secondo una pianificazione.
  • Fai clic con attenzione

Modello di minaccia

Il passo più importante per migliorare in modo significativo sicurezza e privacy è creare un modello di minaccia: una descrizione generale di ciò che si vuole proteggere, chi potrebbe tentare di accedervi, come potrebbe farlo e quali controlli valgono il compromesso in termini di usabilità. Questo crea una comprensione dei potenziali avversari e delle loro motivazioni, che porta a difese più solide.

Risorse

Le risorse possono includere un telefono, un laptop, credenziali e informazioni personali, come la cronologia di navigazione.

Elencale in ordine di importanza, partendo da quelle che meritano maggiore protezione.

Avversari

Definisci contro chi ti stai difendendo. Inizia definendo la motivazione che ogni avversario potrebbe avere per attaccare risorse importanti. Il guadagno finanziario è una grande motivazione per molti attaccanti, per esempio.

Capacità

Per ogni avversario, elenca cosa può e non può fare, classificandoli dal meno al più capace. Per esempio, un ladro occasionale agisce opportunisticamente: probabilmente sarà sconfitto da controlli di base, come il blocco dello schermo e l'archiviazione crittografata con password forti. Un avversario più sofisticato e determinato potrebbe richiedere di spegnere completamente il dispositivo quando non è in uso per cancellare le credenziali dalla memoria e meccanismi di autenticazione più forti.

Mitigazioni

Scegli la mitigazione migliore per ogni minaccia. Per esempio, evita di scrivere le password su carta se un coinquilino potrebbe trovarle, oppure crittografa l'archiviazione per proteggere i dati in caso di furto.

La sicurezza va bilanciata con l'usabilità: ogni mitigazione dovrebbe contrastare una capacità avversaria per giustificare qualsiasi inconveniente. Smetti di aggiungere difese quando i rischi rimanenti sono accettabili per una determinata situazione. Rivedi il modello quando cambiano dispositivi, dati, viaggi, lavoro o avversari.

Modello di esempio

La tabella seguente è un esempio di modello di minaccia semplice:

Leggi di più sulla modellazione delle minacce.

Hardware

Il hardware Apple silicon offre funzioni di sicurezza basate su hardware, tra cui la protezione delle chiavi basata su Secure Enclave e opzioni di sicurezza di avvio più robuste. È generalmente la piattaforma preferita per le protezioni discusse in questa guida.

Alcuni Mac basati su Intel, soprattutto i modelli con hardware dell'era T2 vulnerabile, sono interessati da vulnerabilità hardware che non possono essere completamente risolte con un aggiornamento di macOS.

Evita hardware non Apple che esegue macOS e sistemi che non supportano l'ultima versione di macOS, poiché Apple non corregge tutte le vulnerabilità nelle versioni legacy.

Gli accessori Apple ricevono generalmente aggiornamenti firmware tramite macOS e supportano le funzioni di sicurezza Bluetooth attuali. Per esempio, la privacy di Bluetooth Low Energy (BLE) utilizza indirizzi di dispositivo rotanti per ridurre il tracciamento; gli accessori di terze parti potrebbero non supportare questa funzione.

Installare macOS

Esistono diversi modi per installare macOS.

Installa l'ultima versione supportata di macOS; le versioni più recenti di macOS includono correzioni di sicurezza e altri miglioramenti non disponibili nelle versioni precedenti.

Attivazione del sistema

Durante l'installazione, i Mac Apple silicon contattano il servizio di attivazione Apple per confermare che il dispositivo non sia stato segnalato come perso o rubato. Scopri come funziona questo processo.

Account Apple

Un Account Apple è facoltativo per l'uso base di macOS, ma è necessario per l'App Store e molti servizi Apple. Rivedi le impostazioni sulla privacy dei dati prima di attivare le funzioni.

Attiva la crittografia end-to-end per iCloud e rivedi i dati dell'Account Apple.

App Store

L'App Store è una piattaforma di distribuzione software in cui le applicazioni vengono recensite da Apple.

Le applicazioni dell'App Store sono tenute a utilizzare App Sandbox e Hardened Runtime (funzioni di sicurezza che limitano ciò che le app possono fare, rendendo alcuni attacchi più difficili). Offre anche aggiornamenti software automatici.

Usare l'App Store richiede un Account Apple, che può comportare un rischio per la privacy.

Virtualizzazione

La virtualizzazione consente a un altro sistema operativo di essere eseguito in una macchina virtuale isolata. Su Apple silicon, macOS può eseguire guest macOS supportati e Windows 11 per ARM usando applicazioni come le seguenti:

  • UTM - Segui la documentazione per creare macchine virtuali macOS e altre.
  • VirtualBuddy - Applicazione per virtualizzare macOS 12+ su Apple silicon.
  • Bushel - Un'app leggera e gratuita. Al primo avvio seleziona "Chiedi all'app di non tracciare".
  • VMware Fusion - Ora gratuito con Broadcom. Interfaccia pulita, configurazione macOS semplice e supporto per Windows 11 ARM.
  • tart (CLI) - Applicazione da riga di comando installata con Homebrew.
  • Parallels - Opzione a pagamento con forte integrazione.

[!WARNING] VMware richiede un account Broadcom e l'accettazione dei termini prima del download. Parallels richiede un account, dati di pagamento e altri dati - vedi l'informativa sulla privacy.

Container Apple

Apple Container è uno strumento da riga di comando per eseguire container Linux su macOS. A differenza dei runtime di container che condividono un'unica macchina virtuale Linux, Apple Container esegue ogni container in una macchina virtuale leggera e isolata usando le capacità di virtualizzazione di macOS. Questo fornisce un confine di isolamento più forte tra i carichi di lavoro e il sistema operativo host.

Primo avvio

Quando macOS si avvia per la prima volta, Assistente di configurazione richiede la creazione di un account primario.

Imposta una password lunga e unica. Lascia vuoto il campo del suggerimento per la password.

Evita nomi personalmente identificabili: il nome del computer (come "MacBook di John Appleseed") viene trasmesso sulle reti locali ed è visibile ad altri dispositivi.

Il nome del sistema può essere configurato in Impostazioni di Sistema > Info o con i comandi scutil:```bash sudo scutil --set ComputerName MacBook sudo scutil --set HostName MacBook sudo scutil --set LocalHostName MacBook

root@kitploit:~
# Account amministratore e utente

Il primo account creato è un account amministratore. Gli amministratori possono modificare le impostazioni a livello di sistema ed eseguire comandi con [sudo](https://en.wikipedia.org/wiki/Sudo), che concede temporaneamente privilegi elevati. Qualsiasi programma eseguito dall'amministratore potrebbe ottenere lo stesso accesso; sudo può anche presentare [vulnerabilità](https://bogner.sh/2014/03/another-mac-os-x-sudo-password-bypass/).

È considerata una [buona pratica](https://help.apple.com/machelp/mac/10.12/index.html#/mh11389) utilizzare un account standard dedicato per il lavoro quotidiano e usare l'account amministratore solo per l'installazione, la configurazione e gli aggiornamenti di software e sistema.

Non è necessario accedere mai con l'account amministratore tramite la schermata di accesso di macOS. Quando un comando nel Terminale richiede privilegi da amministratore, il sistema chiederà l'autenticazione e il Terminale continuerà a usare tali privilegi. A tal fine, Apple fornisce [raccomandazioni](https://support.apple.com/102099) per nascondere l'account amministratore e la sua cartella personale.

## Avvertenze

- Solo gli amministratori possono installare applicazioni nella directory `/Applications` a livello di sistema. Finder e Installer chiedono a un utente standard di inserire le credenziali di un amministratore quando è necessaria l'approvazione. Alcune applicazioni possono invece essere installate in `~/Applications`; le applicazioni che non richiedono accesso da amministratore dovrebbero essere installate nella directory dell'utente. Le applicazioni dell'App Store vengono comunque installate in `/Applications` e non richiedono ulteriore autenticazione.
- Un utente standard di solito non è autorizzato a usare `sudo`. Quando sono richiesti privilegi da amministratore, macOS chiede le credenziali di un amministratore oppure l'attività può essere eseguita da un account amministratore.
- Le Impostazioni di Sistema e diverse utility di sistema (ad es., Diagnostica Wi-Fi) richiedono il permesso da amministratore per funzionare completamente. Alcune Impostazioni di Sistema devono essere sbloccate selezionando l'icona del lucchetto. Alcune applicazioni richiedono semplicemente l'autenticazione all'apertura, altre devono essere aperte direttamente da un account amministratore per accedere a tutte le funzioni (ad es., Console).
- Alcune applicazioni di terze parti presuppongono che l'utente corrente sia un amministratore e non funzioneranno da un account standard.
- Vedi [issue 167](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/167) per ulteriori considerazioni.

## Configurazione

Gli account possono essere creati e gestiti nelle Impostazioni di Sistema. Su sistemi esistenti, di solito è più semplice creare un secondo account amministratore e poi trasformare l'account originale da account amministratore ad account standard. I sistemi appena installati dovrebbero invece aggiungere un account standard dopo la configurazione.

La declassazione di un account può essere effettuata dal nuovo account amministratore nelle Impostazioni di Sistema.

Vedi anche [questo post](https://superuser.com/a/395738) per maggiori informazioni su come macOS determina l'appartenenza ai gruppi.

# Firmware

Verifica che la sicurezza del firmware sia impostata su [Sicurezza completa](https://support.apple.com/guide/mac-help/mchl768f7291/mac) per prevenire manomissioni del sistema. Questa è l'impostazione predefinita.

# FileVault

I Mac con Apple silicon utilizzano la crittografia di archiviazione supportata dall'hardware per impostazione predefinita. [FileVault](https://support.apple.com/guide/mac-help/protect-data-on-your-mac-with-filevault-mh11785/mac) richiede inoltre la password di un utente autorizzato per sbloccare il volume di avvio dopo il riavvio.

Su Apple silicon, l'autorizzazione FileVault protegge anche il [firmware](https://support.apple.com/102384), impedendo l'avvio da qualsiasi dispositivo diverso dal disco di avvio designato, l'accesso a [Recovery](https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/15.0/mac/15.0#mchl5abfbb29) e il [ripristino](https://support.apple.com/108900) tramite la modalità device firmware update (DFU).

FileVault chiederà di impostare una chiave di ripristino, che dovrebbe essere conservata in un luogo sicuro se utilizzata. FileVault offre anche un'opzione per usare iCloud per il ripristino.

Verifica lo stato di FileVault:```bash
fdesetup status

Lockdown Mode

Lockdown Mode riduce significativamente la superficie d'attacco disabilitando le funzionalità di sistema e delle app comunemente sfruttate in attacchi sofisticati.

Quando Lockdown Mode è abilitato, Safari offre un'opzione per escludere siti web affidabili dalle restrizioni.

Firewall

Sono disponibili diversi tipi di firewall per macOS.

[!NOTE] Se il malware ottiene il controllo amministrativo, può disabilitare o aggirare le policy del firewall; non fare affidamento su un firewall locale come forte protezione contro la compromissione completa del sistema.

Firewall a livello applicativo

Il firewall integrato fornisce una protezione di base e blocca solo le connessioni in entrata. Non può monitorare né bloccare le connessioni in uscita.

Può essere controllato tramite la scheda Firewall di Rete in Impostazioni di Sistema, oppure con il seguente comando:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

root@kitploit:~
### Modalità stealth

Gli aggressori scansionano frequentemente le reti per identificare i sistemi da prendere di mira. Quando la [modalità stealth](https://support.apple.com/guide/mac-help/use-stealth-mode-to-keep-your-mac-more-secure-mh17133/mac) è attiva, le risposte non vengono inviate ai tentativi di connessione verso le porte chiuse, rendendo il sistema più difficile da rilevare.

Abilita la modalità stealth:```bash
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

App firmate

Per impostazione predefinita, il firewall consente le connessioni in entrata per il software firmato da Apple o da uno sviluppatore identificato. Disabilitando queste regole, macOS chiede prima di consentire a un'applicazione di accettare connessioni in entrata:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off

root@kitploit:~
### Ricarica firewall

Dopo aver modificato le impostazioni con `socketfilterfw`, ricarica il servizio firewall per applicare la nuova configurazione:```bash
sudo pkill -HUP socketfilterfw

Ottieni lo stato

Conferma lo stato del firewall:```bash for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag" done

root@kitploit:~
Oppure utilizzando [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType

AirDrop

Attivare il firewall a livello di applicazione e disabilitare le connessioni in entrata per il software integrato impedisce il funzionamento di AirDrop. Affinché AirDrop funzioni, concedi al firewall le eccezioni per sharingd e rapportd:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/sharingd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/sharingd

root@kitploit:~
## Firewall di terze parti

Applicazioni come [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html), [Radio Silence](https://radiosilenceapp.com/) e [LuLu](https://objective-see.com/products/lulu.html) offrono un equilibrio tra facilità d'uso e sicurezza.

Questi programmi sono in grado di monitorare e bloccare sia le connessioni in entrata che quelle in uscita. Tuttavia, possono richiedere un'[estensione di sistema](https://support.apple.com/HT210999) closed-source.

Se i frequenti avvisi di consenti-o-blocca risultano opprimenti, consenti temporaneamente le connessioni registrandole al contempo ([modalità Silent Allow](https://help.obdev.at/littlesnitch6/concepts-opmodes) in Little Snitch). Rivedi la configurazione per comprendere e controllare l'attività di rete.

## Filtro dei pacchetti

macOS include anche [pf](https://en.wikipedia.org/wiki/PF_(firewall)), un firewall con filtro dei pacchetti configurato dalla riga di comando. È potente, ma notevolmente più complesso del firewall applicativo integrato.

pf può essere controllato anche tramite un'applicazione grafica come [Murus](https://www.murusfirewall.com/).

Molti [libri](https://nostarch.com/book-of-pf-4e) e [guide](https://www.openbsd.org/faq/pf/) trattano il firewall pf. L'esempio seguente mostra come configurare una policy di base.

### Esempio di configurazione pf

Aggiungi le seguenti regole a un file denominato `pf.rules`:```console
# Define interface
wifi = "en0"

# Global options
set block-policy drop
set skip on lo0
set state-policy if-bound
set ruleset-optimization basic

# Normalize
scrub in on $wifi all fragment reassemble

# Define tables
table <blocklist> persist

# Deny and log blocked traffic
block log all
block quick from no-route to any
antispoof quick for $wifi

# Enforce blocklist
block log quick on $wifi from <blocklist> to any
block log quick on $wifi from any to <blocklist>

# Allow DHCP
pass out on $wifi proto udp from any port 68 to any port 67 keep state
pass in  on $wifi proto udp from any port 67 to any port 68 keep state

# Allow outbound TCP
pass out on $wifi proto tcp from ($wifi) to any flags S/SA keep state

# Allow outbound UDP
pass out on $wifi proto udp from ($wifi) to any keep state

# Allow outbound ICMP (ping)
pass out on $wifi proto icmp from ($wifi) to any keep state

Un esempio avanzato di configurazione di pf è disponibile in pf/pf.rules.

Comandi del firewall

Per controllare il firewall:

ComandoAttività
sudo pfctl -e -f pf.rulesabilita il firewall con il file di configurazione
sudo pfctl -t blocklist -T add 1.2.3.4aggiunge l'indirizzo IPv4 alla tabella blocklist
sudo pfctl -ddisabilita il firewall

Per monitorare il firewall:

Bloccare le reti

pf può bloccare intervalli di indirizzi di rete, ad esempio relativi a un'intera organizzazione. Interroga Merit RADb per l'elenco delle reti in uso da un sistema autonomo (una grande rete gestita da una singola organizzazione), come ad esempio Facebook:```bash whois -h whois.radb.net '!gAS32934'

root@kitploit:~
Aggiungi l'elenco delle reti restituite alla blocklist:```bash
sudo pfctl -t blocklist -T add $(whois -h whois.radb.net '!gAS32934' | sed -n '2p')

Conferma che gli indirizzi sono stati aggiunti:```console $ sudo pfctl -t blocklist -T show No ALTQ support in kernel ALTQ related functions disabled 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16 ...

root@kitploit:~
Conferma che il traffico di rete è bloccato verso quegli indirizzi (le richieste DNS funzioneranno comunque):```console
$ dig a +short facebook.com
157.240.2.35

$ curl --connect-timeout 5 -I https://facebook.com/
*   Trying 157.240.2.35...
* TCP_NODELAY set
* Connection timed out after 5002 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5002 milliseconds

$ sudo tcpdump -tqni pflog0 'host 157.240.2.35'
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0

The firewall drops the initial packets needed to start the TCP connection, so the connection times out.

See drduh/config/scripts/pf-blocklist.sh for more inspiration.

Services

Many system and user background services are managed by launchd.

Administrator accounts can modify services and extensions in System Settings.

To read a service configuration:```bash defaults read /System/Library/LaunchAgents/com.apple.Finder

root@kitploit:~
> [!IMPORTANT]
> I servizi di sistema sono protetti da [SIP](https://github.com/drduh/macOS-Security-and-Privacy-Guide#system-integrity-protection); disabilitare SIP per modificare i servizi di sistema può compromettere la sicurezza e causare instabilità del sistema.

Per visualizzare lo stato dei servizi:```bash
find /var/db/com.apple.xpc.launchd \
  -type f -print -exec defaults read {} \; 2>/dev/null

See gestione degli script con launchd e launchd.info per maggiori informazioni.

Suggerimenti Siri e Spotlight

Suggerimenti Siri e Spotlight possono inviare alcune query o informazioni sull'utilizzo ad Apple, a seconda delle funzionalità abilitate. In Impostazioni di Sistema, cerca Siri e Spotlight, quindi disattiva i suggerimenti online e configura le categorie da escludere dall'indicizzazione o dai suggerimenti. Consulta la policy Ricerca e Privacy di Apple per maggiori informazioni.

Homebrew

Se un programma non è disponibile tramite l'App Store, valuta l'uso di Homebrew.

[!IMPORTANT] Alcuni flussi di lavoro di installazione o gestione di Homebrew possono richiedere la Gestione App o l'Accesso completo al disco. Concedi queste autorizzazioni solo quando sono pienamente comprese e necessarie.

Esegui periodicamente brew upgrade su reti attendibili e sicure per installare gli aggiornamenti software. Per ottenere informazioni su un pacchetto prima dell'installazione, esegui brew info <package> e rivedi la sua formula online. Abilita opzioni di sicurezza aggiuntive, come HOMEBREW_NO_INSECURE_REDIRECT=1

Secondo l'analisi anonima di Homebrew, Homebrew raccoglie statistiche anonime sull'utilizzo e le invia a un'istanza InfluxDB self-hosted.

Per disattivare l'analisi di Homebrew, esegui brew analytics off o imposta HOMEBREW_NO_ANALYTICS=1 nel file di avvio della shell.

DNS

Profili DNS

macOS include "profili di configurazione DNS" per configurare DNS crittografato, filtri e DNSSEC.

I profili DNS possono essere creati o ottenuti da provider come Quad9, AdGuard e NextDNS.

File hosts

Usa il file hosts per bloccare i domini associati a malware, pubblicità e altri servizi indesiderati.

Per bloccare un dominio tramite record A, aggiungi una delle seguenti righe a /etc/hosts:``` 0 example.com 0.0.0.0 example.com 127.0.0.1 example.com

root@kitploit:~
> [!NOTE]
> IPv6 usa record AAAA piuttosto che record A: blocca le connessioni IPv6 includendo voci `::1 example.com`.

Molte liste di domini sono disponibili online. Prima di aggiungerne una a `/etc/hosts`, assicurati che ogni voce inizi con `0`, `0.0.0.0` o `127.0.0.1` e mantieni la voce `127.0.0.1 localhost`.

Elenchi hosts popolari includono:
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts)
- [Sinfonietta/hostfiles](https://github.com/Sinfonietta/hostfiles)
- [someonewhocares.org](https://someonewhocares.org/hosts/zero/hosts)

Per scaricare e aggiungere un elenco al file hosts, usa il comando [tee](https://man7.org/linux/man-pages/man1/tee.1.html):```bash
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
  sudo tee -a /etc/hosts

Little Snitch supporta anche le blocklist.

DNSCrypt

Per cifrare il traffico DNS, considera DNSCrypt/dnscrypt-proxy. Quando configurato con un risolutore affidabile, DNSCrypt cifra le query DNS. DNSSEC può inoltre validare le risposte DNS firmate, dove supportato.

Installa DNSCrypt da Homebrew e segui le istruzioni per configurare e avviare dnscrypt-proxy:```bash brew install dnscrypt-proxy

root@kitploit:~
Quando si utilizza DNSCrypt con Dnsmasq, individuare il file di configurazione di DNSCrypt eseguendo:```bash
brew info dnscrypt-proxy | grep dnscrypt-proxy.toml | head -1

Questo comando dovrebbe mostrare un percorso come /opt/homebrew/etc/dnscrypt-proxy.toml.

Per impostazione predefinita, dnscrypt-proxy ascolta su 127.0.0.1:53 e invia le query a uno o più provider DNS configurati. Modifica la configurazione e cambia listen_addresses per utilizzare una porta diversa dalla 53, come la 5355:```toml listen_addresses = ['127.0.0.1:5355', '[::1]:5355']

root@kitploit:~
Avvia DNSCrypt:```bash
sudo brew services restart dnscrypt-proxy

Conferma che DNSCrypt sia in esecuzione:```console $ sudo lsof +c 15 -Pni UDP:5355 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnscrypt-proxy 15244 nobody 7u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 10u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355 dnscrypt-proxy 15244 nobody 12u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 14u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355

root@kitploit:~
Inoltre, queste regole pf bloccano il traffico DNS convenzionale verso la porta 53 al di fuori dell'interfaccia di loopback, per ridurre il rischio di [perdite DNS](https://dnsleaktest.com/):```console
block drop quick on !lo0 proto udp from any to any port = 53
block drop quick on !lo0 proto tcp from any to any port = 53

Dnsmasq

dnsmasq può memorizzare nella cache le risposte, impedire query upstream per nomi non qualificati e bloccare interi domini di primo livello.

Usalo in combinazione con DNSCrypt per cifrare il traffico DNS.

Se non usi DNSCrypt, scegli almeno un resolver DNS diverso da quello fornito dal provider. Due alternative popolari sono Google DNS e OpenDNS.

Installa Dnsmasq:```bash brew install dnsmasq

root@kitploit:~
Scarica e modifica [drduh/config/dnsmasq.conf](https://github.com/drduh/config/blob/main/dnsmasq.conf) oppure il file di configurazione predefinito.

Vedi [drduh/config/domains](https://github.com/drduh/config/tree/main/domains) per esempi di elenchi di domini che possono essere aggiunti per bloccare destinazioni specifiche.

Installa e avvia il programma (è richiesto sudo per associarsi alla [porta privilegiata](https://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-user-only) 53):```bash
sudo brew services start dnsmasq

Per impostare dnsmasq come server DNS locale, apri Impostazioni di sistema > Rete e seleziona la connessione di rete attualmente in uso (come Wi-Fi), quindi apri la scheda DNS, seleziona + e aggiungi 127.0.0.1, oppure usa:```bash sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1

root@kitploit:~
Verifica che Dnsmasq sia configurato:```console
$ scutil --dns | head
DNS configuration

resolver #1
  search domain[0] : whatever
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

$ networksetup -getdnsservers "Wi-Fi"
127.0.0.1

[!NOTE] Alcune applicazioni VPN sovrascrivono le impostazioni DNS alla connessione. Vedi issue 24 e drduh/config/scripts/macos-dns.sh.

Autorità di certificazione

macOS include un insieme di autorità di certificazione (CA) radice di fiducia gestite da aziende, governi e altre organizzazioni in tutto il mondo. Una CA di fiducia può emettere certificati che macOS e i browser possono accettare per le connessioni HTTPS, rendendo il magazzino delle CA radice una parte critica del confine di fiducia del sistema.

Ispeziona System Roots per comprendere il magazzino delle radici di fiducia fornito da Apple utilizzando Keychain Access o lo strumento a riga di comando security e il file /System/Library/Keychains/SystemRootCertificates.keychain. Keychain Access può anche essere avviato con il comando:```bash open "/System/Library/CoreServices/Applications/Keychain Access.app"

root@kitploit:~
Inoltre, esamina eventuali certificati che potrebbero essere stati aggiunti da un utente, amministratore, client VPN, prodotto di sicurezza o applicazione di gestione dei dispositivi mobili nei portachiavi **login**, **Local Items** e **System**.

Per disabilitare un certificato selezionato, modifica la sua impostazione di Trust in **Never Trust** e chiudi la finestra per confermare. In questo modo si può ridurre il rischio di attacchi [MITM](https://wikipedia.org/wiki/Man-in-the-middle_attack), in cui un certificato fraudolento viene utilizzato per [intercettare silenziosamente](https://en.wikipedia.org/wiki/DigiNotar#Issuance_of_fraudulent_certificates) il traffico crittografato.

> [!WARNING]
> La rimozione o la modifica delle impostazioni di trust dell'autorità di certificazione può compromettere siti web, aggiornamenti software, reti aziendali, VPN, portali captive e altri servizi.

Consulta gli elenchi di Apple dei [certificati attendibili disponibili](https://support.apple.com/103723) e dei [certificati bloccati](https://support.apple.com/103247#blocked) per informazioni aggiornate sul trust store.

# Privoxy

Valuta l'utilizzo di [Privoxy](https://www.privoxy.org/) come proxy locale per filtrare il traffico web.

Installa e avvia Privoxy usando Homebrew:```bash
brew install privoxy
brew services start privoxy

In alternativa, è disponibile un pacchetto di installazione firmato per Privoxy dal loro sito web o da Sourceforge. Il pacchetto firmato è più sicuro della versione Homebrew e riceve supporto dal progetto Privoxy.

Per impostazione predefinita, Privoxy ascolta sulla porta TCP locale 8118.

Imposta il proxy HTTP di sistema per l'interfaccia di rete attiva su 127.0.0.1 e porta 8118:```bash sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118

root@kitploit:~
Imposta il proxy **HTTPS** del sistema:```bash
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118

Il proxy può anche essere impostato in Impostazioni di sistema > Rete > Dettagli > Proxy.

Conferma che il proxy sia impostato:```console $ scutil --proxy { ExceptionsList : { 0 : *.local 1 : 169.254/16 } FTPPassive : 1 HTTPEnable : 1 HTTPPort : 8118 HTTPProxy : 127.0.0.1 HTTPSEnable : 1 HTTPSPort : 8118 HTTPSProxy : 127.0.0.1 }

root@kitploit:~
Sebbene la maggior parte del traffico web sia crittografato, Privoxy può filtrare le richieste in base al nome host. Ad esempio, le seguenti regole bloccano tutto il traffico tranne quello verso i domini .net, github.com e Apple:```console
{ +block{all} }
.

{ -block }
.apple.
.github.com
.net

Per bloccare i domini di Facebook:```console { +block{facebook} } .cdninstagram. .facebook*. .fb. .fbcdn*. .fbinfra. .fbsbx. .fbstatic*. .fbsv. .fburl. .instagr.am .tfbnw. .thefacebook. fb*.akamaihd.net

root@kitploit:~
Vedi [drduh/config/privoxy/config](https://github.com/drduh/config/blob/main/privoxy/config) e [drduh/config/privoxy/user.action](https://github.com/drduh/config/blob/main/privoxy/user.action) per ulteriori esempi di Privoxy. Privoxy **non** deve essere riavviato dopo la modifica delle regole di filtro.

Per verificare che il traffico sia bloccato o reindirizzato, usa [curl](https://en.wikipedia.org/wiki/CURL) oppure apri l'interfaccia di Privoxy all'indirizzo <http://p.p> in un browser:```console
$ ALL_PROXY=127.0.0.1:8118 curl example.com -IL | head
HTTP/1.1 403 Request blocked by Privoxy
Content-Length: 9001
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache

$ ALL_PROXY=127.0.0.1:8118 curl github.com -IL | head
HTTP/1.1 302 Local Redirect from Privoxy
Location: https://github.com/
Content-Length: 0

HTTP/1.1 200 Connection established

HTTP/2 200
content-type: text/html; charset=utf-8

[!NOTE] Le applicazioni e i servizi possono ignorare le impostazioni del proxy. pf può reindirizzare il traffico attraverso un proxy senza configurare ogni applicazione separatamente.

Browser

I browser web comportano rischi significativi per la sicurezza e la privacy perché scaricano ed eseguono contenuti Internet non attendibili.

Un confine di sicurezza fondamentale del browser è la politica della stessa origine (SOP), che impedisce a un sito web di leggere i dati di un altro sito. Un bypass può esporre dati o azioni di altri siti nello stesso profilo del browser.

Alcuni attacchi al browser si basano sul convincere l'utente a installare software, concedere autorizzazioni o utilizzare un'estensione dannosa. Bisogna prestare particolare attenzione a download inaspettati, prompt di estensione e richieste di eseguire comandi nel Terminale.

Le estensioni del browser rappresentano anche un rischio significativo per la sicurezza: un'estensione dannosa o mal realizzata può compromettere tutto ciò che si trova nel browser, incluse le credenziali. L'uso delle estensioni del browser dovrebbe essere limitato a quelle strettamente necessarie, pubblicate solo da sviluppatori affidabili.

Utilizzare profili del browser separati per identità e scopi diversi. Se possibile, disabilitare JavaScript e consentirlo solo su siti affidabili tramite le autorizzazioni del sito del browser.

Mozilla Firefox, Google Chrome, Safari e Tor Browser sono browser popolari, ciascuno con caratteristiche uniche e scopi individuali.

Firefox

Firefox ha modernizzato gran parte del suo codebase attraverso i progetti Quantum e Photon. Quantum include lo spostamento di alcuni componenti da C++ a Rust, un linguaggio di programmazione progettato per migliorare la sicurezza della memoria e la sicurezza della concorrenza.

Firefox offre un modello di sicurezza paragonabile a quello di Chrome, incluso un programma di bug bounty per la divulgazione responsabile delle vulnerabilità. Firefox segue un ciclo di rilascio di quattro settimane.

Vedere drduh/config/firefox.user.js e arkenfox/user.js per le configurazioni consigliate. Vedere anche NoScript, un'estensione che consente il blocco selettivo degli script.

Firefox si concentra sulla privacy degli utenti. Supporta la protezione dal tracciamento in modalità Navigazione privata. La protezione dal tracciamento può essere abilitata per l'account predefinito, anche se potrebbe compromettere l'esperienza di navigazione su alcuni siti web. Firefox in modalità di protezione dal tracciamento rigorosa randomizza le impronte digitali per difendersi dal tracciamento. Firefox offre profili utente separati. La navigazione può anche essere separata con i containers Multi-Account.

Firefox supporta solo le Web Extension tramite la WebExtension API, molto simile a quella di Chrome. L'invio di Web Extension in Firefox è gratuito. Le Web Extension in Firefox sono per la maggior parte open-source, anche se alcune Web Extension sono proprietarie.

Chrome

Google Chrome è basato sul progetto open-source Chromium. Chrome include alcuni componenti proprietari, aggiornamenti automatici, un visualizzatore PDF, supporto per codec multimediali, segnalazioni di crash e integrazione con l'account Google. Per maggiori informazioni, rivedere le impostazioni sulla privacy di Chrome e le politiche sulla privacy di Google.

Chrome offre la sincronizzazione dell'account tra più dispositivi, incluse le credenziali; i dati sono crittografati con la password dell'account.

Chrome ha la quota maggiore di utilizzo globale ed è la piattaforma preferita dalla maggior parte degli sviluppatori. Le principali tecnologie si basano sui componenti open-source di Chrome, come node.js, che utilizza il motore V8 di Chrome, e il framework Electron, basato su Chromium e node.js. L'enorme base di utenti di Chrome lo rende il bersaglio più ambito per attori malintenzionati e ricercatori di sicurezza. Nonostante gli attacchi costanti, Chrome ha mantenuto un record di sicurezza impressionante nel corso degli anni. Non è un'impresa da poco.

Chrome offre profili separati, sandboxing robusto, aggiornamenti frequenti e vanta credenziali impressionanti. Inoltre, Google offre un programma di bounty molto redditizio per la segnalazione di vulnerabilità, insieme al proprio team Project Zero. Ciò significa che un gran numero di persone di grande talento e motivate controlla e mette in sicurezza costantemente il codice di Chrome.

Considera di disabilitare l'ottimizzazione V8 (funzionalità di prestazioni del motore JavaScript) nelle impostazioni del browser - vedi questa spiegazione per i compromessi sulla sicurezza.

Blocca i tracker con uBlock Origin Lite.

Disabilita il DNS prefetching (vedi DNS Prefetching and Its Privacy Implications). Chrome potrebbe tentare di risolvere il DNS utilizzando i nameserver pubblici 8.8.8.8 e 8.8.4.4 di Google.

Vedi Chromium Security e Chromium Privacy per maggiori informazioni. Leggi la politica sulla privacy di Google per capire come vengono raccolte e utilizzate le informazioni personali.

Safari

Safari è il browser integrato di Apple ed è integrato con macOS, offrendo miglioramenti dell'efficienza della batteria sull'hardware Apple.

Safari ha componenti sia open-source che proprietari. Safari si basa sul motore web open-source WebKit, onnipresente nell'ecosistema macOS. WebKit è utilizzato dalle app Apple come Mail, Libri e App Store. Il motore Blink di Chrome è un fork di WebKit ed entrambi i motori condividono numerose somiglianze.

Safari supporta alcune funzionalità uniche che avvantaggiano la sicurezza e la privacy degli utenti. I content blockers consentono di creare regole di blocco dei contenuti senza utilizzare JavaScript. Questo approccio basato su regole migliora notevolmente l'uso della memoria, la sicurezza e la privacy. Safari 11 ha introdotto Intelligent Tracking Prevention, che rimuove i dati di tracciamento memorizzati in Safari dopo un periodo di non interazione dell'utente con il sito del tracker. Safari può randomizzare l'impronta digitale del browser per ridurre il tracciamento. Safari non supporta intenzionalmente alcune funzionalità come WebUSB o l'API Battery per motivi di sicurezza e privacy. Le schede private in Safari dispongono di cookie e cache isolati che vengono distrutti quando si chiude la scheda. Safari supporta anche i Profili, equivalenti ai containers Multi-Account di Firefox per separare cookie e navigazione. Safari può essere reso significativamente più sicuro con la modalità lockdown, che può essere disabilitata per singolo sito. Leggi ulteriori informazioni sulla protezione dal tracciamento in Safari.

Le Web Extension in Safari hanno un'opzione aggiuntiva per utilizzare codice nativo nell'ambiente sandbox di Safari, oltre alle API Web Extension. Le Web Extension in Safari sono anche distribuite tramite l'App Store di Apple. L'invio all'App Store comporta il vantaggio aggiuntivo che il codice delle Web Extension viene controllato da Apple. D'altro canto, l'invio all'App Store ha un costo elevato. La sottoscrizione per sviluppatori annuale costa 100 USD (rispetto ai 5 USD di Chrome e all'invio gratuito di Firefox). Il costo elevato è proibitivo per la maggior parte degli sviluppatori open-source. Di conseguenza, Safari ha pochissime estensioni tra cui scegliere. Tuttavia, tieni presente l'alto costo quando installi le estensioni. È prevedibile che la maggior parte delle Web Extension abbia un qualche modo di monetizzare l'utilizzo per coprire i costi di sviluppo. Evita le Web Extension senza codice open-source disponibile per la revisione.

Safari sincronizza preferenze utente e password con iCloud Keychain. La visualizzazione di una password salvata richiede l'autenticazione con la password dell'account del dispositivo corrente o un altro metodo di autenticazione configurato.

Safari implementa nuove funzionalità web più lentamente di Chrome o Firefox, ma le patch di sicurezza vengono fornite tempestivamente tramite gli aggiornamenti di sistema.

Vedi anche el1t/uBlock-Safari per disabilitare i beacon di controllo dei collegamenti ipertestuali.

Web browser privacy

I siti web deducono informazioni su browser e dispositivo dalle impostazioni, dai font, dalle dimensioni dello schermo, dalla lingua, dall'indirizzo IP e dal comportamento del browser. Queste informazioni contribuiscono al fingerprinting del browser.

Per maggiori informazioni sulla navigazione attenta alla sicurezza e su quali dati vengono inviati dal browser, vedere le risorse HowTo: Privacy & Security Conscious Browsing, browserleaks.com, Am I Unique? e EFF Cover Your Tracks.

Per ridurre il tracciamento tra siti, blocca i cookie di terze parti.

Fai attenzione anche a WebRTC, che può rivelare indirizzi IP locali o pubblici (se connessi a una VPN). In Firefox e Chrome/Chromium, questa funzionalità può essere disabilitata con uBlock Origin. La modalità lockdown disabilita WebRTC anche in Safari.

Tor

Tor è una rete di anonimato che può fornire ulteriore privacy durante la navigazione. Tor Browser è un browser modificato basato su Firefox e configurato per utilizzare la rete Tor.

Scarica Tor Browser dal Tor Project, sia i file dmg che asc per la verifica:```console $ cd ~/Downloads

$ file tor-browser-macos-* tor-browser-macos-15.0.17.dmg: XZ compressed data, checksum NONE tor-browser-macos-15.0.17.dmg.asc: PGP signature Signature (old)

$ gpg --verify tor-browser-macos-*.asc [...] gpg: Can't check signature: No public key

$ gpg --auto-key-locate nodefault,wkd --locate-keys [email protected] gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) [email protected]" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2027-07-15] Key fingerprint = EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 uid [ unknown] Tor Browser Developers (signing key) [email protected] sub rsa4096/0x157432CF78A65729 2024-07-15 [S] [expires: 2026-10-26] Key fingerprint = CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

$ gpg --verify tor-browser-macos-*.asc gpg: assuming signed data in 'tor-browser-macos-15.0.17.dmg' gpg: Signature made Sun Jun 28 15:35:20 2026 PDT gpg: using RSA key CAAE408AEBE2288E96FC5D5E157432CF78A65729 gpg: Good signature from "Tor Browser Developers (signing key) [email protected]" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 Subkey fingerprint: CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

root@kitploit:~
Assicurati che `Good signature from "Tor Browser Developers (signing key) <[email protected]>"` appaia nell'output. L'avviso è previsto, poiché la chiave non è stata verificata personalmente né aggiunta a un portachiavi attendibile.

Vedi [Come posso verificare la firma di Tor Browser?](https://support.torproject.org/tbb/how-to-verify-signature/) per maggiori informazioni.

Per completare l'installazione di Tor Browser, apri l'immagine disco e trascinala nella cartella Applicazioni, oppure usa i comandi:```bash
hdiutil mount tor-browser-macos-15.0.17.dmg
cp -r /Volumes/Tor\ Browser/Tor\ Browser.app/ ~/Applications/

Verifica che l'applicazione sia stata firmata con l'Apple Developer ID di The Tor Project (MADPSAYN6T):```console $ spctl --assess -vv ~/Applications/Tor\ Browser.app /Users/user1/Applications/Tor Browser.app: accepted source=Notarized Developer ID origin=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)

$ pkgutil --check-signature ~/Applications/Tor\ Browser.app Package "Tor Browser.app": Status: signed by a certificate trusted by macOS Certificate Chain: 1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T) Expires: 2028-10-11 17:57:46 +0000 SHA256 Fingerprint: 76 3C 89 02 ED CB AD 8E 59 86 1E 93 D3 05 5B 28 F9 04 0C 96 03 8B 16 28 9F 38 64 ED 53 45 B4 DA ------------------------------------------------------------------------ 2. Developer ID Certification Authority Expires: 2031-09-17 00:00:00 +0000 SHA256 Fingerprint: F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F D1 44 71 5F 35 06 43 D2 DF 3A ------------------------------------------------------------------------ 3. Apple Root CA Expires: 2035-02-09 21:40:36 +0000 SHA256 Fingerprint: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

root@kitploit:~
Il comando `codesign` può essere utilizzato anche per esaminare la firma del codice di un'applicazione:```console
$ codesign -dvv ~/Applications/Tor\ Browser.app
Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=805 flags=0x10000(runtime) hashes=14+7 location=embedded
Signature size=9054
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jun 28, 2026 at 14:01:57
Notarization Ticket=stapled
Info.plist entries=27
TeamIdentifier=MADPSAYN6T
Runtime Version=15.5.0
Sealed Resources version=2 rules=13 files=208
Internal requirements count=1 size=188

Per visualizzare i dettagli completi del certificato per un'applicazione firmata, estrai con codesign e decodifica con openssl:```console $ codesign -d --extract-certificates ~/Applications/Tor\ Browser.app Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox

$ file codesign* codesign0: Certificate, Version=3 codesign1: Certificate, Version=3 codesign2: Certificate, Version=3 Certificate, Version=02

$ openssl x509 -inform der -in codesign0 -subject -issuer -startdate -enddate -noout subject= /UID=MADPSAYN6T/CN=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)/OU=MADPSAYN6T/O=The Tor Project, Inc/C=US issuer= /CN=Developer ID Certification Authority/OU=G2/O=Apple Inc./C=US notBefore=Oct 11 17:57:47 2023 GMT notAfter=Oct 11 17:57:46 2028 GMT

$ openssl x509 -inform der -in codesign0 -fingerprint -noout SHA256 Fingerprint=76:3C:89:02:ED:CB:AD:8E:59:86:1E:93:D3:05:5B:28:F9:04:0C:96:03:8B:16:28:9F:38:64:ED:53:45:B4:DA

root@kitploit:~
Il Tor Browser può utilizzare metodi di connessione speciali chiamati [pluggable transports](https://support.torproject.org/tor-browser/circumvention/) per rendere il traffico più difficile da identificare o bloccare. Questo può essere fatto configurando un [relay](https://support.torproject.org/relays/) o usando un [bridge](https://bridges.torproject.org/) esistente.

La rete Tor offre [anonimato](https://www.privateinternetaccess.com/blog/2013/10/how-does-privacy-differ-from-anonymity-and-why-are-both-important/), che non è necessariamente la stessa cosa della privacy. La rete non difende da un osservatore globale in grado di effettuare analisi e correlazione del traffico. Vedi anche [Seeking Anonymity in an Internet Panopticon](https://bford.info/pub/net/panopticon-cacm.pdf) e [Traffic Correlation on Tor by Realistic Adversaries](https://www.ohmygodel.com/publications/usersrouted-ccs13.pdf).

Vedi [Tor Protocol Specification](https://spec.torproject.org/tor-spec/) per maggiori informazioni.

Vedi anche [Invisible Internet Project (I2P)](https://geti2p.net/en/about/intro) e il suo [confronto con Tor](https://geti2p.net/en/comparison/tor).

# VPN

Scegli un provider VPN o una configurazione self-hosted con un protocollo moderno e documentato e client ben sottoposti a audit. Evita protocolli obsoleti come [PPTP](https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security) in favore di [OpenVPN](https://en.wikipedia.org/wiki/OpenVPN) o [WireGuard](https://www.wireguard.com/) [su una VM Linux](https://github.com/mrash/Wireguard-macOS-LinuxVM) o tramite un set di [strumenti cross-platform](https://www.wireguard.com/xplatform/).

Alcuni client VPN potrebbero inviare traffico attraverso la successiva interfaccia di rete disponibile quando la connessione viene interrotta o disconnessa. Vedi [scy/8122924](https://gist.github.com/scy/8122924) per un esempio su come consentire il traffico solo tramite VPN.

Vedi le guide per configurare una VPN [IPsec](https://en.wikipedia.org/wiki/Ipsec) su una macchina virtuale ([hwdsl2/setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)) o un container Docker ([hwdsl2/docker-ipsec-vpn-server](https://github.com/hwdsl2/docker-ipsec-vpn-server)).

Può valere la pena considerare la posizione geografica del provider VPN. Vedi ulteriore discussione in [issue 114](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/114).

Vedi anche questa [panoramica tecnica](https://blog.timac.org/2018/0717-macos-vpn-architecture/) del client VPN L2TP/IPsec integrato in macOS e di [IKEv2](https://en.wikipedia.org/wiki/IKEv2).

# PGP/GPG

PGP è uno standard per cifrare e firmare dati, soprattutto email. Può proteggere il contenuto dei messaggi tra corrispondenti che scambiano e verificano correttamente le chiavi, ma non protegge i metadati come i destinatari e l'oggetto delle email.

GPG (GNU Privacy Guard) è un programma open-source con licenza GPL conforme allo standard PGP. Può verificare le firme del software e cifrare i file [simmetricamente](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) o usando [chiavi pubbliche](https://en.wikipedia.org/wiki/Public-key_cryptography).

Installa GnuPG con Homebrew (`brew install gnupg`) oppure installa [GPG Suite](https://gpgtools.org/).

Scarica [gpg.conf](https://github.com/drduh/YubiKey-Guide/blob/main/config/gpg.conf) per utilizzare le impostazioni consigliate:```bash
curl -o ~/.gnupg/gpg.conf \
  https://raw.githubusercontent.com/drduh/YubiKey-Guide/main/config/gpg.conf

Vedi drduh/YubiKey-Guide per generare e gestire le credenziali.

Email

L'email non è progettata per garantire una forte privacy per impostazione predefinita: il contenuto dei messaggi può essere conservato dai fornitori di servizi, copiato nelle cassette postali dei destinatari, inoltrato o esposto attraverso la compromissione dell'account. I metadati (inclusi destinatario, oggetto, timestamp e informazioni sul server di posta) generalmente rimangono visibili anche quando il contenuto del messaggio è crittografato.

Thunderbird

Thunderbird è un client di posta elettronica libero e open-source con supporto standard per IMAP, POP, CalDAV e CardDAV. È una scelta adatta per accedere alla posta e conservare copie locali invece di dipendere esclusivamente dal server remoto di un fornitore.

Thunderbird include il supporto per la crittografia email OpenPGP, che può proteggere il contenuto dei messaggi e fornire firme crittografiche. Verifica sempre le impronte delle chiavi pubbliche attraverso un canale indipendente prima di fare affidamento su una chiave per comunicazioni sensibili.

La funzione di archiviazione dei messaggi può spostare i messaggi dai server di posta remoti in una Cartella locale, migliorando la privacy.

Messaggistica

XMPP

XMPP è un protocollo aperto sviluppato dall'IETF che supporta la messaggistica federata e multipiattaforma. Esistono molte opzioni di client. Prendi in considerazione l'utilizzo di uno dei client basati su browser per sfruttare la sandbox del browser.

A seconda del fornitore, potresti non aver bisogno di altro che di un nome utente e una password per creare un account.

XMPP non è crittografato end-to-end (E2EE) per impostazione predefinita; usa OMEMO con un client compatibile.

Signal

Signal è un messenger E2EE popolare il cui protocollo double-ratchet è utilizzato da molte altre applicazioni, tra cui WhatsApp, Google Messages e Facebook Messenger.

Per usare l'app desktop di Signal, Signal deve prima essere installato su un telefono.

Consulta la guida a Signal di EFF per ulteriori indicazioni.

iMessage

iMessage è il messenger di prima parte di Apple. Per usarlo è necessario un Apple Account.

Abilita la Verifica delle chiavi di contatto e verifica i contatti.

iMessage può essere utilizzato con un numero di telefono o un'email.

[!WARNING] Per impostazione predefinita, il backup di iCloud è abilitato, il che archivia copie delle chiavi di crittografia dei messaggi sui server di Apple senza E2EE. Disabilita il backup di iCloud oppure abilita la Protezione avanzata dei dati per evitarlo. Ricorda ai destinatari dei messaggi di fare lo stesso.

Malware

Vedi Metodi di persistenza del malware su Mac OS X e Persistenza del malware su OS X Yosemite per imparare come persiste il malware comune su macOS.

Per esempi delle capacità avanzate del malware macOS, consulta il materiale di Hacking Team. Per ulteriori analisi, vedi l'installazione root per MacOS, il driver di supporto per Mac Agent e RCS Agent per Mac.

Vedi anche Una breve analisi di un installer di RCS Implant e reverse.put.as.

Scaricare Software

Le applicazioni dall'App Store o notarizzate da Apple possono ridurre il rischio di malware, ma nessuno dei due processi garantisce la sicurezza. Apple esegue controlli automatizzati sulle app notarizzate e le app dell'App Store sono soggette a revisione. Altrimenti, ottieni il software da fonti indicate dallo sviluppatore come ufficiali e verifica che il sito web o il download da riga di comando utilizzi HTTPS.

App Sandbox

Controlla se un'applicazione utilizza App Sandbox:```bash codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 | grep -A2 com.apple.security.app-sandbox

root@kitploit:~
Con App Sandbox abilitato, l'output dovrebbe essere:```console
[Key] com.apple.security.app-sandbox
[Value]
    [Bool] true

Activity Monitor può anche indicare se è abilitato con la colonna "Sandbox" visualizzata:```bash defaults write com.apple.ActivityMonitor "UserColumnsPerTab v6.0"
-dict-add 0 '(Command, CPUUsage, CPUTime, Threads, IdleWakeUps, Architecture, GPUUsage, GPUTime, PID, UID, Sandbox, restricted)'

root@kitploit:~
App Store software is required to use App Sandbox. Applications such as Google Chrome use their own [sandbox](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md) and might not use App Sandbox.

> [!NOTE]
> La sandboxing limita l'accesso predefinito di un'applicazione, ma entitlements e permessi concessi dall'utente possono ampliare l'accesso.

## Hardened Runtime

Verifica se un'applicazione utilizza [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime):```bash
codesign --display --verbose /path/to/application.app

Se Hardened Runtime è abilitato, flags=0x10000(runtime) apparirà nell'output.

Elenca tutte le applicazioni con questa funzionalità abilitata:```bash for app in /Applications/.app /System/Applications/.app; do if codesign -dvv "$app" 2>&1 | grep -q 'flags=0x10000(runtime)'; then echo "$app" fi done

root@kitploit:~
**Activity Monitor** offre la possibilità di visualizzare una colonna "Limitata" che indica se un programma è limitato dall'iniezione di codice tramite il [dynamic linker](https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html) di macOS.

Hardened Runtime è un prerequisito per la notarizzazione delle app distribuite.

## Antivirus

Per scansionare file e applicazioni, prendi in considerazione il caricamento su [VirusTotal](https://www.virustotal.com/gui/home/upload), tenendo presente che ciò li rende visibili pubblicamente.

macOS include un software antivirus integrato chiamato [XProtect](https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8), che viene eseguito in background e aggiorna automaticamente le firme utilizzate per rilevare il malware. Se viene rilevato malware, XProtect tenta di rimuoverlo e metterlo in quarantena.

Controlla lo stato degli aggiornamenti di XProtect:```bash
xprotect version

Applicazioni come BlockBlock o hazcod/maclaunch possono aiutare a prevenire o rilevare malware persistenti.

Il software antivirus può aiutare a rilevare malware comuni, ma può anche aumentare la superficie d'attacco perché spesso viene eseguito con ampi privilegi di sistema. Alcuni prodotti possono anche inviare telemetria o campioni al fornitore.

Vedi Sophail: Applied attacks against Antivirus, Analysis and Exploitation of an ESET Vulnerability, Popular Security Software Came Under Relentless NSA and GCHQ Attacks e How Israel Caught Russian Hackers Scouring the World for U.S. Secrets.

Gatekeeper

Gatekeeper verifica la notarizzazione e la provenienza del software.

Gatekeeper avvisa quando si apre un'applicazione senza notarizzazione. Può essere aggirato selezionando l'applicazione elencata in Impostazioni di Sistema > Privacy e Sicurezza dopo un tentativo fallito.

Controlla se Gatekeeper è abilitato:```bash spctl --status --verbose

root@kitploit:~
# Protezione dell'integrità di sistema

Per verificare che la Protezione dell'integrità di sistema sia attiva, usa il comando `csrutil status`, che dovrebbe restituire: `System Integrity Protection status: enabled.` In caso contrario, [attiva SIP](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection) usando la [Modalità di ripristino](https://support.apple.com/102518).

# Metadati e artefatti

macOS associa metadati ([attributi estesi APFS](https://en.wikipedia.org/wiki/Extended_file_attributes#macOS)) ai file.

Alcuni attributi di metadati possono essere visualizzati e rimossi con i comandi [`mdls`](https://ss64.com/mac/mdls.html) e [`xattr`](https://ss64.com/mac/xattr.html). I file di preferenze (`plist`) possono essere letti e modificati con [`defaults`](https://ss64.com/mac/defaults.html).

I metadati di sistema e delle applicazioni si trovano in:

- `~/Library/Preferences/`
- `~/Library/Containers/<APP>/Data/Library/Preferences`
- `/Library/Preferences`

Informazioni Bluetooth:

- `/Library/Preferences/com.apple.Bluetooth.plist`

Cache dei lavori di stampa:

- `/var/spool/cups`

Dispositivi iOS collegati in precedenza:

- `/Users/$USER/Library/Preferences/com.apple.iPod.plist`
- `/Library/Preferences/com.apple.iPod.plist`

Preferenze di Finder:

- `~/Library/Preferences/com.apple.finder.plist`
- `~/Library/Preferences/com.apple.sidebarlists.plist`

Dati diagnostici:

- `/var/db/CoreDuet`
- `/var/db/diagnostics`
- `/var/db/systemstats`
- `/var/db/uuidtext`
- `/var/log/DiagnosticMessages`

Suggerimenti ortografici e linguistici:

- `~/Library/LanguageModeling`
- `~/Library/Spelling`
- `~/Library/Suggestions`

Stato delle applicazioni:

- `~/Library/Saved\ Application\ State`
- `~/Library/Containers/<APPNAME>/Data/Library/Saved\ Application\ State`

Metadati di salvataggio automatico:

- `~/Library/Containers/<APP>/Data/Library/Autosave\ Information`
- `~/Library/Autosave\ Information`

Analisi di Siri:

- `~/Library/Assistant/SiriAnalytics.db`

Cronologia di QuickTime Player:

- `~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist`

Metadati vari:

- `~/Library/Containers/com.apple.appstore/Data/Library/Preferences/com.apple.commerce.knownclients.plist`
- `~/Library/Preferences/com.apple.commerce.plist`
- `~/Library/Preferences/com.apple.QuickTimePlayerX.plist`

# Autenticazione

L'app [Passwords](https://support.apple.com/guide/passwords/the-passwords-app-mchl901b1b95/mac) crea [credenziali sicure](https://support.apple.com/guide/security/automatic-strong-passwords-secc84c811c4/web). Supporta le [passkeys](https://fidoalliance.org/passkeys/), credenziali progettate per resistere al phishing quando vengono utilizzate con servizi compatibili.

[KeePassXC](https://keepassxc.org/) è un gestore di password open source e multipiattaforma da prendere in considerazione. Supporta l'autenticazione forte con token hardware compatibili e un'estensione del browser per inserire le credenziali automaticamente.

Le password memorabili possono essere create con [Diceware](https://secure.research.vt.edu/diceware/).

Assicurati che gli account online abbiano [l'autenticazione multifattore](https://en.wikipedia.org/wiki/Multi-factor_authentication) attiva. Preferisci autenticazioni resistenti al phishing, come token hardware o passkey con servizi supportati. Le app di autenticazione sono preferibili ai codici SMS, ma qualsiasi MFA è meglio di una sola password.

[YubiKey](https://www.yubico.com/products/) è un token di autenticazione hardware popolare. Può anche memorizzare chiavi per attività di crittografia, firma e autenticazione - vedi [drduh/YubiKey-Guide](https://github.com/drduh/YubiKey-Guide).

GnuPG può anche gestire password e altri file crittografati - vedi [drduh/Purse](https://github.com/drduh/Purse) e [drduh/pwd.sh](https://github.com/drduh/pwd.sh).

# Backup

Crittografa i file localmente prima di eseguirne il backup su supporti esterni o servizi online.

Segui il [modello di backup 3-2-1](https://www.cisa.gov/sites/default/files/publications/data_backup_options.pdf): conserva tre copie dei dati importanti, archiviali su almeno due tipi diversi di supporti e tieni almeno una copia in una posizione fisica separata.

## Time Machine

[Time Machine](https://support.apple.com/104984) è lo strumento integrato per la gestione dei backup su macOS. Usa un'unità esterna o uno storage di rete per creare backup [crittografati](https://support.apple.com/guide/mac-help/keep-your-time-machine-backup-disk-secure-mh21241).

## GnuPG

[GnuPG](https://www.gnupg.org/) può essere usato con una password o una chiave pubblica, con la chiave privata memorizzata su [YubiKey](https://github.com/drduh/YubiKey-Guide).

Comprimi e crittografa una directory usando una password:```bash
tar zcvf - ~/Downloads |
  gpg -c > ~/Downloads/backup-$(date +%F-%H%M%S).tar.gz.gpg

Decifra e decomprimi la directory:```bash gpg -o ~/Downloads/decrypted-backup.tar.gz -d ~/Downloads/backup-*.tar.gz.gpg tar zxvf ~/Downloads/decrypted-backup.tar.gz

root@kitploit:~
## Disk Utility

È possibile creare volumi crittografati usando [Disk Utility](https://support.apple.com/guide/disk-utility/toc) o `hdiutil`:```bash
hdiutil create ~/Downloads/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Downloads/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff

Altro

Anche Tresorit e restic possono essere di interesse.

Wi-Fi

I nomi delle reti Wi-Fi, chiamati SSID, e il comportamento di probe dei dispositivi possono rivelare informazioni sulle reti vicine e su quelle utilizzate in precedenza. Le reti nascoste non offrono una privacy significativa e possono indurre i dispositivi a effettuare attivamente probe per trovarle.

Imposta un indirizzo Wi-Fi privato per ridurre il tracciamento di rete.

Imposta la sicurezza della rete wireless su WPA3. Segui le linee guida Apple per configurare le impostazioni consigliate per router e punti di accesso.

SSH

Per le connessioni SSH remote, utilizza una chiave SSH univoca protetta da passphrase o da un token hardware, verifica le chiavi host del server ed evita l'autenticazione basata su password. Vedi drduh/config/ssh_config per le opzioni client consigliate.

Un tunnel SSH può instradare in modo sicuro il traffico attraverso un altro computer, simile a una VPN. Per usare Privoxy in esecuzione su un host remoto sulla porta 8118:```bash ssh -C -L 5555:127.0.0.1:8118 [email protected] sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 5555 sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 5555

root@kitploit:~
Oppure per utilizzare una connessione SSH come [proxy SOCKS](https://www.mikeash.com/ssh_socks.html):```bash
ssh -NCD 3000 [email protected]

Per impostazione predefinita, macOS non ha Accesso remoto (server SSH) abilitato.

Per abilitare SSH e consentire le connessioni in entrata, usa Impostazioni di sistema > Generali > Condivisione oppure il comando:```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

root@kitploit:~
Disabilita l'autenticazione tramite password e considera un ulteriore [rafforzamento](https://stribika.github.io/2015/01/04/secure-secure-shell.html) della configurazione del server SSH. Consulta [drduh/config/sshd_config](https://github.com/drduh/config/blob/main/sshd_config) per le opzioni consigliate.

Conferma che il server SSH sia in esecuzione:```bash
sudo lsof -Pni TCP:22

Physical access

Non lasciare il computer incustodito in luoghi non sicuri. Un attaccante esperto con accesso fisico non supervisionato potrebbe installare un keylogger hardware per registrare le sequenze di tasti, incluse le password. Usare un Mac con tastiera integrata o una tastiera bluetooth rende questo più difficile, poiché molte versioni commerciali di questo attacco sono progettate per essere inserite tra una tastiera USB e il computer.

Per ridurre le conseguenze del furto mentre un Mac è in uso, considera l'uso di buskill/buskill-app o Lennolium/swiftGuard.

Considera l'acquisto di un filtro per la privacy per l'uso in pubblico.

Smalto per unghie e sigilli anti-manomissione possono essere applicati ai componenti per rilevare manomissioni.

Monitoring

Logs

Monitora i log di sistema con Console o con il comando log stream.

Stampa tutti i log di sistema degli ultimi 5 minuti in formato syslog classico:```bash log show --last 5m --style syslog

root@kitploit:~
I didn't receive any content in the "INPUT" section of this chunk. Please provide the Markdown text to translate, and I'll translate it into Italian.```bash
log show --last 5m --style json

Output JSON delimitato da nuove righe (un oggetto JSON per riga); richiesto per jq:```bash log show --last 5m --style ndjson

root@kitploit:~
Filtra i messaggi per sottosistema, ad esempio da `com.apple.SoftwareUpdate`:```bash
log show --last 1h --style json \
  --predicate 'subsystem == "com.apple.SoftwareUpdate"'

Filtra i messaggi per contenuto, ad esempio contenenti failed:```bash log show --last 1h --predicate 'eventMessage CONTAINS "failed"'

root@kitploit:~
Filtro dei messaggi senza distinzione tra maiuscole e minuscole:```bash
log show --last 1h --predicate 'eventMessage CONTAINS[c] "error"'

Conta i messaggi di errore distinti con jq:```bash log show --last 1h --style ndjson
--predicate 'eventMessage CONTAINS[c] "error"' | jq -r '.eventMessage' | sort | uniq -c | sort -nr | head -100

root@kitploit:~
Esporta i log in un archivio, che può essere aperto con Console:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive

DTrace

Il System Integrity Protection interferisce con DTrace e deve essere parzialmente disabilitato prima dell'uso.

  • iosnoop monitora l'I/O del disco
  • opensnoop monitora le aperture di file
  • execsnoop monitora i processi
  • errinfo monitora le chiamate di sistema fallite
  • dtruss monitora tutte le chiamate di sistema

Vedere man -k dtrace per maggiori informazioni.

Processi

Elenca i processi in esecuzione con Activity Monitor o con il comando ps.

Rete

Elenca le connessioni di rete aperte:```bash sudo lsof -Pni

root@kitploit:~
Elenca il contenuto di varie strutture dati relative alla rete:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq

Wireshark

Wireshark può essere utilizzato dalla riga di comando con tshark.

Sostituisci en0 con l'interfaccia attiva mostrata da networksetup -listallhardwareports.

[!IMPORTANT] Cattura il traffico solo su reti e sistemi che sei autorizzato a monitorare.

Monitora DNS:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,

root@kitploit:~
Monitoraggio HTTP:```bash
/Applications/Wireshark.app/Contents/MacOS/tshark -i en0 \
  -Y "http.request or http.response" -Tfields \
  -e ip.dst \
  -e http.request.full_uri \
  -e http.request.method \
  -e http.response.code \
  -e http.response.phrase \
  -Eseparator=/s

Monitora i certificati TLS:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "ssl.handshake.certificate" -Tfields
-e ip.src
-e x509sat.uTF8String
-e x509sat.printableString
-e x509sat.universalString
-e x509sat.IA5String
-e x509sat.teletexString
-Eseparator=/s -Equote=d

root@kitploit:~
# Varie

## Salvaschermo

Imposta lo schermo per bloccarsi non appena si avvia il salvaschermo:```bash
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0

Dati diagnostici

Disattiva Diagnostica e dati di utilizzo.

Disattiva il crash reporter (la finestra che appare dopo il crash di un'applicazione e richiede di segnalare il problema ad Apple):```bash defaults write com.apple.CrashReporter DialogType none

root@kitploit:~
## Media player

Usa [QuickTime Player](https://en.wikipedia.org/wiki/Quicktime_player), l'applicazione multimediale integrata, per riprodurre file musicali e video. Utilizza [App Sandbox](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox), [Hardened Runtime](https://developer.apple.com/documentation/xcode/configuring-the-hardened-runtime), e beneficia della [Signed System Volume](https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web) come parte del sistema di base.

## File handlers

Gestisci i [gestori di file predefiniti](https://support.apple.com/guide/mac-help/choose-an-app-to-open-a-file-on-mac-mh35597) per ridurre il rischio di aprire determinati tipi di file.

Cambia l'app predefinita per i file di script in modo che aprirli mostri il loro contenuto invece di eseguirli.

In Finder, individua e seleziona un qualsiasi file .sh, fai clic con il tasto destro su di esso e seleziona Informazioni oppure premi <kbd>Command</kbd> + <kbd>I</kbd>. Nella sezione "Apri con", seleziona TextEdit dal menu a tendina. Se non è elencato, seleziona "Altro..." e Applicazioni > TextEdit.app. Seleziona "Cambia tutto..." e conferma scegliendo Continua.

## Finder options

Mostra i file nascosti e la cartella Library in Finder:```bash
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library

Mostra tutte le estensioni dei file:```bash defaults write NSGlobalDomain AppleShowAllExtensions -bool true

root@kitploit:~
Non salvare per impostazione predefinita i documenti su iCloud:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

Umask personalizzata

Imposta una umask personalizzata:```bash sudo launchctl config user umask 077

root@kitploit:~
Riavvia, quindi crea un file/directory e verifica i permessi (per impostazione predefinita macOS consente l'accesso in lettura a 'gruppo/altri'):```console
$ ls -ld umask*
drwx------@ 2 user1 staff  64 Jul 26 12:00 umask.dir
-rw-------@ 1 user1 staff  32 Jul 26 12:00 umask.txt

Inserimento da tastiera

Abilita l'inserimento sicuro da tastiera nel Terminale (questo potrebbe interferire con applicazioni come TextExpander).

Hardening della rete

Disabilita gli annunci multicast di Bonjour (questo disabilita anche le funzionalità AirPlay e AirPrint):```bash sudo defaults write /Library/Preferences/com.apple.mDNSResponder
NoMulticastAdvertisements -bool YES

root@kitploit:~
[Disattiva Handoff](https://support.apple.com/guide/mac-help/change-airdrop-handoff-settings-mchl6a407f99) e le funzionalità [Bluetooth](https://support.apple.com/guide/mac-help/turn-bluetooth-on-or-off-blth1008).

## Sudoers

macOS include questa riga in `/etc/sudoers`:```bash
Defaults env_keep += "HOME MAIL"

Questo impedisce a sudo di modificare HOME quando i privilegi vengono elevati. Di conseguenza, i programmi eseguiti con sudo potrebbero utilizzare i file di configurazione dalla home directory dell'utente che invoca il comando. Valuta di rimuovere HOME da env_keep a meno che questo comportamento non sia specificamente richiesto.

Per mantenere la comodità che l'utente root abbia come home directory quella di un utente non root, aggiungi una riga di export a /var/root/.zshrc, ad esempio:```bash export HOME=/Users/user1

root@kitploit:~
# Software correlati

Software | Categoria | Descrizione
:-: | :-: | :-
[lynis](https://github.com/CISOfy/lynis) | Scanner di audit | Strumento di audit di sicurezza multipiattaforma che controlla la configurazione di sistema e suggerisce miglioramenti di hardening.
[zentral](https://github.com/zentralopensource/zentral) | Piattaforma di monitoraggio e configurazione | Server di gestione flotte per endpoint macOS; raccoglie inventario, eventi, audit e risultati di osquery. Ideale per ambienti gestiti.
[osquery](https://github.com/osquery/osquery) | Motore di monitoraggio | Espone lo stato del sistema operativo come tabelle SQL, consentendo controlli ripetibili di processi, utenti, elementi di avvio, connessioni di rete e altro.
[pareto-mac](https://github.com/paretoSecurity/pareto-mac) | Scanner di audit | Applicazione dalla barra dei menu che verifica un Mac rispetto alle comuni raccomandazioni di sicurezza di base.

# Risorse aggiuntive

- [Panoramica su sicurezza e privacy di iCloud](https://support.apple.com/102651)
- [Guida all'autodifesa dalla sorveglianza dell'EFF](https://ssd.eff.org/)
- [beerisgood/macOS_Hardening](https://github.com/beerisgood/macOS_Hardening)
- [Blog sul reverse engineering di macOS](https://reverse.put.as/)
- [Risorse sul reverse engineering](http://samdmarshall.com/re.html)
- [Blog di Malwarebytes](https://www.malwarebytes.com/blog)
- [Blog di Objective-See](https://objective-see.com/blog.html)
- [Benchmark CIS](https://www.cisecurity.org/benchmark/apple_os/)
- [Open source di Apple](https://opensource.apple.com/)
- [iOS, il futuro di macOS, libertà, sicurezza e privacy in un ambiente globale sempre più ostile](https://gist.github.com/iosecure/357e724811fe04167332ef54e736670d)
Scarica lo strumento
  • In definitiva, la sicurezza di un sistema dipende dalle capacità e dalle abitudini del suo amministratore.
  • Fai attenzione quando installi nuovo software: installalo solo da fonti che lo sviluppatore indica come ufficiali, come il loro sito web o il repository GitHub.
AvversarioMotivazioneCapacitàMitigazione
CoinquilinoVedere chat private o cronologia di navigazioneVicinanza fisica; può vedere lo schermo o osservare le credenzialiUsa autenticazione biometrica (impronta digitale o viso), usa un filtro per la privacy dello schermo, tieni il telefono bloccato quando non lo usi
LadroSbloccare il telefono e rubare informazioni personali e svuotare i conti bancari, vendere il telefono per denaroOsservare la password mentre viene inserita, rubare un dispositivo acceso e lasciato incustoditoMantenere il controllo fisico del dispositivo in ogni momento, bloccare i dispositivi quando non in uso, evitare di digitare la password in pubblico, usare Trova il mio o servizi simili per tracciare o disabilitare da remoto i dispositivi rubati
CriminaleGuadagno finanziarioIngegneria sociale (indurre l'utente a rivelare informazioni o compiere azioni non sicure), malware facilmente disponibile, riutilizzo delle password, sfruttamento di vulnerabilitàIsolare il software con sandbox, attivare le funzioni di sicurezza del sistema operativo, mantenere gli aggiornamenti software automatici
AziendaMarketing basato sui dati degli utentiRaccolta di telemetria e dati comportamentaliBloccare le connessioni di rete, reimpostare gli identificatori specifici del dispositivo, evitare di aggiungere dati di pagamento
Stato-nazione/APTSorveglianza mirataSorveglianza passiva dell'infrastruttura internet, analisi avanzata della crittografiaUsare software open source, credenziali diceware forti, hardware con elemento sicuro, spegnere i dispositivi quando non in uso, avvisi tripwire/honeypot/canary tokens
ComandoAttività
sudo pfctl -t blocklist -T showmostra la blocklist
sudo pfctl -s rulesmostra le regole attive
sudo pfctl -s statesmostra la tabella degli stati
sudo ifconfig pflog0 createcrea l'interfaccia di log dei pacchetti
sudo tcpdump -ni pflog0monitora i pacchetti bloccati
CommandTask
launchctl listmostra i job utente
sudo launchctl listmostra i job di sistema
launchctl list com.apple.Finderesamina un servizio
systemextensionsctl listelenca le estensioni di sistema
ls /System/Library/LaunchDaemonselenca i daemon di sistema
ls /System/Library/LaunchAgentselenca gli agenti di sistema