渗透测试教程:什么是渗透测试 (PenTest)?
渗透测试
渗透测试,通常称为PenTest,是一种安全测试,用于查找入侵者可能在软件应用程序、网络或在线应用程序中利用的漏洞、风险和威胁。渗透测试的目的是发现并评估软件程序中所有潜在的安全漏洞。渗透测试的另一个名称是Pen Test。
入侵者破坏或未经授权访问网络或其中任何数据的可能性称为漏洞。漏洞通常在软件规划和实施阶段偶然发现。常见的威胁包括设计缺陷、配置缺陷、软件问题等等。渗透分析基于两种技术:漏洞评估和渗透测试 (VAPT)。
为什么需要渗透测试?
在商业中,渗透测试至关重要,因为:
金融机构,如银行、投资银行和证券交易所,需要确保其信息安全,而渗透测试对于确保安全至关重要。
软件系统以前曾遭受攻击,企业需要了解系统中是否存在任何威胁,以防止进一步入侵。
主动式渗透测试是网络犯罪分子的最大武器。
渗透测试类型
使用的渗透测试类型通常取决于评估的范围以及企业是否希望模拟员工、网络管理员(内部来源)或外部因素的入侵。渗透测试分为三种类型:
黑盒测试
白盒渗透测试
灰盒渗透测试
在黑盒渗透测试中,分析师对被检查的过程几乎一无所知。他负责收集有关所选网络或系统的数据。
在白盒渗透测试中,测试人员通常会获得有关待评估网络或系统的全面信息,例如IP地址方案、源代码、操作系统详细信息等等。这可以被视为任何内部因素(组织员工)进行的网络攻击的原型。
在灰盒渗透测试中,测试人员只获得系统的一些有限信息。这是由外部人员进行的入侵,他们已非法访问公司网络基础设施文档。
如何执行渗透测试?
为了执行渗透测试,必须执行以下步骤:
步骤1 - 准备阶段
确定任务的范围和方法。
使用当前的安全规则和标准来确定范围。
步骤2 - 发现阶段
尽可能多地收集有关系统的信息,特别是系统中的数据、用户和密码。这被称为“指纹识别”。
检查端口并对其进行调查
检查系统是否存在漏洞。
步骤3 - 攻击阶段
发现各种漏洞的补救措施。要利用系统,必须拥有适当的安全权限。
步骤4 - 报告阶段
分析需要提供具体的成果。
发现的威胁及其对企业的影响
建议和可能的响应
渗透测试的主要目标是收集系统数据。有两种收集信息的方法:
就主机而言,“一对一”或“一对多”框架:测试人员以顺序方式针对单个目标主机或分层主机系统集合(例如子网)使用功能。
“多对一”或“多对多”模型:测试人员使用多个主机以任意、速率受限和非线性方式执行数据收集过程。
渗透测试工具示例
渗透测试使用许多不同的工具,其中最重要的是:
**NMap** - 此工具用于分析端口、识别操作系统、跟踪路由和查找漏洞。
**Nessus** - 这是一款传统的网络漏洞扫描器。
**Pass-The-Hash** - 此工具主要用于破解密码。
渗透测试人员的主要职责
渗透测试人员的目标是:
测试人员必须从公司获取必要的数据才能进行渗透测试。
查找可能允许攻击者破坏目标机器的漏洞。
渗透测试人员应该像真正的黑客一样思考和专业行事。
渗透测试人员的工作必须可重复,以便开发人员可以轻松修复。
应提前指定测试过程的开始和结束日期。
测试人员必须对在软件测试过程中发生的任何系统或信息泄漏负责。
测试人员应将数据和信息保密。
测试人员应将数据和信息保密。
手动渗透测试与自动化渗透测试
下表突出显示了手动渗透测试和自动化渗透测试的主要区别:
手动渗透测试 | 自动化渗透测试 |
---|---|
手动测试需要使用熟练的技术人员来执行测试 | 使用较少的专家技术人员,自动化测试工具可以提供简洁的结果。 |
手动测试需要使用Excel以及其他工具来记录它。 | 自动化测试工具是集中式和一致的。 |
手动测试的样本结果在每次测试中都不同。 | 自动化测试的结果实际上并没有彼此不同。 |
消费者必须记住清理内存 | 自动化测试将执行广泛的清理工作。 |
渗透测试的缺点
渗透测试无法检测系统中的所有漏洞。时间、金钱、范围和渗透测试人员的能力都是有限的。
当我们执行渗透测试时,可能会发生以下负面影响:
数据损坏和丢失
停机时间
成本增加。
结论
测试人员必须像真正的入侵者一样测试程序或系统,并且他们应该验证代码是否正确构建。如果确实存在适当的安全策略,则渗透测试将有效。渗透测试策略和程序必须井然有序才能提高渗透测试的有效性。这是一本完整的渗透测试入门手册。