【技术实现步骤摘要】
一种用于数据处理器的防御控制流攻击方法
本专利技术涉及一种防御控制流攻击方法,尤其是涉及一种用于数据处理器的防御控制流攻击方法。
技术介绍
随着物联网、云计算和移动支付等技术的快速发展,数据处理器(即嵌入式系统)被广泛应用到军事、汽车、医疗和通讯等领域。不同的数据处理器之间通过网络进行通讯和协作,这就给攻击者带来可趁之机,攻击者可以利用软件漏洞实施控制流攻击进而对整个数据处理器进行控制。控制流攻击是指利用程序漏洞,通过篡改程序控制流的存储地址或控制流数据等方式,将程序导向并执行预先设定的恶意代码,,达到破坏数据处理器或盗取关键信息的目的。根据恶意代码注入与否,控制流攻击可分为代码注入攻击和代码复用攻击。代码注入攻击指攻击者利用软件的某些漏洞将恶意代码注入到程序中去,堆栈溢出攻击是代码注入攻击的一种典型方式,数据处理器的堆栈中写入的数据量超过堆栈本身的容量,溢出的数据可以覆盖合法的数据,但由于原始程序并没有做边界检查,这就为攻击者实施溢出攻击埋下隐患。攻击者可以利用溢出攻击覆盖原始返回地址,将返回地址篡改为指向预先注入恶意代码 ...
【技术保护点】
1.一种用于数据处理器的防御控制流攻击方法,其特征在于包括以下步骤:/n①在数据处理器中设置用于产生n位二进制密钥的伪随机数发生器、用于加密返回地址的XOR加密电路、用于产生压栈返回地址签名值和出栈返回地址签名值的MD5算法签名电路、用于判断压栈返回地址签名值与出栈返回地址签名值是否相同的签名比较器、用于存储压栈返回地址的压栈返回地址寄存器、用于存储出栈返回地址的出栈返回地址寄存器、用于存储n位二进制密钥的密钥寄存器、用于存储压栈地址签名值的压栈签名寄存器、用于存储出栈地址签名值的出栈签名寄存器;/n②当数据处理器响应中断服务程序,执行程序调用指令call时,Push函数将 ...
【技术特征摘要】
1.一种用于数据处理器的防御控制流攻击方法,其特征在于包括以下步骤:
①在数据处理器中设置用于产生n位二进制密钥的伪随机数发生器、用于加密返回地址的XOR加密电路、用于产生压栈返回地址签名值和出栈返回地址签名值的MD5算法签名电路、用于判断压栈返回地址签名值与出栈返回地址签名值是否相同的签名比较器、用于存储压栈返回地址的压栈返回地址寄存器、用于存储出栈返回地址的出栈返回地址寄存器、用于存储n位二进制密钥的密钥寄存器、用于存储压栈地址签名值的压栈签名寄存器、用于存储出栈地址签名值的出栈签名寄存器;
②当数据处理器响应中断服务程序,执行程序调用指令call时,Push函数将数据处理器响应中断服务程序前执行指令的n位二进制地址作为返回地址写入到数据处理器的堆栈之中,与此同时,利用Push函数将数据处理器响应中断服务程序前执行指令的n位二进制地址作为压栈返回地址存储到压栈返回地址寄存器中,将该压栈返回地址记为push_addr[n-1:0],并且利用伪随机数发生器产生n位二进制密钥,将该n位二进制密钥记为K,存储到密钥寄存器中;
③采用XOR加密电路将压栈返回地址push_addr[n-1:0]与n位二进制密钥K进行按位异或操作,生成加密的压栈返回地址,将该加密的压栈返回地址记为xor_push_addr;
④将加密的压栈返回地址xor_push_addr作为MD5算法签名电路的输入,采用MD5算法签名电路生成压栈地址签名值,将该压栈地址签名值记为push_signature,并将压栈地址签名值push_signature存储在压栈签名寄存器中。
⑤当数据处理器对中断服务程序的响应结束,执行程序返回指令ret时,采用Pop函数从数据处理器的堆栈中读出n位二进制地址,将读出的n位二进制地址作为出栈返回地址存储到出栈返回地址寄存器中,将该出栈返回地址记为pop_addr[n-1:0];
⑥采用XOR加密电路将出栈返回地址pop_addr[n-1:0]与n位二进制密钥K进行按位异或操作,生成加密的出栈返回地址,将其记为xor_pop_addr;
⑦将加密的出栈返回地址xor_pop_addr作为MD5签名算法电路的输入,采用MD5签名算法电路生成出栈地址签名值,将该出栈地址签名值记为pop_signature,并将该出栈地址签名值pop_signature存储在出栈签名寄存器中;
⑧将压栈地址签名值push_signature与出栈地址签名值pop_signature送入签名比较器中进行比较,当压栈地址签名值push_signature与出栈地址签名值pop_signature相同时,签名比较器输出为1,此时数据处理器继续执行程序,当压栈地址签名值push_signature与出栈地址签名值pop_signature不相同时,签名比较器输出为0,此时数据处理器复位。
2.根据权利要求1所述的一种数据处理器的防御控制流攻击方法,其特征在于所述的伪随机数发生器包括n个D触发器和n-1个二输入异或门,每个所述的D触发器分别具有输入端、时钟端和输出端,每个所述的二输入异或门分别具有第一输入端、第二输入端和输出端,n个所述的D触发器的时钟端连接且其连接端作为所述的伪随机数发生器的时钟端,用于接入时钟信号,第m个所述的D触发器的输出端和第m个所述的二输...
【专利技术属性】
技术研发人员:李刚,余云飞,汪鹏君,陈博,张跃军,
申请(专利权)人:温州大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。