1、web安全测试流程设计简介

web安全测试业务主要围绕流程、标准、规范三个方面展开,其中流程是核心,标准和规范在流程运作中落地与执行。

2、web安全测试流程概要设计

当需要测试的web应用数以千计,就有必要建立一套完整的安全测试流程,流程的最高目标是要保证交付给客户的安全测试服务质量。

立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
系统分析&威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
测试执行&漏洞挖掘:测试用例执行&发散测试,挖掘对应的安全问题or漏洞;
问题修复&回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
项目总结评审:项目过程总结,输出文档评审,相关文档归档。

3、web安全测试流程详细设计--立项

每一个web应用的安全测试第一步就是立项,确定流程实施内容,包括如下:
客户提出测试需求:需求方、web应用名称、期望的目标等;
安排测试人员:安全测试人员安排,测试环境搭建;
测试计划制定:与需求方沟通测试计划安排,每一个流程阶段的时间计划,具体的测试内容;
测试实施:确定需求方接口人,后续问题沟通反馈&修改;
流程评审&结项:确定web应用测试完成后的评审方案,向客户交付测试输出文档;

4、web安全测试流程详细设计--系统分析

web安全测试首先要进行的就是熟悉被测系统,将系统分解,分析系统使用的组件,使用何种web架构等等。
系统分析主要包括系统物理架构和逻辑架构的划分。
物理架构:按照系统使用的组件分析出来的架构,如底层使用何种数据库,控制层使用何种组件,表示层使用何种前端库等,组件之间使用那些通信协议等; 数据存储层:如mysql、oracle、redis、Bigtable等;
控制层:如Spring、Struts2、Tomcat、Weblogic等;
表示层:如ExtJS、Bootstrap等;
通信协议:如AMQP等;
分析系统使用的这些物理组件,有助于了解系统的特性,方便进行威胁分析和对应的用例编写。
不同的组件有对应的不同的威胁模式库,物理架构分析后就可以直接进行对应的映射即可得出被测系统的威胁库。

逻辑架构:按照系统的业务逻辑划分的,例如根据一个系统的组成业务模块就可得出其逻辑架构,分析逻辑架构有利于熟悉系统内部的数据流。
如下图所示为某商户管理系统的业务逻辑架构图。
个人用户侧的功能包含商户基本信息维护、清算信息维护、差错处理、系统管理;
外部链接包括银行的各种业务处理;
商户内的数据与两边业务都有交互,从业务逻辑图可以清晰地看出数据流的走向。

5、web安全测试流程详细设计--威胁分析

系统分析后需要进行的就是系统威胁分析,根据系统分析的结果,选择合适的威胁模型,分析系统面临的主要安全威胁。
常见的威胁模型如TVRA和STRIDE:
TVRA:Threat(威胁)、Vulnerability(脆弱点)、Risk Analysis(风险分析).
其中Risk = Threat × Vulnerability × Consequence
Threat表示系统面临的威胁,Vulnerability表示系统存在的漏洞,consequence表示系统漏洞被利用所产生的后果,一般由CIA来衡量。

STRIDE是基于数据流的一种威胁分析模型,它包含六个维度威胁:

数据流图是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它一般包含以下几个元素:

数据流图一般分一层数据流和二层数据流图,一层数据流图是指整个系统的数据流图,其包含多个多处理过程,对每一个多处理过程继续分解就是二层数据流图,以web系统的登录模块为例,其分解的二层数据流图如下所示:

STRIDE模型一般应用在二层数据流图上,在外界操作与系统内部模块之间、系统模块与外界存储之间需要画立信任边界。数据流图元素和STRIDE的对应关系如下:

对于每一种威胁,其对应的消减方式如下表:

对于二层数据流图的每一个元素,结合其存在的对应威胁,即可确定安全测试中需要测试的内容,然后对应上图的消减措施,如果缺少对应的消减机制,就说明存在对应的安全问题或漏洞。

6、web安全测试流程详细设计--制定测试用例

威胁分析后就需要根据威胁分析的结果编写测试用例,针对分解的每一个二层数据流图,对每一个数据流图元素,映射对应的威胁,编写测试用例,用例必须按照模板输出,每一个用例具体内容包括:
用例名称:测试用例必须具有唯一可区分的名称;
用例执行步骤:用例的详细执行步骤,每一步必须无歧义,具备可执行性;
用例使用的工具:用例执行过程中使用的工具;
用例的执行条件:用例执行必须具备的条件,如网络可达、服务必须运行等;
用例的输入和输出:用例执行过程中涉及的输入,以及对应的输出;
用例的安全属性:目前规定的安全属性包括管理通道安全、XSS、注入攻击、CSRF、身份认证、会话安全、敏感数据保护、越权、中间件安全、配置安全这10个维度;
用例执行优先级:用例执行的优先顺序,在用例数量很多的情况下,应按照优先级高低的顺序执行。

7、web安全测试流程详细设计--测试执行&漏洞挖掘

测试用例编写完就需要开始用例的执行,具体的测试包括自动化的工具执行以及手动测试。

自动化的工具扫描包括:Nmap端口扫描、系统漏洞扫描、web安全扫描、协议安全扫描等;

手动测试包括:XSS、CSRF、SQL注入、XML注入、命令注入、横向/纵向越权、会话安全等等。

测试过程需要使用各种各样的工具,常见的web测试工具如下:

对于每一个用例的测试过程,需要有对应的操作截图。
对于每一个可以利用的安全漏洞,使用cvss2.0/3.0进行打分,以确定漏洞的严重程度。
测试执行与漏洞挖掘的过程与测试工程师的能力是强相关的,测试时的思路也会决定漏洞的挖局。
如果客户愿意提供应用源代码,我们也可以进行源码方向的安全审计。

8、web安全测试流程详细设计--问题修复&回归测试

测试执行完成后需要输出对应的测试报告,在报告中需要给出每个安全问题或漏洞的解决方案或建议。
如果可能,解决方案应当详细到源码级别。
问题修复应当遵循web应用开发安全规范的原则。
回归测试的目的为了防止问题修复引入新的安全问题,问题修复&回归测试是个循环的过程,测试没有新的问题时循环即终止。

9、web安全测试流程详细设计--项目总结评审

修复测试中发现的安全问题,完成回归测试后,整个安全测试流程就基本结束,最后需要就整个测试过程进行总结评审,例如测试方案、测试用例是否完善,测试过程发现了多少安全问题,web应用的高风险模块,测试过程有哪些薄弱项等等。
最后要做好客户交付件的输出,客户的交付文档包括:

总结:web安全渗透测试作为服务开展时,有必要建立一套对应的流程体系,以确保交付给客户的服务质量,从而建立良好的市场口碑!

web安全测试服务开展流程简介相关推荐

  1. MDM9x35MDM9x35启动流程简介

    1.前言.... 3 1.1编写背景... 3 1.2概述... 3 1.3定义与缩写... 3 1.4参考资料... 4 2.启动流程.... 4 2.1子系统.处理器及启动地址... 4 2.2启 ...

  2. Spark架构与作业执行流程简介

    2019独角兽企业重金招聘Python工程师标准>>> Spark架构与作业执行流程简介 博客分类: spark Local模式 运行Spark最简单的方法是通过Local模式(即伪 ...

  3. WEB的周期制作流程

    目录: WEB的周期制作流程 UML辅助网站规划和设计指南 专业信息网站制作规范 网页制作规范及流程 网站技术规范 技术概念详解 网页设计的八种陋习 如何为网上广告做标题 网站规划书浅析 网站策划书参 ...

  4. QT程序启动加载流程简介

    1. QT应用程序启动加载流程简介 1.1      QWS与QPA启动客户端程序区别 1.1.1   QWS(Qt Window System)介绍 QWS(Qt Windows System)是Q ...

  5. Linux下Web服务器应用之基础简介

    Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...

  6. 【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )

    文章目录 一.资源混淆效果 二.APK 构建流程简介 三.资源 ID 组成 四.参考资料 一.资源混淆效果 资源混淆 , 将资源名称与目录进行混淆 , 提高了反编译的难度 , 同时也减小了 APK 文 ...

  7. SLAM:SLAM相机简介、SLAM五步流程简介(VO+BEO+LCD+M)之详细攻略

    SLAM:SLAM相机简介.SLAM五步流程简介(VO+BEO+LCD+M)之详细攻略 目录 SLAM相机 1.单目相机 2.双目Stereo相机 3.深度相机/RGB-D相机 SLAM五步流程

  8. Recovery 流程简介

    Recovery 流程简介 Adroid 系统中的 Recovery 模式主要为用户提供了 OTA 升级和恢复出厂设置两大功能,用户可以通过 setting 中的系统软件更新和恢复出厂设置来进入到 r ...

  9. Web前端页面设计流程及注意事项,谨记!

    每天我们打开电脑,看到各种各样的web前端页面.你知道他们是如何制作的吗?为了让页面更具有规范性,让使用者更加方便,在制作页面过程中必须遵循一定的设计流程.在这里就为大家详细介绍一下制作一个Web前端 ...

最新文章

  1. MindSpore 高阶优化器
  2. JMeter入门(1):JMeter总体介绍及组件介绍
  3. 影像组学视频学习笔记(25)-查看准确度、灵敏度、特异度及混淆矩阵、Li‘s have a solution and plan.
  4. my batis plus 小数没有0_Excel中的数据去掉小数点,教你3个函数解决!
  5. 用 JA Transmenu 模块做多级弹出菜单
  6. Codepen 每日精选(2018-4-21)
  7. shiro分布式控制登录状态_Shiro——强大且易用的Java安全框架(四)
  8. 【报告分享】2019全球数字经济新图景.pdf
  9. android从子页面跳转回主页面注意
  10. 【windows】Windows电脑怎么卸载服务/删除服务?
  11. 英语语法基础(适合入门者)--第一章:词、单词
  12. python123测验六+测验七
  13. 如何在PowerPoint演示文稿中链接或嵌入Excel工作表
  14. Linux的快速使用_jdk安装_tomcat安装_mysql安装-尚学堂~百战程序员学习笔记
  15. 基于facenet人脸识别设计文档
  16. Mybatis:Mapper method attempted to return null from a method with a primitive return type (int)
  17. Educational Codeforces Round 95 (Rated for Div. 2)D. Trash Problem(权值线段树+离散化)
  18. 手撕自动驾驶算法——无迹卡尔曼滤波(UKF)
  19. Swing制作高仿QQ界面包含主界面、聊天窗口、系统设置窗口|圆角界面|透明|颜色|渲染|换肤
  20. 如何看懂k线图应该从基础的知识入手

热门文章

  1. java-web-访问不到java文件
  2. linux 版本命令
  3. 搬家后台式电脑开机无信号、进不去系统,键盘鼠标没反应
  4. nginx使用ssl模块配置支持HTTPS访问
  5. 使用Pushlet实现后台信息推送(一)
  6. 60岁大爷开甜品店,成功解决甜品店的客流和营业额下滑的问题!
  7. Quartz使用问题记录
  8. jsoup 的用法网络爬虫
  9. 51单片机之IO口扩展——74HC595芯片串行转并行实验
  10. EasyConnect - 提示获取服务端配置信息失败问题解决