[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