Dashboard

27/27 Reglas Activas

Dashboard de Seguridad

Analizador estático basado en OWASP Top 10:2025 para proyectos Python y JavaScript. El código recibido no se ejecuta, importa ni instala.
Cumplimiento Global Promedio
100.0%
Cumplimiento
0
Aprobados
2
En Revisión
Proyectos Recientes % Scoring
Historial de evaluaciones Ver historial completo →
🕒

Auditorías Recientes

Proyecto Cumplimiento Estado Fecha Acción
database-backup-strategies.zip
100.0%
REVISIÓN 2026-10-10 01:02 ⚡ Ver Reporte
database-backup-strategies.zip
100.0%
REVISIÓN 2026-10-10 00:43 ⚡ Ver Reporte
🚀

Escanear Nuevo Proyecto

Analiza código fuente en Python o JavaScript en segundos. Sube un archivo .zip o conecta repositorios de GitHub.

💡

¿Qué me recomiendas?

Prácticas Clave

Medidas prioritarias para elevar el cumplimiento de tu código:

Parametrizar Consultas SQL
Reemplazar concatenaciones por placeholders %s o consultas vinculadas en ORM para prevenir inyecciones.
Cookies con Flag HttpOnly
Configurar httpOnly: true y secure: true en tokens de sesión para mitigar robo XSS.
Hashing Seguro de Credenciales
Emplear algoritmos robustos con sal (Argon2id o bcrypt) evitando MD5 o SHA-1.

Consola de Ingestión y Escaneo

Consola de Escaneo de Seguridad

Sube tu proyecto empaquetado en formato ZIP o escanea directamente tus repositorios de GitHub. El análisis estático se ejecuta de forma determinista mediante AST en segundos.

Arrastra y suelta tu proyecto ZIP aquí

o selecciona un archivo ZIP local para iniciar el análisis estático.

Ningún archivo seleccionado.

⚡ Deduplicación SHA-256: Este proyecto ya fue analizado previamente. El reporte se cargará en 0.0s sin reanálisis.
Preparando fragmentos de 5 MB... 0%
Máximo 100 MB Fragmentado 5 MB Deduplicación SHA-256 Código no ejecutado

Inicia sesión con tu cuenta para acceder directamente a tus repositorios públicos.

Iniciar sesión con GitHub o Google
Motor AST Python + JavaScript

Análisis sintáctico estático usando AST de Python y Tree-Sitter para JS, con detección de Flask y Express.

Cobertura 27 Controles Trazables

Distribuidos entre las 10 categorías de OWASP Top 10:2025.

Seguridad Aislamiento Zero Execution

Garantía matemática de seguridad: el código subido nunca se ejecuta, importa ni instala.

Optimización Carga Fragmentada & Deduplicación

Bloques de 5 MB con verificación de integridad y caché instantáneo criptográfico por SHA-256.

AppSec Console Semgrep Compatible Rule Architecture

Editor de Reglas & Historial de Recomendaciones

Explora el catálogo de 27 controles OWASP Top 10:2025, prueba reglas en el Playground y consulta el historial inteligente de recomendaciones y remediaciones de seguridad ("¿Qué me recomiendas?").

Rules & Policies // Editor

Semgrep Compatible Rule Engine

Playground Activo Probar / Simular Regla AST contra Fragmento de Código

Escribe o pega código para comprobar cómo los analizadores deterministas de Python y Tree-Sitter evalúan el AST sin ejecutar el archivo.

🚨 [SIMULACIÓN AST: HALLAZGO DETECTADO]
Nodo detectado: ast.Call(func=ast.Attribute(attr='execute'), args=[ast.JoinedStr(...)])
Regla: OG-05.1 (Inyección SQL) // Severidad: Crítica
Recomendación: Parametrizar la consulta usando cursor.execute("SELECT ... WHERE id = %s", (id,)).

💡 Historial de Recomendaciones ("¿Qué me recomiendas?")

Recomendaciones prescriptivas generadas en auditorías para corregir hallazgos con código seguro probado.

Crítica A05:2025 Injection Python / Flask Regla: OG-05.1
Inyección SQL mediante formateo o interpolación de cadenas
CWE-89

Diagnóstico: El código concatena variables no controladas directamente en la instrucción SQL recibida por el cursor de base de datos.

Recomendación OWASP Guard: Utiliza siempre marcadores de posición posicionales o bind variables provistos por la librería de base de datos (e.g. %s en PyMySQL / psycopg2) o el ORM de SQLAlchemy.
❌ Código Inseguro (Detectado)
# Concatenación vulnerable
query = f"SELECT * FROM users WHERE id = {user_id}"
cursor.execute(query)
✅ Código Seguro Recomendado
# Sentencia parametrizada segura
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
Alta A02:2025 Security Misconfiguration Node.js / Express Regla: OG-02.3
Cookies de autenticación emitidas sin flags HttpOnly ni Secure
CWE-614

Diagnóstico: La cookie sensible que contiene tokens de sesión no cuenta con atributos que restrinjan el acceso desde JavaScript en el cliente o canales HTTP no cifrados.

Recomendación OWASP Guard: Configura httpOnly: true para prevenir el robo de sesión mediante ataques XSS, secure: true para forzar transporte HTTPS y sameSite: 'strict' o 'lax' para mitigar CSRF.
❌ Código Inseguro (Detectado)
// Cookie accesible por scripts XSS
res.cookie('session_token', token);
✅ Código Seguro Recomendado
// Flags de protección activas
res.cookie('session_token', token, {
  httpOnly: true,
  secure: process.env.NODE_ENV === 'production',
  sameSite: 'strict'
});
Alta A04:2025 Cryptographic Failures Python / General Regla: OG-04.1
Uso de función hash criptográfica obsoleta (MD5 o SHA-1)
CWE-327

Diagnóstico: Invocación de hashlib.md5() o hashlib.sha1() para operaciones de integridad o autenticación, algoritmos formalmente vulnerables a ataques de colisión prácticos.

Recomendación OWASP Guard: Emplear familias SHA-256 / SHA-3 para verificación de integridad de datos. Para almacenamiento de contraseñas, utilizar algoritmos con factor de costo (Argon2id, bcrypt o PBKDF2).
❌ Código Inseguro (Detectado)
import hashlib
# MD5 vulnerable a colisiones
hashed = hashlib.md5(secret.encode()).hexdigest()
✅ Código Seguro Recomendado
import hashlib
# SHA-256 criptográficamente robusto
hashed = hashlib.sha256(secret.encode()).hexdigest()
Alta A02:2025 Security Misconfiguration Python / Flask Regla: OG-02.1
Modo de depuración interactiva (debug=True) activo
CWE-489

Diagnóstico: El servidor web inicia con el depurador Werkzeug activado, permitiendo ejecución remota de código arbitrario a través del PIN de consola interactiva.

Recomendación OWASP Guard: Configurar debug=False de forma predeterminada y controlar su activación únicamente mediante variables de entorno en servidores de desarrollo aislados.
❌ Código Inseguro (Detectado)
# Servidor con debug expuesto
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')
✅ Código Seguro Recomendado
# Control estricto por entorno
is_debug = os.getenv('FLASK_DEBUG', '0') == '1'
if __name__ == '__main__':
    app.run(debug=is_debug, host='127.0.0.1')
Alta A02:2025 Security Misconfiguration Node.js / Express Regla: OG-02.2
Cabeceras CORS permisivas con credenciales habilitadas
CWE-942

Diagnóstico: El middleware CORS utiliza el origen comodín * conjuntamente con credenciales o refleja el encabezado Origin sin validación previa.

Recomendación OWASP Guard: Define una lista explícita de orígenes autorizados verificados contra un arreglo estricto antes de responder a solicitudes preflight (OPTIONS).
❌ Código Inseguro (Detectado)
// Permite orígenes arbitrarios
app.use(cors({ origin: '*', credentials: true }));
✅ Código Seguro Recomendado
const allowed = ['https://app.miempresa.com'];
app.use(cors({
  origin: (origin, cb) => cb(null, allowed.includes(origin)),
  credentials: true
}));
Crítica A08:2025 Integrity Failures Python Regla: OG-08.1
Deserialización insegura de objetos arbitrarios mediante pickle
CWE-502

Diagnóstico: Procesamiento de secuencias de bytes externas usando pickle.loads(), permitiendo a un atacante ejecutar código arbitrario (RCE) mediante métodos mágicos __reduce__.

Recomendación OWASP Guard: No utilices pickle para intercambiar datos con clientes o redes no confiables. Utiliza formatos estructurados seguros como JSON o Protocol Buffers con esquemas de tipado estrictos.
❌ Código Inseguro (Detectado)
import pickle
# Deserialización con capacidad RCE
data = pickle.loads(request.data)
✅ Código Seguro Recomendado
import json
# Formato seguro no ejecutable
data = json.loads(request.data)

📋 Ejemplos de Reglas Rápidas (Semgrep Examples)

Ejemplos predefinidos listos para probar la capacidad de detección del motor estático.

Identificador de Regla Categoría OWASP Lenguaje Severidad Acción
python.flask.sqli-raw-concat A05:2025 Injection Python Crítica
javascript.express.cors-wildcard A02:2025 Misconfiguration JavaScript Alta
python.crypto.weak-hash-md5 A04:2025 Cryptographic Failures Python Alta
javascript.express.cookie-httponly A02:2025 Misconfiguration JavaScript Alta

🎓 Recursos de Aprendizaje (Learn)

Documentación técnica sobre análisis determinista y gramáticas AST.

Tutorial de Reglas AST

Aprende cómo OWASP Guard recorre los árboles de sintaxis abstracta para identificar llamadas, asignaciones y operadores vulnerables sin ejecutar código.

AST Inspector & Tree-Sitter

Comprende la interoperabilidad entre el módulo estándar ast de Python y la biblioteca formal tree-sitter para código JavaScript y Express.

Estándar OWASP Top 10:2025

Explora la taxonomía completa, la ponderación de severidad y el mapeo con los identificadores oficiales CWE.

Auditorías Previas

Historial de Análisis y Reportes Guardados

Revisa proyectos previamente evaluados, su estado de cumplimiento y accede al reporte instantáneo en 0s gracias a la deduplicación.

2 auditorías
Proyecto Lenguaje Hash SHA-256 Cumplimiento Estado Hallazgos Fecha Acción
database-backup-strategies.zip python Auto-AST
100.0%
REVISIÓN 10 2026-10-10 01:02 ⚡ Ver Reporte
database-backup-strategies.zip python Auto-AST
100.0%
REVISIÓN 10 2026-10-10 00:43 ⚡ Ver Reporte

Documentación Técnica

Arquitectura, Metodología y Normativa

Base de conocimiento del motor de análisis estático Pipes & Filters, gramáticas AST y semántica de evaluación OWASP 2025.

Filtro 1 Ingestión Segura

Inspección de límites (100 MB ZIP, 300 MB descomprimido), ratio anti Zip-Bomb, normalización de rutas y prevención de Path Traversal.

Filtro 2 Detección de Proyectos

Identificación de stacks tecnológicos basada en señales de código y manifiestos (Flask en Python, Express en Node.js) sin evaluar código.

Filtro 3 Parsing AST Determinista

Árboles de sintaxis abstracta construidos mediante el módulo estándar ast para Python y la gramática formal tree-sitter para JavaScript.

Filtro 4 Ejecución del Registro de 27 Reglas

Evaluación funcional pura contra los AST sin acceso a red, sin importación de módulos del proyecto y con tolerancia a errores sintácticos parciales.

Filtro 5 Ponderación y Scoring Ponderado

Cálculo de métricas de cumplimiento global y cobertura automática bajo la fórmula estricta de OWASP Guard.

Estado del Motor

Listo
Parser Pythonast nativo
Parser JavaScripttree-sitter
Reglas registradas27 / 27
AlineaciónOWASP Top 10:2025
Ejecución Arbitraria0 (Bloqueada)
AislamientoZero Execution

Semántica de Unidades de Evaluación

S (Segura): La unidad de código cuenta con los controles defensivos exigidos validados por el AST.
F (Fallida): Se detectó un patrón sintáctico vulnerable inequívoco en el código analizado.
P (Posible): Hay indicios de vulnerabilidad sujeta al flujo de entrada en tiempo de ejecución.
R (Revisión): Señales que requieren revisión manual experta (e.g. configuraciones ambiguas).
E (No Evaluada): Controles no aplicables a la arquitectura tecnológica del proyecto.

Niveles de Severidad de Hallazgos

Crítica: Compromiso directo del servidor o acceso no autenticado (e.g., Command Injection, Deserialización RCE).
Alta: Exposición de datos confidenciales o bypass de autenticación (e.g., SQLi, Passwords planos).
Media: Configuraciones permisivas o falta de controles de cabeceras (e.g., CORS wildcard, Cookies sin HttpOnly).
Baja / Informativa: Buenas prácticas de desarrollo, sanitización preventiva y recomendaciones de arquitectura.