Al igual que la propia tecnología, las herramientas, técnicas y procesos óptimos para desarrollar código evolucionan rápidamente. Los humanos tenemos una necesidad insaciable de más software, más funciones, más funcionalidad… y lo queremos más rápido que nunca, más cualitativo y, además, seguro.
Con un 68% estimado de organizaciones experimentando ataques de día cero por vulnerabilidades desconocidas/no reveladas en 2019, esta es una tendencia al alza que debemos abordar como industria mediante el envío de código seguro a una velocidad razonable.
Si bien muchas personas y organizaciones están pasando de Waterfall a Agile, y no todos están allí todavía, seamos realistas, ya se están encontrando con un nuevo problema.
Los equipos de desarrollo y sus contrapartes de operaciones siguen trabajando en silos, y esto sigue causando dolores de cabeza a los gerentes de desarrollo y sus contrapartes en toda la empresa. En este entorno, ¿cómo pueden los equipos pequeños que trabajan de forma ágil cumplir la promesa de una implementación y una entrega más rápidas?
La (primera, y llegaremos a eso en un minuto) palabra de moda / metodología de desarrollo de primer nivel, DevOps, se creó para fusionar las funciones de los desarrolladores y los equipos operativos al crear un nuevo software. Esencialmente, esto fue para ayudar a los desarrolladores a tomar la responsabilidad de poner las cosas en producción, en lugar de tirarlo por la borda al equipo de operaciones y hacerlo su responsabilidad.
Sin duda, pueden enviarse más rápido, incluso un par de veces al día, lo que parece jugar en el callejón de Agile. Sin embargo, DevOps todavía crea un gran equipo mixto de ingenieros y personal de operaciones, que en realidad puede no estar alineado con Agile. En última instancia, hemos descubierto en este punto que DevOps es más una evolución de Agile, similar en muchos aspectos y complementario en sus diferencias.
La canalización de implementación e integración continua y automatizada que es evidente en un entorno de DevOps en funcionamiento es esencial para permitir lanzamientos frecuentes, pero no es suficiente a nivel de equipo, y aquí es donde interviene Agile.
Agile permite que los equipos, especialmente los equipos pequeños, sigan el ritmo de estos lanzamientos rápidos y los requisitos cambiantes, mientras se concentran en la tarea y colaboran. Ciertamente parece ideal, y el proceso puede mantener a los equipos encaminados hacia el objetivo final, pero no deja de tener sus propios problemas.
El software creado con las mejores prácticas de DevOps todavía tiene el potencial de tropezar en la primera pelea de jefes: el equipo de seguridad. Cuando el código es examinado por especialistas tradicionales/Waterfall AppSec, ya sea con herramientas o una revisión manual compleja, a menudo encuentran riesgos y vulnerabilidades inaceptables que luego deben corregirse después del hecho.
El proceso de actualizar las correcciones de seguridad en las aplicaciones completas es molesto para los gerentes de desarrollo y sus equipos ya sobrecargados y no es ni rápido ni fácil. Económicamente, también es mucho más caro para la organización.
Entonces, si el mundo está pasando de Waterfall, Agile y ahora DevOps, ¿cuál es la solución? Y si está administrando un equipo de desarrolladores (o usted mismo es uno), ¿cuál es su papel para mantenerse al día con estos cambios de enfoque?
Las técnicas de desarrollo están en un estado constante de evolución, pero afortunadamente, este no es un cambio tan grande. Las organizaciones solo necesitan poner «Sec» en «DevOps»… y así nació DevSecOps. Un objetivo principal de DevSecOps es romper las barreras y abrir la colaboración entre los equipos de desarrollo, operaciones y, por último, pero no menos importante, de seguridad.
DevSecOps se ha convertido tanto en una táctica de ingeniería de software como en una cultura que aboga por la automatización y el monitoreo de la seguridad a lo largo del ciclo de vida del desarrollo del software.
Esto puede parecer otro proceso a nivel de organización, quizás uno con «demasiados cocineros» cuando se trata de un desarrollador con una larga lista de características para construir. Sin embargo, la metodología DevSecOps abre una oportunidad para que los desarrolladores conscientes de la seguridad realmente brillen.
DevSecOps: un futuro brillante para los desarrolladores expertos
¿Por qué un codificador, y de hecho sus gerentes, querrían ponerse al día con DevSecOps?
En primer lugar, es bueno saber que es un movimiento brillante, y no solo en la búsqueda de hacer que el mundo esté a salvo de los costosos ataques cibernéticos. Los expertos dicen que la demanda de personal talentoso en ciberseguridad se está disparando y no se vislumbra un final. Aquellos que dominan DevSecOps pueden esperar una carrera larga y rentable.
La seguridad laboral para los ingenieros de DevSecOps está aún más garantizada porque, a diferencia de las tácticas tradicionales de ciberseguridad, como el análisis de vulnerabilidades con una variedad de herramientas basadas en software, DevSecOps requiere personas que sepan cómo implementar la seguridad mientras codifican.
Como señalaron los analistas de Booz, Allen y Hamilton en su blog titulado 5 Myths of Adopting DevSecOps, las organizaciones quieren (y necesitan) DevSecOps, pero simplemente no pueden comprarlo. Requieren equipos multifuncionales que integren tecnologías y colaboren durante todo el ciclo de vida del desarrollo de software, y eso requiere personas capacitadas, gestión de cambios y un compromiso continuo de múltiples partes interesadas.
Según Booz, Allen y Hamilton, las empresas pueden comprar aplicaciones y herramientas para ayudar con ciertos aspectos de DevSecOps, como el software de gestión de versiones, «pero en realidad son sus equipos de entrega los que lo hacen posible». Ellos son los que impulsan la mejora continua que ofrece DevSecOps y su cambio cultural y de paradigma.
Las organizaciones no pueden «comprar» un programa DevSecOps viable; debe construirse y mantenerse, utilizando una variedad de herramientas, conocimiento interno y orientación que eleve la cultura de seguridad, al tiempo que tiene sentido comercial. No es fácil, pero está lejos de ser imposible.
Cómo puedes patear traseros en el movimiento DevSecOps
Uno de los primeros pasos en el camino para convertirse en un ingeniero de DevSecOps, o apoyar la mejora de sus habilidades, es darse cuenta de que es tanto una cultura como un conjunto de técnicas. Requiere la voluntad de implementar la seguridad como parte de cada fragmento de código que cree, y el deseo de proteger proactivamente su organización al buscar activamente fallas y vulnerabilidades de seguridad a medida que codifica, corrigiéndolas mucho antes de que entren en producción. La mayoría de los ingenieros de DevSecOps se toman muy en serio su profesión y sus habilidades. La organización profesional DevSecOps incluso tiene un manifiesto que establece sus creencias.
El manifiesto es un poco torpe, ya que los manifiestos rara vez son de lectura ligera. Pero en esencia hay algunas verdades que todos los grandes ingenieros de DevSecOps deberían aprender a aceptar, como:
- Date cuenta que el equipo de seguridad de aplicaciones es tu aliado. En la mayoría de las organizaciones, los especialistas de AppSec están en desacuerdo con los desarrolladores, ya que siempre envían el código completo para realizar más trabajo. Los equipos de AppSec a menudo no tienen mucho amor incluso por los desarrolladores, ya que pueden retrasar el código completo antes de que entre en producción al introducir errores de seguridad comunes. Sin embargo, un ingeniero inteligente de DevSecOps se dará cuenta de que los objetivos de los equipos de seguridad son, en última instancia, los mismos que los de los desarrolladores y programadores. No es necesario que sean los mejores amigos, pero formar una relación de trabajo tranquila y colaborativa es vital para el éxito.
- Practique y perfeccione sus técnicas de codificación segura. Si puede encontrar formas en que las aplicaciones son vulnerables mientras aún se están construyendo, cerrar esas lagunas puede detener a los futuros piratas informáticos. Por supuesto, esto requiere una comprensión de las vulnerabilidades y las herramientas para ayudar a solucionarlas. Para los desarrolladores nuevos en seguridad, incluso los OWASP Top 10, las páginas del blog Secure Code Warrior pueden brindar información sobre las vulnerabilidades más comunes y peligrosas que encontrará, así como consejos prácticos y desafíos para probar su conocimiento. El aspecto más importante es mantener la seguridad en primer plano y hacer tiempo para una capacitación breve que lo ayude a desarrollar el conocimiento existente. Es común que las interacciones de un desarrollador con la seguridad sean poco notables, incluso negativas, pero mejorar las habilidades en seguridad es un gran avance profesional. Además, no tiene por qué ser una tarea ardua, especialmente con una red de apoyo que ofrece capacitación y el tiempo para hacerlo dentro del horario laboral.
- Recuerde: las superestrellas de DevSecOps contribuyen a una cultura de seguridad positiva en su organización. En lugar de centrarse en los objetivos del pasado, como entregar aplicaciones rápidamente independientemente de sus problemas inherentes, es importante hacer de la búsqueda y reparación de vulnerabilidades en el desarrollo de código una prioridad máxima. La seguridad debe verse como un trabajo de todos, y todos deben compartir la adulación y las recompensas que provienen de implementar aplicaciones efectivas y altamente seguras en todo momento.
Puede ayudar a cultivar una cultura de seguridad increíble en su organización defendiendo la codificación segura y las mejores prácticas de seguridad desde cero, recomendando soluciones de capacitación y asegurándose de que ningún codificador se quede atrás en el mundo acelerado y de todas las manos a la obra. DevSecOps.
El único código bueno es seguro y habilidoso, los desarrolladores conscientes de la seguridad son piezas vitales del rompecabezas. Las recompensas personales y profesionales ciertamente valen la pena, y con miles de millones de registros de datos personales comprometidos cada año (y creciendo), lo necesitamos. Tome su lugar en el frente y ayude a defenderse de los malos en nuestro mundo digital.
¿Está interesado en dar sus primeros pasos hacia un futuro más seguro? Secure Code Warrior tiene muchos recursos gratuitos, recomendaría comenzar aquí: Whitepaper «La guía táctica de cinco puntos para desarrolladores seguros».