SAST vs DAST vs IAST: Prueba de seguridad para complementariedades de los tres hermanos, no sustitución
Las tres abreviaturas más comunes en las pruebas de seguridad de la aplicación son SAST, DAST, IAST. La primera reacción de muchas personas fue “seleccionar uno de los más fuertes”, pero fue una propuesta hipócrita: los tres hermanos no compitieron, sino que vieron el mismo tema desde diferentes perspectivas. La elección no depende de quién es más avanzado, sino de la etapa que se encuentra en el ciclo de vida del software, qué tipo de agujero que desea encontrar y cuánto puede soportar.
I. DEFINICIONES SOBRE LA PRIMERA REFERENCIA
- SAST (prueba de seguridad de aplicaciones estáticas)Otros organizadoresNo ejecutar el programa, bajo el cual el código fuente de escaneo/código de byte encuentra una laguna, que pertenece a la Caja Blanca.
- DASTOtros organizadoresPrograma de ejecuciónSolicitudes de lanzamiento externas, ataques simulados son “cajas negras” y no se requiere código fuente.
- IAST (prueba de seguridad de aplicaciones interactivas)Otros organizadoresEjecutar programa desde dentroPlug-in (agent), combinado con el contexto de flujo y código, pertenece a la Caja Gris.
La clave para entender estos tres es que cada respuesta diferentes preguntas: SAST pregunta, "¿Dónde puede haber un error en el código?" DAST pregunta: "¿Podemos realmente pasar cuando corremos?" El IAST pregunta: "En esta operación, que flujo de datos realmente fluye al punto de peligro".
SAST: Estrangular el problema en la etapa de escritura de código
SAST analiza directamente el código fuente (o compila productos intermedios) y no ejecuta el programa. La ventaja es poder detectar problemas en una etapa temprana, o incluso cuando se envía el código, para localizar documentos específicos y números de línea, con bajos costos de reparación. Cubre los "códigos pueden ser barridos" y no depende del entorno del tiempo de funcionamiento.
Shortboard: La tasa de error es generalmente alta porque no determina si un cierto número de códigos se activarán en el negocio real; los problemas que se exponen sólo cuando se ejecuta (por ejemplo, errores de configuración, bypasses de seguridad, cadena de llamada real de confiar en la biblioteca) no se ven completamente; el código fuente es necesario y el componente de tercer grupo de código cerrado no es funcional.
Escenario típico: las puertas de presentación de códigos de línea de transmisión de CI están cerradas para prevenir la inyección visible, clave de codificación dura, función de peligro llama a la columna vertebral.
Verificar "¿Está funcionando realmente?"
DAST utiliza el objetivo como una caja negra para enviar solicitudes desde fuera, construir cargas de pago de ataque y observar la respuesta. Su mayor valor es...Cerca de un ataque real.— Se encontró el problema del “acceso real a correr”, con relativamente bajo reportaje. No se requiere código fuente, por lo que los componentes de terceros, las capas de configuración también pueden ser cubiertas.
ShortboardA menudo es sólo hasta el despliegue que la detección de la detección tardía y el costo de la reparación es alto; la cobertura se limita a reptiles y rutas de prueba que se pueden alcanzar por ejemplo, sin la detección de puntos funcionales no detectables; es difícil localizar el código fuente precisamente, y el desarrollo y la presentación de informes es a menudo sólo conocido “que URL es problemático”; y los costos de configuración son altos para escenarios que requieren procesos de inicio de sesión, multi-paso.
Típico escenario: autorización de seguridad antes de ir en línea, exploración periódica de entornos desplegados.
IV. IAST: Enchufes en tiempo de ejecución, contexto de equilibrio con flujos de datos reales
IAST también observa la ejecución de códigos y el flujo externo al ejecutar el programa implantando antent en la aplicación. Se puede ver cómo entran las solicitudes, y cómo los datos fluyen en el código, por lo que se puede dar.Tome la evidencia completa de la posada.Normalmente es más bajo que SAST y es preciso.
ShortboardLa necesidad de poder desplegar sondas en el entorno objetivo (debido a preocupaciones sobre el entorno de producción); depender de la cobertura de los ensayos, que no se puede encontrar sin el código que se aplica, que a menudo está vinculado a pruebas funcionales/automatizadas; diferencias en el apoyo al lenguaje y al marco; y ciertos costos de rendimiento.
Escenario típico: se ejecuta en el entorno de prueba junto con pruebas automatizadas, tanto para validar la funcionalidad como para sincronizar las conclusiones de seguridad de salida.
Cinco, tres contra uno.
| Dimensiones | SAST | DAST | IAST |
|---|---|---|---|
| Objeto de prueba | Fuente/bytes (no funciona) | Objetivo activo (externo) | Aplicaciones operacionales (enchufes internos) |
| Perspectiva | Caja blanca | Caja negra | Grey Box |
| Tiempo de intervención | Primera fase de codificación y submisión | Después del despliegue | Test/Run-time |
| Necesito código fuente | Sí. | No es necesario. | Requisito (puede enchufarse) |
| Nivel denunciado | Alto | Baja | Bajo |
| Precisión de posición | Para archivo/line | A URL/ Interface | To Call Inn/Data Stream |
| Sobreescribir la dependencia | Limitada (ver parte del código fuente) | Superar la exposición mientras se ejecuta | Limitada por vía de ejecución |
| Típica escena | Código de la CI | Compruebe y aceptar antes de ir en línea. | Combinado con pruebas automatizadas |
VI. Por qué la complementariedad más que la sustitución
Si pones a los tres juntos, encuentran que sus zonas ciegas son complementarias:
- SAST ve el código pero no sabe si se activará; DAST sabe si se puede activar pero no sabe en qué línea es el problema; IAST ambos, pero requiere que el código sea ejecutado.
- SAST cubre temprano, ancho y alto; DAST tiene pequeño ruido pero la intervención tardía, cobertura estrecha; y IAST tiene alta precisión pero puede conectarse y funcionar lo suficientemente bien.
- Sólo vaya a SAST, que es vulnerable a la fatiga de “un montón de cinta roja”; vaya a DAST, donde la laguna se expone a menudo en la línea; vaya a IAST, donde el camino al que no se llega es ciego.
La respuesta a la realidad no es una o dos, sino un enfoque de etapa por etapa: el uso temprano de SAST para atascar un patrón claro de mal gusto y peligro, la fase de prueba de IAST para ser validada con precisión con IAST en conjunto con la automatización, y el uso de DAST en línea y arriba- y hacia abajo para la aceptación externa desde la perspectiva del agresor. Tres supersticiones constituyen un circuito cerrado de pruebas de seguridad de aplicación sin lagunas significativas.
VII. CUESTIONES PRÁCTICAS SOBRE LA
1. Denunciar a quién se ocupa de él
De cualquier manera, nadie arregla el informe, nadie lo hace. Hay un proceso de triage claro: quién ve, cuánto tiempo cerrar, cómo marcar "aceptar el riesgo". En particular, el SAST necesita una gestión de base, de lo contrario el legado de la historia ahogará nuevos problemas.
La cobertura es más importante que las marcas de herramientas
La capacidad de IAST para descubrir depende directamente de cuántos códigos están cubiertos por la prueba; DAST depende de cuántas interfaces son alcanzadas por reptiles. Es más significativo medir “la tasa de detección” antes de ir en línea que sustituir una herramienta más cara.
3. No trate pruebas de seguridad como pruebas de un solo paso Tómalo.
Las pruebas de seguridad deben incrustarse en un proceso continuo de R & D, en lugar de centralizarse antes de ir en línea. CI ejecuta SAST, prueba entorno IAST, regularmente hace DAST para la producción, por lo que no tiene que confiar en la carne humana para salvar el fuego.
4. Centrarse en las sinergias entre los instrumentos
El estado ideal es que tres tipos de resultados se pueden agrupar en la misma vista: la misma laguna, SAST da ubicación de código, IAST da evidencia de flujo de datos, y DAST valida la disponibilidad. Vale mucho más que las tres islas devastadas por la guerra.
VIII. Una lista de decisiones
- Sí.Etapa de presentaciónMantenga la laguna obvia en SAST, concéntrese en los cierres de las puertas y las bases de referencia.
- Para verificar¿El sistema desplegado es realmente capaz de atacar? • Up with DAST, focusing on coverage and login settings.
- Para obtener conclusiones de seguridad.Producto con pruebas automatizadasY localizar exactamente en el IAST.
- Los recursos limitados sólo pueden utilizarse como primera prioridad para que el SAST establezca una línea inferior y, posteriormente, se complete gradualmente el OIEA/DAST.
- La búsqueda de una "solución única y permanente" no existe, pero la manera de organizar y procesar es la respuesta.
SAST es posible, DAST es práctico, IAST es específico — combinado es una imagen completa.