En la actualidad, es común que muchas organizaciones consideran que están haciendo una labor impecable en seguridad de aplicaciones (AppSec) solo por el mero hecho de que analizan o escanean el código del software, o también porque miden su éxito por la cantidad de escaneos que pueden ejecutar al día, y no por las vulnerabilidades que son capaces de corregir.

Por desgracia, el recorrido hacia un código seguro no se puede escanear, por mucho que algunos digan lo contrario. Aunque el uso de herramientas de análisis es muy útil para identificar problemas de AppSec, el error en el código no puede ser identificado y solucionado por los equipos que no cuentan con el conocimiento, los recursos y la metodología apropiada para abordar y mitigar los fallos que encuentran.

 

En este sentido, para hacer que la seguridad de aplicaciones sea realmente efectiva para reducir el riesgo de una brecha, una organización debe implementar internamente tres pasos que van más allá del análisis del código:

  • Educar a sus desarrolladores para que aprendan habilidades de codificación seguras.
  • Corregir el código vulnerable que encuentre.
  • Lograr que su programa de AppSec sea escalable. Esto implica que se pueda mejorar y adaptar hasta cubrir todos los parámetros del software y sus fases de programación.

Educación: hazlo bien desde el principio

Muchos desarrolladores carecen de las habilidades de codificación necesarias para crear un código seguro. De acuerdo con nuestro informe ‘Encuesta global de habilidades de DevSecOps’casi el 70% de los desarrolladores asegura que sus organizaciones no ofrecen una formación adecuada en seguridad del software. Y no solo eso, sino que también el 76% de los que cuentan con un título universitario señala que no tuvieron que completar ningún curso o asignatura sobre seguridad durante su paso por la carrera. Si los desarrolladores no están aprendiendo cómo crear un buen código en el trabajo o en su formación académica, ¿dónde lo están aprendiendo? La respuesta: en ningún sitio.

Esta falta de capacitación y desarrollo de habilidades impide que muchas organizaciones alcancen sus metas y objetivos en materia de seguridad del software, como cumplir los requerimientos de privacidad y protección exigidos por clientes y reguladores. Ayudar a los desarrolladores a entender mejor las prácticas de seguridad tiene una ventaja clara: serán capaces de securizar el código desde el primer día.

El tiempo que lleva escribir un código óptimo y seguro respecto al que no lo es, es prácticamente el mismo. Sin embargo, un código seguro creado desde el principio puede eliminar días de trabajo y de corrección una vez está avanzado el desarrollo o incluso después de que el producto salga al mercado. Por eso, el cambio de mentalidad es fundamental, y solo se consigue con formación preventiva adaptada a cada desarrollador y a las necesidades de cada equipo (por ejemplo, cursos de e-learning personalizados en los que cada trabajador aprende a su ritmo).

Solución: haz un plan para tus análisis

Para mantenerse al día con las vulnerabilidades, es necesario evaluar cada análisis realizado en función de una política que filtre los resultados y para ello debemos tener en cuenta los parámetros establecidos para la tolerancia al riesgo – es decir, debemos realizar una clasificación de la peligrosidad de las amenazas –. Esta política también debe incluir una guía sobre la frecuencia con la que los equipos ejecutan un escaneo, cuánto tiempo deben tardar en corregir los fallos en función de la gravedad, y qué técnicas de escaneo deben usarse.

Una vez que tienes la lista de los problemas de seguridad, ¿por dónde empezar? Llegados a este punto, la priorización es la clave. Eso significa que el equipo debe ser capaz de identificar de forma efectiva qué errores corregir primero y cuáles después. Además, debemos considerar la gravedad de la vulnerabilidad y otros factores de riesgo, como la explotabilidad o la criticidad.

El siguiente paso es asegurarse de que los desarrolladores tienen acceso a la política mencionada anteriormente para que sean capaces de corregir los fallos específicos mientras aprenden a evitar problemas similares en el futuro.

Por último, hay que interiorizar que todos estos procesos de identificación y solución requieren tiempo y recursos: no sirve de nada analizar el código varias veces al día si el equipo no tiene forma de solucionar los errores que se encuentren.

Escalabilidad: da un buen soporte de seguridad

Contar con la formación para reducir las vulnerabilidades creadas e implementar un plan para priorizar las soluciones es necesario, pero no suficiente. Es probable que el personal de seguridad siga intentando ayudar a los equipos de desarrollo a remediar cada uno de los errores detectados en sus análisis. Por eso, cualquier estrategia de AppSec exitosa debe además poder ser escalable. ¿Cómo? Siguiendo estos tres consejos:

  • Déjate ayudar por expertos: si bien la formación del equipo de desarrollo es importante para educar a los desarrolladores sobre las mejores prácticas de seguridad, no es realista esperar que todos se conviertan en expertos en seguridad de la noche a la mañana. Para superar esta escasez de habilidades, la experiencia externa de AppSec es útil para ayudar a establecer los objetivos y la hoja de ruta del programa de seguridad.
  • Campeones de seguridad: una estrategia efectiva es desarrollar y fomentar campeones de seguridad (security champions) dentro de sus equipos de desarrollo. Si bien estos desarrolladores no son y no tienen por qué ser profesionales de seguridad, mantienen sus ojos y oídos abiertos ante posibles problemas. Después, el equipo soluciona los errores en desarrollo o llama a los expertos en seguridad de la organización para orientarse.
  • Soluciones en la nube: la nube puede ayudar a escalar la seguridad de la aplicación sin un coste adicional en comparación con una solución local. Los factores que generalmente son más costosos en una solución local, como la integración, actualizaciones o el mantenimiento se incluyen en soluciones de este tipo. De esta manera, el equipo de seguridad se centre en escalar sus esfuerzos de AppSec sin preocuparse por sobrepasar el presupuesto.

Por todo ello, es importante recalcar que la seguridad de aplicaciones no debe quedarse solo en la superficie. El código es el resultado palpable del proceso, pero esa seguridad debe abarcar mucho más. No es suficiente escanear el desarrollo a diario si no se tiene forma de analizarlo en profundidad ni de solucionar los fallos. De la misma manera, tampoco se consigue avanzar si no se invierte tiempo y recursos en inculcar la necesidad de la seguridad desde la base, es decir, desde la educación y la formación. No olvidemos nunca que la seguridad del software no es un antojo, sino una necesidad.

Deja un comentario