3 ms·
neither necessary nor sufficient. you can have a "turing complete" input with no exploitable bugs (or really, no bugs at all) and you can have a very simple rec
by munin 11y ago
neither necessary nor sufficient. you can have a "turing complete" input with no exploitable bugs (or really, no bugs at all) and you can have a very simple recognizable and computationally limited input that has all kinds of crazy buffer overflows.
the story is about abstractions and security boundaries. what is it that allows an application to write a value of type A to a location expecting type B? why is this expressible? the langsec focus on inputs and parsers is missing the forest for the trees.
- ared38 11y agoAll Turing complete inputs can be attacked by sending an non-terminating program. You could limit the amount of time an input is allowed to run, but then it's no longer Turing complete.
- munin 11y agoit turns out that every system we've ever devised has had a limit on the amount of time the input is allowed to run, so this really seems more like a matter of degrees. this is also only an "attack" if the availability of the system is an invariant that is relevant from a security perspective. usually, we care much more about confidentiality and integrity and absent termination sensitive noninterference (which is a different problem that langsec wholly ignores and has nothing to do with the complexity of the input), i'm not sure how the termination of a program will have any impact on its confidentiality or integrity...