Encontrar, Hackear y solucionar las vulnerabilidades de NodeJS con Snyk

Rate this content
Bookmark

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.

This workshop has been presented at JSNation 2022, check out the latest edition of this JavaScript Conference.

FAQ

Snyk es una plataforma que ayuda a asegurar aplicaciones analizando código abierto y detectando vulnerabilidades. Ofrece herramientas para integrar la seguridad en el ciclo de vida del desarrollo de software, permitiendo escanear dependencias automáticamente y proporcionando soluciones y parches para vulnerabilidades encontradas.

Snyk ofrece soporte para varios lenguajes de programación incluyendo JavaScript, Java, Python, Go, C-Sharp, Ruby, entre otros. Esto permite aplicar sus herramientas de seguridad en una variedad de proyectos de software.

Snyk se puede integrar en los repositorios Git, en pipelines de CI/CD como GitHub Actions o Jenkins, y en entornos de desarrollo integrado (IDEs) como Visual Studio Code o IntelliJ. Esto permite realizar escaneos automáticos de seguridad durante el desarrollo y antes del despliegue de aplicaciones.

Un exploit maduro es una vulnerabilidad para la cual existen evidencias documentadas de que ha sido explotada maliciosamente. Un proof of concept, por otro lado, es un documento técnico que muestra cómo se puede explotar una vulnerabilidad de principio a fin, aunque no necesariamente haya sido explotada en vivo.

Snyk sugiere realizar un triaje detallado del contexto en el que se usa la dependencia vulnerable, evaluar la gravedad y la explotabilidad, y considerar la congelación de objetos o la implementación de controles adicionales como soluciones temporales. Si la vulnerabilidad sigue siendo crítica, puede ser necesario reemplazar la dependencia por una más segura y mejor mantenida.

Snyk ofrece varios recursos educativos como Snyk Learn, un entorno virtual para aprender sobre vulnerabilidades específicas, y Snyk Advisor, una herramienta que evalúa la salud de los paquetes de código abierto y sugiere alternativas más seguras. También mantienen una base de datos de vulnerabilidades accesible públicamente y publican blogs sobre temas de seguridad actuales.

Matthew Salmon
Matthew Salmon
99 min
04 Jul, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Este taller sobre Open Source y Seguridad aborda temas como el uso de paquetes de código abierto en JavaScript, los riesgos y vulnerabilidades asociados con el código abierto, y ejemplos reales de vulnerabilidades y exploits. Se enfatiza la importancia de abordar rápidamente las vulnerabilidades y se brindan ideas para solucionarlas utilizando herramientas como Snyk. El taller también discute las mejores prácticas para el mantenimiento de paquetes, la clasificación de vulnerabilidades y la integración de medidas de seguridad en los procesos de desarrollo de software.

1. Introducción a Open Source y Seguridad

Short description:

Hola, mi nombre es Matt Simon. Soy un Ingeniero de Soluciones en Snyk, por lo que trabajo con clientes de Snyk para mejorar la postura de seguridad utilizando Snyk como su herramienta elegida. La sesión de hoy se centra en el open source en general y en el uso de open source en JavaScript y NPM para mejorar tus aplicaciones y hacerlas más seguras. Comenzaremos arrancando una aplicación y hackeándola. Después, discutiremos cómo solucionar las vulnerabilidades y daremos una introducción general a Snyk. Siéntete libre de interactuar conmigo durante la presentación. Ahora, comencemos con una introducción básica al open source.

¿Es Phylicity o Toolkit? Hola, mi nombre es Matt Simon. Soy un Ingeniero de Soluciones en Snyk, por lo que trabajo con clientes de Snyk para mejorar la postura de seguridad utilizando Snyk como su herramienta elegida. En efecto, la sesión de hoy se centrará principalmente en el open source en general y en el uso de open source en JavaScript y NPM para mejorar tus aplicaciones y hacerlas más seguras al mismo tiempo. Esto será principalmente desde una perspectiva de seguridad.

Así que, sin más preámbulos, pasaré a la agenda. La primera parte del día se centrará en el open source, y luego vamos a arrancar una aplicación y también hackearla. Si estás interesado, puedes seguir y hackear la aplicación al mismo tiempo. Voy a arrancar rápidamente el repositorio. Creo que es Node.js.-goof. Lo encontraré rápidamente. Debería estar en mis recientes. Ahí está. Y lo enviaré. Si alguien está interesado, lo enviaré a través del chat de Zoom, y siéntete libre de arrancarlo al mismo tiempo. Y también puedes empezar a hackear mientras tanto. Para ejecutarlo, necesitas tener instalado MongoDB, o simplemente necesitas tener instalado Docker. Puedes hacer una u otra opción. Y voy a repasar... Hay algunos exploits de ejemplo aquí, y también hay algunos más exploits en esta carpeta con los que puedes empezar a jugar por tu cuenta. Solo me centraré en un par de ellos mientras tanto. Pero si tienes tiempo libre y estás interesado, siéntete libre de intentarlo. Así que, sin más preámbulos, continuaré con el resto. Después de hackear estos, tomaremos unos 50 minutos de descanso para relajarnos. Y luego vamos a hablar sobre qué puedes hacer para solucionar las vulnerabilidades que hemos explotado. Y luego haré una introducción básica a alto nivel de Snyk y cómo ayudamos a asegurar las cosas en tu entorno. Espero que todo tenga sentido. Por favor, siéntete libre de interrumpirme durante esta presentación. Quiero que sea interactivo. Y quiero que ustedes obtengan algo de esto en lugar de simplemente hablar en un monólogo. Así que, por favor, siéntete libre de interactuar conmigo. Escríbeme en el chat de Zoom o simplemente quita el silencio y saluda. Sí. Genial. Empezaré.

Entonces, para empezar, esto es solo una introducción básica al open source. Y obviamente, todos sabemos qué es el open source y el poder que tiene y por qué nos importa. La idea principal es que es increíble porque nos ayuda a desarrollar cosas de manera rápida y sencilla. Y también nos permite hacer las cosas de manera más estandarizada, porque podemos iterar sobre los procesos de los demás y descubrir de manera colaborativa cuál es la mejor práctica para hacer las cosas. Como ejemplo de eso, estuve buscando ayer o durante el fin de semana para comprar nuevas piezas de computadora. Y tenemos un sitio web en el Reino Unido llamado scan, que es scan.co.uk. Y esta es una plataforma para comprar piezas de computadora. Entonces, lo que me gustaría hacer como ejercicio es, incluso si no has visto este sitio web antes, si puedes quitar el silencio, solo grita qué partes de esta aplicación web están alojadas o son compatibles con el open source, solo para mencionar algunas funciones o mencionar diferentes formas en las que puedes saber automáticamente. Por ejemplo, al hacer clic en el ticket de ayuda, qué harían en realidad y cómo eso puede ser compatible con el open source. ¿Tiene sentido? Sí, claro. El carrito. Es algo que, ya sabes, todos los sitios web de comercio tienen, y es algo que está estandarizado en todos ellos. Sí, como mucho, Joe. Cuanto más miras, más te das cuenta de que, sí, definitivamente está impulsado por open source en cuanto a cosas como tu inicio de sesión, por ejemplo. Como tienes este pequeño botón de ayuda aquí abajo, que abrirá su propia ventana y widget y luego tendrá características de chatbot dentro de él. Y aunque el chatbot puede no ser gratuito, también puede estar impulsado por algún otro tipo de servicio.

QnA

Watch more workshops on topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
React Day Berlin 2022React Day Berlin 2022
86 min
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
Top Content
WorkshopFree
Hussien Khayoon
Kahvi Patel
2 authors
Usar una biblioteca puede parecer fácil a primera vista, pero ¿cómo eliges la biblioteca correcta? ¿Cómo actualizas una existente? ¿Y cómo te abres camino a través de la documentación para encontrar lo que quieres?
En esta masterclass, discutiremos todos estos puntos finos mientras pasamos por un ejemplo general de construcción de un editor de código usando CodeMirror en React. Todo mientras compartimos algunas de las sutilezas que nuestro equipo aprendió sobre el uso de esta biblioteca y algunos problemas que encontramos.
Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
WorkshopFree
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.
Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio

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

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Elevando Monorepos con los Espacios de Trabajo de npm
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Elevando Monorepos con los Espacios de Trabajo de npm
Top Content
NPM workspaces help manage multiple nested packages within a single top-level package, improving since the release of NPM CLI 7.0. You can easily add dependencies to workspaces and handle duplications. Running scripts and orchestration in a monorepo is made easier with NPM workspaces. The npm pkg command is useful for setting and retrieving keys and values from package.json files. NPM workspaces offer benefits compared to Lerna and future plans include better workspace linking and adding missing features.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
WebAssembly enables optimizing JavaScript performance for different environments by deploying the JavaScript engine as a portable WebAssembly module. By making JavaScript on WebAssembly fast, instances can be created for each request, reducing latency and security risks. Initialization and runtime phases can be improved with tools like Wiser and snapshotting, resulting in faster startup times. Optimizing JavaScript performance in WebAssembly can be achieved through techniques like ahead-of-time compilation and inline caching. WebAssembly usage is growing outside the web, offering benefits like isolation and portability. Build sizes and snapshotting in WebAssembly depend on the application, and more information can be found on the Mozilla Hacks website and Bike Reliance site.