Microsoft prepara un nuevo lenguaje para una programación segura

0
39

Microsoft ha descubierto que aproximadamente el 70% de las vulnerabilidades de seguridad que aborda se deben a problemas de seguridad de la memoria. Para facilitar la escritura de código más seguro, la compañía está desarrollando un lenguaje diseñado para la programación segura de la infraestructura.

La primera versión del nuevo lenguaje, llamado Proyecto Verona, incorpora tres ideas centrales:

  • Libertad de data-race, que renuncia a la mutación concurrente y arbitraria, para permitir una gestión de memoria escalable con seguridad temporal sin sincronización global.
  • Propietarios simultáneos, que proporciona un nuevo modelo de concurrencia que ofrece una coordinación de recursos ligera y asíncrona.
  • Regiones lineales, con el modelo de propiedad basado en grupos de objetos. Esto difiere del lenguaje Rust, que se basa en un solo objeto, explicó Microsoft. En Verona, existen estrategias de gestión de la memoria por región. También se destaca la compartimentación de los componentes heredados.

Verona explora la compartimentación a nivel de diseño lingüístico. Con Verona, hay hilos que pueden acceder a regiones. Se puede acceder a cualquier región con un solo hilo de rosca. Hay un punto de entrada lineal en una región, y las regiones pueden anidarse dentro de otras regiones. Una región inmutable compartida puede mantener los elementos no mutados.

Además, se utiliza el sandboxing omnipresente para ejecutar código heredado no fiable. Las bibliotecas de sandbox se pueden incrustar en un programa de Verona.

El proyecto Verona incluye un tiempo de ejecución de calidad de producción, y un prototipo de intérprete y verificador de tipo. Los planes exigen un compilador y un código abierto para GitHub que permita la colaboración.

Como parte de sus esfuerzos de seguridad de memoria, Microsoft ha estado explorando el uso de Rust para construir nuevos componentes y reescribir componentes heredados. Microsoft ha señalado que el software de sistemas ha sido el dominio de lenguajes como C y C++, que no fueron diseñados intrínsecamente para la seguridad.

Paul Krill, InfoWorld.com