Experiencia en Seguridad de la Cadena de Suministro

Rate this content
Bookmark

Los desarrolladores están inundados de herramientas y preocupaciones proporcionadas por los proveedores de seguridad. Desde investigadores que encuentran ataques teóricos, hasta el tiempo invertido en lidiar con actualizaciones de paquetes, hasta simples accidentes que causan tiempo de inactividad, todo esto existe. Tomar en cuenta algo de historia para comprender las categorías básicas de ataques y qué tan prácticos son para explotar o incluso qué tan comunes son, brindará cierta seguridad y orientación sobre dónde puede enfocar su energía limitada un desarrollador y obtener el máximo provecho de sus esfuerzos.

FAQ

La cadena de suministro en el desarrollo de software se refiere a una red de diferentes personas, herramientas y dependencias que se unen para crear una aplicación de software. Esta red puede ser extensa, especialmente en lenguajes como JavaScript, donde una dependencia promedio puede involucrar aproximadamente 80 dependencias adicionales.

Los proveedores de seguridad a menudo quieren que los desarrolladores sientan pánico para que perciban todo tipo de amenazas como vulnerabilidades que podrían afectar sus aplicaciones. Esto es parte de una estrategia para que los desarrolladores inviertan en sus productos y servicios, enfocándose en la protección contra amenazas a veces poco probables o de impacto menor.

Es importante no sentirse abrumado por la cantidad de dependencias, sino enfocarse en la calidad y el impacto de cada una. Evaluar cuidadosamente qué dependencias son realmente riesgosas y cuáles tienen poca probabilidad de causar daño puede ayudarte a tomar decisiones más informadas sobre la seguridad de tu aplicación.

Los proveedores de seguridad pueden ser proactivos al intentar evitar que instales dependencias peligrosas o informarte sobre los riesgos potenciales de ciertas instalaciones. De manera reactiva, pueden ofrecer soluciones y pasos a seguir después de que se haya descubierto una vulnerabilidad, ayudando a mitigar el daño y prevenir futuros incidentes.

Es crucial preguntar sobre escenarios prácticos, cómo sus herramientas podrían manejar eventos conocidos y qué tipo de respuesta ofrecen ante incidentes de seguridad. También es importante entender cómo sus servicios pueden impactar el funcionamiento de tus máquinas de producción y qué soporte ofrecen mientras se resuelve un problema.

Para asegurarte de que una herramienta de seguridad sea efectiva, debes discutir escenarios específicos relacionados con tu aplicación y su cadena de suministro. Verificar que el proveedor tenga respuestas concretas sobre cómo su herramienta manejaría esos escenarios te ayudará a decidir si es la adecuada para tus necesidades.

Bradley Farias
Bradley Farias
8 min
17 Apr, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La seguridad de la cadena de suministro es importante en el desarrollo de software y es crucial evaluar el impacto real de las amenazas. Al tratar con proveedores de seguridad, haga preguntas prácticas sobre vulnerabilidades e impactos. Enfoque en la relación señal-ruido de calidad al considerar el número de dependencias. Las conversaciones continuas con los proveedores son importantes para abordar inquietudes. Manténgase informado y tome decisiones informadas.

Available in English: Supply Chain Security Experience

1. Introducción a la Seguridad de la Cadena de Suministro

Short description:

Hola, soy Bradley Farias. Trabajo en Socket en Seguridad de la Cadena de Suministro. La cadena de suministro se refiere a la red de personas, herramientas y dependencias que se unen para construir software. Los proveedores de seguridad a menudo exageran los riesgos e intentan que entres en pánico. Es importante hacer preguntas y evaluar el impacto real de las amenazas. Al considerar la seguridad, enfócate en tu aplicación, sus dependencias y los consumidores. En Socket, priorizamos defendernos contra las dependencias y los riesgos que introducen. Comprender lo que ofrece el proveedor de seguridad y adaptarlo a tus necesidades es crucial.

Trabajo en Socket en Seguridad de la Cadena de Suministro, y quiero hablarles un poco sobre mi experiencia en hacerlo y cómo no sentirse abrumado por todas estas personas de seguridad que intentan hablar contigo sobre sus maravillosos productos y todo el caos que tenemos.

Entonces, la cadena de suministro simplemente significa una red de diferentes personas, diferentes herramientas, diferentes dependencias, que se unen para crear tu aplicación de software. La gente quiere exagerar esto, oh, esta red se está expandiendo cada vez más y cosas así. Y es grande, especialmente en JavaScript. La dependencia promedio puede tener alrededor de 80 dependencias, eso es lo que estamos viendo en el trabajo hoy en día. Así que cada vez que agregas una dependencia en tu package.json para node, en realidad estás agregando alrededor de 81 en promedio. Porque cada dependencia puede tener otra dependencia. Lo cual es un poco aterrador de pensar, pero es la realidad de la naturaleza de construir software en estos días. Todos estamos trabajando juntos. Y eso significa que nuestra cadena de suministro es muy grande.

Esto hace que las personas de seguridad y los proveedores de seguridad quieran que entres en pánico. Quieren que pienses que todo tipo de cosas son vulnerables. Cualquier tipo de ataque, en cualquier lugar, incluso el tipo más mínimo de ataque, es algo contra lo que debes estar alerta. Debes gastar miles y miles de tu dinero solo para defenderte de algo cuando en realidad si haces algunas preguntas. ¿Quién puede realizar realmente el ataque? ¿Qué puede hacer el ataque? ¿Dónde puede realizarse realmente el ataque? Y esas cosas. Puedes darte cuenta de que, vale, podemos invertir en estas cosas que el proveedor de seguridad ha dicho que son las cosas más importantes, pero el impacto de ellas es muy pequeño. Y así puede ser el caso de que todas estas amenazas de seguridad que se están identificando, que se están mostrando por estos proveedores de seguridad, sean imprácticas o simplemente no hagan nada a lo que tienes.

Entonces, cuando pienses en esto, debes pensar en tu aplicación, en las dependencias de tu aplicación y en los consumidores de tu aplicación. ¿Y para quién está haciendo algo realmente el proveedor de seguridad? ¿Están evitando que los consumidores hagan algo malo en tu aplicación? ¿Están evitando que las dependencias expongan peligros para tu aplicación? En nuestro trabajo en Socket, nos enfocamos principalmente en tus dependencias. Tenemos un alto nivel de confianza en tu aplicación. Y eso no quiere decir que sea lo único contra lo que nos defendemos, pero muchas veces, cuando trabajas con dependencias, no lees su código fuente. No sabes qué sucede cuando actualizas tus dependencias. Podrían agregar una nueva dependencia, y cuando esa dependencia se actualice, agregar una nueva dependencia podría introducir una puerta trasera. Podría introducir un script problemático que se ejecute en tu máquina de desarrollo, en tu servidor de compilación y cosas así. Gran parte de esto se trata de tratar de entender qué está proporcionando el proveedor de seguridad para ti. Para qué está tratando de adaptar su experiencia. Podrían ser informativos. Están tratando de decirte que esta cosa que instalaste tiene 80 dependencias dentro de ella. No estás instalando solo una cuando la agregas a tu package JSON.

2. Haciendo las Preguntas Correctas a los Proveedores de Seguridad

Short description:

Debes hacer preguntas prácticas a los proveedores de seguridad sobre vulnerabilidades, escenarios e impactos. No te sientas abrumado por la cantidad de dependencias; enfócate en la relación calidad-señal y ruido. Asegúrate de que los proveedores tengan respuestas para incidentes y medidas preventivas. Mantén conversaciones continuas con los proveedores para abordar inquietudes. El tiempo de demostración es limitado, pero mantente informado y toma decisiones informadas.

Pueden ser proactivos. Podrían intentar evitar que instales algo. Oh, esta instalación hará que tengas un script de instalación. El script de instalación parece un poco aterrador. Retrocedamos.

Así que podrían ser proactivos en cuanto a la security, o podrían ser reactivos. Oh, vimos que ocurrió esta vulnerabilidad. Estos son los pasos que podrías seguir para identificar qué sucedió. ¿Qué fue vulnerable y qué data se vio afectada por ello? Debes hacer estas preguntas cuando hables con los proveedores de security. Y preguntar sobre escenarios, escenarios prácticos.

Figure.js, Event Stream, Lettpad, todos estos son muy famosos. Tengo muchas esperanzas de que cada proveedor de security con el que hables tenga al menos alguna respuesta básica sobre lo que ocurriría al usar su herramienta, si su herramienta incluso afecta esos escenarios. Sobre estos eventos se han escrito artículos académicos, están en artículos de Wikipedia y cosas así. O cualquier escenario teórico que se te ocurra.

Pero muchos de estos se reducen a un famoso xkcd. Una persona aleatoria está oculta dentro de tus dependencias. No sabes quién es esta persona aleatoria. Está tan profundamente enterrada allí, su dependencia está tan profundamente enterrada allí que cuando tienen un problema, cuando introducen scripts maliciosos en tu código, es posible que no puedas verlo. Y estas herramientas intentan exponer eso. Y parece abrumador.

A menudo, cuando tienes cientos y cientos de dependencias, es posible que solo tengas algunas que sean riesgosas. Así que no te sientas abrumado por los números. Obtén relaciones calidad-señal y ruido para poder tomar una decisión informada. Y el impacto. Cuando hables con estos proveedores, es posible que te muestren una gran demostración, pero definitivamente necesitan tener respuestas sobre qué sucede si hay un incidente. ¿Va a afectar tu máquina de producción? ¿Va a causar problemas para tu negocio? ¿Y cuánto esfuerzo requerirá para que un desarrollador, mientras espera una solución, mantenga las máquinas de producción funcionando? ¿Qué puedes hacer después? Lo has solucionado, pero ¿hay algo que la herramienta pueda hacer para prevenir el próximo incidente? Y necesitas tener esa conversación repetidamente. Y esperemos que los proveedores tengan una respuesta para ti. Eso es todo. No te sientas abrumado. Todos están tratando de mostrar el valor de su producto lo más rápido posible porque tenemos un tiempo muy corto cuando estamos demostrando cosas. Sí, todo estará bien. De acuerdo.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
¿Sabes qué está pasando realmente en tu carpeta node_modules? Los ataques a la cadena de suministro de software han explotado en los últimos 12 meses y solo están acelerándose en 2022 y más allá. Profundizaremos en ejemplos de recientes ataques a la cadena de suministro y qué pasos concretos puedes tomar para proteger a tu equipo de esta amenaza emergente.
Puedes consultar las diapositivas de la charla de Feross aquí.
El estado de la autenticación sin contraseña en la web
JSNation 2023JSNation 2023
30 min
El estado de la autenticación sin contraseña en la web
¿Podemos deshacernos de las contraseñas ya? Son una mala experiencia de usuario y los usuarios son notoriamente malos con ellas. El advenimiento de WebAuthn ha acercado al mundo sin contraseñas, pero ¿dónde nos encontramos realmente?
En esta charla exploraremos la experiencia actual del usuario de WebAuthn y los requisitos que un usuario debe cumplir para autenticarse sin contraseña. También exploraremos las alternativas y salvaguardias que podemos utilizar para mejorar la experiencia de las contraseñas y hacerla más segura. Al final de la sesión, tendrás una visión de cómo podría ser la autenticación en el futuro y un plan para construir la mejor experiencia de autenticación hoy en día.
5 Formas en las que Podrías Haber Hackeado Node.js
JSNation 2023JSNation 2023
22 min
5 Formas en las que Podrías Haber Hackeado Node.js
Top Content
Todos los lenguajes son o han sido vulnerables a algún tipo de amenaza. Soy parte del equipo de Seguridad de Node.js y durante el año 2022, hemos realizado muchas Liberaciones de Seguridad y algunas de ellas fueron realmente difíciles de pensar.
¿Sabías que puedes ganar dinero encontrando vulnerabilidades críticas en Node.js? En esta charla, te mostraré 5 formas en las que podrías haber hackeado Node.js y cómo el equipo de Node.js maneja las vulnerabilidades.
Permíteme mostrarte cómo las aplicaciones de React son hackeadas en el mundo real
React Advanced Conference 2021React Advanced Conference 2021
22 min
Permíteme mostrarte cómo las aplicaciones de React son hackeadas en el mundo real
Top Content
Los marcos de trabajo frontend modernos como React están bien considerados en su diseño de seguridad de aplicaciones y eso es genial. Sin embargo, todavía hay mucho espacio para que los desarrolladores cometan errores y utilicen APIs inseguras, componentes vulnerables, o en general hagan lo incorrecto que convierte la entrada del usuario en una vulnerabilidad de Cross-site Scripting (XSS). Permíteme mostrarte cómo las aplicaciones de React son hackeadas en el mundo real.
Cómo los Aplicaciones de React son Hackeadas en el Mundo Real
React Summit 2022React Summit 2022
7 min
Cómo los Aplicaciones de React son Hackeadas en el Mundo Real
React tiene un gran estándar de seguridad por defecto, pero si no prestas atención a los detalles, podrías ser víctima de algunas de las APIs de escape, o incluso de pasar props de forma insegura a los componentes. Te enseñaré cómo evitar estos problemas.
Política de Seguridad de Contenido con Next.js: Mejorando la Seguridad de tu Sitio Web
React Summit US 2023React Summit US 2023
9 min
Política de Seguridad de Contenido con Next.js: Mejorando la Seguridad de tu Sitio Web
En esta charla, exploraremos la poderosa característica de seguridad de la Política de Seguridad de Contenido (CSP) y cómo se puede implementar en Next.js para reforzar las defensas de tu sitio web contra ataques web comunes como Cross-Site Scripting (XSS) e inyección de datos. Cubriremos los conceptos básicos de CSP, sus beneficios y las mejores prácticas para implementarlo en Next.js.
Además, compartiremos algunas herramientas para evaluar y probar tu política. Al final de esta charla, tendrás una sólida comprensión de cómo mejorar la seguridad de tu sitio web con CSP y proteger a tus usuarios de las siempre presentes amenazas de la web moderna.

Workshops on related topic

De 0 a Autenticación en una hora con ReactJS
React Summit 2023React Summit 2023
56 min
De 0 a Autenticación en una hora con ReactJS
WorkshopFree
Kevin Gao
Kevin Gao
La autenticación sin contraseña puede parecer compleja, pero es simple de agregar a cualquier aplicación utilizando la herramienta adecuada. Hay múltiples alternativas que son mucho mejores que las contraseñas para identificar y autenticar a tus usuarios, incluyendo SSO, SAML, OAuth, Magic Links, One-Time Passwords y Authenticator Apps.
Mientras abordamos los aspectos de seguridad y evitamos errores comunes, mejoraremos una aplicación JS de pila completa (backend Node.js + frontend React) para autenticar a los usuarios con OAuth (inicio de sesión social) y One Time Passwords (correo electrónico), incluyendo:- Autenticación de usuarios - Gestión de interacciones de usuarios, devolviendo JWTs de sesión / actualización- Gestión y validación de sesiones - Almacenamiento seguro de la sesión para solicitudes de cliente posteriores, validación / actualización de sesiones- Autorización básica - extracción y validación de reclamaciones del token JWT de sesión y manejo de autorización en flujos del backend
Al final del masterclass, también exploraremos otros enfoques de implementación de autenticación con Descope, utilizando SDKs de frontend o backend.
Principales Diez Vulnerabilidades de Seguridad OWASP en Node.js
JSNation 2024JSNation 2024
97 min
Principales Diez Vulnerabilidades de Seguridad OWASP en Node.js
Workshop
Marco Ippolito
Marco Ippolito
En este masterclass, cubriremos las diez vulnerabilidades más comunes y riesgos de seguridad críticos identificados por OWASP, que es una autoridad confiable en Seguridad de Aplicaciones Web.Durante el masterclass, aprenderás cómo prevenir estas vulnerabilidades y desarrollar la capacidad de reconocerlas en aplicaciones web.El masterclass incluye 10 desafíos de código que representan cada una de las vulnerabilidades más comunes de OWASP. Se proporcionarán pistas para ayudar a resolver las vulnerabilidades y pasar las pruebas.El instructor también proporcionará explicaciones detalladas, diapositivas y ejemplos de la vida real en Node.js para ayudar a comprender mejor los problemas. Además, obtendrás información de un Mantenedor de Node.js que compartirá cómo gestionan la seguridad en un proyecto grande.Es adecuado para desarrolladores de Node.js de todos los niveles de habilidad, desde principiantes hasta expertos, se requiere un conocimiento general de aplicaciones web y JavaScript.
Tabla de contenidos:- Control de Acceso Roto- Fallas Criptográficas- Inyección- Diseño Inseguro- Configuración de Seguridad Incorrecta- Componentes Vulnerables y Obsoletos- Fallas de Identificación y Autenticación- Fallas de Integridad de Software y Datos- Fallas de Registro y Monitoreo de Seguridad- Falsificación de Solicitudes del Lado del Servidor
Encontrar, Hackear y solucionar las vulnerabilidades de NodeJS con Snyk
JSNation 2022JSNation 2022
99 min
Encontrar, Hackear y solucionar las vulnerabilidades de NodeJS con Snyk
WorkshopFree
Matthew Salmon
Matthew Salmon
npm y seguridad, ¿cuánto sabes sobre tus dependencias?Hack-along, hacking en vivo de una aplicación Node vulnerable https://github.com/snyk-labs/nodejs-goof, Vulnerabilidades tanto de código abierto como de código escrito. Se anima a descargar la aplicación y hackear junto con nosotros.Corrigiendo los problemas y una introducción a Snyk con una demostración.Preguntas abiertas.
Aporta Calidad y Seguridad al pipeline de CI/CD
DevOps.js Conf 2022DevOps.js Conf 2022
76 min
Aporta Calidad y Seguridad al pipeline de CI/CD
WorkshopFree
Elena Vilchik
Elena Vilchik
En esta masterclass repasaremos todos los aspectos y etapas al integrar tu proyecto en el ecosistema de Calidad y Seguridad del Código. Tomaremos una aplicación web simple como punto de partida y crearemos un pipeline de CI que active el monitoreo de calidad del código. Realizaremos un ciclo completo de desarrollo, comenzando desde la codificación en el IDE y abriendo una Pull Request, y te mostraré cómo puedes controlar la calidad en esas etapas. Al final de la masterclass, estarás listo para habilitar esta integración en tus propios proyectos.
Autenticación sin contraseña para servidores: práctica con ASA
DevOps.js Conf 2022DevOps.js Conf 2022
32 min
Autenticación sin contraseña para servidores: práctica con ASA
WorkshopFree
E. Dunham
E. Dunham
Hoy en día, no necesitas una contraseña separada para cada sitio web en el que inicias sesión. Sin embargo, gracias a la deuda tecnológica y la tradición, muchos profesionales de DevOps todavía tienen que lidiar con una gran cantidad de claves SSH para acceder a los servidores en los que a veces necesitamos estar. Con OAuth moderno, un solo inicio de sesión y un segundo factor para demostrar tu identidad son suficientes para acceder de forma segura a todos los servicios a los que tienes autorización. ¿Y si SSHing en servidores fuera tan fácil? En este masterclass, utilizaremos la herramienta de Acceso Avanzado a Servidores de Okta (anteriormente ScaleFT) para experimentar una forma en que el sueño de enviar claves SSH como la contraseña se ha hecho realidad.
- discutiremos cómo funciona ASA y cuándo es la herramienta adecuada para el trabajo- guiaremos el proceso de configuración de una cuenta de prueba gratuita de Okta para usar ASA, y la configuración de la puerta de enlace ASA y el servidor en servidores Linux- luego nos conectaremos por SSH a nuestros hosts con los clientes ASA sin necesidad de proporcionar una clave SSH desde nuestras laptops- revisaremos los registros de auditoría de nuestras sesiones SSH para examinar qué comandos se ejecutaron
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
TestJS Summit 2021TestJS Summit 2021
111 min
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
WorkshopFree
Oliver Moradov
Bar Hofesh
2 authors
Como desarrollador, necesitas entregar rápido y simplemente no tienes tiempo para pensar constantemente en seguridad. Aún así, si algo sale mal, es tu trabajo arreglarlo, pero las pruebas de seguridad bloquean tu automatización, crean cuellos de botella y solo retrasan las versiones... pero no tiene por qué ser así...

El escáner de seguridad de NeuraLegion, enfocado en los desarrolladores, Dynamic Application Security Testing (DAST), permite a los desarrolladores detectar, priorizar y remediar problemas de seguridad de manera TEMPRANA, en cada confirmación, sin falsos positivos/alertas, sin ralentizarte.

¡Únete a esta masterclass para aprender diferentes formas en que los desarrolladores pueden acceder a Nexploit y comenzar a escanear sin salir de la terminal!

Recorreremos la configuración de principio a fin, mientras configuramos un pipeline, ejecutamos pruebas de seguridad y analizamos los resultados.

Tabla de contenidos:
- Qué es realmente DAST (Dynamic Application Security Testing) enfocado en los desarrolladores y cómo funciona
- Ver dónde y cómo encaja un DAST moderno y preciso en el CI/CD
- Integrar el escáner Nexploit de NeuraLegion con GitHub Actions
- Comprender cómo se pueden probar las aplicaciones modernas, las API y los mecanismos de autenticación
- Hacer un fork de un repositorio, configurar un pipeline, ejecutar pruebas de seguridad y analizar los resultados