SCW 아이콘
영웅 배경, 구분선 없음
블로그

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

마티아스 마두, Ph.
게시됨 Feb 10, 2021
마지막 업데이트: 2026년 3월 6일

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.

리소스 보기
리소스 보기

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?

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시됨 Feb 10, 2021

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적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.

리소스 보기
리소스 보기

다음 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 또는 안전한 암호화 관련 주제에 대한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

보내기
scw 성공 아이콘
scw 오류 아이콘
양식을 보내려면 '분석' 쿠키를 활성화하세요. 완료 후에는 언제든지 다시 비활성화해도 됩니다.

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.

웹 세미나 보기
시작하다
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시됨 Feb 10, 2021

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적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.

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물