Higiene de la cadena de suministro

Análisis de vulnerabilidades de Homebrew en macOS

Un Mac de desarrollo acumula software como un garaje acumula herramientas. La mayor parte se instaló para una tarea concreta, hace años, y nadie la ha vuelto a mirar. Homebrew es muy bueno poniendo ese software en tu máquina. No tiene nada que decir sobre lo que le pasa después — y parte de él ya tiene CVE publicados.

Lo que cubre la línea de comandos de brew

brew outdated te dice qué tiene una versión más nueva. brew doctor te dice cuándo tu propia instalación no está sana. Ambos son realmente útiles y ninguno es una comprobación de seguridad — «existe algo más nuevo» y «lo que tienes es vulnerable» son preguntas distintas con urgencias distintas.

Lo que no cubre

brew audit es el comando al que todo el mundo recurre y el que más confunde: valida que una fórmula esté bien formada para enviarla a Homebrew. Es una comprobación de la receta, no del software que tienes en el disco. Nada en las herramientas por defecto compara tus versiones instaladas con una base de datos de avisos.

Cómo funciona

Lo que hace EasyHomebrew realmente cuando analiza

01

Recopilar

Se reúne cada fórmula y cada cask instalados con su versión — la misma lista que te daría brew list --versions, sin el copiar y pegar.

02

Contrastar

Esos paquetes se consultan por lotes contra OSV. La consulta es en vivo, así que un análisis refleja los avisos publicados hasta el momento en que lo lanzas.

03

Clasificar

Cada resultado lleva la gravedad del propio aviso cuando lo publica, y en su defecto su puntuación CVSS. En la fila del paquete aparece su peor resultado.

04

Actuar

Cada resultado enlaza con el aviso oficial, y la lista de paquetes desactualizados está a un clic — casi siempre el arreglo es sencillamente la versión parcheada.

La base de datos: OSV

Los resultados vienen de OSV, la base de datos de vulnerabilidades de código abierto que mantiene Google, consultada en vivo en lugar de distribuirse como una instantánea dentro de la app. Eso importa justo por lo que trata esta página: una base congelada en el momento de la publicación ya está caducada cuando instalas la app, y esa caducidad es precisamente el fallo que se quiere resolver.

Leer un resultado

Qué significan las gravedades en la práctica

Crítica

Explotable de forma remota, o casi sin esfuerzo. Merece la pena actuar hoy.

Alta

Grave, normalmente con condiciones. Merece la pena esta semana.

Media / baja

Real pero estrecha — a menudo requiere acceso local o una configuración poco habitual.

La gravedad viene del propio aviso cuando el editor la proporciona, y en su defecto de su puntuación CVSS. Un paquete con varios resultados se clasifica por el peor de ellos, así que la fila que ves en la lista es la fila por la que deberías juzgarlo.

Y cuando el problema es la propia instalación

Brew Doctor cubre la otra mitad de la higiene de la máquina — el estado de Homebrew en lugar de los paquetes que contiene. Se divide en dos tipos de aviso, y la diferencia es deliberada:

Ejecutable

Kegs sin enlazar, dependencias que faltan, fórmulas obsoletas, metadatos de cask no válidos — para esto brew ofrece un comando, así que Doctor te da un botón «Arreglar» y repite la comprobación después.

Solo copiar

Un comando sudo, un cambio de PATH, una llamada a xcode-select — eso pertenece a tu shell, no a una app que ejecuta comandos en tu nombre. Doctor los muestra como comandos copiables y te deja la decisión a ti.

Un análisis que tienes que acordarte de lanzar es un análisis que no vas a lanzar

Esta es la parte que decide si todo lo demás sirve de algo. Analizar bajo demanda responde a la pregunta «¿estoy expuesto ahora mismo?» — pero los avisos se publican continuamente, y la exposición vive justo en el hueco entre la publicación y el descubrimiento. Una vulnerabilidad de la que te enteras con tres meses de retraso no es muy distinta de una de la que no te enteraste nunca.

Por eso el análisis se ejecuta al arrancar por defecto, y un agente en la barra de menús vuelve a comprobar con el intervalo que fijes y se marca cuando aparece algo. No tienes que acordarte de nada. Ese es todo el diseño: el aviso te encuentra a ti, en lugar de esperar a que vayas tú a buscarlo.

Requiere macOS 14 (Sonoma) o posterior, Apple Silicon o Intel.

Preguntas sobre Homebrew y los CVE

¿brew audit comprueba las vulnerabilidades de seguridad?
No. `brew audit` valida que una fórmula esté bien formada para enviarla a Homebrew — estilo, licencias y reglas de empaquetado. Es una comprobación de la receta, no del software que instalaste, y no te dirá que la versión que tienes en el disco tiene un CVE publicado.
¿Cómo compruebo qué paquetes de Homebrew instalados tienen vulnerabilidades conocidas?
Hay que comparar lo que tienes instalado con una base de datos de vulnerabilidades. EasyHomebrew lo hace automáticamente: reúne tus fórmulas y casks instalados, consulta la base de datos OSV por lotes y lista lo que vuelve por gravedad. Hacerlo a mano significa ejecutar `brew list --versions` y buscar cada paquete tú mismo.
¿Qué base de datos de vulnerabilidades usa EasyHomebrew?
OSV (osv.dev), la base de datos de vulnerabilidades de código abierto que mantiene Google. Agrega avisos de distintos ecosistemas y se consulta en vivo, así que un análisis refleja lo publicado en el momento en que lo lanzas y no una lista congelada en la app el día del lanzamiento.
¿Cada cuánto vuelve a comprobar?
Por defecto se ejecuta un análisis al arrancar la app, y el agente de la barra de menús vuelve a comprobar con el intervalo que elijas y marca el icono de estado cuando aparece algo. También puedes analizar bajo demanda desde la pantalla de Seguridad en cualquier momento.
¿Se envía mi lista de paquetes a algún servidor?
Los nombres de los paquetes se envían a la API de OSV para contrastarlos con los avisos — eso es lo que exige una consulta en vivo. No se envía nada a Wizhut.tech, no hay cuenta y el análisis no está ligado a ningún perfil tuyo. La política de privacidad tiene los detalles.

Descubre qué estás ejecutando

Un análisis te dice si algo en tu Mac tiene una vulnerabilidad conocida — y el agente de la barra de menús te lo sigue diciendo a partir de entonces. Un pago único de 10 €.