Capítulo 7: Protecting Against Advanced Attacks
1. Network Attacks / Ataques de red
1.1 — DoS / DDoS
- DoS: un solo origen. DDoS: múltiples equipos. Ambos buscan resource exhaustion (agotamiento de recursos).
- Reflected DDoS: solicitudes con IP falsificada (la víctima) a un tercero; la respuesta va a la víctima.
- Amplified DDoS: reflexión + amplificación — solicitud chica genera respuesta grande.
- SYN flood: muchos SYN sin completar handshake, dejando conexiones "medio abiertas".
1.2 — Spoofing and on-path attacks
- Spoofing: falsificar dirección de email, IP o MAC.
- On-path attack (antes MITM): equipo intermedio intercepta tráfico. Indicadores: demoras, certificados no confiables, fingerprint SSH cambiado.
- SSL stripping: degrada HTTPS a HTTP. Indicador: URL usa HTTP donde se esperaba HTTPS.
1.3 — DNS attacks
- DNS poisoning: corrompe registros en el servidor DNS. DNSSEC ayuda a prevenirlo.
- Pharming: corrompe resolución en el equipo del usuario (ej: archivo hosts).
- Domain hijacking: cambiar el registro del dominio sin permiso.
- DNS sinkhole: técnica defensiva que intercepta consultas a dominios maliciosos.
1.4 — Replay attacks
Capturan datos de una sesión legítima (credenciales) y los reenvían. Credential replay: repetir credenciales capturadas. Se combate con timestamps, números de secuencia y MFA.
2. Secure Coding Concepts / Conceptos de codificación segura
2.1 — Input validation
Verificar datos antes de usarlos: tipo de carácter, bloqueo de HTML, rangos válidos. Previene SQLi, buffer overflow, XSS.
- Client-side: rápida, pero se puede evadir.
- Server-side: más segura. Ideal: combinar ambas.
2.2 — Race conditions / TOCTOU
Dos procesos acceden al mismo recurso simultáneamente. TOCTOU: modificar el recurso entre la verificación y el uso.
2.3 — Other practices
- Error handling: mensajes genéricos al usuario, detalle solo en logs.
- Code obfuscation: hacer el código difícil de leer (no es seguridad confiable sola).
- Software diversity: compiladores con variaciones aleatorias.
- Third-party code risks: código vulnerable, backdoors, falta de actualizaciones.
- Secure cookies: atributo 'Secure' obliga a transmitir solo por HTTPS.
- Code signing: certifica autoría e integridad mediante hash.
2.4 — Code analysis and testing
| Technique | Qué hace |
|---|---|
| Static analysis | Examina código sin ejecutarlo |
| Dynamic analysis | Prueba código durante ejecución. Fuzzing envía datos aleatorios. |
| Sandboxing | Prueba en entorno aislado (VMs) |
| Packet monitoring | Rastrea uso de librerías de terceros |
3. Databases and SQL Injection
SQL injection (SQLi): ingresar código SQL en un formulario para alterar la consulta. Patrón clásico: ' or 1=1;--
3.1 — Other injection attacks
- DLL injection: inyecta DLL maliciosa en un proceso.
- LDAP injection: manipula consultas a directorios.
- XML injection: inserta datos extra en un XML.
- Directory traversal: usa '../' para acceder a archivos fuera del directorio esperado.
4. Memory Vulnerabilities and XSS
- Memory leak: la app no libera memoria; el sistema se vuelve lento hasta requerir reinicio.
- Buffer overflow: recibir más datos de los esperados, exponiendo memoria protegida.
- Integer overflow: valor numérico excede el tamaño reservado.
XSS (Cross-Site Scripting): inyecta scripts maliciosos en páginas web.
- Reflected XSS (no persistente): el código viaja en la solicitud del usuario.
- Stored XSS (persistente): el código queda guardado en el servidor, se ejecuta cada vez que alguien carga la página.
5. Automation and Orchestration / Automatización y orquestación
5.1 — Use cases
Provisioning, guardrails, security groups, ticket creation, incident escalation, CI/CD, API integrations.
5.2 — Benefits
- Eficiencia, consistencia de baselines, escalado seguro.
- Mayor retención de empleados (menos tareas repetitivas).
- Mejor reaction time ante incidentes. Workforce multiplier.
5.3 — Risks
Complejidad, costo inicial, single point of failure, technical debt (deuda técnica por scripts desactualizados), mantenimiento continuo.