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. leetcode 二叉搜索树中第K小的元素 python

          二叉搜索树中第K小的元素     给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元 ...

  2. 正睿OI 提高 Day1T3 ZYB玩字符串(DP)

    题目链接 设可能的答案串为p,长为len.p一定是s的一个子串且len|n. 虽然一些p在s中可能被断成若干段,但删掉其中的若干段后,这段区间一定会被全部消掉. 于是枚举p后,可以用f[i][j]表示 ...

  3. BZOJ.1923.[SDOI2010]外星千足虫(高斯消元 异或方程组 bitset)

    题目链接 m个方程,n个未知量,求解异或方程组. 复杂度比较高,需要借助bitset压位. 感觉自己以前写的(异或)高斯消元是假的..而且黄学长的写法都不需要回代. //1100kb 324ms #i ...

  4. Develop with asyncio部分的翻译

    Develop with asyncio 异步程序和普通的连续程序(也就是同步程序)是很不一样的,这里会列出一些常见的陷阱,并介绍如何去避开他们. Debug mode of asyncio 我们用a ...

  5. 【BZOJ-4530】大融合 线段树合并

    4530: [Bjoi2014]大融合 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 280  Solved: 167[Submit][Status] ...

  6. YAML文件中在单一文件中区分多个文件

    1.在单一文件中,可用连续三个连字号(---)区分多个文件. 2.另外,还有选择性的连续三个点号( ... )用来表示文件结尾. 题外:YAML其实语法很多也很灵活,但是针对Spring支持的语法其实 ...

  7. 玩转ptrace(转)

    下面是转帖的内容,写的很详细.但是不同的linux发行版中头文件的路径和名称并不相同.如在某些发行版中<linux/user.h>就不存在,其中定义的变量出现在<asm/ptrace ...

  8. 使用WindowsAPICodePack实现翻译功能

    仅限于以下几种语言间的翻译: 在我的另一篇博文<图片批量压缩>中,有介绍WindowsAPICodePack库,该库是微软提供的一套基于Win7及以上版本操作系统的系统库,可以帮助我们完成 ...

  9. HDU 3979 Monster (贪心排序)

    Monster Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  10. NXP ARM Vector Table CheckSum

    Signature Creator for NXP Cortex-M Devices Algorithm for creating the checksum The reserved Cortex-M ...