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.

This talk has been presented at JSNation Live 2021, check out the latest edition of this JavaScript Conference.

FAQ

StackHawk es una herramienta dinámica de prueba de seguridad de aplicaciones, diseñada para probar aplicaciones HTTP en ejecución, incluyendo aplicaciones y API, GraphQL, HTML en el lado del servidor y aplicaciones de una sola página.

StackHawk escanea la aplicación en cualquier entorno, desde desarrollo local hasta producción, identificando vulnerabilidades de seguridad. Una vez finalizado el escaneo, muestra los problemas encontrados y proporciona detalles sobre cómo solucionarlos, incluyendo comandos curl para recrear el hallazgo.

Sí, StackHawk está diseñado para integrarse perfectamente con sistemas de CI/CD. Funciona con los principales sistemas dado que se basa en Docker, por lo que cualquier sistema de CI/CD que pueda ejecutar Docker puede ejecutar StackHawk.

StackHawk está diseñado para escanear aplicaciones modernas, incluidas aquellas que utilizan HTML en el lado del servidor, aplicaciones de una sola página, APIs REST y GraphQL.

Sí, StackHawk ofrece integraciones con varias herramientas, incluyendo JIRA para la gestión de tickets y Slack para notificaciones de estado de escaneos, entre otros.

StackHawk facilita la depuración mediante la generación de comandos curl que replican el ataque probado por el escáner, lo que permite a los desarrolladores ejecutar estos comandos en un entorno de depuración y localizar rápidamente las vulnerabilidades.

Sí, es posible configurar el escáner de StackHawk para que termine con un código no cero en caso de detectar problemas de seguridad de una severidad configurada, haciendo posible interrumpir automáticamente la compilación en un proceso de CI/CD.

Después de un escaneo, StackHawk proporciona un resumen detallado que incluye la criticidad del problema, tipo de problema, la ruta afectada y el par solicitud-respuesta que generó el problema, además de recomendaciones sobre cómo solucionarlo.

Scott Gerlach
Scott Gerlach
8 min
10 Jun, 2021

Comments

Sign in or register to post your comment.
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.

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

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

Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
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.
Construyendo una suite de pruebas significativa que no sea todo E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Construyendo una suite de pruebas significativa que no sea todo E2E
Workshop
David Burns
David Burns
Todos somos enseñados a seguir la Pirámide de Pruebas pero la realidad es que construimos el Árbol de Pruebas de Navidad. En esta masterclass, David te explicará cómo desglosar proyectos y poner las pruebas donde necesitan estar. Al final de la masterclass, podrás actualizar tus proyectos para que cualquiera y todos puedan empezar a contribuir y realmente vivir según "La calidad es el trabajo de todos".
Te guiará a través de:- Pruebas de Componentes- Pruebas de API- Pruebas de Regresión Visual- Pruebas A11Y
También te explicará cómo configurar todo esto en tu pipeline de CI/CD para que puedas obtener ciclos de feedback más cortos y rápidos.
Masterclass Práctica: Introducción a Pentesting para Aplicaciones Web / APIs Web
JSNation US 2024JSNation US 2024
148 min
Masterclass Práctica: Introducción a Pentesting para Aplicaciones Web / APIs Web
Workshop
Gregor Biswanger
Gregor Biswanger
En esta masterclass práctica, estarás equipado con las herramientas para probar efectivamente la seguridad de las aplicaciones web. Este curso está diseñado tanto para principiantes como para aquellos que ya están familiarizados con las pruebas de seguridad de aplicaciones web y desean ampliar su conocimiento. En un mundo donde los sitios web juegan un papel cada vez más central, asegurar la seguridad de estas tecnologías es crucial. Comprender la perspectiva del atacante y conocer los mecanismos de defensa apropiados se han convertido en habilidades esenciales para los profesionales de TI.Esta masterclass, dirigida por el renombrado entrenador Gregor Biswanger, te guiará a través del uso de herramientas de pentesting estándar de la industria como Burp Suite, OWASP ZAP y el marco profesional de pentesting Metasploit. Aprenderás a identificar y explotar vulnerabilidades comunes en aplicaciones web. A través de ejercicios prácticos y desafíos, podrás poner en práctica tu conocimiento teórico y expandirlo. En este curso, adquirirás las habilidades fundamentales necesarias para proteger tus sitios web de ataques y mejorar la seguridad de tus sistemas.
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
Cómo Construir Control de Acceso Front-End con NFTs
JSNation 2024JSNation 2024
88 min
Cómo Construir Control de Acceso Front-End con NFTs
WorkshopFree
Solange Gueiros
Solange Gueiros
Comprende los fundamentos de la tecnología NFT y su aplicación en el fortalecimiento de la seguridad web. A través de demostraciones prácticas y ejercicios prácticos, los asistentes aprenderán cómo integrar sin problemas mecanismos de control de acceso basados en NFT en sus proyectos de desarrollo front-end.