Anti-Dump

El anti-dump impide que un atacante extraiga tu aplicación .NET de la memoria mientras se ejecuta, cerrando un camino que se salta por completo las protecciones estáticas.

  • .NET.NET
TL;DR

Las protecciones estáticas protegen la aplicación en disco. Pero mientras se ejecuta se carga en memoria, y un atacante puede intentar volcar esa memoria para recuperar una copia sin proteger. El anti-dump es una protección de self-protection en runtime que detecta y bloquea el memory dumping y cierra ese camino.

Definición

¿Qué es el anti-dump?

El anti-dump es una protección que evita que una aplicación sea extraída de la memoria mientras se está ejecutando. Aborda un bypass concreto: aunque el código esté ofuscado en disco, el runtime necesita una forma utilizable en memoria para ejecutarlo.

Un atacante que no avanza contra el archivo en disco puede dejar que la aplicación arranque y luego volcar su memoria para capturar esa forma utilizable. El memory dumping es una vía habitual para vencer a la protección estática.

El anti-dump cierra ese camino. Es una protección en runtime, de estilo RASP, que detecta los intentos de dump y los interfiere, así que la imagen en memoria no se puede extraer y reutilizar de forma limpia.

Mecanismo

Cómo funciona el anti-dump

El anti-dump combina varias técnicas en runtime:

  • Detección de intentos de dump. La aplicación detecta cuándo un proceso está intentando leer o capturar su memoria.

  • Protección de memoria. El layout en memoria se estructura de forma que un dump capturado no sea un assembly completo y utilizable.

  • Respuesta configurable. Al detectarlo, la aplicación puede terminar, corromper el dump o alterar su comportamiento.

La aplicación se ejecuta con normalidad, pero su forma en memoria no se puede sacar de forma limpia.

Ejemplo

Ejemplo de anti-dump

El mismo método de carga de clave. El anti-dump cambia lo que un atacante puede sacar de la memoria mientras se ejecuta.

Sin anti-dump

El atacante deja que tu aplicación ofuscada arranque, vuelca la memoria del proceso y recupera una copia utilizable del assembly.

Con anti-dump

El mismo intento se detecta, el dump queda incompleto o corrompido y la memoria capturada no es un assembly utilizable.

Sin anti-dump
public byte[] LoadMasterKey()
{
    return SecureStorage.Read(KeyId);
}
Con anti-dump
public byte[] LoadMasterKey()
{
    return SecureStorage.Read(KeyId);
}

Casos de uso

Cuándo usar anti-dump

El anti-dump importa especialmente cuando tu aplicación .NET:

  • Está protegida con obfuscation que no quieres que se salten a través de la memoria.
  • Contiene lógica sensible que un atacante intentaría recuperar de un proceso en ejecución.
  • Debe resistir la extracción en runtime, no solo el análisis estático.

Se combina con el anti-debugging y el anti-tamper como capa de hardening en runtime: juntos defienden la aplicación mientras se ejecuta, no solo en disco.

Disponibilidad por plataforma

Anti-dump y la plataforma .NET

  • .NET

    Protección anti-dump frente a la extracción de la memoria del assembly en ejecución. Es una protección de hardening en runtime dentro del conjunto de Shield para .NET.

Preguntas frecuentes

¿Qué es el anti-dump?
El anti-dump es una protección de self-protection en runtime para .NET que detecta y bloquea los intentos de extraer una aplicación en ejecución desde la memoria, cerrando un camino que los atacantes usan para saltarse las protecciones estáticas.
¿El anti-dump afecta al rendimiento?
El coste en runtime es mínimo. Las comprobaciones de anti-dump son ligeras y no afectan a la ejecución normal.
¿Por qué hace falta anti-dump si mi código está ofuscado?
La obfuscation protege el código en disco. Mientras la aplicación se ejecuta, existe una forma utilizable en memoria. El anti-dump evita que esa forma en memoria pueda extraerse.
¿Se puede saltar el anti-dump?
Un atacante decidido puede intentar técnicas de dump avanzadas; por eso el anti-dump se aplica en capas junto al anti-debugging y la obfuscation. El objetivo es hacer la extracción poco práctica.
¿Qué plataformas soportan el anti-dump?
ByteHide Shield ofrece anti-dump para .NET.
+10.000 desarrolladores y empresas protegen sus aplicaciones con ByteHide

Protege tu aplicación con
ByteHide Shield

El anti-dump es una de las más de 20 protecciones de ByteHide Shield. Aplícalo a tu aplicación .NET como parte de una capa de hardening en runtime.

ByteHide runtime dashboard showing live threat monitoring and protection metrics