Dump C++ and in Rust you should trust, Five Eyes agencies urge
- Reference: 1701911712
- News link: https://www.theregister.co.uk/2023/12/07/memory_correction_five_eyes/
- Source link:
The federal agency, part of the US Department of Homeland Security, published [1]a paper entitled "The Case for Memory Safety Roadmaps," arguing that memory safety errors routinely cause significant damage and that need to to stamp them out.
[2]Memory safety errors refer to flaws like buffer overflows, uninitialized memory, type confusion, and use-after-free. Attackers who exploit these vulnerabilities can often take over affected systems and steal data or run arbitrary code.
[3]
CISA, in conjunction with the National Security Agency (NSA), FBI, and the cyber security authorities of Australia, Canada, the United Kingdom, and New Zealand, said its call for better memory safety follows from its [4]Secure By Design recommendations – endorsed by all of these cyber authorities.
[5]
[6]
"With this guidance, the authoring agencies urge senior executives at every software manufacturer to reduce customer risk by prioritizing design and development practices that implement MSLs [memory safe languages]," the report argues.
"Additionally, the agencies urge software manufacturers to create and publish memory safe roadmaps that detail how they will eliminate memory safety vulnerabilities in their products."
[7]
The point of making a public declaration, CISA says, is for organizations to make clear to customers that they're taking ownership of security concerns.
[8]Small but mighty, 9Front's 'Humanbiologics' is here for the truly curious
[9]Rusty revenant Servo returns to render once more
[10]Microsoft touts Visual Studio Code as a Java juggernaut
[11]Cinnamon and KDE sync version numbers in desktop sibling rivalry
The call to action from CISA and friends follows more than a year of [12]dunking on C/C++ – programming languages that have proven to be a breeding ground for memory safety bugs – and of public [13]celebration of memory safe languages like Rust. In January, the issue even [14]attracted the attention of Consumer Reports , signaling mainstream awareness of the issue.
Prossimo, a project run by the non-profit Internet Security Research Group (ISRG) – which has been [15]rewriting tools like sudo in Rust – held [16]an event last month where the development of memory safety roadmaps was discussed.
"Making the argument for memory safe software is critical if we're going to make the Internet more secure," said Josh Aas, executive director of ISRG's Prossimo project, told The Register .
"CISA's new case for memory safe roadmaps is important because it's all the right information coming from a voice that can reach audiences that have been tough for others to reach in the past."
[17]
At the event, Microsoft's David Weston, VP of operating system security and enterprise, revealed Redmond has [18]committed $10 million to the development of Rust tooling as the software titan standardizes on Rust and other memory safe languages.
Microsoft, CISA observes in its guidance, has acknowledged that about 70 percent of its bugs (CVEs) are memory safety vulnerabilities, with Google confirming a similar figure for its Chromium project and that 67 percent of zero-day vulnerabilities in 2021 were memory safety flaws.
Given that, CISA is advising that organizations move away from C/C++ because, even with safety training (and ongoing efforts to harden C/C++ code), developers still make mistakes.
"While training can reduce the number of vulnerabilities a coder might introduce, given how pervasive memory safety defects are, it is almost inevitable that memory safety vulnerabilities will still occur," CISA argues.
"Even the most experienced developers write bugs that can introduce significant vulnerabilities. Training should be a bridge while an organization implements more robust technical controls, such as memory safe languages."
Bjarne Stroustrup, creator of C++, has [19]defended the language , arguing that ISO-compliant C++ can provide type and memory safety, given appropriate tooling, and that Rust code can be implemented in a way that's unsafe. But that message hasn't done much to tarnish the appeal of Rust and other memory safe languages.
CISA suggests that developers look to C#, Go, Java, Python, Rust, and Swift for memory safe code.
"The most promising path towards eliminating memory safety vulnerabilities is for software manufacturers to find ways to standardize on memory safe programming languages, and to migrate security critical software components to a memory safe programming language for existing codebases," the CISA paper concludes. ®
Get our [20]Tech Resources
[1] https://www.cisa.gov/resources-tools/resources/case-memory-safe-roadmaps
[2] https://www.memorysafety.org/docs/memory-safety/
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/publicsector&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZXFRfLqyarm8@WmTbeWBTwAAANc&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://www.cisa.gov/resources-tools/resources/secure-by-design
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/publicsector&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZXFRfLqyarm8@WmTbeWBTwAAANc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/publicsector&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZXFRfLqyarm8@WmTbeWBTwAAANc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/publicsector&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZXFRfLqyarm8@WmTbeWBTwAAANc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[8] https://www.theregister.com/2023/12/01/9front_humanbiologics/
[9] https://www.theregister.com/2023/09/27/servo_returns/
[10] https://www.theregister.com/2023/12/05/java_visual_studio_code/
[11] https://www.theregister.com/2023/12/01/cinnamon_6_kde_6b/
[12] https://www.theregister.com/2022/09/20/rust_microsoft_c/
[13] https://www.theregister.com/2023/04/27/microsoft_windows_rust/
[14] https://www.theregister.com/2023/01/26/memory_safety_mainstream/
[15] https://www.theregister.com/2023/09/02/isrg_prossimo_sudo_rs/
[16] https://www.memorysafety.org/blog/tectonics-recap/
[17] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/publicsector&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZXFRfLqyarm8@WmTbeWBTwAAANc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[18] https://twitter.com/dwizzzleMSFT/status/1720134540822520268
[19] https://www.theregister.com/2022/09/20/rust_microsoft_c/
[20] https://whitepapers.theregister.com/
> CISA suggests that developers look to C#, Go, Java, Python, Rust, and Swift for memory safe code.
Your code will only be memory safe because you will have implemented nothing and instead spent all your time writing / maintaining generated bindings rather than writing code that does actual stuff...
Besides, these guys have clearly never looked at the code behind the .NET or Java VMs... That memory safe code is floating ontop of a cesspit of rot.
Rather than talking about Rust, perhaps CISA should actually have a play at implementing something with it. They basically are falling into the same category as all the other 14 year-old Rust developers on reddit.
So it's official. Rust is no longer hip.
Government agencies are always late to jump on the bandwagon.
Time for the next fanboi-driven language du jour to make its appearance.
Weren't we told that Ada was the be-all and end-all of all programming languages? Happily, I pragmatically stuck with C, assembler, Cobol and Fortran :-)
Hey, if we can squash 70% of the bugs in these giant security-bug-prone products, I'm all for it.
I fully expect the transition to take over a decade though.
Like the past 30-20 years?
It will never happen.
MMU suffers from design fault
Is it possible to design an MMU that doesn't suffer from buffer overflows, type confusion, uninitialized memory and use-after-free bugs ?
“In an MMU, regions are defined as groups of page tables and are [1]controlled completely in software as sequential pages in virtual memory.”
[1] https://www.sciencedirect.com/topics/computer-science/memory-management-unit
In Rust We Trust!
It is a valid choice for any new software aside from one or two areas, which is unsurprising, since it was designed as a general-purpose language. Microsoft has already chosen it over legacy languages; the same with Google, Xwitter, and more.
Rust is not a bandwagon. It never was.
They make good points
But will the lowest cost offshore out-soruced company and the companies that choose them get the memo?
Yeah, I don't think so.