Análisis sintáctico estático usando AST de Python y Tree-Sitter para JS, con detección de Flask y Express.
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.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?
Medidas prioritarias para elevar el cumplimiento de tu código:
%s o consultas vinculadas en ORM para prevenir inyecciones.httpOnly: true y secure: true en tokens de sesión para mitigar robo XSS.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.
Inicia sesión con tu cuenta para acceder directamente a tus repositorios públicos.
Iniciar sesión con GitHub o GoogleDistribuidos entre las 10 categorías de OWASP Top 10:2025.
Garantía matemática de seguridad: el código subido nunca se ejecuta, importa ni instala.
Bloques de 5 MB con verificación de integridad y caché instantáneo criptográfico por SHA-256.
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?").
Semgrep Compatible Rule Engine
ast.Call(func=ast.Attribute(attr='execute'), args=[ast.JoinedStr(...)])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.
OG-05.1
Diagnóstico: El código concatena variables no controladas directamente en la instrucción SQL recibida por el cursor de base de datos.
%s en PyMySQL / psycopg2) o el ORM de SQLAlchemy.
# Concatenación vulnerable
query = f"SELECT * FROM users WHERE id = {user_id}"
cursor.execute(query)
# Sentencia parametrizada segura
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
OG-02.3
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.
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.
// Cookie accesible por scripts XSS
res.cookie('session_token', token);
// Flags de protección activas
res.cookie('session_token', token, {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
sameSite: 'strict'
});
OG-04.1
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.
import hashlib
# MD5 vulnerable a colisiones
hashed = hashlib.md5(secret.encode()).hexdigest()
import hashlib
# SHA-256 criptográficamente robusto
hashed = hashlib.sha256(secret.encode()).hexdigest()
OG-02.1
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.
debug=False de forma predeterminada y controlar su activación únicamente mediante variables de entorno en servidores de desarrollo aislados.
# Servidor con debug expuesto
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
# 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')
OG-02.2
Diagnóstico: El middleware CORS utiliza el origen comodín * conjuntamente con credenciales o refleja el encabezado Origin sin validación previa.
// Permite orígenes arbitrarios
app.use(cors({ origin: '*', credentials: true }));
const allowed = ['https://app.miempresa.com'];
app.use(cors({
origin: (origin, cb) => cb(null, allowed.includes(origin)),
credentials: true
}));
OG-08.1
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__.
import pickle
# Deserialización con capacidad RCE
data = pickle.loads(request.data)
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.
Aprende cómo OWASP Guard recorre los árboles de sintaxis abstracta para identificar llamadas, asignaciones y operadores vulnerables sin ejecutar código.
Comprende la interoperabilidad entre el módulo estándar ast de Python y la biblioteca formal tree-sitter para código JavaScript y Express.
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.
| 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.
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.
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.
Árboles de sintaxis abstracta construidos mediante el módulo estándar ast para Python y la gramática formal tree-sitter para JavaScript.
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.
Cálculo de métricas de cumplimiento global y cobertura automática bajo la fórmula estricta de OWASP Guard.