初识网络安全

本文回顾了web安全的历史,从早期黑客主要攻击系统软件到Web1.0时代的动态脚本安全,再到Web2.0中XSS和CSRF的兴起。文章强调了防火墙、机密性、完整性、可用性和态势感知在现代web安全中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web安全简史

起初,研究计算机系统和网络的人被称为“Hacker”,他们对计算机系统有深入的理解,因此往往能够发现其中的问题。Hacker 在中国按照音译叫作“黑客”。在计算机安全领域,黑客是一群破坏规则、不喜欢拘束的人,因此总想着找到系统的漏洞,以获得一些规则之外的权力。对于现代计算机系统来说,用户态的最高权限是root(或Administrator),也是黑客们最渴望获取的系统最高权限。“root”对黑客的吸引,就像兔子对饿狼的吸引。 在黑客的世界里,有的黑客精通计算机技术,能自己挖掘漏洞并编写exploit;而有的黑客则只对攻击本身感兴趣,对计算机原理和各种编程技术的了解比较粗浅,因此只能使用别人的代码,自己并没有开发和创造能力,这种黑客被称为Script Kid”,即“脚本小子”。而在现实世界里,真正造成破坏的,往往并非那些挖掘并研究漏洞的黑客,而是这些脚本小子。在今天已经形成黑色产业的计算机犯罪、网络犯罪中,造成主要破坏的,也是这些脚本小子。

黑客技术发展历程

在早期(2002年前),黑客的主要攻击目标是系统软件。一方面,是这个时期的web技术还远远不成熟;另一方面,则是因为通过攻击系统软件,黑客往往能够直接获取root权限。这段时期产生了非常多的经典漏洞以及exploit。

在早期互联网上,web应用并非主流应用,相对来说,基于SMTP、POP3、FTP等协议的服务拥有绝大多数的用户。因此,黑客的主要攻击目标是网络、操作系统及软件等,Web安全领域的攻击与防御技术均处于非常原始的阶段。

相对于那些攻击系统软件的 exploit 而言,基于 Web 的攻击一般只能让黑客获取一个较低权限的账户,对黑客的吸引力远远不如直接攻击系统软件。

但是时代在发展,防火墙技术的兴起改变了互联网安全的格局,尤其是以 Cisco、华为等为代表的网络设备厂商,开始在网络产品中更加重视网络安全,最终改变了互联网安全的走向。防火墙、ACL 技术的兴起,使得直接暴露在互联网上的系统得到了保护。

比如一个网站的数据库,在没有保护的情况下,数据库服务的端口是允许任何人随意连接的。在有了防火墙的保护后,通过 ACL 可以只允许来自可信任来源的访问。这些措施在很大程度上保证了系统软件处于信任边界之内,从而杜绝了大部分的攻击来源。

2003 年的冲击波蠕虫是一个里程碑式的事件,这个针对 Windows 操作系统 RPC 服务(运行在 445 端口)的蠕虫,在很短的时间内席卷了全球,导致数百万台机器被感染,造成的损失难以估量。在此次事件后,网络运营商们很坚决地在骨干网络上屏蔽了 135、445 等端口的连接请求,而且整个互联网对于安全的重视达到了一个空前的高度。

在运营商的网络策略、企业防火墙的共同作用之下,暴露在互联网上的非 Web 服务越来越少,而web技术的成熟也使得越来越多的服务web应用化。最终,web成为互联网上的主流服务。黑客们的目光,也渐渐转移到了web这块大蛋糕上。

web安全的兴起

web攻击技术的发展可以分为几个阶段。在Web1.0时代,人们更多的是关注服务端动态脚本的安全问题,比如攻击者将一个可执行脚本(俗称webshell)上传道服务器上,从而获得权限。动态脚本语言的普及,以及web技术发展初期对安全问题认知的不足,导致很多web安全血案,也遗留下很多历史问题。比如,php语言至今仍然只能靠较好的 代码规范来保证没有文件包含漏洞,而无法从语言本身杜绝此类安全问题。

SQL 注入 (SQL Injection)的出现是 Web 安全史上的一个里程碑,它最早大概出现在 1999年,并很快就成为 Web 安全的头号大敌。就如同出现缓冲区溢出时一样,程序员们不得不夜以继日地修改程序中存在的漏洞。黑客们发现通过 SOL 注入漏洞,可以获取很多重要的、敏感的数据,甚至能够通过数据库获取系统访问权限,这种效果并不比直接攻击系统软件差,因此Web 攻击一下子就流行起来。SOL 注入至今仍然是 Web 安全领域的一个重要课题。

XSS 攻击(Cross-Site Scripting,跨站脚本攻击)的出现则是 Web 安全史上的另一个里程碑,实际上,XSS 攻击出现的时间和SQL 注入差不多,但是它真正引起人们重视大概是在 2003年以后。在经历了 MySpace 的XSS 蠕虫事件后,安全界对XSS 的重视程度提高了很多,OWASP2007 Top 10 威胁甚至把XSS 排在榜首。

伴随着 Web 2.0 的兴起,XSS、CSRF 等攻击已经变得更为强大。Web 攻击也从服务端转客户端,转向浏览器和用户。黑客们的攻击思路覆盖了 Web 的每一个环节,攻击形式变得更加多样化。

Web 应用变得越来越复杂,涌现出大量企业级应用标准和框架。最典型的是 Java 语言及其生态,Java 丰富的开源组件和日益复杂的技术栈,吸引了众多安全人员进行研究,漏洞挖掘和防御技术的深度都今非昔比,已经不能再用“脚本小子”来形容 Web 安全研究人员。

Web 技术发展到今天,构建出了丰富多彩的互联网。移动互联网的蓬勃发展,把 HTML5迅速引爆;云计算的快速普及,给应用的开发、部署和运维带来了全新的体验;浏览器厂商群雄逐鹿,把 Web 标准推向了新高度。与此同时,Web 安全技术也将紧跟互联网发展的脚步,不断地演化。

安全的三要素

要全面地认识一个安全问题,我们有很多种办法,但首先要理解安全问题的组成。前人通过无数实践,最后将安全的属性总结为安全三要素。安全三要素是安全的基本组成元素,分别是机密性 (Confidentiality)、完整性 (Integrity) 和可用性 (Availability),简称为 CIA

机密性要求数据内容不能泄露,加密是实现机密性要求的常见手段。

比如,在前面的例子中,如果文件不是放在抽屉里,而是放在一个透明的玻璃盒子里,那么虽然外人无法直接获取文件,但因为玻璃盒子是透明的,文件内容还是可能会被人看到,所以不符合机密性要求。但是如果给文件增加一个封面,掩盖文件内容,那么也起到了隐藏的效果,从而满足了机密性要求。可见,我们在选择安全方案时,需要灵活变通,因地制宜,没有一成不变的方案。

完整性则要求保证数据的内容是完整、没有被篡改的。常见的保证完整性的技术手段是数字签名。

传说清朝康熙皇帝遗诏中写的是“传位十四子”,结果被当时还是四阿哥的胤镇篡改,变成了“传位于四子”。我们姑且不论传说的真实性,在这个故事中,对遗诏的保护显然没有达到完整性要求。如果在当时有数字签名之类的技术,遗诏就很难被篡改。从这个故事也可以看出保护数据的完整性、一致性的重要意义。

可用性要求保证资源是“随需而得”的。

假设一个停车场里有 100 个车位,在正常情况下,可以停 100 辆车。但是某一天,有个坏人搬了 100 块大石头,把每个车位都占用了,导致停车场无法正常提供服务。在安全领域中,这种攻击叫作拒绝服务攻击(DenialofService,DoS)。拒绝服务攻击破坏的是安全的可用性。

态势感知

这些年随着云计算、大数据和人工智能技术的进步,数据成为一种生产要素,安全方案的设计也与时俱进。其中最重要的变化趋势是“以数据为核心构建安全系统

安全是一个持续对抗的过程,必然存在攻防两方,而在大规模网络对抗过程中,能够快速根据攻防态势的变化进行决策和行动的一方,将在对抗过程中获得优势,因此可以借用军事上的一个术语“态势感知”来描述这种攻防对抗的能力。安全方案的设计目标,在新形势和新技术下,就变成“全面、快速、准确地感知敌我双方态势”。这里既包括“态”,即我方的资产漏洞和攻击面,敌方的威胁源和能力;也包括“势”,即我方动向、敌方动向、敌方的动机、敌方攻击的可能性,以及外部环境。因此,态势感知是一种实时的基于内外环境的综合研判。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值