2

In a recent Substack article ("The Insecurity Industry", 2021-07-26) Edward Snowden writes:

The vast majority of vulnerabilities that are later discovered and exploited by the Insecurity Industry are introduced, for technical reasons related to how a computer keeps track of what it’s supposed to be doing, at the exact time the code is written, which makes choosing a safer language a crucial protection... and yet it’s one that few ever undertake.

The context is memory safety. Here, I don't quite get the bold part, in particular the significance of "the exact time the code is written" and why that would be specifically due to "technical reasons related to how a computer keeps track of what it’s supposed to be doing" (i.e. memory management). Is he just hinting at the lack of memory safety guarantees at compile-time in "unsafe" languages?

5
  • 1
    I'm guessing he's referring to languages without a garbage collector... it's much easier to introduce a stack overflow type vulnerability if you're using raw pointers/stacks. I think he's saying that it's much easier to screw up when using languages like C or Rust. (Harder to find those bugs too sometimes when you've got an uninitialized pointer floating around...) Commented Jul 28, 2021 at 23:31
  • 1
    @pcalkins you wrote "easier to screw up when using... C or Rust," but the "or Rust" does not make sense. It should be "easier to screw up when using... C than Rust." The programming language that Snowden links to in his article as an example of a safe language is Rust.
    – hft
    Commented Jul 29, 2021 at 6:14
  • Edward Snowden seems to have a propensity to present technical stuff that is well known to people in the security industry in a way that makes infosec professionals scratch their heads.
    – nobody
    Commented Jul 29, 2021 at 15:59
  • yeah, now that I think more on it I think he's referring to languages which have safeguards at build time that try to prevent coding errors up front... there's only so many bugs that sort of thing can catch though. Never used Rust, but maybe you can't build if there are any uninitialized pointers. Commented Jul 29, 2021 at 17:44
  • Don’t know Rust, but Swift makes it quite impossible to use a pointer or anything that hasn’t been a value assigned before. And dereferencing a null pointer must be done intentionally and will crash and exit the program.
    – gnasher729
    Commented Nov 18, 2023 at 17:11

1 Answer 1

4

What a convoluted sentence. Let's untangle it and translate from his attempted common speak to tech speak.

The vast majority of vulnerabilities [...] are introduced, [...] at the exact time the code is written

Bugs are created while the code is being written (this should be obvious)

for technical reasons related to how a computer keeps track of what it’s supposed to be doing,

and most of them are memory use errors (memory is how a computer keeps track of what is doing...)

which makes choosing a safer language a crucial protection...

so a language with memory and type safety would reduce bugs

and yet it’s one that few ever undertake.

and I think this is wrong (or perhaps dated)...or python (and the rest of the vast horde of pointerless scripting languages) would not be so popular, and rust would not be gaining popularity.

2
  • 2
    Regarding "and yet it’s one that few ever undertake," (emphasis added): The article cites statistics that 70% of bugs are still related to memory safety. Probably his "few" means "relatively few" and he probably is thinking of folks like operating system developers, who still mostly write in C and other unsafe languages.
    – hft
    Commented Jul 29, 2021 at 6:22
  • I think it's a matter of momentum. We will get there. Many application writers have already shifted. As rust matures, the operating systems are next.
    – user10489
    Commented Jul 29, 2021 at 11:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .