Web安全简史
起初,研究计算机系统和网络的人,被称为“Hacker”,他们对计算机系统有着深入的理解,因此往往能够发现其中的问题。“Hacker”在中国按照音译,被称为“黑客”。在计算机安全领域,黑客是一群破坏规则、不喜欢被拘束的人,因此总想着能够找到系统的漏洞,以获得一些规则之外的权力。
对于现代计算机系统来说,在用户态的最高权限是 root (administrator),也是黑客们最渴望能够获取的系统最高权限。“root”对黑客的吸引,就像大米对老鼠的吸引,美女对色狼的吸引。
不想拿到“root”的黑客,不是好黑客。漏洞利用代码能够帮助黑客们达成这一目标。黑客们使用的漏洞利用代码,被称为“exploit”。在黑客的世界里,有的黑客,精通计算机技术,能自己挖掘漏洞,并编写exploit;而有的黑客,则只对攻击本身感兴趣,对计算机原理和各种编程技术的了解比较粗浅,因此只懂得编译别人的代码,自己并没有动手能力,这种黑客被称为“Script Kids”,即“脚本小子”。在现实世界里,真正造成破坏的,往往并非那些挖掘并研究漏洞的“黑客”们,而是这些脚本小子。而在今天已经形成产业的计算机犯罪、网络犯罪中造成主要破坏的,也是这些“脚本小子”。
Web 安全的兴起
Web 攻击技术的发展也可以分为几个阶段。在 Web 1.0 时代,人们更多的是关注服务器端动态脚本的安全问题,比如将一个可执行脚本(俗称 webshell) 上传到服务器上,从而获得权限。动态脚本语言的普及,以及 Web 技术发展初期对安全问题认知的不足导致很多“血案”的发生,同时也遗留下很多历史问题,比如 PHP 语言至今仍然只能靠较好的代码规范来保证没有文件包含漏洞,而无法从语言本身杜绝此类安全问题的发生。
SQL 注入的出现是 Web 安全史上的一个里程碑,它最早出现大概是在 1999 年,并很快就成为 Web 安全的头号大敌。就如同缓冲区溢出出现时一样,程序员们不得不日以继夜地去修改程序中存在的漏洞。黑客们发现通过 SQL 注入攻击,可以获取很多重要的、敏感的数据,甚至能够通过数据库获取系统访问权限,这种效果并不比直接攻击系统软件差,Web 攻击一下子就流行起来。SQL 注入漏洞至今仍然是 Web 安全领域中的一个重要组成部分。
XSS(跨站脚本攻击)的出现则是 Web 安全史上的另一个里程碑。实际上,XSS 的出现时间和 SQL 注入差不多,但是真正引起人们重视则是在大概 2003 年以后。在经历了 MySpace的XSS 蠕虫事件后,安全界对 XSS 的重视程度提高了很多,OWASP 2007 TOP 10 威胁甚至把XSS 排在榜首。
伴随着 Web 2.0 的兴起,XSS、CSRF 等攻击已经变得更为强大。Web 攻击的思路也从服务器端转向了客户端,转向了浏览器和用户。黑客们天马行空的思路,覆盖了 Web 的每一个环节,变得更加的多样化,这些安全问题,在本书(这里是指《白帽子讲web安全》)后续的章节中会深入地探讨。
Web 技术发展到今天,构建出了丰富多彩的互联网。互联网业务的蓬勃发展,也催生出了许多新兴的脚本语言,比如 Python、Ruby、NodeJS 等,敏捷开发成为互联网的主旋律。而手机技术、移动互联网的兴起,也给 HTML S 带来了新的机遇和挑战。与此同时,Web 安全技术也将紧跟着互联网发展的脚步,不断地演化出新的变化。
小节 | 重点概述 |
---|---|
黑客起源与区别 | 讲述了黑客的起源和动机,介绍了黑客对系统最高权限(root)的渴望以及漏洞利用代码(exploit)的使用。区分了精通技术的黑客和脚本小子(script kids)之间的差异。 |
Web安全的兴起 | 描述了Web攻击技术的发展历程。在Web 1.0时代,关注服务器端动态脚本的安全问题;SQL注入的出现和对Web安全的重大影响;XSS的出现和安全界对其的重视程度提升;随着Web 2.0的兴起,攻击思路从服务器端转向了客户端,黑客的思路变得更加多样化。 |
技术发展和趋势 | 讲述了互联网业务的蓬勃发展和新兴脚本语言的涌现,以及敏捷开发和移动互联网对Web安全带来的挑战。强调Web安全技术需要与互联网发展同步演化。 |
本篇文章是基于吴翰清《白帽子讲web安全》的段落摘抄与学习笔记,仅作为学习用途