渗透测试可以定义为发现和利用计算机系统中的安全漏洞以改善这些系统的安全性的合法和授权尝试。 此过程包括测试漏洞以及提供所谓的"漏洞"攻击的完整证据。 POC(概念证明)。 这是为了确认报告的安全错误是可用的。 此外,渗透测试以具体建议结束。 其中包括如何修复测试期间检测到的错误。 总之,此过程旨在帮助保护计算机和网络免受未来的攻击。 渗透测试也被称为名称,如 p肠, PT, 黑客,道德黑客,白帽黑客. 一个重要的选择是查看渗透测试与风险评估或审计之间的区别。 审计师问,"你有备份 ????.吗? 安全社区的许多人(和企业)可以互换地使用这些概念。风险评估是一个审查服务和系统的过程,重点是潜在的安全问题,而通过利用和实际攻击进行渗透测试表明实际存在的安全错误。 进行渗透测试不仅仅是通过模拟黑客活动和提供现成的攻击载体来评估漏洞。 渗透测试可分为几个类别,并考虑以下因素:
- 可用的知识水平;
- 测试范围;
- 测试组的组成;
- 测试是如何进行的;
- 测试的位置;
- SDLC周期中的位置(开发生命周期);
以下是基于上述标准的渗透测试的分类 :(a) 可用的知识水平:
- 黑盒 – 测试者拥有有关被攻击系统的最小信息量的方法。 通常,这只是有关测试范围的信息。 这是模拟来自外部的黑客攻击(攻击者试图侵入一个他一无所知的系统);
- 灰盒 – 测试程序对系统有一定程度的了解,但无法访问源代码的方法。 它通常具有数据结构的可见性,例如通过与它共享的低特权用户帐户。 此攻击旨在模拟来自公司内部的黑客攻击(攻击者是公司的员工,或在系统中拥有帐户);
- 白盒 – 测试人员可以完全访问技术文档的方法。 此测试主要用于审查源代码并查找其中的安全错误:
(b) 测试范围:
- 侵入性测试,包括模拟真实攻击,例如修改数据或阻止服务。 因此,它们影响系统的运作:
- 非侵入性测试与侵入性测试相反,因此它们不会影响系统的功能。 它们依赖于在没有实际验证的情况下查找漏洞,例如通过审查源代码。
(c) 测试组的组成:
- 公司内部员工进行的测试;
- 第三方研究;
- 按混合组成进行的测试,即公司内部雇员和第三方雇员:
(d) 如何进行测试:
- 专家测试,由合格的专家手动进行:
- 使用专用工具(如网络扫描仪、源代码分析仪)进行的自动测试:
- 混合测试包括手动和自动测试;
(e) 测试位置:
- 内部测试,包括模拟来自公司内部的攻击绕过安全(如防火墙),通常使用内联网:
- 外部测试,包括外部攻击的模拟,例如通过互联网。 在这种情况下,攻击者必须克服防火墙机制或应用程序过滤器:
(f) 系统开发生命周期(SDLC):
- 软件开发过程中的测试。所谓测试驱动型开发:
- 接受测试,在已经创建的软件上执行。