El último punto ciego de seguridad que no sabe que tiene


¿Cuánto tiempo dedican los desarrolladores a escribir código?

Según reciente estudios, los desarrolladores pasan más tiempo manteniendo, probando y asegurando el código existente que escribiendo o mejorando el código. Las vulnerabilidades de seguridad tienen la mala costumbre de aparecer durante el proceso de desarrollo de software, solo para aparecer después de que se haya implementado una aplicación. La parte decepcionante es que muchas de estas fallas y errores de seguridad podrían haberse resuelto en una etapa anterior y existen métodos y herramientas adecuados para descubrirlos.

¿Cuánto tiempo dedica un desarrollador a aprender a escribir un código funcional? ¿Y cuánto se gasta en aprender sobre la seguridad del código? ¿O aprender a no codificar?»

¿No sería mejor erradicar el problema del sistema en lugar de tenerlo allí y luego tratar de detectar y detener un ataque en curso dirigido a él?

Puede probar sus habilidades de codificación segura con este breve auto evaluación.

El verdadero costo de los errores

Todo el mundo comete errores, incluso los desarrolladores. Los errores de software son inevitables y se aceptan como el «costo de hacer negocios» en este campo.

Dicho esto, cualquier error no corregido en el código es vital para los atacantes. Si pueden encontrar al menos un error en un sistema que se pueda explotar de la manera correcta (es decir, una vulnerabilidad de software), pueden aprovechar esa vulnerabilidad para causar daños masivos, potencialmente en la escala de decenas de millones de dólares, como nosotros. ver a través de casos muy publicitados que llegan a los titulares cada año.

E incluso cuando se trata de vulnerabilidades menos graves, solucionarlas puede resultar muy costoso, especialmente si se introduce una debilidad mucho antes en el SDLC debido a una falla de diseño oa la falta de un requisito de seguridad.

¿Por qué se está quedando corto el enfoque actual de la seguridad del software?

1 — Demasiada confianza en la tecnología (y no lo suficiente en los humanos)

Se supone que las herramientas de automatización y ciberseguridad reducen la carga de trabajo de los desarrolladores y el personal de seguridad de aplicaciones al escanear, detectar y mitigar las vulnerabilidades del software, sin embargo:

  • Si bien estas herramientas contribuyen a los esfuerzos de seguridad cibernética, los estudios muestran que solo pueden descubrir el 45% de vulnerabilidades generales
  • También pueden producir «falsos positivos», lo que genera preocupaciones innecesarias, demoras y reelaboración.
  • …o peor aún, «falsos negativos», creando una falsa sensación de seguridad extremadamente peligrosa

2 — La desconexión de DevSec

La desconexión de DevSec se refiere a la conocida tensión entre los equipos de desarrollo y los equipos de seguridad debido a prioridades diferentes (y a menudo conflictivas) cuando se trata de nuevas funciones y correcciones de errores.

Como resultado de esta fricción, 48% de los desarrolladores terminan empujando regularmente el código vulnerable a la producción. Las vulnerabilidades que se descubren más adelante en el ciclo de desarrollo a menudo no se mitigan o terminan creando costos adicionales, demoras y riesgos más adelante. Estas son las consecuencias del pensamiento a corto plazo: en última instancia, sería mejor solucionar el problema en la fuente en lugar de gastar tiempo y recursos en encontrar fallas en el código más adelante en el ciclo de vida del desarrollo del software.

3 — Supervisar su cadena de suministro pero no su propio software

Otro error común es centrarse únicamente en la seguridad de la cadena de suministro de software y solo abordar las vulnerabilidades conocidas en los productos y paquetes de software existentes que figuran en la famosa base de datos de vulnerabilidades y exposiciones comunes o en la base de datos nacional de vulnerabilidades.

Es esencial lidiar con las vulnerabilidades en los componentes de terceros, sus dependencias o el entorno operativo, pero esto no lo ayudará con las vulnerabilidades en su propio código.

De manera similar, monitorear ataques potenciales a través de sistemas de detección de intrusos (IDS) o firewalls seguidos de una respuesta a incidentes es una buena idea, y OWASP Top 10 lo reconoce como una necesidad, pero estas actividades solo se ocupan de las consecuencias de los ataques cibernéticos en lugar de la causa.

La solución: convertir la codificación segura en un deporte de equipo

Su ciberseguridad es tan fuerte como su eslabón más débil. El desarrollo de software no es un trabajo de línea de montaje y, a pesar de todas las predicciones, no estará completamente automatizado en el corto plazo. Los programadores son solucionadores de problemas creativos que necesitan tomar cientos de decisiones cada día mientras escriben código, porque el desarrollo de software es un tipo de artesanía.

Cuando se trata de eso, si un fragmento de código es seguro o no depende de las habilidades de los desarrolladores individuales.

Los procesos, estándares y herramientas pueden ayudar a fomentar y reforzar las mejores prácticas, pero si un desarrollador no conoce un tipo particular de mala práctica, es probable que siga cometiendo el mismo error (e introduciendo el mismo tipo de vulnerabilidad en el código) una y otra vez.

6 consejos para potenciar la codificación segura

El número de vulnerabilidades descubiertas recientemente está aumentando y las amenazas que plantean los ciberagresores maliciosos se están volviendo cada vez más sofisticadas. La mayoría de las organizaciones comienzan a implementar un ciclo de vida de desarrollo seguro después de un incidente, pero si nos pregunta cuándo debe comenzar, la respuesta, por supuesto, siempre será cuanto antes, mejor.

Eso es porque cuando se trata de vulnerabilidades críticas, incluso las horas pueden significar la diferencia entre un daño no duradero y un desastre financiero.

Estos son nuestros mejores consejos para hacer exactamente eso:

1 — Desplazamiento a la izquierda: ampliar la perspectiva de seguridad a las primeras fases de desarrollo

    Confiar en la automatización de herramientas de seguridad estilo DevSecOps por sí sola no es suficiente, debe implementar un cambio cultural real. Las pruebas SAST, DAST o de penetración se encuentran a la derecha en el SDLC; desplácese hacia la izquierda hacia el comienzo del ciclo de vida del desarrollo de software para obtener una cobertura más completa.

    2 — Adoptar un enfoque de ciclo de vida de desarrollo seguro

      MS SDL u OWASP SAMM, por ejemplo, proporcionarán un marco para sus procesos y actuarán como un buen punto de partida para su iniciativa de ciberseguridad.

      3 — Cubra todo su ecosistema de TI

        Las vulnerabilidades de terceros representan un gran riesgo para la ciberseguridad de su empresa, pero sus propios desarrolladores también pueden estar introduciendo problemas en la aplicación. Debe poder detectar y resolver vulnerabilidades en las instalaciones, en la nube y en entornos de terceros.

        4 — Pasar de la reacción a la prevención

          Agregue conceptos de programación defensiva a sus pautas de codificación. Robustez es lo que necesitas. La buena seguridad tiene que ver con la paranoia, después de todo.

          5 — La mentalidad importa más que la tecnología

            Los cortafuegos y los IDS no protegerán su software de los piratas informáticos por sí mismos; simplemente se ocupan de las consecuencias de las vulnerabilidades ya existentes. Aborde el problema desde la raíz: la mentalidad de los desarrolladores y la responsabilidad personal.

            6 — Invertir en capacitación de código seguro

              Busque uno que cubra una amplia gama de lenguajes de programación y brinde una cobertura completa de estándares de codificación seguros, bases de datos de vulnerabilidades y tipos de debilidades de software críticas reconocidas en la industria. Los ejercicios prácticos de laboratorio en los entornos nativos de los desarrolladores son una gran ventaja para ponerlos al día rápidamente y cerrar esa molesta brecha entre saber y hacer.

              El viaje de aprendizaje combinado de Cydrill brinda capacitación en codificación segura proactiva y efectiva para desarrolladores de compañías Fortune 500 en todo el mundo. Combinando formación dirigida por un instructor, e-learning, laboratorios prácticos y gamificación, Cydrill proporciona un enfoque novedoso y eficaz para aprender a codificar de forma segura.



              ttn-es-57