Header Ads Widget

Ticker

6/recent/ticker-posts

Beneficios del enfoque DevSecOps


Si hay algo que se puede aprender de los problemas recientes de seguridad de datos, es este: la seguridad es una preocupación primordial para cualquier organización, grande o pequeña. Por eso es tan confuso, entonces, ver tantas organizaciones adoptando un enfoque laxo hacia la seguridad . A menudo se ve como una consideración secundaria, un último paso y, debido a esto, a menudo se le da menos tiempo, menos atención y menos respeto.

Si bien algunas de las razones detrás de esto son históricas (y algunos dirían que algo válidas), los tiempos están cambiando: la seguridad solo será una preocupación cada vez mayor para los clientes y, como tal, la implementación de pasos y sistemas para abordarla sistemáticamente ahora. es un enfoque mucho mejor que simplemente intentar ponerse al día más adelante.

Ingrese al concepto de DevSecOps . DevSecOps es una tendencia en el desarrollo que es extremadamente prometedora y brinda seguridad, eficiencia y tranquilidad. ¿Qué es exactamente y cómo funciona?

¿Qué es DevSecOps?

DevSecOps no es un marco, no es una guía y no es un producto; esta no es una oferta de “integración de seguridad” ni nada por el estilo. En pocas palabras, DevSecOps es un replanteamiento y una reestructuración fundamentales de cómo se maneja la seguridad durante todo el ciclo de vida del desarrollo de software .

Tradicionalmente, la seguridad se manejaba al final de la etapa de desarrollo. En algunos casos, esto tenía sentido; después de todo, para mantenerse a la vanguardia en los días de ciclos de vida de desarrollo de varios meses, tendría que retrasar algunas adiciones de última hora hasta que la tecnología fuera apropiada y los vectores conocidos. Durante este tiempo, los desarrolladores estaban pensando "construimos esta cosa asombrosa, ahora, ¿cómo lo hacemos seguro?".

Desafortunadamente, esta práctica no disminuyó como lo hizo el ciclo de vida de meses. La seguridad sigue siendo a menudo una ocurrencia tardía, lo cual es problemático. Debido a este proceso de pensamiento equivocado sobre la seguridad, existe una división entre aquellos que valoran la seguridad y la implementan de todo corazón y aquellos que no ven el sentido de hacerlo de inmediato.

El problema del desarrollo tradicional

Para ser justos, este problema es inherente al enfoque de desarrollo tradicional . A veces, es difícil argumentar el valor de la seguridad desde un punto de vista empresarial. Después de todo, si el cliente está usando el servicio y no está siendo atacado, es " suficientemente bueno " a los ojos de muchos desarrolladores de negocios. Dado que esta mentalidad "suficientemente buena" da como resultado productos fuera de la puerta, los desarrolladores a menudo se han visto presionados para sacar estos productos en su estado mínimamente viable, ya sea que sean realmente seguros o no.

Por supuesto, no todos los equipos de desarrollo son así: muchos equipos no se ven presionados por estas preocupaciones y, en cambio, se ven presionados por limitaciones cronológicas y económicas . Cuando se lanza una aplicación en cuestión de semanas en lugar de meses o años, la idea de tener que dedicar casi tanto tiempo a asegurar una API como a desarrollar la API al final del ciclo de vida es abrumadora, cara, y, para algunos, de valor cuestionable.

Suponiendo que pueda superar todos estos obstáculos y asumiendo que el valor comercial justifica el tiempo, todavía existe el problema menor de que la seguridad al final del proceso del ciclo de vida es altamente ineficaz en el panorama moderno. Las amenazas evolucionan y lo hacen rápidamente. Asegurar su código base con curitas no hace más que resolver el problema de hoy, mientras deja los problemas del mañana para otros días.

Y si eso no fuera suficiente, ¿se está cansando de los problemas que se acumulan? También está el problema con la distribución del trabajo que debe considerarse. El peso de asegurar un sistema recae directamente sobre uno o más desarrolladores o oficiales de seguridad. Con eso viene toda la ineficiencia de la alta demanda y la baja oferta, tanto en términos de tiempo, moral y resultado. Este sistema está muy desequilibrado, una situación que en sí misma puede provocar más problemas.

Relacionado: Definición del papel emergente de DevOps

Repensar la relación con el desarrollador

Para solucionar este problema, DevSecOps sugiere que se debe replantear todo el problema y reestructurar la relación fundamental del desarrollador con la base de código. Para solucionar todos estos problemas, la relación entre el desarrollador y el enfoque de seguridad debe cambiarse de cabeza.

Con un enfoque de DevSecOps, la seguridad ya no es algo que se hace al final de un largo proceso de desarrollo, sino que se hace al principio y durante todo el cronograma . En otras palabras, en lugar de comenzar con código y terminar con seguridad, ¡comienza con seguridad y termina con código! Todo este proceso se basa en la idea de asegurar primero considerando el diseño de la aplicación, el enfoque general, la ética de la empresa, la cultura dentro del equipo de desarrollo y la arquitectura elegida para respaldar el sistema.

Además, una gran parte de este enfoque consiste en buscar la automatización de ciertos sistemas de seguridad, puertas y pruebas durante la construcción y después de la implementación. Al combinar esto con el desarrollo y las pruebas iterativas , los sistemas pueden probarse antes de las pruebas en vivo y se puede garantizar la seguridad durante todo el proceso de desarrollo.

Una gran ventaja aquí es el hecho de que, al repensar la relación en un nivel fundamental, el cambio de equilibrio es extremadamente valioso cuando se trata de planificación analítica. Dado que la seguridad está integrada desde el principio, puede comprender y cuantificar mejor su equilibrio riesgo / beneficio, planificar de manera más eficaz su enfoque de seguridad y, en última instancia, implementar estrategias de mitigación y tolerancia al riesgo más sólidas y eficaces .

Relacionado: Llegue a DevOps Zen con estas herramientas de integración continua

Cultura versus tecnología

Cabe señalar que no todos los cambios que deben ocurrir son tecnológicos u operativos. Deben producirse grandes cambios en la cultura empresarial que respalda el ciclo de vida integrado de DevSecOp. El problema aquí radica en el hecho de que la cultura empresarial le da mucha importancia al valor para el cliente final y, si bien ese es obviamente el objetivo de una empresa, puede causar problemas importantes en términos de un ciclo de desarrollo centrado en la seguridad.

Con un enfoque cultural deficiente, si el riesgo se considera lo suficientemente bajo en comparación con el costo relativamente alto de protegerse contra él, se ignorará una solución. Si bien esto tiene sentido en algunos casos, el argumento es fundamentalmente defectuoso, ya que el costo a menudo exorbitante en términos de horas de trabajo y economía a menudo se debe a la eficiencia de las soluciones tradicionales más que a las soluciones en sí.

En otras palabras, adoptar la seguridad desde el principio resultará en menores costos para asegurar la API y, en última instancia, cambiará la relación entre el equilibrio y el costo en un lugar mucho más favorable cuando se trata de establecer la seguridad. Además, aunque el valor de la seguridad a menudo se ha relegado al ámbito de la "ganancia técnica", el hecho es que más usuarios están preocupados por su privacidad y seguridad, y agregar seguridad desde el principio es un valor agregado importante.

Implementación

Ahora que tenemos una idea de lo que realmente es DevSecOps, necesitamos ver cómo podríamos implementarlo correctamente . Tenga en cuenta que si bien estas son pautas generales, destacan los factores principales que hacen que DevSecOps sea tan poderoso; en consecuencia, incluso si las respuestas aquí no se ajustan perfectamente a su solución dada, debe intentar usarla de todos modos, cambiándola a su situación dada y enfoque de desarrollo.

Centrarse en la construcción colaborativa

En esencia, DevSecOps se preocupa principalmente por la colaboración . La naturaleza misma de la solución es que cada equipo tiene que trabajar en conjunto en cada paso para garantizar que la seguridad se integre, pruebe y repita correctamente. La seguridad desde el primer día es una cuestión de que cada unidad de negocio trabaje en conjunto, pero deben trabajar bien juntas; simplemente darles instrucciones para que se apoyen mutuamente no es suficiente. En consecuencia, garantizar que la colaboración no solo sea posible, sino que esté bien respaldada, es de suma importancia.

La habilitación de la colaboración puede tomar varias formas. Hacer que los equipos se consulten entre sí en puntos específicos del proyecto puede ayudar a identificar problemas tempranos y puede ayudar a brindar una nueva perspectiva a los conocidos a largo plazo. La utilización de entornos colaborativos de construcción y desarrollo también puede contribuir en gran medida a permitir que los equipos trabajen de manera más eficaz al permitir que estas unidades vean el código y las implementaciones cooperativas en una vista holística. Finalmente, implementar un sistema de tickets u otro software de gestión de proyectos puede ayudar a alinear el desarrollo en todos los niveles,

Lo más importante, y quizás más a menudo pasado por alto, es implementar un sistema de documentación que no solo admita la edición colaborativa, sino que también permita la documentación detallada y vinculada en cada paso. Debe documentar como si alguien sin experiencia, sin marco de referencia, fuera a depender de ello en algún momento. La documentación debe servir como una única fuente de verdad, dando contexto a todo lo que hace y estableciendo el marco mediante el cual los equipos pueden trabajar juntos. DevSecOps exige que no trabaje de forma aislada, sino en entornos colaborativos, y la forma más sencilla de eliminar este entorno es proporcionar documentación defectuosa, incompleta o ineficaz.

Lea también: 9 preguntas para la auditoría de seguridad de API de nivel superior

Trate la seguridad con respeto

La seguridad no debe tratarse como un costo terciario, sino como una parte vital e importante de la ecuación de valor comercial. Los desarrolladores deben pensar en la seguridad deficiente como un potencial negacionista de todo el valor comercial que tiene una solución. Después de todo, ¿cuántos usuarios de API estarían dispuestos a utilizar una solución que exponga públicamente datos en texto plano sin ningún tipo de cifrado o hash?

La seguridad debe verse como un habilitador de valor y debe ser parte de cada consideración en cada paso del desarrollo de procesos y servicios. Al comienzo de cada etapa de desarrollo, la pregunta no debería ser simplemente "¿cómo proporciona esto valor comercial?", Sino más bien "¿cómo podemos asegurar esto mientras brindamos un valor comercial óptimo en equilibrio?". Saber cómo se exponen la API y sus recursos, cómo se mitigan estas exposiciones y cómo se manejan las amenazas potenciales es de vital importancia.

Lea también: Por qué la seguridad de API es más importante que nunca

Estandarizar y centralizar

Parte de garantizar la capacidad de proteger cada etapa de su ciclo de desarrollo es estandarizar la forma en que se manejan los datos. Al estandarizar la transmisión de datos y procesos de etapa a etapa y centralizar ciertos aspectos de este proceso, puede atornillar y asegurar lo que debe ser inamovible, al tiempo que facilita el trabajo colaborativo en aquellos sistemas que deben ser cambiables.

Cada servicio debe tener el menor privilegio posible y solo debe tratar con datos estandarizados. Siempre que sea posible, estos datos deben seguir un proceso conocido de encriptación y transferencia, y el movimiento de estos datos también debe estandarizarse. La identidad del usuario y el control de acceso se pueden centralizar en esta etapa para garantizar que tenga su propio manejo seguro, eliminándolo como un punto potencial de falla en cada etapa individual.

Automatizar

Una de las mayores oportunidades subyacentes al enfoque de DevSecOps es el movimiento hacia la automatización . La implementación de sistemas automatizados puede ayudar a reducir el flujo de trabajo de seguridad para sus desarrolladores y puede ayudar a aclarar y estructurar el entorno colaborativo que buscamos crear. Al automatizar las verificaciones de seguridad , implementar escáneres de seguridad, pruebas automatizadas y  validación de código en  todo el sistema, puede garantizar el cumplimiento de su enfoque dado y evitar que los problemas se propaguen en cada etapa.

Tenga en cuenta que esta automatización es una propuesta a largo plazo . Se deben realizar revisiones periódicas del código con definiciones de amenazas actualizadas y vulnerabilidades conocidas. Las pruebas automatizadas deben ocurrir durante todas y cada una de las actualizaciones de la base de código o las funciones de mantenimiento. Esta automatización puede resultar en un gran ahorro de tiempo que facilita más tiempo de desarrollo para las características que aumentan el valor comercial, pero esto solo puede ser cierto si los sistemas se integran desde el principio y se mantienen activos a lo largo del tiempo.

Reflexiones finales sobre DevSecOps

Lo importante que debe recordar con DecSecOps es que no solo está adoptando un marco o cambiando arquitecturas, sino que está cambiando fundamentalmente el enfoque de desarrollo con el que toda su organización está actualmente alineada. En consecuencia, tenga en cuenta que este proceso llevará algún tiempo y probablemente tendrá algunos obstáculos en el camino.

La buena noticia, por supuesto, es que una vez que se completa el cambio, implementar la seguridad en cada nivel es realmente bastante simple: es mucho más una forma de pensar y una característica organizacional general que un esfuerzo invertido. Con este cambio de estrategia y enfoque, puede obtener beneficios en todos los niveles de su organización.

 

Publicar un comentario

0 Comentarios