¿Qué puede aprender la diáspora sobre la seguridad de Microsoft?

Esto puede estar simplificando demasiado el proceso, pero la respuesta corta es “hornear la seguridad en todas las etapas del desarrollo”.

Microsoft, como cualquier otra tienda de desarrollo de software, (anteriormente) priorizó las funciones y consideró que la seguridad es solo otro error. Cuando se llegó a un punto crítico y un simple “error” podría afectar a millones de máquinas en todo el mundo en cuestión de horas, se hizo importante que la seguridad se integrara desde las etapas de diseño hasta el lanzamiento y el mantenimiento. Esto toma muchas formas: revisiones de seguridad de los documentos de diseño, pruebas de penetración periódicas a través del proceso de desarrollo, una evaluación de penetración final y un proceso para reconocer y responder rápidamente a los errores de seguridad entrantes después de que se haya lanzado el software. Sin embargo, todo esto requiere mucho dinero (MS detuvo el desarrollo durante 3 meses completos para someterse a una revisión de seguridad), así como los campeones y procesos internos adecuados para asegurarse de que esto suceda.

La diáspora, aunque se lanzó en la etapa alfa (?), Sufrió el enfoque de características / funcionalidad primero, seguridad después. Para un sistema de privacidad, esta es una mala elección. La diáspora debería haber planeado un sistema de autorización / acceso; no lo hizo, se basó en el valor predeterminado de Rails (Sugerencia: Rails no proporciona autorización por defecto). Este es solo un ejemplo, aunque hay muchos otros documentados en la prensa.

Dicho esto, el desarrollo de software ocurre en fases. La primera iteración de un producto suele ser una prueba de concepto. Si la diáspora continúa, necesita una revisión de seguridad completa, si no una reescritura desde cero para que se construya con la seguridad / privacidad / autorización inherente al sistema.

Aquí está la lista que tengo hasta ahora, de http://www.talesfromthe.net/jon/

  • llegar a la comunidad de seguridad
  • agregar al menos un experto en seguridad al equipo
  • revisa el código
  • hacer modelado de amenazas
  • capacitar a los desarrolladores
  • usa las herramientas
  • hornear seguridad en todas las etapas de desarrollo
  • crear una junta asesora de seguridad y privacidad
  • pensar en la seguridad por adelantado