Mostrando entradas con la etiqueta metricas. Mostrar todas las entradas
Mostrando entradas con la etiqueta metricas. Mostrar todas las entradas

miércoles, 21 de enero de 2015

ISO 25000 y el software seguro



Todo el mundo que trabaja en temas de normativas y seguridad conoce, o al menos les suena, la ISO 27000. Pero esa ISO no es la única que existe en materia de seguridad.
La ISO 25000 es la normativa para medir y asegurar la calidad en productos de software, hasta hace poco podía pasar desapercibida para seguridad, dado que su modelo se basaba en seis métricas, como podemos ver en la imagen:

En ese modelo la seguridad era solo uno de los parámetros dentro de la funcionalidad propia del aplicativo.
Todo esto cambió el año pasado con la actualización de ISO 25000:2014 donde se agregaron dos métricas al modelo anterior: Compatibilidad y Seguridad. Ahora el diagrama cambia quedando de este modo:


En esta actualización la seguridad dentro de la aplicación pasa  a ser una métrica con valor propio y que ha de cumplir varias subcaracterísticas (Resumen de iso25000.org):
“Capacidad de protección de la información y los datos de manera que personas o sistemas no autorizados no puedan leerlos o modificarlos. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
  • Confidencialidad. Capacidad de protección contra el acceso de datos e información no autorizados, ya sea accidental o deliberadamente.
  • Integridad. Capacidad del sistema o componente para prevenir accesos o modificaciones no autorizados a datos o programas de ordenador.
  • No repudio. Capacidad de demostrar las acciones o eventos que han tenido lugar, de manera que dichas acciones o eventos no puedan ser repudiados posteriormente.
  • Responsabilidad. Capacidad de rastrear de forma inequívoca las acciones de una entidad.
  • Autenticidad. Capacidad de demostrar la identidad de un sujeto o un recurso.”
Se otorga un peso muy importante a la seguridad dentro de la calidad de software, cumplir con estas características no es trivial y las metodologías habituales de desarrollo de las empresas no lo cubren. Hace ya varios años que empezaron a surgir estudios para metodologías de inclusión de la seguridad en el desarrollo de software, esta actualización tan reciente en la ISO hará que muchas empresas comiencen a moverse buscando expertos para incluir este punto en sus desarrollos dado que muchos grandes proyectos piden que estén certificados.
No todos los proyectos necesitan el mismo grado de seguridad, no es lo mismo realizar un servicio web de gestión de historias clínicas para la seguridad social online, el cual necesitará un alto grado de seguridad para que la información de los ciudadanos este lo más segura posible. Que hacer una aplicación móvil sobre un Tetris en el cual no se guardan más datos que el Nick del jugador con más puntos del mundo.
Hay que analizar cada caso, no voy a entrar en eso ahora lo que sí quiero es dejar una reflexión y abrir los ojos a esta realidad para ver porque los S-SLDC son importantes.
Conseguir que una aplicación sea considerada como segura (ya hemos dicho en otros posts que nunca será segura) ha de cumplir con esas características
¿Pensáis que con hacerle unos tests de hacking ético ya se puede garantizar?  
¿Y con unos tests de caja blanca sobre código automatizados se puede?
¿Creéis que sin un correcto seguimiento de las correcciones, después de esos test, se puede garantizar?
No, no se puede. Hay que incluir la seguridad como un valor más del desarrollo desde la misma toma de requisitos para poder ir viendo todos los problemas, correcciones, medidas y planes de contingencia.
En próximos posts vamos a ver algunas de las opciones que existen ya, como son la solución S-SDLC de Microsoft u OpenSamm por hoy vale con dejar la reflexión ¿mis aplicaciones son suficientemente seguras?

jueves, 15 de enero de 2015

Libros sobre ciclos de desarrollo seguro. Parte 1



Por motivos laborales he estado estos últimos meses sumida en investigación/aprendizaje de los ciclos de desarrollo de software seguro.
 Es un tema extremadamente interesante pero que abarca tantas ramas, que son necesarias muchas horas de estudio para ir entendiendo todos los pasos y lo que implica este cambio en las filosofías empresariales de desarrollo de software. No es solo introducir nuevos hitos en el ciclo de desarrollo sino, a mi modo de ver, es cambiar la filosofía completa de la empresa.
En algunos países nos llevan una gran ventaja en este tema, las grandes empresas ya tienen implementados estos ciclos en un estado avanzado de madurez. Mientras que por aquí el mercado empieza a buscar expertos en desarrollo seguro cosa que está muy compleja de encontrar.
Estos días os traeré una serie de libros que recomiendo leer para ir entendiendo las bases de un desarrollo de software seguro.
 Para ir abriendo boca hoy os traigo “Software Security. Building Security In” tras pasarme unas cuantas horas entre sus páginas lo he considerado como uno de los libros precursores (o el abuelo) de las metodologías que están surgiendo hoy. Todo un ejercicio y compendio de teorías, ideas y buenas prácticas para poder ir adoptando un modelo de desarrollo en las empresas.
 




Aquí el autor ya establece tres pilares fundamentales de la seguridad en el software:

  •  Administración de riesgos (Risk Management).
  • Hitos dela seguridad en el software (Software Security Touchpoints).
  • Conocimiento (Knowledge).

Administración de riesgos, se compone de las siguientes actividades fundamentales:
  • Entender el contexto de negocio.
  • Entender los riesgos de negocio y técnicos.
  • Sintetizar y priorizar los riesgos, crear un ranking.
  • Definir la estrategia de mitigación.
  • Realizar las correcciones necesarias y validar que son correctas.
Por otro lado establece diferentes hitos durante el ciclo de desarrollo:
  • Revisión de código.
  • Análisis de riesgos arquitecturales.
  • Test de penetración.
  • Test de seguridades basados en riesgos.
  • Casos de abuso.
  • Requerimientos de seguridad.
  • Operaciones de seguridad.
Y por último el conocimiento lo divide en diferentes entregables:
  • Herramientas.
  • Procesos
  • Criterios de decisión
  • Patrones
  • Ejemplos
  • Mejores prácticas
  • Guías
  • Métricas
  • Reglas
Todo esto se puede ver de forma gráfica en el diagrama que, a más de uno os sonará y sino, seguro que sale en varios post en adelante:


En resumen, este libro sienta las bases y te acomoda a entender los diferentes hitos que necesita un desarrollo seguro. Se adentra en cada uno de los pasos explicando con detalle lo que se ha de sacar de cada uno de ellos.
Los contras que puedo decir, he echado en falta ejemplos más visuales pero la documentación de métricas más modernas si disponen de ellos, por lo que a nivel teórico es un libro estupendo.

La gran frase de este libro:
Software security is not security software.