freeCodeCamp/guide/chinese/security/penetration-testing/index.md

65 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Penetration Testing
localeTitle: 渗透测试
---
渗透测试是许多公司遵循的方法,以最大限度地减少其安全漏洞。这是一种雇佣专业人员的受控方式,他会试图破解你的系统,并向你展示你应该如何修复的漏洞。渗透测试有时会导致系统崩溃,导致公司失去正常运行时间,最好的做法是对生产环境的预生产版本进行渗透测试。
在进行渗透测试之前,必须签订明确提及以下参数的协议 -
* 什么是渗透测试的时间,
* 哪个是攻击的IP源
* 什么是系统的渗透领域。
渗透测试由专业的道德黑客进行,他们主要使用商业,开源工具,自动化工具和手动检查。没有限制;这里最重要的目标是发现尽可能多的安全漏洞。许多大公司通过所谓的[bug赏金计划](https://en.wikipedia.org/wiki/Bug_bounty_program)为任何能够指出系统安全漏洞的人提供奖励。例如,谷歌将通过其漏洞奖励计划提供数万美元。
## 渗透测试的阶段
渗透测试有五个主要阶段。他们是:
1. **侦察**
* 这是渗透测试人员收集有关您潜在目标的尽可能多的信息的地方。此阶段使用的一些方法是Google / Bing搜索whois搜索Netcraft扫描和社交工程。
2. **扫描**
* 一旦渗透测试人员收集了所有信息并决定他们想要攻击哪个目标,他们需要确保目标存活并扫描诸如开放端口,活动服务和任何当前漏洞之类的内容。目标系统已打开。
3. **开发**
* 扫描完成并评估漏洞后,渗透测试人员可以使用该信息来确定其攻击媒介。在此阶段,渗透测试人员会查找使用上一阶段中发现的漏洞之一来获取对目标系统的访问权限的漏洞利用程序。
4. **维护访问权限**
* 这个阶段是渗透测试人员确保他们有足够的时间来测试目标系统的地方。他们可能会试图规避任何入侵检测/预防措施,以便完成测试。
5. **覆盖轨道**
* 在攻击完成后,压抑测试人员可以采取措施隐藏他们的入侵,并且可能留下持久访问的手段以允许向他们的客户提供概念证明。
## 渗透测试的类型
我们有五种类型的渗透测试 -
1. **黑匣子** - 在这里,道德黑客没有关于他试图渗透的组织的基础设施或网络的任何信息。在黑盒渗透测试中,黑客试图通过他自己的方式找到信息。
2. **灰盒子** - 这是一种渗透测试,道德黑客对基础设施有部分了解,比如域名服务器。
3. **白盒** - 在白盒渗透测试中,道德黑客提供了有关他需要渗透的基础架构和组织网络的所有必要信息。
4. **外部渗透测试** - 此类渗透测试主要关注网络基础架构或服务器及其在基础架构下运行的软件。在这种情况下道德黑客通过Internet使用公共网络尝试攻击。黑客企图通过攻击他们的网页网络服务器公共DNS服务器等来攻击公司基础设施。
5. **内部渗透测试** - 在这种类型的渗透测试中,道德黑客在公司网络内部并从那里进行测试。
渗透测试还可能导致系统故障,系统崩溃或数据丢失等问题。因此,在进行渗透测试之前,公司应该采取计算风险。风险计算如下,这是一种管理风险。
**风险=威胁×漏洞**
## 例
您有一个正在制作的在线电子商务网站。您希望在投入使用之前进行渗透测试。在这里,你必须首先权衡利弊。如果继续进行渗透测试,可能会导致服务中断。相反,如果您不希望执行渗透测试,那么您可能会面临一个未受修补的漏洞的风险,该漏洞始终是一个威胁。 在进行渗透测试之前,建议您以书面形式记下项目范围。你应该清楚要测试什么。例如 -
* 您的公司有VPN或任何其他远程访问技术您想要测试该特定点。
* 您的应用程序具有带有数据库的Web服务器因此您可能希望对SQL注入攻击进行测试这是对Web服务器最重要的测试之一。此外您还可以检查您的网络服务器是否对DoS攻击免疫。
## 快速提示
在进行渗透测试之前,您应该记住以下几点 - 首先了解您的要求并评估所有风险。
* 聘请经过认证的人员进行渗透测试因为他们经过培训可以应用所有可能的方法和技术来发现网络或Web应用程序中可能存在的漏洞。
* 在进行渗透测试之前始终签署协议。
## 资源
[渗透测试](https://en.wikipedia.org/wiki/Penetration_test)