项目概要设计报告.docx
- 文档编号:713991
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:21
- 大小:365.92KB
项目概要设计报告.docx
《项目概要设计报告.docx》由会员分享,可在线阅读,更多相关《项目概要设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
项目概要设计报告
Corporationstandardizationoffice#QS8QHH-HHGX8Q8-GNHHJ8
项目概要设计报告
哈尔滨工程大学信息安全研究中心
项目概要设计报告
编号:
HEUISRC-RDT-014
版本:
1.1
密级:
编写:
吕敬辉-郝建波-贺婷
日期:
检查:
日期:
审核:
日期:
批准:
日期:
版本
日期
作者
修订要点
1.0
2007-03-20
杨武
文件建立
1.1
2007-03-21
杨武
内容及文档结构修订
一、引言
1.1编写目的
对网络数据流异常检测系统的整体开发进行概要设计,为系统编程提供基础支持。
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事件(主机不可达事件)、ICMP_3.3事件(端口不可达事件)的包的数量。
2)通过异常检测算法,对这些统计数量进行异常检测。
根据统计结果用自回归模型对网络数据流量进行预测,当某时刻数据流和预测结果不同时触发报警事件。
数据库:
将统计量、异常信息存入数据库中
前台:
1)进行通讯:
发送给后台登录、检测、关闭的标识;接收后台数据,包括登录标识、流量包统计数及异常报警标识。
2)对数据解析之后,对用户的不同类型检测的要求进行实时动态曲线的描绘;
3)对异常事件进行报警
4)对历史流量及异常信息进行数据库查询
2.2开发与运行环境
Linux操作系统平台
C++builder、MySQL数据库
提供各种端口扫描的机器
2.2.1开发环境的配置
类别
标准配置
最低配置
计算机硬件
计算机软件
Linux、Windows操作系统、mysql数据库管理工具、c++builder前台开发工具
网络通信
ODBC
其它
2.2.2运行环境的配置
类别
标准配置
最低配置
计算机硬件
计算机软件
Linux、Windows操作系统、mysql数据库管理工具
网络通信
ODBC
其它
2.2.3测试环境的配置
计算机软件:
Linux、Windows操作系统、mysql数据库管理工具
网络通信:
ODBC
2.3需求概述
用户登录:
用户输入服务器地址、用户名、密码访问,验证用户权限是否正确
用户其他操作:
用户的其他操作需要并行进行。
包括四个部分,介绍如下:
1、动态实时曲线描绘:
1)配置信息,用户可自己配置流量统计时间间隔,根据不同的流量类型,设置曲线图的数据显示高度,同时可设置曲线图的显示宽度(辅助设计);
2)对于各项值,需要提供默认值,尤其数据显示高度,需根据以往的数据流量值给出一个不同类型协议或事件的参考值;
3)完成信息的配置,启动检测,则在设置的时间间隔内开始描点;
4)曲线的描绘:
曲线为动态波动、有规律进行的。
2、异常检测:
当后台检测到异常时,立即发出警报提示。
3、历史流量数据的查询:
用户可根据协议/事件类型及检测的时间范围完成历史流量查询。
4、异常流量信息查询:
用户可根据协议/事件类型及检测的时间范围完成异常流量信息查询。
2.4条件与限制
三、总体设计
3.1系统设计原则
在linux环境下进行系统后台的编程,用libcap库函数进行抓包,并对包进行分析,统计出TCP、UDP、ICMP等协议以及TCP-SYN事件、TCP-FIN事件、ICMP_PING事件、ICMP_3.1事件(主机不可达事件)、ICMP_3.3事件(端口不可达事件)的包的数量。
统计完成后将数据传递给异常检测算法和数据库,异常检测算法根据初始统计的正常数据包数量对以后到达的数据包进行预测分析,出现异常时调用socket函数传递给前台一个异常信号,c++building来进行异常报警。
另外pcap统计的包的数量也要传递给前台来建立一个正常流量模型。
其中向前台传递正常数据和异常信息分别用一个分线程,还有一个分线程用来接收前台的命令。
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
对数据库操作:
保存配置信息,提供检测启动标识;查看历史流量信息;查看异常流量信息。
能快速的对数据库进行操作,返回用户查询信息
多线程模块
TCommunicationThread
接收后台数据,判断数据类型,解析数据,启动曲线描绘函数及异常警报线程。
当用户进行检测时,应及时的、有规律的描绘出曲线
数据包捕获
PCAP
在网络数据流里捕获数据包并对数据包进行统计,提取出相关的数据信息进行分析并存储于数据库中。
对TCP、UDP、ICMP等数据流量进行统计,检测出相关数据流量的异常。
异常检测
Anomalydetection
检测异常数据流
对不符合捕获数据包正常流量的进行检测并报警
通讯
communication
进行前后台的通信
将统计得数据包数量直接输送到前台进行显示以及异常检测的显示。
3.5功能需求与程序模块的关系
需求代码
捕包模块
异常检测模块
通讯
登录模块
用户操作模块
前台多线程模块
获取原始数据流
√
异常数据检测
√
存储数据
√
√
√
查询数据库
√
接收数据
√
√
√
√
发送数据
√
√
√
√
√
显示结果
√
√
3.6尚未解决的问题
四、接口设计
4.1外部接口
4.2内部接口
4.2.1MySQL数据库和前台c++builder的连接
1)连接步骤
第一步:
使用ODBC数据库访问接口标准,绑定服务器adsystem数据库建立一个数据源Newadsystem;
第二步:
使用Databasesource(一个能和远端资料库透过BDE进行连结的元件),绑定数据源Newadsystem,可以储存登入资料库所需的身分认证资料,包括用户名密码,确保以后的数据库操作中,不在需要确认;
第三步:
使用Query数据库存取元件,绑定Databasesource;
第四步:
使用Datasource传递元件,将Query取得的值传递给显示元件;
第五步:
使用StringGrid元件,将获取到的数据显示。
2)数据库连接及数据存取示意图
如图4.1所示:
图4.1数据库连接及数据存取示意图
4.2.2MySQL数据库和后台Linux的连接
主要是调用API函数,先用mysql_init初始化一个sql描述符m_sql,再用mysql_real_connect去连接服务器上的mysql,然后用mysql_query对数据库进行读写操作,其中读数据库操作还要mysql_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函数进行端口与本地地址绑定,用listen函数来监听是否用连接,用连接是用accept函数生成一个连接socket描述符new_fd,用recv函数来接受前台传来的数据。
五、数据结构设计
5.1逻辑结构设计
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流量大小
structic
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 概要 设计 报告