攻击者恶意地利用蠕虫和拒绝服务攻击耗用主机和网络资源。有时,错误配置的主机和服务器也会发送能够占用网络资源的数据通信。对网络管理员和专业安全人员来说,拥有一些必要的工具和机制来确认和分类网络安全威胁是至关重要的。
许多人将安全威胁分类为两种:一是逻辑攻击,二是资源攻击。逻辑攻击利用现有软件中的缺陷和漏洞,导致系统崩溃,或严重降低其性能,或使得攻击者获取对一个系统的访问权。这种攻击的一个实例就是,攻击者利用了Windows PnP服务中的堆栈溢出。另外一个例子是著名的ping of death(死亡之ping)攻击,在这种攻击中,攻击者会向用户的系统或服务器发送ICMP数据包,这些数据包会超过最大的逻辑长度。为防止这种攻击,用户可以升级有漏洞的软件,或者过滤特定的数据包序列,从而防止大多数攻击。
第二种攻击为资源攻击。这些类型攻击的主要目的是是搞垮系统或网络资源,如服务器CPU和内存等。在多数情况下,这是通过发送大量的IP数据包或伪造请求实现的。攻击者借助于更加复杂有效方法,损害多个主机,并安装小型的攻击程序,可以构造更为强有力的攻击。这就是许多人所称的僵尸或僵尸网络攻击。由此造成的恶果是,攻击者可以从成千上万的计算机发动针对受害人的协同攻击。这种攻击程序典型情况下包含着可以利用多种攻击的代码,还有一些基本的通信结构,这些都准许远程控制。僵尸攻击如下图1表示:
图1 |
在上图中,攻击者控制着两个公司的计算机,攻击远在另外一处的Web服务器。
管理人员可以使用不同的机制和方法成功地确认这些威胁,并进行分类。换句话说,用户可以使用特定的技术来确认并对威胁进行分类。下面是一些最常见的方法:
异常检测工具的使用;
使用基于流量的分析,进行网络探测;
使用入侵检测和入侵防御系统;
分析网络组件的日志(即不同网络设备的系统日志、应用程序日志、简单网络管理协议(SNMP)等等)
完整的可见性是确认和分类安全威胁的关键要求。下面笔者将阐释如何实现完整的网络可见性,并讨论实现这种可见性的技巧。
网络可见性
在筹划网络和人员的过程中,为便于成功地确认安全威胁,首要的一步是获取完整的网络可见性。用户不能保护无法查看或检测的组件。用户可以通过网络设备上的现有特性获取这种水平的网络可见性。此外,用户还应当创建策略性网络图表,用以清楚地列示数据的流量,并使安全机制可以确认、分类、减轻威胁。网络安全威胁是一场持续的战争。在防御敌人时,用户必须知道自己的地域,才能实施防御机制。下图2形象地展示了某大型公司的机构设置:
图2 |
在上图中,标识了以下的一些部分:
1、互联网边缘:企业的总公司通过冗余链接连接到了互联网。在此配置了两台思科适应性安全产品(ASA),其目的是为了保护整个架构。
2、站到站的VPN:总公司通过IPsec站到站的VPN通道连接到两个子公司。
3、终端用户:总公司在不同的四层楼上有其销售、财务、工程、市场部门。
4、呼叫中心:5层楼上有一个拥有100多个代理的呼叫中心
5、数据中心:数据中心包括电子商务、电子邮件、数据库和其它的应用程序服务器
用户可以创建这种类型的图表,这不仅有助于理解组织的体系结构,而且还可以从策略上确认在架构内的什么地方可以实施探测系统(如NetFlow等),并可以确认瓶颈的位置。注意,在这里,访问层、分发层和核心层都被清楚地定义了。
不妨注意下图3中所示的例子。呼叫中心中的一台工作站通常情况下,通过80号端口通信,到达数据中心中的一台服务器。这种通信在访问控制列表的范围内是准许的,因为这是到达服务器的合法通信。但是,从这个特殊工作站发出的合法通信超出了正常情况的400%。如此一来,服务器上的性能就会被降低,而网络内会充满大量不必要的数据包。
图3 |
在这种情况下,NetFlow是在分发层交换机上配置,而且管理员能够检测到不正常的情况。然后,管理员会配置一台主机的特定ACL,用以拒绝来自呼叫中心工作站的数据通信,如下图4所示。在更加复杂的环境中,用户甚至可以实施可远程激发的“黑洞”,并转发之,以减少这种事件。
图4 |
上图展示的是呼叫中心工作站应用程序中的一个缺陷。管理员能够执行详细的分析,并为机器打补丁,同时又可以防止服务的中断。
小技巧一则
要检测不正常的及恶意的网络活动,用户首先必须建立一个正常网络活动、数据通信模式及其它因素的概要视图。NetFlow以及其它的一些机制可以在单位的架构内部成功地确认和分类威胁,还有其它的一些不正常活动。在实施一个异常检测系统之前,用户必须执行通信分析,其目的是为了了解大体的通信速率和模式。在异常检测系统中,学习过程一般是通过有效时间实施的,这包括网络活动的峰值和谷底。本文将在后面的内容中详细讨论异常的检测问题。
用户还可以制定一种不同的图表来形象化地展示单位内部的经营风险。这些图表以设备角色为基础。如果用户想保护哪些关键系统,就可为其制定这种图表。例如,确认单位内部的一个关键系统,然后为其创建一个类似于下图5的分层图表。在下图5中的例子中,一个称为mydata的数据库是本公司的至关重要的应用程序或数据库资源。这个图表在中心位置展示了mydata数据库服务器:
图5 |
用户可以用这种图来审计设备角色和应当运行的服务类型。例如,用户可以决定在什么设备中运行Cisco NetFlow之类的服务,或者在何处强化安全策略。此外,用户还可以根据源和目标,看出架构内一个数据包的生命周期。下面展示一个例子:
图6 |
上图显示出,在销售部门的某用户访问互联网的站点时的数据包流动。用户根据结构图可以明确地知道,数据包要去的地方、安全、转发策略等。这只是一个简单的例子,不过,用户可以用这种概念来形象化地显示风险,并准备自己的隔离策略。
形象化地显示组织的结构和网络通信的情况有助于我们全面地分析网络安全风险,制定出有效的防御策略和相应的防范风险的措施。在发生问题时,也才能顺藤摸瓜,找到根源。