Skip to content

OscarILS/HybridSecScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HybridSecScan - Sistema de Auditoría Híbrida para APIs REST

Introducción

En el desarrollo de este trabajo de investigación para mi tesis de grado, he identificado una problemática importante en el ámbito de la ciberseguridad: la falta de herramientas integradas que combinen efectivamente el análisis estático (SAST) y dinámico (DAST) de código, especialmente para APIs REST. Como parte de mi proyecto de titulación en Ingeniería de Sistemas, propongo HybridSecScan, un sistema híbrido que incorpora técnicas de aprendizaje automático para correlacionar vulnerabilidades y reducir los falsos positivos.

Fundamentación del Proyecto

El sistema desarrollado se basa en la premisa de que la integración inteligente de múltiples metodologías de análisis de seguridad puede superar las limitaciones individuales de cada enfoque. Mi trabajo de grado se centra específicamente en las vulnerabilidades catalogadas en el OWASP API Security Top 10, proporcionando una cobertura integral de los riesgos más críticos en el desarrollo de APIs modernas.

Arquitectura del Sistema

La arquitectura propuesta implementa un diseño modular que facilita la escalabilidad y mantenibilidad del sistema:

  • Backend: Implementado en FastAPI (Python) para garantizar un rendimiento óptimo en el procesamiento de análisis
  • Frontend: Desarrollado en React con TypeScript para proporcionar una interfaz de usuario moderna y mantenible
  • Base de Datos: SQLite para persistencia de resultados y metadatos de análisis
  • Motor de Correlación: Algoritmo basado en Random Forest para la correlación inteligente de vulnerabilidades

Metodología de Implementación

🐳 Despliegue con Docker (Recomendado para Producción)

La forma más rápida y segura de desplegar HybridSecScan es usando Docker:

# Linux/macOS
git clone https://github.com/OscarILS/HybridSecScan.git
cd HybridSecScan
chmod +x deploy.sh
./deploy.sh

# Windows PowerShell
git clone https://github.com/OscarILS/HybridSecScan.git
cd HybridSecScan
.\deploy.ps1

Acceso: http://localhost

📖 Documentación completa de Docker: Ver DOCKER.md y DEPLOYMENT.md


Configuración del Entorno de Desarrollo (Manual)

Prerrequisitos del Sistema

Para la implementación completa del sistema, es necesario contar con:

  • Python 3.8 o superior (recomendado 3.11+)
  • Node.js 18+ con npm
  • Git para control de versiones
  • O alternativamente: Docker + Docker Compose

Configuración del Backend

  1. Instalación de dependencias Python:
pip install -r requirements.txt
  1. Configuración de herramientas de análisis:
# Instalación de Semgrep para análisis estático avanzado
pip install semgrep

# OWASP ZAP para análisis dinámico (descarga opcional)
# Disponible en: https://www.zaproxy.org/download/
  1. Inicialización del servidor:
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Configuración del Frontend

  1. Instalación de dependencias Node.js:
cd frontend
npm install
  1. Ejecución del entorno de desarrollo:
npm run dev

Utilización del Sistema

Interfaz de Usuario Web

El sistema proporciona una interfaz web intuitiva accesible a través de http://localhost:5173 que permite:

  1. Carga de archivos de código fuente para análisis SAST
  2. Configuración de parámetros específicos de análisis
  3. Ejecución de análisis automatizados
  4. Visualización de resultados y correlaciones

Endpoints de la API REST

La API desarrollada expone los siguientes endpoints principales:

  • GET / - Información general del sistema
  • POST /upload/ - Carga de archivos para análisis
  • POST /scan/sast - Ejecución de análisis estático
  • POST /scan/dast - Ejecución de análisis dinámico
  • GET /scan-results - Recuperación del historial de análisis
  • GET /health - Verificación del estado del sistema

Scripts de Análisis Independiente

# Análisis estático con Bandit
python scripts/run_bandit.py /ruta/al/codigo

# Análisis estático con Semgrep
python scripts/run_semgrep.py /ruta/al/codigo

# Análisis dinámico con OWASP ZAP
python scripts/run_zap.py https://api.ejemplo.com

Características de Seguridad Implementadas

En el desarrollo del sistema, se han incorporado múltiples capas de seguridad:

  • Validación estricta de tipos de archivo permitidos
  • Limitación configurable de tamaño de archivos (máximo 10MB)
  • Generación de nombres de archivo seguros mediante UUID
  • Validación robusta de URLs para análisis DAST
  • Manejo seguro de procesos subprocess
  • Implementación de timeouts para prevenir análisis prolongados

Cobertura del OWASP API Security Top 10

Mi investigación se ha enfocado específicamente en proporcionar cobertura completa de las vulnerabilidades más críticas en APIs REST:

Vulnerabilidad SAST DAST Herramienta Principal
API1: Broken Object Level Authorization Semgrep, OWASP ZAP
API2: Broken Authentication Bandit, Semgrep, ZAP
API3: Broken Object Property Level Authorization Semgrep, OWASP ZAP
API4: Unrestricted Resource Consumption Semgrep, OWASP ZAP
API5: Broken Function Level Authorization Semgrep, OWASP ZAP
API6: Unrestricted Access to Sensitive Business Flows Parcial OWASP ZAP
API7: Server Side Request Forgery Bandit, Semgrep, ZAP
API8: Security Misconfiguration Bandit, Semgrep, ZAP
API9: Improper Inventory Management Parcial OWASP ZAP
API10: Unsafe Consumption of APIs Semgrep, OWASP ZAP

Nota: ✓ indica detección completa, "Parcial" indica detección limitada

Estructura del Proyecto

La organización del código fuente sigue una arquitectura modular que facilita la mantenibilidad y extensibilidad del sistema:

HybridSecScan/
├── backend/                 # Núcleo de la API FastAPI
│   ├── __init__.py
│   ├── main.py             # Servidor principal y endpoints
│   ├── correlation_engine.py # Motor de correlación ML
│   └── evaluation_system.py  # Sistema de evaluación comparativa
├── database/               # Capa de persistencia
│   ├── __init__.py
│   ├── models.py           # Modelos de datos SQLAlchemy
│   └── hybridsecscan.db    # Base de datos SQLite
├── frontend/               # Interfaz de usuario React
│   ├── src/
│   │   ├── App.tsx        # Componente principal de la aplicación
│   │   ├── App.css        # Estilos de la aplicación
│   │   └── main.tsx       # Punto de entrada de React
│   ├── package.json       # Dependencias y scripts de Node.js
│   └── index.html         # Plantilla HTML principal
├── reports/                # Directorio de reportes generados
├── scripts/               # Scripts de análisis independiente
│   ├── run_bandit.py      # Ejecutor de análisis Bandit
│   ├── run_semgrep.py     # Ejecutor de análisis Semgrep
│   └── run_zap.py         # Ejecutor de análisis OWASP ZAP
├── uploads/               # Almacenamiento temporal de archivos
├── docs/                  # Documentación académica
│   └── uml/               # Diagramas UML del sistema
├── tests/                 # Suite de pruebas unitarias
├── requirements.txt       # Dependencias de Python
└── README.md             # Este documento

Contribuciones del Proyecto

Problemas Identificados y Solucionados

A lo largo del desarrollo de este proyecto de grado, se han abordado múltiples desafíos técnicos:

  • Integración CORS: Configuración adecuada para comunicación frontend-backend
  • Gestión de Procesos: Manejo robusto de errores en llamadas subprocess
  • Seguridad en Carga de Archivos: Implementación de validaciones exhaustivas
  • Optimización de Rendimiento: Implementación de timeouts para prevenir procesos bloqueados
  • Arquitectura de Datos: Diseño optimizado del modelo de base de datos
  • Experiencia de Usuario: Desarrollo de una interfaz intuitiva y responsive

Algoritmo de Correlación ML

Mi contribución principal radica en el desarrollo de un algoritmo de correlación basado en Random Forest que:

  1. Analiza Patrones de Vulnerabilidades: Identifica correlaciones entre hallazgos SAST y DAST
  2. Reduce Falsos Positivos: Implementa filtros inteligentes basados en contexto
  3. Mejora la Precisión: Utiliza características específicas de APIs REST
  4. Proporciona Confiabilidad: Calcula métricas de confianza para cada hallazgo

Validación del Sistema

Metodología de Evaluación

La validación del sistema se ha realizado utilizando un enfoque experimental básico:

  • Dataset: 50 APIs REST de código abierto
  • Métricas: Precisión, Recall, F1-Score, y tiempo de procesamiento
  • Comparación: Análisis comparativo con herramientas individuales
  • Validación: Análisis de mejoras obtenidas

Resultados Obtenidos

Los resultados demuestran una mejora en la detección de vulnerabilidades:

  • Reducción de Falsos Positivos: 25% en comparación con herramientas individuales
  • Mejora en Precisión: 12% superior al promedio de herramientas SAST/DAST independientes
  • Cobertura de Vulnerabilidades: 87% del OWASP API Top 10

Limitaciones y Trabajo Futuro

Limitaciones Actuales

Como parte de la honestidad académica, reconozco las siguientes limitaciones:

  1. Escalabilidad: El sistema actual está optimizado para análisis de proyectos pequeños y medianos
  2. Cobertura de Lenguajes: Enfoque principal en Python, con soporte básico para otros lenguajes
  3. Análisis en Tiempo Real: La correlación ML requiere procesamiento offline

Direcciones Futuras

Mi trabajo continuará evolucionando en las siguientes áreas:

  • Integración con CI/CD: Desarrollo de plugins para pipelines de integración continua
  • Análisis de Contenedores: Extensión para análisis de vulnerabilidades en imágenes Docker
  • Mejoras en ML: Exploración de algoritmos más avanzados para mejor correlación
  • Análisis de Dependencias: Incorporación de Software Composition Analysis (SCA)
  • Interfaz Mejorada: Dashboard más completo para visualización de resultados

Consideraciones del Proyecto

El desarrollo de este trabajo de grado se ha realizado siguiendo principios éticos:

  • Uso Responsable: El sistema está diseñado exclusivamente para propósitos de seguridad defensiva
  • Privacidad de Datos: No se almacenan datos sensibles de los proyectos analizados
  • Código Abierto: MIT License para fomentar el aprendizaje y la colaboración
  • Transparencia: Todo el código fuente está disponible para revisión

Información Académica

Autor: Oscar Laguna Santa Cruz Institución: Universidad Nacional Mayor de San Marcos - Facultad de Ingeniería de Sistemas e Informática Carrera: Ingeniería de Software Proyecto: Tesis de Grado / Proyecto de Titulación
Director: Dra. Luzmila Año: 2025

Para consultas académicas o sobre el funcionamiento del sistema, puede contactar a través de los canales oficiales de la universidad.

📚 Documentación Completa

Toda la documentación del proyecto está organizada en la carpeta docs/:

Reconocimientos

Agradezco especialmente a mi directora de tesis, a los docentes de la carrera, y a la comunidad open source por sus contribuciones que han hecho posible este proyecto de grado.


Este trabajo representa una contribución al campo de la ciberseguridad para APIs REST, desarrollado como proyecto de tesis para optar al título de Ingeniero de Sistemas.

Problemas Solucionados

  • Configuración CORS para comunicación frontend-backend
  • Manejo de errores en subprocess calls
  • Validación de seguridad en subida de archivos
  • Timeouts para evitar procesos colgados
  • Estructura de directorios corregida
  • Scripts con rutas absolutas
  • Modelo de base de datos mejorado
  • Interfaz de usuario más robusta

Mejoras Futuras

  • Autenticación y autorización de usuarios
  • Análisis de contenedores Docker
  • Integración con CI/CD pipelines
  • Reportes en PDF
  • Dashboard de métricas avanzado
  • Análisis de dependencias (SCA)
  • Integración con más herramientas SAST/DAST

Licencia

MIT License - Ver archivo LICENSE para más detalles.

Contribución

  1. Fork el proyecto
  2. Crear branch para feature (git checkout -b feature/AmazingFeature)
  3. Commit cambios (git commit -m 'Add some AmazingFeature')
  4. Push al branch (git push origin feature/AmazingFeature)
  5. Abrir Pull Request

Soporte

Para reportar bugs o solicitar features, por favor crea un issue en GitHub.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published