Introducción
Como resultado de innumerables análisis de vulnerabilidades y pruebas de penetración a diferentes infraestructuras tecnológicas que hemos realizado por más de 15 años a empresas de todos tamaños, de sectores regulados y no regulados, hemos identificado que gran parte de las vulnerabilidades encontradas tienen su origen en el diseño y desarrollo del software, ya está en producción. Lo mismo hemos identificado en la ejecución de análisis de código fuente en aplicaciones como parte de pruebas estáticas realizadas previamente a su salida a producción.
La conclusión de todo esto, es que en realidad los equipos de desarrollo se concentran más en la funcionalidad de las aplicaciones que en la seguridad de la funcionalidad. Esto sucede, lo mismo en empresas que realizan desarrollos propios que en aquellas cuya actividad principal es el desarrollo de software para su venta como un servicio de TI; en este último caso es más relevante porque como proveedor está siendo corresponsable en la seguridad de la información de sus clientes.
DevOps
Desde hace años se ha venido manejado el concepto DevOps, que consiste básicamente en una colaboración en el desarrollo del software que combina los esfuerzos de los desarrolladores de aplicaciones (Dev) y de los responsables de mantenerlos en producción (Ops). Lo anterior trae beneficios como menor tiempo de entrega, mejor calidad y estabilidad, así como mayor eficiencia y capacidad.
Los desarrolladores (Dev) buscan el rendimiento de las aplicaciones, el análisis de usuario final, el código de calidad; esto incluye la disminución de errores a nivel de código. Por su parte, los operadores (Ops) quieren disponibilidad y rendimiento de la aplicación, atender quejas del usuario y medir el rendimiento. En esta relación DevOps, la seguridad de las aplicaciones queda relegada y en mejor de los casos es considerada superficialmente al final del proceso.
DevSecOps
Recientemente, ha surgido un nuevo enfoque llamado DevSecOps, que integra la seguridad en el desarrollo del software desde el principio y a lo largo del proceso DevOps, con lo cual, desarrolladores (Dev) y operadores (Ops) son corresponsables de la seguridad de las aplicaciones sin vulnerabilidades en el código. Esto implica cambios en la cultura organizacional, capacitación y el uso de herramientas para su automatización para que no se convierta en cuello de botella.
Los principales beneficios del DevSecOps, son: desarrollo seguro del software desde el diseño, permite conocer los riesgos asociados, identificación de vulnerabilidades en el código, aplicación de la seguridad, respuesta rápida a los cambios, genera mayor conciencia sobre la seguridad, además de generar valor al negocio, y lo principal, la seguridad se convierte en parte del proceso del desarrollo de aplicaciones.
NIST SP 800-218
En febrero de 2022, NIST emitió la publicación NIST SP 800-218 Marco de Desarrollo de Software Seguro, la cual contiene una serie de mejores prácticas para identificar y reducir el número de vulnerabilidades en el software publicado, reducir el impacto por su posible explotación y abordar las causas que las originaron.
Las prácticas están organizadas en los siguientes 4 grupos:
- Preparar a la organización.
- Proteger el software.
- Producir software bien protegido.
- Responder a las vulnerabilidades.
Estas prácticas aplican para desarrolladores internos de cualquier tamaño o sector, aunque no tengan conocimientos en ciberseguridad, sin importar el tipo de desarrollo o aplicación, tecnologías, plataformas, lenguaje de programación o entorno operativo. También hace énfasis en las medidas de seguridad que los proveedores externos de software y/o aplicaciones a considerar.
El uso de este marco ayuda a las organizaciones a:
- Asegurarse que su personal, procesos y tecnologías estén preparados.
- Proteger los componentes de su software de la manipulación y accesos no autorizados.
- Producir software protegido con vulnerabilidades mínimas.
- Identificar vulnerabilidades residuales en el software y gestionarlas.
- Adoptar un enfoque basado en riesgos para identificar y mitigar amenazas.
Recomendamos el uso de esta una publicación de alto nivel, ya que además señala otras referencias relacionadas con la ciberseguridad que se pueden consultar como complemento y/o reforzamiento para la implementación de las prácticas recomendadas en esta publicación para el desarrollo de software seguro.
Para mayor detalle ver: https://csrc.nist.gov/publications/detail/sp/800-218/final
Por Nicandro López Pompa – Desarrollo Comercial