科来网络分析系统CSNAS(后文统称CSNAS)提供了深度数据包检测过滤器(即科来DPI)供网络分析师们应对各种不同的分析场景进行数据包过滤。因篇幅限制,上一篇我们《消除噪音 科来DPI不同会话视图的灵活应用》讲解了物理会话视图和IP会话视图,今天将继续为大家介绍科来DPI在TCP会话和UDP会话视图中的应用。(1)TCP会话视图 TCP会话视图详细显示网络中TCP连接的通讯会话信息。对于每条TCP会话,都可统计其源地址、目标地址、会话总流量、会话收/发流量、会话收/发的数据包及这些数据包的大小等多种统计参数。在TCP会话子窗口中显示当前选定TCP连接的原始数据包信息、TCP数据流重组信息以及TCP会话时序图。在网络运维根因分析和网络安全研判时, TCP会话视图是网络分析师使用最频繁的视图之一(对TCP视图的界面及功能详细介绍,可参考:CSNAS帮助菜单->常规分析视图->TCP会话视图),如下图:UDP会话视图详细显示网络中TCP连接的通讯会话信息。每条UDP会话,可以统计其源地址、目标地址、会话总流量、会话收/发流量、会话收/发的数据包及这些数据包的大小等信息。功能使用与TCP会话视图基本一致,不再累述,如下图:- 科来DPI在TCP会话视图和UDP会话视图中的应用
上篇文章中已经详细介绍过,本篇不再累述,一张图回顾足已,如下:在不清楚端点视图中都支持哪些字段数据源的情况下,推荐大家还是先点击输入框旁的帮助图表,如下图:和物理会话及IP会话不同的地方在于,TCP会话支持的统计字段很多,这里不再一一列举,仅将TCP会话特有的字段数据源列出如下表: | | | session.actualsegmentationloss | | | | | session.dstactualsegmentationloss | | | | | session.dstaverageacktime | | | | | | | | | session.dstpossiblesegmentationloss | | | session.dstretransmission | | | | | | | | | | | | | session.possiblesegmentationloss | | | | | session.srcactualsegmentationloss | | | session.srcaverageacktime | | | | | | | session.srcpossibleseqmentationloss | | | session.srcretransmission | | | | | | 说明:这里面很多字段和“交易分析”相关(交易的概念及字段原理本篇文章不讲解,部分字段的应用方式将在后文的应用举例中具体说明。要深入系统学习网络分析原理、分析方法思路,可报名参加科来CSNA网络分析认证培训)。CSNAS对TCP会话的交易统计如下图:查看UDP会话的数据源字段方法和TCP相同,不再赘述。过滤语句:session.retransmisson>50说明:TCP是可靠的传输层协议,如果会话传输过程中产生丢包,会通过重传来保证数据包发送到对端。因此,我们可以通过监测会话中是否出现重传(丢包)来评估线路的通信质量。重传的次数根据网络环境的不同也会不通,我们在监测过程中阈值也会设定得不同。若监测的是无线网络或广域网,则存在重传的会话会很常见;若监测的是数据中心内部,则会话中出现少量重传也会影响业务的质量。本例我们只作演示,重传阈值设定为50。过滤效果如下图:除“重传”外,还有一个类似指标“分段丢失”。这里简单说一下它们的联系与区别:(1)联系:“重传”与“分段丢失”都是和丢包相关的指标; (2)区别:在端点1到端点2的方向,“重传”代表在抓包点之后有数据包丢失,而“分段丢失”代表在抓包点之前有数据包丢失。例2:找出存在大量数据包乱序或大量重复ACK的TCP会话。过滤语句:session.outoforder>3 || session.duplicateack>20说明:TCP传输过程中,难免出现先发出的数据包后到达目的地,我们把未能按照发包顺序到达的情况称为乱序(out of order),如果主机端没能按预想的顺序收到数据包,就会发送和前面有一样ACK编号的ACK包去告诉对端,自己未收到想要的数据包(与前面进行正常确认时的数据包的ACK号会重复),我们称这种ACK包为重复ACK(duplicate ack)。发生乱序和产生重复ACK并不说明有丢包发生(参考RFC793中TCP快速重传机制),但也能一定程度反应出网络的通信质量。特别需要说明,抓包位置往往是在网络路径中间,因此,乱序的次数和重复ACK的次数(如抓包点后再发生乱序)是不同的。所以我们在设置过滤条件的阈值时,需要根据抓包点位置和具体网络环境来作具体设置,本例设置的阈值只作演示用。过滤语句:session.duration> 5m && session.bytes<1m
&& session.packets<100说明:若主机感染未知木马,偷偷和攻击者产生会话连接,在攻击者没产生任何操作的情况下,为使会话不自动中断,会持续发送保活包让会话保持连接状态。此时,我们可以根据这种会话的特征来进行过滤:(1)长连接:攻击者不会轻易断开连接,会话时长往往会比正常的业务会话时间更长(这里仅作演示,设置为5分钟,可根据实际情况设置为更长时间); (2)会话中没有任何操作,只有心跳包队会话产生保活,因此会话产生的数据量很小(这里仅作演示,设置为产生数据小于1m); (3)心跳包一般15-50秒发送一个,我们可以大概算出一个心跳包的数值区间(过滤出的会话中,如果存在数据包间隔时间固定,且数据包负载不为0,则能确定为是心跳包。这里仅作演示,设置为数据包数小于100);把以上三个条件合在一起,来过滤满足条件的会话,过滤效果如下图:本例过滤可进一步添加条件,如保活包携带payload数据,避免与因重复尝试连接或多次超时重传造成的长连接特征相似。过滤语句变为:session.duration>5m && session.bytes<1m &&
session.packets<100 && session.payloadlength>0根据场景不同,过滤条件可作灵活修改,这里就留给读者去自由发挥了。注意:本例中的过滤语句,会话持续时间和会话字节数都指定了单位,若不指点单位,默认时间单位为秒,数据单位为字节。过滤语句:session.dstlocation
!='本地' && session.srclocation = '本地'设想场景为境外IP盗取本地服务器资料,可添加条件:服务器外发数据>服务器接收数据,过滤条件如下:session.dstlocation !='本地' && session.srclocation
= '本地' && dstbytes<srcbytes注意:此处节点1为我们监控的本地服务器。dstbytes为外网IP发送的字节数(即服务器接收的字节数),而srcbytes为服务器发送的字节数。服务器发送数据>服务器接收数据,就是srcbytes>dstbytes。本例还可以继续增加过滤条件,如会话持续时间,会话字节数等,留给读者思考。分析:SSDP全称简单服务发现协议(Simple Service Discovery Protocol)是建立在UDP上的一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。现在要查看它的会话流,只需要在UDP会话视图中,将SSDP协议的会话过滤出来即可,科来CSNAS支持解析UDP会话流。过滤语句:session.protocol=ssdp1. CSNAS的UDP会话同样可以显示“数据流”;2. 大家有没有发现SSDP协议数据流和HTTP很像?它的请求行同样会有“GET”或“POST”.因此,如果我们在数据包视图中想要过滤出请求方式为“GET”或“POST”的HTTP包,可加上过滤条件“protocol!=ssdp”;
分析:SQL和UDP相关的端口号为1434,如果存在蠕虫会话,常有的会话特征为:存在流量突发,短时间内有大量会话,并且每个会话大小都很小,只有1-2个包,每个会话会有相同的某种特征值。前面“存在流量突发,短时间内有大量会话”通过IP端点和IP会话视图更容易观察,这里仅从UDP视图中入手,分析“每个会话大小都很小,只有1-2个包,每个会话会有相同的某种特征值”。过滤语句:session.port=1434
&& session.packets<=2从过滤结果看,满足蠕虫的会话特征。进一步查看UDP会话的内容,发现基本每个会话都有如下特征:以上为DPI在技术交流版的TCP视图和UCP视图应用举例,在CSNAS商业版中DPI还有2个特别的功能:session.file和session.payload,可以查找流中是否存在文件传输和针对流的内容查找相应会话。本文介绍了科来DPI在TCP会话视图和UDP会话视图中的应用,让网络分析师的分析技能更加丰富了。下篇文章我们将带来科来DPI在日志视图中的应用,敬请期待!
|