Guía de la NSA para la seguridad de la memoria del software

La Agencia de Seguridad Nacional (NSA) ha publicado una guía para ayudar a los desarrolladores a prevenir los problemas de seguridad de la memoria del software.

Seguridad en la memoria del software
Seguridad en la memoria del software

Una mala gestión de la memoria del software provoca problemas técnicos y fallos del programa, con importantes consecuencias para todo el sistema informático de una empresa. Es así como los ciberatacantes se aprovechan de la vulnerabilidad de la memoria para acceder a información sensible y ejecutar un código no autorizado.

Para ayudar a prevenir los problemas de seguridad de la memoria del software, la Agencia de Seguridad Nacional (NSA) ha publicado una guía para los desarrolladores de software.

Promover la seguridad de la memoria del software

La forma en que un programa de software gestiona la memoria es fundamental para evitar muchas vulnerabilidades. Descuidar la seguridad de la memoria del software puede proporcionar a los ciberatacantes la clave para bloquear el programa o ejecutar cambios indeseados.

Neal Ziring, director técnico de ciberseguridad de la NSA, ha subrayado que estos tipos de ataques son «demasiado comunes hoy en día» y que, por tanto, la seguridad de la memoria del software sigue siendo una tarea pendiente. 

En efecto, las pautas de la NSA llegaron pocos días después que Lenovo parchó tres vulnerabilidades para modificar la configuración de arranque seguro cambiando la variable de memoria NVRAM. Por su parte, tanto Microsoft como Google han declarado que los problemas de seguridad de la memoria del software son los causantes de casi el 70% de sus vulnerabilidades. 

Pautas para los desarrolladores de softwares
Guía de la NSA para la seguridad de la memoria del software

Las pautas de la NSA para la memoria del software

Las actuales directrices de la NSA recomiendan a las organizaciones utilizar lenguajes seguros para la memoria y, sobre todo, reforzar su protección por medio de ditintos recursos tecnológicos. 

Se evidencia la necesidad de un análisis del software mediante pruebas de seguridad de aplicaciones estáticas y dinámicas, SAST y DAST, que pueden identificar los problemas de la memoria del software. Sin embargo, ni SAST ni DAST pueden hacer que el código sea totalmente seguro en su memoria. 

El entorno de compilación y ejecución puede utilizarse para dificultar que los ciberatacantes expandan los problemas de gestión de la memoria. La mayoría de estas características añadidas se centran en limitar dónde se puede ejecutar el código. Como resultado, esto reduce las oportunidades de un actor malicioso de sobrescribir para dirigir el flujo del programa a una ubicación no deseada.

Utilizar las mejores opciones tecnológica, como la Aleatoriedad en la Disposición del Espacio de Direcciones (ASLR) y la Prevención de Ejecución de Datos (DEP) ayuda a añadir imprevisibilidad a la ubicación de los elementos de la memoria y a evitar que los datos se ejecuten como código. El sistema de prevención DEP no es insuperable, pero reduce las probabilidades de que un exploit tenga éxito. 

Las pautas de protección ofrecidas en la guía de la NSA pueden ayudar a los desarrolladores para mitigar las vulnerabilidades de la memoria protegiendo así la seguridad del programa.

Imágenes: Pixabay