Qué escanea SoterSec, y cómo
Esta página es para vos, que vas a decidir si conectar SoterSec a un repo real. Cubre los cuatro métodos de entrada, los ecosistemas con auto-remediación, y las salvaguardas de cada escaneo activo.
Cuatro formas de darle un inventario
Manifiesto o SBOM manual
Subes un archivo (package.json, requirements.txt, un SBOM CycloneDX/SPDX). Se parsea, se extraen las dependencias y se cruzan contra OSV/CISA KEV/EPSS.
Imagen Docker (Syft + Trivy)
Pegas la referencia de una imagen pública o privada. Syft extrae el inventario de paquetes de las capas sin bajar ni correr la imagen. En paralelo, Trivy escanea la misma imagen buscando CVEs del sistema operativo, malas configuraciones del Dockerfile y secretos hardcodeados. Un hallazgo de Trivy nunca bloquea el resto del escaneo si falla.
Repositorio completo (GitHub)
Conectas un repo con un token de acceso. SoterSec recorre el árbol completo (paginando si GitHub trunca la respuesta en repos grandes), selecciona todos los manifiestos reconocibles por directorio, priorizando lockfiles sobre archivos de declaración, y los combina en un solo inventario. También detecta SBOMs por nombre de archivo (sbom, cyclonedx, spdx, bom.json), no solo por convención de ecosistema.
URL en vivo (fingerprint + Nuclei)
Sin acceso al código: verificas que el dominio es tuyo (archivo .well-known o registro TXT en DNS), y SoterSec hace fingerprint pasivo del stack expuesto (headers, HTML, JS con versión en el nombre) más un escaneo activo con plantillas de Nuclei, siempre con SSRF-guard (rechaza IPs privadas, loopback, metadata) y límites de tasa fijos, no configurables por el usuario.
Ecosistemas y manifiestos soportados
"Auto-remediación" significa que SoterSec puede abrir un Pull Request con el bump de versión ya armado (plan Enterprise). El resto de ecosistemas se detecta y prioriza igual, solo no se genera el PR automático todavía.
| Ecosistema | Manifiestos | Auto-remediación |
|---|---|---|
| npm | package.json, package-lock.json, pnpm-lock.yaml | sí |
| pip | requirements.txt, poetry.lock, Pipfile.lock | sí |
| Maven | pom.xml | sí |
| Go | go.mod | sí |
| Cargo | Cargo.toml | sí |
| RubyGems | Gemfile, Gemfile.lock | sí |
| NuGet | *.csproj (PackageReference) | sí |
| CycloneDX / SPDX | SBOM en formato estándar, cualquier ecosistema que declare | solo lectura |
Evidencia detrás del score
- OSV.dev: catálogo público de CVEs por paquete y versión, la fuente base de cada hallazgo.
- CISA KEV: catálogo de vulnerabilidades con explotación activa confirmada. Si un CVE está en KEV, se prioriza al máximo sin importar su CVSS.
- EPSS (FIRST.org): probabilidad real estimada de explotación en los próximos 30 días, no severidad teórica.
- OSV MAL-*: paquetes reportados como malware confirmado se marcan críticos al instante, sin pasar por el scoring normal.
Salvaguardas del escaneo activo
El escaneo de URL es el único método que genera tráfico activo hacia un host que tú eliges, así que tiene controles que los demás métodos no necesitan:
- Verificación de dominio obligatoria: antes de escanear, confirmas que el dominio es tuyo (archivo en
.well-known/o registro TXT en DNS). - Resolución DNS estricta: si el dominio resuelve a una IP privada, loopback, o de metadata de nube, el escaneo se rechaza.
- Plantillas y límite de tasa fijos: Nuclei corre siempre excluyendo plantillas destructivas o de denegación de servicio, con un límite de peticiones por segundo que no es configurable por el usuario.
¿Preguntas técnicas que no responde esta página? Escribinos a nestcdev@gmail.com. Para precios y planes, ver Precios.