安全性测试:OWASP ZAP 2.8 使用指南(一):安全测试基础及ZAP下载、安装
概览
本文意在对于OWASP's Zed Attack Proxy(ZAP)软件做一个基本使用指南介绍。
ZAP是一个用于实施安全性测试的工具,即使没有很强的安全测试背景也可以很好的使用。
为了达到这一目的,本文会包含一些安全测试概念和术语,但是本文并不会就ZAP或安全测试进行过于深入的讨论。
安全测试基础
软件系统安全性测试,是一个评估和测试系统,以发现系统和数据安全性风险和漏洞的过程。
安全性测试并没有统一的方法论,不过我们将这一过程描述为“不以滥用为目的的发现系统的漏洞的行为”。
常见的安全性测试类型可以分为以下几种:
• 脆弱性评估 – 通常通过工具扫描的形式,评估系统安全性
• 渗透性测试 – 系统被分析并且通过模拟攻击的形式,评估其安全防御能力
• 运行时测试 – 通过终端用户的测试来评估系统安全性
• 代码审查 – 系统代码被评估和审查,以确定系统安全防御能力
注意(产品)风险评估并不包含在这个列表内。这是因为风险评估实际上并不是一种测试,而是对于不同风险的一种预估和分析,以及对于相应风险规避举措的拟定。
关于渗透性测试
渗透性测试,由测试人员扮演外部攻击者的角色,目标在于攻破系统以达到盗取数据或类似于拒绝服务攻击等目的。
渗透性测试的优势在于很少误报安全性问题(其它类型的测试,报出的安全性问题很多时候并不会真实构成被攻击风险)。
但是渗透性测试也是一种非常耗时的测试。
渗透性测试也用来测试系统防御机制,验证响应计划,并且确定安全性策略的遵循。
自动化的渗透测试是持续集成验证的重要部分,他有助于发现新的安全性风险,也能很快的发现在快速迭代过程中出现的安全性回退。
渗透性测试过程
手工渗透测试和自动化渗透测试都经常被使用,通常以结合起来的形式,来测试从服务器,到网络,到设备,到终端的所有链路。
本文则主要瞩目于Web应用或者说网站渗透性测试。
渗透性测试通常遵循以下阶段:
• 探索 – 测试人员学习被测系统。包括了解整个系统体系内被使用的部件,包括哪些终端,对于软件和系统而言安装了哪些补丁,等等。
这个过程中测试人员也会查找系统内的隐藏内容,已知安全风险,以及其它漏洞的表现。
• 攻击 – 测试人员尝试利用已知风险或可疑的漏洞,以证明这些风险和漏洞的存在。
• 报告 – 测试人员将测试的结果进行汇报,包括发现的系统漏洞,以及漏洞是如何被利用的,利用这些漏洞的困难程度,以及漏洞被利用的严重性。
渗透性测试目标
渗透性测试的终极目标在于搜寻系统的漏洞,这样这些漏洞可以被处理。
也可以用来确定系统不会被一些已知的风险所影响。
当系统漏洞被被修复以后,重新进行渗透性测试以确定系统漏洞已被弥补。
ZAP简介
Zed Attack Proxy (ZAP)是一个免费开源的渗透性测试工具,由OWASP组织开发和维护。
ZAP被设计用来专门测试Web应用的安全性,并且具有非常强的灵活性和可扩展性。
ZAP的核心机制是大家耳熟能详的“中间代理”。他通过架设在测试人员的浏览器和Web应用服务之间,这样他就可以拦截和审查浏览器和应用服务之间的信息交互。
必要的情况下,ZAP可以完成改包和重发。
如果已经有一个网络代理存在,ZAP也可以被配置为连接到已存在的代理。
ZAP提供了一系列针对不同安全技能等级的功能 - 从开发,到安全测试新手,到安全测试专家。
ZAP支持所有主流的操作系统以及Docker,并不强制绑定使用某一OS。
同时在ZAP客户端中的ZAP Marketplace中,也提供了非常多的免费的附加组件,以提供多种功能。
由于ZAP是一个开源软件,我们也可以查看他的源码,了解其功能的实现方法。
所有人都可以资源为ZAP贴砖加瓦,包括修复bug和增添功能。
安装和配置
ZAP提供了Windows, Linux以及Mac OS/X的安装包。
也提供了Docker镜像,下载地址可以在下文中找到。
安装
首先,在系统实施渗透性测试的系统中安装好ZAP。从以下地址下载适合你系统的ZAP安装包,并且执行:
https://github.com/zaproxy/zaproxy/wiki/Downloads
注意ZAP需要JDK8以上的版本来运行,所以安装的系统上需要预先安装JDK8以上版本。
Docker版不需要安装Java。
安装完成以后,就可以启动ZAP了。
保持会话
第一次启动ZAP,会被问到你是否要保持ZAP会话。
ZAP会话会默认以预设的名称和地址,记录到磁盘中的HSQLDB数据库中。
如果你不希望保持会话,那么在你退出ZAP时,这些会话文件会被删除。(意味着下次启动ZAP将无法看到之前的操作/测试记录)
如果选择保持会话,会话信息会被保存到本地数据库,这样下次使用时可以继续上次的操作。
选择保持会话,会提示为本次会话命名并选择存放地址。
第一次使用时,可以保持默认选项并开始,这样本次会话将不会被保持。
安全性测试:OWASP ZAP 2.8 使用指南(一):安全测试基础及ZAP下载、安装的更多相关文章
- 安全性测试:OWASP ZAP 2.8 使用指南(四):ZAP扫描移动应用安全
在做移动应用(APP,小程序等)测试时,需要关注应用安全性. ZAP是可以用来进行手机移动应用渗透性测试扫描的. 正因为ZAP是采用“中间代理”的形式,截取并扫描所有客户端与服务器的交互请求,作为客户 ...
- 安全性测试:OWASP ZAP 2.8 使用指南(二):ZAP基础操作
ZAP桌面应用 ZAP桌面应用由以下元素组成: 1. 菜单栏 – 提供多种自动化和手动工具的访问 2. 工具栏 – 提供快速访问最常用组件的用户接口 3. 树结构窗口 – 展示被测网站树结构和脚 ...
- 外包项目测试工作量评估指南&外包项目测试验收流程
## ### 外包项目测试工作量评估指南 1.目的 编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...
- 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试
黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...
- Android SDK上手指南:知识测试
Android SDK上手指南:知识测试 2014-01-22 10:00 核子可乐 译 51CTO 字号:T | T 在从零开始学习Android开发系列教程当中,我们已经了解了为Android平台 ...
- 开放式 Web 应用程序安全性项目 OWASP
开放式 Web 应用程序安全性项目 OWASP Open Web Application Security Project (OWASP) OWASP 基金会是谁? Open Web Applicat ...
- 阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- 《iOS开发指南:从零基础到App Store上架(第2版)》
<iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...
- Boost下载安装编译配置使用指南
转载:http://www.cppblog.com/jerryma/archive/2011/10/17/158554.html --更新于2011/7/19,目前我已对boost的安装和使用有了新的 ...
随机推荐
- 小程序-picker组件选择数量
<!-- detail.wxml --> <view class="picker"> <picker range="{{range}}&qu ...
- oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111
oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111 问题场景:oracle,jpa,insert原因:插入的字段中有null.导致类型转换出问题,这个 ...
- 体感在js中的调用
体感技术,在于人们可以很直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让人们身临其境地与内容做互动. 体感分为三大类: 惯性感测:主要是以惯性传感器为主,例如用重力传感 ...
- 深入浅出14个Java并发容器
前言 不考虑多线程并发的情况下,容器类一般使用ArrayList.HashMap等线程不安全的类,效率更高.在并发场景下,常会用到ConcurrentHashMap.ArrayBlockingQueu ...
- WM消息大全,windows消息大全
WM消息大全 消息名 消息值 说明 WM_CREATE 0x0001 应用程序创建一个窗口 WM_DESTROY 0x0002 一个窗口被销毁 WM_MOVE 0x0003 移动一个窗口 WM_SIZ ...
- JMeter内存溢出:java.lang.OutOfMemoryError: Java heap space解决方法
一.问题原因 用JMeter压测,有时候当模拟并发请求较大或者脚本运行时间较长时,JMeter会停止,报OOM(内存溢出)错误. 原因是JMeter是一个纯Java开发的工具,内存由java虚拟机JV ...
- SVN 回滚提交的代码
有的时候,代码提交错了,我们可以通过SVN回滚到指定的版本,然后在提交回滚后的代码,即为撤销提交. 回滚代码 重新提交刚才回滚后的代码
- iOS-基于TCP连接<Scoket-客户端>
一:前言(本文为TCP客户端) TCP首先要服务器开放一个端口 然后客户端去连接服务端的IP地址和端口号 连接成功之后再进行数据传输 要经历三次握手 二:代码在GitHub 1.需要的工具类 自行下载 ...
- echarts玩转图表之矩形树图
前言 这是第一次用makedown编辑器写文章,感觉像一件利器,排版美观而且效率飙升.进入正题 Echart官网文档地址 针对于矩形树图api配置项链接 1. 完全从数据定义图形 $.get( &qu ...
- Http相关小知识点笔记咯~
协议 先来说说什么是协议,协议其实指的是通信协议(Communications Protocol),也称传输协议.Wiki中的描述的是这样的,通信协议定义了通信中的语法学,语义学和同步规则以及可能存在 ...