(解读)什么是渗透测试(Penetration Testing)?

渗透测试(Penetration Testing),也称为Pen Testing,是测试计算机系统、网络或Web应用程序以发现攻击者可能利用的安全漏洞的实践。渗透测试可以通过软件应用自动化或手动执行。无论哪种方式,该过程都包括在测试之前收集关于目标的信息,识别可能的入口点,试图闯入(虚拟的或真实的)并报告结果。

让我们看看WIKI上的英文解释(翻译后)

渗透测试是对计算机系统的授权模拟攻击,用于评估系统的安全性。执行测试以识别两个缺点(也称为漏洞),包括未授权方访问系统的特征和数据的可能性,以及优点,使得能够完成完整的风险评估。该过程通常识别目标系统和特定目标,然后审查可用信息,并采取各种手段来实现该目标。渗透测试目标可以是白盒(提供背景和系统信息)或黑盒(只提供基本信息或除了公司名称不提供任何信息)。灰盒穿透测试是二者的结合(其中目标有限的知识与审计人员共享)。渗透测试可以帮助确定一个系统是否容易受到攻击,如果防御足够,以及测试是否打败了哪些防御(如果有的话)。渗透测试发现的安全问题应该报告给系统所有者。渗透测试报告也可以评估对组织的潜在影响,并提出降低风险的对策。

美国国家网络安全中心(National Cyber Security Center)将渗透测试描述如下:“一种方法,通过试图破坏某个IT系统的部分或全部安全性,使用与对手相同的工具和技术,来获得对该IT系统的安全性的保证。”

渗透测试的目标根据针对任何给定参与的已批准活动的类型而有所不同,其中主要目标是发现可被邪恶行为者利用的漏洞,并将这些漏洞与建议的缓解策略一起通知客户。 渗透测试是全面安全审计的一个组成部分。例如,支付卡行业数据安全标准要求在定期日程表和系统更改之后进行渗透测试。缺陷假设方法是一种系统分析和渗透预测技术,其中通过对系统的规范和文档的分析来编译软件系统中的假设缺陷列表。然后,根据所估计的缺陷实际存在的概率,以及在控制或折衷的范围内易于利用该漏洞,对假设缺陷列表进行优先级排序。优先级列表用于指导系统的实际测试。

为什么需要渗透测试?

从渗透测试的定义描述可以看出其目的。例如:Web应用程序渗透测试是通过在内部或外部模拟未经授权的攻击来访问敏感数据的。网络渗透帮助终端用户发现黑客从因特网访问数据的可能性,发现他们的电子邮件服务器的安全性,并且也了解网站托管站点和服务器的安全程度。当我们谈论安全时,我们听到的最常见的词是漏洞。当我刚开始做安全测试的时候,我经常对这个词感到困惑,我相信你们中的很多人会陷入同样的困境。

什么是漏洞(Vulnerability)?

可以这样简单的解释,漏洞是用于识别系统中可能使系统暴露于安全威胁的缺陷的术语。

漏洞扫描和渗透测试有什么区别?

漏洞扫描允许用户发现应用程序中的已知弱点,并定义修复和提高应用程序整体安全性的方法。它基本上查明是否安装了安全补丁,系统是否正确地配置为使攻击变得困难。而渗透测试主要模拟实时系统,帮助用户了解系统是否可以被未经授权的用户访问,如果是,那么会造成什么损害,以及哪些数据等。因此,漏洞扫描是一种侦测控制方法,它提出了改进安全程序和确保已知缺陷不重新出现的方法,而渗透测试是一种预防控制方法,它给出了系统现有安全层的总体视图。虽然,这两种方法都有其重要性,但它将取决于作为测试的一部分真正期望的内容。作为测试人员,在我们开始测试之前,必须明确测试的目的。如果您清楚目标,那么您可以很好地定义是否需要进行漏洞扫描或渗透测试。

实施渗透测试的重要性如下:

  • 渗透测试有助于识别未知的漏洞。
  • 帮助检查总体安全政策的有效性。
  • 帮助测试公开的组件,如防火墙、路由器和DNS。
  • 让用户找出最易受攻击的路线
  • 帮助发现可能导致敏感数据被盗的漏洞。

如果你看看当前的市场需求,手机使用量已经急剧增加,这正成为攻击的主要潜在因素。通过手机访问网站容易受到更频繁的攻击,从而破坏数据。渗透测试因此变得非常重要,以确保我们建立一个安全的系统,用户可以使用,没有任何担心黑客或数据丢失。

WEB系统渗透测试方法

该方法只是一组关于应该如何进行测试的安全行业指南。有一些建立良好且著名的方法和标准可以用于测试,但是由于每个Web应用程序需要执行不同类型的测试,所以测试人员可以通过参考市场上可用的标准来创建他们自己的方法。

一些安全性测试方法论和标准如下:

  • OWASP (Open Web Application Security Project)
  • OSSTMM (Open Source Security Testing Methodology Manual)
  • PTF (Penetration Testing Framework)
  • ISSAF (Information Systems Security Assessment Framework)
  • PCI DSS (Payment Card Industry Data Security Standard)

下面列出了一些可以作为Web应用程序渗透测试(WAPT)的一部分进行测试的测试场景:

  1. 跨站点脚本(CSS,Cross Site Scripting)
  2. SQL注入(SQL Injection)
  3. 破损的认证和会话管理 (Broken authentication and session management)
  4. 文件上载缺陷 (File Upload flaws)
  5. 缓存服务器攻击 (Caching Servers Attacks)
  6. 安全错误配置(Security Misconfigurations)
  7. 跨站点请求伪造(Cross Site Request Forgery)
  8. 密码破解(Password Cracking)

尽管我已经提到了该列表,但是测试人员不应该盲目地创建基于上述传统标准的测试方法。

这里有一个例子来证明我为什么这么说。假设您被要求深入测试一个电子商务网站,现在考虑一下是否可以使用传统的OWASP方法(如XSS、SQL注入等)来识别电子商务网站的所有漏洞。答案是否定的,因为与其他网站相比,电子商务工作在非常不同的平台和技术上。为了使您的渗透测试电子商务网站有效,测试人员应该设计一种方法,包括缺陷如订单管理,优惠券和奖励管理,支付网关集成和内容管理系统集成。因此,在决定方法之前,要非常确定要测试哪种类型的网站,以及哪种方法将有助于找到最大的漏洞。

WEB渗透性测试类型

Web应用程序可以通过两种方式进行渗透测试。可以设计测试来模拟内部或外部攻击。

#1)内部渗透测试

顾名思义,内部笔测试是在组织内部通过内部网络(例如:内部局域网)来完成的,因此它包括测试在内部网上托管的Web应用程序。这有助于发现企业防火墙内是否存在漏洞。我们总是相信攻击只能在外部发生,而且很多时候内部渗透测试被忽略或者没有得到重视。基本上,它包括不满的雇员或承包商的恶意雇员攻击,这些雇员或承包商可能已经辞职,但知道内部安全策略和密码,钓鱼攻击的模拟,以及使用用户特权或误用解锁终端的攻击。

#2)外部渗透性测试

这些攻击是在组织外部进行的,包括测试托管在互联网上的Web应用程序。测试人员的行为就像黑客一样,他们不太了解内部系统。为了模拟这种攻击,测试人员得到目标系统的IP而不提供任何其他信息。他们需要搜索和扫描公共网页,并找到我们关于目标主机的信息,然后危害找到的主机。基本上,它包括测试服务器、防火墙和IDS。

WEB渗透测试方法

这可以包括三个阶段

流行的渗透测试工具

能手动执行渗透测试吗,还是总是通过使用工具进行自动化。毫无疑问,我想你们大多数人都在谈论自动化。

这是真的,因为自动化带来了速度,避免了人工错误、出色的覆盖率以及其他一些好处,但是就渗透测试而言,它确实需要我们执行一些手工测试。手动测试有助于发现与业务逻辑相关的漏洞,减少误报。 工具容易给出许多误报,因此需要人工干预来确定它们是否是真正的漏洞。

创建工具是为了自动化我们的测试工作。以下是一些可用于Pentest的工具:

  • Free Pen Test tool
  • Veracode
  • Vega
  • Burp Suite
  • NetSparker
  • Arachni
  • Acunetix
  • ZAP

Burp Suite 和 NetSparker 是我非常喜欢的工具。

理想情况下,渗透测试可以帮助我们创建安全的软件。但这是一个非常耗费成本的测试方法,所以测试的频率可以不必太频繁。

附:

The process of penetration testing may be simplified into five phases

侦查(嗅探)收集关于目标系统的重要信息的行为。此信息可用于更好地攻击目标。例如,开源搜索引擎可用于查找可用于社会工程攻 击的数据。

使用技术工具来进一步提高攻击者对系统的知识。

使用在侦察(嗅探)和扫描阶段收集的数据,攻击者可以使用有效负载来利用目标系统。

维护访问需要采取步骤,以便能够持久地在目标环境中收集尽可能多的数据。

攻击者必须清除任何破坏受害者系统的跟踪、收集的任何类型的数据、记录事件,以便保持匿名。

一旦攻击者利用了一个漏洞,他们就可以访问其他机器,因此该过程重复,即寻找新的漏洞并试图利用它们。这个过程被称为-Pivoting。

  1. Reconnaissance-The act of gathering important information on a target system. This information can be used to better attack the target. For example, open source search engines can be used to find data that can be used in a social engineering attack.
  2. Scanning - Uses technical tools to further the attacker's knowledge of the system. For example, Nmap can be used to scan for open ports.
  3. Gaining Access - Using the data gathered in the reconnaissance and scanning phases, the attacker can use a payload to exploit the targeted system. For example, Metasploit can be used to automate attacks on known vulnerabilities.
  4. Maintaining Access - Maintaining access requires taking the steps involved in being able to be persistently within the target environment in order to gather as much data as possible.
  5. Covering Tracks - The attacker must clear any trace of compromising the victim system, any type of data gathered, log events, in order to remain anonymous.

(完)

(解读)什么是渗透测试(Penetration Testing)?相关推荐

  1. 渗透测试(Penetration Testing)

    渗透测试(Penetration Testing) http://www.cnblogs.com/hyddd/archive/2009/03/22/1419104.html http://www.w3 ...

  2. [ZZ]渗透测试(Penetration Testing)

    目录 Author : ZwelL Last Updated : 2007.12.16 零.前言 一.简介 二.制定实施方案 三.具体操作过程 四.生成报告 五.测试过程中的风险及规避 参考资料 FA ...

  3. 网络安全系列-VIII: 什么是渗透测试 Penetration Test?

    什么是渗透测试? 概念及流程 渗透测试: Penetration Test, 是指用黑客的方式攻击你自己或客户的IT系统,来找到其中的安全漏洞.是安全评估的一种手段,目的是为了提高系统的安全性 渗透测 ...

  4. 《使用Nessus进行渗透测试》- 简介

    2019独角兽企业重金招聘Python工程师标准>>> 简介 作者常逛的安全网站:http://www.webappsec.org/和http://www.securityfocus ...

  5. 网站渗透测试原理及详细过程

    渗透测试实战 site:baidu.com 渗透测试思路 site:baidu.com 带你入门渗透测试的5个项目:https://www.jianshu.com/p/5b82e42ae346 渗透测 ...

  6. 各类环境渗透测试简述

    各类环境渗透测试简述 一.渗透测试概念 渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络 ...

  7. 攻防技术基础笔记一——病毒、蠕虫病毒、木马、软件漏洞、常见问题、漏洞成因、黑产产业链、遵纪守法、渗透测试、渗透测试方法、VMware的使用、认识kali

    攻防技术基础笔记 一.病毒 二.蠕虫(worm)病毒 三.简单辨析蠕虫病毒跟普通病毒 四.木马 五.木马与病毒的区别 六.软件漏洞 七.两个生活中的安全问题 八.漏洞产生的原因 九.漏洞黑产产业链 十 ...

  8. 什么是Web渗透测试

    什么是Web渗透测试 渗透测试( Penetration Test)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节.渗透测试能够直观的让管理人员知道 ...

  9. 渗透测试成功的8个关键

    渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法.这个过程包括对系 ...

  10. 渗透测试基础,初识渗透测试

    渗透测试基础 1.渗透测试的概念 2.安全术语介绍 3.HTTP协议讲解 概述 HTTP URL HTTP响应头 HTTP头中安全隐患 HTTP请求方法 HTTP响应码 4.HTTPS协议 1.渗透测 ...

最新文章

  1. pytorch之Tensor与Variable的区别
  2. java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结
  3. jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件
  4. java思考笔记——遍历Map-key的几种方法
  5. linux sudo 免密码
  6. 前端页面:一直报Cannot set property 'height' of undefined
  7. 索尼发布新一代 IoT 芯片,万物互联方式将改写?
  8. mac下自动保存 Git SSH Key 密码
  9. python科学计算库
  10. 用LM方法的matlab求解,matlab中LM算法
  11. 数据结构之二叉树深度计算
  12. 赋能未来的昆腾全新Scalar存储平台
  13. Pr入门系列之十一:基本图形(上)
  14. python接收163邮件以及下载附件(以163邮箱为例)
  15. Unity-Behavior Designer详解
  16. 有别于普通专线的BGP线路
  17. 【NLP】常见的自然语言处理任务和技术
  18. 剑网三插件入门教程(2):在游戏中调试Lua代码
  19. 一家有两个孩子,已知至少有一个孩子是在星期二出生的男孩。问:两个孩子都是男孩的概率是多大?
  20. js中for(const i in/of arr/obj)和vue中v-for指令的区别

热门文章

  1. 快速原型工具,帮你从0开始画原型图!
  2. 程序员的工资是不是太高了?真相让人心疼
  3. java isbn_JAVA ISBN计算问题。。简单JAVA编程
  4. 乡土中国思维导图精华版
  5. 我国支付结算体系概况
  6. 五个顶级的大数据架构
  7. BUUCTF笔记之Basic部分WP
  8. 10x 程序员工作法 - 划重点 | “自动化”主题的重点内容回顾汇总
  9. linux ubuntu 五笔输入法,ubuntu下安装fcitx五笔输入法
  10. PyCharm 实用快捷键