什么是Web安全?
Web 安全属于网络信息安全的一个分支。WWW (World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的、全球性的、动态交互的、跨平台的分布式图形信息系统。
它建立于网络之上,通过网络传递信息。由于早期的 Web 形式都是网站,故狭义的 Web安全特指网站安全,而广义的 Web 安全泛指一切与网站交互相关的技术架构安全。与网站交相关的技术大致涵盖数据库、浏览器、CDN 技术、小程序、云计算、云存储等。
随着安全技术的发展,也涵盖了移动 App 安全、客户端安全等相关领域。研究 Web 安全,大多数人都是从网站安全入手来逐渐提高和丰富自己的认识。当基础的通用安全漏洞掌握得比较全面以后,再寻找一个自己较为擅长的方向加以突破。
与其他领域一样,研究 Web 安全也需要一定的广度和深度,在广度上要不断丰富自己的知识储备,尽可能多了解漏洞原理和攻防技术;在深度上要能对特定的某一项技术达到一定的认识高度,最好是能够有自己独特的见解和深厚的攻防实战经验积累。
Web安全的发展规律
在这里给出安全领域前端、后端的两个定义,这个和网站开发领域的定义是有区别的。在安全领域,通常将用户端(也就是浏览器端)称为前端,而将服务器端称为后端。而网站开发领域的前端通常指的是网站前端,也就是网站的用户界面和视图呈现;后端指的是网站后台,即处理交互的数据流和交互数据库等。
Web安全20年整体的发展规律是“先后端、再前端、再后端”。
以小浪对Web安全的理解来说,这个过程有点类似于开垦荒山时,先开发山脚下,因为山脚下的土地相对平整,并且可以节省运输成本,等山脚下的土地差不多都开垦完了,再去开发山坡以及山顶,虽然比较费力,但是收益还是可观的。等山坡和山顶都种满了树苗,土地几乎用完了,这时再回过头来看山脚植被密度。这个过程虽然收益不大,但是较为省力。于是又重新开发山脚下的土地,这样使得整座Web安全的山峰由起初的“荒山野岭”,发展到“枝繁叶茂”。
Web安全前7年的发展(也就是2006年以前),整体以后端漏洞为主,因为当时的Web安全尚处于萌芽时期,大家还没有足够重视安全,漏洞挖掘难度相对较小,而且后端漏洞杀伤力强。等大家逐渐认识到后端漏洞的威力以后,开始重视安全,后端漏洞逐渐修补殆尽。2006~2008年期间,安全研究人员开始寻找新的思路,于是“向山顶进发”,挖掘前端漏洞。到2016年左右,前端漏洞也被大家关注和重视起来,挖掘难度提升。安全研究人员开始重视关注后端,再去寻找新的漏洞突破,于是以反序列化漏洞为主,多种利用技术组合的后端漏洞再次涌现。
展望未来,每个安全从业者都会有自己对Web安全发展的预期,安全从业者到底是要延续此规律继续向山顶进发,挖掘技术含量更高的前端漏洞?还是寻找物联网安全、大数据安全等新的方向,去开垦新的荒山?抑或是待到高达的乔木种完后,再利用缝隙中有限的土地种植低矮的灌木,在原有漏洞基础上做进一步研究和探索?这里给大家留作一个思考题,Web安全未来20年,我们拭目以待。
Web安全与Web漏洞
Web安全发展的20年,实际上是Web漏洞爆发的20年,漏洞代表着安全研究的生产力,是安全价值的客观体现。虽然广义的Web安全包含了漏洞研究、漏洞利用技术、安全防护、安全产品、安全开发等多个方面,但实际上唯有漏洞能够最准确、客观地将安全内涵体现出来。
从漏洞入手学习Web安全是一个捷径。大多数刚接触Web安全行业的初学者往往存在一个认识上的误区,认为只要学会一些安全测试工具的使用方法就等于掌握了渗透测试技术,就等于学好了Web安全。
其实不然,Web安全虽然发展历史较短,但纷繁复杂,初学者对于Web安全的学习不能一蹴而就,应当先了解原理再围绕原理去选择合适的工具。当工具无法满足学习者对原理认识的需求时,学习者可以选择去开发新的工具。要记住,工具是次要的,对漏洞原理深层次的认识和理解才是主要的,不能本末倒置。当学习者将Web漏洞基础原理融会贯通时,再去学习和掌握基于漏洞原理开发出的工具就容易得多了。
以漏洞为小节,每一种漏洞类型就是一个独立的单元。每一个单元都包含漏洞的原理、漏洞背后的技术细节、漏洞利用技术、攻防对抗技术、漏洞防御和实战练习等内容。
整体划分上,参考漏洞出现的时间顺序,这样的分类顺序主要是依据漏洞出现的时间点来区分的。
传统后端漏洞:出现时间大致在1998~2008年;
逻辑漏洞:与前三种漏洞类型均不同,它是一类独特的与业务逻辑紧密相关的漏洞,故将其独立划分出来。
根据漏洞出现的时间线来划分。这是因为漏洞是攻防较量的核心所在,漏洞攻击技术是随着时间不断演化升级的,这样的时间顺序,由浅入深,可以学习和理解这些漏洞时循序渐进。
传统后端漏洞的代表是SQL注入漏洞;前端漏洞的代表是XSS漏洞;新后端漏洞的代表是反序列化漏洞,尤其是Java反序列化漏洞。这三类漏洞要重点学习和理解,这三类漏洞也是当今Web安全爱好者入门必知必会的漏洞。
学习Web漏洞原理之前,需要先做铺垫,打牢基础。学习一些与Web安全相关的计算机网络基础知识。在学习Web安全测试与实战练习所使用的工具以及实战练习的靶场环境搭建方法。最后以漏洞为载体学习每个漏洞背后的“底层逻辑”。