[Info-vax] NSA on programming languages

IanD iloveopenvms at gmail.com
Tue Nov 15 05:34:37 EST 2022


On Saturday, November 12, 2022 at 1:01:58 PM UTC+11, Arne Vajhøj wrote:
> https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF 
> 
> National Security Agency | Cybersecurity Information Sheet 
> Software Memory Safety 
> 
> <quote> 
> While developers often perform rigorous testing to 
> prepare the logic in software for surprising conditions, exploitable 
> software 
> vulnerabilities are still frequently based on memory issues. Examples 
> include 
> overflowing a memory buffer and leveraging issues with how software 
> allocates and de- 
> allocates memory. Microsoft revealed at a conference in 2019 that from 
> 2006 to 2018 
> 70 percent of their vulnerabilities were due to memory safety issues. 
> Google also 
> found a similar percentage of memory safety vulnerabilities over several 
> years in 
> Chrome. 
> </quote> 
> 
> <quote> 
> Commonly used languages, such as C and C++, provide a lot of freedom and 
> flexibility 
> in memory management while relying heavily on the programmer to perform 
> the needed 
> checks on memory references. Simple mistakes can lead to exploitable 
> memory-based 
> vulnerabilities. Software analysis tools can detect many instances of memory 
> management issues and operating environment options can also provide some 
> protection, but inherent protections offered by memory safe software 
> languages can 
> prevent or mitigate most memory management issues. NSA recommends using a 
> memory safe language when possible. While the use of added protections 
> to non- 
> memory safe languages and the use of memory safe languages do not 
> provide absolute 
> protection against exploitable memory issues, they do provide 
> considerable protection. 
> Therefore, the overarching software community across the private sector, 
> academia, 
> and the U.S. Government have begun initiatives to drive the culture of 
> software 
> development towards utilizing memory safe languages. 
> </quote> 
> 
> <quote> 
> Using a memory safe language can help prevent programmers from 
> introducing certain 
> types of memory-related issues. Memory is managed automatically as part 
> of the 
> computer language; it does not rely on the programmer adding code to 
> implement 
> memory protections. The language institutes automatic protections using 
> a combination 
> of compile time and runtime checks. These inherent language features 
> protect the 
> programmer from introducing memory management mistakes unintentionally. 
> Examples 
> of memory safe language include C#, Go, Java, Ruby™, Rust, and Swift. 
> </quote> 
> 
> Arne 
> 
> PS: Only Java and Ruby are currently available on VMS.

Functional languages?

What about the use of a specification language such as TLA+?

Seems there is a lot of things we can do to push for better software outcomes



More information about the Info-vax mailing list