色即是空,空既是色,受想行识,亦复如是
————《般若波罗蜜心经》
冯诺依曼在实现电子计算机的时候,忽略了图灵机模型中对程序和数据的区分。将程序(规则集)和数据(状态集)放在了同一个物理设备-内存中。因此,现代计算机中对图灵机的实现存在着天然的瑕疵,由于没有明确的区分内存中的程序指令(规则)和普通的数据(状态)。
漏洞本质来源就是来自于冯诺依曼的“色即是空,空即是色”的对待代码和数据的态度。高级的变形病毒、软件加壳与脱壳技术等都是基于程序指令可以在运行的时候当作普通的内存数据进行动态读写的缺陷:栈溢出的利用、堆溢出攻击中ShellCode的执行基于计算机错误的把位于堆中的普通数据当作程序指令集而使用的缺陷,跨站脚本攻击、SQL注入等都是利用计算机把代码和数据混淆这一天然缺陷造成的。
——————————王清