Vulnerabilidades de Buffer Overflow


 Secure by design es una práctica que se establece para que productos y software sean diseñados para ser seguros. Cada proyecto establece sus vulnerabilidades al principio del diseño de software y son corregidas o reforzadas para cumplir con esta práctica.

Una de las vulnerabilidades que los atacantes prefieren es la vulnerabilidad de tipo Buffer Overflow, estas vulnerabilidades son defectos de diseño al usar tipos de memoria prevalentes los cuales regularmente desembocan en que se comprometa el sistema. Este tipo de vulnerabilidades se pueden mitigar de diferentes formas y en general se puede con algunas herramientas de desarrollo seguro, sin embargo, también existen más formas de mitigaciones, pero estas otras mitigaciones no son tan efectivas al no poder abarcar los diferentes tipos de esta vulnerabilidades

Para explotar un Buffer Overflow un atacante tiene que acceder o escribir información en una región de la memoria equivocada de una computadora, estas regiones son las siguientes:

  • Stack-based overflow
Este tipo de desbordamiento se encuentra en el stack de la memoria y ocurre cuando se calcula incorrectamente o se limita la cantidad de datos que se pueden escribir en las estructuras de datos que se encuentran en el stack.
  • Heap-based overflow
Este tipo de desbordamiento surge cuando se escriben más datos al montón de memoria de los que se está diseñado para retener

Es necesario prevenir estas vulnerabilidades lo antes posible debido al riesgo que representan, a continuación, se exponen una lista de recomendaciones para poder abordar esta vulnerabilidad:
  • Utilizar lenguajes que sean seguros para la memoria al momento de desarrollar software.
  • Si ya se cuenta con software desarrollado, verificar si el lenguaje utilizado es seguro para la memoria y en caso de no serlo, hacer una transición paulatina a un lenguaje que si lo sea.
  • Al momento de compilar habilitar opciones que realicen comprobaciones de tiempo de ejecución y protección contra desbordamientos de buffer.
  • Ejecutar pruebas unitarias con distintas herramientas que realicen validaciones de desbordamiento de buffer, así mismo se deberán realizar pruebas agresivas como pruebas de producto, análisis estáticos entre otros para evitar que la vulnerabilidad se materialize antes de finalizar el producto y hacer correcciones una vez terminado este mismo.
  • Hacer análisis de causa-raíz de vulnerabilidades pasadas, esto con la finalidad de poder corregir dichas vulnerabilidades al detectar patrones y tendencias.

Principios a seguir:

Se mencionarán los principios que deben de seguir los fabricantes para asegurar que el diseño de sus productos y softwares sean seguros:

Principio 1: Asumir la responsabilidad de los resultados de seguridad del cliente

Se debe de priorizar la seguridad y eliminar todas las vulnerabilidades de desbordamiento de búfer. Y la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) y la Oficina Federal de Investigaciones (FBI) mencionan que es importante que los fabricantes inviertan tiempo y recursos en implementar las mejores practicas en el ciclo de vida de sus productos o softwares y así evitar que después del lanzamiento surjan vulnerabilidades y correcciones posteriores que puedan comprometer los datos de los usuarios.

La CISA y el FBI también recomiendan utilizar estas prácticas para evitar vulnerabilidades: Se recomienda utilizar herramientas de análisis estáticos y realizar revisiones rigurosas al código para evitar vulnerabilidades.

Principio 2: Adoptar la transparencia y la rendición de cuentas radicales

En este principio se menciona que un punto clave para los fabricantes es ser transparentes en la publicación de vulnerabilidades de sus productos o softwares, ya que mantener actualizadas las vulnerabilidades les permite a sus usuarios protegerse y realizar las configuraciones o actualizaciones pertinentes.

Es fundamental que las vulnerabilidades publicadas por los fabricantes contengan información relevante, precisa y que cada una de las vulnerabilidades tenga su enumeración de comunes (CWE) que es identificador. También las vulnerabilidades deben de ser publicadas en tiempo oportuno y no esperar a que sean explotadas.

Principio 3: Construir la estructura organizacional y el liderazgo para lograr estos objetivos

Este principio señala que la seguridad en los productos o software debería de ser visto como una inversión o estrategia de los fabricantes, porque implementar métodos de seguridad podría generar ahorros significados. A parte de la cuestión financiera para los fabricantes también ahí que considerar otros puntos importantes como lo es la seguridad de los clientes y el prestigio del producto o software.

Por los puntos antes mencionados es indispensable que los fabricantes mantengan monitoreado las vulnerabilidades de sus productos para así lograr abordarlas y mitigarlas de manera oportuna.
 

Recomendaciones

  • Hacer análisis de causa-raíz de vulnerabilidades pasadas, esto con la finalidad de poder corregir dichas vulnerabilidades al detectar patrones y tendencias.
  • Habilitar opciones que realicen comprobaciones de tiempo de ejecución y protección contra desbordamientos de buffer al momento de compilar código
  • Utilizar lenguajes que sean seguros para la memoria al momento de desarrollar software
  • Establecer controles de acceso SSH basados en la red para minimizar el riesgo de ataque
  • Auditar herramientas de acceso remoto. (NIST CSF, 2024)
  • Revisar logs para de ejecución de software de acceso remoto. (NIST CSF, 2024)
  • Limitar estrictamente el uso de los protocolos SMB y RDP.
  • Realizar auditorías de seguridad. (NIST CSF, 2024)
  • Deshabilitar los servicios y procesos no requeridos para reducir los vectores de ataque. (NIST CSF, 2024)
  • Tener filtros de correo electrónico y spam.
  • Concientizar a los empleados sobre los métodos de Phishing e Ingeniería social.
  • Realizar copias de seguridad, respaldos o back-ups constantemente.
  • Mantener los respaldos desconectados de la red de la organización, verificando constantemente la confidencialidad, integridad y disponibilidad de estos.
  • Revisar continuamente los privilegios de los usuarios.
  • Tener una solución EDR robusta configurada adecuadamente basada en las mejores prácticas (de acuerdo con documentación de fabricante).
  • Habilitar la autenticación multifactor.

Referencias

  1. CISA. (2025. febrero 12) Secure by Design Alert: Eliminating Buffer Overflow Vulnerabilities. Recuperado el 12 de febrero del 2025 en: https://www.cisa.gov/resources-tools/resources/secure-design-alert-eliminating-buffer-overflow-vulnerabilities
  2. CISA. (S.F.) Secure by Design. Recuperado el 12 de febrero del 2025 en: https://www.cisa.gov/securebydesign
  3. PACKET LABS. (2024, Abril 25) Demystifying Overflow Attacks: Buffer, Heap, Stack, Integer, and More. Recuperado el 12 de febrero del 2025 en: https://www.packetlabs.net/posts/demystifying-overflow-attacks/

El nombre es requerido.
El email es requerido.
El email no es válido.
El comentario es requerido.
El captcha es requerido.



Comentarios