文章目录
- 前言
- Web技术基础和常见Web漏洞
- Web技术
- Web系统组成
- URL结构
- Web后端技术
- HTTP/HTTPS协议
- Cookie/Session简介
- OWASP TOP 10
- OWASP TOP 10 2021年版
- 访问控制失效 - 越权
- 访问控制失效 - 跨站请求伪造(CSRF)
- URL不安全跳转
- 应用安全法律法规及行业规范
- Web应用安全
- Web数据流程安全
- WEB安全设计原则
- WEB安全设计建议
- 威胁消减措施 - 设计编码、安全管理
- 威胁消减措施 - 安全测试、安全工具、安全防御
- Web应用防火墙WAF
- Web应用防护 - WAF
- Web应用防护 - WAF
- WAF功能特性
- WAF具备丰富的Web威胁检测能力
- 学习推荐于缩略词
前言
- 本章主要讲述Web应用的技术基础和常见Web漏洞,以及如何使用Web应用防火墙防御常见Web漏洞
- 学完本课程后,您将能够:
- 描述Web技术基础
- 描述Web常见漏洞
- 使用WAF进行Web安全防护
Web技术基础和常见Web漏洞
Web技术
Web是以浏览器为客户端,利用HTTP/HTTPS协议与后台服务端应用进行交互的一种应用架构
Web系统组成
URL结构
- URL是Web安全的入口点,各种安全威胁都是伴随着URL的请求而进行的,如果客户端到服务端各层的解析没做好,就可能出现安全问题。与之相关的安全问题:
- URL不安全跳转
- URL认证绕过
- 不安全的直接对象引用
Web后端技术
-
Web容器:通信支持、协议解析、生命周期管理、多线程支持、声明式实现安全
-
Web框架:Struts/Spring MVC/BME等
-
应用开发语言:Java/PHP/ASP/Go等
-
可能的安全风险:
- Web容器安全配置
- Web容器本身的安全漏洞
- Web框架本身的安全漏洞
- 开发语言相关的安全问题
HTTP/HTTPS协议
- HTTP(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议
- HTTPS(Hyper Text Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道
- HTTPS在HTTP的基础上加入TLS(Transport Layer Security)层,为数据传输提供身份验证、加密及完整性校验
- HTTPS的目的端口默认为443,HTTP的目的端口默认为80。目前大部分网站都提供HTTPS安全传输
- 针对HTTP的窃听、信息篡改
- 重定向攻击
- 重定向攻击:许多银行网站会将用户的会话从一个HTTP站点重定向到一个HTTPS站点,该会话通常是在另一个浏览器选项卡中打开,而不是在一个新的浏览器窗口中打开。由于攻击者仍然控制着旧的选项卡,所以攻击者可以在URL中注入JavaScript脚本并修改新选项卡的行为。受攻击者可能会下载可执行文件,或者被重定向到一个恶意登录页面。
Cookie/Session简介
- 会话管理
- HTTP本身是无状态协议,为了对用户进行状态管理,使用了会话管理机制
- 相关安全风险
- 会话劫持
- 会话固定
OWASP TOP 10
OWASP Top 10 是一个为应用安全开发、维护而制定的安全意识标准。代表了业界对最严重、危害最广泛的Web漏洞的共识。在全球范围内得到安全开发者、安全运维人员的重视
OWASP TOP 10 2021年版
- A01:访问控制失效(Broken Access Control)
- A02:加密失败(Cryptographic Failure)
- A03:注入(Injection)
- A04:不安全设计(Insecure Design)New
- A05:安全配置错误(Security Misconfiguration)
- A06:脆弱过时组件(Vulnerable and Outdated Component)
- A07:识别与认证失败(Identification and Authentication Failure)
- A08:软件和数据完整性故障(Software and Data Integrity Failure)New
- A09:安全日志与监测失败(Security Logging and Monitoring Failure)
- A10:服务器端请求伪造(Server-Side Request Forgery)New
访问控制失效 - 越权
- 概述
- 访问控制指权限控制,指对用户资源访问、操作的限制。访问控制主要有垂直访问控制和水平访问控制两种
- 访问控制漏洞指应用程序允许攻击者执行其没有权限执行的操作,主要分为横向越权操作和纵向越权
- 危害
- 访问控制漏洞是Web系统中常见的漏洞之一。攻击者就可以利用该缺陷来访问未经授权的功能和/或数据,例如访问其他用户的账户,查看敏感文件,修改其他用户的数据,更改访问权限等
访问控制失效 - 跨站请求伪造(CSRF)
- 跨站请求伪造(Cross-Site Request Forgery,CSRF)是一种使已登录用户在不知情的情况下执行 某种动作的攻击。因为攻击者看不到伪造请求的响应结果,所以CSRF攻击主要用来执行动作,而非窃取用户数据。当受害者是一个普通用户时,CSRF可以实现在其不知情的情况下转移用户资金、发送邮件等操作;但是如果受害者是一个具有管理员权限的用户时CSRF则可能威胁到整个Web系统的安全
- 例如,一个银行的转账功能(将100元转到BOB的账上)是通过如下方式实现的:
GET :http://bank.com/transfer.do?acct=BOB&amount=100 HTTP/1.1 - 当攻击者MARIA诱导用户点击下面的链接时,如果该用户登录该银行网站的凭证尚未过期,那么他便在不知情的情况下转给了MARIA 100000元钱:
http://bank.com/transfer.do?acct=MARIA&amount=100000
- 例如,一个银行的转账功能(将100元转到BOB的账上)是通过如下方式实现的:
- 简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的
URL不安全跳转
- 概述:Web由于业务需要,提供URL跳转功能,常出现在登录页面,如果还没登录,则跳转至登录页面,如验证成功,则跳转到系统主页面;另一种常出现在系统出现异常时跳转到定制的错误页面。但是由于后台并没有对跳转链接进行严格的限制,导致攻击者可通过修改跳转URL,加入恶意链接,当用户执行该URL时,造成钓鱼攻击
- 一个典型的登录跳转如下:
<?php $url=$_GET[‘jumpto’]; header(“location: $url”); ?>
如果jumpto没有任何限制,恶意用户可以提交http://www.xxx.net/login.php?jumpto=http://www.evil.com
来生成自己的恶意链接,安全意识比较低的用户可能会以为该链接展现的内容是www.wooyun.org
从而可能产生欺诈行为,同时由于QQ、淘宝、旺旺等在线IM都是基于URL的过滤,同时对一些站点会以白名单的形式放过,导致恶意URL在IM里可以传播。比如这里IM会认为www.2cto.com都是可信的,但是通过在IM里点击上述链接将导致用户最终访问evil.com
应用安全法律法规及行业规范
- 应用安全法律法规及行业规范
- 网络安全法
- 等级保护
- 数据安全法
- 个人信息保护法
- GDPR / PCI DSS
- 信息系统是数据收集、处理、使用阶段的介质,确保系统安全也是数据安全的重要组成部分。
规范要求- 等级保护
- 网络安全法
- 网上银行信息安全通用规范
- 数据安全法
Web应用安全
Web数据流程安全
WEB安全设计原则
名称 | 说明 |
---|---|
安全边界划分 | 划分的目的是为了减少攻击面,当被攻击者入侵后,他能访问什么资源?他能访问网络吗?怎么减少潜在损失?防火墙,最小权限账号,最小权限代码都是划分需要考虑的 |
使用最低权限 | 以最低权限账号运行进程,这可以显著降低攻击者破坏安全和运行恶意代码的能力 |
使用深度防御 | 在每个安全边界都需要做安全防御,防止单层防御被绕过或破坏的风险 |
不信任用户输入 | 应用程序的输入界面是破坏者的有力攻击武器。始终认为所有的用户输入都有可能有恶意,在每个安全边界都进行输入校验,实施深度防御策略 |
入口处检查 | 尽量早在入口去做认证授权 |
安全的失败 | 如果应用程序执行出错,不能导致敏感数据泄漏。给用户返回友好的出错页面,不能泄漏系统信息,或其他能帮助攻击者攻击系统的信息 |
加强最脆弱环节 | 你的网络安全吗?主机安全吗?应用程序安全吗?任何一个环节有漏洞都可能导致系统被破坏 |
缺省安全 | 缺省账号是给的最小权限吗?配置文件中的密码是明文吗? |
减少攻击面 | 不用的服务、协议、功能要禁用或删除。你的服务器需要开通所有这些协议和端口吗?你的应用程序需要所有这些特性吗 |
WEB安全设计建议
名称 | 说明 |
---|---|
输入校验 | 不信任任何输入;考虑集中输入验证;不依赖客户端验证;注意规范化问题;按照约束、拒绝、净化的流程处理输入;验证类型、长度、格式、范围 |
认证 | 将网站分为匿名、标识、已认证区域;使用强密码;支持密码过期时间和账号禁止功能;不存储凭证;使用加密通讯保护认证token;通过Https连接传输Cookie |
授权 | 使用最少特权账户;考虑授权粒度;使用特权隔离策略;限制用户访问系统资源 |
配置管理 | 使用最低特权账号运行进程和服务;不在配置文件中明文存储密码;在管理面使用强认证和授权;远程管理者使用安全传输通道;不在Web空间存储敏感数据 |
敏感数据 | 避免存储敏感数据;传输时要加密;使用安全的传输通道;使用强访问控制;不存储敏感数据在cookie中;不通过http get方法传输敏感数据 |
会话管理 | 限制会话有效期;使用安全传输通道;加密cookie中的内容;禁止对会话状态的未授权访问 |
密码学 | 不开发自己的加解密算法;使用已经过严格测试和验证的平台提供的加解密特性;使用正确的算法和密钥长度;避免密钥管理(使用系统提供特性,如DPAPI);周期性更新密钥;密钥存储在安全区域 |
参数操作 | 加密cookie中的敏感数据;不信任客户端可以修改的字段(query strings、form fields、cookies、http headers);校验所有客户端提交的值 |
异常管理 | 使用结构化异常处理;不泄露程序实现细节;不记录密码等个人数据;使用集中异常处理框架 |
审计与日志 | 标识恶意行为和正常访问;审计和记录所有应用程序中的活动;日志需要安全防护;定期备份和分析日志文件 |
威胁消减措施 - 设计编码、安全管理
威胁消减措施 - 安全测试、安全工具、安全防御
安全规范要求流程落地、安全培训及认证上岗(Web安全设计认证、Web安全编码认证、Web安全测试认证)、开源第三方管理要求
Web应用防火墙WAF
Web应用防护 - WAF
- Web应用防火墙(Web Application Firewall,WAF),通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定
- 在WAF管理控制台将网站添加并接入WAF。网站成功接入WAF后,网站所有访问请求将先流转到WAF,WAF检测过滤恶意攻击流量后,将正常流量返回给源站,从而确保源站安全、稳定、可用
Web应用防护 - WAF
- 精准高效的威胁检测
- 采用规则和AI双引擎架构,默认集成华为最新防护规则和优秀实践;企业级用户策略定制,支持拦截页面自定义、多条件的CC防护策略配置、海量IP黑名单等,防护更精准
- 0day漏洞快速修复
- 专业安全团队7*24小时运营,实现紧急0day漏洞2小时内修复完成,帮助用户快速抵御最新威胁
- 保护用户数据隐私
- 支持用户对攻击日志中的账号、密码等敏感信息进行脱敏;
- 支持PCI-DSS标准的SSL安全配置;
- 支持TLS协议版本和加密套件的配置
- 助力企业安全合规
- 帮助企业满足等保测评、PCI-DSS等安全标准的技术要求
WAF功能特性
-
Web攻击防护
覆盖OWASP常见安全威胁,通过预置丰富的信誉库,对恶意扫描器、IP、网马等威胁进行检测和拦截 -
全面的攻击防护
支持SQL注入、XSS跨站脚本、文件包含、目录遍历、敏感文件访问、命令\代码注入、网页木马上传、第三方漏洞攻击等威胁检测和拦截 -
CC攻击防护
通过接口限速和人机识别,有效降低CC攻击(HTTP Flood)带来的业务影响 -
返回页面可定制
返回页面可自定义内容和类型,满足业务多样化需要 -
精准访问控制
基于丰富的字段和逻辑条件组合,打造强大的精准访问控制策略 -
支持多种条件逻辑
支持包含、不包含、等于、不等于、前缀等于、前缀不等于等逻辑条件,设置阻断或放行策略 -
安全可视化
提供简洁友好的控制界面,实时查看攻击信息和事件日志 -
策略事件集中配置
在管理端集中配置策略,快速下发,快速生效
WAF具备丰富的Web威胁检测能力
学习推荐于缩略词
-
学习推荐
华为云Stack案例库
http: //support-it.huawei.com/kb/#/home -
缩略词
缩略语 | 英文全称 | 解释 |
---|---|---|
OWASP | Open Web Application Security Project | 开源的Web应用安全项目 |
SSL | Secure Socket Layer | 安全套接字层 |
TLS | Transport Layer Security | 传输层安全协议 |
CC | Challenge Collapsar | DDOS攻击的一种,针对Web服务的第7层协议启动的攻击 |