¿Demuestra el ShimCache que un programa se ejecutó?

4 min de lectura

TL;DR. No. Una entrada del ShimCache prueba que Windows examinó el archivo — habitualmente, pero no siempre, por ejecución. Windows 10/11 eliminó por completo el flag de ejecución en la caché. Confirma con Prefetch, AmCache o eventos de creación de proceso (Security 4688 / Sysmon 1).

«El ShimCache muestra que se ejecutó» es uno de los atajos más comunes en respuesta a incidentes — y es erróneo lo bastante a menudo como para perjudicar a los investigadores ante un tribunal. Aquí va una respuesta cuidadosa a la pregunta «¿una entrada del ShimCache prueba que un programa se ejecutó?», y qué hacer en su lugar.

Lo que el ShimCache realmente registra

El ShimCache (técnicamente el Application Compatibility Cache, o AppCompatCache) almacena entradas para los ejecutables que Windows ha examinado, normalmente para decidir si aplica un shim de compatibilidad. Examinar no es lo mismo que ejecutar. Windows puede examinar un archivo cuando:

  • el usuario hace doble clic (a menudo, pero no siempre, lleva a ejecución),
  • el Explorador enumera un directorio e inspecciona un binario,
  • una herramienta escanea el sistema de archivos (AV, indexadores, agentes de seguridad),
  • el archivo se abre vía clic derecho «Propiedades» o flujos shell similares.

La mayoría de estas razones coinciden con la ejecución, pero el vínculo es estadístico, no lógico. Un binario que un atacante dejó y borró sin ejecutarlo puede aparecer en el ShimCache porque algo en el sistema lo tocó.

El cambio Windows 10 / 11 que importa

En versiones antiguas de Windows, las entradas del ShimCache llevaban un flag Executed que se activaba cuando el binario se ejecutaba. Ese flag se usaba ampliamente como señal aproximada de «¿se ejecutó?».

En Windows 10 y 11 ese flag fue eliminado. El ShimCache moderno no tiene marcador interno que diga que hubo ejecución. Así que aunque confiaras en el flag legado, debes dejar de hacerlo en cuanto entras en Windows moderno.

Para ver exactamente qué campos expone una entrada moderna del ShimCache, la referencia del formato binario detalla cada offset.

Cómo confirmar la ejecución

Trata un acierto en ShimCache como hipótesis, y corrobóralo con artefactos que sí registren ejecución:

  • Prefetch (C:\Windows\Prefetch\*.pf) — se escribe al iniciar un proceso y persiste tras los reinicios. Un archivo Prefetch coincidente es prueba sólida de ejecución.
  • AmCache (Amcache.hve) — colmena de registro independiente que registra programas ejecutados e instalados, con hashes SHA-1 para identificación inequívoca. (¿Por qué ambos? Mira ShimCache vs AmCache.)
  • Registros de Security y Sysmon — los eventos de creación de proceso (4688, Sysmon 1) son la evidencia de ejecución de máxima fidelidad disponible.
  • UserAssist, BAM/DAM, RecentApps — señales adicionales de ejecución basadas en el registro.

La referencia de artefactos de ejecución de programas resume lo que captura cada uno y su fiabilidad en la práctica.

En resumen

Una entrada del ShimCache te dice que Windows miró un archivo concreto en algún momento. Es un pivote de alta señal para probar existencia, no ejecución. Para afirmar que un programa se ejecutó, combina el ShimCache con Prefetch, AmCache o registros de creación de procesos — y escribe la conclusión en un lenguaje que coincida con la evidencia que realmente tienes.

Para analizar el ShimCache de una colmena SYSTEM ahora mismo, suéltala en el Shimcache Parser. Todo se ejecuta en tu navegador; el archivo nunca sale de la página.

Lectura adicional

Artículos relacionados