网络处理器(Network Processor)建置新一代网络安全应用
发布时间:2006-10-14 3:55:37   收集提供:gaoqian


  高斐政 凌华科技通讯暨计算机产品事业部

  网络安全的需求

  据统计,2000年企业及政府部门遭受骇客(Hacker)攻击的概率高达85%,而网络安全的漏洞不是防堵骇客入侵就解决了,其它像遭窥探者窃取机密性数据,或是心怀不满的员工蓄意破坏系统内重要档案,警觉性不足的员工外泄重要密码、不小心由Email引入计算机病毒等,都是威胁网络安全的几个危险因子。

  为了让区域内网络维持安全运作,建立一套安全防护网才是根本解决之道,较完整的防卫机制大概分为三大类:

  (一)Network Security (网络安全)

  (Firewalls, Intrusion detection system, Intrusion prevention System, Wireless security, Mail security, E-commerce security, Load balancer /High Availability)

  (二)Content Filtering (内容过滤)

  (Antivirus, Internet /Web / URL filters, Spam filtering, Content security)

  (三)Encryption (加密)

  (Virtual Private Network, Public Key Infrastructure Certification Architecture)

  三种市场应用各有不同的系统规格需求,VPN 的系统需将讯息全数打乱再丢到网络上,透过加密机制在公开的网络里建立起加密通道(Encrypted Tunnel),接收端再解密取得真实讯息,在浩瀚的因特网内建立起安全私密的虚拟局域网络;Firewall则像大楼管理员,检查来访封包的通行许可证,包含检查封包的来源、目的地、连接埠等字段,但是防火墙并没有办法挡掉所有的入侵者,此时就须要另一道防线IDS;IDS 就像网络上的监控摄影机,可以分析流经的封包数据,侦测未经授权的行为,IDS大致区分为「网络系统」跟「主机系统」两类。基本上IDS需求的系统处理能力可以涵盖VPN及Firewall的需求.

  入侵侦测系统的应用

  防火墙与IDP的差异在于, 防火墙仅能就网络封包做到2到4层的检测,就来源地址/端口号以及目的地址/服务进行控管;而IDP可以做到4到7层(也就是应用层)的检测,因此IDP可以发觉包藏在应用层里的恶意攻击码(譬如蠕虫攻击、缓冲溢位攻击便藏匿于此),并予以狙击。IDP内建庞大的攻击特征数据库,可以有效阻绝已知的攻击;IDP也透过「异常协议侦测」的方式,实时检查并将不符合RFC规范的网络封包丢弃。所以在「攻击防御」方面,IDP远胜于防火墙之上。

  由于IDP一般仅能就IP以及IP群组决定封包放行权限,所以在「资源存取权限管理」方面,防火墙较优于IDP。然而,防火墙并无法有效管控企业内部使用者使用P2P、实时通讯(Instant Messenger、Yahoo Messenger)等软件、也无法杜绝利用Web-Mail或者Web-Post等方式将机密外泄,这些问题需要能监控4到7层的IDP设备才能控管。目前已经有少部分的IDP产品采用IXP2xxx芯片利用其「深层检测」的优势,有效地解决上述问题。

  IDP可以防止蠕虫由外入侵至企业网络内部,而如果防火墙要防止蠕虫攻击,仅能消极地关闭某些Port。但一般的档案型病毒,则不在IDP及防火墙的防护范围内。因此资安的最后一层防护网便是在使用者端安装防毒软件。

  各项资安产品皆有其擅长与不足之处,因此建议企业资安负责人员深入了解以及比较这些资安产品的差异,并依据企业的实际需要充分搭配使用,加强资安防护网的纵深,以确保企业的网络安全。 后面我们就以较复杂的IDS为例做IXP-2400的应用说明。

  网络处理器的时代已经来临,它可有效解决网络交通拥塞的问题,也可处理复杂的封包运算。不论如何,Inetel IXA架构已经正确的跨出第一步,接下来就须要更多的平台设计者投入开发工作,以及更多的应用开发者投入资源,发展软件程序,逐步建立完整的可携式Microblocks。网络兴起、频宽加速拓展,使整个网络通讯的市场板块不断的在调整、挪动,凌华科技与Intel合作,共同推广IXP-2XXX网络处理器的应用,针对网络安全其中封包处理过程以下进一步来讨论。

  何谓封包与功能:

  在网络安全论述中,所有传输动作是经由封包完成的, 封包就很像我们在邮寄信件的时候那个邮件的模样了!信纸内容总是得放入信封吧?而信封上面会写上发信人住址,收信人住址与姓名. 所以,一封邮件主要会有两个部分,分别是:『信封表面的信息部分、与信封内部的信件内容!』。同样的,网络的信息封包主要也是分为两个部分,一个是表头 ( Header ) 的部分,另一个则是内容 ( messages ) 的部分!而一个封包要传送到哪里去,都是通过 Header 的讯息部分进行分析而传送的!那么 Header 有哪些重要的信息呢?主要就如同上面提到的,至少会有来源与目标 IP 、来源与目标 Port等等!封包是怎么在两部主机之间进行传送的呢?事实上,封包的传送是相当复杂的,而且封包的状态不同 (TCP/UDP) 也会有不一样的传送机制。这里举一个『相对比较可靠的封包传送方式』来介绍。如下图所示:




  当发送封包者发送出一个封包给接受者后,接受者在『正确的接到』这个封包之后,会回复一个响应封包 ( Acknowledgment ) 给发送者,告诉他接受者已经收到了!当发送端收到这个响应封包后,才会继续发送下一个封包出去,否则就会将刚刚的封包重新发送一次!这种封包的传递方式因为考虑到对方接到的封包的状态,所以算是比较可靠的一种方式。目前因特网上面常见的封包是 TCP 与 UDP ,其中 TCP 的联机方式中,会考虑到较多的参数,他是一种联机模式(Connection Oriented)的可靠传输,至于 UDP 则省略了响应封包的步骤,所以是一种非联机导向的非可靠传输。在一个 TCP 封包的传送过程中,因为至少需要传送与响应等封包来确定传送出去的数据没有问题,所以他是相当可靠的一种传输方式,不过就是传输与响应之间的时间可能会拖比较久一点。至于 UDP 封包就因为少了那个确认的动作,所以虽然他是较不可靠一点,但是速度上就比 TCP 封包要来的快!底下我们将继续介绍 TCP, UDP 以及 ICMP 等封包信息的内容. TCP 与 UDP 封包的建立是有差异存在的!针对TCP封包Header的内容作个简单的介绍! TCP 封包的 Header 内容主要如下:




  Source Port & Destination Port ( 来源端口口 & 目标端口口 ):来源与目标的端口,这个容易了解吧!上面刚刚提过那个埠口的观念。再次的强调一下,小于 1024 以下的 Port 只有 root 身份才能启用,至于一般 Client 发起的联机,通常是使用大于 1024 以上的埠口!

  Sequence Number ( 封包序号 ):在OSI 七层协定里面提到过,由于种种的限制,所以一次传送的封包大小大约仅有数千 bytes ,但是我们的资料可能大于这个封包所允许的最大容量,所以就得将我们的数据拆成数个封包来进行传送到目的地主机的动作。那么对方主机怎么知道这些封包是有关连性的呢?就得通过这个 Sequence Number 来辅助了。当发送端要发送封包时,会为这个封包设定一个序号,然后再依据要传送的数据长度,依序的增加序号。也就是说,我们可以使用递增的值来替下一个封包作为它序号的设定!

  Acknowledgment Number ( 回应序号 ) :封包传输过程中,我们知道在接受端接收了封包之后,会响应发送端一个响应封包,那个响应的信息就是在这里。当接收端收到 TCP 封包并且通过检验确认接收该封包后,就会依照原 TCP 封包的发送序号再加上数据长度以产生一个响应的序号,而附在回应给发送端的响应封包上面,这样发送端就可以知道接收端已经正确的接收成功该 TCP 封包了!所以说, Sequence 与 Acknowledgment number 是 TCP 封包之所以可靠的保证!因为他可以用来检测封包是否正确的被接受者所接收!

  Data Offset (资料补偿):这是用来记录表头长度用的一个字段。

  Reserved (保留):未使用的保留字段。

  Control Flag (控制标志码):控制标志码在 TCP 封包的联机过程当中,是相当重要的一个标志,先来说一说这六个句柄,然后再来讨论吧:

  - Urgent data :如果 URG 为 1 时,表示这是一个紧急的封包数据,接收端应该优先处理;

  - Acknowledge field significant :当 ACK 这个 Flag 为 1 时,表示这个封包的 Acknowledge Number 是有效的,也就是我们上面提到的那个回应封包。

  - Push function :如果 PSH 为 1 的时候,该封包连同传送缓冲区的其它封包应立即进行传送,而无需等待缓冲区满了才送。接收端必须尽快将此数据交给程序处理。

  - Reset :如果 RST 为 1 的时候,表示联机会被马上结束,而无需等待终止确认手续。

  - Synchronize sequence number :这就是 SYN 标志啦!当 SYN 为 1 时,那就表示发送端要求双方进行同步处理,也就是要求建立联机的意思,这个 SYN 是相当重要的一个 Flag 喔!

  - No more data fro sender (Finish) :如果封包的 FIN 为 1 的时候,就表示传送结束,然后双方发出结束响应,进而正式进入 TCP 传送的终止流程。

  Window (滑动窗口):与接收者的缓冲区大小有关的一个参数。

  Checksum(确认):当数据要由发送端送出前,会进行一个检验的动作,并将该动作的检验值标注在这个字段上;而接收者收到这个封包之后,会再次的对封包进行验证,并且比对原发送的 Checksum 值是否相符,如果相符就接受,若不符就会假设该封包已经损毁,进而要求对方重新发送此封包!

  Urgent Pointer:指示紧急数据所在位置的字段。

  Option:当需要 client 与 Server 同步动作的程序,例如 Telnet ,那么要处理好两端的交互模式,就会用到这个字段来指定数据封包的大小,不过,这个字段还是比较少用的!

  为什么需要用到 Intel IXP-2XXX 网络处理器

  因特网、企业网络等网络应用的频宽需求急剧上升,传输、检查、拆解、组合、搜寻、内容比对、转递等IP封包运算处理动作,以往可以靠软件程序在一般X86微处理器上运行,搭配以网络卡做封包出入口。但是近年来这些封包的运算处理越来越复杂,将数据输入处理单元,完后再将结果送往输出单元,慢速处理造成的时间延迟会严重影响到数据吞吐量,无法满足Line Rate Operation的需求。Intel 公司提供的网络处理器系列产品专门用来解决这样的问题,IXP-4XX属于较低阶的系列,IXP-2XXX系列高阶网络处理器,文中将以IXP-2400处理器在凌华科技cPCI-6240系列产品的设计为例做说明。

  以下将先介绍IXP-2XXX处理器的功能特性,再探讨处理器的平台设计、应用开发,最后探讨它在网络安全领域的应用,以入侵侦测系统为实例做说明。

  Intel XP-2XXX系列网络处理器大致包含:IXP-2400、Westport, IXP-2800及IXP-2850,请参考表一的性能差异。除此之外,Intel并考虑比照IXP-42X系列做法,高度整合MACs等功能区块进来,建造优异的性价比产品,使这一系列处理器的应用更普及化。




  全系列IXP-2XXX网络处理器都可拆解为『控制管道』(Control Plane)及『数据管道』(Data Plane)两大部分。参考图一 IXP-2400网络处理器,它内建一个600MHz 32-bit XScale来负责Control Plane的处理工作,XScale执行相当底层的控制工作,包括信息传送,还有跟系统内其它处理器的沟通。Data Plane则由内建的八个微处理引擎(Micro-Engine Version 2, MEv2)来做平行处理,MEv2是XScale精简下来的 (Reduced) 可程序处理器,使用者可用Micro-Code汇编语言或是高阶Micro-C语言撰写应用程序,透过指令告诉这八个MEv2怎样去处理封包运算,达到应用目的。




  图一是IXP-2400示意图外观,它有两个信道的QDR SRAM接口,存放重要的数据结构,比如:Route Tables, Free Buffer Pools,Flow State Tables,Queue Descriptors等等重要的讯息,其中一个信道还可以接一个协处理器,做TCP/IP封包比对时的内存搜寻引擎,加速决定封包的协议属性跟流向(Flow)。DDR DRAM则用来储存封包以及大量的State tables,另外C-bus接口可以连接第二个处理器,这是采用一进一出架构的双处理器设计时用的。

  另两个重要接口,一个是64-bit/66MHz PCI 2.2接口,作为Control Plane连通的Bus,可以透过此接口外挂控制处理器,像是PrPMC控制卡;另一个是Flash界面,是存取RedBoot韧体的通道,Redboot相当于X86系统的BIOS;媒体及切换接口(Media and Switch Fabric Interface, MSF)是网络封包进出处理器的主要途径,视应用可以规划为SPI-3、CSIX或是UTOPIA Level2接口。

  图二是IXP-2400内部示意图,内部的SHaC 是一个多功能控制单元,内含Hash单元,可以建立48-,64-或是128-bit宽的 Hash indices,XScale与MEv2可存取Hash来帮助Table的搜寻,特别是要搜寻的Keys很大时;第二个单元是16KB的Scratch Pad memory,这是处理器内第三个内存资源,XScale与MEv2可共同存取,三种内存资源可以让海量存储器存取同时间平行发生;第三个单元是Control and Status Register (CSR),提供9个处理器(1 * XScale + 8* MEv2)互相之间沟通用途。

  除此之外,还有 XScale 外围,包含中断控制器、Timers, UART、GPIO等单元。在处理器内部,XScale、MEv2、DRAM Controller、SRAM Controller、T/R-Buffer之间透过 Chassis Bus,将 Data Plane 的路径在处理器内部连通起来,这些控制单元可以共享 SRAM、DRAM 等内存资源做数据交换。




  网络处理器的『平台设计』、『应用开发』

  (一) 平台规划、开发

  平台规划 设计IXP-2XXX平台首先要先为产品做准确的定位,定义平台最终应用、频宽需求、封包处理效能等级。若是想一半接到ATM网络,则MSF接口有一半要规划成Utopia Level 2接口,连接的ASIC像是Intel IXF-6012/6048 Cell/Packet Framer;若是要直接连IP网络,则MSF接口规划成SPI-3或是CSIX,连接像Intel IXF-1104 (Quad Giga-E MACs的ASIC);或是接FIC(Fabric Interface Controller) 的ASIC。另外规划时要全面考虑:Control Plane的处理效能、是否外挂辅助处理器、开机影像文件下载速度;Data Plane则须考虑SRAM大小、DRAM资源使用、是否须加密功能 (IXP-2850有)、是否外挂网络搜寻加速器、是否外挂内容检查加速器等、要多少个网络接口。这些硬件规格要根据功能应用,做整体效能评估才行,在开案初期要审慎评估。

  平台开发 包括硬件、韧体(Redboot)、系统支持套件(Board Supporting Package, BSP),BSP内含组件驱动程序。其中硬件设计跟一般X86运算平台没什么两样,记得要预留软件除错端口,就像X86-CPU的 ITP Port一样;Redboot韧体则相当于X86 BIOS,系统初始化、自我测试、Boot Loader都包在Redboot内;Redboot及BSP可以通过Intel IXA SDK得到帮忙,建立以XScale为处理核心的操作系统平台,最后这三大要素即可建立一个完整的网络处理器平台。

  (二) 应用程序开发

  Intel 建立了IXA 软件可携式架构,让今天花力气辛辛苦苦在IXP-2400建立起来的软件,明天在下一代IXP-2XXX仍然适用,而这个软件架构可以简单用图三表示。

  应用程序的开发也可以通过Intel IXA SDK得到帮忙,考虑到投资杠杆效应,Intel IXA软件程序架构采模块化,SDK提供一些基本的microblocks,开发者再开发自有的microblocks,将这些microblocks视为基础组件(Building Blocks),去组合实现实际的功能应用,让开发者的工作简单化,也缩短TTM时间。




  图四是采用IXP-2400为核心建立的IDS系统结构图,凌华采用IXP-2400内建的XScale去控制管理Control Plane的组件,内建的八个MicroEngine去收送处理封包的分类及内容比对,处理Data Plane的运算。IXP-2400的QDR SRAM通道0也叫做LA-1(Look Aside Interface)接口,可以选择接市面上现有的TCAM(Ternary Content Addressable Memory) 辅助处理器,帮忙做第三层以下封包数据搜寻比对的工作,帮IXP-2400处理器卸载(offload)一些运算负担。







  网络安全系统内最关键性的功能可以说是封包表头辨识(Classification)及内容检查(Content Inspection),表头辨识系针对其流向、连结、输入端口及目的地址等做比对;内容检查则有复杂的算法,处理频宽及内存容量需求极高,很显然内容检查即将是此系统非常严重的交通瓶颈所在,这个运算将耗用大量IXP-2400网络处理器的运算资源。因此必须采用另一个处理器卸载此运算,有两种方法可行,其一是如图四:加入一个可程序内容检查引擎(Programmable CIE, Content Inspection Engine),比如IDT PAX.port 2500 CIE;或是在封包经网络处理器集结成较大封包后,进入一张专属内容检查的高速运算服务器,比如ADLINK cPCI-6860 Dual-Xeon Server Blade。加CIE的做法可以卸载95% 的MicroEngine资源使用量,删除掉85%的MicroCode,同时削减75%内存频宽使用量,成本可大大节省,TTM(Time to Market)时间可以显著缩减。加一张专属服务器则维持旧有软件延续使用,节省软件开发的时间及人力成本,两者各有优点,但是CIE是纯硬件运算所以效率较好,长期来看应会成为较受欢迎的选择。

  批注

  TCP/IP 与 OSI 比较和说明

  在网络世界中计算机与计算机之间是透过特种协议来传输和沟通, 当今此协议是以TCP/IP (Transmission Control Protocol / Internet Protocol) 是由IETF (Internet Society's Internet Engineering Task Force) 根据 DoD (Department Of Defense) 模型所制定的标准和 OSI (Open System Interconnection ) 是由ISO (International Standard Organization)所制定的标准, 下面三层偏硬件,上面三层偏软件,中间一层偏软件硬件间的沟通。两种标准协议图(一)和图(二)来作简单说明.

  TCP/IP各层的功能如下:

  网络存取层 (Network Access Layer) 网络存取层相当于 OSI 的实体层及数据链结层,主要负责网络实体连接的部份。事实上,TCP/IP 并未定义这一层的协议,换言之,它可以架构在多种网络存取接口上,如 Ethernet、Token-Rign、FDDI、…等,TCP/IP 只须提供这些接口的驱动程序即可。TCP/IP的网络存取层涵盖 OSI 的数据链结层 (Data Link Layer) 及实体层 (Physical Layer)。在这一层传送的数据称为数据框 (Frame)。

  网际层 (Internet Layer) 网际层的主要任务是连接发送端到接收端之间的中继节点,提供讯息送达的服务,如:辨识地址、数据传送路径选择、…等。网际层主要协议为 IP (Internet Protocol),及 ARP (Address Resolution Protocol)、RARP (Reverse Address Resolution Protocol)、ICMP (Internet Control Message Protocol) 等协定。TCP/IP 的网际层相当于 OSI 的网络层 (Network Layer)。在这一层传送的数据称为数据包 (Datagram)。

  传输层 (Transport Layer) 运输层又称为主机对主机层 (Host to Host Layer) ,任务是提供主机对主机的讯息送达服务。主要协议有 TCP (Transmission Control Protocol) 及 UDP (User Datagram Protocol)。TCP/IP 的运输层也相当于 OSI 的运输层 (Transport Layer)。在这一层传送的数据,TCP 协议称为 Segment,UDP 则称为 Packet。

  应用层 (Application Layer) 应用层的任务提供各种应用程序协议,为使用者提供服务,这一层的协议相当多,著名的应用层协议包括:TELNET、FTP、SMTP、POP3、SNMP、NNTP、DNS、NIS、NFS、HTTP、…等。TCP/IP 的应用层涵盖 OSI 的应用层 (Application Layer)、表现层 (Presentation Layer)、会议层 (Session Layer) 的功能,事实上 TCP/IP 并未定义 Presentation Layer 及 Session Layer 的相关协议,相关功能是由应用程序自行处理。在这一层传送的数据,TCP 的程序称为 Stream,UDP 的程序则称为 Message。

  OSI各层的功能如下:

  物理层 (Physical Layer) 定义数据在线路上的传输方法。主要是负责传送信息,并将硬设备(如网络卡,传输 媒介)送来的讯息,转换计算机认识的讯息,如 0, 1, ... 等。

  数据链路层 (Data Link Layer) 定义单一传输在线点对点间之可靠性传输方法。将实体层传来 0,1 讯息组成 Frame (资 料框),负责流量控制(通常接收方应比发送方快),定义 Token-Ring、Ethernet、…等。

  网络层 (Network Layer) 定义网络上任意不相邻两点间之可靠性传输方法,规划数据在网络中最佳传输路径,以 便将 Packet 传送到目的地。

  传输层 (Transport Layer) 负责数据在两点间传输之可靠性及透明性,将数据安全无误送达目的地,尤其是来自上层的多样传输的问题。包括检查遗失、重复封包、…。

  会话层 (Session Layer) 负责两个节点间的联机之建立,管理、终止及错误恢复。如:所用的通讯协议,通讯模 式,如何结束通讯、…等。

  表示层 (Presentation Layer) 数据格式的问题,主要是将数据转成计算机或系统程序看得懂的模式,如:数据压缩/解压 缩,资料加密/解密、…。

  应用层 (Application Layer) 提供各种服务,做为应用程序与网络间的沟通接口。




  由CHINA通信网组稿
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50