Libnids(Library Network Intrusion Detection System)是一个网络入侵检测开发的专业编程接口。它实现了基于网络的入侵检测系统的基本框架,并提供了一些基本的功能。使用Libnids可以快速地构建基于网络的入侵检测系统,并可以在此基础上进一步扩展开发。Libnids实现了入侵检测系统的底层功能,使开发者可以专注于高层的功能开发。

Libnids是基于Libpcap和Libnet而开发的,所以它具有Libpcap和Libnet的优点,具有较强的移植性,效率高,使用简单。Libnids是仿造Linux 2.0.x内核中的TCP/IP协议部分而实现的,具有高可靠性,并通过了许多测试。

Libnids的主要功能包括捕获网络数据包、IP碎片重组、TCP数据流重组及端口扫描攻击测试和异常数据包测试等。Libnids使用了Libpcap捕获数据包的功能,可以设定过滤规则,指定捕获感兴趣的数据包。IP碎片重组是Libnids的一个重要内容,它是仿照Linux内核中的IP重组而实现的,所以非常可靠。Libnids提供了TCP数据流重组功能,这是Lipcap所不具备的,利用TCP数据流重组,可以分析基于TCP协议的各种应用层协议。另外,Libnids还提供了检测TCP端口扫描攻击的功能,检测异常数据包的功能,这是入侵检测系统(IDS)最基本的功能。

Libnids是Rafal Wojtczuk开发的,对于我目前使用的是在Windows平台下所对应的开发包,Libnids-W32-1.19 版本的,目前应该来说是最新的,http://www.packetstormsecurity.org/UNIX/IDS/Libnids-W32-1.19.tar.gz,这个是下载地址,顺便说句,对于英文的东西,还是觉得Google的技术更好些,百度在这方面,不是他的专长了,险些没有找到下载地址。

Libnids的使用范围

Libnids使用了Libpcap。所以他具有捕获数据包的功能,利用Libnids可以轻松地实现对数据包的捕获,对其进行分析。同时,Libnids提供了TCP数据流重组功能,所以对于分析基于TCP协议的各种协议Libnids都能胜任。Libnids还提供了对IP分片进行重组的功能,以及端口扫描检测和异常数据包检测功能,所以它对于分析网络异常情况也是非常有效的。总结起来,Libnids可以用在以下几个方面。当然,良好的扩展性可以给我们带来更多的惊喜。

一、入侵检测系统

Libnids的设计是作为入侵检测系统的一个部件来设计的,它实现了入侵检测系统中非常基础的功能,如数据包捕获、协议分析接口等。另外,它还专门针对入侵检测系统的特性,实现了TCP数据流重组功能,这对于分析准对TCP协议的各种攻击是很有效的。还有,它已经实现了IP碎片重组功能、对异常数据包的检测功能以及对TCP端口扫描的检测功能。最重要的是,Libnids为入侵检测系统更深入的开发提供了开发接口。因此,开发人员可以更关注于对入侵检测技术的研究,而不用考虑底层的实现细节。

二、网络协议分析

Libnids是在Libpcap的基础上开发的,所以它具备了Libpcap的功能,可以实现各种协议的分析,并在Libpcap的基础上开发了更多的功能,如TCP数据流重组。这样,在利用Libnids分析基于TCP协议的各种协议时,不仅可以分析各种单个TCP数据包,而且可以分析整个TCP连接过程。这对于分析FTP协议,HTTP协议,POP3协议等基于TCP的应用层协议是非常有帮助的。

三、网络嗅探

网络嗅探也成网络监视,主要是指检测网络信息,查看网络内容。针对不同的目的,有各种各样的故障,它可以利用网络嗅探技术来实现。对于网络非法攻击者来说,为了获得敏感信息,他也可以利用网络嗅探技术来获取他所需要的内容,如,密码、用户、帐号等。后面,读者将可以看到,利用Libnids可以轻松获取很多协议传输的用户和密码。所以说,Libnids是一把双刃剑。除此之外,利用Libnids还可以重现网络内容,还原网络数据,如重现HTTP协议中传输的网页,POP3协议中传输的电子邮件等。


我们要用它在Windows下开发,同样需要注意的就是要设置好我们需要的Include和Lib库了,大概需要Libnids.lib Wpcap.lib wsock32.lib

Libnids(Library Network Intrusion Detection System) .的更多相关文章

  1. 开源网络准入系统(open source Network Access Control system)

    开源网络准入系统(open source Network Access Control system) http://blog.csdn.net/achejq/article/details/5108 ...

  2. Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)

    使用Volley传输网络数据(Transmitting Network Data Using Volley) Volley 是一个 HTTP 库,它使得在Android应用程序中操作网络更容易,是重要 ...

  3. 在Caffe中使用 DIGITS(Deep Learning GPU Training System)自定义Python层

    注意:包含Python层的网络只支持单个GPU训练!!!!! Caffe 使得我们有了使用Python自定义层的能力,而不是通常的C++/CUDA.这是一个非常有用的特性,但它的文档记录不足,难以正确 ...

  4. 从时序异常检测(Time series anomaly detection algorithm)算法原理讨论到时序异常检测应用的思考

    1. 主要观点总结 0x1:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...

  5. HDFS分布式文件系统(The Hadoop Distributed File System)

    The Hadoop Distributed File System (HDFS) is designed to store very large data sets reliably, and to ...

  6. MBMD(MobileNet-based tracking by detection algorithm)作者答疑

    If you fail to install and run this tracker, please email me (zhangyunhua@mail.dlut.edu.cn) Introduc ...

  7. 网络分析法(Analytic Network Process,ANP)

    什么是网络分析法 网络分析法(ANP)是美国匹兹堡大学的T.L.Saaty教授于1996年提出的一种适应非独立的递阶层次结构的决策方法,它是在层次分析法(Analytic Hierarchy Proc ...

  8. 入侵检测基本准则(Basic principles of intrusion detection)【v1.0】

    所谓“入侵检测”,顾名思义,就是对入侵行为的发觉.他通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象.” 但实际上,所谓的“违 ...

  9. 2020国防科大综述:3D点云深度学习——综述(3D点云分割部分)

    目录 摘要 1.引言: 2.背景 2.1 数据集 2.2评价指标 3.3D点云分割 3.1 3D语义分割 3.1.1 基于投影的方法 多视图表示 球形表示 3.1.2 基于离散的方法 稠密离散表示 稀 ...

随机推荐

  1. Nutch源码阅读进程5

    看nutch的源码仿佛就是一场谍战片,而构成这精彩绝伦的谍战剧情的就是nutch的每一个从inject->generate->fetch->parse->update的环节,首 ...

  2. BZOJ.4816.[SDOI2017]数字表格(莫比乌斯反演)

    题目链接 总感觉博客园的\(Markdown\)很..\(gouzhi\),可以看这的. 这个好像简单些啊,只要不犯sb错误 [Update] 真的算反演中比较裸的题了... \(Descriptio ...

  3. (android高仿系列)今日头条 --新闻阅读器 (转载)

    非常不错,原文地址:http://blog.csdn.net/vipzjyno1/article/details/26514543

  4. 负载均衡介绍及Nginx简单实现

    负载均衡介绍及Nginx简单实现 负载均衡 负载均衡介绍及Nginx简单实现 1. 介绍 2. 常用的开源软件 2.1 LVS 优点 缺点 2.2 Nginx 优点 缺点 3. 常用的开源反向代理软件 ...

  5. Codeforces Round #396 (Div. 2) B. Mahmoud and a Triangle 贪心

    B. Mahmoud and a Triangle 题目连接: http://codeforces.com/contest/766/problem/B Description Mahmoud has ...

  6. Jenkins官方教程地址入口

    https://jenkins.io/doc/book/ 其实Jenkins的核心在于插件,官方教程只能是基本简单的,所以要找教程最好对应插件来找.

  7. ADO.NET理论+实践

    题记: 每一事物的产生和存在都有其特定的理由.  理论:ADO.NET是一组与数据源进行交互的面向对象类库.通常情况下数据源就是数据库,当然同样也能是文本文件,Excel表格或XML文件,我们知道的数 ...

  8. [Bug]Unable to start process dotnet.exe

    This morning I did a sync of a repo using of Visual Studio and then tried to run a web application I ...

  9. linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  10. WSAEventSelect模型编程 详解

    转自:http://blog.csdn.net/wangjieest/article/details/7042108 WSAEventSelect模型编程 WSAEventSelect模型编程这个模型 ...