嵌入式网络安全设备的抗缓冲区溢出攻击机制

嵌入式网络安全设备的抗缓冲区溢出攻击机制杜皎1,2,荆继武2,李国辉1(国防科技大学信息系统与管理学院,长沙410073)1(中国科学院研究生院信息安全国家重点实验室,北京100039)2摘要:缓冲区溢出攻击已经成为网络安全威胁中最为严重的一类,而嵌入式网络安全设备则更需要有抗缓冲区溢出攻击的能力。本文在分析了缓冲区溢出的基本原理以及抗缓冲区溢出攻击的方法后,提出建立全新的嵌入式网络安全设备的安全架构,并构建多层次的抗缓冲区溢出攻击机制。文章根据网络安全设备的特点和特殊需求,详细阐述了适合嵌入式网络安全设备需要的多层次,全方位的抗缓冲区溢出攻击机制。关键词:嵌入式,网络安全设备,缓冲区溢出,抗缓冲区溢出攻击机制1.引言缓冲区溢出已经成为近十年来最常见的安全隐患,并且在远程网络中利用缓冲区溢出进行的攻击占据了绝大多数。这样造成的后果非常严重,网络上的某个匿名用户可以获得其他主机部分甚至全部的控制权。缓冲区溢出攻击成为安全威胁中最为严重的一类【1,2,3】。缓冲区溢出攻击之所以在安全攻击中占有这么大的比重,是因为缓冲区溢出的缺陷普遍存在并且非常容易被探测到。攻击者利用它能够准确地获得自己想要的东西,他插入攻击代码并使其运行在一定的特权下,最坏的情况,攻击者能够重新引导任何程序,甚至控制整个主机。人们在设计嵌入式系统时,除了本身必须的性能,还要考虑安全方面的因素。它和普通的系统一样,缓冲区溢出攻击也会对它造成严重的破坏。对于嵌入式的网络安全设备来说,由于它在整个计算机和网络系统中特殊位置,各种各样的网络数据都会首先到达网络安全设备,它本身可能是受攻击最多的地方。它不但要能接受网络大流量的冲击,而且要能在较短的时间内对网络攻击做出反应。抗缓冲区溢出攻击的能力是网络安全设备的一项重要性能。所以,嵌入式网络安全设备的特殊性和复杂性,要求在整个系统设计的时期就考虑到这个问题,使它有较强的入侵容忍能力,避免以后各种问题的出现。系统中存在的缓冲区溢出缺陷的种类非常多,所以缓冲区溢出攻击的形式也多种多样。本文把抗缓冲区溢出攻击的方法从对抗层次上进行划分,并且针对嵌入式网络安全设备的特点和需求,全面设计适合于它的对抗缓冲区溢出攻击机制,从根本上对抗缓冲区溢出攻击。2.缓冲区溢出攻击的原理缓冲区溢出攻击向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。缓冲区溢出是程序员使用C/C++库函数不当造成的,而更加根本的原因是C/C++某些库函数的设计存在致命的缺陷。像Strcpy这样依赖NULL标志来认定缓冲区的结束的C语言的库函数有很多,例如Strcat,Sprintf,Gets,Sscanf等等都是,一旦在使用它们时没有进行正确的缓冲区长度检查,就可能形成缓冲区溢出漏洞。缓冲区溢出攻击可以发生在堆栈、堆甚至BSS(BlockStorageSegment)和其他任何存放变量的地方。常见的是基于堆栈的缓冲区溢出攻击,只要找到一个堆栈,把其中的返回地址---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---(returnaddress)换成事先已经插入的恶意代码的起始地址,这样的缓冲区溢出攻击叫做摧毁堆栈攻击(stacksmashingattack)【4,5】,当然同样的情况可以发生在堆和BSS中。另一种叫做函数指针攻击(functionpointerattack),它把堆或BSS中的指针指向恶意代码或其他不在原程序流程中的代码,从而达到攻击的目的【6,7,8】。缓冲区溢出攻击的目的是破坏程序原有的特权级别,使得攻击者获得程序的控制权。如果原程序有足够的权限,攻击者甚至能获得主机的控制权。为了达到这个目标,攻击者通常分两步来做:a.在被攻击程序的地址空间安排一段合适的代码,或利用系统中原有的代码;b.通过把合适的参数装载到寄存器或内存中,使被攻击程序跳到这段代码中运行。3.抗缓冲区溢出攻击的相关研究工作3.1编写正确的代码使用安全的编程语言,编写正确的代码可以有效的对抗缓冲区溢出攻击。但是,为了提供良好的平台接口和符合大多数人的编程习惯,系统的程序都是用不安全的语言C...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?