¿Por qué las contramedidas contra los ataques de secuestro de flujo de control se implementan principalmente en software?

4

Me pregunto por qué las contramedidas contra la inyección de código y los ataques de secuestro de flujo de control (por ejemplo, los desbordamientos de búfer basados en la pila y los desbordamientos de búfer basados en el montón) se implementan principalmente en software.

Ejemplos de contramedidas populares y ampliamente implementadas son:
- ASLR
- Pila de canarios
- Regiones de memoria no ejecutables

Pero, ¿por qué exactamente estas contramedidas no se implementan completamente en el hardware, o al menos son compatibles con el hardware? Dado que en la actualidad el hardware reconfigurable (por ejemplo, los FPGA) es asequible, este enfoque me parece perfectamente posible.

¿O existen contramedidas basadas en hardware? Y si es así, ¿alguien puede darme algunos ejemplos?

    
pregunta user3171258 30.05.2014 - 05:47
fuente

1 respuesta

4

Las regiones de memoria no ejecutables son un ejemplo de una contramedida basada en hardware: la no ejecutabilidad de la memoria se aplica mediante la memoria unidad de gestión . La protección de desbordamiento del montón también se puede implementar a nivel de hardware (colocando páginas de memoria no legibles al final de una asignación de montón), pero generalmente no lo es, porque reduce considerablemente el espacio de direcciones disponible y solo funciona para asignaciones que son un múltiplo exacto del tamaño de la página.

La mayoría de las contramedidas se implementan a nivel de software porque los conceptos que implican (como el diseño del espacio de direcciones) solo existen a nivel de software.

    
respondido por el Mark 30.05.2014 - 06:38
fuente

Lea otras preguntas en las etiquetas