270 likes | 367 Views
欢迎光临!. 中国航天科工集团二院706所. 基于攻击图的渗透测试模型 设计. 张继业. 2005年8月5日. 主要内容. 1 引言 2 模型设计思想 3 PTGM 模型的结构 4 渗透测试图的 设计 5 渗透测试图操作集的设计 6 基于 PTGM 模型的渗透测试过程 7 结论. 1 引言. 渗透测试与渗透测试模型 渗透测试是对网络的安全性分析和风险评估量化研究必不可少的工具 渗透测试模型用于组织测试用例,控制测试过程,是渗透测试的依据 现有渗透测试模型的不足 测试的主要方法还是漏洞的线形遍历 难以发现组合攻击对网络安全的影响
E N D
欢迎光临! 中国航天科工集团二院706所
基于攻击图的渗透测试模型设计 张继业 2005年8月5日
主要内容 • 1 引言 • 2 模型设计思想 • 3 PTGM模型的结构 • 4 渗透测试图的设计 • 5 渗透测试图操作集的设计 • 6 基于PTGM模型的渗透测试过程 • 7 结论
1 引言 • 渗透测试与渗透测试模型 • 渗透测试是对网络的安全性分析和风险评估量化研究必不可少的工具 • 渗透测试模型用于组织测试用例,控制测试过程,是渗透测试的依据 • 现有渗透测试模型的不足 • 测试的主要方法还是漏洞的线形遍历 • 难以发现组合攻击对网络安全的影响 • 难以发现互联主机间相互安全性的影响 • 渗透测试模型应该能够模拟网络攻击过程
2 模型设计思想 • 模型的设计借鉴了攻击图的思想 • 攻击图为有向图 • 图的顶点表示攻击状态,弧表示状态转换关系 • 目前攻击图主要应用于网络系统的安全性分析 • 攻击图结构灵活,可以应用于网络安全研究的不同方向 • 本文根据渗透测试的要求构建攻击图,并称之为渗透测试图
2 模型设计思想 • 基于攻击图的渗透测试模型攻击图—PTGM(Penetration Testing Graph Modal ) • 模型的思想 • 渗透测试的过程映射为对渗透测试图的操作 • 图的顶点表示测试项目的测试情况 • 利用弧表示对测试项目的测试 • 测试用例是相互依赖关系组织
3 PTGM模型的结构 • PTGM模型采用了分层的结构 • 模型的底层是渗透测试图 • 在渗透测试图上面是测试图的操作集 • 最上层是进行渗透测试所需要的参数和数 • 图中连接不同层之间的箭头表示映射关系
4 渗透测试图的设计 • 渗透测试图的定义 • 安全属性及其取值 • 状态集合S的设计 • 转换关系τ的设计
4.1 渗透测试图的定义 • 渗透测试图为有向图,由一个四元组表示: • 其中S为状态的集合 • S0为初始状态集合 • SS为成功状态集合 • τ为状态转换
4.2 安全属性及其取值 • 安全属性是能够代表网络的安全特征的软硬件设备配置信息。 • 从渗透测试的角度来看安全属性主要分为三类: • 渗透测试的测试项目 • 网络中的其它软硬件配置信息 • 渗透测试的目标 • 安全属性可以由一个三元组表示: desp是安全属性的名称、type代表安全属性的类型、val代表安全属性的值
4.3 状态集合S的设计(一) • 取值的安全属性表示网络的安全状态 • 状态集合中的某个元素是渗透测试的某个时刻被测试网络的安全属性的取值情况 • 安全状态是从渗透测试人员的角度对被测网络的描述 • 表示在测试过程中测试人员获得的被测网络的信息和权限的多少 • 体现渗透测试进行的程度 • 并不意味着网络确实处于这种安全状况。
4.3 状态集合S的设计(一) • 取值的安全属性表示网络的安全状态 • 状态集合中的某个元素是渗透测试的某个时刻被测试网络的安全属性的取值情况 • 安全状态是从渗透测试人员的角度对被测网络的描述 • 表示在测试过程中测试人员获得的被测网络的信息和权限的多少 • 体现渗透测试进行的程度 • 并不意味着网络确实处于这种安全状况。
4.3 状态集合S的设计(二) • 状态集合S表示安全属性在测试过程中的取值 • 初始状态S0为安全属性取初始值 • 成功状态Ss为表示测试目标的安全属性的取值 • 状态之间的转换由执行测试用例实现
4.4 转换关系τ的设计 • 转换关系表示测试用例对安全属性的测试 • 执行测试用例是渗透测试中最小的测试单元,称之为原子测试。 • 每个原子测试由四个部分组成 • 测试条件 • 测试结果 • 测试代价 • 用例程序
5 渗透测试图操作集的设计 • 对于PTGM来说操作是其能够实现的功能 • 对于使用者来说操作代表其在测试中的行为 • PTGM模型的渗透测试图操作集包括三类操作 • 测试图生成操作 • 测试图遍历操作 • 测试图分析操作
6 基于PTGM模型的渗透测试过程 • 渗透测试的三个阶段: 测试计划的制定 测试的进行 测试报告的生成 • PTGM模型的三个操作 测试图的生成 测试图的遍历 测试图的分析 • PTGM模型的三个操作分别对应渗透测试的三个阶段
6.1 测试计划的制定 • GeneratePenTestGraph()操作制订测试计划 • 测试图中弧的先后顺序表示测试用例的执行顺序 • 测试土中的顶点记录测试用例执行的条件和应得到的结果
6.2 测试的进行 • TraversePenTestGraph()操作实现对目标的测试 • PTGM采用深度优先遍历渗透测试图的方式组织测试过程 • 深度优先遍历是一个由初始状态到成功状态的状态转移序列,代表一次成功的攻击过程。 • 采用广度优先遍历,则测试过程退化为传统的漏洞扫描和渗透测试过程。 • 采用深度优先遍历渗透测试图的优势 • 以攻击路径为测试单位 • 测试多个漏洞组合攻击对网络的威胁 • 模拟攻击过程
6.3 测试结果的生成 • PTGM模型通过测试图分析操作得到测试的结果。 • 通过测试项目结果分析操作AnalysisItem()获得被测试网络中各个测试项目的测试结果 • 通过攻击路径的分析操作AnalysisPath()获得对被测试网络实施攻击的攻击路径 • 其它分析攻击图的方法也可以被PTGM模型采用
H1 Web服务 可用性被破 S5 坏 U4 上传lsass攻 U6 U3 U5 击程序到H1 上传 S11 S6 S12 Webdav S4 上传lsass攻 上传 x3 攻击 U2 击程序到H2 Webdav 程序到 U11 x3 攻击 H2 U16 U10 U15 程序到 H1 获得H2 管理 S3 U1 S10 员权限 获得H1 管理 U9 U8 H2 Web服务 员权限 U7 器为IIS 5.0 H2 邮件服务 S9 S14 S2 器为Imail H1 Web服务 版本低于4.2 器为IIS 5.0 U19 U17 U12 H1 139端口 H2 80端口开 开放 放 S13 S8 S7 S1 H1 80端口开 放 H2 25端口开 放 U20 U18 U14 U13 S0 渗透测试图示例
7 结论 • 本文设计了一个基于攻击图的渗透测试模型PTGM • 给出了基于PTGM的渗透测试流程 • PTGM模型利用攻击图组织渗透测试用例,能够实现对攻击过程的模拟和测试过程的控制 • PTGM模型的测试结果有助于网络系统的安全性评估