Recursos para aprender sobre la asignación de memoria y la seguridad

2

¿Hay algún buen recurso en línea para conocer cómo la asignación de memoria afecta la seguridad?

Es una nueva área para mí, y se agradecería cualquier indicador sobre dónde comenzar.

    
pregunta Ayrx 30.05.2012 - 11:18
fuente

3 respuestas

2

Vi lo que hiciste allí, preguntando sobre la asignación de memoria & seguridad luego mencionando punteros;)

En mi opinión, la mejor manera de comenzar a aprender sobre la memoria (en general) es escribir código. No estoy seguro de que haya otra forma de abordar esto. No es un código cualquiera, busque un lenguaje que obligue a administrar la memoria en el programador, no en entornos administrados como Java o .NET Framework. Estos son excelentes lenguajes para RAD, pero no proporcionan los aspectos de nivel inferior que se requerirían. Recomiendo C o C ++. Aprenda sobre punteros, referencias colgantes, asignación de memoria dinámica y amp; dislocación, etc.

El ensamblaje es un lenguaje fantástico si desea conocer los entresijos de cómo funciona el software, pero también es difícil de entender. Sin embargo, no necesariamente tiene que poder escribir código de ensamblaje. Solo retire algunos documentos en el idioma y le garantizo que aumentará sustancialmente su comprensión de la memoria.

A veces, la única forma de entender realmente cómo funciona algo es desarmarlo. Elija un libro sobre la arquitectura del sistema operativo, como Sistemas operativos: diseño e implementación o un libro de ingeniería inversa Reversing: Secrets of Reverse Engineering . Separe algunas cosas, familiarícese con un depurador y analice las aplicaciones que se ejecutan en la memoria. Comience a jugar con puntos de interrupción y vea qué le dice su depurador sobre lo que está sucediendo.

En conclusión, la mejor manera en mi opinión de aprender sobre la memoria es ser responsable de su gestión. Comienza despacio, aprende C ++ y trabaja para conseguir cosas más difíciles.

enlace

    
respondido por el Fairlight 02.06.2012 - 06:04
fuente
2

Desbordamientos de búfer puede ser lo que intenta referirse. Una vez que descubras exactamente qué es lo que quieres aprender, es posible que desees crear tu propio entorno de prueba para observar cómo funciona. DVWA es un gran lugar para comenzar con eso.

    
respondido por el KDEx 02.06.2012 - 05:42
fuente
1

El asignador de memoria puede influir en la seguridad de la siguiente manera: la elección del asignador de memoria puede afectar la facilidad o dificultad de explotar la saturación del búfer y otras vulnerabilidades relacionadas con la seguridad de la memoria.

Por ejemplo, la asignación aleatoria de la ubicación en la que se asignan los objetos puede interrumpir los ataques que dependen de estos objetos para que estén en ubicaciones predecibles, lo que derrota al atacante. Por lo tanto, un asignador de memoria bien diseñado puede desempeñar un papel en la implementación de ASLR ( aleatorización del diseño del espacio de direcciones ). En general, un asignador de memoria puede potencialmente ayudar a defenderse contra algunas "vulnerabilidades de almacenamiento dinámico".

Consulte, por ejemplo, los siguientes artículos de investigación para algunos trabajos sobre la construcción de asignadores de memoria reforzados que dificultan la explotación de este tipo de vulnerabilidades:

Aquí hay más información sobre cómo los sistemas operativos implementados implementan estas ideas:

respondido por el D.W. 03.06.2012 - 06:36
fuente

Lea otras preguntas en las etiquetas