Esta guía es una colección de técnicas para mejorar la seguridad y privacidad de las computadoras Mac Apple Silicon que ejecutan una versión actualmente compatible de macOS. El uso de Mac con CPU Intel te deja expuesto a vulnerabilidades de seguridad a nivel de hardware que Apple no puede reparar . Los Mac de silicona de Apple son la recomendación mínima, pero como regla general, los chips más nuevos siempre son más seguros.
Esta guía está dirigida a usuarios avanzados que desean adoptar seguridad estándar empresarial, pero también es adecuada para usuarios novatos interesados en mejorar su privacidad y seguridad en una Mac.
Si está protegiendo las computadoras de una organización, utilice las pautas oficiales del NIST para macOS.
Un sistema es tan seguro como su administrador es capaz de hacerlo. No existe una única tecnología, software o técnica que garantice una seguridad informática perfecta; Un sistema operativo y una computadora modernos son muy complejos y requieren numerosos cambios incrementales para mejorar significativamente la postura de seguridad y privacidad.
Esta guía se proporciona "tal cual" sin garantías de ningún tipo. Sólo usted es responsable si rompe algo o se mete en algún tipo de problema siguiendo esta guía.
Para sugerir una mejora, envíe una solicitud de extracción o abra un problema.
Se aplican las mejores prácticas de seguridad generales:
Crear un modelo de amenaza
Mantener el sistema y el software actualizados.
softwareupdate
; ninguna de las dos requiere registrar una cuenta de Apple.Cifrar datos confidenciales
Garantizar la disponibilidad de datos
Haga clic con cuidado
El primer y más importante paso para la seguridad y la privacidad es crear un modelo de amenazas. Necesitas comprender a tus adversarios para poder defenderte de ellos. Cada persona tendrá sus propias necesidades por lo que el modelo de amenaza de cada uno será diferente. Los modelos de amenazas tienden a evolucionar con el tiempo a medida que cambia nuestra situación, así que asegúrese de reevaluar periódicamente su modelo de amenazas.
Probablemente se trate de muchas cosas: su teléfono, su computadora portátil, las contraseñas almacenadas en sus dispositivos, el historial de navegación de Internet, etc. Haga una lista comenzando con los activos más importantes a proteger. Puedes clasificarlos en categorías según su importancia: públicos, confidenciales o secretos.
Define contra quién te estás defendiendo. Empiece por definir la motivación que podrían tener para atacar sus activos. Por ejemplo, el beneficio económico es un gran motivador para muchos atacantes.
Para contrarrestar a tus adversarios, necesitarás comprender de qué son capaces y de qué no son capaces. Clasifica a los adversarios desde totalmente sencillos hasta muy avanzados. Por ejemplo, un ladrón común no es muy sofisticado; Es probable que se detengan con cosas básicas como simplemente tener una contraseña y cifrado de unidad en su dispositivo. Un adversario muy avanzado como un actor estatal podría requerir apagar completamente su dispositivo cuando no esté en uso para borrar las claves de la RAM y una contraseña larga de diceware.
Ahora es cuando decides cuál es la mejor manera de contrarrestar cada amenaza. Podrías evitar escribir las contraseñas en papel para que tu compañero de cuarto no pueda encontrarlas o podrías cifrar la unidad de tu computadora para que un ladrón no pueda obtener datos de ella. Es importante equilibrar la seguridad y la usabilidad; cada mitigación debe contrarrestar alguna capacidad de sus adversarios; de lo contrario, podría estar haciendo su vida incómoda con poco o ningún beneficio. Si no se le ocurre ninguna otra capacidad que sus adversarios puedan tener y ha implementado mitigaciones para todas ellas, su trabajo está hecho.
Aquí tienes un ejemplo del tipo de tabla que debes hacer para cada activo que quieras proteger:
Adversario | Motivación | Capacidades | Mitigación |
---|---|---|---|
Compañero de cuarto | Ver chats privados o historial de navegación | Muy cerca; puede ver la pantalla o mirar escribir la contraseña | Utilice datos biométricos, utilice la pantalla de privacidad, mantenga el teléfono bloqueado cuando no lo utilice |
Ladrón | Desbloquee el teléfono, robe información personal y vacíe cuentas bancarias, venda el teléfono por dinero | Navega con el hombro para ver la contraseña, roba el dispositivo cuando no miras mientras estás conectado | Mantenga el teléfono a la vista o cerca de la persona en todo momento, manténgalo bloqueado cuando no esté en uso, use datos biométricos para evitar escribir la contraseña en público, use Find My o un servicio similar para rastrear/deshabilitar de forma remota el dispositivo robado. |
Criminal | Financiero | Ingeniería social, malware fácilmente disponible, reutilización de contraseñas, explotación de vulnerabilidades | Utilice la zona de pruebas, habilite las funciones de seguridad en el sistema operativo, mantenga el sistema operativo y todo el software actualizados y active las actualizaciones automáticas |
Corporación | marketing de datos de usuario | Telemetría y recopilación de datos de comportamiento. | Bloquee conexiones de red, restablezca identificadores únicos, evite agregar datos de pago |
Estado nación/APT | Vigilancia dirigida | Vigilancia pasiva de la infraestructura de Internet, computadoras avanzadas para descifrar el cifrado/análisis de paquetes | Utilice e2ee de código abierto, utilice contraseñas seguras de diceware para los dispositivos, utilice hardware con elemento seguro para un cifrado seguro, apague los dispositivos cuando no los utilice, software tripwire/honeypot/canary tokens |
Lea más sobre el modelado de amenazas aquí.
macOS es más seguro al ejecutarse en hardware de Apple con Apple Silicon. Cuanto más nueva sea la Mac, mejor. Evite hackintosh y Mac que no sean compatibles con la última versión de macOS, ya que Apple no parchea todas las vulnerabilidades en versiones que no son la más reciente.
Cuando compras tu Mac, es posible que desees evitar que se vincule contigo. Dependiendo de su modelo de amenaza, debe pagarlo en efectivo en persona en lugar de realizar pedidos en línea o comprar con una tarjeta de crédito/débito, de esa manera no se podrá vincular ninguna información de identificación a su compra.
Si quieres utilizar un teclado, ratón, auriculares u otro accesorio inalámbricos, la opción más segura son los de Apple, ya que tu sistema los actualizará automáticamente. También admiten las últimas funciones de Bluetooth, como BLE Privacy, que aleatoriza su dirección de hardware Bluetooth para evitar el seguimiento. Con accesorios de terceros, esto no es una garantía.
Hay varias formas de instalar macOS. Elija su método preferido entre las opciones disponibles.
Debes instalar la última versión de macOS que sea compatible con tu Mac . Las versiones más recientes tienen parches de seguridad y otras mejoras de las que carecen las versiones anteriores.
Como parte del sistema de prevención de robos de Apple, las Mac Apple Silicon deberán activarse con los servidores de Apple cada vez que reinstale macOS para compararlas con la base de datos de Mac robadas o con activación bloqueada.
Puede leer exactamente cómo funciona este proceso aquí.
No es necesario crear una cuenta Apple para usar macOS. Crear una cuenta de Apple requiere un número de teléfono y, de forma predeterminada, sincronizará una gran cantidad de datos con iCloud, el servicio de almacenamiento en la nube de Apple. Puede desactivar la sincronización más tarde si lo desea o habilitar el cifrado de extremo a extremo para sus datos de iCloud.
Puede controlar los datos asociados a su cuenta Apple o eliminarlos por completo.
Se requiere una cuenta de Apple para acceder a la App Store y utilizar la mayoría de los servicios de Apple como iCloud, Apple Music, etc.
Mac App Store es un repositorio seleccionado de software necesario para utilizar App Sandbox y Hardened Runtime, además de ofrecer actualizaciones automáticas que se integran con su sistema.
La App Store ofrece las mayores garantías de seguridad para el software en macOS, pero requiere que inicies sesión con una cuenta de Apple y Apple podrá vincular tu cuenta de Apple a tus aplicaciones descargadas.
Puede ejecutar macOS fácilmente de forma nativa en una máquina virtual usando UTM. Es gratis en su sitio, pero si lo compras en la App Store, obtendrás actualizaciones automáticas.
Siga su documentación para instalar una máquina virtual macOS con solo unos pocos clics.
Otra opción es VMware Fusion. Puede leer su documentación para ver cómo instalar una máquina virtual macOS.
Cuando macOS se inicie por primera vez, aparecerá el Asistente de configuración .
Al crear la primera cuenta, utilice una contraseña segura y sin pistas.
Si ingresa su nombre real en el proceso de configuración de la cuenta, tenga en cuenta que el nombre de su computadora y el nombre del host local contendrán ese nombre (por ejemplo, MacBook de John Appleseed ) y, por lo tanto, aparecerán en las redes locales y en varios archivos de preferencias.
Ambos deben verificarse y actualizarse según sea necesario en Configuración del sistema > Acerca de o con los siguientes comandos después de la instalación:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
La primera cuenta de usuario es siempre una cuenta de administrador. Las cuentas de administrador son miembros del grupo de administradores y tienen acceso a sudo
, lo que les permite usurpar otras cuentas, en particular la raíz, y les otorga un control efectivo sobre el sistema. Cualquier programa que ejecute el administrador puede potencialmente obtener el mismo acceso, lo que lo convierte en un riesgo para la seguridad.
Las utilidades como sudo
tienen debilidades que pueden explotarse mediante programas que se ejecutan simultáneamente.
Apple considera una buena práctica utilizar una cuenta estándar independiente para el trabajo diario y utilizar la cuenta de administrador para las instalaciones y la configuración del sistema.
No es estrictamente necesario iniciar sesión en 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 continúa usando esos privilegios. Con ese fin, Apple ofrece algunas recomendaciones para ocultar la cuenta de administrador y su directorio de inicio. Esta puede ser una solución elegante para evitar tener una cuenta "fantasma" visible.
/Applications
(directorio local). Finder and Installer le mostrará al usuario estándar un cuadro de diálogo de autenticación. En su lugar, se pueden instalar muchas aplicaciones en ~/Applications
(se puede crear el directorio). Como regla general: las aplicaciones que no requieren acceso de administrador (o que no se quejan de no estar instaladas en /Applications
) deben instalarse en el directorio de usuario y el resto en el directorio local. Las aplicaciones de Mac App Store todavía están instaladas en /Applications
y no requieren autenticación adicional.sudo
no está disponible en los shells del usuario estándar, lo que requiere usar su
o login
para ingresar al shell de la cuenta de administrador. Esto puede dificultar algunas maniobras y requiere cierta experiencia básica con interfaces de línea de comandos.open
.Las cuentas se pueden crear y administrar en Preferencias del Sistema. En sistemas establecidos, generalmente es más fácil crear una segunda cuenta de administrador y luego degradar la primera cuenta. Esto evita la migración de datos. Los sistemas recién instalados también pueden simplemente agregar una cuenta estándar.
La degradación de una cuenta se puede realizar desde la nueva cuenta de administrador en Preferencias del Sistema (la otra cuenta debe cerrar sesión) o ejecutando estos comandos (puede que no sea necesario ejecutar ambos, consulte el problema 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
Para encontrar el UID generado de una cuenta:
dscl . -read /Users/<username> GeneratedUID
Consulte también esta publicación para obtener más información sobre cómo macOS determina la membresía en un grupo.
Debe verificar que la configuración de seguridad del firmware esté configurada en Seguridad total para evitar la manipulación de su sistema operativo. Esta es la configuración predeterminada.
Todos los modelos de Mac con Apple Silicon están cifrados de forma predeterminada. Habilitar FileVault hace que necesite ingresar una contraseña para poder acceder a los datos en su disco. La EFF tiene una guía sobre cómo generar contraseñas seguras pero fáciles de recordar.
Su contraseña de FileVault también actúa como una contraseña de firmware que evitará que las personas que no la conocen inicien desde cualquier otro lugar que no sea el disco de inicio designado, accedan a Recuperación y lo reactiven con el modo DFU.
FileVault le pedirá que establezca una clave de recuperación en caso de que olvide su contraseña. Guarde esta clave en un lugar seguro. Tendrás la opción de usar tu cuenta de iCloud para desbloquear tu disco; sin embargo, cualquier persona que tenga acceso a su cuenta de iCloud también podrá desbloquearla.
macOS ofrece el modo de bloqueo, una función de seguridad que desactiva varias funciones en el sistema operativo, lo que reduce significativamente la superficie de ataque para los atacantes y mantiene el sistema operativo utilizable. Puede leer exactamente qué está deshabilitado y decidir por sí mismo si es aceptable para usted.
Cuando el modo de bloqueo está activado, puede desactivarlo por sitio en Safari en sitios confiables.
Hay varios tipos de firewalls disponibles para macOS.
Firewall básico incorporado que bloquea únicamente las conexiones entrantes . Este firewall no tiene la capacidad de monitorear ni bloquear conexiones salientes .
Puede controlarse mediante la pestaña Firewall de Red en Configuración del sistema o con los siguientes comandos.
Habilite el firewall con registro y modo oculto:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Los piratas informáticos escanean las redes para intentar identificar las computadoras a las que atacar. Puede evitar que su computadora responda a algunos de estos análisis usando el modo oculto . Cuando el modo oculto está habilitado, su computadora no responde a las solicitudes de ping ICMP ni a los intentos de conexión desde un puerto TCP o UDP cerrado. Esto hace que sea más difícil para los atacantes encontrar su computadora.
Para evitar que el software integrado y el software descargado y firmado con código se incluyan automáticamente en la lista blanca :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
Las aplicaciones firmadas por una autoridad certificadora válida se agregan automáticamente a la lista de aplicaciones permitidas, en lugar de solicitar al usuario que las autorice. Las aplicaciones incluidas en macOS están firmadas por Apple y pueden recibir conexiones entrantes cuando esta configuración está habilitada. Por ejemplo, dado que iTunes ya está firmado por Apple, automáticamente se le permite recibir conexiones entrantes a través del firewall.
Si ejecuta una aplicación sin firmar que no figura en la lista de firewall, aparece un cuadro de diálogo con opciones para Permitir o Denegar conexiones para la aplicación. Si elige "Permitir", macOS firma la aplicación y la agrega automáticamente a la lista de firewall. Si elige "Denegar", macOS lo agrega a la lista pero niega las conexiones entrantes destinadas a esta aplicación.
Después de interactuar con socketfilterfw
, reinicie el proceso enviando una señal de colgar la línea:
sudo pkill -HUP socketfilterfw
Programas como Little Snitch, Radio Silence y LuLu ofrecen un buen equilibrio entre usabilidad y seguridad.
Estos programas son capaces de monitorear y bloquear conexiones de red entrantes y salientes . Sin embargo, es posible que requieran el uso de una extensión del sistema de código cerrado.
Si la cantidad de opciones para permitir/bloquear conexiones de red es abrumadora, use el modo silencioso con las conexiones permitidas y luego verifique periódicamente la configuración para comprender las aplicaciones y lo que están haciendo.
Vale la pena señalar que estos cortafuegos pueden ser evitados por programas que se ejecutan como root o mediante vulnerabilidades del sistema operativo (pdf), pero aun así vale la pena tenerlos, pero no espere una protección absoluta. Sin embargo, algunos programas maliciosos en realidad se eliminan solos y no se ejecutan si se instala Little Snitch u otro software de seguridad.
En el kernel existe un cortafuegos altamente personalizable, potente, pero también el más complicado. Se puede controlar con pfctl
y varios archivos de configuración.
pf también se puede controlar con una aplicación GUI como Murus.
Hay muchos libros y artículos sobre el tema del firewall pf. Este es sólo un ejemplo de cómo bloquear el tráfico por dirección IP.
Agregue lo siguiente a un archivo llamado pf.rules
:
wifi = "en0"
ether = "en7"
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
scrub in all no-df
table <blocklist> persist
block in log
block in log quick from no-route to any
block log on $wifi from { <blocklist> } to any
block log on $wifi from any to { <blocklist> }
antispoof quick for { $wifi $ether }
pass out proto tcp from { $wifi $ether } to any keep state
pass out proto udp from { $wifi $ether } to any keep state
pass out proto icmp from $wifi to any keep state
Luego use los siguientes comandos para manipular el firewall:
sudo pfctl -e -f pf.rules
para habilitar el firewall y cargar la configuraciónsudo pfctl -d
para desactivar el firewallsudo pfctl -t blocklist -T add 1.2.3.4
para agregar una dirección IP a la lista de bloqueosudo pfctl -t blocklist -T show
para ver la lista de bloqueosudo ifconfig pflog0 create
para crear una interfaz para iniciar sesiónsudo tcpdump -ni pflog0
para ver los paquetes filtradosA menos que ya esté familiarizado con el filtrado de paquetes, no se recomienda dedicar demasiado tiempo a configurar pf. Probablemente también sea innecesario si su Mac está detrás de una NAT en una red doméstica privada.
Es posible utilizar el firewall pf para bloquear el acceso a la red a rangos completos de direcciones de red, por ejemplo a toda una organización:
Consulte Merit RADb para obtener la lista de redes utilizadas por un sistema autónomo, como Facebook:
whois -h whois.radb.net '!gAS32934'
Copie y pegue la lista de redes devueltas en el comando de lista de bloqueo:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
Confirme que se agregaron las direcciones:
$ 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
Confirme que el tráfico de red esté bloqueado en esas direcciones (las solicitudes de DNS seguirán funcionando):
$ dig a +short facebook.com
157.240.2.35
$ curl --connect-timeout 5 -I http://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.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.162771 > 157.240.2.35.80: tcp 0
Los paquetes TCP SYN salientes se bloquean, por lo que no se establece una conexión TCP y, por lo tanto, un sitio web queda efectivamente bloqueado en la capa IP.
Consulte drduh/config/scripts/pf-blocklist.sh para obtener más inspiración.
Los servicios en macOS son administrados por launchd . Consulte launchd.info.
Puede administrar y ver más información sobre el software que se ejecuta al iniciar sesión en Configuración del sistema. También puede ver el Sistema instalado, Vista rápida, Finder y otras extensiones en Configuración del sistema.
launchctl list
para ver los agentes de usuario en ejecuciónsudo launchctl list
para ver los demonios del sistema en ejecuciónlaunchctl list com.apple.Maps.mapspushd
defaults read
para examinar las listas de trabajos en /System/Library/LaunchDaemons
y /System/Library/LaunchAgents
man
y strings
para obtener más información sobre lo que hace un agente/demonioPor ejemplo, para saber qué hace un demonio o agente de inicio del sistema, comience con:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Mire la sección Program
o ProgramArguments
para ver qué binario se ejecuta, en este caso apsd
. Para encontrar más información al respecto, consulte la página de manual con man apsd
Nota Los servicios del sistema están protegidos por SIP; no desactive SIP solo para modificar los servicios del sistema, ya que SIP es una parte integral de la seguridad en macOS. ¡Deshabilitar los servicios del sistema podría causar fallas y un comportamiento inestable!
Para ver el estado de los servicios:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
En este repositorio se incluyen listas comentadas de demonios y agentes de lanzamiento, el programa respectivo ejecutado y las sumas hash de los programas.
Lea más sobre launchd y dónde se pueden encontrar los elementos de inicio de sesión en el sitio web de Apple.
Apple está pasando al procesamiento en el dispositivo para muchas funciones de Siri, pero aún se envía cierta información a Apple cuando usas Siri Suggestions o Spotlight. Puede leer la Política de privacidad de Apple para ver exactamente qué se envía y cómo desactivarlo.
Si su programa no está disponible a través de la App Store, puede considerar usar Homebrew.
¡Importante! Homebrew le pide que otorgue permiso de “Administración de aplicaciones” (o “Acceso completo al disco”) a su terminal. Esta es una mala idea, ya que lo volvería a hacer vulnerable a estos ataques: cualquier aplicación que no esté en un espacio aislado puede ejecutar código con los permisos TCC de su terminal agregando un comando malicioso a (por ejemplo) ~/.zshrc. Otorgar “Administración de aplicaciones” o “Acceso completo al disco” a su terminal debe considerarse lo mismo que deshabilitar TCC por completo.
Recuerde ejecutar periódicamente brew upgrade
en redes seguras y confiables para descargar e instalar actualizaciones de software. Para obtener información sobre un paquete antes de la instalación, ejecute brew info <package>
y verifique su fórmula en línea. Es posible que también desee habilitar opciones de seguridad adicionales, como HOMEBREW_NO_INSECURE_REDIRECT=1
Según Anonymous Analytics de Homebrew, Homebrew recopila análisis anónimos y los informa a una instancia de InfluxDB autohospedada. Para optar por no recibir los análisis de Homebrew, puede configurar export HOMEBREW_NO_ANALYTICS=1
en su entorno o archivo shell rc, o brew analytics off
macOS 11 introdujo "perfiles de configuración de DNS" para configurar DNS cifrados, filtrar dominios y utilizar DNSSEC.
Los perfiles DNS se pueden crear u obtener de proveedores como Quad9, AdGuard y NextDNS.
Utilice el archivo de hosts para bloquear malware conocido, publicidad o dominios no deseados.
Edite el archivo de hosts como root, por ejemplo con sudo vi /etc/hosts
Para bloquear un dominio mediante un registro A
, agregue cualquiera de las siguientes líneas a /etc/hosts
:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
Nota IPv6 utiliza el tipo de registro DNS AAAA
, en lugar del tipo de registro A
, por lo que es posible que también desees bloquear esas conexiones incluyendo ::1 example.com
, como se muestra aquí.
Hay muchas listas de dominios disponibles en línea que puede pegar, solo asegúrese de que cada línea comience con 0
, 0.0.0.0
, 127.0.0.1
y que la línea 127.0.0.1 localhost
esté incluida.
A continuación se muestran algunas listas de hosts populares y útiles:
Agregue una lista de hosts con tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
Si está usando un firewall como Little Snitch, puede usar StevenBlack/hosts importando las reglas desde el repositorio leohidalgo/little-snitch---rule-groups, estas reglas se actualizan cada 12 horas desde el repositorio StevenBlack/hosts.
Para cifrar el tráfico DNS, considere usar DNSCrypt/dnscrypt-proxy. Utilizado en combinación con dnsmasq y DNSSEC, la integridad del tráfico DNS se puede mejorar significativamente.
Instale DNSCrypt desde Homebrew y siga las instrucciones para configurar e iniciar dnscrypt-proxy
:
brew install dnscrypt-proxy
Si lo usa en combinación con Dnsmasq, busque el archivo homebrew.mxcl.dnscrypt-proxy.plist
ejecutando
brew info dnscrypt-proxy
que mostrará una ubicación como /usr/local/etc/dnscrypt-proxy.toml
Ábrelo en un editor de texto, busca la línea que comienza con listen_addresses =
y edítala para usar DNScrypt en un puerto distinto al 53, como 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Inicie DNSCrypt:
sudo brew services restart dnscrypt-proxy
Confirme que DNSCrypt se esté ejecutando:
$ 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
De forma predeterminada, dnscrypt-proxy se ejecuta en localhost (127.0.0.1), puerto 53, equilibrando el tráfico entre un conjunto de solucionadores. Si desea cambiar esta configuración, deberá editar el archivo de configuración: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
Nota Las aplicaciones y programas pueden resolver DNS utilizando sus propios servidores proporcionados. Si se utiliza dnscrypt-proxy, es posible desactivar todo el resto del tráfico DNS que no sea dnscrypt con las siguientes reglas pf:
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
Consulte también ¿Qué es una fuga de DNS? y ipv6-test.com
Entre otras características, dnsmasq puede almacenar en caché las respuestas, evitar consultas ascendentes de nombres no calificados y bloquear dominios completos de nivel superior.
Úselo en combinación con DNSCrypt para cifrar adicionalmente el tráfico DNS.
Si no desea utilizar DNSCrypt, al menos debería utilizar DNS que no le proporcione su ISP. Dos alternativas populares son Google DNS y OpenDNS.
DNSSEC opcional es un conjunto de extensiones de DNS que proporcionan a los clientes DNS (resolvedores) autenticación de origen de datos DNS, denegación de existencia autenticada e integridad de datos. Todas las respuestas de las zonas protegidas DNSSEC están firmadas digitalmente. Los registros firmados se autentican mediante una cadena de confianza, comenzando con un conjunto de claves públicas verificadas para la zona raíz del DNS. Los anclajes de confianza de la zona raíz actuales se pueden descargar desde el sitio web de la IANA. Hay varios recursos sobre DNSSEC, pero probablemente el mejor sea el sitio web dnssec.net.
Instalar Dnsmasq:
brew install dnsmasq --with-dnssec
Descargue y edite drduh/config/dnsmasq.conf o el archivo de configuración predeterminado.
Consulte drduh/config/domains para ver ejemplos adjuntos sobre el bloqueo de servicios por dominio.
Instale e inicie el programa (se requiere sudo para vincularse al puerto privilegiado 53):
sudo brew services start dnsmasq
Para configurar dnsmasq como servidor DNS local, abra Preferencias del Sistema > Red y seleccione la interfaz activa, luego la pestaña DNS , seleccione + y agregue 127.0.0.1
, o use:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Confirme que Dnsmasq esté configurado:
$ 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
Nota Algunos software VPN anulan la configuración de DNS al conectarse. Consulte el número 24 y drduh/config/scripts/macos-dns.sh.
Prueba opcional de validación de DNSSEC para zonas firmadas: la respuesta debe tener el estado NOERROR
y contener un indicador ad
:
$ dig +dnssec icann.org | head
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47039
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
La validación de DNSSEC de prueba falla en las zonas que están firmadas incorrectamente; la respuesta debe tener el estado SERVFAIL
:
$ dig www.dnssec-failed.org | head
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15190
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
macOS viene con más de 100 certificados de autoridad raíz instalados de corporaciones como Apple, Verisign, Thawte, Digicert y agencias gubernamentales de China, Japón, Países Bajos, EE. UU. y más. Estas autoridades de certificación (CA) son capaces de emitir certificados TLS para cualquier dominio, certificados de firma de código, etc. Apple bloquea estos certificados cuando una CA demuestra no ser confiable. También tienen requisitos estrictos que las CA de confianza deben cumplir.
Para obtener más información, consulte el sitio web de CA/Browser Forum.
Inspeccione los certificados raíz del sistema en Acceso a Llaveros , en la pestaña Raíces del sistema o utilizando la herramienta de línea de comandos security
y el archivo /System/Library/Keychains/SystemRootCertificates.keychain
.
Puede desactivar manualmente las autoridades de certificación a través de Acceso a Llaveros marcándolas como Nunca confiar y cerrando la ventana:
Advertencia: esto hará que su navegador muestre una advertencia cuando visite un sitio que utilice certificados firmados por estas CA y puede causar fallas en otro software. ¡No desconfíes de los certificados raíz de Apple o causarán muchas roturas en macOS!
El riesgo de un ataque de hombre en el medio en el que una autoridad de certificación comprometida o coaccionada en la que su sistema confía emite un certificado TLS falso o fraudulento es bastante bajo, pero aún es posible.
Considere utilizar Privoxy como proxy local para filtrar el tráfico web.
Instale e inicie privoxy usando Homebrew:
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 Homebrew y recibe soporte del proyecto Privoxy.
De forma predeterminada, Privoxy escucha en el puerto TCP local 8118.
Configure el proxy HTTP del sistema para la interfaz de red activa 127.0.0.1
y 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Configure el proxy HTTPS del sistema:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
Esto también se puede hacer a través de Preferencias del Sistema > Red > Avanzado > Proxies
Confirme que el proxy esté configurado:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
Aunque la mayor parte del tráfico web actual está cifrado, Privoxy sigue siendo útil para filtrar por patrones de nombres de dominio y para actualizar solicitudes HTTP inseguras.
Por ejemplo, las siguientes reglas bloquean todo el tráfico, excepto .net
y github.com
y todos los dominios apple
:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
O simplemente bloquear dominios de Facebook, por ejemplo:
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
También se admiten comodines.
Consulte drduh/config/privoxy/config y drduh/config/privoxy/user.action para ver ejemplos adicionales de Privoxy. No es necesario reiniciar Privoxy después de editar las reglas de filtro user.action
.
Para verificar que el tráfico esté bloqueado o redirigido, use curl o la interfaz Privoxy disponible en http://pp en el navegador:
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
server: GitHub.com
Tenga en cuenta que la configuración del proxy de macOS no es universal; Es posible que las aplicaciones y los servicios no respeten la configuración del proxy del sistema. Asegúrese de que la aplicación que desea proxy esté configurada correctamente y verifique que las conexiones no tengan fugas. Además, pf se puede configurar para proxy de tráfico de forma transparente en ciertos puertos.
El navegador web probablemente plantea el mayor riesgo de seguridad y privacidad, ya que su trabajo fundamental es descargar y ejecutar código no confiable de Internet.
Una propiedad importante de los navegadores modernos es la Política del mismo origen (SOP), que evita que un script malicioso en una página obtenga acceso a datos confidenciales en otra página web a través del Modelo de objetos de documento (DOM). Si el SOP se ve comprometido, la seguridad de todo el navegador también se ve comprometida.
Muchos exploits de navegador se basan en la ingeniería social como medio para ganar persistencia. Tenga siempre cuidado al abrir sitios que no sean de confianza y tenga especial cuidado al descargar software nuevo.
Otra consideración importante sobre la seguridad del navegador son las extensiones. Este es un problema que afecta tanto a Firefox como a Chrome. El uso de extensiones de navegador debe limitarse únicamente a aquellas que sean críticamente necesarias y publicadas por desarrolladores confiables.
Mozilla Firefox, Google Chrome, Safari y Tor Browser son navegadores recomendados para sus fines únicos e individuales.
Mozilla Firefox es un popular navegador de código abierto. Firefox reemplazó gran parte de su infraestructura y base de código bajo los proyectos Quantum y Photon. Parte del proyecto Quantum es reemplazar el código C++ con Rust. Rust es un lenguaje de programación de sistemas centrado en la seguridad y la protección de subprocesos. Se espera que la adopción de Rust mejore en gran medida la postura de seguridad general de Firefox.
Firefox ofrece un modelo de seguridad similar al de Chrome: tiene un programa de recompensas por errores, aunque no es tan lucrativo. Firefox sigue un ciclo de lanzamiento de cuatro semanas.
Firefox admite archivos de configuración proporcionados por el usuario. Consulte drduh/config/firefox.user.js y arkenfox/user.js para conocer las preferencias recomendadas y las medidas de refuerzo. Consulte también NoScript, una extensión que permite el bloqueo selectivo de scripts.
Firefox se centra en la privacidad del usuario. Admite protección de seguimiento en el modo de navegación privada. La protección de seguimiento se puede habilitar para la cuenta predeterminada, aunque puede afectar la experiencia de navegación en algunos sitios web. Firefox en el modo de protección de seguimiento estricto aleatorizará su huella digital para frustrar los scripts de seguimiento básicos. Firefox ofrece perfiles de usuario separados. Puede separar su navegación dentro de un perfil con contenedores de cuentas múltiples.
Firefox solo admite extensiones web a través de la API de extensiones web, que es muy similar a Chrome. El envío de extensiones web en Firefox es gratuito. Las extensiones web en Firefox la mayor parte del tiempo son de código abierto, aunque algunas extensiones web son propietarias.
Google Chrome se basa en el proyecto Chromium de código abierto con ciertos componentes propietarios:
Chrome ofrece sincronización de cuenta entre múltiples dispositivos. Parte de los datos de sincronización incluye credenciales a sitios web. Los datos están encriptados con la contraseña de la cuenta.
La tienda web para extensiones de Chrome requiere una tarifa de por vida de 5 USD para enviar extensiones. El bajo costo permite el desarrollo de muchas extensiones web de código abierto de calidad que no apuntan a monetizar a través del uso.
Chrome tiene la mayor parte del uso global y es la plataforma objetivo preferida para 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 utiliza el motor V8 de Chrome y el marco de electrones, 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 amenaza e investigadores de seguridad. A pesar de los ataques constantes, Chrome ha conservado un historial de seguridad impresionante a lo largo de los años. Esta no es una pequeña hazaña.
Chrome ofrece perfiles separados, sandboxing robusto, actualizaciones frecuentes y conlleva credenciales impresionantes. Además, Google ofrece un programa de recompensas muy lucrativo para informar 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.
Cree perfiles de Chrome separados para reducir el riesgo de XSS y compartimentar cookies/identidades. En cada perfil, deshabilite JavaScript en la configuración de Chrome y configure los orígenes permitidos. También debe deshabilitar el optimizador V8 para sitios donde usa JavaScript para reducir aún más la superficie de ataque. Vaya a Configuración -> Privacidad y seguridad -> Seguridad -> Administrar seguridad V8 -> No permita que los sitios usen el V8 Optimizer
Lea más sobre los beneficios de deshabilitar esto aquí.
Puede bloquear rastreadores con Ublock Origin Lite.
Cambie el motor de búsqueda predeterminado de Google para reducir el seguimiento adicional.
Desactive la captación previa del DNS (ver también la captación previa del DNS y sus implicaciones de privacidad (PDF)). Tenga en cuenta que Chrome puede intentar resolver DNS utilizando los servidores de nombres públicos 8.8.8.8
y 8.8.4.4
de Google.
Lea la seguridad del cromo y la privacidad del cromo 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 predeterminado en macOS. También es el navegador más optimizado para reducir el uso de la batería. Safari, como Chrome, tiene componentes de código abierto y patentado. Safari se basa en el motor web de código abierto WebKit, que es omnipresente entre el ecosistema de MacOS. WebKit es utilizado por Apple Apps como Mail, iTunes, iBooks y la 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. Los bloqueadores de contenido habilitan la creación de reglas de bloqueo de contenido sin usar JavaScript. Este enfoque basado en reglas mejora enormemente el uso de memoria, seguridad y privacidad. Safari 11 introdujo la prevención de seguimiento inteligente, que elimina los datos de seguimiento almacenados en Safari después de un período de no interacción por parte del usuario del sitio web del rastreador. Safari puede aleatorizar su huella digital para reducir el seguimiento. Safari no admite ciertas características como WebUSB o la API de la batería intencionalmente por razones de seguridad y privacidad. Las pestañas privadas en Safari tienen galletas y caché aislados que se destruyen cuando cierra la pestaña. Safari también admite perfiles que son equivalentes a los contenedores de múltiples cuentas de Firefox para separar las cookies y la navegación. Safari se puede hacer significativamente más seguro con el modo de bloqueo, que se puede deshabilitar por sitio. Lea más sobre la prevención del seguimiento en Safari.
Safari ofrece un programa de recompensas solo por invitación para informar de errores a un número selecto de investigadores de seguridad. El programa Bounty se anunció durante la presentación de Apple en Blackhat 2016.
Las extensiones web en Safari tienen una opción adicional para usar el código nativo en el entorno Sandbox de Safari, además de las API de extensión web. Las extensiones web en Safari también se distribuyen a través de la App Store de Apple. El envío de App Store viene con el beneficio adicional del código de extensión web que Apple está auditado. Por otro lado, la presentación de la tienda de aplicaciones tiene un fuerte costo. La tarifa anual de suscripción al desarrollador cuesta 100 USD (en contraste con la tarifa de 5 USD de Chrome y la presentación gratuita 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, debe tener en cuenta el alto costo al instalar extensiones. Se espera que la mayoría de las extensiones web tengan alguna forma de monetizar el uso para cubrir los costos de los desarrolladores. Tenga cuidado con las extensiones web cuyo código fuente no está abierto.
Safari sincroniza las preferencias y contraseñas de los usuarios con iCloud Keychain. Para ser visto en texto plano, un usuario debe ingresar la contraseña de la cuenta del dispositivo actual. Esto significa que los usuarios pueden sincronizar datos entre dispositivos con seguridad adicional.
Safari sigue un ciclo de liberación más lento que Chrome y Firefox (3-4 lanzamientos menores, 1 liberación principal, por año). Las características más nuevas son más lentas para ser adoptadas al canal estable. Las actualizaciones de seguridad en Safari se manejan independientemente del cronograma de lanzamiento estable y se instalan a través de la App Store.
Consulte también El1T/Ublock-Safari para deshabilitar las balizas de auditoría de hipervínculos.
No se recomiendan muchos navegadores derivados de cromo. Por lo general, son de código cerrado, mal mantenidos y hacen reclamos dudosos para proteger la privacidad.
Otros navegadores varios, como Brave, no se evalúan en esta guía, por lo que no se recomiendan ni se desaniman activamente del uso.
Los navegadores web revelan información de varias maneras, por ejemplo, a través de la interfaz Navigator, que puede incluir información como la versión del navegador, el sistema operativo, los permisos del sitio y el nivel de batería del dispositivo. Muchos sitios web también usan huellas dactilares de lona para identificar de manera única a los usuarios en todas las sesiones.
Para obtener más información sobre la navegación consciente de la seguridad y qué datos envían su navegador, consulte HowTto: Privacy & Security Consciow Browsing, BrowserLeaks.com, ¿soy único? y EFF cubre sus recursos de pistas.
Para obstaculizar los rastreadores de terceros, se recomienda deshabilitar las cookies de terceros por completo. Safari, Firefox y Chrome Block Bloque de cookies de terceros por defecto. Una cookie de terceros es una cookie asociada con un archivo solicitado por un dominio diferente al que el usuario está viendo actualmente. La mayoría de las cookies de terceros de tiempo se utilizan para crear perfiles de navegación rastreando el movimiento de un usuario en la web. Deshabilitar las cookies de terceros evita que las respuestas HTTP y los scripts de otros dominios establezcan cookies. Además, las cookies se eliminan de las solicitudes a los dominios que no son el dominio de origen del documento, por lo que las cookies solo se envían al sitio actual que se ve.
También tenga en cuenta WEBRTC, que puede revelar su (si) de la (si conectada VPN) local (si). En Firefox y Chrome/Chromo, esto se puede deshabilitar con extensiones como el origen de Ublock. El modo de bloqueo deshabilita WEBRTC en Safari.
Tor es una red de anonimato que se puede utilizar para navegar por la web con privacidad adicional. Tor Browser es una versión modificada de Firefox con un proxy para acceder a la red Tor.
Descargue Tor Browser de Tor Project.
No intente configurar otros navegadores o aplicaciones para usar TOR, ya que puede cometer un error que comprometerá el anonimato.
Descargue los archivos de firma dmg
y asc
, luego verifique que la imagen del disco haya sido firmada por Tor Developers:
$ cd ~ /Downloads
$ file Tor *
TorBrowser-8.0.4-osx64_en-US.dmg: bzip2 compressed data, block size = 900k
TorBrowser-8.0.4-osx64_en-US.dmg.asc: PGP signature Signature (old)
$ gpg Tor * asc
[...]
gpg: Can't check signature: No public key
$ gpg --recv 0x4E2C6E8793298290
gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify Tor * asc
gpg: assuming signed data in 'TorBrowser-8.0.4-osx64_en-US.dmg'
gpg: Signature made Mon Dec 10 07:16:22 2018 PST
gpg: using RSA key 0xEB774491D9FF06E2
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: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
Asegúrese de que Good signature from "Tor Browser Developers (signing key) <[email protected]>"
aparece en la salida. La advertencia sobre la clave que no está certificada es benigna, ya que aún no se le ha asignado confianza.
¿Ves cómo puedo verificar la firma del navegador de Tor? para más información.
Para terminar de instalar el navegador Tor, abra la imagen del disco y arrastre la TI a la carpeta de aplicaciones, o con:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Verifique que la firma del código de la aplicación TOR se realizó con la identificación de desarrollador de Apple del proyecto TOR MADPSAYN6T , utilizando los comandos spctl -a -v
y/o pkgutil --check-signature
:
$ spctl -a -vv ~ /Applications/Tor Browser.app
/Users/drduh/Applications/Tor Browser.app: accepted
source=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 Mac OS X
Certificate Chain:
1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
SHA1 fingerprint: 95 80 54 F1 54 66 F3 9C C2 D8 27 7A 29 21 D9 61 11 93 B3 E8
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
También puede usar el comando codesign
para examinar la firma de código de una aplicación:
$ codesign -dvv ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=229 flags=0x0(none) hashes=4+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
Signature size=4247
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Dec 10, 2018 at 12:18:45 AM
Info.plist entries=24
TeamIdentifier=MADPSAYN6T
Sealed Resources version=2 rules=12 files=128
Internal requirements count=1 size=188
Para ver los detalles completos del certificado para una aplicación firmada, extravéralos con codesign
y decodifique con openssl
:
$ codesign -d --extract-certificates ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
$ file codesign *
codesign0: data
codesign1: data
codesign2: data
$ 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=Apple Certification Authority/O=Apple Inc./C=US
notBefore=Apr 12 22:40:13 2016 GMT
notAfter=Apr 13 22:40:13 2021 GMT
$ openssl x509 -inform der -in codesign0 -fingerprint -noout
SHA1 Fingerprint=95:80:54:F1:54:66:F3:9C:C2:D8:27:7A:29:21:D9:61:11:93:B3:E8
$ openssl x509 -inform der -in codesign0 -fingerprint -sha256 -noout
SHA256 Fingerprint=B5:0D:47:F0:3E:CB:42:B6:68:1C:6F:38:06:2B:C2:9F:41:FA:D6:54:F1:29:D3:E4:DD:9C:C7:49:35:FF:F5:D9
El tráfico de Tor está encriptado al nodo de salida (es decir, no se puede leer por un español de red pasivo), pero se puede identificar para el uso de Tor, por ejemplo, los "nombres de hosts de hosts" de TLS aparecerán en texto sin formato:
$ sudo tcpdump -An " tcp " | grep " www "
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
.............". ...www.odezz26nvv7jeqz1xghzs.com.........
.............#.!...www.bxbko3qi7vacgwyk4ggulh.com.........
.6....m.....>...:.........|../* Z....W....X=..6...C../....................................0...0..0.......'....F./0.. *.H........0%1#0!..U....www.b6zazzahl3h3faf4x2.com0...160402000000Z..170317000000Z0'1%0#..U....www.tm3ddrghe22wgqna5u8g.net0..0..
Consulte la especificación del protocolo TOR y TOR/TLSHistory para obtener más información.
Es posible que desee ofuscar también el tráfico de TOR utilizando un transporte conectable.
Esto se puede hacer configurando su propio Relay Tor o encontrando un puente público o público existente para servir como un nodo de entrada ofuscante.
Para una seguridad adicional, use Tor dentro de una instancia VirtualBox o VMware virtualized GNU/Linux o OpenBSD.
Finalmente, recuerde que la red Tor proporciona el anonimato, que no es necesariamente sinónimo de privacidad. La red TOR no garantiza la protección contra un observador global capaz de análisis y correlación de tráfico. Consulte también la búsqueda del anonimato en un panóptico de Internet (PDF) y la correlación de tráfico en TOR por adversarios realistas (PDF).
Vea también el Proyecto Invisible de Internet (I2P) y su comparación de Tor.
Al elegir un servicio VPN o configurar el suyo propio, asegúrese de investigar los protocolos, los algoritmos de intercambio de claves, los mecanismos de autenticación y el tipo de cifrado que se está utilizando. Algunos protocolos, como PPTP, deben evitarse a favor de OpenVPN o WireGuard basado en Linux en una VM Linux o mediante un conjunto de herramientas de plataforma cruzada.
Algunos clientes pueden enviar tráfico a la siguiente interfaz disponible cuando VPN se interrumpe o se desconecta. Consulte SCY/8122924 para un ejemplo sobre cómo permitir el tráfico solo sobre VPN.
Hay una guía actualizada para configurar una VPN IPSEC en una máquina virtual (hwdsl2/setup-ipsec-vpn) o un contenedor Docker (hwdsl2/docker-ipsec-vpn-server).
Puede valer la pena considerar la ubicación geográfica del proveedor de VPN. Ver más discusión en el número 114.
También vea esta descripción técnica del cliente VPN L2TP/IPSEC e IPSEC incorporado de MacOS.
PGP es un estándar para firmar y encriptar datos (especialmente correo electrónico) de extremo a extremo, por lo que solo el remitente y el destinatario pueden acceder a él.
GPG, o GNU Privacy Guard , es un programa de código abierto con licencia de GPL que cumple con el estándar PGP.
GPG se utiliza para verificar las firmas de software que descarga e instala, así como en los archivos y texto de cifuración simétrica o asimétrica.
Instale desde HomeBrew con brew install gnupg
.
Si prefiere una aplicación gráfica, descargue e instale GPG Suite.
Descargar DRDUH/config/gpg.conf para usar la configuración recomendada:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
Consulte Drduh/Yubikey-Guide para generar y almacenar de forma segura las teclas GPG.
Lea las guías en línea y practique cifrar y descifrar el correo electrónico para usted y sus amigos. ¡Haz que se interesen en estas cosas!
XMPP es un estándar abierto desarrollado por el IETF que permite la mensajería federada de plataforma cruzada. Hay muchas opciones para los clientes. Considere usar uno de los clientes basados en el navegador para aprovechar el sandbox de su navegador.
Dependiendo del proveedor, es posible que no necesite nada más que un nombre de usuario y contraseña para configurar su cuenta.
XMPP no es E2EE de forma predeterminada, deberá usar el cifrado de Omemo, así que asegúrese de que su cliente lo admita.
Signal es un Messenger E2EE avanzado cuyo protocolo de doble ratchet es utilizado por innumerables mensajeros, incluidos WhatsApp, Google Menses y Facebook Messenger.
La señal requiere un número de teléfono para registrarse y primero deberá instalarlo en su teléfono antes de poder usarlo en el escritorio.
iMessage es el primer mensajero de Apple. Requiere una cuenta de Apple para usarla.
Asegúrese de habilitar la verificación de la clave de contacto y verificar con cualquier persona que envíe un mensaje para asegurarse de que está enviando mensajes a la persona adecuada.
Puede usar iMessage con un número de teléfono o un correo electrónico, así que elija uno que se sienta cómodo con sus contactos.
Nota: Por defecto, la copia de seguridad de iCloud está habilitada que almacena copias de las claves de cifrado de su mensaje en los servidores de Apple sin E2EE. Deshabilite la copia de seguridad de iCloud o habilite la protección de datos avanzada para evitarlo. ¡Recuerde también decirle a su compañero de mensajería que haga lo mismo!
Hay una cantidad cada vez mayor de malware MAC en la naturaleza. ¡Las Mac no son inmunes a los virus y el software malicioso!
Algunos malware vienen incluido tanto con software legítimo, como la barra de herramientas Java Bundling Ask, y algunos con software ilegítimo, como Mac.Backdoor.iworm con programas pirateados.
Consulte Métodos de persistencia de malware en Mac OS X (PDF) y persistencia de malware en OS X Yosemite para aprender sobre cómo funciona el malware de la variedad de jardín.
Suscríbase a las actualizaciones en el blog de MalwareBytes para obtener noticias de seguridad MAC actuales.
También consulte el malware del equipo de piratería para macOS: instalación raíz para macOS, controlador de soporte para agente de Mac y agente RCS para Mac, que es un buen ejemplo de malware avanzado con capacidades para esconderse de Userland (p. Ej., ps
, ls
). Para obtener más información, consulte un breve análisis de un instalador de implantes RCS y reverse.put.as
Solo ejecutar programas desde la App Store o que son notariados por Apple ayudará a mitigar el malware. Apple realiza un escaneo automatizado en aplicaciones notarizadas para malware. Las aplicaciones de la tienda de aplicaciones se someten a un proceso de revisión para atrapar malware.
De lo contrario, obtenga programas de fuentes de confianza como directamente del sitio web del desarrollador o GitHub. Siempre asegúrese de que su navegador/terminal esté usando HTTPS al descargar cualquier programa.
También debe evitar programas que soliciten muchos permisos y programas de código cerrado de terceros. El código fuente abierto permite a cualquier persona auditar y examinar el código para cuestiones de seguridad/privacidad.
Compruebe si un programa usa la caja de arena de la aplicación antes de ejecutarlo ejecutando el siguiente comando:
codesign -dvvv --entitlements - <path to your app>
Si la aplicación Sandbox está habilitada, verá
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
Alternativamente, puede verificar mientras la aplicación se ejecuta abriendo el monitor de actividades y agregando la columna "sandbox".
Se requieren todas las aplicaciones de App Store para usar el Sandbox de la aplicación.
Nota: Los navegadores como Google Chrome usan su propio sandbox para que no usen la aplicación Sandbox.
Compruebe si un programa usa el tiempo de ejecución endurecido antes de ejecutarlo usando el siguiente comando:
codesign --display --verbose /path/to/bundle.app
Si el tiempo de ejecución endurecido está habilitado, verá flags=0x10000(runtime)
. El "tiempo de ejecución" significa que el tiempo de ejecución endurecido está habilitado. Puede haber otras banderas, pero la bandera de tiempo de ejecución es lo que estamos buscando aquí.
Puede habilitar una columna en el monitor de actividades llamado "restringido", que es un indicador que evita que los programas inyecten código a través del enlazador dinámico de MacOS. Idealmente, esto debería decir "sí".
Se requieren aplicaciones notarizadas para usar el tiempo de ejecución endurecido.
Para escanear una aplicación con múltiples productos AV y examinar su comportamiento, cárguela a Virustotal antes de ejecutarla.
MacOS viene con un programa AV incorporado llamado XProtect. XProtect se ejecuta automáticamente en segundo plano y actualiza sus firmas que usa para detectar malware sin que tenga que hacer nada. Si detecta el malware que ya se está ejecutando, funcionará para eliminarlo y mitigarlo como cualquier otro programa AV.
Aplicaciones como BlockBlock o MacLaunch.SH pueden ayudar a prevenir malware persistente.
Los programas antivirus instalados localmente son generalmente una espada de doble filo: pueden atrapar malware de "variedad de jardín", pero también pueden aumentar la superficie de ataque para adversarios sofisticados debido a su modo de operación privilegiado. Por lo general, también llaman a casa para enviar muestras para atrapar el malware más nuevo. Esto puede ser una preocupación de privacidad.
Ver SOPHAIL: ATACTOS APLICADOS CONTRA ANTIVIRUS (PDF), análisis y explotación de una vulnerabilidad ESET, el software de seguridad popular fue bajo implacables ataques de la NSA y GCHQ, y cómo Israel atrapó a los piratas informáticos rusos recorriendo el mundo por los secretos estadounidenses.
Gatekeeper intenta evitar que se ejecuten aplicaciones no notarizadas.
Si intenta ejecutar una aplicación que no está notarizada, Gatekeeper le dará una advertencia. Esto se puede pasar fácilmente si va a la privacidad y la seguridad , desplácese hacia abajo hasta la parte inferior y haga clic en abrir en su aplicación. Entonces Gatekeeper le permitirá ejecutarlo.
Gatekeeper no cubre todos los binarios, solo las aplicaciones, así que tenga cuidado al ejecutar otros tipos de archivos.
Para verificar que SIP esté habilitado, use el csrutil status
, que debería devolver: System Integrity Protection status: enabled.
De lo contrario, habilite SIP a través del modo de recuperación.
MacOS adjunta metadatos (atributos extendidos APFS) a archivos descargados, que se pueden ver con los comandos mdls
y xattr
:
$ ls -l@ ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
-rw-r--r--@ 1 drduh staff 63M Jan 1 12:00 TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms 46B
com.apple.quarantine 57B
$ mdls ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
kMDItemContentCreationDate = 2019-01-01 00:00:00 +0000
kMDItemContentCreationDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemContentModificationDate = 2019-01-01 00:00:00 +0000
kMDItemContentType = "com.apple.disk-image-udif"
kMDItemContentTypeTree = (
"public.archive",
"public.item",
"public.data",
"public.disk-image",
"com.apple.disk-image",
"com.apple.disk-image-udif"
)
kMDItemDateAdded = 2019-01-01 00:00:00 +0000
kMDItemDateAdded_Ranking = 2019-01-01 00:00:00 +0000
kMDItemDisplayName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSContentChangeDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreationDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = (null)
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = (null)
kMDItemFSLabel = 0
kMDItemFSName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSNodeCount = (null)
kMDItemFSOwnerGroupID = 5000
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 65840402
kMDItemFSTypeCode = ""
kMDItemInterestingDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemKind = "Disk Image"
kMDItemWhereFroms = (
"https://dist.torproject.org/torbrowser/8.0.4/TorBrowser-8.0.4-osx64_en-US.dmg",
"https://www.torproject.org/projects/torbrowser.html.en"
)
$ xattr -l ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 4D 68 74 |bplist00..._.Mht|
00000010 74 70 73 3A 2F 2F 64 69 73 74 2E 74 6F 72 70 72 |tps://dist.torpr|
00000020 6F 6A 65 63 74 2E 6F 72 67 2F 74 6F 72 62 72 6F |oject.org/torbro|
[...]
com.apple.quarantine: 0081;58519ffa;Google Chrome.app;1F032CAB-F5A1-4D92-84EB-CBECA971B7BC
Los atributos de metadatos también se pueden eliminar con la bandera -d
:
xattr -d com.apple.metadata:kMDItemWhereFroms ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -d com.apple.quarantine ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -l ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
Se pueden encontrar otros metadatos y artefactos en los directorios que incluyen, entre otros, ~/Library/Preferences/
, ~/Library/Containers/<APP>/Data/Library/Preferences
, /Library/Preferences
, algunos de los cuales son detallados abajo.
~/Library/Preferences/com.apple.sidebarlists.plist
contiene una lista histórica de volúmenes adjuntos. Para borrarlo, use el comando /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
contiene metadatos Bluetooth, incluido el historial de dispositivos. Si no se usa Bluetooth, los metadatos se pueden borrar con:
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist DeviceCache
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist IDSPairedDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANInterfaces
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist SCOAudioDevices
/var/spool/cups
contiene el caché de trabajo de la impresora de tazas. Para borrarlo, use los comandos:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
Para borrar la lista de dispositivos iOS conectados, use:
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist Devices
sudo defaults delete /Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Library/Preferences/com.apple.iPod.plist Devices
sudo rm -rfv /var/db/lockdown/*
Los datos de miniatura de Quicklook se pueden borrar utilizando el comando qlmanage -r cache
, pero esto se escribe en el archivo resetreason
en los directorios de Quicklook, y afirma que el caché Quicklook se borró manualmente. Deshabilite el caché en miniatura con qlmanage -r disablecache
También se puede borrar obteniendo los nombres del directorio con getconf DARWIN_USER_CACHE_DIR
y sudo getconf DARWIN_USER_CACHE_DIR
, luego eliminarlos:
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
Del mismo modo, para el usuario root:
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
Consulte también 'Quicklook' Cache puede filtrar datos cifrados.
Para borrar las preferencias del buscador:
defaults delete ~/Library/Preferences/com.apple.finder.plist FXDesktopVolumePositions
defaults delete ~/Library/Preferences/com.apple.finder.plist FXRecentFolders
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentMoveAndCopyDestinations
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentSearches
defaults delete ~/Library/Preferences/com.apple.finder.plist SGTRecentFileSearches
Se pueden encontrar archivos de diagnóstico adicionales en los siguientes directorios, pero se debe tener precaución antes de eliminar cualquiera, ya que puede romper el registro o causar otros problemas:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MACOS almacenó datos Wi-Fi preferidos (incluidas credenciales) en NVRAM. Para borrarlo, use los siguientes comandos:
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
MacOS puede recopilar información confidencial sobre lo que escribe, incluso si el diccionario de usuario y las sugerencias están desactivadas. Para eliminarlos y evitar que se creen nuevamente, use los siguientes comandos:
rm -rfv "~/Library/LanguageModeling/*" "~/Library/Spelling/*" "~/Library/Suggestions/*"
chmod -R 000 ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
chflags -R uchg ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
Los metadatos de soporte de aplicaciones Quicklook se pueden borrar y bloquear con los siguientes comandos:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
Los metadatos de revisión del documento se almacenan en /.DocumentRevisions-V100
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
Los metadatos de estado de aplicación guardados pueden eliminarse y bloquearse con los siguientes comandos:
rm -rfv ~/Library/Saved Application State/*
rm -rfv ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chmod -R 000 ~/Library/Saved Application State/
chmod -R 000 ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chflags -R uchg ~/Library/Saved Application State/
chflags -R uchg ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
Los metadatos de autosave se pueden borrar y bloquear con los siguientes comandos:
rm -rfv "~/Library/Containers/<APP>/Data/Library/Autosave Information"
rm -rfv "~/Library/Autosave Information"
chmod -R 000 "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chmod -R 000 "~/Library/Autosave Information"
chflags -R uchg "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chflags -R uchg "~/Library/Autosave Information"
La base de datos de Siri Analytics, que se crea incluso si el agente de lanzamiento de Siri está deshabilitado, se puede borrar y bloquear con los siguientes comandos:
rm -rfv ~/Library/Assistant/SiriAnalytics.db
chmod -R 000 ~/Library/Assistant/SiriAnalytics.db
chflags -R uchg ~/Library/Assistant/SiriAnalytics.db
~/Library/Preferences/com.apple.iTunes.plist
contiene metadatos de iTunes. Los datos de búsqueda de iTunes recientes pueden borrar el siguiente comando:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
Si no usa los servicios vinculados a la cuenta de Apple, las siguientes claves también pueden eliminarse, utilizando los siguientes comandos:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
Todos los medios de comunicación jugados en Quicktime Player se pueden encontrar en:
~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist
Pueden existir metadatos adicionales en los siguientes archivos:
~/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
Genere contraseñas seguras usando urandom
y tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
El Asistente de contraseña en Keychain Access también puede generar credenciales seguras.
Considere usar Diceware para contraseñas memorables.
Gnupg también se puede usar para administrar contraseñas y otros archivos cifrados (consulte DRDUH/PURSE y DRDUH/PWD.SH).
Asegúrese de que todas las cuentas en línea elegibles tengan habilitado la autenticación de factores múltiples. La forma más fuerte de autenticación multifactor es WebAuthn, seguida de autenticadores basados en aplicaciones, y los códigos basados en SMS son más débiles.
Yubikey es un token de hardware asequible con soporte de webauthn. También se puede utilizar para almacenar claves criptográficas para el cifrado GNUPG y la autenticación SSH; consulte DRDUH/YUBIKEY -GUIDE.
Cifre los archivos localmente antes de respaldarlos a medios externos o servicios en línea.
Si su modelo de amenaza lo permite, debe seguir el modelo de copia de seguridad 3-2-1 como lo describe CISA. Mantenga 3 copias: las copias de seguridad originales y dos. Mantenga las copias de seguridad en 2 tipos de medios diferentes, por ejemplo, en una unidad local y almacenamiento en la nube. Almacene 1 copia fuera del sitio.
Time Machine es la herramienta incorporada para manejar copias de seguridad en macOS. Obtenga una unidad externa o unidad de red para hacer una copia de seguridad y cifrar sus copias de seguridad.
Gnupg se puede usar con una contraseña estática o una clave pública (con la clave privada almacenada en yubikey).
Comprimir y cifrar un directorio utilizando con una contraseña:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
Descifrar y descomprimir el directorio:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
Los volúmenes cifrados también se pueden crear utilizando la utilidad de disco o hdiutil
:
hdiutil create ~/Desktop/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Desktop/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff
Las aplicaciones y servicios adicionales que ofrecen copias de seguridad incluyen:
MacOS recuerda los puntos de acceso a los que se ha conectado. Al igual que todos los dispositivos inalámbricos, el Mac transmitirá todos los nombres de puntos de acceso que recuerda (por ejemplo, myhomenetwork ) cada vez que busca una red, como cuando se despierta del sueño.
Este es un riesgo de privacidad, por lo que elimina las redes de la lista en preferencias del sistema > red > avanzada cuando ya no son necesarias.
También vea señales de la multitud: descubrir relaciones sociales a través de sondas de teléfonos inteligentes (PDF).
La información de Wi-Fi guardada (SSID, la última conexión, etc.) se puede encontrar en /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
Puede tener una dirección MAC aleatoria diferente para cada red que gira con el tiempo. Esto ayudará a evitar que se rastree en las redes y en la misma red con el tiempo.
MacOS almacena SSID y contraseñas Wi-Fi en NVRAM para que el modo de recuperación acceda a Internet. Asegúrese de borrar NVRAM o desautenticar su Mac de su cuenta de Apple, lo que borrará el NVRAM, antes de pasar una Mac. Restablecer el SMC borrará parte del NVRAM, pero no todo.
Finalmente, la protección de WEP en las redes inalámbricas no es segura y solo debe conectarse a las redes protegidas WPA3 cuando sea posible.
Para las conexiones SSH salientes, use claves de hardware o protegidos con contraseña, configure hosts remotos y considere el hashing para mayor privacidad. Consulte Drduh/config/ssh_config para las opciones de cliente recomendadas.
También puede usar SSH para crear un túnel encriptado para enviar tráfico, similar a una VPN.
Por ejemplo, para usar Privoxy que se ejecuta en un puerto de host remoto 8118:
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 proxy de calcetines:
ssh -NCD 3000 [email protected]
Por defecto, MACOS no tiene habilitado SSHD o inicio de sesión remoto .
Para habilitar SSHD y permitir conexiones SSH entrantes:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
O use el menú de preferencias del sistema > compartir .
Si habilita SSHD, asegúrese de deshabilitar la autenticación de contraseña y considere endurecer aún más su configuración. Consulte Drduh/config/sshd_config para las opciones recomendadas.
Confirme si SSHD se está ejecutando:
sudo lsof -Pni TCP:22
Mantenga su Mac físicamente segura en todo momento y no lo deje desatendido en público.
Un atacante experto con acceso físico no supervisado podría instalar un keylogger de hardware para grabar todas sus pulsaciones de teclas. El uso de una Mac con un teclado incorporado o un teclado Bluetooth hace que esto sea más difícil, ya que muchas versiones estándar de este ataque están diseñadas para conectarse entre un teclado USB y su computadora.
Para proteger contra el robo físico durante el uso, puede usar una herramienta anti-forense como Buskill o SwiftGuard (USBKill actualizado, con interfaz gráfica de usuario). Todos responden a los eventos USB y pueden apagar inmediatamente su computadora si su dispositivo está físicamente separado de usted o si se conecta un dispositivo no autorizado.
Considere comprar una pantalla/filtro de privacidad para su uso en público.
Se pueden aplicar el esmalte de uñas y los sellos de evidencia de manipulación a los componentes para detectar la manipulación.
MacOS tiene una potente capacidad de auditoría OpenBSM (módulo de seguridad básico). Puede usarlo para monitorear la ejecución del proceso, la actividad de la red y mucho más.
Para colocar registros de auditoría, use la utilidad praudit
:
$ sudo praudit -l /dev/auditpipe
header,201,11,execve(2),0,Thu Sep 1 12:00:00 2015, + 195 msec,exec arg,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,attribute,100755,root,wheel,16777220,986535,0,subject,drduh,root,wheel,root,wheel,412,100005,50511731,0.0.0.0,return,success,0,trailer,201,
header,88,11,connect(2),0,Thu Sep 1 12:00:00 2015, + 238 msec,argument,1,0x5,fd,socket-inet,2,443,173.194.74.104,subject,drduh,root,wheel,root,wheel,326,100005,50331650,0.0.0.0,return,failure : Operation now in progress,4354967105,trailer,88
header,111,11,OpenSSH login,0,Thu Sep 1 12:00:00 2015, + 16 msec,subject_ex,drduh,drduh,staff,drduh,staff,404,404,49271,::1,text,successful login drduh,return,success,0,trailer,111,
Consulte las páginas manuales de audit
, praudit
, audit_control
y otros archivos en /etc/security
Nota Aunque man audit
dice que el indicador -s
sincronizará la configuración de la auditoría, parece necesario reiniciar los cambios en la que surtan efecto.
Consulte los artículos sobre ilostmynotes.blogspot.com y derflounder.wordpress.com para obtener más información.
Nota La protección de integridad del sistema interfiere con DTRACE, por lo que no es posible usarla en versiones recientes de MacOS sin deshabilitar SIP.
iosnoop
MONITORES DISCO E/Sopensnoop
se abreexecsnoop
monitorea la ejecución de procesoserrinfo
monitorea llamadas al sistema fallidasdtruss
monitorea todas las llamadas del sistema Consulte man -k dtrace
para obtener más información.
ps -ef
enumera información sobre todos los procesos en ejecución.
También puede ver los procesos con el monitor de actividades .
launchctl list
y sudo launchctl list
LISTA Cargada y en ejecución del usuario y los agentes de lanzamiento del usuario y del sistema.
Lista de archivos de red abiertos:
sudo lsof -Pni
Lista del contenido de varias estructuras de datos relacionadas con la red:
sudo netstat -atln
Wireshark se puede usar desde la línea de comando con tshark
.
Monitorear consultas y respuestas DNS:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
Monitorear las solicitudes y respuestas HTTP:
tshark -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
Monitorear certificados X509 (SSL/TLS):
tshark -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
Google/Santa es un software de seguridad desarrollado para la flota corporativa de Macintosh de Google y de origen abierto.
Santa es un sistema de autorización de acceso binario y de archivos para MacOS. Consiste en una extensión del sistema que monitorea para las ejecuciones, un demonio que toma decisiones de ejecución basadas en el contenido de una base de datos local, un agente GUI que notifica al usuario en caso de una decisión de bloque y una utilidad de línea de comandos para administrar el sistema y Sincronizar la base de datos con un servidor.
Santa utiliza la API de autorización del núcleo para monitorear y permitir/no permitir binarios de ejecución en el núcleo. Los binarios pueden ser cotizados en blanco o negro por el hash único o el certificado de desarrollador de firma. Santa se puede usar solo para permitir que la ejecución de código confiable, o para la lista negra, el malware conocido se ejecute en una Mac, similar al software BIT9 para Windows.
Nota Santa no tiene actualmente una interfaz gráfica de usuario para administrar las reglas. ¡Las siguientes instrucciones son solo para usuarios avanzados!
Para instalar Santa, visite la página de lanzamientos y descargue la última imagen de disco, montela e instale el paquete contenido:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
Por defecto, Santa se instala en modo "monitor" (es decir, nada se bloquea, solo se registra) y viene con dos reglas: una para los binarios de Apple y otro para Santa Software.
Verificar que Santa esté funcionando y su módulo de kernel está cargado:
$ santactl status
>>> Daemon Info
Mode | Monitor
File Logging | No
Watchdog CPU Events | 0 (Peak: 0.00%)
Watchdog RAM Events | 0 (Peak: 0.00MB)
>>> Kernel Info
Kernel cache count | 0
>>> Database Info
Binary Rules | 0
Certificate Rules | 2
Events Pending Upload | 0
$ ps -ef | grep " [s]anta "
0 786 1 0 10:01AM ?? 0:00.39 /Library/Extensions/santa-driver.kext/Contents/MacOS/santad --syslog
$ kextstat | grep santa
119 0 0xffffff7f822ff000 0x6000 0x6000 com.google.santa-driver (0.9.14) 693D8E4D-3161-30E0-B83D-66A273CAE026 <5 4 3 1>
Cree una regla de la lista negra para evitar que iTunes se ejecute:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Intente lanzar iTunes: se bloqueará.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
Para eliminar la regla:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Abra iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
Cree un nuevo programa de ejemplo C:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
Compile el programa con GCC (requiere la instalación de Xcode o herramientas de línea de comandos):
$ gcc -o foo foo.c
$ file foo
foo: Mach-O 64-bit executable x86_64
$ codesign -d foo
foo: code object is not signed at all
Ejecutarlo:
$ ./foo
Hello World
Alternar a Santa en el modo "Lockdown", que solo permite que los binarios autorizados funcionen:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
Intenta ejecutar el binario sin firmar:
$ ./foo
bash: ./foo: Operation not permitted
Santa
The following application has been blocked from executing
because its trustworthiness cannot be determined.
Path: /Users/demouser/foo
Identifier: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Parent: bash (701)
Para autorizar un binario, determine su suma SHA-256:
$ santactl fileinfo /Users/demouser/foo
Path : /Users/demouser/foo
SHA-256 : 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
SHA-1 : 4506f3a8c0a5abe4cacb98e6267549a4d8734d82
Type : Executable (x86-64)
Code-signed : No
Rule : Blacklisted (Unknown)
Agregue una nueva regla:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
Ejecutarlo:
$ ./foo
Hello World
¡Está permitido y funciona!
Las aplicaciones también pueden ser permitidas por el certificado de desarrollador. Por ejemplo, descargue y ejecute Google Chrome, será bloqueado por Santa en el modo "Lockdown":
$ curl -sO https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
$ hdiutil mount googlechrome.dmg
$ cp -r /Volumes/Google Chrome/Google Chrome.app /Applications/
$ open /Applications/Google Chrome.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Google Chrome.app.
Autorizar la solicitud por el certificado del desarrollador (primer elemento en la cadena de firma):
$ santactl fileinfo /Applications/Google Chrome.app/
Path : /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SHA-256 : 0eb08224d427fb1d87d2276d911bbb6c4326ec9f74448a4d9a3cfce0c3413810
SHA-1 : 9213cbc7dfaaf7580f3936a915faa56d40479f6a
Bundle Name : Google Chrome
Bundle Version : 2883.87
Bundle Version Str : 55.0.2883.87
Type : Executable (x86-64)
Code-signed : Yes
Rule : Blacklisted (Unknown)
Signing Chain:
1. SHA-256 : 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
SHA-1 : 85cee8254216185620ddc8851c7a9fc4dfe120ef
Common Name : Developer ID Application: Google Inc.
Organization : Google Inc.
Organizational Unit : EQHXZ8M8AV
Valid From : 2012/04/26 07:10:10 -0700
Valid Until : 2017/04/27 07:10:10 -0700
2. SHA-256 : 7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f
SHA-1 : 3b166c3b7dc4b751c9fe2afab9135641e388e186
Common Name : Developer ID Certification Authority
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2012/02/01 14:12:15 -0800
Valid Until : 2027/02/01 14:12:15 -0800
3. SHA-256 : b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024
SHA-1 : 611e5b662c593a08ff58d14ae22452d198df6c60
Common Name : Apple Root CA
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2006/04/25 14:40:36 -0700
Valid Until : 2035/02/09 13:40:36 -0800
En este caso, 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
es el SHA -256 del Certificado de Desarrollador de Apple de Google (ID de equipo EQHXZ8M8AV) - Autorice IT::
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
Google Chrome ahora debería lanzarse, y las actualizaciones posteriores a la aplicación continuarán funcionando siempre que el certificado de firma de código no cambie o expire.
Para deshabilitar el modo "bloqueo":
sudo defaults delete /var/db/santa/config.plist ClientMode
Consulte /var/log/santa.log
para monitorear las decisiones de ejecución permitir y negar.
Un servidor de registro y configuración para Santa está disponible en Zentral, una solución de monitoreo de eventos de código abierto y servidor TLS para Osquery y Santa.
Zentral admitirá Santa en modo de operación de monitoreo y bloqueo. Los clientes deben inscribirse con una conexión TLS con Reglas Sync Santa, todos los eventos de Santa de los puntos finales se agregan y se registran nuevamente en Zentral. Los eventos de Santa pueden desencadenar acciones y notificaciones desde el marco Zentral.
Tenga en cuenta que Python, Bash y otros intérpretes están autorizados (ya que están firmados por el certificado de desarrollador de Apple), por lo que Santa no podrá bloquear que dichos scripts se ejecutaran. Por lo tanto, un posible programa no binario que deshabilita Santa es una debilidad (no vulnerabilidad, ya que es así por diseño) tomar nota.
Deshabilitar los datos de diagnóstico y uso.
Si quieres reproducir música o ver videos , usa el reproductor QuickTime, el reproductor multimedia incorporado en macOS. Utiliza la aplicación APP Sandbox, el tiempo de ejecución endurecido y los beneficios del volumen del sistema firmado como parte del sistema base.
Si desea usar torrents , use la transmisión que sea gratuita y de código abierto (nota: como todos los software, incluso los proyectos de código abierto, el malware aún puede encontrar su camino). También es posible que desee utilizar una lista de bloques para evitar mirar con hosts malos conocidos; consulte cuál es la mejor lista de bloques para la transmisión y Johntyree/3331662.
Administrar manejadores de archivo predeterminados.
Monitoree los registros del sistema con la aplicación de la consola o los comandos syslog -w
o /usr/bin/log stream
.
Establezca su pantalla en bloquear tan pronto como comience el protector de pantalla:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Exponer archivos ocultos y carpeta de biblioteca en el buscador:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Muestre todas las extensiones del nombre de archivo (para que "malvado.jpg.app" no pueda disfrazarse fácilmente).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
No se agote el valor predeterminado de los documentos en iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Habilite la entrada segura del teclado en el terminal (a menos que use yubikey o aplicaciones como TextExpander).
Deshabilite Crash Reporter (el cuadro de diálogo que aparece después de que una aplicación se bloquea y solicita que informe el problema a Apple):
defaults write com.apple.CrashReporter DialogType none
Desactivar anuncios de multidifusión de Bonjour:
ADVERTENCIA: ¡Esto causará problemas con AirPlay y AirPrint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
Deshabilite las funciones de transferencia y Bluetooth, si no son necesarios.
Compruebe que sus aplicaciones estén sencilladas en el monitor de actividades.
MacOS viene con esta línea en /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
Lo que evita que sudo cambie la variable de inicio cuando eleva los privilegios. Esto significa que se ejecutará como root los Dotfiles ZSH en el directorio de inicio del usuario no root cuando ejecute "sudo zsh". Es aconsejable comentar esta línea para evitar una manera potencialmente fácil para que el malware o un atacante local intensifiquen los privilegios para rootear.
Si desea conservar la comodidad de que el usuario raíz tenga un directorio de inicio de un usuario no raíz, puede agregar una línea de exportación a /var/root/.zshrc, por ejemplo:
export HOME=/Users/blah
Establezca un Umask personalizado:
sudo launchctl config user umask 077
Reiniciar, crear un archivo en Finder y verificar sus permisos (MacOS Default permite 'grupo/otro' acceso de lectura):
$ ls -ld umask *
drwx------ 2 kevin staff 64 Dec 4 12:27 umask_testing_dir
-rw-------@ 1 kevin staff 2026566 Dec 4 12:28 umask_testing_file