Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
iron-proxy — Un firewall de egreso para cargas de trabajo no confiables. | Kitploit
Herramientas/GitHubGitHub/paradigmxyz/iron-proxy
Seguridad de ContenedoresProxies Web e InterceptaciónExfiltración de DatosSeguridad WebSeguridad de RedesSeguridad en la NubeDevSecOpsSeguridad de Bases de Datos
GitHubparadigmxyz/iron-proxy

iron-proxy

Un firewall de egreso para cargas de trabajo no confiables.

Ver Repositorio
68248112hace 6 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

iron-proxy

Docs Latest Release Docker Pulls

El problema

Los trabajos de CI, los agentes de codificación con IA y los contenedores en sandbox pueden realizar solicitudes salientes arbitrarias. Una dependencia comprometida, una inyección de prompt o un paso de compilación malicioso pueden exfiltrar secretos, comunicarse con un servidor externo o abrir una reverse shell. La mayoría de los equipos no tienen ninguna visibilidad sobre lo que sale de sus cargas de trabajo, y mucho menos alguna forma de detenerlo.

Qué hace iron-proxy

iron-proxy es un proxy de egreso MITM con un servidor DNS integrado que se sitúa entre tu carga de trabajo no confiable e internet. Aplica una política de denegación por defecto en el límite de la red, de modo que la carga de trabajo solo puede alcanzar los dominios que permitas explícitamente. Los secretos reales nunca entran en el sandbox. Las cargas de trabajo usan tokens de proxy, e iron-proxy los sustituye por credenciales reales en el egreso, lo que significa que una carga de trabajo comprometida puede exfiltrar un token que no sirve para nada fuera del proxy.

Un solo binario. Un solo archivo de configuración YAML.

  • Egreso con denegación por defecto. Toda solicitud saliente se bloquea a menos que el destino coincida con tu lista de permitidos. Enumera tus dominios y CIDRs; todo lo demás recibe un 403.
  • Lista de denegación de IPs de upstream. Incluso cuando un host está permitido, el proxy se niega a conectarse a él si su dirección resuelta cae dentro de un CIDR denegado — cerrando la brecha de SSRF/DNS-rebinding en la que un nombre de host permitido apunta a IMDS o a loopback. Los endpoints de metadatos en la nube (169.254.169.254, fd00:ec2::254 y fd20:ce::254) y loopback se deniegan por defecto; se pueden sobrescribir mediante proxy.upstream_deny_cidrs o IRON_PROXY_UPSTREAM_DENY_CIDRS.
  • Inyección de secretos a nivel de límite. Las cargas de trabajo envían tokens de proxy; iron-proxy los reemplaza por secretos reales antes de que la solicitud salga. Si el sandbox se ve comprometido, el atacante obtiene tokens que son inútiles fuera del proxy.
  • Registro de auditoría por solicitud. Cada solicitud se registra como JSON estructurado con el resultado completo del pipeline de transformación: qué secretos se sustituyeron, qué reglas coincidieron, qué se bloqueó y por qué.
  • Compatible con streaming. Las actualizaciones de WebSocket y los Server-Sent Events se proxifican de forma nativa. No se necesita configuración especial para cargas de trabajo de agentes que mantienen conexiones de larga duración.
  • Soporte explícito de proxy. Listener de túnel opcional para herramientas que admiten de forma nativa la configuración de proxy mediante HTTP_PROXY, HTTPS_PROXY o ajustes de SOCKS5.
  • Proxy MITM de PostgreSQL. Listener opcional que autentica a los clientes contra credenciales gestionadas por el proxy, inyecta SET ROLE en la sesión de upstream y rechaza los intentos del cliente de mutar el rol (SET ROLE, set_config('role', ...), bloques DO, etc.) mediante un recorrido del AST de SQL. Se combina con la seguridad a nivel de fila de PostgreSQL para ofrecer aislamiento de datos por inquilino cuando la aplicación se conecta como un usuario de cuenta de servicio compartida. Requiere que PgBouncer (si se usa) se ejecute en pool_mode = session — los modos de agrupación transaction o statement reasignan silenciosamente los backends entre consultas y anularían la política. Consulta docs.iron.sh para más detalles.

Diseñado para pipelines de CI, GitHub Actions, agentes de IA (Claude Code, Cursor, Codex) y cualquier entorno donde ejecutes código en el que no confías plenamente.

Exfiltración bloqueada + reescritura de secretos en acción:

Instalación

Las imágenes de Docker están disponibles en Docker Hub y los binarios precompilados para Linux/macOS (amd64/arm64) están en GitHub Releases.

O compila desde el código fuente:```bash go build -o iron-proxy ./cmd/iron-proxy

## Inicio rápido```bash
cd examples/docker-compose
docker compose up

Esto inicia iron-proxy y un cliente de demostración que envía cinco solicitudes a través del proxy. Revisa los registros para ver las solicitudes permitidas, bloqueadas y con secretos reescritos:```bash docker compose logs proxy

Cada solicitud produce una entrada de auditoría JSON estructurada:```json
{
  "host": "httpbin.org",
  "method": "GET",
  "path": "/headers",
  "action": "allow",
  "status_code": 200,
  "duration_ms": 142,
  "request_transforms": [
    { "name": "allowlist", "action": "continue" },
    {
      "name": "secrets",
      "action": "continue",
      "annotations": { "swapped": [{ "secret": "OPENAI_API_KEY", "locations": ["header:Authorization"] }] }
    }
  ]
}

Las solicitudes rechazadas incluyen un campo rejected_by y se registran en el nivel WARN. Consulte Formato del registro de auditoría para conocer el esquema completo.

Uso en producción

1. Generar una CA

iron-proxy finaliza TLS generando certificados hoja sobre la marcha, firmados por una CA que usted proporciona. Los contenedores cliente deben confiar en esta CA.```bash mkdir -p certs openssl genrsa -out certs/ca.key 4096 openssl req -x509 -new -nodes
-key certs/ca.key
-sha256 -days 3650
-subj "/CN=iron-proxy CA"
-addext "basicConstraints=critical,CA:TRUE"
-addext "keyUsage=critical,keyCertSign"
-out certs/ca.crt

### 2. Crear una red de Docker

iron-proxy necesita una IP fija para que los contenedores puedan apuntar su DNS hacia él:```bash
docker network create --subnet=172.20.0.0/24 iron-proxy

3. Iniciar iron-proxy

Crea un archivo env con tus secretos (mantenlo fuera del control de versiones):```bash echo "OPENAI_API_KEY=sk-real-key" > .env

| `-s` | `--server` | `SERVER` | `http://localhost:8080` | URL del servidor de escaneo |
| `-t` | `--token` | `TOKEN` | - | Token de autenticación |
| `-o` | `--output` | `FILE` | - | Guardar resultados en archivo |
| `-f` | `--format` | `FORMAT` | `json` | Formato de salida (json, yaml, table) |
| `-v` | `--verbose` | - | `false` | Habilitar registro detallado |
| `-q` | `--quiet` | - | `false` | Suprimir salida no esencial |
| `--timeout` | - | `SECONDS` | `30` | Tiempo de espera de solicitud |
| `--retry` | - | `COUNT` | `3` | Número de reintentos |
| `--insecure` | - | - | `false` | Omitir verificación de certificado TLS |

### Ejemplos de Uso

```bash
# Escanear un solo objetivo
scanner scan --target https://example.com

# Escanear múltiples objetivos desde un archivo
scanner scan --file targets.txt --output results.json

# Escanear con autenticación
scanner scan --target https://example.com --token YOUR_API_TOKEN

# Escanear con formato de salida personalizado
scanner scan --target https://example.com --format yaml --output results.yaml

# Escaneo detallado con tiempo de espera personalizado
scanner scan --target https://example.com --verbose --timeout 60

# Escanear con reintentos e inseguro
scanner scan --target https://example.com --retry 5 --insecure

Referencia de la API

Iniciar un Escaneo

POST /api/v1/scan
Content-Type: application/json
Descargar herramienta