Icônes SCW
héros bg sans séparateur
Blog

Empezar «a la izquierda de la izquierda»: ¿el código seguro es siempre un código de calidad?

Matias Madou, Ph.D.
Publié le 10 février 2021
Dernière mise à jour le 6 mars 2026

Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y distribuido aquí.

Cuando hablo con los desarrolladores sobre seguridad, uno de mis mantras es que «el único código de calidad es el código seguro». Esto sigue siendo cierto; es posible que hayamos escapado a un desastre cuando el software vulnerable salió a la venta en la década de los 90, pero hoy no vale la pena correr el riesgo. A lo largo de los años, muchos han trabajado arduamente para inculcar en los desarrolladores una mentalidad consciente de la seguridad y, al hacerlo, es de esperar que la seguridad sea sinónimo de calidad en lo que respecta a la autoevaluación de su código.

Sin embargo, tras una reflexión (y un debate entre mis compañeros), quizás esté simplificando demasiado el concepto. Es totalmente posible crear código que sea realmente seguro, pero que muestre signos de una técnica de desarrollo incierta u otras áreas problemáticas que lo hagan menos que ideal.

Nuestra industria habla extensamente sobre la noción de «cambiar a la izquierda». En mi opinión, se trata de «empezar» por la izquierda, permitiendo que las cohortes de ingeniería compartan la responsabilidad de la seguridad (que es un aspecto de la calidad) y dándoles la posibilidad de borrar las vulnerabilidades comunes al alcance de la mano (literalmente). Sin embargo, a la luz de este dilema actual, parece que hay que ir un poco más allá.

El código de un cierto nivel de calidad es, por definición, también seguro, pero no todo el código seguro es necesariamente de buena calidad. ¿Empezar «a la izquierda de la izquierda» es la fórmula para garantizar estándares de codificación puros y seguros?

¿Qué aspecto tiene un código seguro de «mala calidad»?

Vamos a ver con lupa este fragmento de código:

Si analizamos este código desde una perspectiva de seguridad, este fragmento es seguro y no es un punto de entrada para que un atacante aproveche una vulnerabilidad de inyección SQL.

¿Es un ejemplo de código de alta calidad? La verdad es que no, lamentablemente. Un simple cambio en el argumento de int (ger) a un Cuerda El valor permite que la entrada del usuario de forma libre manipule la consulta, a diferencia de un número que no puede. Ese cambio (o copiar y pegar de forma fortuita la cadena sql desde otro lugar) crea inmediatamente un entorno en el que es posible que se produzcan vulnerabilidades en la inyección de SQL y todos los riesgos asociados a ellas:

En este caso, las medidas de seguridad tenían un alcance muy limitado, mientras que un desarrollador más minucioso (o experimentado) podría haber adoptado un enfoque diferente y haber considerado las implicaciones de una estructura argumental ineficiente. Un código de envío como este no solo es una mala práctica, sino que también es un mal ejemplo para otros miembros de la cohorte de desarrolladores.

La «triple amenaza» del software: ¿forma, función, parecido a una fortaleza?

Una «triple amenaza» en la industria del entretenimiento es una persona que puede actuar, bailar y cantar con un nivel de habilidad igualmente alto. Son las personas temidas y envidiadas en todas las audiciones, y son los unicornios de un espacio ya de por sí competitivo. Cada sector tiene su propia versión de un ejemplo excepcional y de primer nivel de sus productos y servicios, y el software no es la excepción.

Si pensamos en tres elementos clave en las aplicaciones que son difíciles de equilibrar con una calidad igual (alta), podrían ser la funcionalidad y la elegancia, además de una seguridad férrea y la rentabilidad si tenemos en cuenta la velocidad de entrega requerida. Ahora bien, este último atributo es, sin duda, un factor determinante para la eficacia con la que se aplican las otras dos opciones, y puede ser un catalizador para que la calidad general decaiga con el tiempo.

Sin embargo, ¿es necesario que todo el software funcione como Hugh Jackman o podemos salirnos con la suya con Nicolas Cage? Pongámoslo de esta manera: si consigues meter a Wolverine en tu equipo, lo harás lo mejor que puedas.

Martin Fowler hizo la pregunta: ¿Vale la pena la alta calidad? en el desarrollo de software, concluyendo que no solo «valió la pena», sino que en realidad fue más barato con el tiempo. La mayoría de los usuarios no se van a poner a analizar minuciosamente si el código es un desastre o si la seguridad es tan importante como todo lo demás. Sin embargo, quienes utilicen las herramientas perderán un tiempo precioso rehaciendo código torpe para añadir funciones más nuevas, o revisando las partes principales del proyecto para entender lo que está pasando o, en el peor de los casos, solucionando una vulnerabilidad que el equipo de AppSec ha conseguido recuperar y ha retrasado su producción. Dedicar tiempo ahora a crear código seguro y de buena calidad ahorra muchos problemas futuros, sin mencionar el costo de desentrañar un trabajo mal ejecutado.

Los desarrolladores expertos en seguridad escriben código que conserva su visión creativa y de resolución de problemas en la entrega de funciones, y se preocupan por eliminar los problemas de seguridad comunes que los ingenieros pueden controlar en su etapa del proceso. El código seguro no es muy eficaz de forma aislada, y por eso la idea de empezar «de izquierda a izquierda» ayudará a fomentar una cultura de seguridad como algo natural para los desarrolladores, ya que les permitirá ofrecer funciones increíbles con un riesgo reducido.

Comenzar «a la izquierda de la izquierda» es fundamental para una experiencia de usuario segura.

La seguridad ha sido una consideración en la experiencia del usuario del software durante mucho tiempo, pero es evidente que el éxito ha sido desigual. Se explicaron los errores de configuración de seguridad 21% de las filtraciones de datos basadas en la nube el año pasado, con errores cometidos por aficionados, como almacenar contraseñas en texto sin formato, que provocaron graves pérdidas de productividad, ingresos y confianza de los clientes para las empresas afectadas.

Eso, y los propios usuarios pueden ser su peor enemigo cuando se trata de proteger sus propios datos. Demasiada gente siguen utilizando la palabra «contraseña» como contraseña o utilizan la misma combinación en varias cuentas confidenciales.

No conozco a ningún desarrollador que se ponga manos a la obra cuando le dicen que tiene que trabajar en una pantalla de inicio de sesión, y no es de extrañar: es un equilibrio delicado diseñar un flujo de seguridad que sea sólido y funcional y en el que los usuarios puedan navegar de una manera que tenga sentido para ellos, con la menor interrupción posible.

Si pones demasiados pasos y restricciones complejos, es posible que los usuarios se desconecten para no volver nunca (lo que sería un desastre para una nueva aplicación), lo que sería demasiado confuso y podrías terminar causando un dolor de cabeza al equipo de soporte al responder a las consultas de los usuarios que intentan acceder a sus cuentas. Si lo pones demasiado fácil, estarás fallando en lo que respecta a la seguridad.

Una experiencia de usuario segura y exitosa debe integrar una seguridad estricta en un flujo que tenga sentido, presentado de manera que no reste valor a todo lo demás que es atractivo del software. No cabe duda de que puedes cumplir el objetivo de programar una función de inicio de sesión segura, introduciendo todo tipo de requisitos complejos de contraseñas, CAPTCHA, minijefes y cuatro oleadas de zombis, pero si se trata de un desastre total que repele a los usuarios, es que no da en el blanco.

Siente las bases para la excelencia del software.

Como desarrollador, sé que la gran mayoría de nosotros nos enorgullecemos de nuestro trabajo y queremos hacer lo correcto. Los obstáculos molestos, como las limitaciones de tiempo, los cambios repentinos en el objetivo actual o las correcciones urgentes, pueden interrumpir el flujo y provocar errores, pero la cruda verdad es que muchos ingenieros de software no están preparados para el éxito.

Comenzar «a la izquierda de la izquierda» es un concepto que prioriza a los desarrolladores y requiere que las organizaciones se tomen en serio la idea de mejorar su cohorte de ingenieros. Los desarrolladores preocupados por la seguridad valen su peso en oro, y el apoyo en forma de formación, suministro de las herramientas adecuadas y la oportunidad de ser asesorados por desarrolladores más experimentados fomentará un entorno en el que el código se elabore con una mentalidad que priorice la seguridad, con la precisión y la atención al detalle necesarias para llevar el software al siguiente nivel.

¿Estás listo para encender el fuego de la codificación segura que llevas dentro? Enfréntate al desafío.

Veuillez consulter la ressource
Veuillez consulter la ressource

El código de un cierto nivel de calidad es, por definición, también seguro, pero no todo el código seguro es necesariamente de buena calidad. ¿Empezar «a la izquierda de la izquierda» es la fórmula para garantizar estándares de codificación puros y seguros?

Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
auteur
Matias Madou, Ph.D.
Publié le 10 février 2021

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y distribuido aquí.

Cuando hablo con los desarrolladores sobre seguridad, uno de mis mantras es que «el único código de calidad es el código seguro». Esto sigue siendo cierto; es posible que hayamos escapado a un desastre cuando el software vulnerable salió a la venta en la década de los 90, pero hoy no vale la pena correr el riesgo. A lo largo de los años, muchos han trabajado arduamente para inculcar en los desarrolladores una mentalidad consciente de la seguridad y, al hacerlo, es de esperar que la seguridad sea sinónimo de calidad en lo que respecta a la autoevaluación de su código.

Sin embargo, tras una reflexión (y un debate entre mis compañeros), quizás esté simplificando demasiado el concepto. Es totalmente posible crear código que sea realmente seguro, pero que muestre signos de una técnica de desarrollo incierta u otras áreas problemáticas que lo hagan menos que ideal.

Nuestra industria habla extensamente sobre la noción de «cambiar a la izquierda». En mi opinión, se trata de «empezar» por la izquierda, permitiendo que las cohortes de ingeniería compartan la responsabilidad de la seguridad (que es un aspecto de la calidad) y dándoles la posibilidad de borrar las vulnerabilidades comunes al alcance de la mano (literalmente). Sin embargo, a la luz de este dilema actual, parece que hay que ir un poco más allá.

El código de un cierto nivel de calidad es, por definición, también seguro, pero no todo el código seguro es necesariamente de buena calidad. ¿Empezar «a la izquierda de la izquierda» es la fórmula para garantizar estándares de codificación puros y seguros?

¿Qué aspecto tiene un código seguro de «mala calidad»?

Vamos a ver con lupa este fragmento de código:

Si analizamos este código desde una perspectiva de seguridad, este fragmento es seguro y no es un punto de entrada para que un atacante aproveche una vulnerabilidad de inyección SQL.

¿Es un ejemplo de código de alta calidad? La verdad es que no, lamentablemente. Un simple cambio en el argumento de int (ger) a un Cuerda El valor permite que la entrada del usuario de forma libre manipule la consulta, a diferencia de un número que no puede. Ese cambio (o copiar y pegar de forma fortuita la cadena sql desde otro lugar) crea inmediatamente un entorno en el que es posible que se produzcan vulnerabilidades en la inyección de SQL y todos los riesgos asociados a ellas:

En este caso, las medidas de seguridad tenían un alcance muy limitado, mientras que un desarrollador más minucioso (o experimentado) podría haber adoptado un enfoque diferente y haber considerado las implicaciones de una estructura argumental ineficiente. Un código de envío como este no solo es una mala práctica, sino que también es un mal ejemplo para otros miembros de la cohorte de desarrolladores.

La «triple amenaza» del software: ¿forma, función, parecido a una fortaleza?

Una «triple amenaza» en la industria del entretenimiento es una persona que puede actuar, bailar y cantar con un nivel de habilidad igualmente alto. Son las personas temidas y envidiadas en todas las audiciones, y son los unicornios de un espacio ya de por sí competitivo. Cada sector tiene su propia versión de un ejemplo excepcional y de primer nivel de sus productos y servicios, y el software no es la excepción.

Si pensamos en tres elementos clave en las aplicaciones que son difíciles de equilibrar con una calidad igual (alta), podrían ser la funcionalidad y la elegancia, además de una seguridad férrea y la rentabilidad si tenemos en cuenta la velocidad de entrega requerida. Ahora bien, este último atributo es, sin duda, un factor determinante para la eficacia con la que se aplican las otras dos opciones, y puede ser un catalizador para que la calidad general decaiga con el tiempo.

Sin embargo, ¿es necesario que todo el software funcione como Hugh Jackman o podemos salirnos con la suya con Nicolas Cage? Pongámoslo de esta manera: si consigues meter a Wolverine en tu equipo, lo harás lo mejor que puedas.

Martin Fowler hizo la pregunta: ¿Vale la pena la alta calidad? en el desarrollo de software, concluyendo que no solo «valió la pena», sino que en realidad fue más barato con el tiempo. La mayoría de los usuarios no se van a poner a analizar minuciosamente si el código es un desastre o si la seguridad es tan importante como todo lo demás. Sin embargo, quienes utilicen las herramientas perderán un tiempo precioso rehaciendo código torpe para añadir funciones más nuevas, o revisando las partes principales del proyecto para entender lo que está pasando o, en el peor de los casos, solucionando una vulnerabilidad que el equipo de AppSec ha conseguido recuperar y ha retrasado su producción. Dedicar tiempo ahora a crear código seguro y de buena calidad ahorra muchos problemas futuros, sin mencionar el costo de desentrañar un trabajo mal ejecutado.

Los desarrolladores expertos en seguridad escriben código que conserva su visión creativa y de resolución de problemas en la entrega de funciones, y se preocupan por eliminar los problemas de seguridad comunes que los ingenieros pueden controlar en su etapa del proceso. El código seguro no es muy eficaz de forma aislada, y por eso la idea de empezar «de izquierda a izquierda» ayudará a fomentar una cultura de seguridad como algo natural para los desarrolladores, ya que les permitirá ofrecer funciones increíbles con un riesgo reducido.

Comenzar «a la izquierda de la izquierda» es fundamental para una experiencia de usuario segura.

La seguridad ha sido una consideración en la experiencia del usuario del software durante mucho tiempo, pero es evidente que el éxito ha sido desigual. Se explicaron los errores de configuración de seguridad 21% de las filtraciones de datos basadas en la nube el año pasado, con errores cometidos por aficionados, como almacenar contraseñas en texto sin formato, que provocaron graves pérdidas de productividad, ingresos y confianza de los clientes para las empresas afectadas.

Eso, y los propios usuarios pueden ser su peor enemigo cuando se trata de proteger sus propios datos. Demasiada gente siguen utilizando la palabra «contraseña» como contraseña o utilizan la misma combinación en varias cuentas confidenciales.

No conozco a ningún desarrollador que se ponga manos a la obra cuando le dicen que tiene que trabajar en una pantalla de inicio de sesión, y no es de extrañar: es un equilibrio delicado diseñar un flujo de seguridad que sea sólido y funcional y en el que los usuarios puedan navegar de una manera que tenga sentido para ellos, con la menor interrupción posible.

Si pones demasiados pasos y restricciones complejos, es posible que los usuarios se desconecten para no volver nunca (lo que sería un desastre para una nueva aplicación), lo que sería demasiado confuso y podrías terminar causando un dolor de cabeza al equipo de soporte al responder a las consultas de los usuarios que intentan acceder a sus cuentas. Si lo pones demasiado fácil, estarás fallando en lo que respecta a la seguridad.

Una experiencia de usuario segura y exitosa debe integrar una seguridad estricta en un flujo que tenga sentido, presentado de manera que no reste valor a todo lo demás que es atractivo del software. No cabe duda de que puedes cumplir el objetivo de programar una función de inicio de sesión segura, introduciendo todo tipo de requisitos complejos de contraseñas, CAPTCHA, minijefes y cuatro oleadas de zombis, pero si se trata de un desastre total que repele a los usuarios, es que no da en el blanco.

Siente las bases para la excelencia del software.

Como desarrollador, sé que la gran mayoría de nosotros nos enorgullecemos de nuestro trabajo y queremos hacer lo correcto. Los obstáculos molestos, como las limitaciones de tiempo, los cambios repentinos en el objetivo actual o las correcciones urgentes, pueden interrumpir el flujo y provocar errores, pero la cruda verdad es que muchos ingenieros de software no están preparados para el éxito.

Comenzar «a la izquierda de la izquierda» es un concepto que prioriza a los desarrolladores y requiere que las organizaciones se tomen en serio la idea de mejorar su cohorte de ingenieros. Los desarrolladores preocupados por la seguridad valen su peso en oro, y el apoyo en forma de formación, suministro de las herramientas adecuadas y la oportunidad de ser asesorados por desarrolladores más experimentados fomentará un entorno en el que el código se elabore con una mentalidad que priorice la seguridad, con la precisión y la atención al detalle necesarias para llevar el software al siguiente nivel.

¿Estás listo para encender el fuego de la codificación segura que llevas dentro? Enfréntate al desafío.

Veuillez consulter la ressource
Veuillez consulter la ressource

Veuillez remplir le formulaire suivant pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation pour vous envoyer des informations sur nos produits ou sur des sujets liés au codage sécurisé. Nous traiterons toujours vos données personnelles avec le plus grand soin et ne les vendrons jamais à d'autres entreprises à des fins de marketing.

Envoyer
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer les cookies « d'analyse ». N'hésitez pas à les désactiver à nouveau une fois que vous avez terminé.

Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y distribuido aquí.

Cuando hablo con los desarrolladores sobre seguridad, uno de mis mantras es que «el único código de calidad es el código seguro». Esto sigue siendo cierto; es posible que hayamos escapado a un desastre cuando el software vulnerable salió a la venta en la década de los 90, pero hoy no vale la pena correr el riesgo. A lo largo de los años, muchos han trabajado arduamente para inculcar en los desarrolladores una mentalidad consciente de la seguridad y, al hacerlo, es de esperar que la seguridad sea sinónimo de calidad en lo que respecta a la autoevaluación de su código.

Sin embargo, tras una reflexión (y un debate entre mis compañeros), quizás esté simplificando demasiado el concepto. Es totalmente posible crear código que sea realmente seguro, pero que muestre signos de una técnica de desarrollo incierta u otras áreas problemáticas que lo hagan menos que ideal.

Nuestra industria habla extensamente sobre la noción de «cambiar a la izquierda». En mi opinión, se trata de «empezar» por la izquierda, permitiendo que las cohortes de ingeniería compartan la responsabilidad de la seguridad (que es un aspecto de la calidad) y dándoles la posibilidad de borrar las vulnerabilidades comunes al alcance de la mano (literalmente). Sin embargo, a la luz de este dilema actual, parece que hay que ir un poco más allá.

El código de un cierto nivel de calidad es, por definición, también seguro, pero no todo el código seguro es necesariamente de buena calidad. ¿Empezar «a la izquierda de la izquierda» es la fórmula para garantizar estándares de codificación puros y seguros?

¿Qué aspecto tiene un código seguro de «mala calidad»?

Vamos a ver con lupa este fragmento de código:

Si analizamos este código desde una perspectiva de seguridad, este fragmento es seguro y no es un punto de entrada para que un atacante aproveche una vulnerabilidad de inyección SQL.

¿Es un ejemplo de código de alta calidad? La verdad es que no, lamentablemente. Un simple cambio en el argumento de int (ger) a un Cuerda El valor permite que la entrada del usuario de forma libre manipule la consulta, a diferencia de un número que no puede. Ese cambio (o copiar y pegar de forma fortuita la cadena sql desde otro lugar) crea inmediatamente un entorno en el que es posible que se produzcan vulnerabilidades en la inyección de SQL y todos los riesgos asociados a ellas:

En este caso, las medidas de seguridad tenían un alcance muy limitado, mientras que un desarrollador más minucioso (o experimentado) podría haber adoptado un enfoque diferente y haber considerado las implicaciones de una estructura argumental ineficiente. Un código de envío como este no solo es una mala práctica, sino que también es un mal ejemplo para otros miembros de la cohorte de desarrolladores.

La «triple amenaza» del software: ¿forma, función, parecido a una fortaleza?

Una «triple amenaza» en la industria del entretenimiento es una persona que puede actuar, bailar y cantar con un nivel de habilidad igualmente alto. Son las personas temidas y envidiadas en todas las audiciones, y son los unicornios de un espacio ya de por sí competitivo. Cada sector tiene su propia versión de un ejemplo excepcional y de primer nivel de sus productos y servicios, y el software no es la excepción.

Si pensamos en tres elementos clave en las aplicaciones que son difíciles de equilibrar con una calidad igual (alta), podrían ser la funcionalidad y la elegancia, además de una seguridad férrea y la rentabilidad si tenemos en cuenta la velocidad de entrega requerida. Ahora bien, este último atributo es, sin duda, un factor determinante para la eficacia con la que se aplican las otras dos opciones, y puede ser un catalizador para que la calidad general decaiga con el tiempo.

Sin embargo, ¿es necesario que todo el software funcione como Hugh Jackman o podemos salirnos con la suya con Nicolas Cage? Pongámoslo de esta manera: si consigues meter a Wolverine en tu equipo, lo harás lo mejor que puedas.

Martin Fowler hizo la pregunta: ¿Vale la pena la alta calidad? en el desarrollo de software, concluyendo que no solo «valió la pena», sino que en realidad fue más barato con el tiempo. La mayoría de los usuarios no se van a poner a analizar minuciosamente si el código es un desastre o si la seguridad es tan importante como todo lo demás. Sin embargo, quienes utilicen las herramientas perderán un tiempo precioso rehaciendo código torpe para añadir funciones más nuevas, o revisando las partes principales del proyecto para entender lo que está pasando o, en el peor de los casos, solucionando una vulnerabilidad que el equipo de AppSec ha conseguido recuperar y ha retrasado su producción. Dedicar tiempo ahora a crear código seguro y de buena calidad ahorra muchos problemas futuros, sin mencionar el costo de desentrañar un trabajo mal ejecutado.

Los desarrolladores expertos en seguridad escriben código que conserva su visión creativa y de resolución de problemas en la entrega de funciones, y se preocupan por eliminar los problemas de seguridad comunes que los ingenieros pueden controlar en su etapa del proceso. El código seguro no es muy eficaz de forma aislada, y por eso la idea de empezar «de izquierda a izquierda» ayudará a fomentar una cultura de seguridad como algo natural para los desarrolladores, ya que les permitirá ofrecer funciones increíbles con un riesgo reducido.

Comenzar «a la izquierda de la izquierda» es fundamental para una experiencia de usuario segura.

La seguridad ha sido una consideración en la experiencia del usuario del software durante mucho tiempo, pero es evidente que el éxito ha sido desigual. Se explicaron los errores de configuración de seguridad 21% de las filtraciones de datos basadas en la nube el año pasado, con errores cometidos por aficionados, como almacenar contraseñas en texto sin formato, que provocaron graves pérdidas de productividad, ingresos y confianza de los clientes para las empresas afectadas.

Eso, y los propios usuarios pueden ser su peor enemigo cuando se trata de proteger sus propios datos. Demasiada gente siguen utilizando la palabra «contraseña» como contraseña o utilizan la misma combinación en varias cuentas confidenciales.

No conozco a ningún desarrollador que se ponga manos a la obra cuando le dicen que tiene que trabajar en una pantalla de inicio de sesión, y no es de extrañar: es un equilibrio delicado diseñar un flujo de seguridad que sea sólido y funcional y en el que los usuarios puedan navegar de una manera que tenga sentido para ellos, con la menor interrupción posible.

Si pones demasiados pasos y restricciones complejos, es posible que los usuarios se desconecten para no volver nunca (lo que sería un desastre para una nueva aplicación), lo que sería demasiado confuso y podrías terminar causando un dolor de cabeza al equipo de soporte al responder a las consultas de los usuarios que intentan acceder a sus cuentas. Si lo pones demasiado fácil, estarás fallando en lo que respecta a la seguridad.

Una experiencia de usuario segura y exitosa debe integrar una seguridad estricta en un flujo que tenga sentido, presentado de manera que no reste valor a todo lo demás que es atractivo del software. No cabe duda de que puedes cumplir el objetivo de programar una función de inicio de sesión segura, introduciendo todo tipo de requisitos complejos de contraseñas, CAPTCHA, minijefes y cuatro oleadas de zombis, pero si se trata de un desastre total que repele a los usuarios, es que no da en el blanco.

Siente las bases para la excelencia del software.

Como desarrollador, sé que la gran mayoría de nosotros nos enorgullecemos de nuestro trabajo y queremos hacer lo correcto. Los obstáculos molestos, como las limitaciones de tiempo, los cambios repentinos en el objetivo actual o las correcciones urgentes, pueden interrumpir el flujo y provocar errores, pero la cruda verdad es que muchos ingenieros de software no están preparados para el éxito.

Comenzar «a la izquierda de la izquierda» es un concepto que prioriza a los desarrolladores y requiere que las organizaciones se tomen en serio la idea de mejorar su cohorte de ingenieros. Los desarrolladores preocupados por la seguridad valen su peso en oro, y el apoyo en forma de formación, suministro de las herramientas adecuadas y la oportunidad de ser asesorados por desarrolladores más experimentados fomentará un entorno en el que el código se elabore con una mentalidad que priorice la seguridad, con la precisión y la atención al detalle necesarias para llevar el software al siguiente nivel.

¿Estás listo para encender el fuego de la codificación segura que llevas dentro? Enfréntate al desafío.

Veuillez consulter le webinaire
Commencer
En savoir plus

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez consulter le rapportVeuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter la ressource
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
auteur
Matias Madou, Ph.D.
Publié le 10 février 2021

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y distribuido aquí.

Cuando hablo con los desarrolladores sobre seguridad, uno de mis mantras es que «el único código de calidad es el código seguro». Esto sigue siendo cierto; es posible que hayamos escapado a un desastre cuando el software vulnerable salió a la venta en la década de los 90, pero hoy no vale la pena correr el riesgo. A lo largo de los años, muchos han trabajado arduamente para inculcar en los desarrolladores una mentalidad consciente de la seguridad y, al hacerlo, es de esperar que la seguridad sea sinónimo de calidad en lo que respecta a la autoevaluación de su código.

Sin embargo, tras una reflexión (y un debate entre mis compañeros), quizás esté simplificando demasiado el concepto. Es totalmente posible crear código que sea realmente seguro, pero que muestre signos de una técnica de desarrollo incierta u otras áreas problemáticas que lo hagan menos que ideal.

Nuestra industria habla extensamente sobre la noción de «cambiar a la izquierda». En mi opinión, se trata de «empezar» por la izquierda, permitiendo que las cohortes de ingeniería compartan la responsabilidad de la seguridad (que es un aspecto de la calidad) y dándoles la posibilidad de borrar las vulnerabilidades comunes al alcance de la mano (literalmente). Sin embargo, a la luz de este dilema actual, parece que hay que ir un poco más allá.

El código de un cierto nivel de calidad es, por definición, también seguro, pero no todo el código seguro es necesariamente de buena calidad. ¿Empezar «a la izquierda de la izquierda» es la fórmula para garantizar estándares de codificación puros y seguros?

¿Qué aspecto tiene un código seguro de «mala calidad»?

Vamos a ver con lupa este fragmento de código:

Si analizamos este código desde una perspectiva de seguridad, este fragmento es seguro y no es un punto de entrada para que un atacante aproveche una vulnerabilidad de inyección SQL.

¿Es un ejemplo de código de alta calidad? La verdad es que no, lamentablemente. Un simple cambio en el argumento de int (ger) a un Cuerda El valor permite que la entrada del usuario de forma libre manipule la consulta, a diferencia de un número que no puede. Ese cambio (o copiar y pegar de forma fortuita la cadena sql desde otro lugar) crea inmediatamente un entorno en el que es posible que se produzcan vulnerabilidades en la inyección de SQL y todos los riesgos asociados a ellas:

En este caso, las medidas de seguridad tenían un alcance muy limitado, mientras que un desarrollador más minucioso (o experimentado) podría haber adoptado un enfoque diferente y haber considerado las implicaciones de una estructura argumental ineficiente. Un código de envío como este no solo es una mala práctica, sino que también es un mal ejemplo para otros miembros de la cohorte de desarrolladores.

La «triple amenaza» del software: ¿forma, función, parecido a una fortaleza?

Una «triple amenaza» en la industria del entretenimiento es una persona que puede actuar, bailar y cantar con un nivel de habilidad igualmente alto. Son las personas temidas y envidiadas en todas las audiciones, y son los unicornios de un espacio ya de por sí competitivo. Cada sector tiene su propia versión de un ejemplo excepcional y de primer nivel de sus productos y servicios, y el software no es la excepción.

Si pensamos en tres elementos clave en las aplicaciones que son difíciles de equilibrar con una calidad igual (alta), podrían ser la funcionalidad y la elegancia, además de una seguridad férrea y la rentabilidad si tenemos en cuenta la velocidad de entrega requerida. Ahora bien, este último atributo es, sin duda, un factor determinante para la eficacia con la que se aplican las otras dos opciones, y puede ser un catalizador para que la calidad general decaiga con el tiempo.

Sin embargo, ¿es necesario que todo el software funcione como Hugh Jackman o podemos salirnos con la suya con Nicolas Cage? Pongámoslo de esta manera: si consigues meter a Wolverine en tu equipo, lo harás lo mejor que puedas.

Martin Fowler hizo la pregunta: ¿Vale la pena la alta calidad? en el desarrollo de software, concluyendo que no solo «valió la pena», sino que en realidad fue más barato con el tiempo. La mayoría de los usuarios no se van a poner a analizar minuciosamente si el código es un desastre o si la seguridad es tan importante como todo lo demás. Sin embargo, quienes utilicen las herramientas perderán un tiempo precioso rehaciendo código torpe para añadir funciones más nuevas, o revisando las partes principales del proyecto para entender lo que está pasando o, en el peor de los casos, solucionando una vulnerabilidad que el equipo de AppSec ha conseguido recuperar y ha retrasado su producción. Dedicar tiempo ahora a crear código seguro y de buena calidad ahorra muchos problemas futuros, sin mencionar el costo de desentrañar un trabajo mal ejecutado.

Los desarrolladores expertos en seguridad escriben código que conserva su visión creativa y de resolución de problemas en la entrega de funciones, y se preocupan por eliminar los problemas de seguridad comunes que los ingenieros pueden controlar en su etapa del proceso. El código seguro no es muy eficaz de forma aislada, y por eso la idea de empezar «de izquierda a izquierda» ayudará a fomentar una cultura de seguridad como algo natural para los desarrolladores, ya que les permitirá ofrecer funciones increíbles con un riesgo reducido.

Comenzar «a la izquierda de la izquierda» es fundamental para una experiencia de usuario segura.

La seguridad ha sido una consideración en la experiencia del usuario del software durante mucho tiempo, pero es evidente que el éxito ha sido desigual. Se explicaron los errores de configuración de seguridad 21% de las filtraciones de datos basadas en la nube el año pasado, con errores cometidos por aficionados, como almacenar contraseñas en texto sin formato, que provocaron graves pérdidas de productividad, ingresos y confianza de los clientes para las empresas afectadas.

Eso, y los propios usuarios pueden ser su peor enemigo cuando se trata de proteger sus propios datos. Demasiada gente siguen utilizando la palabra «contraseña» como contraseña o utilizan la misma combinación en varias cuentas confidenciales.

No conozco a ningún desarrollador que se ponga manos a la obra cuando le dicen que tiene que trabajar en una pantalla de inicio de sesión, y no es de extrañar: es un equilibrio delicado diseñar un flujo de seguridad que sea sólido y funcional y en el que los usuarios puedan navegar de una manera que tenga sentido para ellos, con la menor interrupción posible.

Si pones demasiados pasos y restricciones complejos, es posible que los usuarios se desconecten para no volver nunca (lo que sería un desastre para una nueva aplicación), lo que sería demasiado confuso y podrías terminar causando un dolor de cabeza al equipo de soporte al responder a las consultas de los usuarios que intentan acceder a sus cuentas. Si lo pones demasiado fácil, estarás fallando en lo que respecta a la seguridad.

Una experiencia de usuario segura y exitosa debe integrar una seguridad estricta en un flujo que tenga sentido, presentado de manera que no reste valor a todo lo demás que es atractivo del software. No cabe duda de que puedes cumplir el objetivo de programar una función de inicio de sesión segura, introduciendo todo tipo de requisitos complejos de contraseñas, CAPTCHA, minijefes y cuatro oleadas de zombis, pero si se trata de un desastre total que repele a los usuarios, es que no da en el blanco.

Siente las bases para la excelencia del software.

Como desarrollador, sé que la gran mayoría de nosotros nos enorgullecemos de nuestro trabajo y queremos hacer lo correcto. Los obstáculos molestos, como las limitaciones de tiempo, los cambios repentinos en el objetivo actual o las correcciones urgentes, pueden interrumpir el flujo y provocar errores, pero la cruda verdad es que muchos ingenieros de software no están preparados para el éxito.

Comenzar «a la izquierda de la izquierda» es un concepto que prioriza a los desarrolladores y requiere que las organizaciones se tomen en serio la idea de mejorar su cohorte de ingenieros. Los desarrolladores preocupados por la seguridad valen su peso en oro, y el apoyo en forma de formación, suministro de las herramientas adecuadas y la oportunidad de ser asesorados por desarrolladores más experimentados fomentará un entorno en el que el código se elabore con una mentalidad que priorice la seguridad, con la precisión y la atención al detalle necesarias para llevar el software al siguiente nivel.

¿Estás listo para encender el fuego de la codificación segura que llevas dentro? Enfréntate al desafío.

Table des matières

Télécharger le PDF
Veuillez consulter la ressource
Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour débuter

Plus de publications
Centre de ressources

Ressources pour débuter

Plus de publications