stringtranslate.com

Sobrelectura de búfer

En seguridad informática y programación , una sobrelectura de búfer [1] [2] o lectura fuera de límites [3] es una anomalía en la que un programa , mientras lee datos de un búfer , sobrepasa el límite del búfer y lee (o intenta leer) la memoria adyacente. Este es un caso especial de violación de la seguridad de la memoria .

Las lecturas excesivas del búfer pueden ser provocadas, como en el caso del error Heartbleed , por entradas creadas con fines malintencionados que están diseñadas para explotar la falta de comprobación de límites para leer partes de la memoria que no están destinadas a ser accesibles. También pueden ser causadas únicamente por errores de programación. Las lecturas excesivas del búfer pueden provocar un comportamiento errático del programa, incluidos errores de acceso a la memoria , resultados incorrectos, un bloqueo o una violación de la seguridad del sistema. Por lo tanto, son la base de muchas vulnerabilidades del software y pueden ser explotadas con fines malintencionados para acceder a información privilegiada. [ cita requerida ]

En otras ocasiones, las lecturas excesivas del búfer que no son causadas por entradas maliciosas pueden provocar fallas si activan errores de páginas no válidas . Por ejemplo, las interrupciones generalizadas de TI en 2024 fueron causadas por un error de memoria fuera de límites en el software de ciberseguridad desarrollado por CrowdStrike . [4]

Los lenguajes de programación comúnmente asociados con sobrelecturas de búfer incluyen C y C++ , que no proporcionan protección incorporada contra el uso de punteros para acceder a datos en cualquier parte de la memoria virtual , y que no verifican automáticamente que la lectura de datos de un bloque de memoria sea segura; los ejemplos respectivos son intentar leer más elementos de los que contiene una matriz, o no agregar un terminador final a una cadena terminada en nulo . La verificación de límites puede prevenir sobrelecturas de búfer, [5] mientras que las pruebas fuzz pueden ayudar a detectarlas.

Véase también

Referencias

  1. ^ "CWE – CWE-126: Buffer Over-read". Common Weakness Enumeration (lista versión 4.15) . 18 de febrero de 2014. Archivado desde el original el 8 de febrero de 2018. Consultado el 24 de julio de 2024 .
  2. ^ Strackx, Raoul; Younan, Yves; Philippaerts, Pieter; Piessens, Frank; Lachmund, Sven; Walter, Thomas (1 de enero de 2009). "Rompiendo el supuesto de secreto de la memoria". Actas del Segundo Taller Europeo sobre Seguridad de Sistemas . EUROSEC '09. Nueva York, NY, EE. UU.: ACM. págs. 1–8. doi :10.1145/1519144.1519145. ISBN 9781605584720. Número de identificación del sujeto  17259394.
  3. ^ "CWE - CWE-126: Buffer Over-read". Enumeración de debilidades comunes (versión de lista 4.15) . Archivado desde el original el 17 de agosto de 2023. Consultado el 24 de julio de 2024 .
  4. ^ "Centro de orientación y corrección de actualizaciones de contenido de Falcon | CrowdStrike". crowdstrike.com . Archivado desde el original el 2024-07-24 . Consultado el 2024-07-24 .
  5. ^ Yves Younan; Wouter Joosen; Frank Piessens (25 de febrero de 2013). "Protección eficiente contra desbordamientos de búfer basados ​​en el montón sin recurrir a la magia" (PDF) . Departamento de Ciencias de la Computación, Universidad Católica de Lovaina. Archivado desde el original (PDF) el 5 de septiembre de 2013. Consultado el 24 de abril de 2014 .

Enlaces externos