Saltar al contenido

Temas

Mapa de la infraestructura de IA

Qué componentes tiene un despliegue de IA (servidores de modelos, MLOps, bases vectoriales, registros, notebooks), en qué puertos escuchan y por qué un escaneo clásico no los reconoce.

IntermedioEn progreso 5 min de lectura1 oct 2026#reconocimiento#puertos#mlops#vector-db#triton#mlflow#ollama

Antes de atacar o de defender algo hay que saber que existe. El reconocimientoReconocimientoPrimera fase de un ataque: descubrir qué servicios, versiones y datos expone un objetivo antes de tocar nada. En IA incluye servidores de modelos, registros, bases vectoriales y notebooks. es esa fase: construir la lista de objetivos. En una red tradicional ya sabes qué buscar (80/443 web, 22 SSH, 3306/5432 bases de datos). La infraestructura de IA escucha en puertos que casi nadie tiene en su lista y habla protocolos (gRPC, formatos de tensores, APIs compatibles con OpenAI) que un escáner HTTP genérico interpreta mal.

Un sistema de IA en producción no es un servidor: es un conjunto de servicios especializados, uno por cada etapa del ciclo de vida del modelo. Esta nota es el inventario; la anatomía de un sistema de IA explica cómo se conectan.

Los cinco grupos de componentes#

Cargan el modelo en memoria y exponen una API de predicción. Son la puerta de entrada.

  • NVIDIA Triton: HTTP 8000, gRPC 8001, métricas Prometheus 8002. Tres puertos para un servicio.
  • TensorFlow Serving: gRPC 8500, HTTP 8501.
  • TorchServe: inferencia 8080, API de gestión 8081, métricas 8082.
  • Ollama: 11434. vLLM: normalmente 8000. Ambos hablan formato compatible con OpenAI.

Casi todos exponen HTTP y gRPC: gRPC es más eficiente entre servicios internos con tensores grandes, HTTP es más cómodo para los clientes.

Gestionan experimentos, entrenamiento y despliegue. Son los objetivos más valiosos porque lo contienen todo.

  • MLflow Tracking: 5000. Guarda cada experimento, hiperparámetro, métrica y artefacto.
  • Kubeflow: corre sobre Kubernetes (80/443) y orquesta pipelines, notebooks y despliegues.
  • Ray: dashboard en 8265, Ray Serve en 8000. Su dashboard permite lanzar trabajos: es el que explotó la campaña ShadowRay.

Guardan embeddingsEmbeddingVector numérico que representa el significado de un texto; textos parecidos producen vectores cercanos, lo que permite la búsqueda semántica de un vector store. y alimentan el RAGRAGPatrón que recupera fragmentos relevantes de una base de conocimiento y los inyecta en el contexto del LLM para que responda con ellos.. Si hay un chatbot que «conoce tus documentos», hay una detrás.

  • Qdrant: HTTP 6333, gRPC 6334.
  • Weaviate: 8080, con endpoint GraphQL.
  • Milvus: 19530 (gRPC).
  • Chroma: 8000.

Su esquema ya cuenta una historia: una colección rrhh-politicas-internas con vectores de 768 dimensiones dice qué hace ese RAG y con qué familia de modelos de embedding.

El registro de modelosRegistro de modelosCatálogo versionado de modelos entrenados: guarda artefactos, etapas (staging, producción), URIs de almacenamiento y quién creó cada versión. guarda los archivos serializados (.pkl, .pt, .onnx, .mar), el historial de versiones, la etapa de cada una (staging, producción, archivado), la URI del artefacto en el almacenamiento en la nube y quién la creó.

Un registro sin proteger es el mejor hallazgo de reconocimiento: mapa completo del portafolio de ML de la organización en un solo sitio.

  • Jupyter (8888): se lanza a menudo con --ip=0.0.0.0 y sin token. Eso es una terminal para quien llegue al puerto, y las celdas suelen traer credenciales en claro.
  • MinIO (9000 API, 9001 consola): almacenamiento compatible con S3 para artefactos; el listado de buckets se deja habilitado con frecuencia.
  • Métricas Prometheus (8002 Triton, 8082 TorchServe): filtran nombres de modelo, tamaños de lote, uso de GPU y latencias. Dibujan la topología del despliegue sin tocar la API de inferencia.

Tabla de referencia#

Componente Puertos por defecto Protocolo Primer endpoint que mirar
NVIDIA Triton 8000, 8001, 8002 HTTP, gRPC, métricas /v2/health/ready, /v2
TensorFlow Serving 8500, 8501 gRPC, HTTP /v1/models/<nombre>
TorchServe 8080, 8081, 8082 HTTP /ping, /models (gestión en 8081)
Ollama 11434 HTTP /api/tags, /api/show
vLLM 8000 HTTP (OpenAI-like) /v1/models
MLflow 5000 HTTP /api/2.0/mlflow/experiments/search
Kubeflow 80, 443 HTTP /pipeline/apis/v1beta1/pipelines
Ray 8265, 8000 HTTP Dashboard, /api/jobs/
Qdrant 6333, 6334 HTTP, gRPC /collections
Weaviate 8080 HTTP, GraphQL /v1/schema, /v1/meta
Milvus 19530 gRPC Conexión al puerto
Jupyter 8888 HTTP /api/kernels, /api/contents
MinIO 9000, 9001 HTTP (S3) Listado de buckets
Métricas ML 8002, 8082 HTTP /metrics

Qué cambia respecto a una red clásica#

Catorce componentes y más de veinte puertos. Una aplicación web convencional añade tres o cinco puertos a la red; sumar un stack de IA multiplica la superficie de ataqueSuperficie de ataqueConjunto de puntos por los que un atacante puede entrar, causar un efecto o extraer datos de un sistema. de red por tres como poco. Y hay una segunda diferencia, más importante que el número: estos servicios nacieron para científicos de datos en entornos de confianza. Muchos no traen autenticación por defecto porque se diseñaron para correr dentro de un clúster «seguro».

Reconocimiento de una subred con IA
SUBRED 10.10.45.0/24Escáner10.10.45.1080 · nginx10.10.45.205432 · postgres10.10.45.318000Triton / vLLM10.10.45.325000MLflow10.10.45.336333Qdrant10.10.45.348888Jupyter22 80 443 54325000 6333 8000 8888

Paso 1 de 4Una subred, seis hosts

La subred 10.10.45.0/24 tiene seis hosts. Desde fuera no sabes cuáles son de IA: de momento solo ves direcciones.

Dónde se ve en la realidad#

En enero de 2026 un barrido en Shodan encontró decenas de miles de instancias de agentes e infraestructura de IA expuestas. Lo útil no es la cifra, sino el patrón de lo que aparecía: dashboards de MLflow sin autenticación en el 5000, notebooks Jupyter abiertos (algunos ya con mineros de Monero instalados por atacantes anteriores), dashboards de Ray en el 8265 y endpoints de Triton en el 8000. Las búsquedas que los encuentran son triviales:

dorks de Shodan (ejemplos públicos)
port:5000 "MLflow"
port:8888 title:"Home Page - Select or create a notebook"
http.title:"Ray Dashboard"
port:8001 "triton"

Si conoces puertos y banners, encontrar infraestructura de IA es fácil. Lo difícil es acordarse de buscarla.

Tu turno#

Tu turno

Auditoría de una subred de IA

Te dan la subred interna 10.10.45.0/24 y el trabajo de encontrar todo componente de IA que haya.

  1. Escribe dos comandos de nmap: uno para los puertos «clásicos» (22, 80, 443, 5432) y otro para los de la tabla (5000, 6333, 6334, 8000, 8001, 8002, 8888, 9000, 9001), ambos con -sV.
  2. Compara los resultados: qué hosts solo tienen servicios tradicionales y cuáles tienen IA.
  3. Para cada puerto de IA abierto, anota IP, puerto y tu hipótesis de componente. ¿En cuáles es ambiguo (como el 8000)?

Reto

¿Qué hago con un 8000 ambiguo?

▸Mostrar solución

Pide la API que lo desambigua, sin modificar nada: GET /v2/health/ready y GET /v2 responden en Triton; GET /v1/models en vLLM; GET /api/v1/heartbeat (o /api/v2/heartbeat) en Chroma. El siguiente paso está en la nota de enumeración.

En resumen#

  • Un despliegue de IA son cinco grupos de servicios: servir modelos, MLOps, bases vectoriales, registros y soporte.
  • Usan puertos poco habituales y a menudo HTTP y gRPC a la vez; varios comparten número (8000, 8080).
  • Los más valiosos son el registro de modelos y la plataforma MLOps, porque contienen todo el historial.
  • Muchos nacieron sin autenticación pensando en una red de confianza; expuestos, son hallazgos fáciles.
  • Tener un inventario propio de estos servicios es el primer control defensivo.

Referencias#

Notas relacionadas

ESC
↑↓ para navegar↵ para abriresc para cerrar