El 11 de junio de 2019, el Instituto Nacional de Estándares y Tecnología (NIST) publicó un informe actualizado con información detallada. Varios planes de acción para reducir las vulnerabilidades del software y los riesgos cibernéticos. Bajo el título «Mitigación de los riesgos de vulnerabilidad del software mediante la adopción del Marco de Desarrollo de Software Seguro (SSDF)», el NIST ofrece a las organizaciones directrices claras para evitar las costosas consecuencias de las violaciones de datos, por no hablar de los resultados desagradables.
A modo de referencia, el SSDF no asume que todas las organizaciones tengan los mismos objetivos de seguridad de software, ni prescribe los mecanismos exactos para alcanzarlos. El objetivo principal es implementar las mejores prácticas de seguridad. La autora Donna Dodson afirma lo siguiente: «Cada creador de seguridad desea que se cumplan todas las prácticas aplicables, pero es de esperar que el grado de implementación de cada práctica varíe en función de las hipótesis de seguridad del creador. Estas prácticas ofrecen flexibilidad al implementador, pero también es evidente que no deben dejar demasiado margen para la interpretación».
Por supuesto, fue especialmente interesante que se incluyeran detalles concretos sobre la formación en seguridad de software para desarrolladores. Hace tiempo que sabemos que los desarrolladores necesitan una formación adecuada para proteger a la organización desde el principio del proceso de desarrollo de software... Pero, ¿adecuada, exactamente? Hay muchas opiniones diferentes en el mundo. Sin embargo, creo que finalmente se están ampliando los límites en una dirección que traerá resultados muy positivos.
Hay formación en seguridad... y hay formación en seguridad eficaz.
El autor ha hablado extensamente sobre la necesidad de implementar la formación en seguridad de software de forma más eficaz y adaptarla a las necesidades de los desarrolladores. En la actualidad, muchas organizaciones se limitan a ofrecer, en el mejor de los casos, ejercicios «estándar».Es posible que se dediquen unas horas a la formación en vídeo o que se utilicen herramientas para el aprendizaje en el aula, lo que supone una pérdida de tiempo valioso. El hecho de que cada dos días se produzcan violaciones de datos a gran escala por parte de atacantes que aprovechan vulnerabilidades conocidas (y, por lo general, fáciles de corregir) es una prueba de que la formación en seguridad de software no es tan eficaz como debería. Y lo que es quizás más importante, apenas hay datos que permitan verificar si la formación ha sido eficaz. ¿Se han solucionado las vulnerabilidades más rápidamente? ¿Se está reduciendo la vulnerabilidad en el código? ¿La gente ha completado realmente la formación? ¿O simplemente han hecho clic en «Siguiente» para completar la formación?
Los desarrolladores son personas muy ocupadas que trabajan duro para cumplir con plazos estrictos. La seguridad suele ser un tema incómodo y, en muchos casos, la formación no proporciona los conocimientos necesarios para mitigar con éxito los riesgos cibernéticos. Por lo general, cuando los miembros del equipo de AppSec señalan fallos en el trabajo, se piensa en la palabra «seguridad», lo que da lugar a una relación algo fría y poco funcional. Es el típico escenario de «el bebé es feo, ve y arréglalo».
¿Qué nos dice esto? El hecho de que los desarrolladores no presten suficiente atención a la seguridad es una señal de alarma que lleva décadas presente. Los desarrolladores no están motivados para asumir responsabilidades y no buscan las herramientas necesarias para crear software funcional que tenga en cuenta las mejores prácticas de seguridad.
Los desarrolladores son inteligentes, creativos y les gusta resolver problemas. Es poco probable que ver vídeos interminables sobre vulnerabilidades de seguridad despierte el interés de los desarrolladores o les mantenga motivados.Como instructor de SANS, pronto me di cuenta de que la mejor forma de enseñar es ofrecer a los alumnos ejercicios prácticos que les permitan poner a prueba su capacidad intelectual y analizar y examinar casos reales basados en lo que han aprendido previamente. La gamificación y la competencia amistosa son herramientas poderosas que permiten a todo el mundo aprender nuevos conceptos, al tiempo que mantienen su utilidad y practicidad en el ámbito de la aplicación.
Las directrices del NIST establecen lo siguiente: «Proporcione formación específica para cada función a todos los empleados que desempeñen un papel responsable en el desarrollo de la seguridad. Revise periódicamente la formación específica para cada función y actualícela según sea necesario». A continuación: «Defina las funciones y responsabilidades del personal de ciberseguridad, los responsables de seguridad, la alta dirección, los desarrolladores de software, los propietarios de productos y otras personas relacionadas con el SDLC».
Esta declaración no es específica en cuanto al tipo de formación, pero sigue siendo útil para transformar la organización y tener en cuenta las mejores prácticas de seguridad. De este modo, se devuelve a la empresa la responsabilidad de encontrar soluciones de formación eficaces y más específicas, con la esperanza de que los desarrolladores dispongan de las herramientas y los conocimientos adecuados para alcanzar el éxito.
Cultura: el eslabón perdido.
Aunque se invierta tiempo y recursos en formar a los desarrolladores y otros empleados clave, haciendo hincapié en la importancia de prevenir las vulnerabilidades y reducir los riesgos de seguridad en la organización, estos esfuerzos pueden resultar en vano si la cultura de seguridad de la organización está fundamentalmente deteriorada.
Formar eficazmente a las personas, establecer objetivos y aclarar las expectativas facilita enormemente que comprendan su lugar en el entorno de seguridad y asuman las responsabilidades adecuadas. En el caso concreto de los desarrolladores, se les proporcionan desde el principio las herramientas y los conocimientos necesarios para escribir código seguro. Sin embargo, este enfoque se coordina mejor en un entorno de seguridad positivo, con menos duplicación de tareas, transferencia de responsabilidades y trabajo en proyectos aislados.
Debemos dar prioridad a la seguridad de toda la organización mediante el apoyo y la cooperación para proporcionar un software excelente y seguro. En otras palabras, podemos implementar una formación divertida y participativa que aproveche las vulnerabilidades reales del código y obtener el consenso de toda la organización para garantizar un presupuesto suficiente que permita mantener esta tendencia. En un entorno digital en constante evolución, la formación debe ser tan continua como la implementación. Si alguna vez ha oído decir que la formación en materia de cumplimiento normativo «se configura una vez y se olvida» es adecuada o eficaz, se trata de una idea errónea. «configurada una vez y olvidada», es una idea errónea.
Este nuevo marco del NIST no especifica concretamente los requisitos para crear una cultura de seguridad positiva, pero es imprescindible para cumplir con éxito las directrices. Sin embargo, cabe destacar que las organizaciones deben «definir políticas que especifiquen los requisitos de seguridad que debe cumplir el software de la organización, incluidas las prácticas de codificación segura que deben seguir los desarrolladores».
El contenido anterior es muy importante para ampliar y perfeccionar las tecnologías de seguridad dentro del equipo, y puede resultar útil tener en cuenta los siguientes aspectos a la hora de evaluar las políticas propias y el entorno actual de AppSec.
- ¿Están claramente definidas las directrices y expectativas en materia de seguridad del software?
- ¿Saben claramente todos los miembros del equipo qué papel desempeñan en la consecución de los objetivos?
- ¿La educación es frecuente y se evalúa?
- ¿Saben los desarrolladores lo importante que es eliminar los errores de seguridad comunes antes de que se produzcan?
Como mencioné anteriormente, la parte final depende principalmente de la organización y la formación que esta elija. Debe ser relevante, frecuente y contar con un alto nivel de participación. Busque soluciones que se puedan aplicar al trabajo diario y acumule conocimientos adaptados a cada situación.
¿Y ahora qué hacemos?
Examinar en detalle estas nuevas directrices puede resultar bastante complicado. Se requiere un gran esfuerzo para crear, verificar y distribuir el software de seguridad exhaustivo que necesitan la mayoría de las empresas de la forma más segura posible. Y no se limita solo a la formación. Hay directrices que deben tenerse en cuenta al utilizar software de terceros (el uso de componentes con vulnerabilidades conocidas sigue estando presente, como se indica en el Top 10 de OWASP), propuestas sobre verificación, pruebas de penetración y revisión de código, directrices para el mantenimiento de registros de seguridad, cadenas de herramientas adecuadas y todo lo demás. Se puede encontrar una visión general viable en el libro del Dr. Gary McGraw, el modelo BSIMM, al quese hace referencia en todos los documentos del NIST.
Sin embargo, si se proporciona a los desarrolladores las herramientas y los conocimientos adecuados para crear software seguro desde el principio, se puede alcanzar el éxito más rápidamente. Prevenir las vulnerabilidades comunes que surgen en la última fase del SDLC es más barato desde el punto de vista empresarial (y, en general, más rápido). Aproveche sus puntos fuertes y ofrézcales incentivos para que participen en la seguridad de la organización.Puede resultar muy interesante y ellos pueden convertirse en los héroes oportunos necesarios para detener a las personas malintencionadas y proteger los datos.
Referencias:
- Mitigación del riesgo de vulnerabilidad del software mediante la introducción de SSDF (11 de junio de 2019) Página 2.
- Mitigación del riesgo de vulnerabilidad del software mediante la introducción de SSDF (11 de junio de 2019) Página 5.
- Mitigación del riesgo de vulnerabilidad del software mediante la introducción de SSDF (11 de junio de 2019) Página 4.