多语言展示
当前在线:764今日阅读:11今日分享:15

一种对防火墙进行渗透测试的系统性方法

防火墙测试是评估防火墙安全有效性的最有用的可用组合中的一个,防火墙测试的最大优势在于它能够凭经验确定防火墙在应对疑似网络入侵者发起的网络攻击时其 是否安全。本文提出了一个超前的观点,就是防火墙测试不仅应该检测其抵御外部源攻击的能力,更应该保护其网络边界不受外部攻击的渗透。因此,测试应该遵循 一个系统的方法来保证它的完整性和适当性,并且减少损害或破坏内部网络和主机的风险。SRI的防火墙测试程序包括渗透测试(包括四个的防火墙和互联网主机 的攻击级别,由信息探测开始,到最终来自网络内部和外部的一系列攻击结束),设计审查,和政策评估。设计审查和政策评估在逻辑上也与渗透测试有联系,因为 他可能导致发现渗透测试中没有发现的安全漏洞。这些行为都能够提供关键的上下文,用于解释渗透测试的结果。总的来说,这些过程将作为一个系统的方法论,充 当声音软件工程实践的实例,这个实例的测试过程的每一步都被仔细地记录下来。当被定期执行时,防火墙测试是最有用的。然而,测试程度是否彻底,取决于客户 组织的要求以及是否变更控制程序。
工具/原料
1

防火墙

2

主机

3

渗透工具

第一步骤:渗透测试
1

主要信息的收集  在网络层检测数据库的入口,使用Telnet命令去连接域名,然后执行whois。这些将提供地址和物理位置的信息(如区 域代码)用于接触。他也会显示目标网络组织是否复杂。如果管理员联系方式和区域、技术管理员的联系方式一样,就说明这个网络组织也许很小或者想对接触互联 网的时间较短。如果这个目标组织没有运行在自己的域名解析服务器上,说明这个组织非常的小,并且接触互联网的时间较短。大多数大型的组织都有自己的域名解 析服务器。如果技术和区域管理员的联系方式和管理员联系方式的区域代码不一样,或者三个地址都不一样,说明系统的统管者和负责管理的具体人在交流沟通中会 有时间的延迟;也许一个攻击者可以在他们之间的联络渠道中制造假象。 whois命令能通过域名列举一个组织主要域名解析服务器和次要域名解析服务器。

3

利用搜索引擎搜索机器名,用户名,地址和员工爱好,用于社会工程学。

第二步骤:大致信息收集
1

防火墙可能会禁止icmp包(ping)的,但一般不会禁止TCP包。 这第一步就是通过NIC查看数据库条目。首先使用telnet命令连接 rs.internic.net然后对目标执行whois命令。然后会显示一些用于通信的地址和位置信息(如区域代码)。它也反映出了目标网络组织的复 杂性。如果管理联系人同时也是区域和技术联系人,那么这个网络组织或许比较小,可能刚刚接入互联网。而如果目标没有运行在他们自己的域名解析服务器上,它 很可能是一个规模小或刚入网的组织。因为很多大规模的机构都有自己的域名服务器。内的技术或区域联系人和管理联系人的区域代码不同,或者三 个都不同,它们之间的通信就会有廷迟,利用这个缺口,攻击者可能会扰乱目标机构内部的通信渠道和权限链。 Whois命令会列出机构的一二级域名和相应的域名解析服务器。这结果会用在第三步(攻击和渗透)中,测试团队会绕过防火墙从而获取目标网络的远程服务。

2

接下来是使用nslookup命令去了解目标机构的更多信息。要连上二级域名服务器,并尝试对目标组织进行区域转移。如果这能够实现,攻击者会获 取大量关于内部网络拓扑分析的信息。测试者会有一张搜索到的网络列表,并且能知道子网中所拥有的机器数。然而,我们发现区域转移通常是禁止的。

3

最后就是寻找公开可用的客户端信息。我们可以从年度报告和贸易出版物获取大量的重要信息,间的联盟关系(有利于找到一些潜在的攻击渠道) 或重要的产品领域。搜索新闻组的贴子也可能获取很多有用的信息,像机器名,用户名,地址和关注点。例如我们曾经以nntp-posting-host为新 闻组贴子标题关键词发的完整组织。结果,这个发现使我们找到了一个不安全的ftp服务器,为以后的测试提供了一个完美的网络据点。在这次 的行动中,我们获取的信息或许有一部分并没有直观的作用,但是它或许可以用在社会工程学的攻击当中(从机构中获取攻击的权限);

第三步骤:直观信息获取

这第二步的中心点就是从目标网络本身的内部去获取直观信息。这次的探测可以而且应该被目标机构捕获。在这一步中,目标机构应当能观测到渗透团队的 活动。尽管,我们进行防火墙测试的大多数机构都是禁止区域转移的但是,首先我们也要尝试对目标的一级域名服务器进行一次DNS区域转移。另一方面,可以 从目标网络的DNS获取可用信息,如防火墙系统,可能是内部邮件主机,用于隔离区访问外网的系统,也有可能是几个路由。 测试团队在使用nslookup命令获取信息后,开始浏览主机的网络结构。目标网络的大小决定了这次任务所消耗的时间,当客户要求在很短的时间内 完成测试时,我们会跳过这一项工作。时间最少时,就是网络可以到达隔离区和网关系统的区域。如果防火墙允许浏览内部网络,测试团队会获取有利于稍后攻击的 信息,但是这次的扫描需要很多时间。 扫描主机可用的网络地址空间有两个方法。两个都是尽可能的连接地址空间内的所有IP地址。第一个方法是使用ping命令。第二个方法,就是要求测 试方尝试连接到TCP端口号25。路由会发送一个ICMP回送(ping)数据包,这样会对每一个可用的地址发送至少三个数据包(一般是5个)。 这个TCP连接的方法是非常慢的,因为这个连接在等到超时后才会认为主机不可达。然而一些防火墙会阻塞请求报文( ICMP echo requests),除了通向内部主机的TCP连接。每一个响应的主机都是一个进入内部网络的潜在端口。 一旦他们列出一张潜在的主机列表后,他们就会扫描出运行在每一个主机上所特有的服务。这消耗的时间是取决于对每一个目标机器的TCP端口号的连接。测试团队会使用主机上正在运行服务的端口号。

第四步骤:攻击和渗透

我们的方法表明,一旦测试方有了一张主机和服务的列表后,他们就会对目标防火墙和它所保户的网络发动攻击。因此,行动阶段包含了两种 不同的攻击类型。网络攻击者通常会通过增加shell权限的方式(甚至是root权限)来绕过防火墙。或者穿过防火墙使用远程服务来改变关键的配置文件, 或者破坏正在运行的防火墙服务。这第一组攻击就是针对防火墙本身。第二组攻击是在防火墙和其他一些可能存在的组件保护下的主机。目的就是看看防火墙对这些 攻击捕获的怎么样。       出于道德方面的原因,我们不会描术在 3)和  4)中用到的攻击方法。而我只想说,有防火墙的主机通常运行着一些并不是很安全的服务(例如,邮件程序)。这些服务通常是我们攻击的首选目标。 比如,我们发现,运行着SUN LPD程序的防火墙,是一个易攻击的目标。许多的防火墙在守护进程中都有一个可以被利用的漏洞。其它一些服务也是有弱点的。而一些 防火墙,允许外部的ip通过telnet连接网络,使得大量应该被禁止的账号一直处于活跃状态。       即使,防火墙会抵抗来自外部的攻击,内部的主机,甚至是隔离区的主机,都是可以被外部网络所访问的。防火墙的构成原理表明在隔离区内 的任何一个主机,像ftp和万维网服务,是一个可扩展的系统(意思就是,违反他们的安全机制并不会使网络变得更不安全)。经验表明,在某些情况下,这些可 扩展的主机经常被防火墙信任。此外,我们还发现,防火墙对于隔离区内的主机来说是可登录的文件系统,或者对于局域网内的主机是一些易受攻击的规矩。每一个 防火墙内的主机,对于直接访问防火墙而不是主机来说是一个很好的潜在轮子。      对防火墙的攻击应该是非常谨慎的。修改或使防火墙瘫痪的攻击能够扰乱整个网络,几小时甚至几天。在我们开始测试后,如果发现一个安全问题,在它没有被解决 之前,我们不会将其公开到网络上的。因此,如果简单的攻击了防火墙后,我们可以更改配置文件或者二进制文件,我们就会停止测试这部分,并向客户解释我们所 发现的问题以及为什么不继续测试下去。      一旦对防火墙攻击完毕后,下一步我们就会将注意力转向客户网络内部的主机。首先,我们尝试使用telnet命令,然后使用login命令,去获得这些主机 的一个shell权限。在不同域的ip地址上进行这些攻击对捕获ip地址规则的健壮性是一个很好的测试。我们也会对已信任的主机访问进行测试。然而,使用 telnet/rlogin和rlogin命令成功的可能性很小。下一步,我们决定使用可用的服务去获得这些系统的访问权。对攻击最有用的一些服务是网络 文件系统(NFS),网络信息服务(NIS)和邮箱程序(发送邮件)。就此而言,有经验的入侵组织共享给我们的工具是非常有用的。另外,许多攻击者的工具 都能够对网络上的FTP站点起作用。这些工具往往附带着源代码,以便于我们在进行防火墙测试之前判断出它是否带有像木马一样的恶意程序。因此,在某些方 面,这些hacker工具比那些不会显示异常,也没有附带源代码的商业工具更加有用。      然而,并不是所有的类型攻击,都适用于3)和后面的4),因为它们可能会导致损坏,IP地址欺骗和会话劫持攻击就提供了两个很好的例子.IP地址欺骗需要 一个合法的的客户端口去契入.而会话劫持致使连接目的主机的用户被迫下线.因此,我们建议,不要运行这种类型的攻击,测试组应该通过后面的操作,比如检查 路由表以确保收到的来自于同一个网络的数据包没有被接收,从而判断出这些攻击是有成功的。    去访问一个典型的内部主机加速过程的渗透客户网络,内部机器通常会相信其它内部有联系的机器.默认账户通常不是禁用的,许多用户选择容易猜测到的密码,更糟糕的是,少数的网络有软件安装监控,再一次,我们使用操作应十分小心,避免修改和破坏主机。     攻击中的动作会触发防火墙和内网目标主机之间的警报。在它开始后,网络管理员会注意到测试防火墙的行为。实事上,无论测试行为是不是被检测出,最重要的结果还是最后的问题报告文档。当我们的攻击没有被发现的时侯,我们会鼓励客户去找到生成警报的方法。

第五步骤:内部来源的妥协

最后一步是从客户端网络中的一个内部主机上穿透防火墙。这部分的测试模拟的情况下,外部攻击者利用泄漏在网络的安全边界,以获得一个或多 个内部主机,然后攻击防火墙从一个或多个这些主机修改防火墙,允许自由和容易的外部访问网络。我们再次强调,渗透测试活动不应该导致对客户的防火墙的任何 更改,因为变化很可能是破坏性的。测试团队应该只需注意如何(如果在所有的)防火墙可以被攻破。请注意,如果3层的活动是不成功的,客户端组织必须给予渗 透测试团队访问一个或多个内部主机,如果4层活动是继续进行。经验告诉我们,如果防火墙不在第一位跑一些曝光拉登软件,保证获得根访问一个或多个主机的内 部网络内安装一个网络嗅探程序[因为这种攻击方法是侵入性的,但是,我们强烈建议在写作从客户组织的管理在安装任何嗅探程序获得批准,作为我们的实践。一 个使用嗅探器的最大风险(其中客户端应该引以为戒)是获取有价值的数据穿越网络的可能性。嗅探器应该立即尽快捕获密码到防火墙的root帐户删除。在防火 墙所在的网络段中,等待管理员连接。我们可以以这种方式通常会嗅一个管理员的登录/密码组合;以这种方式获取此信息,使获取根访问防火墙容易。在内部网络 中的一台机器的受信任的主机访问,也往往是一种有效的攻击方法,在4层。远程服务提供的防火墙提供其他有希望的攻击途径。

整体回顾

因为这种攻击方法是侵入性的,但是,我们强烈建议在写作从客户组织的管理在安装任何嗅探程序获得批准,作为我们的实践。一个使用嗅探器的 最大风险(其中客户端应该引以为戒)是获取有价值的数据穿越网络的可能性。嗅探器应该立即尽快捕获密码到防火墙的root帐户删除。我们的方法的下一部分 是回顾防火墙设计文件。我们关注的基本问题是,防火墙是否确实如它设计的那样。检查网络架构图确保防火墙,其他网络组件,如认证服务器和一次性的主机正确 放置在网络是一个系统设计评审的一个特别重要的部分。如果我们的工作范围与客户端许可证,我们甚至可以构建路由器配置表的基础上观察到的筛选行为,以确定 是否该防火墙的行为匹配的实际配置。检查可用的文档,如设计文档,可以使测试团队在活动的前一阶段没有发现安全风险。不幸的是,我们有太多的不足或完全缺 少设计文档和政策。负责设计防火墙的系统人员通常可用于面试。在这些访谈中,防火墙的设计意图和防火墙的实际行为之间的主要区别是什么。与设计师讨论的过 程中,在防火墙系统中已实现的变化,也可以是一个启发性的运动。部门的重组可能导致负责防火墙不同的人在不同的时间。在不充分的同行评审的过程中,可以减 少防火墙提供的安全级别的更改。     在防火墙设计评审过程中应检查的几个附加项目。首先,防火墙的基本操作系统安全吗?所有的应用程序都安装了吗?正在服务的构成重大安全风 险关闭?系统日志的级别是否合适?接下来,我们建议检查防火墙安全软件,以确定它是否最新发布,以及是否适用于任何修补程序。这个软件是在一个干净的系统 上编译的吗?配置管理是如何管理的?客户端是否在防火墙上安装和使用文件完整性软件?谁看日志?多久一次?这些都是在设计评审过程中需要回答的问题。最 后,渗透团队需要一个清晰的认识的经营环境。是防火墙远程管理通过telnet、rlogin?什么样的加密或其他链接安全用于这些连接?记住,专门的攻 击者可能实寻求就业机会,以了解更多关于企业网络及其资源,并有可能从内部渗透系统。我们强烈的员工,如以上所怀疑的安 全问题时,作为关键的防火墙的完整性。

注意事项

本文原创自Wind Punish安全团队翻译部

推荐信息