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.

This talk has been presented at Node Congress 2023, check out the latest edition of this JavaScript Conference.

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
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
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
Passwords are terrible and easily hacked, with most people not using password managers. The credential management API and autocomplete attribute can improve user experience and security. Two-factor authentication enhances security but regresses user experience. Passkeys offer a seamless and secure login experience, but browser support may be limited. Recommendations include detecting Passkey support and offering fallbacks to passwords and two-factor authentication.
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
The Node.js security team is responsible for addressing vulnerabilities and receives reports through HackerOne. The Talk discusses various hacking techniques, including DLL injections and DNS rebinding attacks. It also highlights Node.js security vulnerabilities such as HTTP request smuggling and certification validation. The importance of using HTTP proxy tunneling and the experimental permission model in Node.js 20 is emphasized. NearForm, a company specializing in Node.js, offers services for scaling and improving security.
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
Top Content
Lucas Estevão, a Principal UI Engineer and Technical Manager at Avenue Code, discusses how to implement Content Security Policy (CSP) with Next.js to enhance website security. He explains that CSP is a security layer that protects against cross-site scripting and data injection attacks by restricting browser functionality. The talk covers adding CSP to an XJS application using meta tags or headers, and demonstrates the use of the 'nonce' attribute for allowing inline scripts securely. Estevão also highlights the importance of using content security reports to identify and improve application security.
Permíteme mostrarte cómo las aplicaciones de React son hackeadas en el mundo real
React Advanced 2021React Advanced 2021
22 min
Permíteme mostrarte cómo las aplicaciones de React son hackeadas en el mundo real
Top Content
React's default security against XSS vulnerabilities, exploring and fixing XSS vulnerabilities in React, exploring control characters and security issues, exploring an alternative solution for JSON parsing, and exploring JSON input and third-party dependencies.
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
How to hack a RealWorld live React application in seven minutes. Tips, best practices, and pitfalls when writing React code. XSS and cross-site scripting in React. React's secure by default, but not always. The first thing to discover: adding a link to a React application. React code vulnerability: cross-site scripting with Twitter link. React doesn't sanitize or output H ref attributes. Fix attempts: detect JavaScript, use dummy hashtag, transition to lowercase. Control corrector exploit. Best practices: avoid denialist approach, sanitize user inputs. React's lack of sanitization and output encoding for user inputs. Exploring XSS vulnerabilities and the need to pretty print JSON. The React JSON pretty package and its potential XSS risks. The importance of context encoding and secure coding practices.

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