[发明专利]基于CANARY安全保护的检测方法、终端及存储介质在审
申请号: | 202011168472.X | 申请日: | 2020-10-28 |
公开(公告)号: | CN112182517A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 余少高;严智慧 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/57;G06F21/64 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 陈专 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 canary 安全 保护 检测 方法 终端 存储 介质 | ||
本发明公开了基于CANARY安全保护的检测方法、终端及存储介质,所述方法包括:获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF符号表信息;判断所述ELF符号表信息中是否存在预设符号,如是则表示所述程序已开启CANARY安全保护。本发明通过判断程序是否开启CANARY安全保护,在程序未开启CANARY安全保护时提醒用户开启CANARY安全保护,如果程序开启了CANARY安全保护的话,每次函数推出之前,都会检测栈CANARY是否被覆盖,如果被覆盖了说明程序受到攻击,可以直接退出程序,避免程序被黑客攻击。
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种基于CANARY安全保护的检测方法、终端及存储介质。
背景技术
缓冲区溢出就是超长的数据向小缓冲区复制,导致数据超出了小缓冲区,导致缓冲区其他的数据遭到破坏,这就是缓冲区溢出,而栈溢出是缓冲区溢出的一种,栈溢出是由于C语言系列没有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小,因此当这个数据足够大的时候,将会溢出缓冲区的范围。
栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode(shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名,shellcode常常使用机器语言编写,可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令)能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie(储存在用户本地终端上的数据)信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行。在Linux中将cookie信息称为CANARY。
如果程序没有开启CANARY安全保护的话,每次函数推出之前,栈CANARY无法被覆盖,那么就无法避免黑客攻击。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种基于CANARY安全保护的检测方法、终端及存储介质,旨在解决现有技术中未开启CANARY安全保护时无法避免黑客攻击的问题。
为实现上述目的,本发明提供一种基于CANARY安全保护的检测方法,所述基于CANARY安全保护的检测方法包括如下步骤:
获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF符号表信息;
判断所述ELF符号表信息中是否存在预设符号,如是则表示所述程序已开启CANARY安全保护。
所述的基于CANARY安全保护的检测方法,其中,所述判断所述ELF符号表信息中是否存在预设符号,之后还包括:
如果判断出所述ELF符号表信息中不存在所述预设符号,则表示所述程序未开启CANARY安全保护。
所述的基于CANARY安全保护的检测方法,其中,所述基于CANARY安全保护的检测方法还包括:
如果所述程序未开启CANARY安全保护,则提示用户开启CANARY安全保护。
所述的基于CANARY安全保护的检测方法,其中,所述第一命令为readelf–s。
所述的基于CANARY安全保护的检测方法,其中,所述预设符号为:__stack_chk_fail符号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011168472.X/2.html,转载请声明来源钻瓜专利网。