¡Hola, GraphQL Galaxy! Soy Scott Grillock, CSO y cofundador de StackHawk. Gracias por tomarte el tiempo para conocer StackHawk y espero que estés aprendiendo muchas cosas nuevas en GraphQL Galaxy 2022. Espero poder enseñarte una más.
En StackHawk, realizamos pruebas de seguridad de aplicaciones. Específicamente, pruebas de seguridad de aplicaciones dinámicas (DAST). Hablemos de los beneficios de DAST. DAST puede ayudarte a priorizar tu tiempo en qué solucionar en problemas de seguridad de aplicaciones porque ayuda a identificar qué es descubrible y probablemente explotable, porque está probando la API de GraphQL en ejecución. Este es el superpoder de DAST, ¿en qué debería enfocar mi tiempo para solucionar problemas de seguridad de la API?
Tal vez estés pensando, pero los frameworks básicamente han evitado que ocurran los problemas comunes de seguridad de aplicaciones, y sí, muchos frameworks han hecho un buen trabajo al prevenir problemas como la inyección de SQL y el scripting entre sitios. Casi todos ellos tienen una versión insegura de todos esos mecanismos de protección para ayudarte a hacer cosas complicadas y, desafortunadamente, cometer errores, sin mencionar cosas como el filtrado de tenencia y la autorización de funciones que pueden ser difíciles de hacer correctamente. Algunas personas no conocen DAST, y aquellos que lo conocen pueden haber tenido problemas con DAST. Veamos un ejemplo.
Así que aquí estamos de vuelta en los buenos y viejos tiempos de los DAST heredados y cuando construíamos aplicaciones del lado del servidor que ejecutaban las capas de datos y presentación, todo estaba bien. El escáner DAST heredado podía escanear y probar la aplicación heredada sin muchos problemas. Obtienes buenos resultados e identificas algunos errores graves de seguridad de aplicaciones, y luego algo cambió. Luego comenzamos a construir frontends de javascript. Y el frontend de javascript realmente troleó a ese escáner DAST heredado. Cuando digo que troleó al escáner DAST heredado, me refiero a que realmente lo troleó. Como, ¿cuándo termina el desplazamiento de la página? Nunca termina. ¿Dónde están todos los formularios? Bueno, aún no se han renderizado, porque tu mouse no está en este píxel exacto. El DAST heredado seguía su feliz camino, asumiendo totalmente que estaba obteniendo toda la información que necesitaba para probar estas nuevas aplicaciones. Las fallas eran terribles, los escaneos tardaban una eternidad, falsos positivos por días, etc. Y la peor parte es que nunca se dio cuenta de que había alguien más en ese asiento trasero también. Nuestras API de respaldo están ahí, controlando todos los datos, hablando con los backends de almacenamiento de datos, ayudando a renderizar elementos en la página, y el escáner DAST heredado cree que el frontend está enviando todas estas solicitudes al backend. ¿Terminamos incluso probando la API aquí? ¿Estamos cubriendo todo? ¿Estamos siquiera haciendo solicitudes simples a la API? Bueno, debido a los frontends de JavaScript, depende en cierta medida. Depende del navegador y el emulador de navegador que esté utilizando tu herramienta DAST heredada y qué tan bien está conduciendo ese navegador. Puedes pensar en esto como scripts de Selenium, pero en lugar de un conjunto específico de funciones, lo estás ejecutando para encontrar todas las posibles rutas de entrada de usuario por sí mismo y esperando que haga un buen trabajo. Incluso Google no lo hace bien. Entonces, ¿cómo podemos volver a tener una mejor seguridad de aplicaciones, seguridad de la API? Mejores resultados, más rápidos, escaneos más precisos, mejor cobertura, especialmente en esta capa de datos donde se almacenan todos los activos que estamos protegiendo. Al conducir esta API directamente utilizando estándares de la industria como la introspección de GraphQL, puedes tener acceso directo a la API, comprender lo que hace y los datos que controla para obtener resultados rápidos, exhaustivos y precisos de pruebas de seguridad de la API. Sin mencionar que ahora puedes probar microservicios mientras los estás construyendo y encontrar estos errores de seguridad de la API de aplicaciones antes de que se envíen a producción.
Comments