p PatchFirst

Para DevOps, SRE y administradores de sistemas

Mil CVE. ¿Cuáles debes corregir hoy?

Tu analizador devuelve una pared de hallazgos: Ubuntu ya corrigió la mitad mediante parches adaptados, mientras una vulnerabilidad KEV de un servicio público queda enterrada entre ellos. La monitorización de pago de PatchFirst organiza el trabajo en P0–P3. La comprobación gratuita ofrece una puntuación y destaca los componentes, sin detalles de hallazgos.

Una comprobación gratuita: puntuación, componentes destacados y puntos ciegos generales. La monitorización es de pago. Con el pago anual ahorras 20%: un servidor durante un año cuesta $28,80 en lugar de $36,00. Primeros 5 servidores: $3,00 por servidor al mes; a partir del servidor 6: $2,00; a partir del servidor 26: $1,50.

Un flujo de hallazgos junto a un bastidor de servidores se organiza en tres colas de prioridad.

Qué comprobamos

Actualmente: paquetes del SO, versiones exactas de dependencias y productos reconocidos. La cobertura depende de los permisos del agente y de los datos disponibles.

Disponible ahora

  • Paquetes del SO: Debian, Ubuntu, Alpine, familia RHEL (Rocky Linux, AlmaLinux), openSUSE y SLES.
  • PHP: composer.lock.
  • Node.js: npm (package-lock.json), Yarn v1 y Berry (yarn.lock), pnpm (pnpm-lock.yaml).
  • Python: poetry.lock, Pipfile.lock, uv.lock, requirements*.txt con versiones fijadas mediante ==; paquetes instalados en los venv/site-packages detectados.
  • Versiones de entornos de ejecución y servicios reconocidas por el catálogo de productos.
  • Imágenes de contenedores por nombre y etiqueta; su contenido no se inspecciona y sigue siendo un punto ciego. Las imágenes desconocidas y las etiquetas flotantes requieren revisión manual.

Se incluyen dependencias directas y transitivas; las de desarrollo se etiquetan. La detección está limitada por permisos, tiempo y número de archivos y paquetes. Las versiones imprecisas y los límites alcanzados aparecen como puntos ciegos.

Próximamente

  • Ruby: Gemfile.lock.
  • Go: go.sum e información de compilación de binarios.
  • Rust: Cargo.lock.
  • Java: archivos de bloqueo Maven/Gradle y manifiestos jar.

Estos ecosistemas aún no se comprueban.

Una versión antigua no cuenta toda la historia.

Un paquete ya incluye la corrección de la distribución. Otro procede de un PPA y escapó a la comprobación. Necesitan reglas de cotejo distintas.

Deja de perseguir correcciones que ya tienes

Ubuntu puede adaptar una corrección a una rama antigua sin cambiar la versión del proyecto original. PatchFirst comprueba los paquetes de distribución mediante OSV, usando el paquete fuente y su versión, en lugar de basarse solo en los rangos del proyecto original.

Esto reduce el ruido de los parches adaptados y permite centrarse en actualizaciones realmente necesarias.

No pierdas de vista los paquetes de terceros

PatchFirst detecta marcas de repositorios de terceros en las cadenas de versión, excluye esos paquetes del cotejo OSV de distribución y los comprueba con CVE.org como software del proyecto original.

Un caso real del desarrollo de PatchFirst: ejecución remota de código en PHP 8.3.35 del PPA de sury que OSV no detectó. Los avisos de la distribución por sí solos no bastaban.

Para CVE recientes, PatchFirst también señala los casos en que la distribución aún no ha publicado una entrada OSV para el paquete.

La monitorización convierte los hallazgos en una cola de trabajo.

Riesgo = gravedad (0–10: prioridad de distribución o, en su defecto, CVSS) × facilidad de explotación (KEV ×2, código de explotación ×1.4…) × exposición (público 1.0; posiblemente público 0.8; interno 0.6; local 0.45). Por ejemplo, CVSS 7 + KEV en un servicio público = 7 × 2 × 1.0 = 14 → P0: corregir hoy.

P0 y P1 primero

P0 significa riesgo ≥14 o una KEV en un componente público. El objetivo del modelo es un día. Después viene P1, con un objetivo de una semana. Cualquier P0 limita la puntuación global a 49.

P2 y P3 entran en el plan

P2 tiene un objetivo de un mes; P3 cubre el resto de hallazgos. El informe conserva los detalles: la prioridad ordena el trabajo y el equipo técnico decide cómo aplicar cada corrección.

La monitorización va más allá de la lista de paquetes.

Instalar una actualización no basta si sigue ejecutándose el núcleo antiguo. Una etiqueta flotante de imagen tampoco proporciona una versión fiable para comprobar.

Nuevo núcleo instalado. ¿Reinicio pendiente?

PatchFirst analiza el núcleo en ejecución. Si hay uno más nuevo instalado, añade un hallazgo independiente que indica la necesidad de reiniciar.

Mantén privadas las bases de datos

Las bases de datos, Redis y la API de Docker accesibles públicamente generan hallazgos independientes. Los números de puerto permanecen en el servidor del propietario. El agente infiere la exposición por las direcciones de escucha y la IP pública, sin sondeo externo.

Los puntos ciegos siguen visibles

Las imágenes no reconocidas y las etiquetas flotantes, como latest o 17, se marcan como puntos ciegos.

También cubre las dependencias de aplicaciones.

PatchFirst comprueba composer.lock, npm/Yarn/pnpm y Python pip/poetry con versiones exactas, incluidas las dependencias transitivas y de desarrollo. Las etiquetas de los archivos de bloqueo identifican los proyectos; los límites de recopilación aparecen como puntos ciegos. Ruby, Go, Rust y Java aún no están cubiertos.

Sin root. Revisa lo que se envía.

El agente es un único archivo: un binario autónomo o un zipapp Python. Para la monitorización, el instalador añade una tarea cron de usuario cada 6 horas.

Revisa primero el contenido

Usa dry-run para ver lo que enviaría el agente. En una comprobación gratuita puedes generar JSON anonimizado, revisarlo y pegarlo tú mismo en la página.

Python es opcional: el binario incluye el cifrado de nombres. La variante Python requiere python3-cryptography para cifrarlos. Recopila inventario técnico sin acceder al contenido de tus bases de datos.

Anonimizado antes del envío

Los equipos se convierten en UUID; las IP, en un indicador de dirección pública. Las rutas y nombres privados pasan a ser etiquetas HMAC. Con el cifrado de nombres activado, el diccionario se cifra con una clave independiente que el servicio nunca recibe. Sin él, el agente no envía diccionario.

Los inventarios anonimizados y los informes se almacenan en PostgreSQL de forma legible para el servicio. Las copias de seguridad usan una clave de destinatario independiente. Más sobre el tratamiento de datos →

Puedes dejar los nombres vacíos: el panel mostrará «Servidor 01». También puedes elegir un alias como web-1: se almacena sin cifrar. No introduzcas dominios, direcciones IP, empresas ni nombres de clientes. Para protegerlos, activa el cifrado de nombres en Cuenta: el navegador trasladará los existentes a un diccionario cifrado y el servicio eliminará las copias sin cifrar.

Limitaciones

Empieza con un equipo

Descubre qué componentes necesitan atención.

Una comprobación puntual es gratuita: ejecuta un comando para obtener el enlace o envía JSON anonimizado. El informe incluye puntuación, nombres y versiones instaladas con indicaciones de gravedad y puntos ciegos generales. Las vulnerabilidades concretas y lo que debes corregir primero forman parte de la monitorización de pago. La monitorización continua es de pago. Con el pago anual ahorras 20%: un servidor durante un año cuesta $28,80 en lugar de $36,00. Primeros 5 servidores: $3,00 por servidor al mes; a partir del servidor 6: $2,00; a partir del servidor 26: $1,50.