渗透测试方法
总的说来,渗透测试方法的采用,主要取决于组织对于目标系统的安全检测程度与水平。而安全专家或第三方网络安全公司,应当协助本组织从实际需求出发,根据已掌握的信息类型,选择并确定相匹配的测试方法。文章源自玩技e族-https://www.playezu.com/193518.html
黑盒文章源自玩技e族-https://www.playezu.com/193518.html
黑盒评估是在向渗透测试员提供较少信息的情况下开展的。也就是说,无论是安全顾问、还是测试人员,由于他们对安全受控系统、或基础设施知之甚少,因此需要采用侦察的方法,来获取目标的详细信息。文章源自玩技e族-https://www.playezu.com/193518.html
白盒文章源自玩技e族-https://www.playezu.com/193518.html
在白盒评估中,测试人员或安全顾问已经获得了有关基础设施、应用程序、设备、以及安全受控系统的相关信息和详细文档(例如:系统架构文档、源代码等)。因此,白盒测试是一种识别和检测内、外部漏洞的综合评估方法。文章源自玩技e族-https://www.playezu.com/193518.html
灰盒文章源自玩技e族-https://www.playezu.com/193518.html
在此类评估方法中,测试人员仅获得了评估安全受控系统所需的用户级知识和信息。同时,测试人员还应当被授予对于Web应用程序、以及内部网络基础设施的部分背景知识和有限访问权限。文章源自玩技e族-https://www.playezu.com/193518.html
物理渗透测试文章源自玩技e族-https://www.playezu.com/193518.html
我们也应当警惕黑客采用物理手段,作为独立攻击、或针对现有技术的补充性攻击方式,来获得物理设施的访问权限。以下是物理渗透测试的两种常见方式:文章源自玩技e族-https://www.playezu.com/193518.html
定位薄弱的安全区域范围:在这种方法中,黑客会确定或搜索易受攻击、且易遭破坏的区域或系统。通常,多数数据中心或楼宇都会包含有吸烟区、维修设备的摆放区、以及某些无人看守的绿色快捷通道。这些设施范围可能本身就未被安全加固,亦或处于能见度较低、过于隐蔽的区域。文章源自玩技e族-https://www.playezu.com/193518.html
捎带(Piggybacking):捎带、尾随(tailgating)或窃听(eavesdropping),都是黑客通过密切跟踪有权限出入设施区域的员工、或维护工人的一些惯用方法。
社会工程学测试
此类测试通过搭建和检验组织内部的人际网络(Human Network),有助于识别针对组织内部人员,及其信任凭据、或访问特权的攻击。常用的攻击类型有:
网络钓鱼:一种欺骗性方法,它通过邮件或消息发送恶意或受感染代码,来获取个人敏感信息。
伪装(Pretexting):伪装是身份盗窃的一种形式,黑客会将自己伪装成目标组织中的内部人员,以获得对安全基础设施、或敏感数据的访问权限。
不同类型的渗透测试
网络渗透测试
作为最常见、也是最热门的渗透测试方法,网络渗透测试能够协助安全测试人员检测和发掘网络系统、以及各种基础设施中的潜在漏洞。网络渗透测试通常被分为外部、内部和无线三种类型。其中:
外部网络渗透测试:外部网络渗透测试可以帮助我们探索网络系统对于外部威胁的响应能力。此类测试的常见手段是,通过基于互联网的渗透测试,以识别出那些暴露在外部网络中,却属于系统内部的漏洞和弱点。
此类测试通常会针对防火墙的配置、防火墙的绕过、IPS的欺骗、以及DNS级别的毒化攻击等网络攻击。而为了实现自动化漏洞扫描的测试过程,安全人员往往会使用市面上常见的知名工具(下文将提到),去扫描和检测目标系统中的已知漏洞。当然,他们也会将手动利用技术与自动化工具相结合,针对检测到的漏洞弱点,发起模拟攻击,并旨在完全接管那些面向互联网的系统。
内部网络渗透测试:此类测试旨在通过漏洞扫描,检测并识别内部系统,发现基础设施中的网络安全弱点,进而采用各种利用技术,来查看内部系统的响应行为。内部网络渗透测试会从根本上去评估内部系统、以及组织员工遭受未授权、或恶意攻击的可能性。其中包括:潜在的未经授权的访问,个人信息与信任凭据的泄漏等方面。
无线渗透测试:黑客或攻击者通过无线的方式,渗透进目标系统,在威胁内网安全的同时,利用获取到的特权,去访问各类敏感信息,进而对系统的正常运行造成不利的影响。
Web应用渗透测试
作为组织的一个重要组成部分与功能,Web应用程序一旦受到攻击就可能导致用户数据、以及商业敏感信息的泄露。因此,针对Web应用程序的渗透测试,会去检查现有网络中的应用程序,是否存在着由错误或不安全的开发、薄弱的设计、以及不当的编程,所引起的任何漏洞或安全隐患。
移动应用渗透测试
移动应用程序的渗透测试主要是通过模拟黑客尝试着采用提权等行为,针对那些在Android、Windows、以及iOS等设备上运行的原生移动应用、或是由组织自行开发的应用程序开展测试。除了发现和利用移动应用中的漏洞,此类测试也会关注移动应用与后端系统在通信和传输数据时的安全态势。
渗透测试工具
目前,市面上有着全栈式的自动化工具,它们能够让您高效地开展各种渗透测试。下面,让我们来讨论一些被各个组织经常用到的知名工具:
KaliLinux
显然,Kali Linux是基于Linux操作系统、且包含了大量工具。它可以被用于从信息收集到产生报告的,整个端到端的渗透测试过程。作为一种被广泛使用的渗透测试平台,Kali Linux主要关注的是优化进攻,而非防守。它不但是一个开源的项目,而且提供了各种工具列表、版本破解器、以及数据元包(meta-packages)。
目前,Kali拥有600多种道德黑客工具,并包含了用于暴力破解密码的特殊工具。其工具中还包括了:漏洞分析、Web应用程序、信息收集、无线攻击、逆向工程、密码破解、欺骗、嗅探和其他高级可利用工具。
Metasploit
作为最常用的自动化开发框架,Metasploit有助于锁定系统,检测漏洞,进而利用漏洞。由于Metasploit属于开源软件,因此其GUI不但易用,而且能够方便测试者管理安全评估,检测威胁与缺陷,以便构建出强大的安全受控系统。
此外,Metasploit专业版的元模块(Metamodule)部分还可以被用于测试网络分段,进而让测试者知晓哪些网络分段位置可达,哪些不可达。
Wireshark
作为一种网络分析器工具,Wireshark通过提供离线分析和网络实时捕获选项,来抓取并解析目标网络的流量。在被用于了解数据包流和TCP/IP问题时,它提供了实时的数据包和网络活动的详细信息。
ZED Attack Proxy
该工具能够在功能上与最流行的代理与扫描工具BURP套件想媲美,而且它是完全免费的。ZAP通过将自己放置于用户浏览器与被测试的网站之间,以创建代理的方式,方便测试人员拦截、修改、甚至替换流量。因此,它非常适合于那些刚开始接触渗透测试的开发人员和测试人员。
Aircrack
作为一款开源的软件,Aircrack主要被用于检查Wi-Fi的连接场景。而Aircrack NG则是一组工具和软件套件,可以帮助测试者去“攻击”或防御无线网络。其工具包通常包括:检测器、数据包嗅探器、WEP/WPA破解器等组件。Aircrack主要通过拦截、捕获、以及读取数据包的模式,来破解无线系统。
John the Ripper(简称JTR)
众所周知,密码是信息系统中最脆弱的、也是最容易受到攻击的部分。JTR便是一种可被用于破解密码的工具。它包括了一个可定制的破解程序,可识别不同的密码哈希值。同时,它可以利用强大的硬件,通过高效的运行方式,来提高密码破解的效率。
渗透测试的成本和预算
通常,渗透测试的成本和预算会受到如下五方面因素的影响,而并非恒定不变的:
目标:大家都知道,我们用于测试小型组织的物理安防,与检查公用输电站的安全态势的费用,肯定是不一样的。我们的目标规模直接决定了在渗透测试方面的投入。例如,当我们从需要测试单个应用程序,升级为测试包括了内、外部网络的整体系统时,随着目标数量的增多和复杂化,我们的测试成本,包括测试人员的成本,以及需要提供和收集的信息,也会不断攀升。
范围:范围的圈定,有助于组织在确定目标的基础上,让测试人员或顾问对完成项目所需的时间,进行更加合理的预估。毕竟测试的持续时间和成本是成正比的。例如,面对大型门户和Web应用时,我们将会比测试简单用户网站所花费的时间会更多,所涉及到的复杂度与范围,也会导致预算费用的上扬。
方法论:组织所采用的测试方法也会对费用产生影响。一些组织可能会使用自动化的漏洞扫描方式,去开展基本性的测试,并解决基本性的安全问题。而另一些公司则可能会选择全栈式的渗透测试方案,以全面检测威胁、漏洞、及其被利用后所造成的影响。这样的综合方法,在成本方面是可想而知的。
技能:与其他行业类似,强大的技术储备往往能够在各种网络安全事件的预防与处置中,发挥着至关重要的作用。显然,与那些基本知识或可用资源有限的测试团队相比,打造一支具有雄厚知识背景、以及熟练实战经验的顾问与专家队伍,虽然更有利于开展和完成全面的渗透测试,并能够保持系统的安全态势,但是团队的运营费用也是不菲的。
小结
在当前的跨区域性协作式全球经济环境中,我们几乎每天都能够看到网络攻击事件登上新闻头条,许多组织往往在事后才后悔自己未能及时、全面地进行渗透测试。因此,面对不断变化的网络环境,以及层出不穷的漏洞与缺陷,组织应当将渗透测试常态化。毕竟,攻击者在盯上某个系统时,是不会公开告知其攻击意图的。
我们常说渗透测试并非“一锤子买卖”。在完成了一轮测试之后,组织需要根据测试所产生的报告,按需进行整改,并在完成之后,重新发起新的一轮测试,以保持目标系统与服务的安全态势,从而给利益相关者提供在健康运营上的信心。
评论