
Guía curada de seguridad y privacidad para macOS con instrucciones prácticas para el modelado de amenazas, el cifrado de disco, la configuración del firewall, la autenticación segura y el endurecimiento de la red.
Esta guía es una colección de técnicas para mejorar la seguridad y privacidad de macOS en Macs con Apple silicon. Está dirigida a usuarios experimentados que quieren adoptar prácticas de seguridad comúnmente usadas por organizaciones, pero también es adecuada para usuarios novatos interesados en la privacidad y la seguridad.
Para Macs gestionados por organizaciones, consulta el macOS Security Compliance Project, mantenido por el U.S. National Institute of Standards and Technology.
Esta guía se proporciona "tal cual", sin garantías de ningún tipo. Eres el único responsable de cualquier consecuencia derivada de seguirla.
Aplica las mejores prácticas generales de seguridad:
Crea un modelo de amenazas
Mantén el sistema y el software actualizados
softwareupdate. Ninguna requiere una Cuenta de Apple.Cifra los datos sensibles
Garantiza la disponibilidad de los datos
El paso más importante para mejorar de forma significativa la seguridad y la privacidad es crear un modelo de amenazas: una descripción general de lo que quieres proteger, quién podría intentar acceder a ello, cómo podría hacerlo y qué controles justifican ciertos sacrificios de usabilidad. Esto permite comprender a los posibles adversarios y sus motivaciones, lo que lleva a defensas más sólidas.
Los activos pueden incluir un teléfono, un portátil, credenciales e información personal, como el historial de navegación.
Enuméralos en orden de importancia, comenzando por los que más merece la pena proteger.
Define frente a quién te defiendes. Empieza definiendo la motivación que cada adversario podría tener para atacar activos importantes. El beneficio económico es un gran motivador para muchos atacantes, por ejemplo.
Para cada adversario, enumera qué pueden y qué no pueden hacer, ordenándolos de menor a mayor capacidad. Por ejemplo, un ladrón ocasional actúa oportunistamente: probablemente será derrotado por controles básicos, como el bloqueo de pantalla y el almacenamiento cifrado con contraseñas seguras. Un adversario más sofisticado y decidido puede requerir apagar por completo el dispositivo cuando no se usa para borrar las credenciales de la memoria y mecanismos de autenticación más sólidos.
Elige la mejor mitigación para cada amenaza. Por ejemplo, evita escribir las contraseñas en papel si un compañero de piso pudiera encontrarlas, o cifra el almacenamiento para proteger sus datos si es robado.
La seguridad debe equilibrarse con la usabilidad: cada mitigación debería contrarrestar alguna capacidad adversaria para justificar cualquier incomodidad. Deja de añadir defensas cuando los riesgos restantes sean aceptables para una situación. Revisa el modelo cuando cambien los dispositivos, los datos, los viajes, el trabajo o los adversarios.
La siguiente tabla es un ejemplo de un modelo de amenazas sencillo:
Lee más sobre modelado de amenazas.
El hardware con Apple silicon ofrece funciones de seguridad respaldadas por hardware, incluida la protección de claves basada en Secure Enclave y opciones de seguridad de arranque más sólidas. En general, es la plataforma preferida para las protecciones que se tratan en esta guía.
Algunos Mac basados en Intel, especialmente los modelos con hardware vulnerable de la era T2, se ven afectados por vulnerabilidades de hardware que una actualización de macOS no puede corregir por completo.
Evita el hardware que no sea de Apple que ejecute macOS y los sistemas que no admitan la última versión de macOS, ya que Apple no corrige todas las vulnerabilidades en versiones heredadas.
Los accesorios de Apple generalmente reciben actualizaciones de firmware a través de macOS y admiten las funciones de seguridad de Bluetooth actuales. Por ejemplo, la privacidad de Bluetooth Low Energy (BLE) utiliza direcciones de dispositivo rotativas para reducir el rastreo; los accesorios de terceros pueden no admitir esta función.
Hay varias formas de instalar macOS.
Instala la versión más reciente compatible de macOS; las versiones más nuevas de macOS incluyen correcciones de seguridad y otras mejoras no disponibles en versiones anteriores.
Durante la instalación, los Mac con Apple silicon se ponen en contacto con el servicio de activación de Apple para confirmar que el dispositivo no está reportado como perdido o robado. Lee sobre cómo funciona este proceso.
Una Cuenta de Apple es opcional para el uso básico de macOS, pero es necesaria para la App Store y muchos servicios de Apple. Revisa los ajustes de privacidad de datos antes de activar funciones.
Activa el cifrado de extremo a extremo para iCloud y revisa los datos de la Cuenta de Apple.
La App Store es una plataforma de distribución de software donde las aplicaciones son revisadas por Apple.
Las aplicaciones de la App Store deben usar App Sandbox y Hardened Runtime (funciones de seguridad que restringen lo que las aplicaciones pueden hacer, dificultando algunos ataques). También ofrece actualizaciones automáticas de software.
Usar la App Store requiere una Cuenta de Apple, lo que puede suponer un riesgo para la privacidad.
La virtualización permite que otro sistema operativo se ejecute en una máquina virtual aislada. En Apple silicon, macOS puede ejecutar invitados macOS compatibles y Windows 11 para ARM usando aplicaciones como las siguientes:
[!WARNING] VMware requiere una cuenta de Broadcom y la aceptación de los acuerdos antes de la descarga. Parallels requiere una cuenta, datos de pago y otros datos; consulta el aviso de privacidad.
Apple Container es una herramienta de línea de comandos para ejecutar contenedores Linux en macOS. A diferencia de los tiempos de ejecución de contenedores que comparten una única máquina virtual Linux, Apple Container ejecuta cada contenedor en una máquina virtual aislada y ligera utilizando las capacidades de virtualización de macOS. Esto proporciona un límite de aislamiento más fuerte entre las cargas de trabajo y el sistema operativo anfitrión.
Cuando macOS se inicia por primera vez, el Asistente de configuración requiere la creación de una cuenta principal.
Establece una contraseña larga y única. Deja en blanco el campo de pista de contraseña.
Evita nombres que permitan identificarte: el nombre del equipo (como "MacBook de John Appleseed") se difunde por las redes locales y es visible para otros dispositivos.
El nombre del sistema se puede configurar en Ajustes del Sistema > Información o con los comandos de scutil:```bash
sudo scutil --set ComputerName MacBook
sudo scutil --set HostName MacBook
sudo scutil --set LocalHostName MacBook
# Cuentas de administrador y de usuario
La primera cuenta creada es una cuenta de administrador. Los administradores pueden cambiar la configuración de todo el sistema y ejecutar comandos con [sudo](https://en.wikipedia.org/wiki/Sudo), que otorga temporalmente privilegios elevados. Cualquier programa que ejecute el administrador podría obtener el mismo acceso; sudo también puede tener [vulnerabilidades](https://bogner.sh/2014/03/another-mac-os-x-sudo-password-bypass/).
Se considera una [buena práctica](https://help.apple.com/machelp/mac/10.12/index.html#/mh11389) utilizar una cuenta estándar dedicada para el trabajo habitual diario y usar la cuenta de administrador únicamente para la instalación, configuración y actualización de software y del sistema.
No es necesario iniciar sesión con la cuenta de administrador a través de la pantalla de inicio de sesión de macOS. Cuando un comando de Terminal requiere privilegios de administrador, el sistema solicitará autenticación y Terminal continuará usando esos privilegios. Con ese fin, Apple ofrece [recomendaciones](https://support.apple.com/102099) para ocultar la cuenta de administrador y su directorio personal.
## Advertencias
- Solo los administradores pueden instalar aplicaciones en el directorio `/Applications` del sistema. Finder e Instalador solicitan a un usuario estándar que introduzca las credenciales de un administrador cuando se requiere aprobación. Algunas aplicaciones se pueden instalar en `~/Applications`; las aplicaciones que no requieren acceso de administrador deben instalarse en el directorio del usuario. Las aplicaciones de la App Store se siguen instalando en `/Applications` y no requieren autenticación adicional.
- Un usuario estándar normalmente no está autorizado a usar `sudo`. Cuando se requieren privilegios de administrador, macOS solicita las credenciales de un administrador, o la tarea puede ejecutarse desde una cuenta de administrador.
- Ajustes del Sistema y varias utilidades del sistema (por ejemplo, Diagnóstico de Wi-Fi) requieren permiso de administrador para funcionar por completo. Algunos ajustes de Sistema deben desbloquearse seleccionando el icono del candado. Algunas aplicaciones simplemente solicitarán autenticación al abrirse; otras deben abrirse directamente desde una cuenta de administrador para acceder a todas las funciones (por ejemplo, Consola).
- Algunas aplicaciones de terceros asumen que el usuario actual es administrador y no funcionarán desde una cuenta estándar.
- Consulte el [issue 167](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/167) para consideraciones adicionales.
## Configuración
Las cuentas se pueden crear y administrar en Ajustes del Sistema. En sistemas existentes, generalmente es más fácil crear una segunda cuenta de administrador y luego cambiar la cuenta original de administrador a estándar. En sistemas recién instalados, se debe añadir una cuenta estándar después de la configuración.
La degradación de una cuenta se puede realizar desde la nueva cuenta de administrador en Ajustes del Sistema.
Consulte también [esta publicación](https://superuser.com/a/395738) para obtener más información sobre cómo macOS determina la pertenencia a grupos.
# Firmware
Verifique que la seguridad del firmware esté establecida en [Seguridad total](https://support.apple.com/guide/mac-help/mchl768f7291/mac) para evitar la manipulación del sistema. Esta es la configuración predeterminada.
# FileVault
Los Mac con Apple silicon utilizan cifrado de almacenamiento respaldado por hardware de forma predeterminada. [FileVault](https://support.apple.com/guide/mac-help/protect-data-on-your-mac-with-filevault-mh11785/mac) además requiere la contraseña de un usuario autorizado para desbloquear el volumen de arranque después de reiniciar.
En Apple silicon, la autorización de FileVault también protege el [firmware](https://support.apple.com/102384), lo que impide arrancar desde cualquier dispositivo distinto al disco de arranque designado, acceder a [Recuperación](https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/15.0/mac/15.0#mchl5abfbb29) y [revivirlo](https://support.apple.com/108900) con el modo de actualización del firmware del dispositivo (DFU).
FileVault solicitará establecer una clave de recuperación, que debe guardarse en un lugar seguro si se utiliza. FileVault también ofrece la opción de usar iCloud para la recuperación.
Confirme el estado de FileVault:```bash
fdesetup status
Modo de bloqueo reduce significativamente la superficie de ataque al deshabilitar funciones del sistema y de aplicaciones que suelen explotarse en ataques sofisticados.
Cuando el Modo de bloqueo está activado, Safari tiene una opción para excluir sitios web de confianza de las restricciones.
Hay varios tipos de cortafuegos disponibles para macOS.
[!NOTE] Si el malware obtiene control de administrador, puede deshabilitar o eludir las políticas del cortafuegos; no confíes en un cortafuegos local como protección sólida contra un compromiso total del sistema.
El cortafuegos integrado proporciona protección básica y solo bloquea conexiones entrantes. No puede supervisar ni bloquear conexiones salientes.
Se puede controlar mediante la pestaña Cortafuegos de Red en Ajustes del Sistema, o con el siguiente comando:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
### Modo sigiloso
Los atacantes escanean con frecuencia las redes para identificar sistemas a los que atacar. Cuando el [modo sigiloso](https://support.apple.com/guide/mac-help/use-stealth-mode-to-keep-your-mac-more-secure-mh17133/mac) está activado, no se envían respuestas a los intentos de conexión desde puertos cerrados, lo que hace que el sistema sea más difícil de detectar.
Activa el modo sigiloso:```bash
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Por defecto, el firewall permite conexiones entrantes para software firmado por Apple o por un desarrollador identificado. Deshabilitar estas reglas hace que macOS pregunte antes de permitir que una aplicación acepte conexiones entrantes:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
### Recargar firewall
Después de cambiar la configuración con `socketfilterfw`, recarga el servicio de firewall para aplicar la nueva configuración:```bash
sudo pkill -HUP socketfilterfw
Confirmar el estado del firewall:```bash
for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps
do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag"
done
O usando [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType
Habilitar el firewall de la capa de aplicación y deshabilitar las conexiones entrantes para el software integrado impide que AirDrop funcione. Para que AirDrop funcione, concede excepciones de firewall a sharingd y 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
## Firewalls de terceros
Aplicaciones como [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html), [Radio Silence](https://radiosilenceapp.com/) y [LuLu](https://objective-see.com/products/lulu.html) ofrecen un equilibrio entre usabilidad y seguridad.
Estos programas son capaces de monitorizar y bloquear tanto conexiones entrantes como salientes. Sin embargo, pueden requerir una [extensión del sistema](https://support.apple.com/HT210999) de código cerrado.
Si los avisos frecuentes de permitir o bloquear resultan abrumadores, permite temporalmente las conexiones mientras también las registras ([modo Silent Allow](https://help.obdev.at/littlesnitch6/concepts-opmodes) en Little Snitch). Revisa la configuración para comprender y controlar la actividad de red.
## Filtro de paquetes
macOS también incluye [pf](https://en.wikipedia.org/wiki/PF_(firewall)), un firewall de filtrado de paquetes configurado desde la línea de comandos. Es potente, pero considerablemente más complejo que el firewall de aplicaciones integrado.
pf también puede controlarse con una aplicación gráfica como [Murus](https://www.murusfirewall.com/).
Muchos [libros](https://nostarch.com/book-of-pf-4e) y [guías](https://www.openbsd.org/faq/pf/) cubren el firewall pf. El siguiente ejemplo muestra cómo configurar una política básica.
### Configuración de ejemplo de pf
Agrega las siguientes reglas a un archivo llamado `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 ejemplo avanzado de configuración de pf está disponible en pf/pf.rules.
Para controlar el firewall:
| Comando | Tarea |
|---|---|
sudo pfctl -e -f pf.rules | habilita el firewall con el archivo de configuración |
sudo pfctl -t blocklist -T add 1.2.3.4 | añade la dirección IPv4 a la tabla de bloqueo |
sudo pfctl -d | desactiva el firewall |
Para monitorear el firewall:
pf puede bloquear rangos de direcciones de red, por ejemplo, los de una organización completa. Consulta Merit RADb para obtener la lista de redes en uso por un sistema autónomo (una red grande operada por una sola organización), como Facebook:```bash whois -h whois.radb.net '!gAS32934'
Agrega la lista de redes devuelta a la lista de bloqueo:```bash
sudo pfctl -t blocklist -T add $(whois -h whois.radb.net '!gAS32934' | sed -n '2p')
Confirma que las direcciones fueron añadidas:```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 ...
Confirma que el tráfico de red está bloqueado hacia esas direcciones (las solicitudes DNS seguirán funcionando):```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
El firewall descarta los paquetes iniciales necesarios para iniciar la conexión TCP, por lo que la conexión agota el tiempo de espera.
Consulta drduh/config/scripts/pf-blocklist.sh para más inspiración.
Muchos servicios de fondo del sistema y del usuario están gestionados por launchd.
Las cuentas de administrador pueden modificar servicios y extensiones en Ajustes del Sistema.
Para leer una configuración de servicio:```bash defaults read /System/Library/LaunchAgents/com.apple.Finder
> [!IMPORTANT]
> Los servicios del sistema están protegidos por [SIP](https://github.com/drduh/macOS-Security-and-Privacy-Guide#system-integrity-protection); deshabilitar SIP para modificar servicios del sistema puede comprometer la seguridad y causar inestabilidad del sistema.
Para ver el estado de los servicios:```bash
find /var/db/com.apple.xpc.launchd \
-type f -print -exec defaults read {} \; 2>/dev/null
Consulta la gestión de scripts con launchd y launchd.info para más información.
Las Sugerencias de Siri y Spotlight pueden enviar algunas consultas o información de uso a Apple, según las funciones habilitadas. En Ajustes del Sistema, busca Siri y Spotlight, luego desactiva las sugerencias en línea y configura las categorías que se excluirán de la indexación o las sugerencias. Revisa la política de Búsqueda y Privacidad de Apple para obtener más información.
Si un programa no está disponible a través de la App Store, considera usar Homebrew.
[!IMPORTANT] Algunos flujos de trabajo de instalación o gestión de Homebrew pueden solicitar Administración de Apps o Acceso completo al disco. Otorga estos permisos solo cuando los comprendas completamente y sean necesarios.
Ejecuta periódicamente brew upgrade en redes confiables y seguras para instalar actualizaciones de software. Para obtener información sobre un paquete antes de la instalación, ejecuta brew info <package> y revisa su fórmula en línea. Habilita opciones de seguridad adicionales, como HOMEBREW_NO_INSECURE_REDIRECT=1
Según los análisis anónimos de Homebrew, Homebrew recopila análisis de uso anónimos y los reporta a una instancia de InfluxDB autoalojada.
Para no participar en los análisis de Homebrew, ejecuta brew analytics off o establece HOMEBREW_NO_ANALYTICS=1 en el archivo de inicio del shell.
macOS incluye «perfiles de configuración de DNS» para configurar DNS cifrado, filtrado y DNSSEC.
Los perfiles de DNS se pueden crear u obtener de proveedores como Quad9, AdGuard y NextDNS.
Usa el archivo hosts para bloquear dominios asociados con malware, publicidad y otros servicios no deseados.
Para bloquear un dominio mediante un registro A, añade cualquiera de las siguientes líneas a /etc/hosts:```
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
> [!NOTE]
> IPv6 usa registros AAAA en lugar de registros A: bloquea las conexiones IPv6 incluyendo entradas `::1 example.com`.
Existen muchas listas de dominios en línea. Antes de añadir una a `/etc/hosts`, asegúrate de que cada entrada comience con `0`, `0.0.0.0` o `127.0.0.1`, y conserva la entrada `127.0.0.1 localhost`.
Las listas de hosts populares incluyen:
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts)
- [Sinfonietta/hostfiles](https://github.com/Sinfonietta/hostfiles)
- [someonewhocares.org](https://someonewhocares.org/hosts/zero/hosts)
Para descargar y añadir una lista al archivo de hosts, usa el 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 también admite listas de bloqueo.
Para cifrar el tráfico DNS, considere DNSCrypt/dnscrypt-proxy. Cuando se configura con un resolvedor de confianza, DNSCrypt cifra las consultas DNS. DNSSEC puede, además, validar las respuestas DNS firmadas donde sea compatible.
Instale DNSCrypt desde Homebrew y siga las instrucciones para configurar e iniciar dnscrypt-proxy:```bash
brew install dnscrypt-proxy
Cuando uses DNSCrypt con Dnsmasq, localiza el archivo de configuración de DNSCrypt ejecutando:```bash
brew info dnscrypt-proxy | grep dnscrypt-proxy.toml | head -1
Este comando debería mostrar una ruta como /opt/homebrew/etc/dnscrypt-proxy.toml.
Por defecto, dnscrypt-proxy escucha en 127.0.0.1:53 y envía consultas a uno o más proveedores DNS configurados. Modifica la configuración y cambia listen_addresses para usar un puerto distinto al 53, como el 5355:```toml
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Iniciar DNSCrypt:```bash
sudo brew services restart dnscrypt-proxy
Confirma que DNSCrypt está en ejecución:```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
Adicionalmente, estas reglas de pf bloquean el tráfico DNS convencional hacia el puerto 53 fuera de la interfaz de loopback, para reducir el riesgo de [fugas de 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 puede almacenar en caché las respuestas, evitar consultas upstream para nombres no cualificados y bloquear dominios de nivel superior completos.
Úsalo en combinación con DNSCrypt para cifrar el tráfico DNS.
Si no usas DNSCrypt, elige al menos un resolvedor DNS distinto del proporcionado por el ISP. Dos alternativas populares son Google DNS y OpenDNS.
Instala Dnsmasq:```bash brew install dnsmasq
Descarga y edita [drduh/config/dnsmasq.conf](https://github.com/drduh/config/blob/main/dnsmasq.conf) o el archivo de configuración predeterminado.
Consulta [drduh/config/domains](https://github.com/drduh/config/tree/main/domains) para ver listas de dominios de ejemplo que se pueden agregar para bloquear destinos específicos.
Instala e inicia el programa (se requiere sudo para vincular el [puerto privilegiado](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
Para configurar dnsmasq como el servidor DNS local, abre Configuración del sistema > Red y selecciona la conexión de red actualmente en uso (como Wi-Fi), luego abre la pestaña DNS, selecciona + y añade 127.0.0.1, o usa:```bash
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Confirma que Dnsmasq está configurado:```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] Algunas aplicaciones VPN sobrescriben la configuración de DNS al conectarse. Consulte el issue 24 y drduh/config/scripts/macos-dns.sh.
macOS incluye un conjunto de autoridades de certificación raíz (CA) de confianza administradas por corporaciones, gobiernos y otras organizaciones de todo el mundo. Una CA de confianza puede emitir certificados que macOS y los navegadores pueden aceptar para conexiones HTTPS, lo que convierte al almacén de CA raíz en una parte crítica del límite de confianza del sistema.
Inspeccione System Roots para comprender el almacén raíz de confianza proporcionado por Apple mediante Keychain Access o la herramienta de línea de comandos security y el archivo /System/Library/Keychains/SystemRootCertificates.keychain. Keychain Access también se puede iniciar con el comando:```bash
open "/System/Library/CoreServices/Applications/Keychain Access.app"
También revisa cualquier certificado que pueda haber sido agregado por un usuario, administrador, cliente VPN, producto de seguridad o aplicación de gestión de dispositivos móviles en los llaveros **inicio de sesión**, **Elementos locales** y **Sistema**.
Para deshabilitar un certificado seleccionado, modifica su ajuste de Confianza a **No confiar nunca** y cierra la ventana para confirmarlo. Esto puede reducir el riesgo de ataques [MITM](https://wikipedia.org/wiki/Man-in-the-middle_attack), en los que se utiliza un certificado fraudulento para [interceptar silenciosamente](https://en.wikipedia.org/wiki/DigiNotar#Issuance_of_fraudulent_certificates) el tráfico cifrado.
> [!WARNING]
> Eliminar o modificar los ajustes de confianza de la autoridad de certificación puede romper sitios web, actualizaciones de software, redes empresariales, VPN, portales cautivos y otros servicios.
Consulta las listas de [certificados de confianza disponibles](https://support.apple.com/103723) y [certificados bloqueados](https://support.apple.com/103247#blocked) de Apple para obtener información actualizada sobre el almacén de confianza.
# Privoxy
Considera usar [Privoxy](https://www.privoxy.org/) como proxy local para filtrar el tráfico web.
Instala e inicia Privoxy usando Homebrew:```bash
brew install privoxy
brew services start privoxy
Alternativamente, un paquete de instalación firmado para Privoxy está disponible en su sitio web o en Sourceforge. El paquete firmado es más seguro que la versión de Homebrew y recibe soporte del proyecto Privoxy.
Por defecto, Privoxy escucha en el puerto TCP local 8118.
Configure el proxy HTTP del sistema para la interfaz de red activa en 127.0.0.1 y el puerto 8118:```bash
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Configura el proxy **HTTPS** del sistema:```bash
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
El proxy también se puede configurar en Configuración del sistema > Red > Detalles > Proxies.
Confirma que el proxy está configurado:```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 }
Aunque la mayor parte del tráfico web está cifrado, Privoxy puede filtrar las solicitudes por nombre de host. Por ejemplo, las siguientes reglas bloquean todo el tráfico excepto el tráfico hacia .net, github.com y los dominios de Apple:```console
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
Para bloquear dominios de Facebook:```console { +block{facebook} } .cdninstagram. .facebook*. .fb. .fbcdn*. .fbinfra. .fbsbx. .fbstatic*. .fbsv. .fburl. .instagr.am .tfbnw. .thefacebook. fb*.akamaihd.net
Consulta [drduh/config/privoxy/config](https://github.com/drduh/config/blob/main/privoxy/config) y [drduh/config/privoxy/user.action](https://github.com/drduh/config/blob/main/privoxy/user.action) para ver más ejemplos de Privoxy. Privoxy **no** necesita reiniciarse después de editar las reglas de filtrado.
Para verificar que el tráfico está bloqueado o redirigido, usa [curl](https://en.wikipedia.org/wiki/CURL) o abre la interfaz de Privoxy en <http://p.p> en un navegador:```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] Las aplicaciones y los servicios pueden ignorar la configuración del proxy. pf puede redirigir el tráfico a través de un proxy sin configurar cada aplicación por separado.
Los navegadores web crean riesgos importantes de seguridad y privacidad porque descargan y ejecutan contenido de Internet no confiable.
Una frontera de seguridad clave del navegador es la política de mismo origen (SOP), que impide que un sitio web lea los datos de otro sitio web. Una evasión puede exponer datos o acciones de otros sitios en el mismo perfil del navegador.
Algunos ataques al navegador se basan en convencer al usuario de que instale software, otorgue permisos o use una extensión maliciosa. Tenga especial cuidado con descargas inesperadas, avisos de extensiones y solicitudes para ejecutar comandos en Terminal.
Las extensiones del navegador también representan un riesgo de seguridad significativo: una extensión maliciosa o mal diseñada puede comprometer todo en el navegador, incluidas las credenciales. El uso de extensiones del navegador debe limitarse a las estrictamente necesarias, publicadas únicamente por desarrolladores confiables.
Use perfiles de navegador separados para diferentes identidades y propósitos. Si es práctico, deshabilite JavaScript y permítalo solo en sitios de confianza mediante los permisos de sitio del navegador.
Mozilla Firefox, Google Chrome, Safari y Tor Browser son navegadores populares, cada uno con características únicas y propósitos individuales.
Firefox modernizó partes importantes de su base de código mediante los proyectos Quantum y Photon. Quantum incluye mover algunos componentes de C++ a Rust, un lenguaje de programación diseñado para mejorar la seguridad de la memoria y la seguridad de concurrencia.
Firefox ofrece un modelo de seguridad comparable al de Chrome, incluido un programa de recompensas por errores para la divulgación responsable de vulnerabilidades. Firefox sigue un ciclo de publicación de cuatro semanas.
Consulte drduh/config/firefox.user.js y arkenfox/user.js para configuraciones recomendadas. Vea también NoScript, una extensión que permite el bloqueo selectivo de scripts.
Firefox se centra en la privacidad del usuario. Admite protección contra el rastreo en el modo de Navegación privada. La protección contra el rastreo se puede habilitar para la cuenta predeterminada, aunque puede afectar la experiencia de navegación en algunos sitios web.
Firefox, en el modo estricto de protección contra el rastreo, aleatorizará las huellas digitales para defenderse del rastreo. Firefox ofrece perfiles de usuario separados. La navegación también se puede delimitar con Multi-Account Containers.
Firefox solo admite Web Extensions a través de la API de WebExtension, que es muy similar a la de Chrome. El envío de Web Extensions en Firefox es gratuito. Las Web Extensions en Firefox suelen ser de código abierto, aunque ciertas Web Extensions son propietarias.
Google Chrome se basa en el proyecto Chromium de código abierto. Chrome incluye algunos componentes propietarios, actualizaciones automáticas, un visor de PDF, soporte de códecs multimedia, informes de fallos e integración con la cuenta de Google. Revise la configuración de privacidad de Chrome y las políticas de privacidad de Google para obtener más información.
Chrome ofrece sincronización de cuenta entre varios dispositivos, incluidas las credenciales; los datos se cifran con la contraseña de la cuenta.
Chrome tiene la mayor cuota de uso global y es la plataforma objetivo preferida por la mayoría de los desarrolladores. Las principales tecnologías se basan en los componentes de código abierto de Chrome, como node.js, que usa el motor V8 de Chrome, y el framework Electron, que se basa en Chromium y node.js. La vasta base de usuarios de Chrome lo convierte en el objetivo más atractivo para los actores de amenazas y los investigadores de seguridad. A pesar de los ataques constantes, Chrome ha mantenido un historial de seguridad impresionante a lo largo de los años. Esto no es poca cosa.
Chrome ofrece perfiles separados, sandboxing robusto, actualizaciones frecuentes y cuenta con credenciales impresionantes. Además, Google ofrece un programa de recompensas muy lucrativo por reportar vulnerabilidades, junto con su propio equipo Project Zero. Esto significa que una gran cantidad de personas altamente talentosas y motivadas auditan y aseguran constantemente el código de Chrome.
Considere deshabilitar la optimización de V8 (funciones de rendimiento del motor de JavaScript) en la configuración del navegador; consulte esta explicación para conocer las compensaciones de seguridad.
Bloquee los rastreadores con uBlock Origin Lite.
Deshabilite la precarga de DNS (consulte DNS Prefetching and Its Privacy Implications). Chrome puede intentar resolver DNS usando los servidores de nombres públicos 8.8.8.8 y 8.8.4.4 de Google.
Consulte Chromium Security y Chromium Privacy para obtener más información. Lea la política de privacidad de Google para comprender cómo se recopila y utiliza la información personal.
Safari es el navegador integrado de Apple y está integrado con macOS, lo que proporciona mejoras de eficiencia energética en el hardware de Apple.
Safari tiene componentes tanto de código abierto como propietarios. Safari se basa en el motor web de código abierto WebKit, que es omnipresente en el ecosistema macOS. WebKit es utilizado por aplicaciones de Apple como Mail, Books y App Store. El motor Blink de Chrome es una bifurcación de WebKit y ambos motores comparten una serie de similitudes.
Safari admite ciertas características únicas que benefician la seguridad y la privacidad del usuario. Content blockers permiten la creación de reglas de bloqueo de contenido sin usar JavaScript. Este enfoque basado en reglas mejora enormemente el uso de memoria, la seguridad y la privacidad. Safari 11 introdujo Intelligent Tracking Prevention, que elimina los datos de rastreo almacenados en Safari después de un período de no interacción del usuario con el sitio web del rastreador. Safari puede aleatorizar la huella digital del navegador para reducir el rastreo. Safari no admite ciertas características como WebUSB o la API de Battery de forma intencional por razones de seguridad y privacidad. Las pestañas privadas de Safari tienen cookies y caché aisladas que se destruyen al cerrar la pestaña. Safari también admite perfiles, que equivalen a los Multi-Account Containers de Firefox para separar cookies y navegación. Safari puede hacerse significativamente más seguro con el modo de bloqueo, que se puede deshabilitar por sitio. Lea más sobre la prevención del rastreo en Safari.
Las Web Extensions en Safari tienen una opción adicional para usar código nativo en el entorno sandbox de Safari, además de las API de Web Extension. Las Web Extensions en Safari también se distribuyen a través de Apple App Store. El envío a App Store tiene el beneficio adicional de que el código de Web Extension es auditado por Apple. Por otro lado, el envío a App Store tiene un costo elevado. La tarifa anual de suscripción para desarrolladores cuesta 100 USD (en contraste con la tarifa de 5 USD de Chrome y el envío gratuito de Firefox). El alto costo es prohibitivo para la mayoría de los desarrolladores de código abierto. Como resultado, Safari tiene muy pocas extensiones para elegir. Sin embargo, tenga en cuenta el alto costo al instalar extensiones. Se espera que la mayoría de las Web Extensions tengan alguna forma de monetizar el uso para cubrir los costos de desarrollo. Evite las Web Extensions sin código abierto disponible para revisión.
Safari sincroniza las preferencias y contraseñas del usuario con iCloud Keychain. Ver una contraseña guardada requiere autenticación con la contraseña de la cuenta del dispositivo actual u otro método de autenticación configurado.
Safari implementa nuevas características web más lentamente que Chrome o Firefox, pero los parches de seguridad se entregan rápidamente a través de las actualizaciones del sistema.
Vea también el1t/uBlock-Safari para deshabilitar las balizas de auditoría de hipervínculos.
Los sitios web infieren información sobre el navegador y el dispositivo a partir de la configuración, las fuentes, el tamaño de pantalla, el idioma, la dirección IP y el comportamiento del navegador. Esta información contribuye a la huella digital del navegador.
Para obtener más información sobre la navegación consciente de la seguridad y qué datos envía el navegador, consulte los recursos HowTo: Privacy & Security Conscious Browsing, browserleaks.com, Am I Unique? y EFF Cover Your Tracks.
Para reducir el rastreo entre sitios, bloquee las cookies de terceros.
Tenga también en cuenta WebRTC, que puede revelar direcciones IP locales o públicas (si está conectado a una VPN). En Firefox y Chrome/Chromium, esta característica se puede deshabilitar con uBlock Origin. El modo de bloqueo también deshabilita WebRTC en Safari.
Tor es una red de anonimato que puede proporcionar privacidad adicional durante la navegación. Tor Browser es un navegador modificado basado en Firefox configurado para usar la red Tor.
Descargue Tor Browser desde Tor Project, tanto los archivos dmg como asc para la verificación:```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
Asegúrate de que `Good signature from "Tor Browser Developers (signing key) <[email protected]>"` aparezca en la salida. La advertencia es esperada, ya que la clave no ha sido verificada personalmente ni añadida a un keyring de confianza.
Consulta [¿Cómo puedo verificar la firma de Tor Browser?](https://support.torproject.org/tbb/how-to-verify-signature/) para más información.
Para terminar de instalar Tor Browser, abre la imagen de disco y arrástrala a la carpeta Aplicaciones, o usa los comandos:```bash
hdiutil mount tor-browser-macos-15.0.17.dmg
cp -r /Volumes/Tor\ Browser/Tor\ Browser.app/ ~/Applications/
Verifica que la aplicación fue firmada por el ID de desarrollador de Apple de 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
El comando `codesign` también puede usarse para examinar la firma de código de una aplicación:```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
Para ver los detalles completos del certificado de una aplicación firmada, extraiga con codesign y decodifique 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
Tor Browser puede usar métodos de conexión especiales llamados [transportes conectables](https://support.torproject.org/tor-browser/circumvention/) para hacer que el tráfico sea más difícil de identificar o bloquear. Esto se puede hacer configurando un [relé](https://support.torproject.org/relays/) o utilizando un [puente](https://bridges.torproject.org/) existente.
La red Tor proporciona [anonimato](https://www.privateinternetaccess.com/blog/2013/10/how-does-privacy-differ-from-anonymity-and-why-are-both-important/), que no es necesariamente lo mismo que privacidad. La red no defiende contra un observador global capaz de realizar análisis de tráfico y correlación. Véase también [En busca del anonimato en un panóptico de Internet](https://bford.info/pub/net/panopticon-cacm.pdf) y [Correlación de tráfico en Tor por adversarios realistas](https://www.ohmygodel.com/publications/usersrouted-ccs13.pdf).
Consulte la [Especificación del protocolo Tor](https://spec.torproject.org/tor-spec/) para obtener más información.
Véase también el [Proyecto Internet Invisible (I2P)](https://geti2p.net/en/about/intro) y su [comparación con Tor](https://geti2p.net/en/comparison/tor).
# VPN
Elija un proveedor de VPN o una configuración autoalojada con un protocolo moderno y documentado y clientes bien auditados. Evite protocolos obsoletos como [PPTP](https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security) en favor de [OpenVPN](https://en.wikipedia.org/wiki/OpenVPN) o [WireGuard](https://www.wireguard.com/) [en una máquina virtual Linux](https://github.com/mrash/Wireguard-macOS-LinuxVM) o mediante un conjunto de [herramientas multiplataforma](https://www.wireguard.com/xplatform/).
Algunos clientes VPN pueden enviar tráfico a través de la siguiente interfaz de red disponible cuando la conexión se interrumpe o se desconecta. Consulte [scy/8122924](https://gist.github.com/scy/8122924) para ver un ejemplo de cómo permitir el tráfico solo a través de la VPN.
Consulte las guías para configurar una VPN [IPsec](https://en.wikipedia.org/wiki/Ipsec) en una máquina virtual ([hwdsl2/setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)) o en un contenedor Docker ([hwdsl2/docker-ipsec-vpn-server](https://github.com/hwdsl2/docker-ipsec-vpn-server)).
Puede valer la pena considerar la ubicación geográfica del proveedor de VPN. Consulte más discusión en [issue 114](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/114).
Véase también esta [descripción técnica](https://blog.timac.org/2018/0717-macos-vpn-architecture/) del cliente VPN L2TP/IPsec integrado en macOS y del cliente [IKEv2](https://en.wikipedia.org/wiki/IKEv2).
# PGP/GPG
PGP es un estándar para cifrar y firmar datos, especialmente correo electrónico. Puede proteger el contenido de los mensajes entre corresponsales que intercambian y verifican correctamente las claves, pero no protege metadatos como los destinatarios del correo y las líneas de asunto.
GPG (GNU Privacy Guard) es un programa de código abierto con licencia GPL que cumple con el estándar PGP. Puede verificar firmas de software y cifrar archivos [simétricamente](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) o mediante [claves públicas](https://en.wikipedia.org/wiki/Public-key_cryptography).
Instale GnuPG con Homebrew (`brew install gnupg`) o instale [GPG Suite](https://gpgtools.org/).
Descargue [gpg.conf](https://github.com/drduh/YubiKey-Guide/blob/main/config/gpg.conf) para usar la configuración recomendada:```bash
curl -o ~/.gnupg/gpg.conf \
https://raw.githubusercontent.com/drduh/YubiKey-Guide/main/config/gpg.conf
Ver drduh/YubiKey-Guide para generar y gestionar credenciales.
El correo electrónico no está diseñado para proporcionar privacidad fuerte por defecto: el contenido de los mensajes puede ser retenido por los proveedores de servicios, copiado a los buzones de los destinatarios, reenviado o expuesto mediante el compromiso de la cuenta. Los metadatos (incluidos destinatario, asunto, marcas de tiempo e información del servidor de correo) generalmente permanecen visibles incluso cuando el contenido del mensaje está cifrado.
Thunderbird es un cliente de correo electrónico gratuito y de código abierto con soporte estándar para IMAP, POP, CalDAV y CardDAV. Es una opción adecuada para acceder al correo y conservar copias locales en lugar de depender exclusivamente del servidor remoto de un proveedor.
Thunderbird incluye soporte para el cifrado de correo electrónico OpenPGP, que puede proteger el contenido de los mensajes y proporcionar firmas criptográficas. Verifique siempre las huellas digitales de las claves públicas a través de un canal independiente antes de confiar en una clave para comunicaciones sensibles.
La función de mensajes archivados puede mover los mensajes fuera de los servidores de correo remotos a una Carpeta Local, mejorando la privacidad.
XMPP es un protocolo abierto desarrollado por el IETF que admite mensajería federada multiplataforma. Hay muchas opciones de clientes. Considere usar uno de los clientes basados en navegador para aprovechar el sandbox del navegador.
Dependiendo del proveedor, es posible que no necesite nada más que un nombre de usuario y una contraseña para configurar una cuenta.
XMPP no está cifrado de extremo a extremo (E2EE) por defecto; use OMEMO con un cliente compatible.
Signal es un mensajero E2EE popular cuyo protocolo double-ratchet es utilizado por muchas otras aplicaciones, incluidas WhatsApp, Google Messages y Facebook Messenger.
Para usar la aplicación de escritorio de Signal, primero debe instalar Signal en un teléfono.
Consulte la guía de Signal de la EFF para obtener orientación adicional.
iMessage es el mensajero de primera parte de Apple. Requiere una Apple Account para usarse.
Active la Verificación de clave de contacto y verifique los contactos.
iMessage se puede usar con un número de teléfono o un correo electrónico.
[!WARNING] Por defecto, la copia de seguridad de iCloud está habilitada, lo que almacena copias de las claves de cifrado de los mensajes en los servidores de Apple sin E2EE. Ya sea deshabilitando la copia de seguridad de iCloud o habilitando la Protección Avanzada de Datos puede evitar esto. Recuerde a los destinatarios de mensajes que hagan lo mismo.
Consulte Métodos de persistencia de malware en Mac OS X y Persistencia de malware en OS X Yosemite para aprender cómo persiste el malware común de macOS.
Para ver ejemplos de capacidades avanzadas de malware en macOS, consulte el material de Hacking Team. Para más análisis, consulte instalación root para macOS, controlador de soporte para Mac Agent y RCS Agent para Mac.
Consulte también Un breve análisis de un instalador de implante RCS y reverse.put.as.
Las aplicaciones de la App Store o notarizadas por Apple pueden reducir el riesgo de malware, pero ninguno de los dos procesos garantiza la seguridad. Apple realiza comprobaciones automáticas en las aplicaciones notarizadas, y las aplicaciones de la App Store se someten a revisión. De lo contrario, obtenga el software de fuentes identificadas por el desarrollador como oficiales y verifique que la descarga desde el sitio web o la línea de comandos use HTTPS.
Compruebe si una aplicación usa App Sandbox:```bash
codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 |
grep -A2 com.apple.security.app-sandbox
Con App Sandbox habilitado, la salida debería ser:```console
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
Monitor de Actividad también puede indicar si está habilitado con la columna "Sandbox" visible:```bash
defaults write com.apple.ActivityMonitor "UserColumnsPerTab v6.0"
-dict-add 0 '(Command, CPUUsage, CPUTime, Threads, IdleWakeUps, Architecture, GPUUsage, GPUTime, PID, UID, Sandbox, restricted)'
El software de App Store debe usar App Sandbox. Aplicaciones como Google Chrome usan su propio [sandbox](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md) y podrían no usar App Sandbox.
> [!NOTE]
> El sandboxing limita el acceso predeterminado de una aplicación, pero los entitlements y los permisos otorgados por el usuario pueden ampliar el acceso.
## Hardened Runtime
Verifica si una aplicación usa [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime):```bash
codesign --display --verbose /path/to/application.app
Si Hardened Runtime está habilitado, flags=0x10000(runtime) aparecerá en la salida.
Lista todas las aplicaciones con esta función habilitada:```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
**Activity Monitor** tiene la opción de mostrar una columna "Restricted" que indica que un programa está restringido para inyectar código a través del [enlazador dinámico](https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html) de macOS.
Hardened Runtime es un requisito previo para la notarización de aplicaciones distribuidas.
## Antivirus
Para escanear archivos y aplicaciones, considera subirlos a [VirusTotal](https://www.virustotal.com/gui/home/upload), teniendo en cuenta que esto los hace visibles públicamente.
macOS incluye un software antivirus integrado llamado [XProtect](https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8), que se ejecuta en segundo plano y actualiza automáticamente las firmas utilizadas para detectar malware. Si se detecta malware, XProtect intenta eliminarlo y ponerlo en cuarentena.
Comprueba el estado de actualización de XProtect:```bash
xprotect version
Aplicaciones como BlockBlock o hazcod/maclaunch pueden ayudar a prevenir o detectar malware persistente.
El software antivirus puede ayudar a detectar malware común, pero también puede aumentar la superficie de ataque porque a menudo se ejecuta con amplios privilegios del sistema. Algunos productos también pueden enviar telemetría o muestras al proveedor.
Véase Sophail: ataques aplicados contra los antivirus, Análisis y explotación de una vulnerabilidad de ESET, El popular software de seguridad fue objeto de ataques implacables de la NSA y el GCHQ y Cómo Israel atrapó a los hackers rusos que buscaban secretos estadounidenses por todo el mundo.
Gatekeeper verifica la notarización y la procedencia del software.
Gatekeeper advierte al abrir una aplicación sin notarizar. Se puede omitir seleccionando la aplicación que aparece en Ajustes del Sistema > Privacidad y seguridad después de un intento fallido.
Comprueba si Gatekeeper está habilitado:```bash spctl --status --verbose
# Protección de integridad del sistema
Para verificar que la protección de integridad del sistema está habilitada, use el comando `csrutil status`, que debe devolver: `System Integrity Protection status: enabled.` De lo contrario, [habilite SIP](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection) usando [Modo de recuperación](https://support.apple.com/102518).
# Metadatos y artefactos
macOS adjunta metadatos ([atributos extendidos de APFS](https://en.wikipedia.org/wiki/Extended_file_attributes#macOS)) a los archivos.
Ciertos atributos de metadatos se pueden ver y eliminar con los comandos [`mdls`](https://ss64.com/mac/mdls.html) y [`xattr`](https://ss64.com/mac/xattr.html). Los archivos de preferencias (`plist`) se pueden leer y modificar con [`defaults`](https://ss64.com/mac/defaults.html).
Los metadatos del sistema y de las aplicaciones se pueden encontrar en:
- `~/Library/Preferences/`
- `~/Library/Containers/<APP>/Data/Library/Preferences`
- `/Library/Preferences`
Información de Bluetooth:
- `/Library/Preferences/com.apple.Bluetooth.plist`
Caché de trabajos de impresión:
- `/var/spool/cups`
Dispositivos iOS conectados anteriormente:
- `/Users/$USER/Library/Preferences/com.apple.iPod.plist`
- `/Library/Preferences/com.apple.iPod.plist`
Preferencias de Finder:
- `~/Library/Preferences/com.apple.finder.plist`
- `~/Library/Preferences/com.apple.sidebarlists.plist`
Datos de diagnóstico:
- `/var/db/CoreDuet`
- `/var/db/diagnostics`
- `/var/db/systemstats`
- `/var/db/uuidtext`
- `/var/log/DiagnosticMessages`
Sugerencias de ortografía e idioma:
- `~/Library/LanguageModeling`
- `~/Library/Spelling`
- `~/Library/Suggestions`
Estado de la aplicación:
- `~/Library/Saved\ Application\ State`
- `~/Library/Containers/<APPNAME>/Data/Library/Saved\ Application\ State`
Metadatos de guardado automático:
- `~/Library/Containers/<APP>/Data/Library/Autosave\ Information`
- `~/Library/Autosave\ Information`
Analíticas de Siri:
- `~/Library/Assistant/SiriAnalytics.db`
Historial de QuickTime Player:
- `~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist`
Metadatos varios:
- `~/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`
# Autenticación
La aplicación [Passwords](https://support.apple.com/guide/passwords/the-passwords-app-mchl901b1b95/mac) crea [credenciales seguras](https://support.apple.com/guide/security/automatic-strong-passwords-secc84c811c4/web). Admite [passkeys](https://fidoalliance.org/passkeys/), que son credenciales diseñadas para resistir el phishing cuando se usan con servicios compatibles.
[KeePassXC](https://keepassxc.org/) es un gestor de contraseñas de código abierto y multiplataforma a tener en cuenta. Admite autenticación sólida con tokens de hardware compatibles y una extensión de navegador para introducir credenciales automáticamente.
Se pueden crear contraseñas memorables con [Diceware](https://secure.research.vt.edu/diceware/).
Asegúrese de que las cuentas en línea tengan habilitada la [autenticación multifactor](https://en.wikipedia.org/wiki/Multi-factor_authentication). Prefiera la autenticación resistente al phishing, como tokens de hardware o passkeys con servicios compatibles. Las aplicaciones de autenticación son preferibles a los códigos SMS, pero cualquier MFA es mejor que la autenticación solo con contraseña.
[YubiKey](https://www.yubico.com/products/) es un token de autenticación de hardware popular. También puede almacenar claves para tareas de cifrado, firma y autenticación - consulte [drduh/YubiKey-Guide](https://github.com/drduh/YubiKey-Guide).
GnuPG también puede gestionar contraseñas y otros archivos cifrados - consulte [drduh/Purse](https://github.com/drduh/Purse) y [drduh/pwd.sh](https://github.com/drduh/pwd.sh).
# Copia de seguridad
Cifre los archivos localmente antes de respaldarlos en medios externos o servicios en línea.
Siga el [modelo de copia de seguridad 3-2-1](https://www.cisa.gov/sites/default/files/publications/data_backup_options.pdf): conserve tres copias de los datos importantes, guárdelas en al menos dos tipos diferentes de medios y mantenga al menos una copia en una ubicación física separada.
## Time Machine
[Time Machine](https://support.apple.com/104984) es la herramienta integrada para gestionar copias de seguridad en macOS. Use un disco externo o almacenamiento en red para crear copias de seguridad [cifradas](https://support.apple.com/guide/mac-help/keep-your-time-machine-backup-disk-secure-mh21241).
## GnuPG
[GnuPG](https://www.gnupg.org/) se puede usar con una contraseña o clave pública, con la clave privada almacenada en [YubiKey](https://github.com/drduh/YubiKey-Guide).
Comprima y cifre un directorio usando una contraseña:```bash
tar zcvf - ~/Downloads |
gpg -c > ~/Downloads/backup-$(date +%F-%H%M%S).tar.gz.gpg
Descifrar y descomprimir el directorio:```bash gpg -o ~/Downloads/decrypted-backup.tar.gz -d ~/Downloads/backup-*.tar.gz.gpg tar zxvf ~/Downloads/decrypted-backup.tar.gz
## Disk Utility
Se pueden crear volúmenes cifrados 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
Tresorit y restic también pueden ser de interés.
Los nombres de las redes Wi-Fi, denominados SSID, y el comportamiento de sondeo de los dispositivos pueden revelar información sobre redes cercanas y utilizadas anteriormente. Las redes ocultas no proporcionan una privacidad significativa y pueden hacer que los dispositivos las sondeen activamente.
Configura una dirección Wi-Fi privada para reducir el rastreo de redes.
Configura la seguridad de la red inalámbrica en WPA3. Sigue las recomendaciones de Apple para establecer los ajustes recomendados para routers y puntos de acceso.
Para conexiones SSH remotas, usa una clave SSH única protegida con una frase de contraseña o un token de hardware, verifica las claves de host del servidor y evita la autenticación basada en contraseñas. Consulta drduh/config/ssh_config para conocer las opciones de cliente recomendadas.
Un túnel SSH puede enrutar el tráfico de forma segura a través de otro ordenador, de forma similar a una VPN. Para usar Privoxy ejecutándose en un host remoto en el puerto 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
O para usar una conexión SSH como un [proxy SOCKS](https://www.mikeash.com/ssh_socks.html):```bash
ssh -NCD 3000 [email protected]
Por defecto, macOS no tiene habilitado el Inicio de sesión remoto (servidor SSH).
Para habilitar SSH y permitir conexiones entrantes, usa Configuración del Sistema > General > Compartir o el comando:```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Deshabilita la autenticación por contraseña y considera reforzar aún más la configuración del servidor SSH. Consulta [drduh/config/sshd_config](https://github.com/drduh/config/blob/main/sshd_config) para opciones recomendadas.
Confirma que el servidor SSH está en ejecución:```bash
sudo lsof -Pni TCP:22
No deje el ordenador desatendido en lugares inseguros. Un atacante experto con acceso físico sin supervisión podría instalar un keylogger de hardware para registrar las pulsaciones de teclado, incluidas las contraseñas. Usar una Mac con teclado integrado o un teclado Bluetooth hace esto más difícil, ya que muchas versiones comerciales de este ataque están diseñadas para conectarse entre un teclado USB y el ordenador.
Para reducir las consecuencias del robo mientras se usa una Mac, considere usar buskill/buskill-app o Lennolium/swiftGuard.
Considere comprar una pantalla/filtro de privacidad para usar en público.
El esmalte de uñas y los sellos de evidencia de manipulación se pueden aplicar a los componentes para detectar manipulaciones.
Monitoree los registros del sistema con Console o el comando log stream.
Imprima todos los registros del sistema de los últimos 5 minutos en formato syslog clásico:```bash log show --last 5m --style syslog
Salida como JSON array:```bash
log show --last 5m --style json
Genera JSON delimitado por líneas nuevas (un objeto JSON por línea); requerido para jq:```bash log show --last 5m --style ndjson
Filtra mensajes por subsistema, por ejemplo de `com.apple.SoftwareUpdate`:```bash
log show --last 1h --style json \
--predicate 'subsystem == "com.apple.SoftwareUpdate"'
Filtrar mensajes por contenido, por ejemplo que contengan failed:```bash
log show --last 1h --predicate 'eventMessage CONTAINS "failed"'
Filtrado de mensajes sin distinción de mayúsculas y minúsculas:```bash
log show --last 1h --predicate 'eventMessage CONTAINS[c] "error"'
Contar mensajes de error distintos con jq:```bash
log show --last 1h --style ndjson
--predicate 'eventMessage CONTAINS[c] "error"' |
jq -r '.eventMessage' | sort | uniq -c | sort -nr | head -100
Exporta los registros a un archivo, que se puede abrir con Console:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive
La Protección de integridad del sistema interfiere con DTrace y debe estar parcialmente deshabilitada antes de su uso.
iosnoop monitorea la E/S de discoopensnoop monitorea las aperturas de archivosexecsnoop monitorea los procesoserrinfo monitorea las llamadas al sistema fallidasdtruss monitorea todas las llamadas al sistemaConsulta man -k dtrace para obtener más información.
Enumera los procesos en ejecución con Activity Monitor o el comando ps.
Enumera las conexiones de red abiertas:```bash sudo lsof -Pni
Lista el contenido de varias estructuras de datos relacionadas con la red:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq
Wireshark se puede utilizar desde la línea de comandos con tshark.
Reemplace en0 por la interfaz activa que muestre networksetup -listallhardwareports.
[!IMPORTANT] Capture tráfico solo en redes y sistemas que esté autorizado a monitorear.
Monitorizar 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=,
Monitor 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
Monitorizar certificados 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
# Misceláneos
## Protector de pantalla
Configura la pantalla para que se bloquee en cuanto se inicie el protector de pantalla:```bash
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Desactiva Diagnostics & Usage Data.
Desactiva el informe de fallos (el diálogo que aparece después de que una aplicación se bloquea y pide informar del problema a Apple):```bash defaults write com.apple.CrashReporter DialogType none
## Reproductor multimedia
Usa [QuickTime Player](https://en.wikipedia.org/wiki/Quicktime_player), la aplicación multimedia integrada, para reproducir archivos de música y vídeo. Utiliza [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), y se beneficia del [Signed System Volume](https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web) como parte del sistema base.
## Manejadores de archivos
Gestiona los [manejadores de archivos predeterminados](https://support.apple.com/guide/mac-help/choose-an-app-to-open-a-file-on-mac-mh35597) para reducir el riesgo de abrir ciertos tipos de archivo.
Cambia la aplicación predeterminada para los archivos de script de modo que abrirlos muestre su contenido en lugar de ejecutarlos.
En Finder, localiza y selecciona cualquier archivo .sh, haz clic derecho sobre él y selecciona Obtener información o pulsa <kbd>Comando</kbd> + <kbd>I</kbd>. En la sección "Abrir con", selecciona TextEdit en el menú desplegable. Si no aparece en la lista, selecciona "Otro..." y Aplicaciones > TextEdit.app. Selecciona "Cambiar todas..." y confirma seleccionando Continuar.
## Opciones de Finder
Muestra archivos ocultos y la carpeta Library en Finder:```bash
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Mostrar todas las extensiones de archivo:```bash defaults write NSGlobalDomain AppleShowAllExtensions -bool true
No guardes documentos en iCloud por defecto:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Establece un umask personalizado:```bash sudo launchctl config user umask 077
Reinicia, luego crea un archivo/directorio y verifica los permisos (el valor predeterminado de macOS permite acceso de lectura para 'grupo/otros'):```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
Habilita la entrada segura de teclado en Terminal (esto puede interferir con aplicaciones como TextExpander).
Desactiva los anuncios de multidifusión de Bonjour (esto también desactiva las funciones de AirPlay y AirPrint):```bash
sudo defaults write /Library/Preferences/com.apple.mDNSResponder
NoMulticastAdvertisements -bool YES
Desactiva las funciones de [Handoff](https://support.apple.com/guide/mac-help/change-airdrop-handoff-settings-mchl6a407f99) y [Bluetooth](https://support.apple.com/guide/mac-help/turn-bluetooth-on-or-off-blth1008).
## Sudoers
macOS incluye esta línea en `/etc/sudoers`:```bash
Defaults env_keep += "HOME MAIL"
Esto evita que sudo cambie HOME cuando se elevan los privilegios. Como resultado, los programas ejecutados con sudo pueden usar archivos de configuración del directorio home del usuario que invoca el comando. Considera eliminar HOME de env_keep a menos que este comportamiento sea específicamente requerido.
Para conservar la comodidad de que el usuario root tenga el directorio home de un usuario no root, añade una línea export a /var/root/.zshrc, por ejemplo:```bash
export HOME=/Users/user1
# Software relacionado
Software | Categoría | Descripción
:-: | :-: | :-
[lynis](https://github.com/CISOfy/lynis) | Escáner de auditoría | Herramienta de auditoría de seguridad multiplataforma que revisa la configuración del sistema y sugiere mejoras de endurecimiento.
[zentral](https://github.com/zentralopensource/zentral) | Plataforma de monitorización y configuración | Servidor de gestión de flotas para endpoints macOS; recopila inventario, eventos, auditorías y resultados de osquery. Ideal para entornos gestionados.
[osquery](https://github.com/osquery/osquery) | Motor de monitorización | Expone el estado del sistema operativo como tablas SQL, lo que permite comprobaciones repetibles de procesos, usuarios, elementos de inicio, conexiones de red y más.
[pareto-mac](https://github.com/paretoSecurity/pareto-mac) | Escáner de auditoría | Aplicación de barra de menús que comprueba un Mac frente a las recomendaciones de seguridad básicas habituales.
# Recursos adicionales
- [Descripción general de la seguridad y privacidad de iCloud](https://support.apple.com/102651)
- [Guía de autodefensa contra la vigilancia de la EFF](https://ssd.eff.org/)
- [beerisgood/macOS_Hardening](https://github.com/beerisgood/macOS_Hardening)
- [Blog de Reverse Engineering de macOS](https://reverse.put.as/)
- [Recursos de ingeniería inversa](http://samdmarshall.com/re.html)
- [Blog de Malwarebytes](https://www.malwarebytes.com/blog)
- [Blog de Objective-See](https://objective-see.com/blog.html)
- [CIS Benchmarks](https://www.cisecurity.org/benchmark/apple_os/)
- [Apple Open Source](https://opensource.apple.com/)
- [iOS, el futuro de macOS, libertad, seguridad y privacidad en un entorno global cada vez más hostil](https://gist.github.com/iosecure/357e724811fe04167332ef54e736670d)
Haz clic con cuidado
| Adversario | Motivación | Capacidades | Mitigación |
|---|
| Compañero de piso | Ver chats privados o historial de navegación | Proximidad cercana; puede ver la pantalla u observar credenciales | Usar autenticación biométrica (huella dactilar o rostro), usar pantalla de privacidad, mantener el teléfono bloqueado cuando no se use |
| Ladrón | Desbloquear el teléfono, robar información personal y vaciar cuentas bancarias, vender el teléfono por dinero | Observar la contraseña mientras se introduce, robar el dispositivo con la sesión iniciada dejado desatendido | Mantener la custodia física del dispositivo en todo momento, bloquear los dispositivos cuando no se usen, evitar escribir la contraseña en público, usar Buscar (Find My) o servicios similares para rastrear o deshabilitar de forma remota dispositivos robados |
| Delincuente | Beneficio económico | Ingeniería social (engañar al usuario para que revele información o realice acciones inseguras), malware de fácil acceso, reutilización de contraseñas, explotación de vulnerabilidades | Aislar el software con sandbox, activar las funciones de seguridad del sistema operativo, mantener las actualizaciones de software automáticas |
| Corporación | Marketing basado en los datos del usuario | Recopilación de telemetría y datos de comportamiento | Bloquear conexiones de red, restablecer identificadores específicos del dispositivo, evitar añadir datos de pago |
| Estado-nación/APT | Vigilancia dirigida | Vigilancia pasiva de la infraestructura de internet, análisis avanzado de cifrado | Usar software de código abierto, credenciales robustas tipo diceware, hardware con elemento seguro, apagar los dispositivos cuando no se usen, alertas de tripwire/honeypot/canary tokens |
| Comando | Tarea |
|---|
sudo pfctl -t blocklist -T show | muestra la lista de bloqueo |
sudo pfctl -s rules | muestra las reglas activas |
sudo pfctl -s states | muestra la tabla de estados |
sudo ifconfig pflog0 create | crea la interfaz de registro de paquetes |
sudo tcpdump -ni pflog0 | monitorea los paquetes bloqueados |
| Comando | Tarea |
|---|
launchctl list | ver trabajos de usuario |
sudo launchctl list | ver trabajos del sistema |
launchctl list com.apple.Finder | examinar un servicio |
systemextensionsctl list | listar extensiones del sistema |
ls /System/Library/LaunchDaemons | listar demonios del sistema |
ls /System/Library/LaunchAgents | listar agentes del sistema |