「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等12个知识域的一百多个知识点,持续更新。
这一章节我们需要了解web体系架构,掌握Web存在的安全问题和解决方案。
Web安全
- 1、Web体系架构
- 2、Web存在的安全问题
- 3、Web安全解决方案
- 3.1、Web应用防火墙
- 3.2、网页防篡改系统
1、Web体系架构
Web(World Wide Web)是全球广域网,也叫万维网,是一个全球性的分布式图形信息系统。
- Web 1.0(静态互联网):1994年开始,将互联网上的资源聚合起来,用大量静态的HTML网页表示出来。这一时期网络是内容提供者,用户通过浏览器搜索信息。代表产品是网易、新浪这种新闻、「门户网站」。
- Web 2.0(交互式互联网):2004年开始,将应用程序通过浏览器提供给用户使用,不需要下载安装就能构造内容,与其他用户和网站互动。这一时期网络是平台,用户提供内容,另一部分用户获取内容。由于平台属于企业,用户信息都存储在平台上,这种中心化的模式很不安全。代表产品是博客、微博这种「互动式网站」。
- Web 3.0(去中心化互联网):2010年开始,未来的趋势,用户在网络上拥有自己的数据并能在不同的网站上使用。代表产品是「区块链」、以太坊这种业内人士提出的概念。
「Web体系架构」由客户端、通信协议、服务端三个部分组成。
- 客户端:负责用户交互。向服务器发送请求,接收并显示服务器返回的响应并渲染界面。通常是浏览器或者应用程序。
- 网络协议:定义计算机之间的通讯规则,比如HTTP和HTTPS。
- 服务器:负责提供信息。接收并处理用户请求,返回响应信息。使用Apache、Tomcat等中间件提供Web服务。
「Web应用开发技术」分为表现层、业务层、持久层三层架构。
- 表现层(Presentation layer):负责展示界面与用户交互。主要包含HTML、CSS、JS等前端技术。
- 业务层(Business Logic Layer):核心层,负责处理业务逻辑和传递数据。主要包含Java、Python、Spring等编程语言和框架。
- 持久层(Database Layer):负责存储并执行增删改查等基本数据操作。主要包含MySQL、Redis等数据库技术。
2、Web存在的安全问题
Web的安全问题也就是我们常说的Web漏洞,常见的有SQL注入、文件上传、文件包含。
SQL注入漏洞详解
文件上传漏洞详解
文件包含漏洞详解
3、Web安全解决方案
Web应用的安全问题主要有两种防护技术:Web应用防火墙和网页防篡改。
3.1、Web应用防火墙
Web应用防火墙(Web Application Firewall,WAF)通过过滤HTTP请求,保护Web应用免受SQL注入、XSS这种攻击。
WAF部署在客户端和Web服务器之间,通过「反向代理」的方式,接管所有发送给Web服务器的HTTP/HTTPS请求。
客户端的请求发给WAF,WAF根据内置的规则库检查请求头、请求体里是否包含攻击特征,包含就拦截,不包含就把请求转发给Web服务器。
Web服务器处理后返回响应给WAF,WAF检查响应体里是否包含敏感信息或者被篡改,再由WAF返回给客户端。对于客户端而言,一直就是跟WAF通信,Web服务器是隐藏的。
WAF跟传统防火墙的部署位置和功能不同,传统防火墙部署在网络边界,WAF部署在防火墙后面。先由防火墙根据策略过滤掉一部分流量以后,WAF再检测剩下的流量。而且传统防火墙工作在网络层,它不检查也无法理解数据包里编程语言那些数据,只能做访问控制。WAF工作在应用层,解决SQL注入、XSS这种传统防火墙无法解决的Web安全漏洞,实际环境中往往搭配使用。
WAF的产品类型有硬件WAF、软件WAF、云WAF三种。
- 硬件WAF:厂商提供一台单独的服务器,部署在网络边界。
- 软件WAF:厂商提供一个软件安装包,部署在服务器上。
- 云WAF:用户通过网络访问和配置WAF,保护云上的Web应用。
3.2、网页防篡改系统
网页防篡改技术本质上是防止网站后台文件被篡改。先备份文件,然后通过防篡改技术监测,发现被改后恢复文件。
具体实现技术有三种:
- 客户端轮询技术:轮询读取每一个网页,与真实网页对比,判断完整性。这种方式只能在被篡改后恢复,时效性很差。
- 事件触发技术:操作文件底层驱动, 监测文件夹内的所有内容和底层文件的变更事件,通过纯文件安全拷贝方式恢复文件,拷贝过程是毫秒级,篡改相当于无效。
- 驱动拦截技术:通过内核模块hook系统的调用拦截篡改行为。是目前能力最强的方式。