漏洞分类

简介

安全漏洞是信息系统在生命周期的各个阶段(设计、实现、运维等过程) 中产生的某类问题,这些问题会对系统的安全(机密性、完整性、可用性)产生影响。

Bug 与漏洞的关系

漏洞与Bug并不等同,他们之间的关系基本可以描述为:大部分的Bug影响功能 性,并不涉及安全性,也就不构成漏洞;大部分的漏洞来源于Bug i但并不是全部 它们之间只是有一个很大的交集。

根据威胁类型进行分类

威胁机密性、完整性

可导致关键系统被控制的漏洞 可以劫持程序执行流程,转向执行攻击者指定的任意指令、代码或命令,控 制应用系统或操作系统。 威胁最大,同时影响系统的机密性、完整性,甚 至在需要的时候可以影响可用性。 主要来源: 内存破坏类,命令/代码执行类漏洞

机密性:获取信息

可导致关键信息被泄露的漏洞 可以非法获取程序访问预期外的资源(文件、数据库等)并泄露给攻击者,影响系统的机密性。 主要来源: 输入验证类、配置错误类漏洞

可用性:拒绝服务

拒绝服务类漏洞 可以导致目标应用或系统暂时或永远性地失去响应正常服务的能力, 影响系统的可用性。 主要来源:内存破坏类、错误的异常处理等漏洞。

Web 攻击面

  • 客户端

    • 浏览器(如:各种 UXSS)

  • 服务端

    • Web 程序本身

    • Web 框架(如:WordPress 各种漏洞)

  • 中间件

    • Web Server(如:IIS 解析漏洞)

  • 非 Web 层

    • 目标服务器开放的其他服务(如:SSH、MySQL)

    • 操作系统(如:DirtyC0w、MS17-010)

    • 硬件漏洞(如:幽灵、熔断)

注入型漏洞分类

程序 = 数据(变量) + 指令(函数)

对于注入型漏洞(用户输入会最终传入危险函数)来说,函数决定漏洞类型。

当用户输入传入:

  • 具有输出功能的函数 -> XSS

  • 数据库操作函数 -> SQL 注入

  • 具有命令执行功能的函数 -> 远程命令执行

  • 具有代码执行的函数 -> 远程代码执行

  • 具有请求功能的函数 -> SSRF

  • XML 解析功能的函数 -> XXE

Web 安全漏洞漏洞分类

Web 安全中很少涉及到内存破坏型漏洞,此处暂不介绍。 之后会有响应的讲师对内存破坏型漏洞进行介绍。

  • 客户端

    • CSRF

    • XSS

  • 服务端

    • 注入类

      • SQL 注入(用户输入传入数据库操作函数)

      • 远程命令执行(传入具有命令执行功能的函数)

      • 远程代码执行(传入具有代码执行的函数)

      • 反序列化

      • XXE

      • SSRF(传入具有请求功能的函数)

      • 任意文件读取

    • 语言特性导致(PHP)

      • 文件上传

      • 文件包含

      • 变量覆盖

    • NodeJS

      • 原型污染

    • 逻辑漏洞

      • 功能级访问控制缺失(越权)

      • 条件竞争

      • 失效的身份认证与会话管理

  • 中间件

    • CLRF

  • 运维

    • 敏感信息泄漏

最后更新于