下载此文档

项目概要设计报告.pdf


文档分类:研究报告 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
该【项目概要设计报告 】是由【wawa】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【项目概要设计报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
哈尔滨工程大学信息安全研究中心
项目概要设计报告
编号:HEUISRC-RDT-014
版本:
密级:
编写:吕敬辉-郝建波-贺婷日期:
检查:日期:
审核:日期:
批准:日期:
:.
版本日期作者修订要点
-03-20杨武文件建立
-03-21杨武内容及文档结构修订
:.
目录
:.
一、引言

对网络数据流异常检测系统的整体开发进行概要设计,为系统编程提供基础支持。

项目名称网络数据流异常检测,该项目主要对网络数据出现大的流量变化,尤其对
syn、fin、ping、端口和主机不可达事件进行异常检测并报警。

缩写、术语解释
libPcap捕包库函数
MySQL数据库
C++builder界面编程
ODBC数据库访问接口标准
adsystem服务器端数据库名
Newadsystem本地绑定远程数据库的系统数据源变量

二、任务概述

后台:
1)本系统能够对网络出入口的数据包进行分析,统计出TCP、UDP、ICMP等协议以
及TCP-SYN事件、TCP-FIN事件、ICMP_PING事件、(主机不可达事件)、
(端口不可达事件)的包的数量。
2)通过异常检测算法,对这些统计数量进行异常检测。根据统计结果用自回归模
型对网络数据流量进行预测,当某时刻数据流和预测结果不同时触发报警事件。
数据库:将统计量、异常信息存入数据库中
前台:
1)进行通讯:发送给后台登录、检测、关闭的标识;接收后台数据,包括登录标
识、流量包统计数及异常报警标识。
2)对数据解析之后,对用户的不同类型检测的要求进行实时动态曲线的描绘;
3)对异常事件进行报警
4)对历史流量及异常信息进行数据库查询

Linux操作系统平台
C++builder、MySQL数据库
提供各种端口扫描的机器:.

类别标准配置最低配置
计算机硬件
计算机软件Linux、Windows操作系统、
mysql数据库管理工具、c++
builder前台开发工具
网络通信ODBC
其它

类别标准配置最低配置
计算机硬件
计算机软件Linux、Windows操作系统、
mysql数据库管理工具
网络通信ODBC
其它

计算机软件:Linux、Windows操作系统、mysql数据库管理工具
网络通信:ODBC

用户登录:用户输入服务器地址、用户名、密码访问,验证用户权限是否正确
用户其他操作:用户的其他操作需要并行进行。包括四个部分,介绍如下:
1、动态实时曲线描绘:
1)配置信息,用户可自己配置流量统计时间间隔,根据不同的流量类型,设置
曲线图的数据显示高度,同时可设置曲线图的显示宽度(辅助设计);
2)对于各项值,需要提供默认值,尤其数据显示高度,需根据以往的数据流量
值给出一个不同类型协议或事件的参考值;
3)完成信息的配置,启动检测,则在设置的时间间隔内开始描点;
4)曲线的描绘:曲线为动态波动、有规律进行的。
2、异常检测:当后台检测到异常时,立即发出警报提示。
3、历史流量数据的查询:用户可根据协议/事件类型及检测的时间范围完成历史流
量查询。
4、异常流量信息查询:用户可根据协议/事件类型及检测的时间范围完成异常流量
信息查询。

三、总体设计

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

:
网网
外外

用户
交换机
交换机
用户
用户用户
用户用户


1、::.
数据包捕获
数据流
套接字通信数据包的分析
分类存储
滑窗算法
前台显示报警异常检测存储异常事件数据库
数据库连接

2、:
开始
登录
失败
通讯
获取登录标识
成功
异常标识启动主线程用户并行操作
数据标识
异常报告描绘曲线检测查看历史流量查看异常流量
关闭
发送关闭标识
结束
:.

:
数据流异常检测系统
前台后台
登录模块用户操作模块多线程模块数据包捕获异常检测通讯模块
非查查保
法看看存接曲异
通字历异配收线常
讯符史常置数描报
判流信信据绘警
断量息息

模块一览表
模块名称标识符模块功能模块性能要求
登录模块Login与后台进行连接通讯;判能够及时返回
断字符是否合法;判断登用户登录信
录,登录成功,开启主线息,提供登录
程。或重登录信
息。
用户操作模块Configuration对数据库操作:保存配置能快速的对数
信息,提供检测启动标据库进行操
识;查看历史流量信息;作,返回用户
查看异常流量信息。查询信息
多线程模块TCommunicationThread接收后台数据,判断数据当用户进行检
类型,解析数据,启动曲测时,应及时
线描绘函数及异常警报的、有规律的
线程。描绘出曲线
数据包捕获PCAP在网络数据流里捕获数对TCP、UDP、:.
据包并对数据包进行统ICMP等数据
计,提取出相关的数据信流量进行统
息进行分析并存储于数计,检测出相
据库中。关数据流量的
异常。
异常检测Anomalydetection检测异常数据流对不符合捕获
数据包正常流
量的进行检测
并报警
通讯communication进行前后台的通信将统计得数据
包数量直接输
送到前台进行
显示以及异常
检测的显示。

需求代码通讯登录模块前台多线程模块
捕包模块异常检测模块用户操作模块

获取原始数据流

异常数据检测
√√√
存储数据

查询数据库
√√√√
接收数据
√√√√√
发送数据
√√
显示结果

四、接口设计

:.

++builder的连接
1)连接步骤
第一步:使用ODBC数据库访问接口标准,绑定服务器adsystem数据库建立一个数据源
Newadsystem;
第二步:使用Databasesource(一个能和远端资料库透过BDE进行连结的元件),绑定数
据源Newadsystem,可以储存登入资料库所需的身分认证资料,包括用户名密码,确保以后的
数据库操作中,不在需要确认;
第三步:使用Query数据库存取元件,绑定Databasesource;
第四步:使用Datasource传递元件,将Query取得的值传递给显示元件;
第五步:使用StringGrid元件,将获取到的数据显示。
2)数据库连接及数据存取示意图
:
提供
数据将获Data
ODBCDatabase可直传递String
源用Query取到sour
接获给显
数据户名source的数Grid
取的元件ce示元
源密码元件据暂元件
资料元件件
绑定存

服务器地址访问远端数据库adsystem


主要是调用API函数,先用mysql_init初始化一个sql描述符m_sql,再用
mysql_real_connect去连接服务器上的mysql,然后用mysql_query对数据库进行读写
操作,其中读数据库操作还要mysql_query和mysql_fetch_row来读出和存储数据库中
的值。

套接字有两套,分别为后台作为socket服务器端前台作为socket客户端和后台作
为socket客户端前台作为socket服务器端。也是调用相关的API函数来实现套接字连
接与通信,其中服务器端先用socket函数初始化一个socket描述符sock_fd,对
sockaddr_in结构体的成员变量进行赋值,其中sin_family为AF_INET,sin_port=:.
为4005,地址是本地地址,完了以后用bzero函数将结构体其余空间清零,然后用bind
函数进行端口与本地地址绑定,用listen函数来监听是否用连接,用连接是用accept
函数生成一个连接socket描述符new_fd,用recv函数来接受前台传来的数据。
五、数据结构设计

1)后台
TCP…………………
typedefstructtcp_node//存储TCP流量的循环链表,结构体初始化
{
intvalue;//TCP流量大小
structtcp_node*next;//定义指针
}tcp_node;
tcp_node*head,*tail;//TCP循环链表头尾指针
typedefstructtcpsyn_node//存储TCPSYN流量的循环链表,结构体初始化
{
intvalue;//TCPSYN流量大小
structtcpsyn_node*next;//定义指针
}tcpsyn_node;
tcpsyn_node*head,*tail;//TCPSYN循环链表头尾指针
typedefstructtcpfin_node//存储TCPFIN流量的循环链表,结构体初始化
{
intvalue;//TCPFIN流量大小
structtcpfin_node*next;//定义指针
}tcpfin_node;
tcpfin_node*head,*tail;//TCPFIN循环链表头尾指针
typedefstructudp_node//存储UDP流量的循环链表,结构体初始化
{
intvalue;//UDP流量大小
structudp_node*next;//定义指针
}tcpudp_node;
udp_node*head,*tail;//UDP循环链表头尾指针
:.
typedefstructicmp_node//存储ICMP流量的循环链表,结构体初始化
{
intvalue;//ICMP流量大小
structicmp_node*next;//定义指针
}icmp_node;
icmp_node*head,*tail;//ICMP循环链表头尾指针
typedefstructicmpping_node//存储ICMPPING流量的循环链表,结构体初始化
{
intvalue;//ICMPPING流量大小
structicmpping_node*next;//定义指针
}icmpping_node;
icmpping_node*head,*tail;//ICMPPING循环链表头尾指针
typedefstructicmp31_node//存储ICMP31流量的循环链表,结构体初始化
{
intvalue;//ICMP31流量大小
structicmp31_node*next;//定义指针
}icmp31_node;
Icmp31_node*head,*tail;//ICMP31循环链表头尾指针
typedefstructicmp33_node//存储ICMP33流量的循环链表,结构体初始化
{
intvalue;//ICMP33流量大小
structicmp33_node*next;//定义指针
}icmp33_node;
Icmp33_node*head,*tail;//ICMP33循环链表头尾指针
2)前台
实现登录功能,创建的类函数,主要完成用户登录及通讯。
classTLoginForm:publicTForm
{
__published:···系统自定义的控件
private://Userdeclarations
public://Userdeclarations:.
__fastcallTLoginForm(TComponent*Owner);//登录表单的构造函数
AnsiStringJudgement(AnsiStringEditContent);//非法字符判断函数
AnsiStringGetLLtime;//保存获取到的系统时间的变

AnsiStringServiesAddress;//保存服务器地址的变

};
实现流量检测,包括异常流量报警,正常流量曲线模型的绘制;实现历史流量及异
常流量的历史数据查询操作,对数据库进行取操作。
classTConfigurationForm:publicTForm
{
__published:···//声明系统的控件及方法函数
private://Userdeclarations
public://Userdeclarations
__fastcallTConfigurationForm(TComponent*Owner);//配置窗口的构造
函数
int__fastcallconnect_database1(AnsiStringIp);//Socket通
讯函数
AnsiStringPotocolType;//记录时间间隔值
intwWidth;//坐标宽度变量
intWHight;//坐标高度变量
voidDrawDot(intDotValue,intcount);//描绘曲线函数函数
intTCtime;//保存配置信息时间差
intSummitMessage;//保存配置完成标识符
voidCheckHistoryDatabass();//历史流量数据库查询函数
AnsiStringHistoryType;//所需查询的历史流量类型
intSumCount;//记录从历史流量表查询到的记录

intAERecordCount;//记录从异常流量数据库中获取到的记录

intsock_fd,numbytes;//通讯端口使用的全局变

charrecvbuf[100];//接收后台数据
charsendbuf[100];//发送数据
charcommand[20];//发送关闭值:.
};
主线程类函数,用于保持接收后台数据,并且进行数据解析,曲线绘制函数的调用
及异常报警线程的调用。
classTCommunication:publicTThread
{
private:
protected:
void__fastcallExecute(void);//线程的执行方法函数
//intCommunicationSelect;
public:
__fastcallTCommunication();//线程的构造函数
AnsiString__fastcallConnect();//连接函数
};
从线程类函数,用于实现异常报警。
classTWarningThread:publicTThread
{
private:
protected:
void__fastcallExecute(void);//报警线程的执行方法函数
public:
__fastcallTWarningThread();//报警线程的构造函数
//AnsiStringTempMessage;
};


结构代码捕包模块异常检测模块数据库模块前台
structether_header
√√√
structin_addr
√√√
structarp_header
√√√
structip_header
√√√
structudp_header
√√√
structtcp_header
√√√:.
structicmp_header
√√√
structLinklist

classTLoginForm

class
√√
TConfigurationForm
classTCommunication

classTWarningThread

六、数据库设计

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

a_liuliang(对包中的tcp等协议流量以及tcp-syn等事件流量进行统计)。其
中Ltcp表示单位时间内捕获的tcp协议的包的数量,Ludp表示单位时间内捕获的udp
协议的包的数量,Licmp表示单位时间内捕获的icmp协议的包的数量,Lsyn表示单
位时间内捕获的含有syn事件的包的数量,Lfin表示单位时间内捕获的含有fin事件
的包的数量,Lping表示单位时间内捕获的含有ping事件的包的数量,Lzhu表示单
位时间内捕获的含有主机不可达事件的包的数量,Lduan表示单位时间内捕获的含有
端口不可达事件的包的数量。
(a_liuliang)
字段含义字段名称数据类型长度空备注
IDIDInt11否主键,自增
Tcp包数量LtcpInt10
Udp包数量LudpInt10
Icmp包数量LicmpInt10
Syn包数量LsynInt10
Fin包数量LfinInt10
Ping包数量LpingInt10


检测时间量LtimeDatatime:.

a_configuration(前台给后台配置时间窗口大小)。Ctime表示前台给后台传的的捕包的窗
口大小。
(a_configuration)
字段含义字段名称数据类型长度空备注
IDIDInt11否主键,自增
统计流量时间差CtimeVarchar10

(a_user)
字段含义字段名称数据类型长度空备注
IDIDInt11否主键,自增
用户名UusernameVarchar10
密码UpasswordVarchar10
七、用户界面设计

,服务器地址部分有非法字符判断,如果每个字段超过3个字符,
或者所填的不是数字字符,将有提示框进行提示,并取消此字母的输入。界面的编辑框及登录
设置按钮有tab键的排序,可轻松跳格。窗体的大小固定,不能进行放大、缩小。


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


:
1)查询历史流量是根据查询类型的不同,所具有的字段数量不同,
协议/事件时,结果显示窗口的设计;,结果显示窗口的设
计。
2)在历史流量查看窗口中,用户可选择自己想要查看的协议/事件类型,也可以查看所有的类
型的流量数据,同时可设置所要查询的数据所检测的时间范围,从而使得操作更具有灵活
性。
:.



,其设计与历史流量查看的设计相似,不进行赘述。:.

八、出错处理设计

错误分类子项及其编码错误名称错误代码备注

九、安全保密设计

:.


十、维护设计

项目概要设计报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wawa
  • 文件大小753 KB
  • 时间2023-03-13
最近更新