>

第三种方法称为解密检测方法,加密一直都是保

- 编辑:澳门博发娱乐官网 -

第三种方法称为解密检测方法,加密一直都是保

在网络的入口处对应用程序的识别是非常重要的,无论是网络安全产品,还是专业的流量分析引擎,应用流量的准确识别不但可洞悉整个网络的运行情况,而且可针对具体需求做用户行为的准确管控,这在一定程度上既可保证业务流的高效运行,也可预防由于内网中毒引起的断网事件。

废话:

原标题:【网安学术】以未知对未知—智能安全自我进化

nDPI是什么

先来说下什么是DPI,DPI(Deep Packet Inspection)是深度包检测系统,网络的流量种类现在越来越多,有些是恶意使用,比如p2p占用带宽或恶意网络应用,由于恶意应用可能使用随机端口,因此有必要对报文进行深度分析。

nDPI是从openDPI发展而来,功能上更强大,都是基于C实现的基于LGPL3.0开源的深度包分析库。

nDPI有以下特点:
1、跨平台,支持windows,linux、mac等操作系统。
2、支持流量大小监控。
3、目前支持185种协议解析。
4、能够定义端口或端口范围来匹配协议。
5、能够根据字符串匹配子子协议。
6、nDPI实现了线程安全。
7、nDPI实现了加密流量的解析。

主要功能:
1、核心库用于处理数据包抽取基本信息。
2、解析器用插件方式实现,用于解析报文检测的 协议类别。

然而,要准确识别应用流量,从技术实现上讲并不简单,难度主要体现在识别的算法及检测深度。算法不但要解决流量的分类,而且要负责在多个分类中查找特征,所以最好的算法往往带来的是精确的识别;另一个就是检查数据的深度,深度总是和性能关联,检查的越多,消耗的系统资源越多。因此,检查一个流的前20个包所付出的性能代价往往是超乎想象的,这就是我们提到的识别难度。

加密一直都是保护用户通讯隐私的重要特性,可如果恶意程序在传播过程中也加密的话,对这样的流量做拦截感觉就麻烦了很多。谈到加密,TLS(Transport Layer Security Protocol,传输层安全协议)就是当前使用非常广泛的协议:国外部分研究机构的数据显示,已有至多60%的网络流量采用TLS,当然也包括一些恶意程序(虽然大约只有10%)。

因为xxoo的缘故接触到这个设备。但是就是单纯的去看并没有去研究它是个啥玩意。刚才无聊就百度科普了一波。

图片 1

nDPI安装

1、点击下载最新的版本,2017年8月8日版本2.1.0.

2、编译nDPI库
简单的三步:

  • ./autogen.sh
  • ./configure
  • make

3、测试

  • cd tests; ./do.sh

4、安装

  • make install
    需要具备root权限

5、例子工具使用
nDPI在example下面提供了一个ndpiReader,这个在编译程序的时候自动编译好了。

图片 2

ndpiReader

协议配置文件:

协议配置文件:
#  Format:
#  <tcp|udp>:<port>,<tcp|udp>:<port>,.....@<proto>
#抓取特定端口或特定端口端的协议

tcp:81,tcp:8181@HTTP
udp:5061-5062@SIP
tcp:860,udp:860,tcp:3260,udp:3260@iSCSI
tcp:3000@ntop

#  Subprotocols
#  Format:
#  host:"<value>",host:"<value>",.....@<subproto>
#通过字符串匹配方式来定义新的子协议
host:"googlesyndication.com"@Google
host:"venere.com"@Venere
host:"kataweb.it",host:"repubblica.it"@Repubblica
host:"ntop"@ntop
host:"www.baidu.com"@baidu

#  IP based Subprotocols
#  Format:
#  ip:<value>,ip:<value>,.....@<subproto>
#通过ip的方式来定义子协议
ip:213.75.170.11@CustomProtocol

主要功能:
1)分析网卡的数据包

  ./ndpiReader -p protos.txt  -i eth0   -s 120 -w result.txt

说明:监听网卡报文120分钟,结果数据保存到result.txt中。
结果展示:

-----------------------------------------------------------
* NOTE: This is demo app to show *some* nDPI features.
* In this demo we have implemented only some basic features
* just to show you what you can do with the library. Feel 
* free to extend it and send us the patches for inclusion
------------------------------------------------------------

Using nDPI (2.1.0) [1 thread(s)]
Capturing live traffic from device eth0...
Capturing traffic up to 120 seconds
Running thread 0...

nDPI Memory statistics:
    nDPI Memory (once):      112.30 KB    
    Flow Memory (per flow):  1.97 KB      
    Actual Memory:           2.60 MB      
    Peak Memory:             2.60 MB      

Traffic statistics:
    Ethernet bytes:        860224        (includes ethernet CRC/IFC/trailer)
    Discarded bytes:       3528         
    IP packets:            1669          of 1729 packets total
    IP bytes:              820168        (avg pkt size 474 bytes)
    Unique flows:          57           
    TCP Packets:           1558         
    UDP Packets:           111          
    VLAN Packets:          0            
    MPLS Packets:          0            
    PPPoE Packets:         0            
    Fragmented Packets:    0            
    Max Packet size:       1480         
    Packet Len < 64:       832          
    Packet Len 64-128:     214          
    Packet Len 128-256:    46           
    Packet Len 256-1024:   143          
    Packet Len 1024-1500:  434          
    Packet Len > 1500:     0            
    nDPI throughput:       13.94 pps / 56.13 Kb/sec
    Analysis begin:        31/Dec/1969 16:00:00
    Analysis end:          31/Dec/1969 16:00:00
    Traffic throughput:    13.94 pps / 56.13 Kb/sec
    Traffic duration:      119.723 sec
    Guessed flow protos:   9            


Detected protocols:
    DNS                  packets: 70            bytes: 7360          flows: 22           
    HTTP                 packets: 885           bytes: 662027        flows: 14           
    NetBIOS              packets: 1             bytes: 248           flows: 1            
    SSDP                 packets: 4             bytes: 860           flows: 1            
    SSL                  packets: 317           bytes: 68648         flows: 22           
    SSH                  packets: 219           bytes: 22990         flows: 4            
    DHCPV6               packets: 6             bytes: 882           flows: 1            
    Google               packets: 33            bytes: 3645          flows: 7            
    baidu                packets: 134           bytes: 53508         flows: 6            


Protocol statistics:
    Safe                         68648 bytes
    Acceptable                  751520 bytes

flows:数据流,为一系列数据包组成。
packets:数据包。
以上有baidu协议为我新添加的子协议,添加子协议配置很简单,通过hosts提取的http协议定义为baidu这个子协议。

host:"www.baidu.com"@baidu

即只要http的host为www.baidu.com就当做为baidu协议。

结果文件:

DNS 70  7360    22
HTTP    885 662027  14
NetBIOS 1   248 1
SSDP    4   860 1
SSL 317 68648   22
SSH 219 22990   4
DHCPV6  6   882 1
Google  33  3645    7
baidu   134 53508   6

依次为协议名称、报文数、字节数、数据流数。

2)分析抓包文件
通过tcpdump进行抓包

$tcpdump -ni eth0 -s0 -w /var/tmp/capture.pcap -v
利用ndpiReader分析抓到的报文
$ ./ndpiReader -i /var/tmp/capture.pcap

对于识别方法来说,从技术角度看,检查一个应用特征主要有三种方法。第一种方法称为标准检测,主要靠识别报头信息的地址和端口,这种方法常见于做QoS的网关设备。第二种方法称为DPI深度包检测),这是业界常用的术语,绝大多数设备声称具有这样的技术,常见于"下一代内容检测系统"及UTM类设备。从理论上,数据流中每个报文的任意字段或数据流传输过程中的任何特征都可以作为应用协议识别的依据,但实际上,如何快速选择最有效的数据流特征信息的难度远远超过了您的想象。第三种方法称为解密检测方法,就是将数据流送入一个分类器,数据流被分类之后,将加密数据流送入一个解密引擎,解密引擎通过预置的解密算法对数据解密,解密后再次返回分类器进行检查。如天融信TopFlow就采用这种技术来识别加密数据,通过这种独有的技术,使得精确识别率能达到99%以上。

图片 3

DFI以及DPI简单通俗以自己的理解来将就是网络带宽的一种检测技术。既然是检测技术也就是说其可以进行查看流量情况。那么最简单的企业应用也就是拿来看DDOS攻击情况之类的了。

摘要:网络空间第三次浪潮的出现,给原来静态防御、边界防护、基于特征匹配的网络安全思路和技术带来了新的挑战。为应对这次变革,提出了“以未知对未知”的智能防御理念,主要是针对新时代特性,构建基于人类免疫系统理念网络空间安全生态体系,利用人工智能算法在生成对抗网络中具备自主进化迭代的优势,通过不断学习每个网络、设备、用户的终生模式和关联分析,自主识别、拦截异常攻击,与受保护网络空间其他系统相互协调,共同维持网络空间内部环境稳定、健康、可控、安全与运行平衡。

当然,在我们介绍应用流量识别时有几个概念需要介绍:

来自思科的一组研究人员最近研究出一种方法,不需要对这类流量进行解密,就能侦测到采用TLS连接的恶意程序,是不是感觉有点小神奇?

介绍:

0 引 言

数据流:基于应用层协议识别的对象不能只是简单的检查单个报文,而是要将数据流作为一个整体来检测。因此,数据流是指在某个会话生命周期内,通过网络上一个检测节点的IP数据报文的集合。实际上,一个节点发送的数据流的所有属性是相同的。

图片 4


以信息技术为代表的新一轮科技和产业革命给世界各国主权、安全、发展利益带来了许多新的挑战。近年来,国家级网络武器及其相关工具和技术的扩散,给各国关键基础设施造成了极大挑战。当前,全球互联网治理体系变革进入关键时期,构建网络空间命运共同体日益成为国际社会的广泛共识。

数据流分类:利用数据流以及数据流中报文的某些信息,可将网络上的数据流进行分类,这种分类可加速应用流量的分类,如游戏应用数据流通常是小报文,而P2P流一般称为大报文。

TLS协议

    DFI(Deep/Dynamic Flow Inspection,深度/动态流检测) 它与DPI(Deep Packet Inspection,深度包检测)进行应用层的载荷匹配不同,采用的是一种基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态各有不同。

全球网络攻击事件统计(如图1所示)显示,未知威胁攻击、Account Hijacking账户劫持攻击、Targeted Attack针对性攻击、DDoS攻击,攻击比例上呈逐年上升趋势。国计民生的基础设施系统是攻击的重点领域,其中涉及金融、能源、交通等,其目标性、隐蔽性极强,传统的消缺补漏、静态防御、“封、堵、查、杀”在这些攻击面前捉襟见肘。

数据流类别:数据流类别是一个大型网状结构的分类器,按照行为特征及签名进行归类。在数据流分类问题中,每个类别可能包含某些属性类似的多种协议,典型的如IE下载即包括了多个类别,有分块下载,有伪IE下载等,有另存单线程下载等,而协议识别必须对流进行更精细的分类,使得每个类别中的流只使用一种应用层协议。

这是怎么做到的?

DPI:

图片 5

协议识别:协议识别是指检测引擎根据协议特征,识别出网络数据流使用的应用层协议。

思科已经公开了这份研究报告,题为《辨认使用TLS的恶意程序(无需解密)》(英文其实表达得更为准确,名为”Deciphering Malware’s use of TLS”)。我们比较笼统地归结原理,其实是TLS协议本身引入了一系列复杂的数据参数特性——这些特性是可以进行观测检查的,这样自然就能针对通讯双方做出一些合理的推断。

  • 深度包检测,增加了对应用层分析,识别各种应用
  • 对应用流中的数据报文内容进行探测,从而确定数据报文真正应用
  • 基于“特征字”的识别技术
  • 应用层网关识别技术
  • 行为模式识别技术

美国中情局对其黑客武器库的失控,如同一把宝剑悬着以划“域”而治。固守边界防御思路治理下的各国关键基础设施上空,大范围安全事件随时可能发生。2017年,WannaCry勒索病毒是一个典型的安全事件,短短4日,席卷150多个国家,造成80亿美元损失,涉及金融、能源、医疗等众多行业[1]。如何避免突击式的补救,成为当下急需解决的问题。

应用协议特征字符串:特征字符串是协议归类的关键依据,字符串特征举例协议特征字符串

这份报告中有提到:“通过这些特性,我们可以检测和理解恶意程序通讯方式,与此同时TLS本身的加密属性也能提供良性的隐私保护。”听起来似乎还是比较理想的新技术——在不需要对流量进行解密的情况下就达成流量安全与否的判断,的确具备很大意义。

DFI:

改变以往的边界防御思路,从数据安全保护角度出发,通过对业务数据进行动态评估,分析出业务数据的价值,从而根据不同价值等级进行动态的策略规则防护。

ftp特征字符串acct、cwd、smnt、port;

为此,思科大约分析了18个恶意程序家族的数千个样本,并在企业网络中数百万加密数据流中,分析数万次恶意连接。整个过程中,网络设备的确不对用户数据做处理,仅是采用DPI(深度包检测技术)来识别clientHello和serverHello握手信息,还有识别连接的TLS版本。

  • 深度/动态流检测
  • 基于流量行为的识别技术,即不同的应用类型体现在会话连接或数据流上的状态不同

1 防御构想

smtp特征字符串HELO、EHLO、MAIL FROM:、RCPT TO:、VRFY、EXPN;

“在这篇报告中,我们主要针对433端口的TLS加密数据流,尽可能公正地对比企业一般的TLS流量和恶意TLS流量。为了要确认数据流是否为TLS,我们需要用到DPI,以及基于TLS版本的定制signature,还有clientHello和serverHello的信息类型。”

 

动态防御,很早就是网络安全领域追诉的目标,经历了从设备联动布防到现在对人工智能的关注。在当下网络安全环境中,利用IPS、FW等设备的动态关联,已经不能满足动态的需要。人工智能以其高效数据处理和分析的速度、准确性等优势,受到了人们的青睐。其中,数据和算法是保障高信度和高效度分析结果的核心。脱离全面有效数据的喂养,准确分析将无从谈起;离开有效算法和算法集间的交叉验证,就会走向信度和效度极度脆弱的一面。

pop3特征字符串+OK、-ERR、APOP、TOP、UIDL;

“最终,我们在203个端口之上发现了229364个TLS流,其中443端口是目前恶意TLS流量使用最普遍的端口。尽管恶意程序端口使用情况多种多样,但这样的情况并不多见。”

DFI与DPI的比较

构建真正意义上的“以未知对未知”的动态防御,数据和算法是核心。获取全面的具有代表性的数据,才能避免人工智能鲁棒性的出现,才能提供更加准确可靠的分析结果。算法决定检测准确度的上限。只有对算法的优缺点进行验证、分析,才能在实战中做好算法集的动态调配。

msn 特征字符串包括msg、nln、out、qng、ver、msnp;

图片 6


“以未知对未知”,是在人工智能的技术前提下,基于Netflow和sFlow两种协议字段融合,克服单一网络协议的数据局限性弊端,降低网络数据存储量和运行主机的CPU负载率,结合算法集对流动变化的数据自适应,通过关键因素的风险区间和概率分布,对未来结果做出精准判断,产出不断进化的防御规则,以应对新时代网络安全的需求。

OICQ特征字符串开头第一个字节:0x02,第四、五字节:协议号;

不仅如此,据说他们还能就这些恶意流量,基于流量特性将之分类到不同的恶意程序家族中。“我们最后还要展示,在仅有这些网络数据的情况下,进行恶意程序家族归类。每个恶意程序家族都有其独特的标签,那么这个问题也就转化为不同类别的分类问题。”

    DFI与DPI两种技术的设计基本目标都是为了实现业务识别,但是两者在实现的着眼点和技术细节方面还是存在着较大区别的。从两种技术的对比情况看,两者互有优势,也都有短处,DPI技术适用于需要精细和准确识别、精细管理的环境,而DFI技术适用于需要高效识别、粗放管理的环境。

2 “以未知对未知”的防御体系设计

sip特征字符串REGISTER、INVITE、ACK、BYE、CANCEL、SIP;

“即便使用相同TLS参数,我们依然就够辨认和比较准确地进行分类,因为其流量模式相较其他流量的特性,还是存在区别的。我们甚至还能识别恶意程序更为细致的家族分类,当然仅通过网络数据就看不出来了。”

  从处理速度来看: DFI处理速度相对快,而采用DPI技术由于要逐包进行拆包操作,并与后台数据库进行匹配对比,处理速度会慢些。由于采用DFI技术进行流量分析仅需将流量特征与后台流量模型比较即可,因此,与目前多数基于DPI的带宽管理系统的处理能力仅为线速1Gbit/s相比,基于DFI的系统可以达到线速10Gbit/s,完全可以满足企业网络流量管理的需求。

“以未知对未知”防御体系设计(如图2所示)共分三个部分。第一部分是未知数据的采集、梳理、融合、范化、精炼,形成标准的数据格式;第二部分是自适应算法集,包含支持向量机算法、Apriori与FP-Growth算法、隐式马尔科夫算法、朴素贝叶斯算法等,每个算法单独并行运算,威胁验证后,提交给态势数据库;第三部分,态势数据库一方面将威胁情报梳理呈现,另一方面根据网络状况进行资源管理策略调整,影响安全防御系统策略变更。

eMule特征字符串开头第一个字节:0xe3 或 0xc5 或 0xd4;

实际上,研究人员自己写了一款软件工具,从实时流量或者是抓取到的数据包文件中,将所有的数据输出为比较方便的JSON格式,提取出前面所说的数据特性。包括流量元数据(进出的字节,进出的包,网络端口号,持续时间)、包长度与到达间隔时间顺序(Sequence of Packet Lengths and Times)、字节分布(byte distribution)、TLS头信息。

  从维护成本来看: DFI维护成本相对较低,而基于DPI技术的带宽管理系统总是滞后新应用,需要紧跟新协议和新型应用的产生而不断升级后台应用数据库,否则就不能有效识别、管理新技术下的带宽,影响模式匹配效率; 而基于DFI技术的系统在管理维护上的工作量要少于DPI系统,因为同一类型的新应用与旧应用的流量特征不会出现大的变化,因此不需要频繁升级流量行为模型。

图片 7

应用流量协议特征检测方法

其实我们谈了这么多,还是很抽象,整个过程还是有些小复杂的。有兴趣的同学可以点击这里下载思科提供的完整报告。

  从识别准确率来看: 两种技术各有所长。由于DPI采用逐包分析、模式匹配技术,因此,可以对流量中的具体应用类型和协议做到比较准确的识别; 而DFI仅对流量行为分析,因此只能对应用类型进行笼统分类,如对满足P2P流量模型的应用统一识别为P2P流量,对符合网络语音流量模型的类型统一归类为VoIP流量,但是无法判断该流量是否采用H.323或其他协议。如果数据包是经过加密传输的,采用DPI方式的流控技术则不能识别其具体应用,而DFI方式的流控技术不受影响,因为应用流的状态行为特征不会因加密而根本改变。

2.1 数据采集方法研究

数据流检测方法主要分为四个层次,让我们描述一下从最简单到最复杂的检测过程。

分析结果准确性还不错

采集具有代表性的原始数据,是“未知对未知”防御的重要基础。

首先,互联网众所周知的网络应用都是建立在固定网络协议或端口上,如http、ftp等等常用协议,这些协议的特征非常明显,在一定程度上几乎不使用检测引擎就可识别。

思科自己认为,分析结果还是比较理想的,而且整个过程中还融合了其机器学习机制(他们自己称为机器学习classifiers,应该就是指对企业正常TLS流量与恶意流量进行分类的机制,甚至对恶意程序家族做分类),正好做这一机制的测试。据说,针对恶意程序家族归类,其准确性达到了90.3%。

由于网络流量中包含了源/目的地址、源/目的端口、协议类型等丰富的网络信息,能够实时反映当前网络中出现的安全信息和行为描述。因此,网络流量为在网络异常检测方面最具有代表性的元数据。由于其他安全设备和网络设备品牌各异,采集数据的协议也不尽相同。这些设备采集的和二次加工的数据暂且纳入第三方信息管理平台,为威胁验证提供参考。

图片 8

“在针对单独、加密流量的识别中,我们在恶意程序家族归类的问题上,能够达到90.3%的准确率。在5分钟窗口全部加密流量分析中,我们的准确率为93.2%(make use of all encrypted flows within a 5-minute window)。”

近几年,应用比较广泛的网络流技术主要包括NetFlow(Ciso公司)、J-Flow(Juniper公司)、sFlow(HP,InMon,Foundry Networks公司)和NetStream(华为公司)。其中,J-Flow和NetStream这2种网络流的原理和内容基本与NetFlow相类似,故可以认为目前应用的常见网络流主要以NetFlow和sFlow为主[2]。

本文由胜博发-运维发布,转载请注明来源:第三种方法称为解密检测方法,加密一直都是保