Pruebas automatizadas de seguridad de aplicaciones

Rate this content
Bookmark

Las pruebas de seguridad tradicionales para aplicaciones JS se han centrado en el front-end, pero los problemas de seguridad reales suelen estar en la API REST de respaldo. Únete al co-fundador de StackHawk, Scott Gerlach, para obtener una breve descripción de por qué debes reconsiderar cómo pruebas tus aplicaciones JS y cómo StackHawk puede ayudarte a encontrar y solucionar rápidamente errores de seguridad.

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

FAQ

StackHawk es una herramienta dinámica de pruebas de seguridad de aplicaciones que permite probar aplicaciones HTTP en ejecución y puntos finales de API para detectar errores de seguridad. Se utiliza para asegurarse de que las aplicaciones manejen de manera segura la entrada y salida de datos del usuario y cumplan con las mejores prácticas de seguridad de OWASP.

StackHawk puede ejecutarse en APIs REST, APIs GraphQL, APIs SOAP, aplicaciones del lado del servidor y aplicaciones de una sola página. Además, se integra bien en flujos de trabajo de CI/CD y puede ejecutarse en localhost o en aplicaciones que aún no se han publicado en Internet.

El escáner StackHawk se configura mediante un archivo YAML que se encuentra junto con el código de la aplicación que se está probando. Este archivo YAML incluye configuraciones esenciales como la ubicación de la aplicación, el entorno de ejecución y la especificación de API si es necesario.

StackHawk ofrece integraciones con varias herramientas de flujo de trabajo e información como Slack, Datadog, y sistemas de webhook. También es compatible con la mayoría de las principales plataformas de CI, permitiendo integraciones profundas en los procesos de desarrollo de software.

StackHawk clasifica los hallazgos de seguridad y proporciona descripciones simplificadas, ejemplos de patrones y comandos específicos como curl para reproducir y diagnosticar problemas. Esto facilita a los desarrolladores entender rápidamente y solucionar los problemas de seguridad directamente en el código.

StackHawk ofrece una versión gratuita para su uso en una sola aplicación, con opciones de prueba gratuita disponibles para integrarla en procesos de desarrollo más amplios.

Scott Gerlach
Scott Gerlach
9 min
16 Jun, 2022

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 realiza pruebas de seguridad activas en varios tipos de aplicaciones, proporcionando descripciones simples y ejemplos de problemas de seguridad. Se integra con procesos de CI y proporciona comentarios sobre los resultados del escaneo. El YAML de StackHawk se utiliza para configurar el escáner, incluida información importante sobre la aplicación y opciones de configuración adicionales. La integración con OpenAPI y GraphQL es posible con una configuración mínima.

1. Introduction to StackHawk

Short description:

StackHawk es una herramienta dinámica de pruebas de seguridad de aplicaciones que te ayuda a encontrar y solucionar problemas de seguridad en tus aplicaciones HTTP en ejecución y puntos finales de API. Ejecuta pruebas de seguridad activas en varios tipos de aplicaciones, incluyendo API REST, API GraphQL, API SOAP, aplicaciones del lado del servidor y aplicaciones de una sola página. StackHawk está diseñado para la automatización y CI/CD, convirtiéndose en una parte esencial de tu estrategia de pruebas. Proporciona descripciones simples y ejemplos de problemas de seguridad, lo que te permite entender y solucionarlos rápidamente. También se integra con los procesos de CI y proporciona comentarios sobre los resultados del escaneo.

¿Qué pasa JS Nation? Soy Scott Gerlach, co-fundador y oficial principal de seguridad en StackHawk. Espero que estén disfrutando mucho de JS Nation y aprovechándolo al máximo.

Hablemos de StackHawk. Rápidamente, StackHawk es una herramienta dinámica de pruebas de seguridad de aplicaciones. Puedes usarla para probar tus aplicaciones HTTP en ejecución y puntos finales de API en busca de errores de seguridad y evitar que se vuelvan vulnerables. Puedes utilizar StackHawk para ejecutar pruebas de seguridad activas en tus API REST en ejecución, API GraphQL, API SOAP, aplicaciones del lado del servidor y aplicaciones de una sola página. StackHawk fue creado para la automatización y CI/CD, para ser parte de tu sólida estrategia de pruebas para el ciclo de vida del desarrollo de aplicaciones. También facilita encontrar, entender y solucionar errores de seguridad.

¿Cómo funciona StackHawk, preguntas? Excelente pregunta. StackHawk ejecuta pruebas de seguridad activas en tus aplicaciones en ejecución para asegurarse de que tu aplicación maneje la entrada y salida del usuario de manera segura, y también implemente las 10 mejores prácticas de OWASP para la seguridad de aplicaciones. Podemos hacer esto en tu aplicación en tu localhost, en flujos de trabajo de CI/CD y en aplicaciones que aún no se han publicado en Internet. También hemos hecho que las pruebas dinámicas sean rápidas. Al colocar el escáner lo más cerca posible de la aplicación y utilizar estándares abiertos para informar al escáner, especificación OpenAPI, GraphQL, consultas de introspección, SOAP, WSDL, además de la configuración del escáner que hemos realizado, la mayoría de las aplicaciones de clientes de StackHawk se escanean en un promedio de menos de diez minutos.

Encontrar y solucionar problemas de seguridad es simple con StackHawk. Nuestro enfoque como empresa es ayudar a los desarrolladores a encontrar y, lo que es más importante, solucionar problemas de seguridad. El escáner y la plataforma de StackHawk están construidos en torno a este modelo de simplicidad. El escáner se configura mediante YAML que se encuentra junto con el código de la aplicación que estás probando. Cuando se clasifican los hallazgos de StackHawk, la plataforma intenta brindarte la versión más simple de la información necesaria para ayudarte a entender rápidamente cuál es el problema con descripciones simples y ejemplos de patrones para ayudarte a identificar el anti-patrón, poder recrear el problema con herramientas como un simple comando curl para reproducir el ataque, y entrar en el modo de depuración, recorriendo el código lo más rápido posible para ayudarte a solucionar problemas y volver a tu trabajo regular de crear valor para tus clientes. Todo esto está habilitado para CI/CD. Nuevamente, puedes integrarlo en tu proceso de CI y, lo que es más importante, obtener comentarios sobre los resultados del escaneo en el proceso de CI. Esta información se puede utilizar para interrumpir una compilación si así lo deseas. Según la gravedad de los hallazgos no clasificados, se muestran los logotipos de la mayoría de los principales jugadores de CI aquí en esta diapositiva, y incluso si el tuyo en particular no está, es muy probable que Stackhawk funcione en tu plataforma siempre y cuando pueda ejecutar un contenedor Docker. Puedes ejecutar Docker, puedes ejecutar Stackhawk. También puedes ver aquí que Stackhawk se integra con tus herramientas de flujo de trabajo e información. Podemos notificarte los resultados del escaneo en un canal de Slack, publicar esa información en Datadog o enviarte un mensaje simple de webhook que luego puedes utilizar para procesar y hacer con los datos lo que elijas.

Echemos un vistazo a cómo se ve el escáner de Stackhawk en funcionamiento. Como puedes ver aquí, tengo una aplicación del lado del servidor estándar. Esta es una aplicación Pulse que quiero probar en busca de problemas de seguridad. Así que aquí en mi línea de comandos, tengo un simple comando Docker que ejecuté. Así que Docker run Stackhawk.

2. Analyzing Scan Findings and Examining Issues

Short description:

Le proporcioné el YAML de StackHawk. Realizó un rastreo estándar y atacó activamente la aplicación en busca de posibles problemas de seguridad. Tenemos un resumen de los hallazgos, que incluyen un nuevo problema de inyección SQL y un problema de scripting entre sitios que ya se había abordado anteriormente. También hay otros problemas para analizar. Podemos acceder a los resultados del escaneo a través de un enlace proporcionado. El problema de inyección SQL se describe junto con los riesgos que plantea y enlaces para prevenirlo en diferentes frameworks de lenguaje. Podemos examinar el problema específico, ver la solicitud y respuesta, e incluso reproducir el ataque utilizando el botón de validación del escáner.

Le proporcioné el YAML de StackHawk. Lo veremos en un segundo. Como puedes ver, realizó un rastreo estándar en busca de todas las cosas interesantes en la página web que pudo encontrar, y luego realizó un ataque. Así que atacó activamente esta aplicación en busca de posibles problemas de seguridad. Cuando terminó, obtuvimos un resumen de estos hallazgos.

En realidad, tengo un problema de inyección SQL que debo solucionar. Puedes ver que es nuevo. También tengo un problema de scripting entre sitios en el que ya hice algo antes. De hecho, hice un ticket con esto, así que ahora está en estado firmado. También tenemos otras cosas que podemos analizar, pero echemos un vistazo a esas también.

Aquí abajo, en la parte inferior, tenemos un enlace a este escaneo, así que podemos tomar este enlace y pegarlo en un navegador. Por cierto, la salida en un sistema CI/CD se vería muy similar a esto, porque esta es la salida estándar. Entonces, si eligieras interrumpir una compilación, tendrías este mismo enlace en la salida de CI/CD. Así que podemos ir aquí a nuestro navegador web y entrar directamente en el escaneo que estábamos viendo. Estábamos viendo este mismo escaneo exactamente. Tenemos este problema de inyección SQL que podemos ver rápidamente.

Puedes ver que tenemos un problema de inyección SQL. Estamos describiendo rápidamente qué es la inyección SQL, cómo remediarla, de qué se trata, y qué riesgos puede plantear para una aplicación. También tenemos enlaces a diferentes frameworks de lenguaje que muestran el patrón de cómo prevenir la inyección SQL en Spring, Laravel, Django y Rails, para que puedas ayudar a identificar el anti-patrón que estamos buscando. Echemos un vistazo a este problema en particular aquí. Podemos ver que en la ruta SQL de las encuestas, tenemos un método post que tiene algún tipo de problema. En nuestro panel de la derecha, tenemos una solicitud y respuesta de lo que el escáner realmente hizo y luego regresó. Podemos ver que el escáner hizo una solicitud aquí contra la aplicación, y esta respondió de alguna forma. Podemos ver que el escáner hizo una inyección de caso cuando aquí. Podemos reproducir esto si queremos. Todo esto te ayuda a entender lo que el escáner está tratando de hacer y qué problema cree que ha encontrado. Curiosamente, tenemos este botón de validación muy útil aquí arriba. Como mencioné antes, este botón de validación te proporciona un comando curl de exactamente lo que el escáner hizo para identificar este problema en particular. Puedes copiar y reproducir este ataque contra una aplicación. Echemos un vistazo a ese YAML de 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.
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
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.
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
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.
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.
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
How to Build Front-End Access Control with NFTs
JSNation 2024JSNation 2024
88 min
How to Build Front-End Access Control with NFTs
WorkshopFree
Solange Gueiros
Solange Gueiros
Understand the fundamentals of NFT technology and its application in bolstering web security. Through practical demonstrations and hands-on exercises, attendees will learn how to seamlessly integrate NFT-based access control mechanisms into their front-end development projects.
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.