精华内容
下载资源
问答
  • 深度包检测

    千次阅读 2013-10-10 23:36:16
    HTTP URL/深度关键词检测 GFW的TCP协议阻断方式 GFW只根据单向的报文还原通信内容进行协议分析和关键词判断。并且在还原通信内容时,并不检查ack域的正确性,这也符合其“better is worse的设计哲学”,对于seq...

    一项持续时间比张某还长的遗留研究。下面是它的开发研究简介,细节很多,非研究者可以略去不看。

    HTTP URL/深度关键词检测

    GFW的TCP协议阻断方式

    GFW只根据单向的报文还原通信内容进行协议分析和关键词判断。并且在还原通信内容时,并不检查ack域的正确性,这也符合其“better is worse的设计哲学”,对于seq重叠的包,GFW的策略是忽略后来的包,因此利用GFW的这种流重组特性对其进行欺骗也十分容易。

    一旦GFW根据还原出的内容检测到关键词,会根据触发关键词的包和关键词类型发送type1的RST或者type2的RST/ACK,在《入侵防御系统的评测和问题》中已经介绍,type2类型首次阻断中会先发送一组三个RST/ACK,序列号依次加1460、2920。type1与type2有所不同的是,type1首次阻断发送的RST的seq是关键词结束位置所在的包的ack,type2的seq则可能取为在此之前若干个包的ack,这可能与GFW处理报文的buffer大小和更新方式有关。在有些地区,单向发送内容触发type2关键词之后本地无法收到RST/ACK(对方可以收到),除非对方回复过任何设置了ACK选项的tcp包,另一些地区则本地总可以收到RST/ACK,原因还不清楚。这些问题希望有兴趣的读者自行研究。

    特定情况下GFW还会伪造通信,例如type2的继发阻断中发送伪造的SYN/ACK企图劫持连接(为什么功能没有开发完全?),再如GFW的邮件检测模块对smtp协议的阻断会先伪造对方发送一条错误信息,再进行阻断。

    URL关键词的检测

    GFW的HTTP关键词检测模块的具体细节不是这里的重点,这里只回顾一些有关关键词检测的内容:

    • GFW有两种不相关的type、GFW结点的划分与TCP包的源端口无关、GFW时常有结点不工作、type1不工作的节点和type2不工作的结点不同。
    • URL关键词同样也有type1、type2之分。
    • 即使单向发送HTTP询问在一些地区可能无法收到GFW的type2 RST/ACK,实际上确实触发了关键词,会有90秒继发封锁。
    • 如果询问的格式是GET http://url HTTP/1.1\r\n\r\n,GFW进行关键词测试串的就是url。
    • 如果询问的格式是GET /url HTTP/1.1\r\nHost: hostname\r\n\r\n,GFW进行关键词测试的串就是.hostname/url。
    • GFW的HTTP URL关键词有普通的字符串关键词还有string1 && string2 && string3型的关键词,例如.google.com && great && firewall。只要url中包含这三个子串,无论出现的顺序如何,都会触发GFW。令人疑惑的是,string1*string2这种关键词匹配(在url中string1、string2顺序出现)判断实现起来要比string1 && string2容易得多,而目前已知的所有非普通关键词都是string1 && string2形式而不是string1*string2形式,是否存在string1*string2形式的关键词需要知道更多的URL关键词。

    判断一个URL是否包含关键词的方法十分明了,选择一个跟本地IP分别在GFW两端的目标IP da,再任意选择一个不等于___的目标端口dp。对(da, dp)单向发送s;a;pa;s。(s = SYN; a = ACK; p = PSH)。为保证GFW按照顺序看到可以将每个包重复发送多遍,两组包间隔一定时间发送。如果触发了type1关键词可以收到GFW的r(RST),触发type2关键词可以收到GFW的sa。无sa或者无r,并不能说明不包含关键词,可能是GFW的相应结点不工作了。这时应该可以对此(da, dp)发送www.youtube.com来尝试触发。触发,说明原本确实没有关键词;否则说明GFW的相应类型的相应结点不工作了。

    对关键词进行手工求解未免太过低效,利用GFW的单向报文检测特性,可以用来进行关键词检测的(da, dp)是几乎无穷多而且便于寻找的,让程序自动检测关键词非常可行。

    • 情况1、假定只有一个关键词。
      • 假设str长len,发起len个询问,第i个询问检测str去掉第i个字符形成的字符串。如果有阻断,说明这个字母可以去掉,否则说明这个字母不能去掉。询问完全并行。拿到所有结果之后可以立刻求出关键词。
      • 理想情况下只要1单位时间。
    • 情况2、假定所有关键词都是普通关键词,求出所有最小关键词。
      • 这种情况下可以进一步假定关键词是互不包含的子串,所以关键词可以定义前后关系。假设str长度为len,发起len个询问,第i个询问去掉前len + 1 - i个字符。求出最大的j使得在去掉前j个字符的情况下仍然有关键词。现在只需要求出从第j+1个字符开始的关键词,发起len - j个询问,第i个询问去掉后len - j + 1 - i个字符。现在求出最大的k使得去掉后k个字符仍然有关键词就完了。最后一个关键词就是str[j + 1..len - k],共花去2单位时间、询问。接下来处理str[1..len - k - 1] with hint: "开头位置 <= j",仍然是倒着测,有助于及时break。
      • 理想情况下时间等于关键词数目。
      • 为了减少(da, dp)的报废数目(短时间报废过多会被迫等待继发封锁结束),可以使用“二级索引”的办法:分sqrt(len)块,然后再精确到块内的位置。这样只是时间*2。
    • 情况3、&&型关键词、可能有多个,求出所有关键词。
      • 即使是求出其中的某一个关键词都是必须串行的,要花len的时间,难以忍受。但是实践中,.google.com && ** 和 search && ** 和 q=** 有可能同时是关键词,而询问作为www.google.com/search?q=**出现。由于此问题可由3-SAT规约到,是NPC问题,认为不可完成,所以从其它方面考虑:
        • 1. 根据经验假设只会出现2个&&,但实现带任意多&&的关键词的匹配算法上并不困难,GFW应该有相应的计算能力。
        • 2. 令s为{1..len}的一个随机置换,顺次考察s[i],如果去掉后仍然触发就去掉,不再触发就保留。最后可以得到一个关键词。多路并行应该就可以求出所有关键词了。尽管到达每个关键词的概率不均匀,实践效果应该可以接受。

    深度检测关键词和其他关键词检测

    GFW对所有通信进行了全文关键词检测,并且可以对gzip、deflate压缩的报文实现实时解压缩判断。进行这种关键词检测,需要事先准备好被测试文本。如果是某网页或者某文件含有深度检测关键词,需要将相应文件下载到本地。与测试URL关键字不同之处就是文件可以非常大。上面的方法几乎行不通。但我们希望先缩小关键词的寻找范围。希望根据GFW的r或者ra包的序列号来定位出现关键词的两个包,这样被检测字符串的长度就被缩小到了不到3000字节,就可以套用上面的方法了。

    由于GFW的r和ra的seq是取自本地发出包的ack,只要对每个包按照发送顺序设置ack。

    展开全文
  • 针对云计算平台的分布式、虚拟化等特点,从深度包检测技术的算法原理和实现框架两方面入手,研究如何将深度包检测技术引入云计算平台,提出深度包检测系统在云计算环境中的系统框架;其根据云后台硬件资源的异构性来...
  • 介绍了关于SCADA安全和工业协议深度包检测的详细说明,提供SCADA的技术资料的下载。
  • 深度包检测 DPI 介绍.pdf
  • 基于Hadoop的深度包检测技术的研究,针对当前深度包检测技术遇到的问题,提出了一种基于Hadoop的深度包检测 方法并设计成系统。该方法利用具有并发处理海量数据的分布式框架Hadoop检测匹配 处理深度包,实现对网络...
  • 介绍了关于SCADA安全和工业协议深度包检测.j的详细说明,提供SCADA的技术资料的下载。
  • DFA(确定性有限自动机)对于实现深度包检测(deep packet inspection,DPI)技术具有重要作用。随着深度包检测规则的不断增多,DFA所需的存储空间急剧增大。为此,提出了一种基于字符替换的DFA压缩算法,利用状态...
  • 计算机网技术,DPI深度包检测技术原理及应用
  • 深度包检测 DPI 介绍

    千次阅读 2020-04-20 13:10:25
    DPI(Deep Packet Inspection)深度包检测技术是在传统IP数据包检测技术(OSI L2-L4之间包含的数据包元素的检测分析)之上增加了对应用层数据的应用协议识别,数据包内容检测与深度解码。 既可以检测2~4层,又可以检测...

    简介

    • DPI(Deep Packet Inspection)深度包检测技术是在传统IP数据包检测技术(OSI L2-L4之间包含的数据包元素的检测分析)之上增加了对应用层数据的应用协议识别,数据包内容检测与深度解码。
    • 既可以检测2~4层,又可以检测应用层。

    背景

    安全问题、流量识别、大数据(海量数据挖掘),推动网络识别技术的发展

    流量识别

    • 指将网络中的数据流识别成对应网络协议的过程。

    常用功能

    • 通过对流量的识别来掌握网络中承载的数据内容
    • 分析出用户的网络行为
    • 同时根据链路状态及功能需求,对网络流量进行限速和控制等处理
    • 通过特征匹配技术,将数据包在封装过程中所添加的各层头部信息解析并提取,然后与已有规则库中特征信息进行匹配,从而进行流量的识别

    • 可以用于识别来自哪个应用,比如:qq、http、pplive

    具体功能

    • 业务识别: 其中第一类业务可以通过五元组来进行识别,此类业务IP地址和端口固定。第二种需要通过DPI技术来进行深度检测,通过解析数据包来确定业务具体内容和信息。

    • 业务控制: 可以根据既定的策略对网络进行配置,从而对业务流实现控制,主要包括转发流向、限制带宽、阻断、整形、丢弃等处理。

    • 业务统计: 深度包检测技术的业务统计功能是基于识别结果的,对一定时间内的流量行为进行统计流量流向、业务占比、访问网站TOPN等。统计应用类型的使用比率调整该业务的服务优先级,统计用户正在使用哪种业务进行视频播放、即时通讯、购物支付以及游戏娱乐,也可以统计出消耗网络带宽的非法P2P、VOIP
      业务等等。

    做法

    • 深度包检测技术可以高效的识别出网络中的各种应用,且能够将识
      别粒度细化到业务的具体动作

    特征识别

    • 提取流量的特征字符串:描述性较差,需要将流量特征进行遍历,才可以将流量全部识别出来,通常使用“正则表达式”来概括性描述,
    • 正则表达式将可能出现的形式进行囊括遍历:此种方式有较强的描述能力,但是识别性能较差,对设备的性能消耗很大。
    • 特定比特流模式:主要是对应用层载荷信息及数据流信息进行识别,此类信息是以十六进制或者二进制形式描述应用层的信息,规则描述性较差,但匹配效率很高。

    架构举例

    • 收包模块
    • 策略配置模块
    • 识别特征下发模块
    • 特征下发模块
    • 规则库更新模块
    • 协议分析模块
    • 结果通知模块
    • 流量统计模块:该模块通过协议分析得到5元组,将5元组交至转发设备,由转发设备统计
      流量并上报数据,最后由DPI输出报表。外置应用查看流量统计接口。

    部署方式

    串接方式

    • 直接将DPI设备以串接的方式部署在网络链路之间。
    • 串接方式以直连的形式接入,不需要进行网络连接配置,直接通过数据链路层二层透传,串接方式对设备性能和可靠性都有很高的要求。
    • 串接方式的优点在于较好的网络控制,能够及时对流量进行阻断和整形。
    • 但是该种方式也引入了故障点的缺陷,为增强设备的可靠性,通常在设备前段加入光路保护器,从而减小在设备升级或故障时对现网的影响

    并接方式

    • 并接方式是采用分光器等设备将网间的信号镜像到旁路的DPI设备当中,并不影响原链路的数据传输。
    • 采用并接方式,通常用于业务的识别和统计,上网日志的留存等,在网络控制方面,只能通过干扰的方式进行流量控制,不能对网络流量进行直接的控制和管理。
    • 对于TCP流,并接方式通过发送reset或6n分组,终止连接来进行控制。
    • 对于UDP流而言,主要是发送伪造分组,劣化通信质量来进行网络干扰。
    • 并接方式可靠性高,对现网业务无任何影响,设备性能要求低,可以适度缓存,流量进行识别即可,没有转发的需求,

    存在问题

    • 设备迭代困难
    • 重复部署
    • 流量重复复制给DPI设备
    • 可视化不足
    • 没能虚拟化

    检测引擎举例

    • 检测引擎自身包括三个部件:协议解析器、算法引擎和检测结果处理,下面主要对其关键部分的协议解析器进行说明。现阶段额度协议解析器的职责主要有:
      1)协议确认: 进入HTTP、HTTPS等协议解析器的条件都是固定端口映射。但越来越多的互联网应用正试图通过80、443等传统端口来逃逸传统网络设备的检测和控制。因此必要的协议确认是防止这种逃逸的前提。

    2)协议切分: 协议切分是在流(会话)的基础上进一步细分出“检测流”或者叫“事物”的概念。例如:HTTP的一次transaction、FTP的一次用户登录行为、SMTP/POP3的一次邮件发送/接收等,都抽象成一条“检测流”。有时一条流可以传输多次检测流,甚至同时有并发的检测流出现。协议切分对于关心检测流的业务模块有着重要意义,例如内容过滤和应用审计。

    3)协议域切分:协议域切分是在最小的粒度上细分报文。将检测流分成Header和Body部分,Header还要细分成各个Field,包含Field Value和Field Data部分。协议域切分有助于判别该头域是否需要检测,判定该头域命中的特征与之定义是否吻合,以及识别提取审计日志信息的关键位置。

    4)解码: HTTP的URI部分和邮件协议的Subject部分等进行了编码,需要协议解析器进行解码,大多数情况下需要我们将解码后的字段送入算法引擎。有些情况又有个别特征基于编码前定义,需要我们将原始字段送入算法引擎,但同时发生会对性能产生一定损耗。

    5)解压缩:HTTP可以用gzip、x-gzip、deflate等方式传送压缩后的数据内容,在用户的配置要求下解析器会将内容解压缩后送入算法引擎,以帮助我们发现压缩数据中的需要被检测出的特征。

    6)SSL卸载:在用户的配置要求下,可以通过SSL卸载技术尽可能还原HTTPS中的原始流量,进行更加全面的检测和控制。

    7)协商协议识别:FTP、SIP以及很多加密方式的P2P协议都采用协商甚至多次协商的方式来进行数据传输。对应的协议解析器需要能够通过控制通道报文的解析识别出协商协议的数据通道的五元组特征,通过协商关联表的匹配来识别其数据通道。

    • 当然,基于这些协议分析完成之后,通过算法引擎可以匹配查找可以发现相关的检测结果,同时送到后续的动作设计模块进行处理。在内核态,DPI支持大量的动作以及它们的组合,各个DPI的业务模块都可以基于规则或者规则分类来配置报文的动作。这些动作包括Permit/deny、Drop丢掉后续报文、Redirect或者发送双向TCP Reset断开连接、生成攻击日志告警等。

    • H3C 的DPI软件引擎具有内存可伸缩特性。DIM用户态可动态感知需要加载软件引擎的单板或者子设备(的内核态)是否有充裕的内存,根据内存剩余情况和用户的配置选择最优的引擎存储方式,然后启动编译线程完成编译下发工作。海量特征的编译下发是一个CPU密集型过程,考虑到可能遇到的配置频繁变更或者特征库升级调度,DIM的编译线程设置了可中断可重入机制,不需要用户等待。

    • 说明,对内存消耗大

     

     

    展开全文
  • 深度包检测引擎研究

    2013-02-25 23:04:22
    深度包检测引擎研究,一片研究所论文,写的不错,免费给大家下载
  • 一种深度包检测引擎的FPGA硬件实现.pdf
  • 深度包检测中一种高效的正则表达式压缩算,开发设计测试人员必备
  • 【多芬诺白皮书系列】SCADA安全的深度包检测rar,【多芬诺白皮书系列】SCADA安全的深度包检测
  • 深度包检测技术的研究设计,用于产品设计人员及测试人员参考
  • 【白皮书】SCADA安全的深度包检测 (中文版)zip,【白皮书】SCADA安全的深度包检测 (中文版)
  • DPI深度包检测技术

    千次阅读 2018-05-29 16:04:50
    深度包检测技术即DPI技术是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到...

    https://www.cnblogs.com/sddai/p/7612841.html  博客园一个大牛

    http://blog.sina.com.cn/s/blog_9c588b710102wstt.html

    https://blog.csdn.net/melody_1314/article/details/7593408

    https://blog.csdn.net/suyouli/article/details/71747661  本文

    深度包检测技术即DPI技术是一种基于应用层的流量检测和控制技术,当IP数据包、TCPUDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。

    深度数据包检测(DPI)

    深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部、IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与之对应的DPI会检查TCP/UDP里面的内容,所以称为深度数据包检测。

    DPI一般是一个硬件或者软件,一般用“旁挂”的方式接入到网络。它会对网络中的每个数据包进行检查,识别出应用层协议,根据识别的协议采取一定的措施(比如记录HTTP访问行为)。对于TCP协议它可以识别完整的TCP交互过程(比如HTTP请求从请求到响应中间会有多次TCP数据包发送)。

    nDPI

    nDPI是一个C语言编写的DPI库,用来实现软件DPI系统。它是从OpenDPI扩展而来,二者的架构和实现基本上差不多。https://github.com/ntop/nDPI此处是它的老巢,大家可以自己下载编译它。怎么编译,它的README写的非常清楚了我就不废话了(唯一一个文档~~囧)。

    编译安装之后它生成/usr/local/lib/libndpi.(a,so)库文件(a静态库文件,so动态链接库);/usr/local/include/会安装相关的头文件。

    我个人喜欢用 静态库文件,这样会把所有的二进制代码合并到一个可执行文件中运行的时候不需要安装一大堆库。另外我也不喜欢把东西放到/usr/local/lib下,所以我提供的代码是通过cmake做了一个“all in one”的编译。github上放到是1.6版本的,如果你想更新代码只要替换src文件夹就行了。

    如何用nDPI

    nDPI的代码写的很烂,也没有什么架构就是一团乱麻(其实稍微写写都要比这个好)。但是它至少还能正常工作而且是唯一一个“开放”的DPI库,所以无论什么原因你选择了它都必须忍受它的“丑陋”。

    nDPI几乎没有文档说明,只带了一个“ndpiReader”的例子,写的“洋洋洒洒”如行云流水一般(就不吐槽了)。这就是我这篇文章的写作原因,希望能给使用nDPI的同学一点帮助。

    初始化

    nDPI最重要的一个数据结构是ndpi_detection_module_struct_t它通过ndpi_init_detection_module构造出来

    第一个参数用来计算nDPI分析协议的各种超时时间,一般精确到毫秒就可以了1000(nDPI协议分析部分和“全局部分”耦合非常紧,这个数据其实只有“协议分析模块”需要)

    第二个、三个参数是封装过的“内存分配”函数;nDPI的内存管理非常乱,有些地方是我们自己申请内存而由nDPI内部帮我们释放。所以必须nDPI并不直接使用malloc、free之类的申请、释放内存而是交由程序员自己提供函数;

    第三个参数是调试函数,如果定义了NDPI_ENABLE_DEBUG_MESSAGES那么nDPI会调用这个函数输出一些调试信息;

    所有的nDPI API都是这种“鬼畜”风格,几乎是各种纠结。。。万幸我们只需要使用很少的API就可以完成任务了。

    配置协议分析模块

    nDPI支持多种协议,都在protocols文件夹中。编译的时候所有协议都会被放到nDPI库中。使用的时候我们可以自己设置需要开启那些分析模块

    NDPI_PROTOCOL_BITMASK定义开启协议的“位图”,通过NDPI_BITMASK_ADD函数可以添加支持的协议,最后调用ndpi_set_protocol_detection_bitmask2配置位图。

    ndpi_set_protocol_detection_bitmask2函数的第一个参数就是ndpi_detection_module_struct_t(上面我们初始化的那个数据结构);第二个参数是位图标志。

    特别注意:开启的协议越多识别速度越慢;nDPI识别协议的时候是一个串行结构,无论是否被成功是被都会认认真真遍历完我们配置好的协议

    子协议

    子协议是某个协议的细分,比如我们想要分析所有“Google”的HTTP请求那么第一步是分析出“HTTP”请求,第二步是判断HOST包含google.com。这里的第二步就是“子协议”。

    nDPI唯一的一份“QuickStartGuide”对这个有进一步解释,子协议识别是以配置文件的方式提供给nDPI的。比如

    它还支持端口的方式(TCP的81、8181直接被标记为HTTP不再做内容检测)

    nDPI此处的实现使用了一个非常有名的算法—— Aho-Corasick。以第一幅图为例子,里面配置了两条规则“Google”和“Veneer”,我们有一个字符串(HOST),怎么判断这个字符串符合那个规则呢?最简单的办法是循环所有的规则,如果规则条目很多那么速度会非常慢。Aho-Corasick就是这样一种算法,它可以在O(n)中完成所有的匹配任务。

    通过ndpi_load_protocols_file函数加载“子协议”。

    开始识别

    识别协议的API非常简单——ndpi_detection_process_packet函数。就是这个坑爹的函数,变态程度几乎可以说用令人发指来形容。

    • ndpi_struct全局的结构体
    • flow比较特殊,我们后面讲
    • packet指向IP头部的指针
    • packetlen数据包大小
    • current_tick_l当前时间(精确到毫秒)用于判断“过期的TCP请求”
    • src,dst其实没有什么用途,文档上说是跟状态机有关其实没有半毛钱关系。唯一的用途是更新“分析协议”的配置。一般设置为NULL就行了

    TCP协议是一个流(flow)式的协议,经过从三次握手开始通讯双方都是“请求->响应”的结构。DPI可以跟踪其中的一个或者几个数据包,也可以实现全部跟踪(后续我会交叉使用TCP会话、会话、flow,三个名词其实是一样的)。

    nDPI内部不会记录完整的TCP数据包,而是用一个定义非常模糊的ndpi_flow_struct类型来表示一个TCP会话(这个数据结构还包含了“协议分析”部分数据,所以定义非常模糊)。为了便于分析完整的TCP请求我们定义了一个自己的数据结构dpi_flow_t,ndpi_flow_struct作为它的一个成员。用伪代码表示分析过程:

    落到代码上就是get_ndpi_flow函数;实现上我们会对目标、源端口排序再做hash;这是由于数据包是“相互通讯”的所以发送方、接收方是相对而言,否则识别到的可能是“一方”的数据。

    一般我们用一个二叉树存放所有正在分析的TCP会话,nDPI移植了FreeBSD中的一组函数ndpi_tfind、ndpi_tsearch、ndpi_twalk、ndpi_tdelete等用来实现常用的数据结构操作。

    完成分析

    调用完ndpi_detection_process_packet函数后我们需要检查返回值,如果它不等于NDPI_PROTOCOL_UNKNOWN证明就找到了协议类型。

    DPI分析一般分为三种情况:

    • 第一个数据包就能确定协议类型,这种情况下找到“协议类型”后续直接把flow从二叉树中删除
    • 第N个数据包确定协议,flow数据包会一直存在在二叉树中,直到知道协议类型。这种情况下每次我们调用ndpi_detection_process_packet传递的flow其实是相同的数据
    • 一直无法确定协议类型,flow经历过一段时间之后超时,我们认为无法识别出协议释放相关数据。

    前两种情况可以合二为一,都是判断出协议类型后释放资源;第三种请比较特殊,我们需要遍历整个二叉树寻找“过期”的flow然后删除。这就是例子中最后一部分的含义(遍历的时候我们每次寻找一个flow,用变量idle_scan_idx表示)。


    展开全文
  • 可编程高速深度包检测系统的设计与实现,王方驰,,为应对日益复杂的网络环境,本文提出了一种基于专用多核网络处理器的数据包内容检测系统。本文首先介绍了系统使用的Cavium多核网络
  • 行业分类-物理装置-基于深度包检测的数据处理方法、装置和网络设备.zip
  • 行业分类-电子电器-基于深度包检测的数据处理方法、装置和网络设备.zip
  • 全球DPI观察之一:深度包检测是驯服P2P流量的法宝 .pdf
  • 在此基础上,提出了一种面向高效深度包检测的启发式正则表达式分组算法REG-EDPI。采用贪婪策略构造初始解,引入移除参数进行迭代优化。实验表明相比于其他算法,REG-EDPI算法能够在合理的运行时间内,获得更优的分组...
  • 行业分类-设备装置-基于Hadoop平台的深度包检测系统及方法.zip
  • 深度包检测需求进行了分析,从安全网关的体系结构出发,提出了深度包检测引擎的工作流程和实现框架。
  • 深度包检测(DPI)

    热门讨论 2009-09-10 23:46:28
    深度包检测源代码。(当然效率不好,想用于产品,很多要改进)
  • 为了提高网络入侵检测速度和稳定性,提出了一种基于多线程的混合深度包检测方法。该方法首先采用正则表达式的线性系数来对规则集中的正则表达式进行分组,然后对不同正则表达式组采用不同压缩技术进行状态位压缩,...
  • openDIP深度包检测技术

    千次阅读 2015-05-22 09:58:48
    DPI的意思是深度包检测。从理论上看openDPI的性能要好于L7。你是不是急于上他们的网站呢?openDPI的网站是:http://www.opendpi.org。这是一个开源软件,但是当你访问他们的网站后,你会发现并不提供任何下载!给出...
    前几日,群里有人提到 L7的问题。L7是一个用于检测第七层协议的软件,早已经停止了开发。后来,这个团队组织开发了openDPI。DPI的意思是深度包检测。从理论上看openDPI的性能要好于L7。你是不是急于上他们的网站呢?openDPI的网站是:http://www.opendpi.org。这是一个开源软件,但是当你访问他们的网站后,你会发现并不提供任何下载!给出的链接是指向一个商业公司的产品。
           这个项目已经在很久前关闭了源代码的下载!
           是不是很失望?
           不要紧,既然你看到了这篇文章,当然不会白看。我研究这个项目有写时间了。在他们关闭下载前已经下载了源代码。请到360网盘里获取: http://l13.yunpan.cn/lk/Qv78U4TsAjjNi    
        
           这个深度包检测分为3大部分:
            一、包获取部分。
            与所有的开源系统一样,这个软件本质上也是个演示版(你不要沮丧,大部分的LINUX软件都是这样的)。OPENDPI的报文获取使用了PCAP库。这个库的性能如何,大家可以到网上去搜搜。但是,这个库的功能确实非常强大的,可以大幅度的简化编程工作量,对于测试网络分析程序而言非常方便。我个人是非常喜欢这个框架的。
            由这个PCAP负责获取报文,然后递交给DPI模块进行进一步的分析。

            二、包分析部分。
            这是OPENDPI的核心,他比L7要复杂的多。这部从PCAP获得原始的包后,进行分析。目前可以识别包括迅雷、QQ等很多常见的应用。我实际测试过,可以限制迅雷,可以限制QQ。但是,这类软件发展很快,就在我试验的时候,最新的QQ已经不能识别了,通过修改识别代码,才可以设别最新的QQ。

            三、动作部分。
            识别后的流量被进行标记。接下来,你知道怎么做了吧。就是对标记进行限速或者阻断。这是IPTABLES干的事情,OPENDPI提供了一个与IPTABLES的接口,也在上面的网盘里。

        nDPI是一套由ntop维护的、超越了流行的OpenDPI的库。  在GPL许可下发布。它有针对性的对只有在OpenDPI收费版本才支持的协议进行了扩展。除了UNIX平台外,它还支持Windows,为你提供了交叉平台的DPI经验。此外,还可以修改nDPI,禁止某些非必要的使DPI引擎变慢特性,以更好的适应流量监控应用。

        ntop和nProbe都是用了nDPI来增加应用成协议识别,而不用管所使用的端口。这个意思就是说它既可以侦测非标准端口的已知协议(例如,非80端口上的http),相反也可以侦测80端口上的Skype流量。这就意味着当前的所谓端口=应用的概念不再成立了。

        我们一直持续的扩展nDPI,迄今(截止到2012年4月)为止已经支持了如下协议:

    • FTP
    • POP
    • SMTP
    • IMAP
    • DNS
    • IPP
    • HTTP
    • MDNS
    • NTP
    • NETBIOS
    • NFS
    • SSDP
    • BGP
    • SNMP
    • XDMCP
    • SMB
    • SYSLOG
    • DHCP
    • PostgreSQL
    • MySQL
    • TDS
    • DirectDownloadLink
    • I23V5
    • AppleJuice
    • DirectConnect
    • Socrates
    • WinMX
    • MANOLITO
    • PANDO
    • Filetopia
    • iMESH
    • Kontiki
    • OpenFT
    • Kazaa/Fasttrack
    • Gnutella
    • eDonkey
    • Bittorrent (Extended)
    • OFF
    • AVI
    • Flash
    • OGG
    • MPEG
    • QuickTime
    • RealMedia
    • Windowsmedia
    • MMS
    • XBOX
    • QQ
    • MOVE
    • RTSP
    • Feidian
    • Icecast
    • PPLive
    • PPStream
    • Zattoo
    • SHOUTCast
    • SopCast
    • TVAnts
    • TVUplayer
    • VeohTV
    • QQLive
    • Thunder/Webthunder
    • Soulseek
    • GaduGadu
    • IRC
    • Popo
    • Jabber
    • MSN
    • Oscar
    • Yahoo
    • Battlefield
    • Quake
    • Second Life
    • Steam
    • Halflife2
    • World of Warcraft
    • Telnet
    • STUN
    • IPSEC
    • GRE
    • ICMP
    • IGMP
    • EGP
    • SCTP
    • OSPF
    • IP in IP
    • RTP
    • RDP
    • VNC
    • PCAnywhere
    • SSL
    • SSH
    • USENET
    • MGCP
    • IAX
    • TFTP
    • AFP
    • StealthNet
    • Aimini
    • SIP
    • Truphone
    • ICMPv6
    • DHCPv6
    • Armagetron
    • CrossFire
    • Dofus
    • Fiesta
    • Florensia
    • Guildwars
    • HTTP Application Activesync
    • Kerberos
    • LDAP
    • MapleStory
    • msSQL
    • PPTP
    • WARCRAFT3
    • World of Kung Fu
    • MEEBO
    •  FaceBook
    •  Twitter
    •  DropBox
    •  Gmail
    •  Google Maps
    •  YouTube
    •  Skype
    •  Google
    •  DCE RPC
    •  NetFlow_IPFIX
    •  sFlow
    •  HTTP Connect (SSL over HTTP)
    •  HTTP Proxy
    •  Netflix
    •  Citrix
    •  CitrixOnline/GotoMeeting
    •  Apple (iMessage, FaceTime…)
    •  Webex
    •  WhatsApp
    •  Apple iCloud
    •  Viber
    •  Apple iTunes
    •  Radius

     

        处理加密内容

    -------------------------------------------------------------------------

        互联网正在朝着使用SSL来加密内容的方向发展。为了让nDPI支持加密连接,我们添加了针对SSL(包括客户端和服务端)证书解密模块。这样,我们就可以找出协议使用的加密证书。这允许我们可以鉴别诸如Citrix在线和苹果iCloud这样的不能被发现的协议。

     

    下载源代码

    ---------------------------



    展开全文
  • 工业协议深度包检测在控制系统信息安全中的应用-多芬诺工业防火墙解决方案rar,工业协议深度包检测在控制系统信息安全中的应用-多芬诺工业防火墙解决方案
  • 提出了一种应用于深度包检测的改进XFA。该算法在XFA的分支迁移边上添加判断指令,消除XFA存在冗余迁移边的问题;采用并行检测机制,将匹配线程升级为两个并行的线程,预统计线程和状态机匹配线程,加快匹配速度。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,081
精华内容 50,032
关键字:

深度包检测