Heap spraying es difícil de detener, pero no imposible. Así es como los defensores mantienen a raya a los atacantes:
Herramientas y soluciones de detección
Un detector avanzado de heap spraying en tiempo real que analiza los objetos del heap en busca de bloques de código ejecutable "sospechosamente densos". NOZZLE es eficaz para detectar intentos de spraying tanto conocidos como nuevos sin generar demasiados falsos positivos. USENIX NOZZLE Paper
Algunas soluciones antivirus intentan detectar los patrones asociados con heap spraying (grandes cantidades de asignaciones de memoria idénticas).
Herramientas que vigilan la actividad del heap y marcan anomalías.
Defensas modernas de navegadores y sistemas operativos
Los navegadores y los proveedores de sistemas operativos responden con:
Aleatoriza las ubicaciones de memoria, lo que dificulta el trabajo de los atacantes. Pero como vimos, heap spraying intenta anular esto.
Marca ciertas áreas de memoria como no ejecutables; combinado con el análisis en un entorno aislado del navegador, esto obliga a los atacantes a ser más creativos.
Dado que los navegadores modernos usan compilación JIT, que puede introducir sus propios riesgos, los proveedores aplican verificaciones adicionales para frustrar el abuso.
Para más información sobre las protecciones a nivel de sistema operativo, consulta la documentación de DEP de Microsoft.
¿Puede el software antivirus detectar heap spraying?
El software antivirus puede detectar patrones de spraying conocidos, pero históricamente, heap spraying se usaba precisamente porque era fácil evadir la detección simple basada en firmas. Hoy en día, el AV y la protección de endpoints han mejorado, a menudo usando heurística, análisis de memoria en tiempo real o integración con funciones de seguridad del sistema operativo para detectar spraying y otros intentos de exploit relacionados.
Pero recuerda, el AV es solo una capa de tu estrategia de seguridad, no todo el pastel.