Skip to content
IRC-CodingIRC-Coding
Calidad de SoftwareSeguridadSecurityCIAOWASP

Seguridad en Calidad de Software

Integra seguridad en calidad de software. Confidencialidad, integridad, disponibilidad y prácticas seguras de desarrollo.

S

schutzgeist

5 min read
Seguridad en Calidad de Software

Calidad de software y seguridad

La seguridad es una característica fundamental de calidad según ISO 25010. Abarca confidencialidad, integridad, disponibilidad y otros aspectos como autenticidad.

En resumen

  • La seguridad es una característica de calidad.
  • Tríada CIA: confidencialidad, integridad, disponibilidad.
  • La seguridad debe considerarse desde el diseño.
  • Las pruebas de seguridad son parte necesaria, pero insuficientes.

Tríada CIA

La tríada CIA es el modelo fundamental de la seguridad de la información. Describe los tres objetivos de protección que todo software seguro debe cumplir.

Confidencialidad

La confidencialidad asegura que solo las personas autorizadas puedan acceder a información sensible. El cifrado, los controles de acceso y la autenticación son medidas clave.

Integridad

La integridad significa que los datos no pueden modificarse sin ser detectados. Los algoritmos hash, las firmas digitales y el control de versiones ayudan a garantizarla.

Disponibilidad

La disponibilidad garantiza que los sistemas y datos sean accesibles cuando sea necesario. Los ataques DDoS o los fallos pueden compreterla. La redundancia y el monitoreo son medidas importantes.

Aspectos adicionales de seguridad

  • Autenticidad: Verificación segura de la identidad de usuarios y sistemas.
  • Responsabilidad: Trazabilidad de las acciones.
  • No repudio: Prueba de que una acción ha ocurrido.
  • Protección de datos: Salvaguardia de datos personales.

Prácticas seguras

Seguridad por diseño

La seguridad se integra desde el inicio en la arquitectura y el diseño. Agregar seguridad después es más costoso y menos efectivo.

Principio de privilegios mínimos

Cada usuario y proceso recibe solo los permisos estrictamente necesarios. Esto limita el daño en caso de ataque.

Validación de entrada

Todas las entradas deben verificarse en cuanto a tipo, longitud, formato y rango. La validación del lado servidor es obligatoria, ya que la del cliente puede omitirse.

Autenticación segura

Contraseñas fuertes, hash con salt, rate limiting, MFA y tokens de sesión seguros protegen el acceso.

Registro y monitoreo

Los eventos relevantes para la seguridad se registran y monitorizan. Esto permite detectar ataques tempranamente y mantener trazabilidad.

Actualizaciones regulares

Las vulnerabilidades en frameworks, bibliotecas y sistemas operativos se cierran mediante actualizaciones y parches.

Ejemplo práctico

Un inicio de sesión seguro es un caso clásico de implementación práctica de la seguridad como característica de calidad. Este ejemplo es adecuado porque el inicio de sesión es un objetivo frecuente de ataques y demuestra simultáneamente muchos objetivos de la tríada CIA. La siguiente lista muestra cómo las prácticas de seguridad funcionan juntas en la realidad.

Inicio de sesión seguro:
- Almacenar contraseñas hasheadas
- Rate limiting contra fuerza bruta
- Forzar HTTPS
- Autenticación multifactor
- Gestión segura de sesiones

¿Por qué estas medidas?

  • Almacenar contraseñas hasheadas: Protege la confidencialidad de las credenciales, incluso si la base de datos se ve comprometida.
  • Rate limiting: Evita ataques automatizados y aumenta la disponibilidad del sistema.
  • Forzar HTTPS: Protege los datos en tránsito y garantiza integridad.
  • Autenticación multifactor: Aumenta la autenticidad, incluso si se conoce la contraseña.
  • Gestión segura de sesiones: Evita el secuestro de sesiones y garantiza responsabilidad.

Estas medidas muestran que la seguridad no es una herramienta aislada, sino una combinación de diseño, implementación y operación.

Ventajas y desventajas

VentajasDesventajas
Protección de datos y usuariosEsfuerzo de desarrollo adicional
Confianza y reputaciónMayor complejidad de la arquitectura
Cumplimiento de requisitos de conformidadBalance con la experiencia del usuario
Detección temprana de ataquesMantenimiento y actualizaciones continuas
Ventaja competitiva por credibilidadConocimiento especializado en seguridad requerido
Reducción de costos por prevención temprana de erroresFalsos positivos y carga de revisión en herramientas

Puntos clave para exámenes

  • ISO 25010: La seguridad es una característica propia con subcaracterísticas como confidencialidad, integridad, disponibilidad y autenticidad.
  • Tríada CIA: Confidencialidad, integridad y disponibilidad son los tres pilares fundamentales de la seguridad de la información.
  • Seguridad por diseño: La seguridad debe considerarse desde la fase de diseño.
  • Principio de privilegios mínimos: Otorgar solo los permisos absolutamente necesarios.
  • Validación de entrada: Verificar todas las entradas en el servidor para prevenir inyecciones y otros ataques.
  • Autenticación segura: Hash de contraseñas, MFA, rate limiting y sesiones seguras.
  • Registro y monitoreo: Registrar y monitorizar eventos relevantes para la seguridad.
  • Actualizaciones regulares: Mantener frameworks, bibliotecas y sistemas al día.
  • Protección de datos: Salvaguardia de datos personales conforme a DSGVO.
  • Modelado de amenazas: Análisis sistemático de amenazas en la fase de diseño.
  • Defensa en profundidad: Múltiples capas de seguridad en lugar de una única medida.
  • Seguridad vs. pruebas de seguridad: La seguridad es la característica de calidad, las pruebas de seguridad son el método de verificación.

Fuentes principales

  1. https://owasp.org/www-project-top-ten/
  2. https://iso25000.com
  3. https://en.wikipedia.org/wiki/Information_security

Preguntas frecuentes

¿Qué es la tríada CIA?

La tríada CIA describe los tres objetivos de protección: confidencialidad, integridad y disponibilidad. Es el modelo fundamental de la seguridad de la información.

¿Es la seguridad una característica de calidad según ISO 25010?

Sí, según ISO 25010 la seguridad es una característica propia con subcaracterísticas como confidencialidad, integridad, disponibilidad y autenticidad.

¿Qué significa confidencialidad?

La confidencialidad significa que solo las personas autorizadas pueden acceder a datos sensibles. El cifrado, los controles de acceso y la autenticación son medidas clave.

¿Qué significa integridad?

La integridad significa que los datos no pueden modificarse sin ser detectados durante el almacenamiento, transmisión y procesamiento. Los algoritmos hash y las firmas digitales la garantizan.

¿Qué significa disponibilidad?

La disponibilidad significa que los sistemas y datos son accesibles cuando se necesitan. La redundancia, el balanceo de carga y el monitoreo aumentan la disponibilidad.

¿Qué es seguridad por diseño?

La seguridad se considera desde la fase de diseño. De este modo es más económica y efectiva.

¿Qué es el principio de privilegios mínimos?

Cada usuario y proceso recibe solo los permisos estrictamente necesarios.

¿Qué es validación de entrada?

La validación de entrada verifica que los datos cumplan con tipo, longitud y formato para prevenir ataques.

¿Qué es autenticación segura?

Comprende contraseñas fuertes, hash, MFA, rate limiting y sesiones seguras.

¿Por qué es importante el registro?

El registro hace que las acciones sean trazables y permite detectar ataques.

¿Qué es un incidente de seguridad?

Un evento que compromete la confidencialidad, integridad o disponibilidad de datos o sistemas.

¿Qué es conformidad?

Cumplimiento de requisitos regulatorios y legales como DSGVO, ISO 27001 o PCI-DSS.

¿Cuál es la diferencia entre seguridad y pruebas de seguridad?

La seguridad es una característica de calidad, las pruebas de seguridad son el método de verificación.

¿Qué es protección de datos?

Salvaguardia de datos personales contra acceso no autorizado y abuso.

¿Qué es modelado de amenazas?

Análisis sistemático de posibles amenazas en la fase de diseño.

¿Qué es autenticidad?

Verificación segura de la identidad de usuarios y sistemas.

¿Qué es defensa en profundidad?

Múltiples capas de seguridad en lugar de una única medida.

¿Por qué se deben hashear las contraseñas?

El hash protege las contraseñas, incluso si la base de datos se ve comprometida.

¿Qué es una auditoría de seguridad?

Revisión sistemática de medidas y procesos de seguridad.

¿Por qué son importantes las actualizaciones regulares?

Las actualizaciones cierran vulnerabilidades conocidas en software y bibliotecas.

Continúa en la ruta de aprendizaje de Calidad de Software

El siguiente artículo en la ruta de aprendizaje de Calidad de Software aborda Calidad de software y Performance — cómo el rendimiento se convierte en una característica de calidad.

Volver al blog
Share:

Entradas relacionadas