Política de Seguridad¶
MIESC - Evaluación Inteligente Multicapa para Contratos Inteligentes
Versiones Soportadas¶
| Versión | Soportada | Notas |
|---|---|---|
| 4.x.x | Lanzamiento actual, mantenido activamente | |
| 3.x.x | Solo correcciones de seguridad | |
| 2.x.x | Fin de vida | |
| < 2.0 | Fin de vida |
Reportar una Vulnerabilidad¶
Tomamos las vulnerabilidades de seguridad en serio. Si descubres un problema de seguridad, por favor repórtalo de manera responsable.
Contacto¶
Email: fboiero@frvm.utn.edu.ar
Línea de Asunto: [SECURITY] MIESC - Descripción breve
Qué Incluir¶
- Descripción: Explicación clara de la vulnerabilidad
- Impacto: Impacto de seguridad potencial
- Pasos para Reproducir: Pasos detallados de reproducción
- Versiones Afectadas: Qué versiones están afectadas
- Corrección Sugerida: Si tienes una (opcional)
Línea de Tiempo de Respuesta¶
| Etapa | Línea de Tiempo |
|---|---|
| Reconocimiento inicial | 48 horas |
| Evaluación de severidad | 5 días hábiles |
| Desarrollo de corrección | Depende de la severidad |
| Divulgación pública | Después de que se libere la corrección |
Niveles de Severidad¶
| Nivel | Tiempo de Respuesta | Ejemplos |
|---|---|---|
| Crítico | 24-48 horas | Ejecución remota de código, brecha de datos |
| Alto | 1 semana | Escalada de privilegios, bypass de autenticación |
| Medio | 2 semanas | Divulgación de información, DoS |
| Bajo | 1 mes | Issues menores, hardening |
Medidas de Seguridad¶
Prácticas de Desarrollo¶
| Práctica | Implementación |
|---|---|
| Revisión de Código | Todos los PRs requieren revisión |
| Análisis Estático | Bandit, Semgrep en cada commit |
| Escaneo de Dependencias | Snyk, GitHub Dependabot |
| Escaneo de Secretos | Hooks de pre-commit |
| Commits Firmados | Firma GPG recomendada |
Pipeline CI/CD¶
# .github/workflows/security.yml
security-scan:
- bandit (linter de seguridad Python)
- semgrep (SAST)
- safety (vulnerabilidades de dependencias)
- trivy (escaneo de contenedores)
Gestión de Dependencias¶
- Dependencias fijadas a versiones específicas
- Actualizaciones automáticas semanales de dependencias
- Avisos de seguridad monitoreados vía GitHub
Arquitectura de Seguridad¶
Seguridad del Flujo de Datos¶
┌──────────────────────────────────────────────────────────┐
│ Entorno del Usuario │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Código Fuente│──────────────────────▶│ MIESC │ │
│ │ (Entrada) │ │ (Local) │ │
│ └─────────────┘ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Reportes │ │
│ │ (Salida) │ │
│ └─────────────┘ │
│ │
│ ════════════════════════════════════════════════════ │
│ ║ Todo el procesamiento es local - Sin flujo externo ║ │
│ ════════════════════════════════════════════════════ │
└──────────────────────────────────────────────────────────┘
Modelo de Amenazas¶
| Amenaza | Mitigación |
|---|---|
| Contratos maliciosos | Ejecución de herramientas en sandbox |
| Ataques de dependencias | Versiones fijadas, escaneo de seguridad |
| Inyección de código | Validación de entrada, sin shell=True |
| Exfiltración de datos | Solo procesamiento local |
| Cadena de suministro | Releases firmados, builds reproducibles |
Guías de Uso Seguro¶
Para Usuarios¶
- Verificar Descargas
- Usar Entornos Virtuales
- Mantener Actualizado
- Revisar Salidas de IA
- El análisis generado por IA puede contener errores
- Siempre verifica hallazgos críticos manualmente
Para Desarrolladores¶
- Firma tus Commits
- Ejecuta Verificaciones de Seguridad Localmente
- Nunca Hagas Commit de Secretos
- Usa variables de entorno
- Verifica que
.gitignoreincluya archivos sensibles
Consideraciones de Seguridad Conocidas¶
Componentes de IA¶
| Componente | Consideración | Mitigación |
|---|---|---|
| LLM Local (Ollama) | El modelo puede generar análisis incorrecto | Se requiere revisión humana |
| IA en Nube Opcional | Datos enviados a terceros | Solo opt-in, documentado |
Herramientas de Terceros¶
| Herramienta | Nota de Seguridad |
|---|---|
| Slither | Ejecuta compilador de Solidity |
| Mythril | Ejecución simbólica (en sandbox) |
| Echidna | Fuzzing (en sandbox) |
| Certora | Servicio en la nube (opcional) |
Manejo de Salidas¶
- Los reportes pueden contener lógica sensible del contrato
- El almacenamiento seguro de resultados de análisis es responsabilidad del usuario
- Evita compartir reportes públicamente sin revisión
Respuesta a Incidentes¶
Si Sospechas una Brecha¶
- Aislar: Deja de usar la versión afectada
- Reportar: Contacta al email de seguridad inmediatamente
- Preservar: Mantén logs y evidencia
- Actualizar: Aplica parches cuando estén disponibles
Nuestro Proceso de Respuesta¶
- Triaje y evaluación de severidad
- Desarrollo y prueba de corrección
- Liberación de actualización de seguridad
- Notificación a usuarios afectados (si aplica)
- Publicación de aviso de seguridad
- Análisis post-mortem
Avisos de Seguridad¶
Los avisos de seguridad se publican vía:
- GitHub Security Advisories
- Notas de lanzamiento
- Notificación directa (issues críticos)
Archivo de Avisos: github.com/fboiero/MIESC/security/advisories
Bug Bounty¶
Actualmente, MIESC no tiene un programa formal de bug bounty. Sin embargo, reconocemos y agradecemos a los investigadores de seguridad que divulgan vulnerabilidades de manera responsable.
Reconocimiento:
- Crédito en SECURITY.md
- Crédito en notas de lanzamiento
- Cartas de recomendación (bajo solicitud)
Cumplimiento¶
El desarrollo de MIESC sigue mejores prácticas de seguridad alineadas con:
- OWASP Secure Coding Practices
- NIST SP 800-218 (Secure Software Development Framework)
- CIS Controls (donde aplique)
Contacto¶
Issues de Seguridad: fboiero@frvm.utn.edu.ar
Tiempo de Respuesta: 48 horas (días hábiles)
Clave PGP: Disponible bajo solicitud
Última Actualización: Diciembre 2024