Todas las lecciones Read in English

Seguridad a fondo · Unidad 21

Seguridad de memoria: límites y vida útil

Comprende qué puede utilizar un programa, cómo difieren los errores de memoria y cómo prevenirlos.

9 minlista

ATT&CK TA0002 Execution

Para prepararteHistoria de las computadorasHistoria de los sistemas operativos

Después de esta lección puedes

  • Distinguir los límites de un objeto de su vida útil válida.
  • Explicar por qué un error de memoria no demuestra automáticamente un impacto de seguridad concreto.
  • Relacionar prevención, pruebas y mitigación con el problema que aborda cada una.

Lecciones de esta unidad

Explorar 6 lecciones de este tema
  1. La longitud debe caberCompara una conversión de texto con su capacidad en bytes, incluido el terminador.3 min
  2. Los objetos tienen una vidaUsa la secuencia de un trabajo para distinguir una referencia guardada de un objeto vigente.4 min
  3. La aritmética tiene límitesComprueba el espacio calculado frente a los límites aritméticos y de la aplicación.4 min
  4. Mitigar no repara el defectoDistingue la protección configurada, una corrección candidata y su despliegue verificado.3 min
  5. Fuzzing: explorar entradasInterpreta una prueba sin hallazgos según el comportamiento que realmente ejercitó.4 min
  6. Memoria segura no es toda la seguridadDistingue las garantías de memoria, las dependencias nativas y los permisos sobre documentos.4 min

Una aplicación de fotos mantiene una imagen en memoria mientras la editas. Parece sencillo, pero necesita saber dónde empieza, cuánto almacenamiento le corresponde y cuándo puede reutilizarlo. La seguridad de memoria consiste en respetar esas condiciones. Puedes entender las ideas importantes sin conocer lenguaje ensamblador.

El espacio de trabajo de un programa

Un espacio de direcciones es la vista de memoria de un proceso. Puede contener instrucciones ejecutables, datos duraderos, objetos asignados dinámicamente e información temporal de llamadas a funciones. El sistema operativo asigna direcciones virtuales a recursos y aplica permisos de acceso.

Los dibujos de libros suelen mostrar una pila y un montón creciendo uno hacia otro. La distribución real depende de plataforma, compilador, asignador de memoria y programa; los objetos no tienen por qué seguir ese orden. Un proceso tampoco puede acceder normalmente a la memoria de otro solo por compartir computadora.

Un búfer almacena una secuencia, como los píxeles de una imagen. Un objeto puede ocupar solo parte de una página de memoria. Por eso, el sistema operativo puede permitir el acceso a una página aunque el programa haya cruzado el límite de un objeto individual.

Seguridad de memoria: límites y vida útilLímites y vida útil son dos comprobaciones esenciales. El diagrama clasifica reglas de acceso, no posiciones físicas en RAM.¿Dentro de loslímites delobjeto?¿Durante su vidaútil válida?Ambas preguntas importan
Límites y vida útil son dos comprobaciones esenciales. El diagrama clasifica reglas de acceso, no posiciones físicas en RAM.

Dónde y cuándo son preguntas distintas

Un error espacial accede fuera de los límites permitidos de un objeto. Una lectura puede revelar datos ajenos o provocar un fallo; una escritura puede alterar datos o provocar un fallo. La etiqueta, por sí sola, no dice qué puede conseguir un atacante de forma fiable.

Un error temporal afecta a la vida útil. En el uso de memoria liberada, queda una referencia después de liberar el almacenamiento del objeto. La dirección numérica podría seguir asignada, o contener después otro objeto, pero la referencia antigua ya no es válida.

Imagina que te prestan una taquilla numerada. Leer la taquilla vecina rompe un límite. Seguir usando tu asignación después de devolverla rompe la regla de vida útil. La memoria real es más compleja, pero ambas preguntas siguen siendo útiles.

Un fallo aporta evidencia con límites

Supongamos que la aplicación se detiene al decodificar una imagen. Un diagnóstico puede identificar una lectura inválida, su ubicación y la asignación implicada. Eso respalda un defecto concreto. La interrupción no demuestra por sí sola robo de información, cambios de permisos ni control de la ejecución.

Las consecuencias dependen de operación, datos afectados, autoridad del proceso, exposición de entradas y protecciones activas. Separa el error observado de una consecuencia plausible pendiente de investigación. Un defecto grave puede tener efectos distintos en un proceso de vista previa aislado y en un servicio con amplios privilegios.

Cada protección aborda una parte

Protección Qué aporta
Abstracciones seguras de memoria Aplican reglas de límites, propiedad o vida útil; los componentes inseguros y las dependencias nativas requieren revisión.
NX / DEP Impide ejecutar instrucciones en páginas no ejecutables; no comprueba los límites de objetos.
W^X Restringe que una región sea escribible y ejecutable simultáneamente.
Canarios de pila Detectan ciertas sobrescrituras de datos protegidos de la pila; la cobertura depende de la implementación.
ASLR Aleatoriza partes de la distribución de direcciones; no corrige accesos inválidos.

Una mitigación reduce una posible consecuencia. Una reparación elimina el defecto. Ambas son útiles; ninguna debe confundirse con una promesa de que todo error de memoria será inofensivo.

Del diagnóstico a una reparación duradera

El equipo de desarrollo puede revisar tamaños y propiedad de objetos, corregir cálculos de longitud y sustituir interfaces inseguras cuando corresponda. Las pruebas automáticas deben cubrir el límite reparado y el funcionamiento normal. El fuzzing explora entradas variadas; herramientas como AddressSanitizer detectan ciertos accesos inválidos en ejecuciones instrumentadas. Superar las pruebas significa que esas comprobaciones pasaron, no que toda ejecución posible sea segura.

Mantén las dependencias y limita los recursos accesibles a los analizadores de archivos. Una nota útil identifica objeto, operación observada, versión afectada, cambio propuesto y evidencia de verificación. Así, otra persona tiene algo concreto que mejorar.

EXPLORA EL CONCEPTO

Lee un diagnóstico ficticio

Elige un informe. ¿Qué demuestra y qué sigue sin saberse?

Lectura fuera de límites

El lector accedió fuera del búfer de imagen. Hay evidencia de un defecto de límites; saber si salieron datos sensibles requiere evidencia adicional.

Uso tras liberar

Una función de respuesta accedió al objeto después de liberarlo. Revisa propiedad y duración de esa función; ampliar el búfer no repara la vida útil.

La mitigación detuvo la ejecución

Una protección impidió una operación. Es evidencia útil sobre esta ejecución, pero el defecto de origen todavía necesita reparación.

Modelo simplificado para aprender. No se conecta a sistemas ni usa datos reales.

Términos que viste

espacio de direccionesbúferuso de memoria liberadamitigación

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. Un diagnóstico muestra acceso dentro de una página asignada pero fuera del objeto previsto. ¿Es válido?

    Ver la respuesta

    Respuesta correcta: No; el permiso de página no establece los límites del objeto. Los objetos pueden ser menores que las páginas: son límites distintos.

  2. Se usa una referencia antigua después de liberar el objeto. ¿Qué distinción importa?

    Ver la respuesta

    Respuesta correcta: La vida útil del objeto ha terminado. Una dirección numérica conocida no vuelve válida la referencia antigua.

  3. ¿Qué afirmación describe correctamente DEP?

    Ver la respuesta

    Respuesta correcta: Restringe la ejecución desde páginas de memoria no ejecutables. Limita un comportamiento; el defecto original sigue necesitando reparación.

  4. Un sanitizador detecta una lectura inválida. ¿Qué conclusión es sólida?

    Ver la respuesta

    Respuesta correcta: Se observó una lectura inválida concreta; los efectos más amplios necesitan evidencia. Registra operación y entorno antes de describir consecuencias adicionales.

Pruébalo

  • EscribeEl diagnóstico de un visor de imágenes ficticio dice: «lectura fuera del búfer de imagen; proceso detenido». Escribe una observación confirmada, una consecuencia todavía desconocida y una recomendación de reparación. Explica por qué «se robaron todos los archivos» exageraría la evidencia.
Referencias