指令随机化(Instruction-Set Randomization, ISR),理学-计算机科学技术-信息安全-信息系统安全-软件安全-软件安全防御,一种旨在抵御代码注入攻击以保护提供远程服务(例如,HTTP,DNS等)的服务器的防御技术。该技术通过使用随机密钥在程序执行前对其中的原始指令加密、运行时动态解密的方式,使得同一系统中每个进程都具有不同的指令集。由于攻击者在远程访问服务器的场景下无法直接获取目标进程的指令集或密钥,其注入的恶意代码会在执行时因被解密为错误的指令而失效。该技术同样适用于防范脚本和解释性语言的代码注入攻击(例如,SQL注入)。2003年,G.S.凯西(Gaurav S. Kc)等人首次提出了指令集随机化这一技术,他指出代码注入攻击的成因是攻击者已知目标机器的指令集(例如,x86机器码,SQL查询语句等),而指令集随机化技术通过加密指令的方式随机化进程的指令集,有效阻止攻击者注入的外部代码被正常执行。但该方案仅适用于静态链接(即不使用外部动态链接库)的程序,且因采用虚拟机翻译等原因导致开销较大。