M256 sem · 120 h24 lecciones

Sigla en azul →glosario(primera vez: expansión entre paréntesis).

M25 — Ciberseguridad aplicada

Por qué existe

Capa C de la pista de seguridad, aplicada a tu SaaS (software como servicio) multi-tenant (varios clientes en un solo sistema). El fallo #1 a cazar: IDOR (referencia directa insegura a un objeto) cross-tenant (el tenant A lee datos del B). Ver producto-saas.

En resumen: ciber aplicada al SaaS multi-tenant: el bug #1 a cazar es IDOR cross-tenant.

Objetivos de aprendizaje

  1. Inventariar activos y superficie del SaaS desplegado.
  2. Security review con pruebas de aislamiento entre tenants.
  3. Hardening de producción (HTTPS (HTTP sobre TLS), backups, least privilege, secrets Stripe).
  4. Tabletop de incidente + runbook.
  5. Intro privacidad/datos (contexto MX) por tenant.

Cómo estudiar esta materia (lecciones)

M25 es ciberseguridad aplicada al SaaS Agenda Ops: L01–L24, evidencia en projects/m25-ciber/ y fixes en el repo del producto.

  1. Orden L01 → L24; prioriza IDOR cross-tenant sobre hallazgos cosméticos.
  2. Solo atacas tus ambientes prod/staging acordados.
  3. Cierra ≥2 issues críticos/altos de aislamiento con tests antes del cierre.
  4. Tabletop documentado (≥30 min narrativa) sin copiar tutorial.
  5. hilo seguridad + producto-saas.

Semana tipo (20 h)

Bloque Horas Qué haces
Lecciones + labs 10–12 4× ~5 h en inventario/review/hardening
Fixes cross-tenant 4–6 PRs (pull request) con tests
Tabletop / informe 4–6 security-review.md
Retro 1 Riesgo residual

Si un día solo tienes 2 h: prueba manual A vs B o un fix con test.

Lecciones

Semana 1 — Inventario y clasificación multi-tenant (~20 h)

ID Lección ~h
L01 Inventario de activos SaaS prod y staging 5
L02 Clasificación de datos por tenant 5
L03 Dos tenants de prueba y mapa de identidades 5
L04 Primera prueba manual cross-tenant 5

Semana 2 — Authn/authz y tests cross-tenant (~20 h)

ID Lección ~h
L05 Review authn — sesión y tokens 5
L06 Review authz — roles staff vs admin 5
L07 Automatizar test cross-tenant en CI 5
L08 Cerrar ≥1 hallazgo crítico de aislamiento 5

Semana 3 — Hardening deploy y Stripe (~20 h)

ID Lección ~h
L09 HTTPS, headers y configuración prod 5
L10 Secretos Stripe y rotación 5
L11 Least privilege DB y deploy 5
L12 Backup y restore probado 5

Semana 4 — Logging, abuso y alertas (~20 h)

ID Lección ~h
L13 Logging sin secretos ni PII innecesaria 5
L14 Rate limit login y abuso básico 5
L15 Alertas mínimas operativas 5
L16 Errores HTTP y fugas de stack 5

Semana 5 — Privacidad y cierre de hallazgos (~20 h)

ID Lección ~h
L17 Retención y borrado por tenant 5
L18 Minimización en exports y soporte 5
L19 Consentimiento y avisos (contexto MX) 5
L20 Segundo hallazgo aislamiento cerrado 5

Semana 6 — Tabletop y security review final (~20 h)

ID Lección ~h
L21 Tabletop — fuga de .env 5
L22 Tabletop — acceso cross-tenant en prod 5
L23 Runbook de respuesta incidentes 5
L24 Security review final y cierre M25 5

Empieza por L01 hoy.

Lecturas (mapa rápido)

Canon: OWASP (proyecto abierto de seguridad en aplicaciones web) Testing Guide (secciones por semana) + hilo seguridad. Ver bibliografía.

Semana Lecciones OWASP / foco Entrega
1 L01–L04 Information gathering inventario.md, tenants prueba
2 L05–L08 Identity / authorization Tests cross-tenant
3 L09–L12 Configuration + Stripe Hardening + restore
4 L13–L16 Logging / abuse Política logs + rate limit
5 L17–L20 Privacy / retención 2º hallazgo cerrado
6 L21–L24 Reporting + tabletop security-review.md

Regla: al menos 2 issues críticos/altos de aislamiento cerrados con tests.

Ejemplo — checklist SaaS

[ ] Auth en endpoints sensibles
[ ] Autorización por tenant_id + rol (anti IDOR cross-tenant)
[ ] Tests automatizados cross-tenant
[ ] Rate limit en login
[ ] Headers de seguridad en prod
[ ] Backups restaurables
[ ] Logs sin secretos/PII innecesaria
[ ] Webhooks Stripe verificados (firma)

Prácticas

P1–P3 del frontmatter. Al menos 2 issues críticos/altos de aislamiento cerrados con tests.

Proyecto útil

projects/m25-ciber/security-review.md + PRs. Alimenta M26.

Errores comunes

Ignorar multi-tenant; 50 hallazgos CSS y cero cross-tenant; no verificar webhooks.

Evidencia de hecho

Marca la práctica en la UI (interfaz de usuario) solo si existe esto (o equivalente claro):

  • P1 — Inventario: Activos + clasificación por tenant.
  • P2 — Review: ≥2 issues aislamiento cerrados con tests.
  • P3 — Tabletop: 30 min documentados (.env/fuga).
  • Proyecto — Security review: projects/m25-ciber/security-review.md.

Criterios de dominio

  • Demo: A no lee datos de B (manual + test).
  • Tabletop 30 min sin tutorial.
  • TLS (seguridad de la capa de transporte) + secrets fuera de repo + restore probado.