Due to Rice's Theorem, it's impossible to write a program that can perfectly determine if any given program is malicious.
This is because "being malicious" is a behavioral property of the program.
Even if we could perfectly define what "malicious behavior" *is* (which is a huge problem in of itself), any property about what a program will eventually do is undecidable.
Security in the traditional sense is probabilistic.
In other words, we can make AVs very likely to catch malware, but you cannot mathematically guarantee it.
You can't:
- analyze all execution paths
- run for infinite time
- simulate all possible environments.
- predict all possible transformations
Look, I just created a perfect wiper, you can never know if it's malicious!
See, in practice, the concept is kind of silly. Just because you theoretically *can*, doesn't mean it's practical.
AV's can be *really* clever with signature detection, behavioral monitoring, and sandboxing.
The point is, it's an arms race, not a solved problem.
There's always going to be wild implementations of polymorphic and metamorphic code that execute malicious behavior.
All that said, it's neat to think about that even a theoretical superintelligence can't beat Rice's Theorem.
Perhaps the best defense against a rogue AGI is some undectable malware.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
In 1992, Andrew Tanenbaum made some predictions about computing.
1. Microkernels are the future 2. x86 will die out and RISC will dominate the market 3. Everyone will be running a free GNU OS.
An argument ensued between him and Linus Torvalds. But who was right?
It's all a matter of perspective.
Microkernels never fully took off, but hybrid kernels like Windows NT, and mach derived kernels found on macOS + iOS control a ton of market share. Linux is the main exception here, being the most monolithic out of the bunch.
As for x86 vs RISC...partial credit.
x86 obviously still exists, but RISC architectures like ARM completely dominate mobile (and some of the laptop!) market.
All of the major 7th gen consoles were also running RISC architectures (Xbox 360, PS3, Wii).
Shutting down your PC before 1995 was kind of brutal.
You saved your work, the buffers flushed, wait for the HDD lights to switch off, and
*yoink*
You flick the mechanical switch directly interrupting the flow of power.
The interesting part is when this all changed.
Two major developments had to occur.
First, the standardization of a physical connection in the system linking the power supply to the motherboard. (Hardware constraint)
Second, a universal driver mechanism to request changes in the power state. (Software constraint)
These, respectively, became known as the ATX and APM Standards.
Although it would have been possible much earlier; industry fragmentation in the PC market between Microsoft, IBM, Intel and others stagnated progress.