信息安全产品开发实践

上传人:小*** 文档编号:250661600 上传时间:2024-11-03 格式:PPT 页数:20 大小:284.50KB
返回 下载 相关 举报
信息安全产品开发实践_第1页
第1页 / 共20页
信息安全产品开发实践_第2页
第2页 / 共20页
信息安全产品开发实践_第3页
第3页 / 共20页
点击查看更多>>
资源描述
单击鼠标编辑大纲正文格式,第二个大纲级,第三个大纲级,第四个大纲级,第五个大纲级,第六个大纲级,第七个大纲级,第八个大纲级,第九个大纲级,单击鼠标编辑标题文的格式,*,单击鼠标编辑标题文的格式,*,单击鼠标编辑大纲正文格式,第二个大纲级,第三个大纲级,第四个大纲级,第五个大纲级,第六个大纲级,第七个大纲级,第八个大纲级,第九个大纲级,利用,libnids,构建入侵检测系统,(1),四川大学 软件学院,2009,09,助教,姓名,QQ,号 邮箱,罗云,814314989 ,王亮,354185558 ,王正霞,593910963 xiaxia_,李雯,908441949 win_,3,主要内容,讲解,Libnids,的数据结构函数,并给出一些具体的例子,同学们在此基础上实现一个简单的协议分析程序或是一个简单的入侵检测系统,4,什么是,libnids,Libnids,是一个基于网络入侵检测开发的专业编程接口。我们利用,Libnids,可以实现,:,网络数据包的捕获,;,IP,碎片重组、,TCP,流数据重组,;,入侵检测。,5,Libnids,的安装,安装,Libnids,必须要有,Libpcap,、,Libnet,库的支持,所以要想是试用,Libnids,必须按照,Libpcap,、,Libnet,与,Libnids,的顺序安装这三个软件包,安装方法:,1,)下载源码包;,2),释放归档文件;,3,),./configure;make;make install,6,Libnids,编程模型,#include“nids.h”,main(),application private processing,not related to libnids,optional modification of libnids parameters,if(!nids_init()somethings wrong,terminate;,registration of callback functions,nids_run();,/not reached in normal situation,7,Libnids,基本数据结构(,1,),TCP,连接参数,struct tuple4,/*,源端口和目的端口*,/,unsigned short source,dest;,/*,源地址与目的地址*,/,unsigned long saddr,daddr;,;,8,Libnids,基本数据结构(,2,),TCP,连接单端信息,struct half_stream,用,23,个变量了描述,TCP,连接信息,.,;,9,Libnids,基本数据结构(,3,),Char state;,表示套接字的状态,如,TCP_CLOSE,、,TCP_ESTABLISHED;,char collect;,用来指示本端是否接收数据,,0,将数据存放在,data,指向的字符缓冲区,,0,忽略进入本端的数据;,char collect_urg;,用于指示本端是否接受紧急数据;,char*data;,字符缓冲区,用于存放流向本端的数据,int count;,用于指示连接建立后本端已经接受的字节数;,10,Libnids,基本数据结构(,4,),int offset:,表示,存储在,data,中数据的第一个字节的偏移量;,int count_new;,用于指示是否有新数据到达本端,为,0,表示没有新数据,char count_new_urg;,用于指示是否有新的紧急数据到达本端,为,0,表示没有新的数据,11,Libnids,基本数据结构(,5,),TCP,连接完整信息,struct tcp_stream,struct tuple4 addr;,char nids_state;,struct half_stream client,server;,;,12,Libnids,基本数据结构(,6,),addr:,用于表示一个,TCP,连接的四个重要信息;,nids_state:,表示连接的逻辑状态,共有六种状态:,NIDS_JUST_EST,NIDS_CLOSE,NIDS_RESET,NIDS_TIMED_OUT,NIDS_EXITING,NIDS_DATA,13,Libnids,基本数据结构(,6,),成员,client,表示客户端信息,成员,server,表示客户端信息。,14,Libnids,库中常用函数(,1,),int nids_init(void),函数成功返回,1,,失败返回,0,函数功能:对,libnids,进行初始化,包括打开网络接口,打开文件,编译过滤规则、设置过滤规则、判断网络链路层信息,15,Libnids,库中常用函数(,2,),Void nids_run(void);,此函数的功能是运行,libnids,进入循环捕获数据包的状态,并将捕获的数据包交给注册的回调函数进行处理,16,Libnids,库中常用函数(,3,),注册函数:针对,IP,、,TCP,、,UDP,协议分为三类注册函数,IP,注册函数,void nids_register_ip(void(*),注册一个可以处理,IP,数据包的函数,该函数的定义类型如下:,void ip_function(struct ip*a_packet),其中,a_packet,表示的是所捕获的,IP,数据包,17,Libnids,库中常用函数(),TCP,注册函数,void nids_register_tcp(void(*),回调函数的形式为:,void tcp_callback(struct tcp_stream*ns,void*param),其中,ns,表示一个全连接的所有信息,,param,表示要传递的参数,,18,Libnids,库中常用函数(,5,),UD,注册函数,void nids_register_udp(void(*);,回调函数的形式是,void udp_callback(struct tuple4*addr,char*buf,int len,struct ip*iph);,addr,用于表示接收与发送端的,IP,地址与端口,,buf,表示,UDP,协议负载数据的内容,参数,len,表示,UDP,负载数据的长度,,IPH,表示一个数据包,包括首部,首部以及负载,19,Libnids,库中常用函数(,6,),Void nids_killtcp(struct tcp_stream*a_tcp),函数功能:终止,TCP,连接,Void nids_discard(struct tcp_stream*a_tcp,int num),函数的功能是丢弃,num,字节的,TCP,数据,用于存储更多的数据,20,试验,阅读与理解,libnids,给出的例子程序,sniff,和,printall,(在,sample,目录),在此基础上,修改,printall,程序:,1,、在,TCP,进入其状态时,打印对应的状态信息;,2,、修改对应的打印语句,将非可打印字符以,.,代替;,课后要求:熟悉,Libnids,库中的数据结构与函数,为下节课的构造入侵检测系统作好准备。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!