Safemd: desasignación segura de memoria basada en propiedad para programas c
Autores: Yin, Xiaohua; Huang, Zhiqiu; Kan, Shuanglong; Shen, Guohua
Idioma: Inglés
Editor: MDPI
Año: 2024
Acceso abierto
Artículo científico
2024
Safemd: desasignación segura de memoria basada en propiedad para programas c
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Lenguaje de programación
Seguridad de memoria
Sistema de propiedad
Fugas de memoria
Propiedad exclusiva
SafeMD
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 28
Citaciones: Sin citaciones
Rust es un lenguaje de programación relativamente nuevo que tiene como objetivo proporcionar seguridad en la memoria en tiempo de compilación. Introduce un novedoso sistema de propiedad que hace cumplir la desasignación automática de recursos no utilizados sin utilizar un recolector de basura. Ante la promesa de seguridad de Rust, surge naturalmente una pregunta sobre los posibles beneficios de explotar la propiedad para garantizar la seguridad de la memoria de los programas en C. En nuestro trabajo anterior, desarrollamos un verificador formal de propiedad para verificar si un programa en C cumple con las restricciones de propiedad exclusiva. En este documento, además proponemos un enfoque de desasignación segura de memoria basado en la propiedad, llamado SafeMD, para corregir fugas de memoria en los programas en C que cumplen con la propiedad exclusiva definida en el verificador formal de propiedad previo. Beneficiándose de los programas en C que cumplen con la propiedad exclusiva, SafeMD evita el análisis de alias y entre procedimientos. Además, los parches generados por SafeMD hacen que los programas en C de entrada sigan cumpliendo con la propiedad exclusiva. Por lo general, un programa en C que cumple con las restricciones de propiedad exclusiva es más seguro que su versión normal. Nuestra evaluación muestra que SafeMD es efectivo para corregir fugas de memoria en programas en C que cumplen con la propiedad exclusiva.
Descripción
Rust es un lenguaje de programación relativamente nuevo que tiene como objetivo proporcionar seguridad en la memoria en tiempo de compilación. Introduce un novedoso sistema de propiedad que hace cumplir la desasignación automática de recursos no utilizados sin utilizar un recolector de basura. Ante la promesa de seguridad de Rust, surge naturalmente una pregunta sobre los posibles beneficios de explotar la propiedad para garantizar la seguridad de la memoria de los programas en C. En nuestro trabajo anterior, desarrollamos un verificador formal de propiedad para verificar si un programa en C cumple con las restricciones de propiedad exclusiva. En este documento, además proponemos un enfoque de desasignación segura de memoria basado en la propiedad, llamado SafeMD, para corregir fugas de memoria en los programas en C que cumplen con la propiedad exclusiva definida en el verificador formal de propiedad previo. Beneficiándose de los programas en C que cumplen con la propiedad exclusiva, SafeMD evita el análisis de alias y entre procedimientos. Además, los parches generados por SafeMD hacen que los programas en C de entrada sigan cumpliendo con la propiedad exclusiva. Por lo general, un programa en C que cumple con las restricciones de propiedad exclusiva es más seguro que su versión normal. Nuestra evaluación muestra que SafeMD es efectivo para corregir fugas de memoria en programas en C que cumplen con la propiedad exclusiva.