什么是渗透测试?渗透测试的步骤和类型
渗透测试是一种测试web应用程序、网络或计算机系统的方法,用于识别可能被利用的安全漏洞。主要目标是防止未经授权的访问、更改或利用系统。
渗透测试旨在针对已知的漏洞或跨应用程序发生的常见模式,不仅发现软件缺陷,还发现网络配置中的弱点。
为什么安全渗透测试很重要?
考虑Pen Test是对系统,应用程序或网络的实际攻击的授权模拟,以评估系统的安全性。目标是弄清楚目标是否容易受到攻击,测试可以确定当前的防御系统是否足够,如果没有,哪些防御被击败。
虽然系统管理员需要知道测试和实际威胁之间的区别,但是重要的是要把每次检查当作真实的情况来对待。渗透测试通常是创造性的,而不是系统性的。例如,可以设计一个手写测试,通过公司高管的电子邮件渗透到内部,而不是对网络进行暴力攻击。创造性地以渗透者的身份来处理问题更现实,因为有一天可能会发生真正的攻击。
一旦测试完成,团队就需要执行详细的分类,以消除漏洞,或者在漏洞很少或没有威胁的情况下推迟采取行动。
通常,渗透测试人员是雇佣的外部人员,许多组织还提供赏金项目,在这个项目中,他们邀请自由测试人员在受控的环境中攻击他们的外部系统,比如公共网站,并承诺,如果他们能够入侵组织的计算机系统,就会获得一定的费用。
组织更愿意雇佣外部安全专家,因为那些不知道应用程序是如何开发的人可能有更好的机会发现原始开发人员可能从未考虑过的bug。
渗透测试的步骤
1.侦察及情报收集
情报收集,或开源智能(OSINT)收集,是测试人员的一项重要技能。在这个初始阶段,有道德的黑客或网络安全人员了解系统的环境如何工作,在开始之前收集尽可能多的关于系统的信息。
这个阶段通常会发现表层的漏洞,它包括:
本地和无线网络
相关的应用程序
网站
基于云计算的系统
员工
物理硬件设施
2.威胁建模
在收集了情报之后,网络安全专业人士开始进行威胁建模。
威胁建模是影响系统安全的信息的结构化表示,安全团队使用这种类型的模型来处理每个应用程序或特性。威胁建模捕获、组织和分析前一阶段为渗透测试所收集的大量情报。然后,同时优先考虑一系列全面的安全改进,包括概念、要求、设计和快速实现。
威胁建模是一个独立的过程,可以通过以下四个问题来总结:
我们在做什么?
我们正在做的事情会出什么问题?
我们能做些什么来确保这不会发生?
我们是否彻底根除了这个问题?
没有一种单一的、正确的方法来调查系统中的漏洞。但是,这些问题的组合对找到解决方案大有帮助。
在威胁建模过程中,网络安全专业人员定义和识别漏洞评估范围、威胁代理、现有对策、可利用漏洞、优先级风险和可能的对策。
渗透测试的种类
在情报收集和威胁建模之后,下一步就是渗透测试本身。
1.网络渗透测试与开发
这种测试包括内部和外部网络利用测试,通过模拟黑客技术来穿透系统的网络防御。一旦网络被破坏,测试人员就可以访问组织及其操作的内部安全凭证。
网络测试包括:
威胁建模
漏洞扫描与分析
防火墙绕过
路由器和代理服务器测试
ip和DPS规避
开放端口扫描
SSH安全攻击
网络测试比标准渗透测试更深入,定位基础扫描可能找不到的漏洞,所有这些都是为了创建更安全的整体网络。
应用程序安全性测试
应用程序安全性测试搜索服务器端应用程序漏洞,渗透测试旨在通过web应用程序、web服务、移动应用程序和安全代码审查来评估与这些漏洞相关的潜在风险。
最常见的应用程序包括web应用程序、语言、api、连接、框架、系统和移动应用程序。
3.客户端或网站及无线网络
无线和网站测试检查相关设备和基础设施的漏洞,这些漏洞可能导致对无线网络的破坏和利用。最近,比利时大学鲁汶分校(KU Leuven)的安全专家Mathy Vanhoef断定,所有WiFi网络都容易受到WPA2协议的攻击。
这个漏洞有可能泄露所有加密信息,包括信用卡号码、密码、聊天消息、电子邮件和图像。数据的注入和操纵也是一种可能性,可能导致勒索软件或恶意软件的攻击,从而威胁到整个系统。
为防止无线网络入侵,在进行测试时,请留意以下事项:
web服务器配置错误,包括使用默认密码
恶意软件和DDoS攻击
SQL注入
MAC地址欺骗
媒体播放器或内容创建软件测试漏洞
跨站点脚本编制
未经授权的热点和接入点
无线网络流量
加密协议
4.社会工程攻击
社会工程测试搜索组织可能直接基于其员工暴露的漏洞,在这种情况下,创造性测试必须设计成模拟真实世界的情况。这些测试不仅有助于同事之间的内部安全策略,还允许安全团队确定网络安全方面的下一步。
特定主题,如窃听、尾随或网络钓鱼攻击,冒充雇员,冒充供应商/承包商,提高身份或借口,交换条件,或者诱饵等是常见的测试。
5.物理测试
物理渗透测试通过确保未经授权的人员无法进入设备,防止黑客获得对系统和服务器的实际访问。IT和网络安全专业人士主要关注的是系统漏洞,可能会忽视物理安全的某些方面,从而导致被利用。物理渗透测试的重点是通过RFID系统、门禁系统和键盘、模仿员工或供应商、躲避运动和光线传感器来获取设备和硬件。
物理测试与社会工程结合使用,如操纵和欺骗设施员工,以获得系统访问。
6.计算机网络开发(CNE) &计算机网络攻击(CNAs)
在计算机网络开发(CNE)中,网络可以直接针对其他系统。例如,试图提取和获取敏感信息和数据,如机密情报或政府文件。这种类型的攻击通常在政府机构和军事组织中进行,被认为是监视、窃听,甚至是网络恐怖主义。
在计算机网络攻击(CNAs)中,目标是通过电子攻击(EA)破坏或破坏受害者网络上存在的信息,EA可以使用电磁脉冲(EMP)等技术使网络或系统失效。
CNAs的类型可以与社会工程重叠,包括数据修改和IP地址欺骗,基于密码的攻击,DDOS,中间的人攻击,或折衷密钥、嗅探器和应用层攻击。
7.云渗透测试
云服务对于团队协作、网络和存储非常重要。大量数据存储在云中,这意味着它是寻求利用这项技术的黑客的温床。
云部署相对简单,然而,云提供商通常对网络安全采取一种共享或放手不管的方式,而组织本身则负责漏洞测试或黑客防范。
典型的云渗透测试领域包括:
弱密码
网络防火墙
RDP和SSH远程管理
应用程序和加密
API、数据库和存储访问
虚拟机,以及未打补丁的操作系统
利用“白盒”测试方法,尽可能多地利用有关目标系统的信息。这包括它运行的软件,网络架构,源代码。
渗透测试旨在针对已知的漏洞或跨应用程序发生的常见模式,不仅发现软件缺陷,还发现网络配置中的弱点。
为什么安全渗透测试很重要?
考虑Pen Test是对系统,应用程序或网络的实际攻击的授权模拟,以评估系统的安全性。目标是弄清楚目标是否容易受到攻击,测试可以确定当前的防御系统是否足够,如果没有,哪些防御被击败。
虽然系统管理员需要知道测试和实际威胁之间的区别,但是重要的是要把每次检查当作真实的情况来对待。渗透测试通常是创造性的,而不是系统性的。例如,可以设计一个手写测试,通过公司高管的电子邮件渗透到内部,而不是对网络进行暴力攻击。创造性地以渗透者的身份来处理问题更现实,因为有一天可能会发生真正的攻击。
一旦测试完成,团队就需要执行详细的分类,以消除漏洞,或者在漏洞很少或没有威胁的情况下推迟采取行动。
通常,渗透测试人员是雇佣的外部人员,许多组织还提供赏金项目,在这个项目中,他们邀请自由测试人员在受控的环境中攻击他们的外部系统,比如公共网站,并承诺,如果他们能够入侵组织的计算机系统,就会获得一定的费用。
组织更愿意雇佣外部安全专家,因为那些不知道应用程序是如何开发的人可能有更好的机会发现原始开发人员可能从未考虑过的bug。
渗透测试的步骤
1.侦察及情报收集
情报收集,或开源智能(OSINT)收集,是测试人员的一项重要技能。在这个初始阶段,有道德的黑客或网络安全人员了解系统的环境如何工作,在开始之前收集尽可能多的关于系统的信息。
这个阶段通常会发现表层的漏洞,它包括:
本地和无线网络
相关的应用程序
网站
基于云计算的系统
员工
物理硬件设施
2.威胁建模
在收集了情报之后,网络安全专业人士开始进行威胁建模。
威胁建模是影响系统安全的信息的结构化表示,安全团队使用这种类型的模型来处理每个应用程序或特性。威胁建模捕获、组织和分析前一阶段为渗透测试所收集的大量情报。然后,同时优先考虑一系列全面的安全改进,包括概念、要求、设计和快速实现。
威胁建模是一个独立的过程,可以通过以下四个问题来总结:
我们在做什么?
我们正在做的事情会出什么问题?
我们能做些什么来确保这不会发生?
我们是否彻底根除了这个问题?
没有一种单一的、正确的方法来调查系统中的漏洞。但是,这些问题的组合对找到解决方案大有帮助。
在威胁建模过程中,网络安全专业人员定义和识别漏洞评估范围、威胁代理、现有对策、可利用漏洞、优先级风险和可能的对策。
渗透测试的种类
在情报收集和威胁建模之后,下一步就是渗透测试本身。
1.网络渗透测试与开发
这种测试包括内部和外部网络利用测试,通过模拟黑客技术来穿透系统的网络防御。一旦网络被破坏,测试人员就可以访问组织及其操作的内部安全凭证。
网络测试包括:
威胁建模
漏洞扫描与分析
防火墙绕过
路由器和代理服务器测试
ip和DPS规避
开放端口扫描
SSH安全攻击
网络测试比标准渗透测试更深入,定位基础扫描可能找不到的漏洞,所有这些都是为了创建更安全的整体网络。
应用程序安全性测试
应用程序安全性测试搜索服务器端应用程序漏洞,渗透测试旨在通过web应用程序、web服务、移动应用程序和安全代码审查来评估与这些漏洞相关的潜在风险。
最常见的应用程序包括web应用程序、语言、api、连接、框架、系统和移动应用程序。
3.客户端或网站及无线网络
无线和网站测试检查相关设备和基础设施的漏洞,这些漏洞可能导致对无线网络的破坏和利用。最近,比利时大学鲁汶分校(KU Leuven)的安全专家Mathy Vanhoef断定,所有WiFi网络都容易受到WPA2协议的攻击。
这个漏洞有可能泄露所有加密信息,包括信用卡号码、密码、聊天消息、电子邮件和图像。数据的注入和操纵也是一种可能性,可能导致勒索软件或恶意软件的攻击,从而威胁到整个系统。
为防止无线网络入侵,在进行测试时,请留意以下事项:
web服务器配置错误,包括使用默认密码
恶意软件和DDoS攻击
SQL注入
MAC地址欺骗
媒体播放器或内容创建软件测试漏洞
跨站点脚本编制
未经授权的热点和接入点
无线网络流量
加密协议
4.社会工程攻击
社会工程测试搜索组织可能直接基于其员工暴露的漏洞,在这种情况下,创造性测试必须设计成模拟真实世界的情况。这些测试不仅有助于同事之间的内部安全策略,还允许安全团队确定网络安全方面的下一步。
特定主题,如窃听、尾随或网络钓鱼攻击,冒充雇员,冒充供应商/承包商,提高身份或借口,交换条件,或者诱饵等是常见的测试。
5.物理测试
物理渗透测试通过确保未经授权的人员无法进入设备,防止黑客获得对系统和服务器的实际访问。IT和网络安全专业人士主要关注的是系统漏洞,可能会忽视物理安全的某些方面,从而导致被利用。物理渗透测试的重点是通过RFID系统、门禁系统和键盘、模仿员工或供应商、躲避运动和光线传感器来获取设备和硬件。
物理测试与社会工程结合使用,如操纵和欺骗设施员工,以获得系统访问。
6.计算机网络开发(CNE) &计算机网络攻击(CNAs)
在计算机网络开发(CNE)中,网络可以直接针对其他系统。例如,试图提取和获取敏感信息和数据,如机密情报或政府文件。这种类型的攻击通常在政府机构和军事组织中进行,被认为是监视、窃听,甚至是网络恐怖主义。
在计算机网络攻击(CNAs)中,目标是通过电子攻击(EA)破坏或破坏受害者网络上存在的信息,EA可以使用电磁脉冲(EMP)等技术使网络或系统失效。
CNAs的类型可以与社会工程重叠,包括数据修改和IP地址欺骗,基于密码的攻击,DDOS,中间的人攻击,或折衷密钥、嗅探器和应用层攻击。
7.云渗透测试
云服务对于团队协作、网络和存储非常重要。大量数据存储在云中,这意味着它是寻求利用这项技术的黑客的温床。
云部署相对简单,然而,云提供商通常对网络安全采取一种共享或放手不管的方式,而组织本身则负责漏洞测试或黑客防范。
典型的云渗透测试领域包括:
弱密码
网络防火墙
RDP和SSH远程管理
应用程序和加密
API、数据库和存储访问
虚拟机,以及未打补丁的操作系统
利用“白盒”测试方法,尽可能多地利用有关目标系统的信息。这包括它运行的软件,网络架构,源代码。