Estaba haciendo una lluvia de ideas sobre los métodos para detectar el vaciado del proceso y otras formas de inyección de código, y esta parecía bastante robusta.
¿Sería posible que un "escáner de seguimiento de procesos" enumere todas las páginas ejecutables en la memoria de un proceso, enumere todas las secciones ejecutables del archivo de imagen asociado al proceso y vea si hay páginas en la memoria que ¿No tenía ninguna página correspondiente en el archivo de imagen, por ejemplo, mediante el hashing difuso del archivo de imagen, el hashing de cada página de memoria y la comparación de los dos conjuntos?
Esto parecería detectar el proceso de vaciado muy bien: cualquier código inyectado en un proceso no estaría presente en el archivo de imagen, y, a menos que el atacante pudiera encontrar algún ataque de colisión contra el algoritmo de hash, no podrían engañar. el detector (y de todos modos se podrían utilizar múltiples algoritmos). Y como el detector se basa en buscar segmentos extra anómalos en la memoria del proceso en lugar de agrupar directamente la memoria y compararla con el archivo, funcionaría incluso si el archivo de imagen completo no se asigna en la memoria.
Entonces, ¿es este un método válido para detectar el vaciamiento del proceso? No creo haber visto este método usado en ningún lugar para detectar la inyección de código (lo más cercano que he visto es cuando los escáneres de rootkits comparan el hash de la sección de memoria completa de un proceso con el hash de todo el archivo de imagen, que solo funciona si el archivo está totalmente maltratado en la memoria).
¿Es este un método viable para detectar la inyección de código / el proceso de vaciado?