Herramienta de modelado de software para evitar vulnerabilidades en el desarrollo.

Share this…

El uso cada vez mayor de los sistemas de información requiere que se haga más software que nunca, como consecuencia se están introduciendo un gran número de vulnerabilidades de seguridad en los sistemas. Las computadoras se utilizan en gran medida para manejar información sensible y procesos críticos, haciéndolas cada vez más dependientes de software y servicios complejos. Con una mayor complejidad de software, la tendencia es a una mayor exposición a vulnerabilidades que pueden ser explotadas durante ataques. De acuerdo con la National Vulnerability Database, la cantidad de vulnerabilidades descubiertas es 30 veces mayor hoy en comparación con hace diez años y el número está aumentando continuamente.

La forma tradicional de proteger el software es confiando en soluciones de seguridad de red, pero confiar en firewalls y aplicaciones antivirus no es una buena medida a largo plazo. Durante el desarrollo de software, la seguridad suele ser algo añadido al final como una idea posterior y casi como un plus. La mayoría de los investigadores en el campo de la seguridad de software afirman que la seguridad es una propiedad emergente de un sistema completo, y se debe tejer durante todo el ciclo de desarrollo del software. También es un hecho bien conocido que el costo estimado de la corrección de errores tardíos es considerablemente mayor que en fases de desarrollo.

Hay pocos desarrolladores de software que siguen buenas prácticas de codificación segura, aunque la mayoría de las vulnerabilidades son causadas por errores conocidos para los cuales ya hay solución. Esto se debe a que los desarrolladores de software, que son expertos en su campo, no son necesariamente expertos en seguridad y viceversa. Además, también hay una falta general de expertos en seguridad en el campo de ingeniería de software. Por estas razones, los  jefes de proyectos de desarrollo de software no tienen necesariamente conocimientos de seguridad disponibles para complementar la falta de conocimiento del desarrollador.  El modelado de seguridad es algo que puede ayudar a reducir esta brecha de conocimiento, ya que los modelos son artefactos informativos y reutilizables que pueden usarse para identificar, describir y planificar cómo se pueden evitar las vulnerabilidades.

El modelado de seguridad es especialmente beneficioso durante las primeras fases del desarrollo de software, y puede ayudar a determinar el nivel correcto de seguridad. Hoy en día, la seguridad de modelado a menudo se hace con herramientas de dibujo de propósito general. Esto conduce a diferentes notaciones, sin acoplamiento entre modelos y con poco soporte para evitar posibles malas interpretaciones de la producción. Existe una herramienta gratuita llamada SeaMonster centrada en ayudar a los desarrolladores y expertos en seguridad a modelar con facilidad la seguridad antes y durante cualquier fase del desarrollo de software y para facilitar el intercambio y la reutilización de modelos de seguridad entre proyectos, personas y organizaciones.

SeaMonster es una aplicación de modelado gráfico que permite describir y presentar diferentes aspectos relacionados con vulnerabilidades de seguridad. Estos aspectos se llaman puntos de vista. Los puntos de vista se utilizan para crear una vista, que es lo que se ve cuando se mira desde el punto de vista elegido. Un punto de vista puede tener varias vistas, representadas por diferentes modelos. En SeaMonster hay tres puntos de vista diferentes que se complementan:

  • Qué causa la vulnerabilidad.
  • Cómo el sistema está amenazado y puede ser atacado debido a la vulnerabilidad.
  • Cómo se puede mitigar la vulnerabilidad o los efectos de la vulnerabilidad a través de contramedidas.

SeaMonster utiliza una selección de aspectos de seguridad que los expertos ya conocen, pero agrega la funcionalidad de vincularlos a través de los diferentes puntos de vista basados en un modelo de información común. SeaMonster es altamente modularizado, y las notaciones adicionales y técnicas de modelado de seguridad se pueden agregar basándose en una arquitectura de complemento.

Fuente:https://www.gurudelainformatica.es/