El desarrollo seguro debe ser el sistema inmunitario de AppSec

Publicado el 24 de agosto de 2021
por Secure Code Warrior
ESTUDIO DE CASO

El desarrollo seguro debe ser el sistema inmunitario de AppSec

Publicado el 24 de agosto de 2021
por Secure Code Warrior
Ver recurso
Ver recurso

Como profesional de la seguridad de las aplicaciones, su trabajo consiste en garantizar la ciberseguridad de las aplicaciones de su organización. Sin embargo, usted no es responsable de escribir el código sobre el que se ejecuta la aplicación. Lo son los ingenieros del equipo de desarrollo. Entonces, ¿cómo puede asegurarse de que están desarrollando esos sistemas teniendo en cuenta la seguridad? 

Lo más probable es que estés haciendo algo o incluso todo lo siguiente: 

  • Revisar todo el código en busca de fallos de seguridad e informar al equipo de desarrollo para que los corrija. 
  • Imponer un estricto proceso de revisión por pares a lo largo del ciclo de vida del desarrollo seguro. 
  • Tener una aplicación regular assessment/pruebas de penetración realizadas por equipos de seguridad internos o externos.
  • Implementar herramientas de escaneo para detectar vulnerabilidades.

Estas son buenas prácticas, pero también son caras y similares a tomar una ronda de antibióticos cada vez que se enferma. Esto no sólo tiene un coste elevado, sino que pierde eficacia y puede debilitar el sistema inmunitario con el tiempo. 

¿Cómo se garantiza que el código que envían los desarrolladores está escrito de forma segura? 

Dejando de lado la codificación segura, primero hay que pensar en cómo aprende la gente. La mayoría de nosotros aprendemos de forma visual y mediante la práctica. Sin embargo, la formación en código seguro se ofrece a menudo como una actividad para marcar la casilla y no es relevante para el trabajo diario del desarrollador. Está diseñada para demostrar que los desarrolladores han recibido formación en materia de seguridad, a menudo para cumplir con las normas del sector, y no para que los desarrolladores retengan realmente esos conocimientos, y mucho menos para que disfruten del proceso de aprendizaje. 

Otra forma en la que los humanos tendemos a aprender es a través de nuestros errores, del mismo modo que lo hace nuestro sistema inmunitario. Las células T recuerdan qué tipo de patógenos han encontrado y erradicado con éxito en el pasado, para poder protegerse de ellos en el futuro. Este es exactamente el papel que deben desempeñar los desarrolladores en su SDLC seguro .

Es poco realista esperar que no cometan errores, pero puedes prepararlos de manera que sean capaces de reconocer patrones de codificación que se traduzcan en vulnerabilidades de seguridad en el futuro. 

Así es también como un sólido proceso de revisión por pares se vuelve tan poderoso. El hecho de que un desarrollador no se dé cuenta de un fallo de seguridad no significa que otro no lo haga. Y cuanto mejor entrenado esté el equipo de desarrollo en su conjunto, más probabilidades habrá de que las vulnerabilidades se detecten en seco y nunca lleguen a la producción. 

Las vulnerabilidades del software son como los patógenos

Las vulnerabilidades del software son como los patógenos en el sentido de que hay que recordarlas para poder combatirlas. En el caso de los patógenos, nuestro sistema inmunitario suele tener que exponerse varias veces antes de recordar cómo combatirlos para evitar una enfermedad grave o algo peor. 

Un ciberataque exitoso a partir de un software vulnerable puede paralizar gravemente o acabar con una organización. Pero si los desarrolladores conocen primero las vulnerabilidades del software en un entorno controlado, pueden trabajar para crear inmunidad a las amenazas aumentando y practicando regularmente sus conocimientos y habilidades de codificación segura. 

Exponer a los desarrolladores a los fallos de seguridad en un entorno controlado

Nunca podremos protegernos totalmente de las enfermedades, pero hay cosas que podemos hacer para reforzar nuestro sistema inmunitario y mantenernos lo más sanos posible. Cosas como hacer ejercicio con regularidad, comer de forma saludable y dormir mucho son algunas de las opciones de estilo de vida que suelen asociarse a un sistema inmunitario fuerte. Pero todas esas cosas requieren un poco de esfuerzo y deben ser continuas. Salir a correr todos los días durante una semana o dejar de beber durante un mes apenas harán mella en tu salud general. Tampoco es aconsejable salir a correr una carrera de 10 kilómetros el primer día que empezamos a correr. Primero tenemos que exponer nuestro corazón y nuestros músculos al ejercicio. También sabemos que hay que experimentar un poco hasta encontrar un buen equilibrio para nuestro cuerpo y los alimentos y ejercicios saludables que nos gustan.

No es tan diferente cuando se trata del desarrollo de software seguro. El aprendizaje se produce con el tiempo y la práctica, y los desarrolladores necesitan la misma formación continua para mejorar regularmente sus habilidades de codificación segura. Por no hablar de que el desarrollo de software está siempre evolucionando y adaptándose, lo que significa que las vulnerabilidades también lo están. Por eso no basta con un simple curso de formación. Los desarrolladores necesitan actualizarse periódicamente para estar lo suficientemente familiarizados con las posibles amenazas y estar debidamente equipados para defenderse de ellas. 

Intentar conseguir una inmunidad de rebaño dentro del equipo de desarrollo

Una sola persona no puede prevenir todos los problemas de seguridad. Es genial tener campeones de seguridad en el equipo, pero para obtener la mejor protección, cuantas más personas hayan aprendido sobre las vulnerabilidades de seguridad y cómo prevenirlas, más posibilidades tendrá su organización de prevenirlas. De nuevo, no es muy diferente de cómo el sistema inmunológico tiene diferentes tipos de células T para diferentes propósitos. Cada desarrollador forma parte de un equipo que garantiza la seguridad. Si se les capacita para que asuman la responsabilidad, lo hagan bien e incluso disfruten haciéndolo, entonces puedes crear una inmunidad de rebaño contra las ciberamenazas dentro del equipo de desarrollo como resultado.

Crear inmunidad de rebaño contra las ciberamenazas dentro del equipo de desarrollo

Mantener la seguridad en la mente con la exposición repetida

Nuestro cerebro aprende de forma similar a como funciona nuestro sistema inmunitario. El psicólogo alemán Hermann Ebbinghaus fue un pionero en el campo de la memoria y el aprendizaje. Dedujo que el aprendizaje tiene que producirse a lo largo del tiempo y con múltiples sesiones de aprendizaje. Cuando estamos en la escuela, nunca se espera que mantengamos los nuevos conocimientos después de la primera introducción. Primero se nos presenta la información, luego la practicamos con orientación y después la practicamos por nuestra cuenta. E incluso después de haberla aprendido lo suficientemente bien como para aprobar un examen, la información tiende a olvidarse poco después si no utilizamos regularmente los conocimientos a los que hemos dedicado tiempo y esfuerzo para aprender. ¿Cuántos de nosotros podemos decir que recordamos nuestro francés del instituto?

Entonces, ¿cómo podemos creer que un solo día de mirar diapositivas y escuchar a alguien hablar de seguridad llevará realmente a los desarrolladores asistentes a codificar de forma más segura?

Los patrones de vulnerabilidad recurrentes nos muestran que esto simplemente no funciona. 

¿Cómo se consigue una inmunidad de desarrollo segura?

La respuesta está en nuestra naturaleza. Nuestros cuerpos y nuestras mentes funcionan de la misma manera y proporcionan hermosas soluciones a los problemas, siempre que trabajemos con ellos y no contra ellos. 

Para garantizar que sus aplicaciones sean seguras, debe empezar por capacitar a los desarrolladores para que escriban código seguro. De lo contrario, el departamento de seguridad de las aplicaciones seguirá dedicando todo su tiempo a revisar todo el código en busca de fallos de seguridad y a informar de las mismas vulnerabilidades recurrentes al departamento de desarrollo para que las arreglen rápidamente sin aprender nada. Y luego lo vuelven a hacer para la siguiente versión.

Así que vamos a reiterar.

Sistema inmunitario de seguridad saludable

Si trabaja junto con sus directores de desarrollo para hacerlo, no sólo estará implementando un SDLC seguro y marcando la casilla de formación en seguridad para el cumplimiento, sino que tendrá un impacto en el mundo real en el proceso de desarrollo. Para poner una guinda a todo esto, AppSec ya no encontrará e informará de vulnerabilidades repetidas a los equipos de desarrollo y los desarrolladores pasarán menos tiempo arreglándolas. Esto significa que podrán dedicar más tiempo a crear y mejorar el increíble software que hace que nuestro mundo sea mejor. 

¿Está preparado para mejorar su equipo de desarrollo? Adelante, reserve una demostración con nosotros.

Ver recurso
Ver recurso

Autor

Secure Code Warrior

Secure Code Warrior crea una cultura de desarrolladores orientados a la seguridad, dotándoles de las habilidades necesarias para codificar de forma segura. Nuestro buque insignia es Agile Learning Platform , que ofrece itinerarios basados en habilidades relevantes, prácticas en missions y herramientas contextuales para que los desarrolladores aprendan, desarrollen y apliquen rápidamente sus habilidades para escribir código seguro a gran velocidad.

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

El desarrollo seguro debe ser el sistema inmunitario de AppSec

Publicado el 24 de agosto de 2021
Por Secure Code Warrior

Como profesional de la seguridad de las aplicaciones, su trabajo consiste en garantizar la ciberseguridad de las aplicaciones de su organización. Sin embargo, usted no es responsable de escribir el código sobre el que se ejecuta la aplicación. Lo son los ingenieros del equipo de desarrollo. Entonces, ¿cómo puede asegurarse de que están desarrollando esos sistemas teniendo en cuenta la seguridad? 

Lo más probable es que estés haciendo algo o incluso todo lo siguiente: 

  • Revisar todo el código en busca de fallos de seguridad e informar al equipo de desarrollo para que los corrija. 
  • Imponer un estricto proceso de revisión por pares a lo largo del ciclo de vida del desarrollo seguro. 
  • Tener una aplicación regular assessment/pruebas de penetración realizadas por equipos de seguridad internos o externos.
  • Implementar herramientas de escaneo para detectar vulnerabilidades.

Estas son buenas prácticas, pero también son caras y similares a tomar una ronda de antibióticos cada vez que se enferma. Esto no sólo tiene un coste elevado, sino que pierde eficacia y puede debilitar el sistema inmunitario con el tiempo. 

¿Cómo se garantiza que el código que envían los desarrolladores está escrito de forma segura? 

Dejando de lado la codificación segura, primero hay que pensar en cómo aprende la gente. La mayoría de nosotros aprendemos de forma visual y mediante la práctica. Sin embargo, la formación en código seguro se ofrece a menudo como una actividad para marcar la casilla y no es relevante para el trabajo diario del desarrollador. Está diseñada para demostrar que los desarrolladores han recibido formación en materia de seguridad, a menudo para cumplir con las normas del sector, y no para que los desarrolladores retengan realmente esos conocimientos, y mucho menos para que disfruten del proceso de aprendizaje. 

Otra forma en la que los humanos tendemos a aprender es a través de nuestros errores, del mismo modo que lo hace nuestro sistema inmunitario. Las células T recuerdan qué tipo de patógenos han encontrado y erradicado con éxito en el pasado, para poder protegerse de ellos en el futuro. Este es exactamente el papel que deben desempeñar los desarrolladores en su SDLC seguro .

Es poco realista esperar que no cometan errores, pero puedes prepararlos de manera que sean capaces de reconocer patrones de codificación que se traduzcan en vulnerabilidades de seguridad en el futuro. 

Así es también como un sólido proceso de revisión por pares se vuelve tan poderoso. El hecho de que un desarrollador no se dé cuenta de un fallo de seguridad no significa que otro no lo haga. Y cuanto mejor entrenado esté el equipo de desarrollo en su conjunto, más probabilidades habrá de que las vulnerabilidades se detecten en seco y nunca lleguen a la producción. 

Las vulnerabilidades del software son como los patógenos

Las vulnerabilidades del software son como los patógenos en el sentido de que hay que recordarlas para poder combatirlas. En el caso de los patógenos, nuestro sistema inmunitario suele tener que exponerse varias veces antes de recordar cómo combatirlos para evitar una enfermedad grave o algo peor. 

Un ciberataque exitoso a partir de un software vulnerable puede paralizar gravemente o acabar con una organización. Pero si los desarrolladores conocen primero las vulnerabilidades del software en un entorno controlado, pueden trabajar para crear inmunidad a las amenazas aumentando y practicando regularmente sus conocimientos y habilidades de codificación segura. 

Exponer a los desarrolladores a los fallos de seguridad en un entorno controlado

Nunca podremos protegernos totalmente de las enfermedades, pero hay cosas que podemos hacer para reforzar nuestro sistema inmunitario y mantenernos lo más sanos posible. Cosas como hacer ejercicio con regularidad, comer de forma saludable y dormir mucho son algunas de las opciones de estilo de vida que suelen asociarse a un sistema inmunitario fuerte. Pero todas esas cosas requieren un poco de esfuerzo y deben ser continuas. Salir a correr todos los días durante una semana o dejar de beber durante un mes apenas harán mella en tu salud general. Tampoco es aconsejable salir a correr una carrera de 10 kilómetros el primer día que empezamos a correr. Primero tenemos que exponer nuestro corazón y nuestros músculos al ejercicio. También sabemos que hay que experimentar un poco hasta encontrar un buen equilibrio para nuestro cuerpo y los alimentos y ejercicios saludables que nos gustan.

No es tan diferente cuando se trata del desarrollo de software seguro. El aprendizaje se produce con el tiempo y la práctica, y los desarrolladores necesitan la misma formación continua para mejorar regularmente sus habilidades de codificación segura. Por no hablar de que el desarrollo de software está siempre evolucionando y adaptándose, lo que significa que las vulnerabilidades también lo están. Por eso no basta con un simple curso de formación. Los desarrolladores necesitan actualizarse periódicamente para estar lo suficientemente familiarizados con las posibles amenazas y estar debidamente equipados para defenderse de ellas. 

Intentar conseguir una inmunidad de rebaño dentro del equipo de desarrollo

Una sola persona no puede prevenir todos los problemas de seguridad. Es genial tener campeones de seguridad en el equipo, pero para obtener la mejor protección, cuantas más personas hayan aprendido sobre las vulnerabilidades de seguridad y cómo prevenirlas, más posibilidades tendrá su organización de prevenirlas. De nuevo, no es muy diferente de cómo el sistema inmunológico tiene diferentes tipos de células T para diferentes propósitos. Cada desarrollador forma parte de un equipo que garantiza la seguridad. Si se les capacita para que asuman la responsabilidad, lo hagan bien e incluso disfruten haciéndolo, entonces puedes crear una inmunidad de rebaño contra las ciberamenazas dentro del equipo de desarrollo como resultado.

Crear inmunidad de rebaño contra las ciberamenazas dentro del equipo de desarrollo

Mantener la seguridad en la mente con la exposición repetida

Nuestro cerebro aprende de forma similar a como funciona nuestro sistema inmunitario. El psicólogo alemán Hermann Ebbinghaus fue un pionero en el campo de la memoria y el aprendizaje. Dedujo que el aprendizaje tiene que producirse a lo largo del tiempo y con múltiples sesiones de aprendizaje. Cuando estamos en la escuela, nunca se espera que mantengamos los nuevos conocimientos después de la primera introducción. Primero se nos presenta la información, luego la practicamos con orientación y después la practicamos por nuestra cuenta. E incluso después de haberla aprendido lo suficientemente bien como para aprobar un examen, la información tiende a olvidarse poco después si no utilizamos regularmente los conocimientos a los que hemos dedicado tiempo y esfuerzo para aprender. ¿Cuántos de nosotros podemos decir que recordamos nuestro francés del instituto?

Entonces, ¿cómo podemos creer que un solo día de mirar diapositivas y escuchar a alguien hablar de seguridad llevará realmente a los desarrolladores asistentes a codificar de forma más segura?

Los patrones de vulnerabilidad recurrentes nos muestran que esto simplemente no funciona. 

¿Cómo se consigue una inmunidad de desarrollo segura?

La respuesta está en nuestra naturaleza. Nuestros cuerpos y nuestras mentes funcionan de la misma manera y proporcionan hermosas soluciones a los problemas, siempre que trabajemos con ellos y no contra ellos. 

Para garantizar que sus aplicaciones sean seguras, debe empezar por capacitar a los desarrolladores para que escriban código seguro. De lo contrario, el departamento de seguridad de las aplicaciones seguirá dedicando todo su tiempo a revisar todo el código en busca de fallos de seguridad y a informar de las mismas vulnerabilidades recurrentes al departamento de desarrollo para que las arreglen rápidamente sin aprender nada. Y luego lo vuelven a hacer para la siguiente versión.

Así que vamos a reiterar.

Sistema inmunitario de seguridad saludable

Si trabaja junto con sus directores de desarrollo para hacerlo, no sólo estará implementando un SDLC seguro y marcando la casilla de formación en seguridad para el cumplimiento, sino que tendrá un impacto en el mundo real en el proceso de desarrollo. Para poner una guinda a todo esto, AppSec ya no encontrará e informará de vulnerabilidades repetidas a los equipos de desarrollo y los desarrolladores pasarán menos tiempo arreglándolas. Esto significa que podrán dedicar más tiempo a crear y mejorar el increíble software que hace que nuestro mundo sea mejor. 

¿Está preparado para mejorar su equipo de desarrollo? Adelante, reserve una demostración con nosotros.

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.