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. oracle中listagg()和wmsys.wm_concat()基本用法

    一.LISTAGG() 简介 介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接. 其中,“[,]”表示字符串连接的分隔符,如果选择使用[over (parti ...

  2. 【BZOJ-2595】游览计划 斯坦纳树

    2595: [Wc2008]游览计划 Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 1518  Solved: 7 ...

  3. 【BZOJ-2329&2209】括号修复&括号序列 Splay

    2329: [HNOI2011]括号修复 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 1007  Solved: 476[Submit][Statu ...

  4. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  5. php里面bcadd是什么意思

    PHP 为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述 bcadd — 加法bccomp — 比较bcdiv — 相除bcmo ...

  6. Android内存机制分析——堆和栈

    昨天用Gallery做了一个图片浏览选择开机画面的功能,当我加载的图片多了就出现OOM问题.以前也出现过这个问题,那时候并没有深究.这次打算好好分析一下Android的内存机制. 因为我以前是做VC+ ...

  7. MyEclipse 2014 for Mac 在Yosemite怎樣安裝

    相信大家都在安裝MyEclipse 2014 for Mac時候會遇到提示虚拟内存为0,,无法安装...小弟找了解決方法...1. 先下載軟件及破解檔案.   http://pan.baidu.com ...

  8. 基于设备树的TQ2440 DMA学习(1)—— 芯片手册

    作者 彭东林pengdonglin137@163.com 平台 TQ2440内核Linux4.9 概述 一直想抽时间学习一下DMA驱动,今天就以S3C2440为例,这款芯片的DMA控制器足够简单,也比 ...

  9. Delphi的命令行编译命令

    Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...

  10. log4j deadlock

    用了这么久的Log4j这次倒下了,而且官方也还没有给出解决方案. 描述:tomcat 经过一天多时间的访问,出现了hang ,使用 Jstack 查看堆栈后,发现现成 blocked ,主要是 Log ...