>

Microsoft ciclos de vida de desarrollo seguro

Antonio Froufe Gutierrez     Colaboraciones    16/02/2018


Si existe una empresa con experiencia investigando y propiciando el desarrollo seguro, sea sobrevenido por la necesidad o por querer realizar un software de calidad, esa es Microsoft, que a creado su propia metodología, de la que trataré en este artículo y en varios posteriores.

La tecnología y las directrices que utiliza Microsoft tan solo están disponibles internamente, por lo que no se van a poder describir. Tan solo se van a tratar conceptos básicos y actividades de seguridad de Microsoft SDLC, para obtener herramientas y más recursos se puede visitar la página www.microsoft.com/sdl.

Actividades previas.

Lo primero que se debe de tener en consideración en los equipos de desarrollo, sería que todos los integrantes del mismo estuviera al corriente de las últimas tendencias de seguridad y privacidad, cada componente del mismo debería asistir a una sesión de seguridad al menos una vez al año. Esta capacitación de seguridad asegura que a la hora de crear software se realice teniendo en cuenta la seguridad.

Todos los miembros de un equipo de proyecto deberían de estar al tanto de una serie de conceptos básicos en seguridad.

  • Diseño seguro:
    • Reducción de posible superficie de ataque, cuanto más expuesto este nuestro código más vulnerable será.

    • Defensa en profundidad, cuanto más barreras de protección se interpongan mas dificil sera recibir un ataque.

    • Principio del mínimo privilegio, si nuestra aplicaciones utilizan los mínimos privilegios posibles más difícil lo tendrá un atacante realizar actividades maliciosas en nuestro código.

  • Código seguro:
    • Anteponer las pruebas de seguridad a las funcionales.

    • Evaluación del riesgo.

    • Tener una metodología de pruebas fiable y automatizadas.

  • Privacidad:
    • Privacidad en los datos introducidos, esto es que no se puedan leer por segundas aplicaciones con facilidad si no están autorizadas.

    • Realizar buenas prácticas de privacidad en el diseño.

      Microsoft recomienda que en los equipos de proyecto, la capacitación de seguridad la tuvieran en cuenta al inicio del proceso de desarrollo, para que tenga un efecto lo más seguro posible desde el diseño del mismo.

Fases de Microsoft S-SDLC.

  1. Formación. En materia de seguridad informática.

  1. Requisitos. Establecer requisitos de seguridad y establecer el margen de riesgo asumible en materia de privacidad y seguridad.

  1. Diseño. Establecer los requerimientos en diseño y analizar la superficie de ataque.

  1. Implementación. Utilizar las herramientas apropiadas, descartar funciones i inseguras y análisis estático de la aplicación.

  1. Verificación. Análisis dinámico, probar en busca de fallos y revisión de la superficie de ataque.

  1. Lanzamiento. Establecer un plan en caso de incidencia y última revisión de seguridad.

  1. Respuesta. En caso de producirse un incidente de seguridad poner en marcha el plan de respuesta.

http://www.microsoft.com/security/sdt/discover/default.aspx

Formación básica de seguridad.

Es fundamental para construir un software de mayor calidad incluir en el diseño la seguridad del mismo. De hecho, el problema de seguridad del software se ha vuelto tan generalizado que ha engendrado industrias enteras. Con lo cual Microsoft recomienda dar formación y entrenamiento periódico a los equipos de desarrollo de software.

Todos los involucrados en el desarrollo de software deben contribuir a crear software seguro. Esto no es posible sin una capacitación suficiente, y no hay suficiente formación sin un compromiso corporativo continuo. Un verdadero compromiso para que exista tiempo disponible de los integrantes de equipos de desarrollo para formacion, proporcionar cursos útiles y facilitar el progreso real. Microsoft recuerda además , “que las iniciativas no financiadas simplemente no se hacen".

Los viejos hábitos son difíciles de romper, por lo que es mucho mejor enseñar los procedimientos correctos desde el principio. Capacitar a los desarrolladores tan pronto como son contratados proporciona muchas ventajas. Ofrece una forma de adoctrinar inmediatamente a los desarrolladores recién incorporados, en las políticas de seguridad del software de la organización y la orientación prescriptiva. También brinda a los nuevos integrantes del equipo la oportunidad de mostrar sus puntos fuertes y brindar parte de su experiencia e ideas a la organización.

Esta capacitación debe actualizarse para mantenerse al día con los cambios en los objetivos comerciales, las amenazas, las tecnologías, los ataques, los requisitos y los problemas relacionados. Esto requiere un esfuerzo concertado dirigido a la seguridad del software. También requiere un compromiso con el crecimiento de los empleados a largo plazo en estas áreas de habilidades particulares.

Otra parte fundamental a tener en cuenta en la formación en materia de seguridad, es si externaliza o se realiza internamente en la empresa.

La contratación de formadores externos que vienen con su propio material de capacitación puede solucionar rápidamente una serie de problemas. Puede inyectar ideas novedosas en empresa, ya que estos instructores externos probablemente tengan diferentes experiencias en la materia, con respecto de las propias internas en la organización.

Por otro lado formadores internos pueden realizar la tarea de inmediato incluso sin materiales especiales, pero como norma general la formación puede no ser suficiente y carente de actualizaciones concretas.

Por lo general, las empresas evolucionan de sesiones internas, a pequeñas sesiones subcontratadas y de una capacitación interna más amplia a la externalización basada en roles. Por supuesto, hay muchos factores involucrados en esta evolución, incluido el tamaño de la empresa y la inmediatez de la necesidad.

Los números de vulnerabilidades y brechas en seguridad de los datos hablan por sí mismos, la seguridad del software no va a suceder sin un esfuerzo concertado. Las prácticas de desarrollo de software con conciencia de seguridad se presentan como una gran transición para muchas organizaciones, y la capacitación a menudo es un impulso clave necesario para mover los procesos y las prácticas en la dirección correcta.

Conclusión.

En mi opinión la capacitación en materia de seguridad proporciona una gran vía para el crecimiento de los profesionales en desarrollo de software, ya sea por que contribuya directamente a la progresión de la carrera, o a los resultados en certificaciones que muestran los beneficios de la inversión en tiempo y esfuerzo. Dado todo esto, las organizaciones deben considerar seriamente la capacitación basada en roles como una sabia inversión en el futuro éxito de la seguridad del software.

Este es el primero de una serie de artículos en los que se va a tratar el sistema que utiliza Microsoft en el desarrollo de software seguro, espero que estos temas vayan llamando vuestro interés y os sean de gran utilidad un saludo.


Sobre el autor

Antonio Froufe Gutierrez   

Experto en seguridad informatica, hacking etico.