互联网服务商(ISP)的网络安全基本策略
吴灵熙
[摘要]
在互联网高速发展的今天,基于网络的应用日益增加,网络安全的威胁也日趋严重。互
联网服务商需要加强安全防范和实施有效的安全策略,才能在网络攻击中幸免于难,在严峻
的安全威胁环境下生存。
本文主要以某电信的宽带城域网和 IDC 为例,讲解 ISP 如何防范网络攻击和实施网络
安全策略。
[关键词]
网络攻击,安全原则,安全策略,攻击对策
DOS(denial-of-service 拒绝服务攻击),DDOS(distributed DOS 分布式拒绝服务攻
击),ACL(access control list 访问控制列表),FW(fire wall 防火墙),Netflow/Netstream(某
些路由器或交换机支持将输入的数据包进行分类,归属成数据流,并记录相关的信息),IDS
(Intrusion Detection System 入侵监测系统)SSH(Secure shell 一种远程管理加密协议)
[参考文献]
《ISP 安全要素 ISP Security Essentials — Best Practice Cisco IOS® and Other Techniques
to Help an ISP Survive in Today’s Internet Version 》—人民邮电出版社 2003 年;《计算机
网络大全》—电子工业出版社 1997 年;《计算机网络安全奥秘》—电子工业出版社 1999 年;
《Internet 网络安全专业参考手册》—机械工业出版社 1997 年;《TCP/IP 路由技术(第二
卷)》—人民邮电出版社 2002 年;《Internet/Intranet 网络安全结构设计》—清华大学出版社
2002 年。
一.前言
1. 互联网安全现状
互联网发展至今,已经达到一个相当的规模,网络安全的威胁也日益严重,电信公司作
为一个互联网服务提供商(ISP),也面临同样严峻的问题。
绝对安全的网络是不存在的。但是可以通过一系列的措施和步骤,长期连续的在循环实
施中不断加强,不断完善,达到一定的安全级别。只有这样才能在一定程度上防范日益增长
的网络安全威胁。
跟以前相比,网络安全的威胁,已经发生了变化:
1) 原先的只有专业黑客才会攻击,现在有很多可以自由下载的黑客软件,介面友好,
容易使用;
2) 电子商务的日益流行,吸引黑客为了金钱利益而采取一些行动,不再是原来的炫耀
个人技巧和表现自我意识;
3) 互联网的基础构架(服务商的网络核心)面临越来越多的攻击,使得整个互联网的
安全威胁越来越多;
4) 通常服务商还经常接到用户的申告,希望能够提供网络安全的防护。用户需要 ISP
提供安全防护和安全方面的顾问服务;
大部分电信的宽带城域网作为互联网的一部分,连接了以下几种用户:
1)小型企业的专线用户;
2)大型企业的专线用户;
3)普通用户;
4)专业用户;
根据 2001 年相关的统计资料表明,网络安全的攻击主要分为以下几种类型:
1)90%攻击用户电脑的系统/应用,包括病毒攻击,系统漏洞攻击和应用软件漏洞攻击,
这几乎是每个 ISP 的用户天天都会面临的问题,用户一般通过加强系统的安全防范和及时更
新病毒代码和软件补丁就可以消除了;
2)9%更加严重的 DOS 或 DDOS 攻击,这种攻击往往是需要 ISP 协助用户才能够解决
的,是互联网上的主要的威胁之一;
3)1%最为严重的攻击 ISP 网络的基础构架,对 ISP 来说,这才是真正可怕的攻击!目
前只有通过 ISP 的加强网络构架和安全防范才能够减小攻击引起的危害;
2. 网络安全防护的范围:
作为 ISP,需要在以下的范围实施保护:
1)保护 ISP 自己的网络;
2)保护自己的用户不受来自互联网的攻击;
3)防止自己的用户不对互联网发起攻击;
4)能够在任何时间内,防止相当数量的 DOS/DDOS 攻击;
3. ISP 的安全策略:
ISP 的网络安全是非常关键的,这个问题关系到 ISP 在互联网环境下的生存问题,不是
可有可无的。
安全策略应该包含以下几个方面,这 4 个方面共同组成了整个 ISP 网络安全策略:
1)安全防护措施,包括 ACL,防火墙,加密,用户身份鉴别等;
2)监控和反馈,包括入侵监测系统,各项状态监控等;
3)测试系统漏洞,包括弱点扫描,模拟攻击等;
4)网络构架增强和改进,包括网络结构调整和新安全策略制定
这 4 个方面相辅相成,互相关联,相互作用。ISP 的网络安全不是一成不变的,也不是
一日而就的,需要长期连续的在这 4 个方面循环实施中不断加强,不断完善。
4. ISP 实施安全的范围
ISP 的网络安全,需要在以下几个层次实施
1)ISP 网络的基础构架,包括互连中继,光缆,外线和物理设备
2)ISP 网络的安全,包括主干网络的拓扑结构,路由和带宽
3)ISP 网络的服务设备,包括接入服务设备,应用服务(DNS,MAIL,Portal,RADIUS
等)
5. ISP 网络安全防护的 6 个阶段
1)事先的准备
所有的 ISP 都需要对网络攻击做好准备,调整好网络,准备好各项工具,制定各项操作
规范和技术指导书,训练员工和贯彻实施各项安全策略,其中最重要的是制定计划,当发生
网络安全时间的时候,如何应变。
2) 发现攻击
如何发现自己或是用户正在遭受攻击;
3) 攻击分类
详细了解攻击的类型和会产生什么样的危害;
4) 反跟踪攻击源
研究攻击的发起源头;
5) 攻击的对策
实施策略和调整,减小攻击带来的后果(即使什么也做不了,也要收集攻击的数据)
6) 事后的分析和安全的加强
分析攻击究竟是怎么回事,采取一些措施和手段以防止下次发生类似的攻击。
本文就“ISP 网络安全的 6 个阶段”进行详细解释,并且以某电信的宽带城域网和 IDC 为例,
讲解 ISP 如何防范网络攻击和实施网络安全策略。
二.ISP 网络安全的 6 个阶段
1.为攻击事先做好准备
首先,需要对可能的攻击做好了解:
1)需要去了解用户什么时候可能会遭受攻击,为什么可能会遭受攻击;
2)需要去了解攻击的发生情况,以及引起的严重后果;
3)需要设想互联网处处都不安全,要考虑一切的可能因素;
4)要实现设想好对策和计划,以及发生攻击的应变措施;
一定要建立 ISP 的安全管理制度,而且要杜绝以下情况:
1)没有安全计划,没有在制度上规定安全方面的规范;
2)没有安全的应急措施,和应急预案
3)没有经常练习使用工具和演练应急步骤;
4)没有对员工进行专业和系统的培训,只是当安全事件发生后,维护人员才得到某些
的处理事件的实践经验;
对于负责网络维护的技术主管,一定需要准备很多具体内容:
1)训练一个团队来应付网络安全攻击;
2)与所有相连的 ISP 保持联系
3)与主要的网络安全厂商保持联系
4)把安全策略归档,包括需要提供安全防护的用户资料,对攻击进行分类的标准,反
跟踪攻击的方法,摆脱网络构架攻击的方法
为了便于技术准确的判断攻击和解决攻击,还需要随时准备好各项工具和方法,包括:
1)经常在各种环境下测试各种类型的 ACL,随时准备好适当的 ACL 以备应用
2)经常测试 Scripts 脚本程序,保证都能用,随时准备好
3)准备好测试的工具,包括模拟攻击和漏洞扫描的工具,
4)经常进行假象攻击的讨论,必要时需要在测试环境下模拟各种类型的攻击,以检验
各项工具和防御手段的可用。
5)经常考虑采用网络结构和系统调整的方式提高网络的安全性;
6)要经常给用户和维护人员培训,加强他们对 TCP/IP,操作系统原理,应用软件架构
和安全。
作为系统管理员,需要审计网络设备的配置:
1)保证路由器和交换机的安全
2)保证路由协议的安全
3)保证整个网络的安全
作为设备维护人员,需要详细了解整个网络的所有设备和基础构架:
1)需要细致了解所有设备(包括路由器、交换机、工作站等等)需要了解这些设备究
竟能够具有什么功能;
2)需要细致了解能够具有什么性能和容量,必要的时候应该搭个模拟环境来测试,在
安全事件发生时才发现设备性能和容量不够,是非常可怕的事情;
用以下的图例来总结 ISP 在应付网络安全攻击的实施步骤。
1)首先 ISP 需要根据上面提到的准备内容,制定安全策略 ISP’s Security Policy;
2)采用防火墙,加密,鉴别/审计等步骤和手段来落实安全策略,实现防护。Secure
3)通过入侵监测系统和其他告警机制来检视网络的安全 Monitor and Respond
4)采用漏洞扫描和模拟攻击等手段来测试网络的安全防护坚固程度 Test
5)处理安全问题和改进安全策略,具体分析安全事件的内容,修改安全计划和应急步
骤,形成新的安全策略,Manage and Improve
以下从技术角度详细解释 ISP 在应付网络安全攻击的准备工作,需要按步骤检查和实
施的具体内容:
1)组建和预备好应急相应的团队;
任何一个 ISP 都需要有网管中心,网管中心内部应该加强沟通,还需要和客户,其他 ISP
沟通。还要设立应急响应小组和发生安全攻击的第一时间响应人员。应急响应人员只是提出
建议,提供帮助,技术支持,和提供应急预案,不建议从事普通的维护工作;应急响应小组
一般来说隶属于网管中心。
2)保障路由器和其他网路设备的自身安全
新购的网络设备没有安全方面的设置,一旦这些设备连接上网络,就有可能受到入侵和
破坏,需要作相应的安全设置,包括关闭一些全局的系统服务,接口上的局部服务,配置登
录验证授权和管理员验证,可能的话,远程管理采用加密或隧道的方式实现。建议对新设备
加电之后所作的安全设置编写一个规范的配置步骤和标准;
3)保障路由协议的安全
动态路由协议也是容易受到攻击的。建议配置验证路由协议的交换(包括常见的
OSPF, IS-IS,BGP 等),设置丢弃一些影响路由交换的不正常数据包(采用 SPD 等功能),
优化路由的快速收敛,要使得路由收敛符合整个网络的情况,避免出现路由收敛不一致导致
的路由紊乱的问题。
4)加强网络的稳定和安全
采用路由过滤,包过滤,速率限制等手段来实现。
路由过滤应该限制入方向的路由宣告和出方向的路由宣告,过滤不必要的路由,包括:
(1)RFC1918, 等属于私有网段的路由;
(2)不宣告不属于自己 IP 范围的路由,不接收属于自己 IP 范围的路由。
(3)建议不接收掩码长于 24 位的路由(特殊情况除外);
(4)与其他 ISP 互连的时候,建议不接收默认路由(特殊情况除外);
(5)监视相互宣告的路由,作相关的设置防止垃圾路由的泛滥;
5)设置的路由黑洞过滤,防止路由循环
ISP 在 BGP 里设置本 ISP 的路由黑洞,可以加快 IBGP 的收敛和路由的稳定,有利于发
生 DOS/DDOS 攻击的时候反跟踪攻击源,还可以防止类似“红色代码”的网络攻击
6)预备旁路过滤设备
在网络中设置功能强大的安全过滤设备,把受到安全攻击的主机或网络的流量通过旁路
过滤设备进行过滤,这种设置有利于网络攻击的分析和反跟踪,还可以实现利用有限的资源,
动态的保护正在受攻击的主机和网络。
7)设置必要的包过滤
限制 ISP 的用户只能发送合法源地址的 IP 包,限制其他 ISP 不能发送不合法源地址的
IP 包,限制 ISP 发往用户的 IP 包只包括需要的应用端口。
一般采用反向路由检测,边缘路由入口访问控制,和动态访问控制等方法实现。
8)在网络的入口重设置 IP 的优先级
为不同的网络应用数据包区分不同优先级,设置访问控制列表观察不同优先级 IP 包的
情况。
9)检查采用默认路由的隐患
在 BGP 全连接的网络环境中应该尽量采用默认路由,特殊情况需要实施,也需要非常
认真考虑,默认路由配置不当很容易导致路由循环和 DOS/DOS。对于其他 ISP 连接的时候
尤其注意。
10)管理上的安全机制
为设备配置适当的 loopback 地址,设置网络设备通过 TFTP 将配置备份到服务器上,并
且通过 TFTP 下载配置(有利于紧急情况下远程的配置变更),配置网络设备通过 ftp 将 core
dump 备份到服务器上,配置 syslog 和 snmp 对设备进行监控,配置网络时间协议同步整个
网络设备的时钟和系统日志。
配置 Netflow,Netstream 等,便于网络攻击的反跟踪和网络流量的详细分析。建议将流
量详细的分析数据导出到服务器。
对远程带外管理的用户进行集中认证和授权,并且自动记录操作内容和系统状态变化。
限制远程带外管理的用户范围。
2.发现攻击
1)一般来说受到扫描是被攻击的前兆。要注意什么时候本 ISP 或用户被扫描,最好能
够通过 IDS 或其他机制来监测可能有敌意的扫描行为;
2)对于判断用户受攻击的情况,一般来说有以下的办法:
(1)对 ISP 保护的用户主机应用系统进行监控,根据监控的情况判断用户是否受到攻
击;
(2)安排 7x24 小时的热线支持电话,以用户申告热线电话为准,判断用户受到攻击;
(3)在网络中配置 IDS 系统,根据 IDS 检测的情况判断用户受到攻击;
3)判断 ISP 自己受到攻击,一般来说,要根据网管中心的各种告警信息,包括突发的
网络流量,部分网络的连通阻断等
(1)采用 SNMP 收集设备的 CPU 情况,当发现 CPU Load 不正常,可以判断为受到攻
击,其中 CPU load 包括传送数据和系统进程两个部分。如果传送数据的 CPU load 很高,一
般来说是受到突发网络流量的攻击;如果系统进程的 CPU load 很高,一般来说是受到伪装
源地址,伪造应用类型的 DOS 攻击,或是系统的某些进程有问题
(2)利用 Netflow 提供的信息发现攻击,首先,需要在网络设备上启动 Netflow,然后
需要统计正常情况下的到达某个 ISP 主机的数据流情况,当通过 Netflow 监测到当前数据流
大大超过正常情况下的流量情况,一般来说可以判断为受到攻击
(3)应用 DANTE(基于主机的监控软件)判断攻击,主机接收到的错包比例超过
2%,主机收到的大量的包只有源 IP 地址不同,主机建立的大量 TCP 半连接都超时,主机
收到大量长度很小的包等,都可以作为主机受到攻击的依据。
(4)根据 IDS 的监控判断攻击,要经常更新 IDS 入侵检测的特征列表。最好在旁路过
滤的节点上部署 IDS,要经常用模拟攻击的攻击测试 IDS 的可用性。要过滤 IDS 的告警信
息,不要让严重的告警淹没在普通信息当中。
3.攻击分类
发生攻击后,需要知道我们收到的攻击的具体类型,可以通过客户申告并且提供受攻击
的信息来判断,也可以通过 ISP 内部的工具和一些操作手册来判断。对于攻击的分类,最重
要的是要查清楚攻击的源地址和协议类型!
可以配置带 permit 的 ACL,应用在可能的端口上,检查 ACL 的 match 信息来显示不同
分类的协议包信息。
准备好旁路过滤设备,一旦发生攻击,ISP 的旁路节点就宣告一个受攻击 IP 的最长路
由,就把攻击的流量旁路到该设备进行分析和过滤。通过 syslog 和 snmp 以及将攻击日志导
出,通过 Netflow 和 sniffer 等工具将具体的攻击行为详细记录下来。
4.反跟踪攻击源
对于合法 IP 源地址的攻击是很容易的事情,一般来说 DOS/DDOS 攻击都会采用一些私
有网段的 IP 地址作为源地址,伪造源地址的攻击也会伪造很多源地址,追踪攻击源是很困
难的事情,尤其是不同 ISP 互联的时候,更为困难。
如果攻击的源地址是真实的,反跟踪就容易得多。可以通过路由表,Internet Routing
Registry (IRR,互联网路由注册)和 InterNIC 直接找到对方的详细信息。
如果源地址是伪装的,需要反跟踪该攻击数据流在本 ISP 网络中的流向,才能反跟踪到
攻击的源头,如果反跟踪到上一级的 ISP,这需要上一级 ISP 继续反跟踪下去。直到找到该
伪造源地址攻击源。
判断攻击的源头,首先需要搞清楚攻击是来自 ISP 网络内部还是外部。一旦搞清楚攻击
的基本类型(IP 源地址和协议类型),需要一步一步反跟踪到攻击的入口。
一般来说,有 3 种办法能够确定攻击的入口:
1)配置临时 ACL,并且配置 log 参数,将 ACL 应用到可能的入口上,观察是否就是攻
击的入口。
2)查询 Netflow 的流状态表,可以看到攻击数据流来自那个接口
3)反向散射技术。把攻击流导向到路由旁路节点,采用路由旁路节点的监测工具实现
反向跟踪。
5.攻击的对策
采取一些措施减缓攻击的危害,最好是能够直接终止攻击!实施这些措施之前要仔细考
虑,不要因为采用相应攻击的措施而带来其他的问题。实在不行也可以什么都不做,只是记
录攻击的数据包或中断受攻击节点网络连接。
大多数的 ISP 一般是采用以下的措施来帮助他们的用户:
1)对攻击的数据流进行数率限制
2)封闭/丢弃基于某些源地址和协议类型的数据包
反应必须是快速,果断,稳妥的。并且具有多个实施预案备案。
一般来说,有 3 种技术用来实现包丢弃和速率限制
1)ACLs—手工加载
ACL 是一种传统的终止攻击的手段,但是具有扩展性问题。在很多很多的路由器上配
置 ACL 是一种很痛苦的事情。如果发生不止一个攻击,针对不止一个用户,用 ACL 来终止
攻击简直是非常可怕的事情。而且很容易因为手工输入的错误引起其他的问题。
2)uRPF 可以通过 BGP 远程触发
uRPF 的主要实现步骤:
(1)uRPF 不需要在所有边界路由器上进行检测和配置;
(2)事先在边界路由器上配置测试网段(例如:)的IP路由添加静态路由指
向到null0,uRPF
(3)用BGP的公共属性在网络中插入一个BGP的宣告路由,就可以触发丢弃指定特征
的攻击包。
uRPF 的相对于 ACL 的好处在于:不需要手工添加 ACL;不需要改变路由器的配置;
在攻击包转发路径上就可以实现丢弃;尤其是在同时发生多起攻击和多个攻击源的时候,很
容易动态配置。
3)CAR 的手工加载或通过 BGP 远程触发
CAR 和其他的速率限制功能,是对应攻击的常用的有效反应。对攻击的数据流进行速
率限制可以监控的监控攻击的情况。速率限制的同时,还可以收集数据,用于事后采用法律
手段解决问题提供证物。
QOS group support (QPPB)功能可以实现远程触发 CAR,而不用登录到路由器。配置 3
层的输入和输出的速率限制,尤其是输入的速率限制是很重要的。
采用输入输率限制来实现安全过滤,在那些造成危害的攻击包被转发穿透过整个网络之
前,就被丢弃
可以采用汇聚和细颗粒度的分类限制,包括应用端口,MAC 地址,IP 地址,应用类型,
优先级和 QOS 的 ID;
CAR 可以实现对突发的 “网络浪涌”进行限制!
CAR 的输率限制已经是被证明对付 DOS/DDOS 攻击的有效措施,但是问题在于如何快
速的变更配置当很多网络入口的路由器,尤其是攻击复杂多样,从多个方向同时进行的时候。
这种情况下,最好的办法是 CAR,CAR 是一种基于 FIB 机制的控制功能,由 CEF 实现的,
可以采用网络协议触发而不用手工配置。可以实现给予特定源地址和目的地址的速率限制。
通过 BGP 的公共属性标志,针对特定的目的地址前缀,传递 IP 优先级,实现速率限制。
允许网络入口的路由器对输入的流量区分优先级。并且允许 IP 优先级基于 ACL 和 AS-path
等属性设置。还可以在 ISP 之间实现服务水平承诺(SLA)
6.事后的分析和安全的加强
从错误中得到学习是防范攻击的关键
•千万不能等下次故障发生的时候才实施防范策略
1)在发生安全事件之后,一定要花时间去研究是不是过程,步骤,工具,技巧和配置
可以改进的地方。
2)这是种很好的学习机会,只有在对错误地总结中学习才能很快的提高
三.以某电信宽带城域网和 IDC 的两次攻击为例说明
1.某电信宽带城域网的 Bras 故障
1)电信宽带城域网的宽带接入部分网络结构:
某电信城域宽带网采用 Cisco 7206 VXR 作为 PPPOE 服务器,以 Cisco Catalyst 6509 为
汇聚层设备。用户只要采用 ADSL 方式接入,以 PPPOE 方式接入网络。该 7206 以两条 FE
链路捆绑成 FEC 实现上行链路的负载分担和带宽增倍。
2)网络安全攻击的现象说明:
某日,该电信网管中心接到用户申告:已经建立 PPPOE 连接的上网速度很慢;建立
PPPOE 网络连接后容易断线,PPPOE 认证过程中,提示用户名和密码错误。
从网管监控看到,该 PPPOE 服务器 7206 的上联链路(FEC)输入方向流量很大(达
到 80M 上行/140M 下行),而且该链路的丢包情况很严重,达到 2%.
该 7206 已经不能远程登录管理了,设备维护人员通过 console 端口连接 7206,发现 CPU
Load 很高(达到 5 Sec 95%/80%)
3)网络攻击的分析,反跟踪和对策
依据上述的判断攻击的步骤,根据 CPU Load 的情况,初步判断,发生了网络浪涌攻击。
(1)为了不被告进信息打断,能够正常输入配置命令,首先消除 6509 在 console 输出
系统信息:jt6509(config)# no logging console
(2)然后在上联的 6509 上定义 ACL,并且在与 7206 的接口上应用该 ACL:
access-list 169 permit icmp any any echo
access-list 169 permit icmp any any echo-reply
access-list 169 permit udp any any eq echo
access-list 169 permit udp any eq echo any
access-list 169 permit tcp any any established
access-list 169 permit tcp any any range 0 65535
access-list 169 permit ip any any
interface port-channel 1
ip access-group 169 out
(3)执行 shou ip access-list 169 察看 6509 发送往 7206 的数据包
jt6509(config)#show ip access-list 169
Extended IP access list 169
permit icmp any any echo (2 matches)
permit icmp any any echo-reply (21374 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (150 matches)
permit tcp any any (15 matches)
permit ip any any (45 matches)
发现是 ICMP 的 flood 攻击,但是需要进一步研究究竟是从哪里来的攻击?
(4)加大 6509 的 loging buffer:jt6509(config)# logging buffered 8192000
然后在上联的 6509 上定义新的 ACL,并且在与 7206 的接口上应用该 ACL:
access-list 170 permit icmp any any echo
access-list 170 permit icmp any any echo-reply log-input
access-list 170 permit udp any any eq echo
access-list 170 permit udp any eq echo any
access-list 170 permit tcp any any established
access-list 170 permit tcp any any
access-list 170 permit ip any any
interface port-channel 1
ip access-group 170 out
等很短的一段时间(比如 5 秒)
no ip access-group 170 out
(5)然后执行 shou ip access-list 170 确认 6509 发送往 7206 还有攻击的行为
jt6509(6509)#show ip access-list 170
Extended IP access list 170
permit icmp any any echo (2 matches)
permit icmp any any echo-reply (31374 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (120 matches)
permit tcp any any (25 matches)
permit ip any any (670 matches)
(6)检查 logging 信息,看能不能发现攻击的源头
%SEC-6-IPACCESSLOGDP: list 170 permit icmp
(Port-channel 1 * Ethernet II) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit icmp
(Port-channel 1 * Ethernet II) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit icmp
(Port-channel 1 * Ethernet II) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit icmp
(Port-channel 1 * Ethernet II) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit icmp
(Port-channel 1 * Ethernet II) -> (0/0), 1 packet
发现攻击的源地址是杂乱的,攻击目的地址都是 7206 的上联端口
(7)采用 Netflow 逐段的检查攻击的源头
jt6509#sh ip cache verbose flow
IP packet size distribution (17093 total packets):
1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
.000 .735 .088 .054 .000 .000 .008 .046 .054 .000 .009 .000 .000 .000 .000
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
IP Flow Switching Cache, 1257536 bytes
3 active, 15549 inactive, 12992 added
210043 ager polls, 0 flow alloc failures
last clearing of statistics never
Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)
-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow
TCP-Telnet 35 80 41
UDP-DNS 20 1 67
UDP-NTP 1223 1 76
UDP-other 11709 1 87
ICMP 2 1 56
Total: 12989 1 78
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcPDstP Pkts
Ge3/1 Port-channel1 11 008A 008A 1
Ga3/1 Port-channel1 11 0208 0208 1
Ga3/1 Port-channel1 06 701D 0017 63
发现攻击源都是来自 6509 的 Ge3/1,查询设备资料,得知 Ge3/1 连接一个商业大楼专线
用户。
(8)该 Ge3/1 端口连接到该商业大楼的一级交换机 Catalyst 2924M
察看每个下联端口的流量,发现有个 Fa0/22 端口的 input 流量很大(达到 60M BPS),查
询该端口的用户资料,发现为某 LAN 接入专线用户,该专线的接入速率为 100M 共享。
(7)对该 Ge3/1 端口进行速率限制
由于 6509 设备实现机制的局限,只能配置输入方向的输率限制。然后配置 PFC2 的 QOS
(此处配置请参照 PFC2 的 QOS 配置文档)。减少攻击的影响,配置 SPAN,,用 sniffer 捕捉
一些攻击包,确认攻击源的 MAC 地址,然后再登录到该一级交换机,查询该 MAC 地址源
头,确认是从那个流量异常的 Fa0/22 端口进入网络的。确认攻击源后,封闭该端口(设置
该端口为 shutdown 状态)。
(8)攻击消失,该 7206 恢复正常。
用户申告的症状消失,7206 的 CPU load 也恢复正常
4)事后的分析和安全的加强
研究捕捉到的攻击包,发现此次是一种典型的 ICMP unreachable 的 flood 攻击,源地址
是伪造的!
这次安全事件说明,需要对 7206 上联端口作相应的配置:
interface port-channel 1
no ip unreachables
在 6509 上针对 ICMP 的数据包,把输入速率限制到 2M(此处配置请参照 PFC2 的
QOS 配置文档)。
2.某电信 IDC 的网络攻击问题
1)电信 IDC 的网络结构:
某电信 IDC 采用 Cisco Cata;yst6509 作为核心交换机,catalyst3548 接入交换机。6509 通
过两条 GE 链路上连到互联网的核心路由器,实现上行链路的负载分担。
2)网络安全攻击的现象说明:
某日,该电信 IDC 监控中心接到用户申告:托管在 IDC 的某台服务器建立 HTTP 的连
接的速度很慢;远程用户打开网页总是显示错误,打开二级网页非常慢,从服务器下载文件
容易断线。
从网管监控看到,该服务器 7206 的上联链路的输出方向流量很大(达到 20M 输入/80M
输出),而且该链路的丢包情况很严重,达到 5%.
该用户服务器还能够相应 ICMP 的请求了,从 IDC 内部测试该服务器的 HTTP 响应已
经没有应答了。
3)网络攻击的分析,反跟踪和对策
依据上述的判断攻击的步骤,初步判断,发生了用户服务器受到 HTTP 的 SYN Flood
攻击。
(1)为了不被告进信息打断,能够正常输入配置命令,首先消除 6509 在 console 输出
系统信息:AS01(config)# no logging console
(2)然后在 IDC 的 6509 上定义 ACL,并且在与用户相连的 VLAN 接口上应用该
ACL:
access-list 169 permit icmp any echo
access-list 169 permit icmp any echo-reply
access-list 169 permit udp any eq echo
access-list 169 permit udp any echo any
access-list 169 permit tcp any established
access-list 169 permit tcp any range 0 65535
access-list 169 permit ip any
interface vlan 300
ip access-group 169 out
(3)执行 shou ip access-list 169 察看 6509 发送往该用户服务器的数据包
jt6509(6509)#show ip access-list 169
Extended IP access list 169
permit icmp any any echo (2 matches)
permit icmp any any echo-reply (22 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (150 matches)
permit tcp any any (21374 matches)
permit ip any any (45 matches)
发现是 TCP 的 flood 攻击,但是需要进一步研究究竟是从哪里来的攻击?
(4)加大 6509 的 loging buffer:AS01(config)# logging buffered 8192000
然后在上联的 6509 上定义新的 ACL,并且在与用户的接口上应用该 ACL:
access-list 170 permit icmp any any echo
access-list 170 permit icmp any any echo-reply log-input
access-list 170 permit udp any any eq echo
access-list 170 permit udp any eq echo any
access-list 170 permit tcp any any established
access-list 170 permit tcp any any
access-list 170 permit ip any any
interface vlan 300
ip access-group 170 out
等很短的一段时间(比如 5 秒)
no ip access-group 170 out
(5)然后执行 shou ip access-list 170 确认 6509 发送往该用户服务器还有攻击的行为
AS01(config)#show ip access-list 170
Extended IP access list 170
permit icmp any any echo (2 matches)
permit icmp any any echo-reply (54 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (120 matches)
permit tcp any any (31374 matches)
permit ip any any (670 matches)
(6)检查 logging 信息,看能不能发现攻击的源头
%SEC-6-IPACCESSLOGDP: list 170 permit TCP
(Vlan 300 * Dot1q) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit TCP
(Vlan 300 * Dot1q) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit TCP
(Vlan 300 * Dot1q) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit TCP
(Vlan 300 * Dot1q) -> (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 170 permit TCP
(Vlan 300 * Dot1q) -> (0/0), 1 packet
发现攻击的源地址是杂乱的,攻击目的地址都是 7206 的上联端口
(7)采用 Netflow 逐段的检查攻击的源头
AS01#sh ip cache verbose flow
IP packet size distribution (17093 total packets):
1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
.000 .735 .088 .054 .000 .000 .008 .046 .054 .000 .009 .000 .000 .000 .000
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
IP Flow Switching Cache, 1257536 bytes
3 active, 15549 inactive, 12992 added
210043 ager polls, 0 flow alloc failures
last clearing of statistics never
Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)
-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow
TCP-Telnet 35 80 41
UDP-DNS 20 1 67
UDP-NTP 1223 1 76
UDP-other 11709 1 87
ICMP 2 1 56
Total: 12989 1 78
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcPDstP Pkts
Ge3/1 vlan300 11 008A 008A 1
Ga3/1 vlan300 11 0208 0208 1
Ga3/1 vlan300 06 701D 0017 63
发现攻击源都是来自 AS01 的 Ge3/1,查询设备资料,得知 Ge3/1 上联互联网的一个核
心节点。
(6)对该 Ge3/1 端口进行速率限制
由于 6509 设备实现机制的局限,只能配置输入方向的输率限制。然后配置 PFC2 的 QOS
(此处配置请参照 PFC2 的 QOS 配置文档)。限制输入方向 TCP 连接的速率,减少攻击的
影响,配置 SPAN,用 sniffer 捕捉一些攻击包。观察 QOS 的速率限制状态,发现该攻击的
强度很高,每秒 37000 个攻击包。观察 snffer 捕捉的包,发现每个攻击包只有 40-60byte。
(7)将用户服务器放入防火墙之后。启用 TCP 截取功能,拦截 HTTP 的 flood 攻击包。
攻击减弱消失,该用户逐渐恢复正常。
防火墙设置 TCP 截取和 TCP 连接超时(此处配置请参照防火墙的配置文档)。限制输入
方向 TCP 连接的速率,限制 TCP 半连接的超时时间,减少攻击的影响。
4)事后的分析和安全的加强
研究捕捉到的攻击包,发现此次是一种典型的 HTTP 的 TCP flood 攻击,源地址是伪造
的!
目前先采用 6509 的 PFC2 进行输入速率限制后,再启用防火墙进行防御,但是也难免
妨碍部分正常的应用访问。
这次安全事件说明,现在互联网上的 HTTP 的 TCP Flood 的攻击强度很大,普通的防火
墙性能不够抵挡很大强度的攻击。特别是在防范攻击包长度在 40-60byte 的情况,只需要
10M 的带宽,就得防御很巨大数量的攻击!
四.总结
以上内容只是本人作为一个互联网的维护人员,在长期从事互联网维护工作中总结和整
理的经验。不足之处,希望得到专家和同行的指正。
上述内容涉及到一些工具和命令,不能保证绝对能够有效,请在与设备产品的技术支持
确认后使用。其中部分范例以Cisco公司的产品为主,其他设备厂家的具体内容和方式,请
查询相关设备产家的技术文档。
希望上面的内容对从事同样工作的维护人员提供一点帮助。谢谢!
吴灵熙