¿En qué herramientas integradas se basan las aplicaciones similares a Little Snitch?

Little Snitch es un software muy conocido que permite a los usuarios de Mac bloquear conexiones salientes desde una aplicación específica.

Ahora, cada vez que pregunto cómo hacer lo mismo con las herramientas integradas de OS X, recibo una respuesta como: "no puedes hacer esto sin Little Snitch. El firewall PF integrado no es un firewall de aplicaciones, y el -in AF solo puede bloquear el tráfico entrante. Ninguna herramienta de OS X lo permite".

Esto no puede ser cierto. Quiero decir, en este caso, ¿cómo lograrían Little Snitch, Hands Off! o aplicaciones pequeñas como RadioSilence para empezar? Estas aplicaciones en sí deben usar herramientas integradas de algún tipo para bloquear el tráfico por aplicación. Busqué alternativas de código abierto con la idea de echar un vistazo a sus fuentes y averiguar "cómo lo hacen". Pero... No encontré ninguna alternativa de código abierto. ¿Alguna idea?

Respuestas (1)

Little Snitch usa una extensión de kernel de red para interceptar el tráfico de red.

Los NKE le permiten crear módulos que se pueden cargar y descargar dinámicamente en posiciones específicas en la jerarquía de la red. Estos módulos pueden monitorear y modificar el tráfico de la red y pueden recibir notificaciones de eventos asincrónicos de la capa del controlador, como cambios de estado de la interfaz.

Cada uno de los mecanismos de KPI de red realiza una tarea específica. Los mecanismos básicos de KPI de redes son:

  • KPI de filtro de socket, que permite que un KEXT filtre el tráfico entrante o saliente en un socket determinado, según cómo estén conectados. Los filtros de socket también pueden filtrar la comunicación fuera de banda, como las llamadas a setsockopt o bind. Los filtros resultantes se encuentran entre la capa de conexión y el protocolo.
  • Filtro de interfaz KPI, que permite que un KEXT agregue un filtro a una interfaz de red específica . Estos filtros de interfaz (anteriormente conocidos como NKE de enlace de datos) pueden observar de forma pasiva el tráfico (independientemente del tipo de paquete) a medida que entra y sale del sistema. También pueden modificar el tráfico (por ejemplo, cifrar o realizar la traducción de direcciones). Básicamente, actúan como filtros entre una pila de protocolos y un dispositivo.

Existen alternativas a las extensiones de kernel de red, como mencionó, pero solo para ciertos casos de uso.

Debido a que incluso los errores menores en el código a nivel de kernel pueden tener consecuencias graves, incluida la inestabilidad de la aplicación, la corrupción de datos e incluso los pánicos del kernel, las técnicas descritas en este documento deben usarse solo si no existe ningún otro mecanismo. Por ejemplo, siempre que sea posible, el filtrado de IP generalmente se debe realizar medianteipfw . Del mismo modo, el registro de paquetes generalmente se debe realizar mediantebpf .

Las extensiones de kernel de red son mucho más poderosas y permiten un control más detallado.

Énfasis en el contenido citado mío. No estoy familiarizado con el otro software, pero supongo que sigue el mismo principio.