APP下载

网络安全审计系统中FTP解析策略研究

2017-06-29邓浩江叶晓舟

计算机应用与软件 2017年5期
关键词:数据流数据包端口

闫 露 邓浩江 陈 晓 叶晓舟

1(中国科学院声学研究所国家网络新媒体工程技术研究中心 北京 100190)2(中国科学院大学 北京 100039)

网络安全审计系统中FTP解析策略研究

闫 露1,2邓浩江1陈 晓1叶晓舟1

1(中国科学院声学研究所国家网络新媒体工程技术研究中心 北京 100190)2(中国科学院大学 北京 100039)

常见的防火墙、防病毒、入侵检测等系统,对于防止外部非法入侵都有一定的作用,但对于防范内部人员对企业网等网络的破坏却效果甚微。网络安全审计系统针对内部网络进行监控,受到越来越广泛的重视。FTP由于其简单性与易用性,广泛运用于企业网中。针对FTP协议控制流和实时数据流分离的特点,提出了基于数据流信息封装传递的解析策略。该策略可实现FTP命令、响应的正确解析,获取实时建立的数据流端口,关联数据流信息,并实时产生审计日志。基于网络处理器平台实现了该策略,平稳阶段系统每秒事务处理量大于3万,吞吐率达到1 300 Mbps。

网络安全审计系统 FTP解析 控制流 数据流

0 引 言

信息安全审计[1]主要是对与安全有关的活动的相关信息进行识别、记录、存储和分析;审计的记录用于检查网络上发生了那些与安全活动有关的活动,谁(用户)对这个活动负责,主要功能包括:安全审计自动响应、安全审计数据生成、安全审计分析、安全审计浏览、安全审计事件存储、安全审计事件选择等。网络安全审计系统主要针对内部网络进行监控,实现信息安全审计功能[2]。在网络安全审计系统中,协议解析用于识别用户、行为、生成审计数据等,对信息安全审计功能的实现起着至关重要的作用。网络上的协议成千上万,对于不同的协议,解析策略也不尽相同[3]。

目前,网络上大多数协议均在同一条TCP上连接传输命令与数据,FTP协议则不同,在不同的TCP连接上分开处理命令与数据[4]。 FTP[5-6]是File Transfer Protocol的英文简称,为客户机/服务器系统,在网络上通过FTP协议传输,FTP客户端可以访问FTP服务器的资源。FTP支持两种工作模式[7]:standard(PORT模式,主动模式),passive(PASV模式,被动模式)。在standard模式下,FTP客户端首先和服务器的TCP 21端口建立连接,用以传输命令、响应,客户端在需要进行数据传输时,发送PORT命令,该命令包含客户端使用的数据连接端口。在传输数据时,服务器通过TCP 20端口与客户端的数据端口连接;在passive模式下,建立控制连接与standard模式类似,但在需要进行数据传输时发送PASV命令,服务器收到该命令后,打开一个临时端口(大于1 023小于65 535)侦听,并且将该端口通知客户端等待连接。客户端收到通知后,连接FTP服务器此端口,以进行数据传输,具体采取哪种方式由客户端决定。FTP的这两种模式均是针对IPV4环境,当IPV6出现后,协议对模式进行了扩展,出现了EPRT、EPSV模式以支持更长的网络地址,扩展后的与原模式类似,本文不做详细讨论。虽然FTP存在明文信息传输等缺点,但由于其简单性和实用性,在网络应用中还会长期应用[8]。

由于FTP将控制信息与数据分开处理的特性,网络安全审计系统中FTP解析需在正确解析控制流命令、响应的基础上,针对数据流需再解决两个问题:(1) FTP数据流的端口不固定,如何判断所经过的数据包哪些为FTP数据流;(2) FTP数据连接上只传输数据,如文件内容、目录列表内容等,而不包含文件名等信息,如何获得文件名等信息以生成完整的审计数据。现有的FTP安全审计,通过引入代理来实现[9],FTP代理模块分别与客户端、服务端建立两条连接,完成FTP会话维护、分析审计等功能。该方法只针对FTP审计任务,但若当系统中需要审计其他协议时,需增加其他协议代理模块,而不同代理工作方式、支持功能都可能不同,扩展性不好,并且不是所有的应用软件都可以使用代理,例如outlook软件本身并不支持代理。其他常规FTP解析方法[10-11]仅分析控制流,并未将数据流端所传送的文件名等信息与相应数据流相关联,那么在解析数据流时,并不知道文件名、哪个用户进行的操作等信息,审计文件日志不完整。

本文针对FTP协议的特性与网络安全审计的需求,提出网络安全审计系统中FTP协议的解析策略,该策略可以正确解析FTP协议,获取并传递数据流传输端口与数据流信息,快速生成审计数据等。

1 网络安全审计系统

为实现信息安全审计的功能,我们设计的网络安全审计系统HL-Audit包括数据采集、配置管理、审计日志数据中心等子系统,其中数据采集子系统的框架如图1所示。

图1 HL-Audit数据采集子系统

由于通用服务器采用中断方式处理网络流量,性能受限,因此HL-Audit数据采集子系统采用网络处理器完成数据采集功能,具有功耗低、延迟小、采集性能高等优势。其工作流程如下:当系统捕获到数据包后,首先进行对数据包进行IP重组、隧道检测、TCP重组,保证提交到上层的数据包严格有序;区分不同协议后,提交相应高层协议解析模块;高层协议解析模块,解析高层协议,识别用户登录、命令、响应等消息,调用命令黑名单模块判断是否允许命令执行,并生成审计数据发送至数据中心保存。

2 FTP解析策略

FTP解析属于HL-Audit网络安全审计系统数据采集子系统高层协议解析模块,分为控制流解析和数据流解析两部分。控制流解析在正确识别用户命令、响应的基础上,将解析到的数据流端口、文件名等数据流信息进行封装传递,封装的信息用于底层进行FTP数据流的识别以及FTP数据流解析,以达到对数据流传输的监控审计。如图2所示。

图2 FTP解析策略

2.1 FTP控制流解析

控制流解析实现FTP控制连接上数据解析,识别用户登录、命令、响应等消息,当产生新的数据连接时,将解析到的数据流信息传递;调用命令黑名单模块,判断是否需要阻断命令或会话,实现审计自动响应;实时产生审计数据,以日志的形式通过网络会话模块发送至数据中心,日志内容包括会话四元组信息、源mac、目的mac、登录用户名称、登录时间、登出时间;操作日志的内容包括操作命令、返回数据、操作开始时间、操作结束时间等。

2.1.1 FTP数据包处理

由于底层经过TCP重组后提交的数据包仅保证有序,根据TCP/IP协议的特性[12-13],TCP数据包不作为应用层消息的边界,一个完备的解析方案不能假设一个TCP数据包即是一个完整的应用层FTP消息,因此需要先经过数据包处理,提取出完整的单条FTP消息后,再进行接下来的解析。

数据包处理算法如下:

Algorithm1 FTP Packet Process

1: start ← packet

2: uproLen ← len(packet)

3: while uproLen > 0 do

4: msgend ← find(msgendMark; start)

5: if msgend is true then

6: msg ← cache + (msgend - start)

7: process msg

8: clear cache

9: uprolen ← uprolen - len(msgend - start)

10: start ← msgend + 1

11: else

12: cache ← cache + start

13: uproLen ← 0

14: end if

15: end while

我们以图3为例来说明算法的执行过程。首先客户端至服务端方向cache中无缓存数据,收到客户端发向服务端的第一个数据包后,在数据包中查找到命令结束标志“ ”,提取第一条完整消息“AA bbbb ”进行解析;继续查找命令结束标志“ ”,提取第二条消息“CC dddd ”进行解析;继续无命令结束标志,则将不完整消息“EE ff”复制到客户端至服务端方向cache中缓存,该数据包处理完毕;经过一段时间间隔后,收到客户端发向服务端的第二个数据包“ff ”,在数据包中查找到命令结束标志“ ”,此时将cache中数据与第二个数据包中数据合成完整的第三条消息“EE ffff ”,并将客户端至服务端发向cache中数据清空,至此第二个数据包处理完毕。

图3 数据包处理算法执行实例

该数据包处理算法,直接在新到数据包中查找结束标志,若相应方向存在缓存数据,与缓存数据进行拼接组成完整消息,不存在缓存数据,则直接提取完整消息,并将最后不完整的消息进行缓存以等待后续数据到来,而不需要将新到数据包全部进行缓存再进行提取完整消息,有效节约缓存空间,简单高效。

2.1.2 FTP命令/响应解析

在数据包处理算法提取出完整消息后,首先根据系统需求,调用命令黑名单模块,必要时阻断命令或会话。该操作可实时监控用户不合理行为,及时阻止,而不至于产生不可逆后果后再追查审计日志追究责任。对于允许执行的命令,进行接下来的解析工作。

FTP命令解析算法如下:

Algorithm2 FTP Comamnd Parse

1: command ← getcommand(msg)

2: if command is USER then

3: get the user name

4: else if command is PASS then

5: get the password

6: else if command is PORT then

7: get the standard mode client IP and port for data flow

8: else if command is LIST or NIST or RETR or STOR or STOU or APPE then

9: process the infomation of data flow

10: end if

11: generate audit logs

FTP响应解析算法如下:

Algorithm3 FTP Response Parse

1: code ← getcode(msg)

2: count ← total number of incorrect login

3: if code is 230 then

4: set the login successful state

5: else if code is 530 then

6: set the login incorrect state

7: count ←count + 1

8: else if code is 227 then

9: get the passive mode server IP and port for data flow

10: end if

11: generate audit logs

FTP命令众多,解析过程中可选择性地关注特定命令,如USER,通过该命令获取登录用户名。对于暂不关注的命令,只需将命令响应生成审计日志,传送至数据中心即可。

2.1.3 FTP数据流信息处理

FTP控制流解析,在正确解析命令、响应时获得数据流信息,为解决底层FTP数据流识别问题以及数据流生成完整文件审计数据问题,还需将数据流信息传递。数据流信息以七元组(control_infoP,data_mode,s_ip,s_port,c_ip,c_port,file_name)来表示,称为DFI(Date Flow Information),其中control_infoP为指向控制流信息指针,data_mode为数据流传输模式,s_ip为数据流服务端ip,s_port为数据流服务端端口,c_ip为数据流客户端ip,c_port为数据流客户端端口, file_name为传输的文件名或文件目录名,同时定义DFIP为指向DFI的指针。

当FTP会话下只有一个数据流时,控制流收到引起数据流传输的指令后,创建DFI,当未知TCP流到达时,底层模块通过与该DFI进行匹配来识别FTP数据流,分为两种情况:(1) 若DFI中数据流传输模式为standard模式,则底层模块需将数据流的客户端IP、客户端端口、服务端IP、服务端端口完整的四元组信息与已有DFI链表中每一项进行匹配;(2) 若DFI中数据流传输模式为passive模式,该模式下,我们并不能在控制流解析到数据流客户端IP与端口,FTP协议并不要求客户端数据流IP与控制流IP一致,这会带来安全隐患[14],在网络安全审计系统中,我们不支持数据流IP与控制流客户端IP不一致的情况,因此需将客户端IP、服务端IP、服务端端口与已有DFI进行匹配。若匹配,则该TCP流为FTP数据流,将DFIP传递给FTP数据流解析,若不匹配,则该TCP流不为FTP数据流,进行其他处理。

当FTP会话下出现多个数据流时[15],单个DFI显然不能对所有数据流进行区分,因此需要为每个数据流建立相应DFI,所有的DFI以链表形式保存。当未知TCP流到达时,底层模块首先需判断该连接可能为FTP数据流的哪种数据连接模式,若发起TCP连接的端口为20,则此时为FTP服务端主动发起连接,为standard模式,若发起TCP连接的端口不为20,则此时可能为FTP客户端发起连接,为passive模式。判断出模式后,将该TCP流信息与所有DFI项进行匹配,匹配方法与单数据流匹配方法一致。若发现匹配项,则该数据流为FTP数据流,并将相应DFIP传递给FTP数据流解析,若未发现匹配项,则该数据流不为FTP数据流,进行其他处理。DFI数据结构及DFIP传递,如图4所示。

图4 DFI数据结构及DFIP传递

2.2 FTP数据流解析

FTP数据流解析模块通过底层传递的DFIP,可直接获得FTP控制流、文件名等信息。正常情况下,FTP控制连接会存在于会话整个生命周期,但存在控制连接先于数据连接关闭的异常情况。当控制连接先关闭DFI被释放时,若数据流还未来得及关闭TCP连接,此时FTP数据流解析试图通过DFI获取信息则会发生错误,且无法保证生成DFI加入链表后,相应数据连接一定会建立成功。因此为保证DFI内存管理的正确性,在FTP数据流初始化时,通过底层传递的DFIP读取出DFI数据流信息并保存,而不在整个数据流传输过程中都依赖底层传递的DFIP。所有DFI占用的内存空间,在控制流断开连接时统一释放。

通过DFIP的传递,数据流得到控制流、文件名等信息,加之数据流所传输数据生成完整文件审计数据,以文件日志形式发送至数据中心。

3 实验测试及分析

基于Caviun OCTEON CN6645多核网络处理器[16],我们实现了网络安全审计系统HL-Audit,并在一个处理器核心上运行FTP解析策略。本文利用IXIA测试仪模拟FTP客户端与服务端,在上述嵌入式平台下针对系统每秒事物处理量与吞吐率进行了测试。图5为系统测试框图。

图5 系统测试框图

3.1 每秒事务处理量测试

每秒系统能够处理的事务量,是衡量系统处理能力的重要指标,实验针对客户端下载64 KB文件时,系统的每秒事务处理量进行了测试,测试结果显示,平稳阶段系统每秒事务处理量大于3万,测试结果如图6所示。

图6 系统每秒事务处理量测试结果

3.2 吞吐率测试

在存在文件传输的情况下,系统吞吐率是很重要的一个指标,实验针对常规方法只解析FTP控制流与本文策略通过DFIP传递解析控制流与数据流两种情况进行了系统吞吐率测试,测试过程中客户端下载服务端1 GB的文件,测试结果如图7所示。

图7 系统吞吐率测试结果

在常规方法只解析数据流没有DFIP传递的情况下,底层模块无法识别FTP数据流,故FTP数据流直接通过系统,系统也无法生成实时审计日志;而通过本文策略,当经过DFIP的传递后,FTP数据流会经过底层模块识别匹配,并提交FTP协议解析模块进行解析,由FTP解析模块实时产生文件日志,而此时系统的吞吐率只是略低于直接通过的情况,FTP解析策略工作效果较好,DFIP的传递并没有给系统造成过大负担。

4 结 语

本文提出了网络安全审计系统中FTP协议解析策略。该策略可以正确解析FTP协议,识别用户名、密码;在控制流端获取FTP数据流信息,解决了底层模块FTP数据流的识别问题;在控制流端获取FTP数据流文件名等信息,通过DFIP的传递,实时关联数据流信息;快速生成审计日志。通过分析日志,可确定哪个用户在什么时间进行了哪些操作,实现安全审计。下一步的目标是利用多核平台的特性,实现性能的优化。

本文在解决网络安全审计系统中FTP协议解析问题的同时,也为其他多TCP连接的协议解析提供参考。

[1] 通用准则发起组织.ISO/IEC 15408 信息技术安全性评估通用准则2.0版[S].1998.

[2] 张涛,余炀,李弋.Linux服务器安全审计系统的设计与实现[J].计算机应用与软件,2014,31(5):17-22,75.

[3] 陈泉清.基于协议解析的网络安全审计系统的设计与实现[D].成都:电子科技大学,2014.

[4] 江浩,朱巧明,钱培德.一种高效的FTP流量统计方法及应用[J].计算机工程与科学,2007,29(1):30-32,69.

[5] 蔡勇.FTP服务器技术研究及实现[D].成都:电子科技大学,2005.

[6] Rani L,Narula P,Panchal N.Ftp-the file transfer protocol[J].International Journal of Research,2014,1(9):1029-1031.

[7] 孟欣.基于FTP的文件高效上传方法的研究与实现[D].广州:华南理工大学,2014.

[8] 梁秀花.浅谈FTP协议在网络传输中的应用[J].计算机光盘软件与应用,2014,17(14):137-138.

[9] Li W,Hu X,Jia Y,et al.Proxy-based FTP secure audit technology[C]//Software Engineering and Service Science (ICSESS),2014 5th IEEE International Conference on.IEEE,2014:667-670.

[10] 史轶.基于应用协议分析的网络信息监控系统[D].哈尔滨:哈尔滨工程大学,2008.

[11] 李军,倪宏,陈君,等.一种应用层协议解析加速算法[J].四川大学学报(工程科学版),2014,46(4):87-93.

[12] 刘静菠,刘嘉勇,唐龙.基于应用层特征的TCP数据流重组方法研究[J].信息安全与通信保密,2014(5):111-113.

[13] 吕冠桥,柳寒冰,邓晓红.基于TCP协议的网络拥塞控制算法设计[J].软件导刊,2014,13(1):56-59.

[14] 黄世权.FTP协议分析和安全研究[J].微计算机信息,2008,24(2-3):93-94,264.

[15] 蔡艳丽.基于FTP协议网络流量模拟的设计与实现[J].海军航空工程学院学报,2014,29(3):221-224.

[16] Cavium Inc.OCTEON II CN66XX Multi-Core MIP S64 Processors[OL].(2015-11-17).[2016-03-28].http://www.cavium.com/OCTEON-II_CN66XX.html.

RESEARCH ON FTP PARSING STRATEGY IN NETWORK SECURITY AUDIT SYSTEM

Yan Lu1,2Deng Haojiang1Chen Xiao1Ye Xiaozhou1

1(NationalNetworkNewMediaEngineeringResearchCenter,InstituteofAcoustics,ChineseAcademyofSciences,Beijing100190,China)2(UniversityofChineseAcademyofSciences,Beijing100039,China)

Common firewall, anti-virus, intrusion detection and other systems, for the prevention of external illegal invasion have a certain role, but for the prevention of internal staff on the enterprise network and other network damage has little effect. Network security audit system for internal network monitoring, has been more and more attention. Because of its simplicity and ease of use, FTP is widely used in enterprise networks. Aiming at the characteristics of FTP protocol control flow and real-time data flow separation, a parsing strategy based on packaging and transmitting the data flow information is proposed, which can realize the correct parsing of FTP command and response, obtain real-time data flow port, associate data flow information, and generate audit log in real time. The strategy is implemented based on the network processor platform. In the steady phase, the system transaction per second is more than 30 000, and the throughput reaches 1 300 Mbps.

Network security audit system FTP parsing Control flow Data flow

2016-04-06。中国科学院战略性先导科技专项课题(XDA06010302)。闫露,博士生,主研领域:宽带通信和信息安全。邓浩江,研究员。陈晓,研究员。叶晓舟,研究员。

TP3

A

10.3969/j.issn.1000-386x.2017.05.053

猜你喜欢

数据流数据包端口
二维隐蔽时间信道构建的研究*
一种有源二端口网络参数计算方法
一种端口故障的解决方案
汽车维修数据流基础(上)
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
多按键情况下,单片机端口不足的解决方法
现有网络架构及迁移方案
C#串口高效可靠的接收方案设计