014-项目概要设计报告

上传人:仙*** 文档编号:63078374 上传时间:2022-03-17 格式:DOCX 页数:19 大小:503.68KB
收藏 版权申诉 举报 下载
014-项目概要设计报告_第1页
第1页 / 共19页
014-项目概要设计报告_第2页
第2页 / 共19页
014-项目概要设计报告_第3页
第3页 / 共19页
资源描述:

《014-项目概要设计报告》由会员分享,可在线阅读,更多相关《014-项目概要设计报告(19页珍藏版)》请在装配图网上搜索。

1、哈尔滨工程大学信息安全研究中心 HEUISRC-RDT-014哈尔滨工程大学信息安全研究中心项目概要设计报告编号:HEUISRC-RDT-014版本:1.1密级:编 写:吕敬辉-郝建波-贺婷日 期:检 查:日 期:审 核:日 期:批 准:日 期:版本日 期作者修 订 要 点1.02007-03-20杨武文件建立1.12007-03-21杨武内容及文档结构修订目 录目 录I一、引言11.1编写目的11.2项目背景11.3术语11.4参考资料1二、任务概述12.1系统描述12.2开发与运行环境12.2.1开发环境的配置12.2.2运行环境的配置12.2.3测试环境的配置22.3需求概述22.4条件

2、与限制2三、总体设计23.1系统设计原则23.2系统网络结构23.3实现框架与处理流程23.4结构模块设计33.5功能需求与程序模块的关系43.6尚未解决的问题4四、接口设计44.1外部接口44.2内部接口4五、数据结构设计55.1逻辑结构设计55.2物理结构设计65.3数据结构与程序代码的关系6六、数据库设计6七、用户界面设计7八、出错处理设计78.1出错输出信息78.2出错处理对策7九、安全保密设计89.1数据传输安全性设计89.2应用系统安全性设计89.3数据存储安全性设计8十、维护设计8- I -一、引言1.1编写目的 对网络数据流异常检测系统的整体开发进行概要设计,为系统编程提供基础

3、支持。1.2项目背景 项目名称网络数据流异常检测,该项目主要对网络数据出现大的流量变化,尤其对syn、fin、ping、端口和主机不可达事件进行异常检测并报警。1.3术语缩写、术语解 释libPcap捕包库函数MySQL数据库C+ builder界面编程ODBC数据库访问接口标准adsystem服务器端数据库名Newadsystem本地绑定远程数据库的系统数据源变量1.4参考资料 二、任务概述2.1系统描述后台:1)本系统能够对网络出入口的数据包进行分析,统计出TCP、UDP、ICMP等协议以及TCP-SYN事件、TCP-FIN事件、ICMP_PING事件、ICMP_3.1事件(主机不可达事件

4、)、ICMP_3.3事件(端口不可达事件)的包的数量。2)通过异常检测算法,对这些统计数量进行异常检测。根据统计结果用自回归模型对网络数据流量进行预测,当某时刻数据流和预测结果不同时触发报警事件。数据库:将统计量、异常信息存入数据库中前台:1)进行通讯:发送给后台登录、检测、关闭的标识;接收后台数据,包括登录标识、流量包统计数及异常报警标识。2)对数据解析之后,对用户的不同类型检测的要求进行实时动态曲线的描绘;3)对异常事件进行报警4)对历史流量及异常信息进行数据库查询2.2开发与运行环境Linux操作系统平台C+ builder、MySQL数据库提供各种端口扫描的机器2.2.1开发环境的配置

5、类别标准配置最低配置计算机硬件计算机软件Linux、Windows操作系统、mysql数据库管理工具、c+ builder前台开发工具网络通信ODBC其它2.2.2运行环境的配置类别标准配置最低配置计算机硬件计算机软件Linux、Windows操作系统、mysql数据库管理工具网络通信ODBC其它2.2.3测试环境的配置计算机软件:Linux、Windows操作系统、mysql数据库管理工具网 络通 信:ODBC2.3需求概述用户登录:用户输入服务器地址、用户名、密码访问,验证用户权限是否正确用户其他操作:用户的其他操作需要并行进行。包括四个部分,介绍如下:1、动态实时曲线描绘:1) 配置信息

6、,用户可自己配置流量统计时间间隔,根据不同的流量类型,设置曲线图的数据显示高度,同时可设置曲线图的显示宽度(辅助设计);2) 对于各项值,需要提供默认值,尤其数据显示高度,需根据以往的数据流量值给出一个不同类型协议或事件的参考值;3) 完成信息的配置,启动检测,则在设置的时间间隔内开始描点;4) 曲线的描绘:曲线为动态波动、有规律进行的。2、异常检测:当后台检测到异常时,立即发出警报提示。3、历史流量数据的查询:用户可根据协议/事件类型及检测的时间范围完成历史流量查询。4、异常流量信息查询:用户可根据协议/事件类型及检测的时间范围完成异常流量信息查询。2.4条件与限制 三、总体设计3.1系统设

7、计原则 在linux环境下进行系统后台的编程,用libcap库函数进行抓包,并对包进行分析,统计出TCP、UDP、ICMP等协议以及TCP-SYN事件、TCP-FIN事件、ICMP_PING事件、ICMP_3.1事件(主机不可达事件)、ICMP_3.3事件(端口不可达事件)的包的数量。统计完成后将数据传递给异常检测算法和数据库,异常检测算法根据初始统计的正常数据包数量对以后到达的数据包进行预测分析,出现异常时调用socket函数传递给前台一个异常信号,c+ building来进行异常报警。另外pcap统计的包的数量也要传递给前台来建立一个正常流量模型。其中向前台传递正常数据和异常信息分别用一个

8、分线程,还有一个分线程用来接收前台的命令。3.2系统网络结构系统网络结构如图3.1所示:图3.1 系统网络结构图3.3实现框架与处理流程1、系统总体设计流程如图3.2所示:图3.2 系统总体设计流程图2、前台业务流程如图3.3所示:图3.3 前台业务流程图3.4结构模块设计结构模块如图3.4所示:图3.4 系统结构模块模块一览表模块名称标识符模块功能模块性能要求登录模块Login与后台进行连接通讯;判断字符是否合法;判断登录,登录成功,开启主线程。能够及时返回用户登录信息,提供登录或重登录信息。用户操作模块Configuration对数据库操作:保存配置信息,提供检测启动标识;查看历史流量信息

9、;查看异常流量信息。能快速的对数据库进行操作,返回用户查询信息多线程模块TCommunicationThread接收后台数据,判断数据类型,解析数据,启动曲线描绘函数及异常警报线程。当用户进行检测时,应及时的、有规律的描绘出曲线数据包捕获PCAP在网络数据流里捕获数据包并对数据包进行统计,提取出相关的数据信息进行分析并存储于数据库中。对TCP、UDP、ICMP等数据流量进行统计,检测出相关数据流量的异常。异常检测Anomaly detection检测异常数据流对不符合捕获数据包正常流量的进行检测并报警通讯communication进行前后台的通信将统计得数据包数量直接输送到前台进行显示以及异常

10、检测的显示。3.5功能需求与程序模块的关系需求 代码捕包模块异常检测模块通讯登录模块用户操作模块前台多线程模块获取原始数据流异常数据检测存储数据查询数据库接收数据发送数据显示结果3.6尚未解决的问题 四、接口设计4.1外部接口 4.2内部接口4.2.1 MySQL数据库和前台c+ builder的连接1)连接步骤第一步:使用ODBC数据库访问接口标准,绑定服务器adsystem数据库建立一个数据源Newadsystem;第二步:使用Databasesource(一个能和远端资料库透过BDE进行连结的元件),绑定数据源Newadsystem,可以储存登入资料库所需的身分认证资料,包括用户名密码,

11、确保以后的数据库操作中,不在需要确认;第三步:使用Query数据库存取元件,绑定Databasesource;第四步:使用Datasource传递元件,将Query取得的值传递给显示元件;第五步:使用StringGrid元件,将获取到的数据显示。2)数据库连接及数据存取示意图如图4.1所示:图4.1 数据库连接及数据存取示意图4.2.2 MySQL数据库和后台Linux的连接主要是调用API函数,先用mysql_init初始化一个sql描述符m_sql,再用mysql_real_connect去连接服务器上的mysql,然后用mysql_query对数据库进行读写操作,其中读数据库操作还要my

12、sql_query和mysql_fetch_row来读出和存储数据库中的值。4.2.3后台Linux与前台界面的socket连接套接字有两套,分别为后台作为socket服务器端前台作为socket客户端和后台作为socket客户端前台作为socket服务器端。也是调用相关的API函数来实现套接字连接与通信,其中服务器端先用socket函数初始化一个socket描述符sock_fd,对sockaddr_in结构体的成员变量进行赋值,其中sin_family为 AF_INET,sin_port =为4005,地址是本地地址,完了以后用bzero函数将结构体其余空间清零,然后用bind函数进行端口与

13、本地地址绑定,用listen函数来监听是否用连接,用连接是用accept函数生成一个连接socket描述符new_fd,用recv函数来接受前台传来的数据。五、数据结构设计5.1逻辑结构设计1)后台TCP typedef struct tcp_node/存储TCP 流量的循环链表,结构体初始化 int value; /TCP流量大小 struct tcp_node *next;/定义指针tcp_node;tcp_node *head,*tail;/TCP循环链表头尾指针typedef struct tcpsyn_node/存储TCPSYN 流量的循环链表,结构体初始化 int value; /

14、TCPSYN流量大小 struct tcpsyn_node *next;/定义指针tcpsyn_node;tcpsyn_node *head,*tail;/TCPSYN循环链表头尾指针typedef struct tcpfin_node/存储TCPFIN 流量的循环链表,结构体初始化 int value; /TCPFIN流量大小 struct tcpfin_node *next;/定义指针tcpfin_node;tcpfin_node *head,*tail;/TCPFIN循环链表头尾指针typedef struct udp_node/存储UDP 流量的循环链表,结构体初始化 int valu

15、e; /UDP流量大小 struct udp_node *next; /定义指针tcpudp_node;udp_node *head,*tail;/UDP循环链表头尾指针typedef struct icmp_node/存储ICMP 流量的循环链表,结构体初始化 int value; /ICMP流量大小 struct icmp_node *next;/定义指针icmp_node;icmp_node *head,*tail;/ICMP循环链表头尾指针typedef struct icmpping_node/存储ICMPPING 流量的循环链表,结构体初始化 int value; /ICMPPIN

16、G流量大小 struct icmpping_node *next;/定义指针icmpping_node;icmpping_node *head,*tail;/ICMPPING循环链表头尾指针typedef struct icmp31_node/存储ICMP31 流量的循环链表,结构体初始化 int value; /ICMP31流量大小 struct icmp31_node *next;/定义指针icmp31_node;Icmp31_node *head,*tail;/ICMP31循环链表头尾指针typedef struct icmp33_node/存储ICMP33 流量的循环链表,结构体初始化

17、 int value; /ICMP33流量大小 struct icmp33_node *next;/定义指针icmp33_node;Icmp33_node *head,*tail;/ICMP33循环链表头尾指针2)前台实现登录功能,创建的类函数,主要完成用户登录及通讯。class TLoginForm : public TForm_published: 系统自定义的控件private:/ User declarationspublic:/ User declarations _fastcall TLoginForm(TComponent* Owner); /登录表单的构造函数 AnsiStri

18、ng Judgement(AnsiString EditContent); /非法字符判断函数 AnsiString GetLLtime ; /保存获取到的系统时间的变量 AnsiString ServiesAddress; /保存服务器地址的变量;实现流量检测,包括异常流量报警,正常流量曲线模型的绘制;实现历史流量及异常流量的历史数据查询操作,对数据库进行取操作。class TConfigurationForm : public TForm_published: /声明系统的控件及方法函数private:/ User declarationspublic:/ User declaration

19、s _fastcall TConfigurationForm(TComponent* Owner);/配置窗口的构造函数 int _fastcall connect_database1(AnsiString Ip); /Socket通讯函数 AnsiString PotocolType; /记录时间间隔值 int wWidth; /坐标宽度变量int WHight; /坐标高度变量 void DrawDot (int DotValue,int count); /描绘曲线函数函数 int TCtime; /保存配置信息时间差int SummitMessage; /保存配置完成标识符 void C

20、heckHistoryDatabass(); /历史流量数据库查询函数AnsiString HistoryType; /所需查询的历史流量类型int SumCount; /记录从历史流量表查询到的记录数 int AERecordCount; /记录从异常流量数据库中获取到的记录数 int sock_fd, numbytes; /通讯端口使用的全局变量 char recvbuf100; /接收后台数据 char sendbuf100; /发送数据 char command20; /发送关闭值;主线程类函数,用于保持接收后台数据,并且进行数据解析,曲线绘制函数的调用及异常报警线程的调用。class

21、 TCommunication : public TThread private:protected: void _fastcall Execute(void); /线程的执行方法函数 /int CommunicationSelect;public: _fastcall TCommunication(); /线程的构造函数 AnsiString _fastcall Connect(); /连接函数;从线程类函数,用于实现异常报警。class TWarningThread : public TThread private:protected: void _fastcall Execute(voi

22、d); /报警线程的执行方法函数public: _fastcall TWarningThread(); /报警线程的构造函数 /AnsiString TempMessage;5.2物理结构设计5.3数据结构与程序代码的关系结构 代码捕包模块异常检测模块数据库模块前台struct ether_headerstruct in_addrstruct arp_headerstruct ip_headerstruct udp_headerstruct tcp_headerstruct icmp_headerstruct Linklistclass TLoginFormclass TConfigurati

23、onFormclass TCommunicationclass TWarningThread六、数据库设计6.1异常信息表a_yichang(对异常时间段内异常包的信息进行统计)。其中Yprotocol表示包出现异常的协议类型,Yevent表示包出现异常的事件类型,Ytime表示统计异常事件发生的时间,Ynumber表示异常事件还有此类型事件的个数。表6.2 异常信息表(a_yichang)字段含义字段名称数据类型长度空备注IDIDInt11否主键,自增协议类型YprotocolVarchar10时间类型YeventVarchar10检测时间YtimeDatatime异常包个数YnumberI

24、nt106.2流量表a_liuliang(对包中的tcp等协议流量以及tcp-syn等事件流量进行统计)。其中Ltcp表示单位时间内捕获的tcp协议的包的数量,Ludp表示单位时间内捕获的udp协议的包的数量,Licmp表示单位时间内捕获的icmp协议的包的数量,Lsyn表示单位时间内捕获的含有syn事件的包的数量,Lfin表示单位时间内捕获的含有fin事件的包的数量,Lping表示单位时间内捕获的含有ping事件的包的数量,Lzhu表示单位时间内捕获的含有主机不可达事件的包的数量,Lduan表示单位时间内捕获的含有端口不可达事件的包的数量。表6.1 流量表(a_liuliang)字段含义字段

25、名称数据类型长度空备注IDIDInt11否主键,自增Tcp包数量LtcpInt10Udp包数量LudpInt10Icmp包数量LicmpInt10Syn包数量LsynInt10Fin包数量LfinInt10Ping包数量LpingInt 10Icmp_3.1包数量LzhuInt10Icmp_3.2包数量LduanInt10检测时间LtimeDatatime6.3配置信息表a_configuration(前台给后台配置时间窗口大小)。Ctime表示前台给后台传的的捕包的窗口大小。表6.2 配置信息表(a_configuration)字段含义字段名称数据类型长度空备注IDIDInt11否主键,自增

26、统计流量时间差CtimeVarchar106.4用户表表6.4用户表(a_user)字段含义字段名称数据类型长度空备注IDIDInt11否主键,自增用户名UusernameVarchar10密码UpasswordVarchar10七、用户界面设计7.1登录页界面设计登录页如下图7.1所示,服务器地址部分有非法字符判断,如果每个字段超过3个字符,或者所填的不是数字字符,将有提示框进行提示,并取消此字母的输入。界面的编辑框及登录设置按钮有tab键的排序,可轻松跳格。窗体的大小固定,不能进行放大、缩小。图7.1 登录页7.2信息配置及曲线描绘页设计信息配置及曲线描绘页设计如下图7.2所示:1) 曲线

27、描绘设置在配置信息中可以由用户根据需要设置窗口的高度和宽度,以及曲线描绘图的标题(由下拉框中的类型决定标题),当提交时,描绘框口的各个部分将进行相应的改变。在坐标中的纵坐标代表的包个数,横轴代表第几个时间间隔。2) 默认设置配置信息中设置了默认设置,根据以往的测试获得的参数,选取的一个较为合适的值作为默认参数。3) 时间间隔代表的是在多长时间间隔内统计一次流量,并将其显示在曲线描绘窗口中,以一个点的形式出现。图7.2 信息配置及曲线描绘页7.3历史流量查看页设计历史流量查看如下图7.3及7.4所示:1) 查询历史流量是根据查询类型的不同,所具有的字段数量不同,如图7.2为查询单个类型协议/事件

28、时,结果显示窗口的设计;图7.3为查看所有类型的数据时,结果显示窗口的设计。2) 在历史流量查看窗口中,用户可选择自己想要查看的协议/事件类型,也可以查看所有的类型的流量数据,同时可设置所要查询的数据所检测的时间范围,从而使得操作更具有灵活性。图7.3 单个类型历史流量查看图图7.4 全部历史流量查看图7.4异常流量查看页设计异常流量查看如下图7.5所示,其设计与历史流量查看的设计相似,不进行赘述。图7.5异常流量查看图八、出错处理设计8.1出错输出信息错误分类子项及其编码错误名称错误代码备注8.2出错处理对策 九、安全保密设计9.1数据传输安全性设计 9.2应用系统安全性设计 9.3数据存储安全性设计 十、维护设计 第 16 页 共 5 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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