Los 5 pilares de seguridad en software

Clase 8 de 43Curso Profesional de Arquitectura de Software

Resumen

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é?.

      Los 5 pilares de seguridad en software