Pruebas de seguridad automatizadas para aplicaciones JS y APIs subyacentes

Rate this content
Bookmark

Con StackHawk, los equipos de ingeniería pueden realizar pruebas de seguridad en aplicaciones JS y las APIs subyacentes para encontrar y solucionar vulnerabilidades más rápido. Con pruebas automatizadas en cada PR, puedes tener la confianza de que tu aplicación es segura. Únete a Scott Gerlach, cofundador de StackHawk, para obtener una breve descripción de las pruebas de seguridad de aplicaciones JS con StackHawk.

8 min
10 Jun, 2021

Video Summary and Transcription

StackHawk es una herramienta dinámica de pruebas de seguridad de aplicaciones que ayuda a encontrar y solucionar vulnerabilidades de seguridad. Se integra con tu stack de ingeniería y funciona con herramientas populares en CI/CD. El escáner DAST recorre tu aplicación, la prueba y proporciona un resumen de los hallazgos, incluyendo problemas de scripting entre sitios e inyección SQL. La salida en CI/CD incluye un enlace para clasificar los problemas.

Available in English

1. Introducción a StackHawk

Short description:

StackHawk es una herramienta dinámica de prueba de seguridad de aplicaciones. Escanea tu aplicación, se ejecuta en cualquier lugar y te ayuda a encontrar y solucionar vulnerabilidades de seguridad. La plataforma de StackHawk presenta la criticidad de un problema, el tipo de problema, la ruta y el par de solicitud-respuesta que generó el problema. Se integra con tu pila de ingeniería y funciona con jugadores populares en CICD. Vamos a ver una demostración rápida para ver cómo funciona StackHawk.

¿Qué tal, JSNationLive? Scott Gerlach, cofundador y CSO de StackHawk aquí. Gracias por tomarte el tiempo para ver lo que StackHawk tiene para ofrecer.

En pocas palabras, StackHawk es una herramienta dinámica de prueba de seguridad de aplicaciones. Puedes usarla para probar tus aplicaciones HTTP en ejecución. Eso incluye pruebas de seguridad de aplicaciones y API, GraphQL, HTML en el lado del servidor y aplicaciones de una sola página.

StackHawk fue creado para la automatización en CICD. Hace que encontrar y solucionar vulnerabilidades de seguridad sea muy, muy sencillo.

Un poco de cómo funciona. En primer lugar, escanea tu aplicación, y cuando decimos que escanea tu aplicación, nos referimos a que se ejecuta en cualquier lugar. Puedes ejecutarlo en tu localhost mientras escribes código, probar tu aplicación, respaldarlo en CICD, probar tu aplicación allí antes de enviarla a producción, y luego, si quieres, puedes ejecutarlo en producción.

Está diseñado para escanear esas aplicaciones modernas, como mencioné, HTML en el lado del servidor, aplicaciones de una sola página, API REST, donde tienes una especificación de API abierta, y GraphQL, donde tienes consultas de introspección de GraphQL activadas. Todas estas cosas ayudan a informar al escáner sobre cómo hacer un buen trabajo al probar tu aplicación en busca de vulnerabilidades de seguridad.

Una vez que la prueba ha finalizado, hace un buen trabajo al mostrarte dónde se encontraron esos problemas y cómo solucionarlos potencialmente. Encontrar y solucionar esos problemas de seguridad es muy sencillo con la plataforma de StackHawk.

La plataforma de StackHawk te muestra la criticidad de un problema, el tipo de problema, la ruta y el par de solicitud-respuesta que generó el problema. Lo genial de la plataforma de StackHawk es que hay una recreación de ese hallazgo en forma de comando curl. Así que hay un comando curl que puedes copiar y pegar y ejecutar el mismo ataque que el escáner hizo contra tu aplicación para poder poner tu aplicación en modo de depuración, recorrer ese código y encontrar rápidamente dónde puedes haber cometido un error.

Todo eso está configurado para CICD y puedes interrumpir tu compilación. Puedes configurar el escáner de StackHawk para salir con un código no cero si encuentra un problema de tipo severidad medio o superior, alto o alto o superior, bajo o superior, todas estas cosas son totalmente configurables en la plataforma de StackHawk. No lo hace de forma nativa. Puedes configurarlo para tu propio trabajo.

StackHawk se integra con tu pila de ingeniería. Como puedes ver, tengo iconos de algunos de los jugadores populares más importantes en CICD. StackHawk funciona con todos ellos. Como se basa en Docker, si tu sistema de CICD puede ejecutar Docker, puede ejecutar StackHawk.

Vamos a ver una demostración rápida para ver cómo funciona StackHawk. Aquí puedes ver que tengo mi aplicación Django vulnerable. Esta es solo una aplicación básica de Django, por lo que es HTML en el lado del servidor, y la estoy probando con mi escáner de StackHawk. Así es como se ve: tengo un comando Docker simple, docker run stackhawk hawkscan.

2. Configuración y Escaneo de StackHawk

Short description:

El escáner DAST rastrea tu aplicación, la prueba y proporciona un resumen de los hallazgos. Identifica problemas de scripting entre sitios e inyección SQL. La salida en CICD incluye un enlace para clasificar los problemas.

Tengo el archivo de configuración, que vamos a ver a continuación. Y lo que sucede es que el escáner DAST rastrea tu aplicación, buscando cosas interesantes para probar, y luego la prueba. Una vez hecho esto, obtienes un resumen simple de lo que está sucediendo, lo que Stackhawk encontró. Aquí puedes ver que tengo un problema de scripting entre sitios, un problema de inyección SQL y algunos problemas menores. Hoy nos centraremos en los de mayor importancia. En la parte inferior de esto, tengo un enlace de regreso a la plataforma de Stackhawk. Esta es exactamente la misma salida que obtendrías en CICD, por lo que si eliges interrumpir la compilación en CICD, tendrás un enlace para poder clasificar estos problemas. El archivo de configuración de Stackhawk del que acabamos de hablar es tan simple como esto. Creemos en la configuración como código, por lo que los principios de DevOps, por lo que este archivo de configuración en particular vive con el código que está probando. Se verifica en Git, tienes el historial de Git sobre quién cambia qué y cuándo. Ahora, lo importante aquí es que las cosas que necesitas para que Stackhawk funcione son estos campos aquí mismo. Debes indicarle el ID de la aplicación, que es algo que obtenemos de la plataforma. Debes indicarle dónde encontrar ese host en ejecución, por lo que en este caso mi aplicación Django se está ejecutando en localhost puerto 8020, y en qué entorno encontrarlo. Eso es todo lo que necesitas para que funcione un escaneo. Obviamente, hay más cosas que puedes hacer para configurar este archivo y hacer que el escáner funcione mejor con tus aplicaciones, cosas como autenticación, rutas para ignorar donde no quieres que pruebe, dónde encontrar la especificación de la API REST o la introspección de GraphQL, etcétera, pero en este caso estamos trabajando con una aplicación del lado del servidor. Pasemos a la plataforma. Aquí puedes ver la salida del escaneo que acabamos de ejecutar, por lo que puedes ver el problema de scripting entre sitios que encontramos, el problema de inyección SQL que encontramos. Hay mucha otra información interesante en este panel, pero también puedes ver qué complementos se ejecutaron en Stackhawk así como las rutas que descubrió el escáner. Esto te ayuda a tener una buena idea de lo que se está probando y qué tan buena es esa cobertura para describir tu aplicación. Veamos ese problema de inyección SQL. Aquí puedes ver que tenemos un problema de inyección SQL en esta ruta SQL de encuestas tanto en los métodos POST como GET, pero en el lado derecho de nuestro panel aquí tenemos una solicitud y una respuesta para ambas cosas, por lo que seleccionarlas cambia la solicitud y la respuesta, y puedes alternar entre ellas. Por lo tanto, puedes ver en este problema POST aquí, exactamente qué tipo de POST se hizo a nuestra aplicación, y puedes ver cómo respondió la aplicación. Aquí está ese botón de Validar del que estaba hablando. Por lo tanto, aquí está exactamente el comando cURL que el escáner ejecutó contra tu aplicación. Ahora puedo copiar y pegar eso, poner mi aplicación en modo depuración, y tratar de encontrar dónde cometí el error de SQL. Ahora notarás que ya he clasificado estos dos problemas en particular y los he convertido en tickets de JIRA. Tenemos una integración nativa de JIRA Cloud para poder enviar información a JIRA Cloud, y puedes ver que esto es exactamente cómo se ve. Entonces, cuando envío esto, si no puedo trabajar en ello hoy como desarrollador o necesito que nuestro equipo de productos lo priorice, puedo enviar esto como un ticket, hacer que lo prioricen, pero lo realmente importante es que una vez que este ticket vuelva y descubramos que necesitamos trabajar en él, tiene un enlace que te lleva directamente a esta pantalla de clasificación para que puedas entender el contexto de lo que necesito ver y cómo solucionarlo muy, muy rápidamente. Otras cosas interesantes que suceden aquí, StackHawk tiene la capacidad de desglosar todas tus aplicaciones en sus microservicios y probarlos individualmente. Eso hace que los escaneos sean más rápidos, más precisos y con menos falsos positivos. Aquí tengo todas las aplicaciones que recuerdo probando, y puedo revisar esto y tener una buena visión general de la postura de seguridad de esas aplicaciones. Las integraciones que tenemos, como mencionamos antes, muchas integraciones de CI CD. Todos los jugadores principales están aquí, y si no están aquí, casi con seguridad funcionan, simplemente no lo hemos documentado todavía. También tengo esa notificación de Slack activada en mi cuenta para recibir notificaciones cuando los escaneos comienzan, cuando los escaneos terminan, y el resumen de esos hallazgos escaneados. Y luego, nuevamente, esa integración de Jira Cloud. Si quieres probar StackHawk y ver cómo puede ayudar a mejorar la calidad del software que estás publicando, reducir la cantidad de errores de seguridad que estás publicando en Internet, siempre puedes configurar una cuenta gratuita de StackHawk y probarlo con una aplicación. Espero que tengas un buen tiempo en GS Nation. Gracias por ver StackHawk. ♪

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

Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
Do you know what’s really going on in your node_modules folder? Software supply chain attacks have exploded over the past 12 months and they’re only accelerating in 2022 and beyond. We’ll dive into examples of recent supply chain attacks and what concrete steps you can take to protect your team from this emerging threat.
You can check the slides for Feross' talk here.
JSNation 2023JSNation 2023
30 min
The State of Passwordless Auth on the Web
Can we get rid of passwords yet? They make for a poor user experience and users are notoriously bad with them. The advent of WebAuthn has brought a passwordless world closer, but where do we really stand?
In this talk we'll explore the current user experience of WebAuthn and the requirements a user has to fulfill for them to authenticate without a password. We'll also explore the fallbacks and safeguards we can use to make the password experience better and more secure. By the end of the session you'll have a vision for how authentication could look in the future and a blueprint for how to build the best auth experience today.
React Advanced Conference 2021React Advanced Conference 2021
22 min
Let Me Show You How React Applications Get Hacked in the Real-World
Top Content
Modern frontend frameworks like React are well thought-of in their application security design and that’s great. However, there is still plenty of room for developers to make mistakes and use insecure APIs, vulnerable components, or generally do the wrong thing that turns user input into a Cross-site Scripting vulnerability (XSS). Let me show you how React applications get hacked in the real-world.
JSNation 2023JSNation 2023
22 min
5 Ways You Could Have Hacked Node.js
All languages are or were vulnerable to some kind of threat. I’m part of the Node.js Security team and during the year 2022, we've performed many Security Releases and some of them were really hard to think about.
Did you know you can make money by finding critical vulnerabilities in Node.js? In this talk, I’ll show you 5 ways you can have hacked Node.js and how the Node.js team deals with vulnerabilities.
JSNation Live 2021JSNation Live 2021
9 min
Securing Node.js APIs with Decentralised Identity Tokens
Authentication and Authorization are serious problems. We often dedicate a lot of time to craft powerful APIs but overlook proper security measures. Let's solve it with Magic using a key-based identity solution built on top of DID standard, where users’ identities are self-sovereign leveraging blockchain public-private key pairs. In this talk, we’ll look at proper ways to secure our Node.js APIs with Decentralised Identity Tokens. We’ll go from learning what Decentralised Identity standards are, how the users’ identities are self-sovereign leveraging blockchain public-private key pairs, why they’re the future of API security, and to put theory into practice we will build a real-world implementation using Node.js where I’ll show common best practices.

Workshops on related topic

TestJS Summit 2023TestJS Summit 2023
48 min
API Testing with Postman Workshop
Top Content
WorkshopFree
In the ever-evolving landscape of software development, ensuring the reliability and functionality of APIs has become paramount. "API Testing with Postman" is a comprehensive workshop designed to equip participants with the knowledge and skills needed to excel in API testing using Postman, a powerful tool widely adopted by professionals in the field. This workshop delves into the fundamentals of API testing, progresses to advanced testing techniques, and explores automation, performance testing, and multi-protocol support, providing attendees with a holistic understanding of API testing with Postman.
1. Welcome to Postman- Explaining the Postman User Interface (UI)2. Workspace and Collections Collaboration- Understanding Workspaces and their role in collaboration- Exploring the concept of Collections for organizing and executing API requests3. Introduction to API Testing- Covering the basics of API testing and its significance4. Variable Management- Managing environment, global, and collection variables- Utilizing scripting snippets for dynamic data5. Building Testing Workflows- Creating effective testing workflows for comprehensive testing- Utilizing the Collection Runner for test execution- Introduction to Postbot for automated testing6. Advanced Testing- Contract Testing for ensuring API contracts- Using Mock Servers for effective testing- Maximizing productivity with Collection/Workspace templates- Integration Testing and Regression Testing strategies7. Automation with Postman- Leveraging the Postman CLI for automation- Scheduled Runs for regular testing- Integrating Postman into CI/CD pipelines8. Performance Testing- Demonstrating performance testing capabilities (showing the desktop client)- Synchronizing tests with VS Code for streamlined development9. Exploring Advanced Features - Working with Multiple Protocols: GraphQL, gRPC, and more
Join us for this workshop to unlock the full potential of Postman for API testing, streamline your testing processes, and enhance the quality and reliability of your software. Whether you're a beginner or an experienced tester, this workshop will equip you with the skills needed to excel in API testing with Postman.
React Summit 2023React Summit 2023
56 min
0 to Auth in an hour with ReactJS
WorkshopFree
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool. There are multiple alternatives that are much better than passwords to identify and authenticate your users - including SSO, SAML, OAuth, Magic Links, One-Time Passwords, and Authenticator Apps.
While addressing security aspects and avoiding common pitfalls, we will enhance a full-stack JS application (Node.js backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session securely for subsequent client requests, validating / refreshing sessions- Basic Authorization - extracting and validating claims from the session token JWT and handling authorization in backend flows
At the end of the workshop, we will also touch other approaches of authentication implementation with Descope - using frontend or backend SDKs.
TestJS Summit 2023TestJS Summit 2023
89 min
Building out a meaningful test suite that's not all E2E
Workshop
We're all taught to follow the Testing Pyramid but the reality is that we build out the Testing Christmas Tree. In this workshop, David will talk you through how to break down projects and put the tests where they need to be. By the end of the workshop you will be able to update your projects so that anyone and everyone can start contributing and truly living up to "Quality is everyone job".
He will walk you through:- Component Testing- API Testing- Visual Regression Testing- A11Y testing
He will also talk you through how to get these all setup in your CI/CD pipeline so that you can get shorter and faster feedback loops.
JSNation 2022JSNation 2022
99 min
Finding, Hacking and fixing your NodeJS Vulnerabilities with Snyk
WorkshopFree
npm and security, how much do you know about your dependencies?Hack-along, live hacking of a vulnerable Node app https://github.com/snyk-labs/nodejs-goof, Vulnerabilities from both Open source and written code. Encouraged to download the application and hack along with us.Fixing the issues and an introduction to Snyk with a demo.Open questions.
DevOps.js Conf 2022DevOps.js Conf 2022
76 min
Bring Code Quality and Security to your CI/CD pipeline
WorkshopFree
In this workshop we will go through all the aspects and stages when integrating your project into Code Quality and Security Ecosystem. We will take a simple web-application as a starting point and create a CI pipeline triggering code quality monitoring for it. We will do a full development cycle starting from coding in the IDE and opening a Pull Request and I will show you how you can control the quality at those stages. At the end of the workshop you will be ready to enable such integration for your own projects.
Node Congress 2021Node Congress 2021
71 min
Securing Node Applications with Automated Security Testing in CI/CD
Workshop
We’ve all heard the buzz around pushing application security into the hands of developers, but if you’re like most companies, it has been hard to actually make this a reality. You aren’t alone - putting the culture, processes, and tooling in place to make this happen is tough - especially for sophisticated applications. Join Scott Gerlach (CSO, StackHawk) and Liran Tal (Developer Advocate, Snyk) as they dive into how you can add AppSec testing to your CI/CD pipeline to ship secure code faster.
Prerequisites:Docker is a nice to have