概览

本文意在对于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下载、安装的更多相关文章

  1. 安全性测试:OWASP ZAP 2.8 使用指南(四):ZAP扫描移动应用安全

    在做移动应用(APP,小程序等)测试时,需要关注应用安全性. ZAP是可以用来进行手机移动应用渗透性测试扫描的. 正因为ZAP是采用“中间代理”的形式,截取并扫描所有客户端与服务器的交互请求,作为客户 ...

  2. 安全性测试:OWASP ZAP 2.8 使用指南(二):ZAP基础操作

    ZAP桌面应用 ZAP桌面应用由以下元素组成: 1. 菜单栏  – 提供多种自动化和手动工具的访问 2. 工具栏  – 提供快速访问最常用组件的用户接口 3. 树结构窗口  – 展示被测网站树结构和脚 ...

  3. 外包项目测试工作量评估指南&外包项目测试验收流程

    ## ### 外包项目测试工作量评估指南 1.目的        编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...

  4. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

  5. Android SDK上手指南:知识测试

    Android SDK上手指南:知识测试 2014-01-22 10:00 核子可乐 译 51CTO 字号:T | T 在从零开始学习Android开发系列教程当中,我们已经了解了为Android平台 ...

  6. 开放式 Web 应用程序安全性项目 OWASP

    开放式 Web 应用程序安全性项目 OWASP Open Web Application Security Project (OWASP) OWASP 基金会是谁? Open Web Applicat ...

  7. 阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  8. 《iOS开发指南:从零基础到App Store上架(第2版)》

    <iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...

  9. Boost下载安装编译配置使用指南

    转载:http://www.cppblog.com/jerryma/archive/2011/10/17/158554.html --更新于2011/7/19,目前我已对boost的安装和使用有了新的 ...

随机推荐

  1. nginx配置文件 http 强跳转 https

    路径 /usr/local/nginx/conf/conf.d/test.jackcui.com.conf server { listen 80; server_name test.jackcui.c ...

  2. mysql实践:sql优化

    ---恢复内容开始--- 设计表的时候 1. 不同的表涉及同一个公共意义字段不要使用不同的数据类型(可能导致索引不可用,查询结果有偏差) 2. 不要一张表放太多的数据     主表20~30个字段   ...

  3. "echo 0 /proc/sys/kernel/hung_task_timeout_secs" disable this message

    问题现象: 问题原因: 默认情况下, Linux会最多使用40%的可用内存作为文件系统缓存.当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的IO请求都是同步的. 将缓存写入磁盘时 ...

  4. DynamicList

    DynamicList设计要点——类模板 申请连续空间作为顺序存储空间 动态设置顺序存储空间的大小 保证重置顺序存储空间时的异常安全性 DynamicList设计要点——函数异常安全的概念 不泄露任何 ...

  5. Linux系统:centos7下搭建Nginx和FastDFS文件管理中间件

    本文源码:GitHub·点这里 || GitEE·点这里 一.FastDFS简介 1.基础概念 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件上传 ...

  6. 基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

  7. Java每日一面(Part1:计算机网络)[19/10/21]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.UDP简介 1.1UDP报文结构: ​ Source Port:源端口 Destination Port:目标端口 Length:数据包长度 C ...

  8. 微信小程序的bindtap事件

    在微信小程序中,要想获取元素的属性值,需要用到 bindtap事件,如果想要正确获取到属性值,对属性的命名还有一定要求 如下是正确的方式data-money-Num="9.93": ...

  9. How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 419137.1)

    How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID ...

  10. July 7th, 2019. Week 27th, Sunday

    We laughed and kept syaing "see you soon", but inside we both knew we would never see each ...