Hay una pregunta que debe hacerse todo desarrollador, ya sea graduado o veterano. Y la respuesta es importante. Se ha vuelto aún más importante en un mundo ágil, ya que tendrá un impacto directo en el éxito que tendrá en la ingeniería de software y en lo valioso que será para su próximo empleador.
Es la pregunta del millón. En realidad, ¡es la pregunta del millón!
¿Te comprometes a ayudarme a codificar de forma segura?
Elcoste medio de una violación de datos asciende actualmente a 3,6 millones de dólares. Las probabilidades de que su empresa sufra una filtración este año son de una entre cuatro. Teniendo en cuenta estos datos, comparto la frustración de muchos porque los desarrolladores no se gradúan de la universidad con competencias en codificación segura y seguridad incorporada en su ADN.
¿Por qué? La ingeniería de software es todavía una profesión relativamente joven. El énfasis se ha puesto en enseñar a la gente cómo construir código rápidamente, hacerlo elegante y funcional, pero con un enfoque muy limitado en hacer que el código sea seguro. El ritmo de cambio de las metodologías, las tecnologías, los lenguajes y las oportunidades no hace más que agravar estas carencias de competencias clave.
No vamos a cambiar el sistema académico rápidamente, así que tanto los desarrolladores como las empresas deben esperar que los desarrolladores tengan que aprender habilidades de codificación seguras en el trabajo. En algunas profesiones, se puede aprender cometiendo errores, pero para otras, no es una opción. Lo mismo ocurre con la ciberseguridad.
Los hechos demuestran que tampoco nos ha ido muy bien con la formación en seguridad de los desarrolladores en el trabajo. La mayoría de las principales brechas de seguridad del mundo se deben a errores de codificación que permiten a los hackers obtener privilegios en las redes informáticas, lo que les permite acceder y cosechar datos valiosos. El Informe de Investigación de Violaciones de Datos de Verizon (DBIR) 2017, muestra que el 30% de todas las violaciones son causadas directamente por debilidades en la seguridad de las aplicaciones web y esta conclusión ha sido consistente en el informe DBIR desde 2013.
La Encuesta Global de Habilidades de DevSecOps de 2017, publicada en agosto de 2017, confirmó lo que ya sabíamos: mientras que el 65% de los profesionales de DevOps cree que es muy importante tener conocimientos de DevSecOps al entrar en TI, el 70% cree que no está recibiendo la formación necesaria a través de la educación formal para tener éxito en el mundo actual de DevSecOps.
Casi el 40 por ciento de los directores de contratación encuestados informaron de que los empleados más difíciles de encontrar son los desarrolladores polivalentes de alto nivel con conocimientos suficientes sobre pruebas de seguridad. El 70% de los encuestados dijo que la formación en seguridad que habían recibido no es adecuada para sus puestos actuales. De hecho, menos del 4% dijo que se les da la oportunidad en absoluto.
Lo vi de primera mano cuando pasé casi una década trabajando con múltiples equipos de hackers profesionales de sombrero blanco. Con una trágica regularidad, irrumpimos en grandes empresas, empresas emergentes y departamentos gubernamentales; siempre encontrando los mismos puntos débiles.
Por ello, los desarrolladores deben hablar claro cuando se les contrata. Si tu posible empleador no se toma en serio tu formación en seguridad para desarrolladores, deberías pensar en qué tipo de empresa estás considerando entrar.
La segunda pregunta que debe hacerse es cómo piensan impartirlo. ¿Será práctico e interactivo? Es poco probable que la formación en seguridad para desarrolladores sobre las vulnerabilidades que se imparte mediante diapositivas, vídeos, animaciones en las que se puede hacer clic o debates abstractos le ayude directamente en su codificación. ¿Se asegurarán de que te mantengas continuamente al día de las últimas vulnerabilidades? ¿Existe un gremio o una comunidad de seguridad de la que puedas aprender? ¿Hay expertos en seguridad a los que puedas recurrir si necesitas ayuda?
Un compromiso con tus habilidades de codificación segura necesita un aprendizaje continuo a través de desafíos prácticos en marcos de codificación específicos y enfrentándote a diferentes vulnerabilidades en múltiples escenarios. No se puede aprender sobre las inyecciones SQL con un solo ejemplo. Necesitas estar expuesto a múltiples ejemplos de diversos tipos para que aprendas a reconocer estos peligrosos patrones de codificación.
Uno de nuestros clientes exigió a sus desarrolladores que jugaran un único reto (5 minutos) cada día durante dos meses. Puso a prueba sus habilidades antes y después del periodo de formación y observó un aumento del 60% en la capacidad de codificación segura en un grupo de cientos de desarrolladores. Esto significa que se gastan menos recursos en la búsqueda y corrección de errores de seguridad más adelante en el ciclo de vida y un importante ahorro a largo plazo. Significa que los hackers no utilizarán su código para comprometer los datos de su empresa.
En 2014 había 11 millones de desarrolladores profesionales en el mundo, según un estudio de IDC. En 2015, Burning Glass descubrió que había hasta 7 millones de ocupaciones laborales que requerían conocimientos de codificación y que los empleos de programación crecían de media un 12% más rápido que el mercado.
Hay muchos puestos de trabajo en el sector del software. Así que tome partido y elija empresas que se comprometan a cuidar su seguridad, la suya y la de sus clientes. Por extensión, elige empresas que inviertan en ti.
Hay una pregunta que debe hacerse todo desarrollador, ya sea graduado o veterano. Y la respuesta es importante. Se ha vuelto aún más importante en un mundo ágil, ya que tendrá un impacto directo en el éxito que tendrá en la ingeniería de software y en lo valioso que será para su próximo empleador.
Es la pregunta del millón. En realidad, ¡es la pregunta del millón!
¿Te comprometes a ayudarme a codificar de forma segura?