Web 安全基础:CIA 三元组、B/S 架构与 OWASP Top 10

Web 安全基础:CIA 三元组、B/S 架构与 OWASP Top 10

本文字数:1739  阅读时长:4分钟

访客数:加载中... | 阅读量:加载中...

Web 安全基础:CIA 三元组、B/S 架构与 OWASP Top 10

1. 安全目标:CIA 三元组

信息安全的核心目标可以归结为三条,合称 CIA 三元组:

  • 机密性(Confidentiality):保证信息只被授权者访问,防止未授权泄露。
  • 完整性(Integrity):保证信息在传输和存储过程中不被篡改或损坏。
  • 可用性(Availability):确保信息和系统在需要时可供使用,不受意外中断或恶意攻击的影响。

2. B/S 架构

B/S(Browser/Server,浏览器/服务器)架构是 Web 应用的基础形态:

  • 浏览器端:应用程序的用户界面和功能逻辑在 Web 端运行。
  • 服务端:数据处理和业务逻辑由服务端完成,运行在服务器上的软件系统处理客户端(浏览器)发来的请求,并提供相应的服务和数据。

3. 专业术语

漏洞生命周期:0day / 1day / Nday

安全漏洞是存在生命周期的,简单可分为几个阶段:

  1. 0day:漏洞被发现但尚未公开,厂商未知晓,无任何补丁。
  2. 1day:漏洞信息被公布,但漏洞没有官方补丁或修复方案。
  3. Nday:漏洞已有官方补丁或修复方案,但现实中仍有大量未修复的目标存在,因此依然具有攻击价值。

常用攻击术语

  • PoC(Proof of Concept,概念验证):用于验证安全漏洞是否存在、能否被利用的证明代码。
  • EXP(Exploit,漏洞利用程序):利用安全漏洞造成入侵或破坏效果的程序。
  • Payload(有效载荷 / 攻击载荷):目标系统被渗透攻击之后所执行的代码。

4. HTTP 协议与 Web 安全模型

HTTP 协议是 Web 通信的基础:浏览器向服务器发送 HTTP 报文资源请求,接收信息并解码显示。

浏览器端安全性

  • 同源策略:限制不同源(协议、域名、端口)之间的资源访问,是 Web 安全的基础防线。
  • 浏览器沙箱:将页面脚本隔离在受限环境中运行,降低恶意代码对系统的破坏。
  • 恶意网站拦截:浏览器基于黑名单与信誉机制拦截钓鱼、挂马等恶意站点。

服务端安全性

服务端的安全风险集中在多个层面:

  • 常见 Web 安全漏洞:如 SQL 注入、命令执行漏洞等。
  • 编程语言安全特性:PHP、JSP、MySQL 等语言与组件的安全配置。
  • 中间件安全问题:Apache、Tomcat 等中间件的版本与配置缺陷。
  • 操作系统层面:Linux、Windows 的系统加固与补丁管理。

关于 Web 应用程序安全的思考

除了技术漏洞,还要关注管理与运维层面的风险,其中弱口令是最常见也最容易被忽视的一环。

5. OWASP Top 10

OWASP Top 10 是 Web 应用安全风险的权威排行,2021 版本十大项如下:

A01:失效的访问控制(Broken Access Control)

访问控制机制失效,导致未授权用户可以访问本应受保护的资源或功能。

A02:加密机制失效(Cryptographic Failures)

敏感数据未加密、加密算法过时或密钥管理不当,导致数据泄露。

A03:注入(Injection)

用户输入未经严格校验即被拼接进查询或命令,常见如 SQL 注入、命令注入。

A04:不安全的设计(Insecure Design)

架构与设计层面的安全缺陷,仅靠补丁式修复无法根治。

A05:安全配置错误(Security Misconfiguration)

默认配置、错误消息泄露、多余功能开放等配置不当带来的风险。

A06:自带缺陷和过时的软件(Vulnerable and Outdated Components)

使用了含已知漏洞的组件或过时软件,未及时更新。

A07:身份识别和身份验证错误(Identification and Authentication Failures)

常见问题包括:

  • 允许暴力破解或自动化攻击。
  • 允许预设、脆弱、常见的密码。
  • 不具有或者无效的多因素认证。
  • 没有正确注销会话。

A08:软件和数据完整性故障(Software and Data Integrity Failures)

代码或数据在传输、更新过程中完整性校验缺失,例如依赖了被篡改的第三方库。

A09:安全日志和监控故障(Security Logging and Monitoring Failures)

  • 需要审计的事件(如登录、失败的登录、高价值交易)未记录。
  • 应用程序和 API 日志未进行针对安全可疑活动的监控。
  • 日志只存储在本地,缺乏集中管理与告警。

A10:服务端请求伪造(Server-Side Request Forgery,SSRF)

一旦 Web 应用获取远程资源时没有验证用户的 URL,就会出现 SSRF 缺陷。如果网络架构未进行隔离,攻击者可以绘制出内网网络地图,并根据连接结果,或 SSRF 有效载荷连接的运行时间和拒绝时间,判断内部服务器的端口是打开还是关闭。