Este repositorio contiene una colección de prácticas y laboratorios realizados para la asignatura de Seguridad en Sistemas Informáticos (Curso 2025-2026). El proyecto abarca desde el desarrollo de software seguro utilizando criptografía aplicada hasta la auditoría ofensiva (Pentesting) y la implementación de defensas perimetrales (Firewalls, IDS/IPS).
El repositorio está organizado en módulos temáticos que cubren distintas áreas de la ciberseguridad:
| Módulo | Temática Principal | Tecnologías y Herramientas | Tipo |
|---|---|---|---|
| P1 - Criptografía | Sistema de Facturación Segura | Java (JCA), Bouncy Castle, AES/RSA | Código |
| P2 - Pentesting | Explotación de Vulnerabilidades | Metasploit, Nmap, Nuclei | Informe |
| P3 - Web Security | Vulnerabilidades Web & WAF | XSS, SQLi, ModSecurity (OWASP CRS) | Informe |
| P4 - Análisis de Red | Sniffing & Scanning | Wireshark, Bettercap, Nmap | Informe |
| P5 - Perímetro | Diseño de DMZ & Firewalls | Shorewall, Iptables, Linux Networking | Informe |
| P6 - Detección | NIDS & Análisis de Malware | Suricata, Emerging Threats Rules | Informe |
Portafolio-SSI/
├── P1-Criptografia-Java/ # Código fuente del sistema de facturación
│ ├── src/ # Clases Java (AES, RSA, Firmas)
│ ├── scripts/ # Automatización Bash (run.sh, cleanup.sh)
│ ├── lib/ # Librerías (Bouncy Castle)
│ └── docs/ # Memoria técnica P1
├── P2_Metasploit/
├── P3_VulnerabilidadesWeb/
├── P4_AnalisisTrafico/
├── P5_SeguridadPerimetral/
├── P6_NIDS_Suricata/
└── README.md
Desarrollo de una aplicación en Java que implementa un ciclo completo de seguridad para documentos sensibles:
- Confidencialidad: Cifrado híbrido (AES-256 + RSA-512).
- Integridad y No Repudio: Firmas digitales y Hashing (SHA-256).
- Sellado de Tiempo: Implementación de una Autoridad de Sellado simulada.
- Automatización: Scripts en Bash para pruebas de integración y casos de fallo.
Auditoría ofensiva sobre un entorno Metasploitable2, logrando compromiso total del sistema mediante:
- Explotación de Backdoors (VSFTPD).
- Ataques a configuraciones por defecto (Tomcat, MySQL).
- Ejecución remota de código (Samba, DistCC).
- Ataque: Explotación manual de XSS (Stored/Reflected) y SQL Injection (Blind/Error-based) en DVWA.
- Defensa: Implementación y configuración de ModSecurity con reglas OWASP CRS para detener los ataques en tiempo real.
Análisis profundo de protocolos seguros vs. inseguros:
- Comparativa de tráfico cifrado (SSH/HTTPS) vs. texto plano (Telnet/HTTP).
- Ataques de ARP Spoofing (Man-in-the-Middle).
- Análisis de técnicas de escaneo de puertos (Stealth vs. Noisy).
Diseño e implementación de un firewall de tres patas (Zona Interna, Externa y DMZ):
- Políticas de filtrado por defecto (Default DROP).
- Configuración de SNAT y DNAT para exposición segura de servicios.
- Aislamiento estricto de la red interna ante compromisos en la DMZ.
Despliegue de un Sistema de Detección de Intrusiones:
- Creación de reglas personalizadas para detección de firmas.
- Análisis forense de capturas PCAP (detección de malware real FormBook).
- Uso de reglas comunitarias (Emerging Threats).
La Práctica 1 contiene código fuente ejecutable. Para probar el sistema criptográfico:
- Java JDK 8 o superior.
- Entorno Linux/Unix (para los scripts
.sh).
# 1. Clonar el repositorio
git clone [https://github.com/TU_USUARIO/TU_REPO.git](https://github.com/TU_USUARIO/TU_REPO.git)
cd TU_REPO/P1-Criptografia-Java
# 2. Dar permisos de ejecución a los scripts
chmod +x scripts/*.sh
# 3. Ejecutar el flujo completo (Compilación, Generación de claves, Cifrado, Sellado, Validación)
./scripts/run.sh
# 4. Probar escenarios de fallo (Simulación de ataques/errores)
./scripts/run.sh fail
Este portafolio representa el trabajo práctico realizado para la titulación de Grado en Ingeniería Informática en la Escuela Superior de Ingeniería Informática (Universidad de Vigo).
Autores:
Mauro Zelenka Pedrosa
Luis Fernando Pérez Moure
Nota: Las claves privadas y archivos binarios generados durante la ejecución de la P1 son eliminados automáticamente por los scripts de limpieza y están ignorados en el repositorio por seguridad.