Los 5 pilares de seguridad en software
Clase 8 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
Viendo ahora - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
La seguridad del software protege a usuarios y datos con criterios claros: confidencialidad, integridad, autenticidad, comprobación de hechos y traza de responsabilidad. Aquí se explica cómo cada pilar se aplica en productos reales, qué decisiones técnicas implica y cómo validar que de verdad funciona.
¿Qué es la seguridad en el desarrollo de software y por qué importa?
La seguridad define cuánto un sistema protege la información, identifica a sus usuarios y controla a qué puede acceder cada uno. En la práctica, esto se traduce en autorizar correctamente, preservar datos sin alteraciones, poder probar lo que ocurrió y saber quién hizo cada acción.
- Confidencialidad: asignar a cada usuario solo lo que puede ver o usar.
- Integridad: impedir que atacantes o usuarios no autorizados modifiquen datos.
- Comprobación de hechos: garantizar que los eventos sucedieron como el sistema declara.
- Traza de responsabilidad: vincular cada acción con su responsable.
- Autenticidad: verificar que quien usa el sistema es quien dice ser.
¿Cómo se aplican confidencialidad e integridad en sistemas reales?
La confidencialidad y la integridad son la base del control de acceso y la protección del dato sensible. Se aplican desde el diseño de permisos hasta el cuidado de la información en dominios críticos.
¿Cómo funciona la confidencialidad y autorización?
La confidencialidad conecta a cada usuario con lo que puede o no puede acceder. En redes sociales, se prioriza que puedas crear contenido y que solo lo vean quienes elijas.
- Definir reglas de acceso por usuario, rol o grupo.
- Limitar vistas y acciones según permisos.
- Asegurar que el contenido privado no sea expuesto.
¿Por qué la integridad de datos es crítica?
La integridad protege datos contra cambios indebidos. En sistemas médicos y bancarios, cualquier acceso o modificación no autorizada es inaceptable y puede implicar problemas legales.
- Restringir lectura y escritura de información sensible.
- Prevenir alteraciones por atacantes o usuarios sin permiso.
- Priorizar controles estrictos en dominios regulados.
¿Qué rol cumplen la comprobación de hechos, la traza de responsabilidad y la autenticidad?
Estas capacidades permiten probar lo que pasó, atribuir responsabilidades y verificar identidades de forma confiable, clave para entornos legales y de alto riesgo.
¿Qué es la comprobación de hechos en seguridad?
La comprobación de hechos conecta el estado actual del sistema con las acciones que lo produjeron. Se soporta con firmas digitales y con un log de auditoría que documenta eventos de manera verificable.
- Registrar eventos con detalle suficiente.
- Usar firmas digitales para garantizar no repudio.
- Mantener evidencia de qué ocurrió y cuándo ocurrió.
¿Cómo se implementa la traza de responsabilidad?
La traza de responsabilidad vincula cada acción con su autor, ya sea un usuario o un proceso del sistema. Los logs de auditoría sirven para saber qué pasó y quién lo hizo.
- Incluir identificadores de usuario o servicio en cada evento.
- Conservar logs íntegros y accesibles para auditoría.
- Asegurar correlación entre acciones y entidades responsables.
¿Cómo se asegura la autenticidad del usuario?
La autenticidad verifica la identidad del usuario con pasos crecientes de seguridad: desde email y contraseña hasta factores adicionales.
- Credenciales básicas: correo y contraseña.
- Segundo factor: two factor authentication [autenticación por dos factores].
- Datos biométricos: huella, rostro u otros.
- Integraciones con identidades nacionales o servicios oficiales: validar que la persona es quien declara ser.
¿Cómo se miden las métricas de seguridad y qué es el penetration testing?
Medir seguridad es difícil: las métricas deben ser consistentes, ejecutables y alineadas con lo que se promete proteger. Para comprobarlo, se utiliza la técnica clave: penetration testing.
- Simular ataques de forma controlada y ética.
- Validar que la autorización, integridad, autenticidad y auditoría funcionan.
- Detectar brechas antes que atacantes reales.
- Ajustar controles según resultados de pruebas.
Te leo en comentarios: ¿qué controles aplicarías primero en tu sistema y por qué?.