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
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
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. ♪
Comments