渗透测试教程:什么是PenTest?

什么是渗透测试?
渗透测试 或笔测试是一种 安全测试 渗透测试用于发现软件应用程序、网络或Web应用程序中攻击者可能利用的漏洞、威胁和风险。渗透测试的目的是识别和测试软件应用程序中所有可能存在的安全漏洞。渗透测试也称为Pen Test。
下图展示了应用程序中未修补的漏洞如何成为攻击者入侵的入口。
漏洞是指攻击者能够破坏系统或未经授权访问系统及其中所含数据的风险。漏洞通常是在软件开发和实施阶段意外引入的。常见的漏洞包括设计错误、配置错误和软件缺陷。渗透分析依赖于两种机制,即漏洞评估和渗透测试(VAPT)。
漏洞评估和渗透测试 (VAPT) 的两个组成部分经常被混淆。漏洞评估列举已知的大规模漏洞,仅此而已;而渗透测试则会在安全的前提下,利用其中一部分漏洞来验证其在实际环境中的影响。将二者结合起来,可以区分理论发现和真正会危及数据安全的漏洞。
为什么要进行渗透测试?
渗透测试对于企业至关重要,原因如下:
- 银行、投资银行和证券交易所等金融机构都希望确保数据安全,而渗透测试对于保障数据安全至关重要。
- 如果软件系统已被黑客入侵,该组织希望确定系统中是否仍然存在任何威胁,以避免将来再次遭到黑客攻击。
- 主动渗透测试是抵御黑客攻击的最佳保障。
- 合规框架对此有所要求。例如,PCI DSS 要求 11.4 规定,至少每年进行一次内部和外部渗透测试,并在任何重大变更后进行测试。
渗透测试的类型
渗透测试的类型通常取决于测试范围,以及组织是想模拟员工或网络管理员(内部来源)发起的攻击,还是想模拟外部来源的攻击。渗透测试主要有三种类型,分别是:
在黑盒渗透测试中,测试人员对被测系统一无所知。测试人员负责收集有关目标网络或系统的信息。
在白盒渗透测试中,测试人员通常会获得关于待测网络或系统的完整信息,包括IP地址架构、源代码和操作系统详情。这可以被视为模拟来自任何内部来源(例如组织内部员工)的攻击。
在灰盒渗透测试中,测试人员只掌握系统的部分信息。这可以被视为外部黑客发起的攻击,他们非法获得了对组织网络基础设施文档的访问权限。
下表将这三种类型并列列出,以便您可以将交战类型与您实际想要模拟的威胁相匹配。
| 方面 | 黑箱 | 白色 Box | 灰色 Box |
| 提供给测试人员的信息 | 没有 | 完整内容:源代码、IP架构、操作系统详情 | 部分:有限的凭证或文件 |
| 攻击者模拟 | 一个没有权限的局外人 | 内部人士或开发人员 | 一个已经站稳脚跟的外来者 |
| 侦察所花费的时间 | 高 | 低 | 中 |
| 代码库的典型覆盖率 | 只有从外部可以到达的东西 | 最深层,因为内部结构清晰可见。 | 重点关注暴露的攻击路径 |
如何进行渗透测试
要执行渗透测试,需要进行以下活动。下图概括了四个阶段,接下来将逐一描述每个阶段。
步骤1)规划阶段
- 确定任务的范围和策略
- 现有的安全策略和标准用于定义范围。
步骤2)发现阶段
- 尽可能多地收集系统信息,包括系统中的数据、用户名甚至密码。这也被称为指纹识别。
- 扫描并探测端口
- 检查系统漏洞
步骤3)攻击阶段
- 找出各种漏洞的利用方法。你需要必要的安全权限才能利用系统漏洞。
步骤4)报告阶段
- 报告必须包含详细的调查结果
- 已发现的漏洞风险及其对业务的影响
- 建议和解决方案(如果有)
渗透测试的首要任务是收集系统信息。收集信息有两种方法:
- 针对主机的“一对一”或“一对多”模型:测试人员以线性方式对单个目标主机或逻辑组执行测试技术。ping 目标主机(例如子网)。
- “多对一”或“多对多”模型:测试人员利用多个主机以随机、速率受限和非线性的方式执行信息收集技术。
渗透测试工具示例
渗透测试中使用了多种多样的工具, 重要的渗透测试工具 是:
1) Teramind
Teramind 提供全面的内部威胁预防和员工监控套件。它通过行为分析和数据丢失预防来增强安全性,确保合规性并优化业务流程。其可定制平台适合各种组织需求,提供可操作的见解,重点是提高生产力和保护数据完整性。
特色:
- 内部威胁预防:检测并阻止可能表明存在内部数据威胁的用户行为。
- 业务流程优化:利用数据驱动的行为分析来重新定义运营流程。
- 员工生产力:监控员工的生产力、安全性和合规行为。
- 合规管理:通过一个可扩展的单一解决方案帮助管理合规性,该解决方案适用于小型企业、大型企业和政府机构。
- 事件取证:提供证据以丰富事件响应、调查和威胁情报。
- 数据丢失防护:监控并防止敏感数据丢失。
- 员工监控:提供监控员工绩效和活动的功能。
- 行为分析:分析细粒度的客户应用程序行为数据,以获取洞察。
- 可自定义的监控设置:允许自定义监控设置以适应特定用例或实施预定义的规则。
- 仪表盘洞察:通过综合仪表盘提供有关员工活动的可见性和可操作的洞察。
渗透测试人员的角色和职责
渗透测试人员的工作是:
- 从组织中收集必要信息,以便进行渗透测试。
- 查找可能允许黑客攻击目标机器的漏洞
- 像真正的黑客一样思考和行动,但要遵守道德规范。
- 确保工作可复现,以便开发人员能够轻松修复问题。
- 提前商定测试执行的开始日期和结束日期。
- 对系统或信息在运行过程中发生的任何损失承担责任。 软件测试
- 对数据和信息保密
手动渗透测试与自动化渗透测试
大多数实际合作都会结合这两种方法。下面的比较展示了每种方法的优势所在。
| 手动渗透测试 | 自动化渗透测试 |
| 手动测试 需要专业人士进行测试 | 自动化测试工具可为经验较少的专业人员提供清晰的报告 |
| 手动测试需要使用 Excel 和其他工具。 trac成套工具 | 自动化测试 拥有集中且标准化的工具 |
| 在手动测试中,样本结果因测试而异 | 对于自动化测试,每次测试的结果并没有什么不同 |
| 用户应该记住定期清理内存。 | 自动化测试将进行全面清理。 |
渗透测试的缺点
渗透测试无法发现系统中的所有漏洞。时间、预算、范围以及渗透测试人员的技能都存在局限性。
以下是进行渗透测试时可能产生的副作用:
- 数据丢失和损坏
- 停机时间
- 增加成本
下面的信息图汇总了同样的权衡取舍,以及组织仍然进行测试的原因。
正是由于这些限制,渗透测试最好是在完善的安全策略基础上进行,而不是取代安全策略。测试人员应该像真正的黑客一样,检查代码是否编写得安全,并按照既定的计划重复进行测试。




