您的位置:首页 > 其它

为什么会有缓冲区溢出攻击专栏

2015-09-26 01:27 218 查看
已有一段时间没有写博客,今天打开博客收到网友的私信,问我是否从事与安全相关的工作,以及对从事安全工作有什么好的建议。今晚想借这个机会记录下我写此专栏的缘由。

2014年整整一年,我成为部门的安全工程师,负责Linux系统的安全设计和加固工作,使产品满足公司、客户的安全要求。在此之前对安全没有任何经验,只有网络协议以及Linux开发的经验,因此这一年的工作遇到很多困难,这些困难有技术上的,也有管理上的。

这一年,对Linux安全机制从零,一步步了解OpenSSH,PAM,SELinux,Capabilities等安全机制。识别Linux系统应该提供哪些安全机制,在不同的业务场景下应如何选用,做系统层面的分析和评估。

在公司内部经常和业务部门做安全要求的沟通,很多软件开发人员对安全了解不深,设计方案时没有从安全角度考虑特性的安全性是否符合公司的要求。特别在做漏洞分析时,谈到场景是否涉及时,很多人只从业务角度分析是否涉及,而不是攻击的角度判断业务场景能否被攻击。甚至很多开发人员武断认为,只要嵌入式设备关闭以太网口和串品,就永远不会受到攻击。

在负责安全的日子,也接触到公司各级安全专家,了解到很多安全理念,黑客攻击案例,以及一些实用的攻击方法。

于是,如何说服那些开发人员让他们知道,只要软件存在安全缺陷或者漏洞,就有攻击的可能,一直困扰着我。根据我了解,有黑客专门买某些公司产品做逆向分析,找出漏洞,在行业内建立影响力。同时,我对一切深奥的行为充满好奇,如果能了解黑客是如何攻击的,对我来说那绝对是很大的诱惑。机缘巧合,在一次专家的技术分享中,提到缓冲区溢出攻击方法有ret2libc, ret2plt, ROP等方法,竟然吊起了我的兴趣。

其实到这个时间节点上,为期一年的安全工程师已满期,安全工作得部门的认可。其实正向的安全防范,对我来说,没有多大的兴趣,一年的工作已将身心搞得很累,卸下安全工作,对我来说是一种放轻,让我有充足的时间投入的Linux的设计工作中,再度与方案、代码亲密接触。但缓冲区溢出攻击方法却在一旁默默等着我。

2015年伊始,我找到了一本关于缓冲区溢出最传统攻击方法的图书,它花了大笔墨介绍如何编写ShellCode。但没有介绍有安全防范机制下的ret2libc, ret2plt, ROP等攻击方法。于是在网上搜索各种资料,最容理解的是ret2libc。当遇到ret2plt时,我感觉整个世界一片黑暗,根本无法理解这个攻击方法。按资料上介绍的步骤一步步操作,发现怎么也不成功,直到最后将整个原理搞懂后,才发现原来的一切障碍都不是困难。

春节前一段时间比较轻松,我在想,能否将我理解的缓冲区攻击方法写成博客,与大家分享。于是趁热打铁,一周内就写好了几篇。但从ret2libc开始,每个攻击方法就越来越难。直到老大决定让我到部门大讲坛讲点东西时,才想起可以讲一个缓冲区攻击方法,这样就把ret2libc、ret2plt和ROP原理全部搞懂。9月初终于上了大讲坛,由于不具备安全的整个知识体系,讲起来比较枯躁,只能在一个小圈子引起共鸣。

本文系列专栏,今晚才将最后的ROP补上,分享给大家。

本人不擅长文字表达,对攻击方法没有整体认识,这些攻击方法也是现学现卖,没有自成体系统,因此在描述上比较直白,很少参杂些历史和发展方面的史料,还请各位将就一下。

这个专栏就到此打住了吗? 我觉得还是可以写的,往下可以会写一下漏洞的攻击方法,而不只限于缓冲区攻击。

欢迎大家续继关注,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: