iocp服务器设计

更新时间:2024-04-19 22:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中原工学院信息商务学院

毕业设计(论文)

题目:主控中心的设计与实现专业:计算机科学系 班级:网络064班 学号:200680012425 学生姓名:XXX 指导教师:XX

年月日

论文编号:

主控中心的设计与实现

Design and Implementation of Main

Control Center

专业:计算机科学系 班级:网络064班 学号:200680012425 学生姓名:XXX 指导教师:XX

2010年5月日

中文摘要

随着计算机网络的飞速发展,网络安全对我们来说已经不是一个陌生的词语,网络的开放性和共享性导致了网络的不安全性,导致新的系统漏洞层出不穷,网络安全问题变得越来越突出。使得计算机安全成为人们讨论的热点,逐渐成为一个潜在的巨大问题。本文在主机安全评估的基础上延伸到了整个企业网络的主机安全评估,对于一个企业全网来说,网络中主机的安全性严重影响到整个网络的稳定性,只有对整个网络上的主机进行安全评估,我们才能够及时的采取有效地措施来阻止危险的发生。

主控中心是分布式网络安全评估的控制中心,在网络中起到了领导作用,它能够制定一系列的策略,通过发送指令来控制网络中sensor的扫描,同时具有搜集senosr扫描信息,对扫描结果进行分析和评估的功能。这需要主控中心具有较高的稳定性,能够接收大量sensor的服务请求。

本文从分布式网络安全评估的背景和意义着手,以国内外研究的现状作为参照,从整体上分析了分布式网络安全评估的需求,并对需求进行了概要设计和详细的设计,最后通过编写测试用例全面的测试了软件的功能,达到了预期的效果。

关键词:网络安全 分布式网络 分析 评估 稳定性

I

Abstract

With the rapid development of computer networks, network security are no longer a strange word, the network's openness and sharing of insecurity led to the network, leading to an endless stream of new vulnerabilities, network security issues become increasingly more prominent. Makes computer security become a hot topic, has become a potentially huge problem. In this paper, based on host security assessment extends to the entire enterprise network host security assessment of the entire network for an enterprise, the network host security seriously affect the stability of the entire network, only the hosts on the entire network for security assessment, we can take timely and effective measures to prevent the occurrence of danger.

Distributed network control center is a security assessment of the control center, the network has played a leading role, it can develop a range of strategies, by sending commands to control the sensor network scanning, scan both collect senosr information on scan results analysis and assessment functions. This requires high stability of the control center, a large number of sensor can receive service requests.

This distributed network security assessment from the background and significance begin to study the situation at home and abroad as a reference, from the overall analysis of the needs of distributed network security assessment, and requirements of the outline design and detailed design, and finally by writing comprehensive testing of the software test case function, achieved the expected results.

Keywords: Network Security Distributed network Analysis Assess Stability

II

目录

中文摘要.................................................................................................... I Abstract................................................................................................... II 目录 .........................................................................................................III 第1章 引言 ............................................................................................1 1.1分布式主机安全评估的研究背景与意义..........................................1 1.1.1研究背景 ....................................................................................1 1.1.2研究意义 ....................................................................................2 1.2分布式主机安全评估的国内外研究现状..........................................2 1.2.1国内外的研究现状 .....................................................................2 1.2.2研究现状的分析.........................................................................6 1.2.3分布式的问题与总结 .................................................................6 1.3研究目标与内容 ...............................................................................7 1.3.1研究目标 ....................................................................................7 1.3.2研究内容 ....................................................................................7 1.4论文的组织结构 ...............................................................................8 1.5小结 ..................................................................................................9 第2章系统需求分析 .................................................................................9 2.1本文的相关概念与定义 ....................................................................9 2.1.1主控中心的定义.........................................................................9 2.1.2 sensor的定义 .............................................................................9 2.1.3其他相关概念 ............................................................................9 2.2主控中心在分布式评估中的地位与需求........................................10 2.2.1主控中心在分布式评估中的地位............................................10 2.2.2主控中心在分布式评估中的需求分析 ..................................... 11 2.3小结 ................................................................................................ 11 第3章主控中心的系统分析 .................................................................... 11 3.1系统的总体设计方案...................................................................... 11 3.1.1研究思路 .................................................................................. 11 3.1.2主控总体框图 ..........................................................................13 3.2系统的设计原则与开发平台 ..........................................................13 3.2.1系统的设计原则.......................................................................13 3.2.2系统的运行环境.......................................................................14 3.2.3系统的开发平台.......................................................................14 3.3本文涉及的关键技术的分析 ..........................................................14 3.3.1完成端口模型分析 ...................................................................14

III

3.3.2线程池技术分析.......................................................................17 3.3.3 socket通讯技术分析 ................................................................18 3.3.4 ADO数据库技术分析 ..............................................................19 3.3.5动态链接库技术分析 ...............................................................20 3.4小结 ............................................................................................22 第4章 主控中心的系统设计和实现 .....................................................22 4.1系统模块的设计与实现 ..................................................................22 4.1.1用户登录与权限的设置 ...........................................................22 4.1.2主控中心界面示意图 ...............................................................22 4.1.3企业全网IP的配置 .................................................................24 4.1.4系统参数的配置.......................................................................26 4.1.5任务的创建、编辑、查看和删除.............................................26 4.1.6策略管理器的设计与实现 ........................................................30 4.1.7 sensor存活性探测的设计与实现 .............................................36 4.1.8 任务分发的设计与实现...........................................................39 4.1.9 完成端口的设计与实现........................................................41 4.1.10扫描结果的分析与评估..........................................................45 4.2模块接口的交互 .............................................................................47 4.2.1主控与策略的模块接口 ...........................................................47 4.2.2主控与报表的模块接口 ...........................................................47 4.2.3主控与用户管理的模块接口 ....................................................47 4.2.4主控与WEB服务器的模块接口..............................................47 4.3小结 ................................................................................................47 第5章 系统运行和测试........................................................................49 5.1测试步骤和测试环境......................................................................49 5.1.1测试环境 ..................................................................................49 5.1.2测试步骤 ..................................................................................49 5.2测试用例的编写 .............................................................................49 5.2.1.测试对象 ...............................................................................49 5.2.2.测试用例 ...............................................................................49 5.3测试结果的分析 .............................................................................50 第6章 总结 ..........................................................................................50 6.1对上文的总结 .................................................................................50 6.2下一步的工作 .................................................................................51 致谢 .........................................................................................................52 参考文献..................................................................................................53 附录 .........................................................................................................55 附录A:附加图、表目录.......................................................................55

IV

附录B:主要源程序 ..............................................................................57

V

中原工学院信息商务学院毕业设计(论文)

第1章 引言

1.1分布式主机安全评估的研究背景与意义

1.1.1研究背景

随着计算机网络的发展,其开放性、共享性、互连程度扩大,网络的重要性和对社会的影响也越来越大,网络安全问题显得越来越重要。网络由于其自身的脆弱性会受到一些威胁,建立安全防护体系对于加强网络的安全性意义重大。安全评估是建立网络防护系统的一项基础性工作,安全评估的目的是通过合理步骤,以防止所有对网络安全构成威胁的事件发生。

在互联网高速发展的今天,安全事件越来越多,威胁程度越来越大。近年安全漏洞数量不断增加,仍是信息系统的主要安全隐患。据美国CERT/CC统计该组织2007年全年收到信息系统安全漏洞报告7236个,自1995年以来,漏洞报告总数已达38016个。国内安全组织CNCERT/CC[1,2,3,4,5]给出了2005年至2008年上半年与我国用户密切相关的漏洞公告,如图1.1所示,从图中可以看出,近年来,与我国用户密切相关的漏洞数目越来越多。随着各种安全漏洞的出现,别有用心的人借助漏洞进行的攻击事件也随之而来,而且这些攻击事件有着逐年递增的趋势。CNCERT/CC给出了2007年至2008年上半年非扫描类安全事件的统计结果,如图1.2所示,仅统计其他组织或者个人向CNCERT/CC报告的非扫描类事件报告数量,不包含CNCERT/CC监测发现的事件。同时,将漏洞报告也作为一种事件报告进行统计。

1201041008060404020075872005200620072008.1-62005200620072008.1-6

图1-1 CNCERT/CC安全漏洞数目统计

1

中原工学院信息商务学院毕业设计(论文)

5000400030002000100004390329120072008.1-620072008.1-6

图1-2 CNCERT/CC网络安全事件统计

面对如此多的网络安全漏洞和网络安全事件的频繁发生,我们急需找出一种解决方案来提高网络的安全性,为了实现网络的安全运行,必须构建一个完整的安全体系,为此人们提出了PPDR[6]和PPDRR[7]等安全模型,而网络安全评估正是这些安全模型中的关键环节。

为了保证主机的安全,我们需要对影响主机的所有安全因素进行评估,而在每台主机都得到保证的情况下,为了保证整个企业网络的安全,我们有必要设计一套分布式主机安全评估系统。 1.1.2研究意义

评估主机的安全风险,提高主机操作员或管理员的风险意识。

研究新的评估技术,丰富和完善评估方法体系,给出合理的评估模型,研究效率高的评估算法。

分布式主机安全评估能够对整个企业或者全网进行全面、高效、准确的评估。有利于企业网络管理员准确的掌握全网的安全风险,提高安全防范意识。

分布式主机安全评估能够对企业的网络状况做出预测,有效的防范大规模安全事件对企业网络造成的损失。

1.2分布式主机安全评估的国内外研究现状

1.2.1国内外的研究现状

安全评估[14]是依据有关信息安全技术与管理标准,对信息系统及由其处理、传输

2

中原工学院信息商务学院毕业设计(论文)

和存储的信息的保密性、完整性和可用性等安全属性进行评价的过程。它要评估资产面临的威胁以及威胁利用脆弱性导致安全事件的可能性,并结合安全事件所涉及的资产价值来判断安全事件一旦发生对组织造成的影响。主要包括管理方面的评估和技术方面的评估。

安全评估可以分为两种情况:一种是基于主机安全评估,一种是基于网络安全评估,我们课题研究的是分布式主机安全评估。

信息技术安全评估涉及的领域广泛,研究的内容复杂而多变。主要包括基于主机的安全评估和基于网络的安全评估,主机安全评估研究的内容如下: 1)信息技术安全功能、安全保证、安全性评估准则与评估规范的制定; 2)评估对象(TOE)、评估方式、评估强度及评估流程的确定; 3)主机安全指标的提取与量化; 4)计算机资产识别与资产价值的评定; 5)计算机脆弱性识别、分析与评估模型研究; 6)计算机威胁识别、分析与评估模型研究; 7)基于主机的安全评估工具的研发;

在整个评估流程中,信息技术安全评估准则起着指导性的作用,2)和3)是安全评估的前提和基础,4)、5)、6)和7)是安全评估的核心,决定了最终评估结果的准确性,是整个评估流程中的重中之重。安全评估要按流程,如图1.3所示。

系统特性分析信息资产识别和价值估算威胁分析系统脆弱性分析危害发生可能性分析风险计算控制措施建议风险评估结果文档

图1-3 安全评估流程图

3

中原工学院信息商务学院毕业设计(论文)

国外及国际性安全评估标准 美国的TCSEC

TCSEC[8],即“可信计算机系统评估准则”(Trusted Computer System Evaluation Criteria)。1970年由美国国防科学委员会提出,1985年正式发布。其安全级别从高到低分为A、B、C、D四类,各类又进行细分,总共有Al、B3、B2、B1、C2、C1、D七级。分级分类主要依据四个原则:安全政策、可控性、保证能力和文档的完善程度。 欧洲的ITSEC

ITSEC,即“信息技术安全评估准则”(Information Technology Security Evaluation Criteria)。1.2版于1991年由欧洲委员会在结合法国、德国、荷兰和英国的开发成果后公开发表。功能准则在测定上分F1-F10共10级,评估准则分E1、E2、E3、E4、E5、E6六级。

日本电子工业发展协会的JCSEC-FR

1992年8月,日本电子工业发展协会(JEIDA)公布了《日本计算机安全评估准则-功能要求》(JCSEC-FR)该文件与ITSEC的功能部分结合得非常紧密。 加拿大的评测标准(CTCPEC)

CTCPEC,即“加拿大可信计算机产品评估准则”(Canadian Trusted Computer Evaluation Criteria)。1.0版于1989年公布,专为政府需求而设计,1993年公布了3.0版。作为ITSEC和TCSEC的结合,将安全分为功能性要求和保证性要求两部分。功能性要求分为机密性、完整性、可用性、可控性等四个大类。 美国联邦准则(FC)

美国信息技术安全联邦准则草案1.0版也于1993年公开发表,它是结合北美和欧洲有关评估准则概念的另一种标准。在此标准中引入了“保护轮廓(Protection Profile)”这一重要概念,每个轮廓都包括功能部分、开发保证部分和评测部分。分级方式与TCSEC不同。 通用准则(CC)

在1993年6月,由与CTCPEC、FC、TCSEC和ITSEC有关的六个国家中七个相关政府组织集中了他们的成果,并联合行动将各自独立的准则集合成一系列单一的、能被广泛接受的IT安全准则。其目的是解决原标准中出现的概念和技术上的差异,并把结果作为对国际标准的贡献提交给了ISO。1996年颁布了1.0版,1998年颁布

4

中原工学院信息商务学院毕业设计(论文)

了2.0[9]版,1999年6月ISO正式将CC2.0作为国际标准——ISO15408发布.在CC中充分突出“保护轮廓”,将评估过程分为“功能”和“保证”两部分。通用准则是目前最全面的信息技术安全评估准则。 信息安全管理标准(BS7799)

BS7799由英国标准协会(BSI)于1995年2月首次公布,1995年5月又进行了修订,是目前国际上最知名的安全管理标准。BS7799共分为两部分,第一部分是信息安全实务准则,提供了实现信息安全的全面指导,第二部分是信息安全管理体系(ISMS)规范,提供了一个组织建立、实施及文档化信息安全管理体系(ISMS)的规格说明。 国内评估标准

计算机信息系统安全保护等级划分准则

1999年9月国家质量技术监督局发布了国家标准GB17859-1999《计算机信息安全保护等级划分准则》[10],他是建立安全等级保护制度、实施安全等级管理的重要基础性标准。它将信息系统划分为五个安全保护等级,等级从低到高分为用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级。 信息技术安全评估准则

自从CC1.0版公布后,我国相关部门就一直密切关注着它的发展情况,并对该版本做了大量的研究工作。2001年3月,国家质量技术监督局正式颁布了援引CC的国家标准GB/T18336-2001《信息技术安全技术信息技术安全性评估准则》[11]。 信息安全风险评估指南

我国信息安全风险评估国家标准《信息安全风险评估指南》[12]规定了信息安全风险评估的工作流程、评估内容、评估方法和风险判断准则,适用于信息系统的使用单位进行自我风险评估,以及风险评估机构对信息系统进行独立的风险评估。 信息安全风险管理指南

我国信息安全风险评估国家标准《信息安全风险管理指南》[13]规定了信息安全风险管理的内容和过程,适用于我国各类信息系统的主管、运营部门以及信息安全服务机构对信息系统的安全保护工作。

信息安全技术主机安全漏洞扫描产品检验规范

《信息安全技术主机安全漏洞扫描产品检验规范》[14]规定了主机安全漏洞扫描产品的安全功能要求和安全保证要求,适用于主机安全漏洞扫描产品的开发与检测。

5

中原工学院信息商务学院毕业设计(论文)

1.2.2研究现状的分析

分布式主机评估是一个运用C/S架构实现的分布式漏洞扫描与安全评估系统,它通过在分布式网络的多个不同物理地点安装扫描代理,并在中央控制台进行集中管理的方式,实现了对大规模网络的实时及定时漏洞扫描和风险评估,是新一代的网络漏洞扫描产品。该产品的推出填补了国内相关市场领域的空白。

与传统的单点式、工具化的漏洞扫描产品相比,分布式漏洞扫描与安全评估系统主要特点有:

1.分布式漏洞扫描与安全评估系统不受网络地域的局限,能够跨地域对多个网络同时进行扫描。多点扫描代理的部署也大大降低了对扫描系统以及对网络带宽资源的占用;

2.分布式漏洞扫描与安全评估系统通过均衡扫描负载,提高了漏洞扫描的准确性以及扫描速度,并加强了扫描过程的安全性;

3.分布式漏洞扫描与安全评估系统是针对集中管理大型网络中的安全风险而设计的,系统建立了资产信息库,可对网络中的重要资产进行扫描,并对网络系统面临的风险和威胁进行综合分析,最终得出系统安全风险评估结果;

4.分布式漏洞扫描与安全评估系统可实现实时及定时漏洞扫描任务,通过设置定期自动执行扫描任务进行全面安全检查,从而辅助强化组织统一安全策略的落实; 5.分布式漏洞扫描与安全评估系统可以与启明星辰公司的天阗(tián)分布式入侵检测系统进行联动验证和关联分析,在大规模分布式网络环境中,二者的紧密配合将能够极大地提高对网络的安全保障能力。

1.2.3分布式的问题与总结

(l)分布式中心要求每个中心主机运行的分支行都设立较大的机房,要用双机并互为热备份配套的机房环境,如配备的电源、空调、消防设施等都要符合国家安全标准和系统技术标准,这显然需要各中心各白按标谁建设到位,各自的投人就较多。 (2)计算机本身更新快,使用周期短,各分布中心的主机和配套设备等都要随之更新,这样,更新的点数就多,投人的总数额就大。

(3)由于每个分布计算中心都要按系统要求配齐相关软件,造成同一系统内各中心重复购人软件,导致软件上多余的投人,软件开销增大。

6

中原工学院信息商务学院毕业设计(论文)

(4)各分布中所覆盖的机构网点数量有限,业务总量不大,主机的吞吐量多数不足,而庞大的应用软件对主机基本配置和对系统软件的配套要求仍一样,并不能因点少量缺而省缺和降低,使得各中心都要达到同样的标谁来满足运行之需,自然投资不能降低,这就引起资源严重浪费。有些亏损的行,要维持计算中心的运行,运行成本占经营成本的比例自然更高,使得盈利压力更加沉重。

1.3研究目标与内容

1.3.1研究目标

1)从安全评估的角度出发,通过分布式的Sensor,扫描被评估的全网主机,并对原始的扫描数据进行分析,依据分析结果从不同角度、不同范围进行安全评估,最终形成评估报告表。

2)从脆弱性扫描的角度出发,基于主机的脆弱性扫描,扫描内容(多元扫描,不仅仅是漏洞)更广泛、更准确,弥补了基于网络脆弱性扫描的不足。

从分布式的角度出发,实现通讯的高效性、信息的保密性和所有被评估主机的同步性。

3)建立科学的评估指标体系,研究性能高效的评估算法,使研究具有一定的理论水平和实用价值。 1.3.2研究内容

为了充分利用分布式系统的巨大处理能力,全面多元化的收集企业全网中的原始扫描信息,提出一种“主控-sensor-数据中心”的三层框架评估体系如图1.4所示。

图1-4 分布式主机安全评估工作示意图

7

中原工学院信息商务学院毕业设计(论文)

依照我们的评估体系,分布式主机安全评估研究内容概括起来主要有扫描、通讯、评估和统计分析四大块。扫描模块主要是在Sensor(评估主机)上执行的,完成脆弱性扫描和扫描结果上传,通讯模块主要是完成指令信息和数据信息的传输,评估模块是在主控中心执行的,依据分析结果进行评估,得到安全评估报告表,论文拟研究内容有以下方面:

1)研究影响主机安全的综合要素,确定评估指标及其量化和规范化。 2)扫描引擎和扫描插件的设计。

3)分布式主机安全评估模型研究,根据分布式的特点,构建基于层次化和多因素的评估模型。

4)分布式主机安全评估中通讯协议和控制的研究,分为主控中心和Sensor通讯、Sensor之间通讯两种。

1.4论文的组织结构

全文共分三部分六章内容,组织如下:

第一部分是摘要及其译文:摘要部分是对分布式主机安全评估系统和本论文的简单介绍和概括

第二部分是论文目录及其章节内容。各章组织如下:

?第1章引言。论述分布式主机安全评估的研究内容、意义、国内外的研究现状以及分布式存在的问题等。

?第2章主要介绍的是分布式主机安全评估的相关概念,分析了相关概念的原理和步骤,阐述了主控中心在课题中的地位以及需求。

?第3章详细介绍了总体的设计方案和框架,介绍了用到的技术难点,并进行了必要的分析。

?第4章提出系统方案,详细介绍系统各模块的实现,阐述了系统中模块与模块之间的接口。

?第5章分析系统运行情况和测试数据,得出测试结论。

?第6章结论,对主控中心的设计和实现做出总结,并做了进一步的展望。 第三部分是致谢、参考文献、附录。它是对系统和本论文的补充说明。

8

中原工学院信息商务学院毕业设计(论文)

1.5小结

本章主要介绍了分布式网络安全评估的背景与意义,并且列举了国内外安全评估的标准,对现状进行了分析,总结了存在的问题,明确了研究的目的和内容,最后对论文的结构作了简要的介绍。

第2章系统需求分析

2.1本文的相关概念与定义

2.1.1主控中心的定义

主控中心是整个企业网的控制中心,通过发送一系列的命令来控制企业网中sensor的扫描,同时它具有策略制定、任务调度、sensor存活性探测,以及与DS间通信、分析扫描结果、评估等功能。 2.1.2 sensor的定义

Sensor是运行在整个企业网中存活主机上的代理软件,具有接收和解析主控中心发来的命令,同时从服务器上下载相关的扫描插件,执行本地主机扫描,将扫描结果上传到服务器并通告给主控等相关功能。 sensor选举过程具备以下性质;

1)定时性:一旦加入通信组,sensor在固定时间间隔(如5m)内,在收集自身运行当前时间和IP地址后,利用选票Vote和通信组协议把信息告知组内其他sensor。 2)动态性:一旦某个DS生命期死亡或感知自己环境安全状态较差,则可以发起选举过程。

2.1.3其他相关概念

1)扫描策略(SP):是指达到扫描和原始信息收集功能,而对sensor制定的扫描对象、对象优先级和对象评估参考分值的一种方案(Schedule),具有静态属性。 SP::={a,o,p,c|a∈ATTRIBUTE,o∈OBJECT,c∈CVSS,p∈PRIORITY,a∧o∧p∧c→S}

任务策略中的扫描主要对象是通过插件来实现的,因此任务、策略、插件之间的关

9

中原工学院信息商务学院毕业设计(论文)

系可以通过定义给出。

定义单个插件的执行为原子任务tp,用集合的方式可以表示为一个全任务T如下: T={tp1,tp2,tp3,?,tpk},0

Kmax个原子任务tp的组合可构成2max个任务子集(空集考虑在内),每一个子集都可以表示为一个策略,分别定义为SPi,0

从上述集合之间的表示可以看出来,策略属于任务的一个子集。子集间的集合操作可形成多样化的策略,策略之间的操作可以形成多样化的任务,在实现的时候表现为策略的合并、策略分离等操作。

2)任务(Task):是指在一定范围内以策略为基础,在一定的时间内并在不同级别sensor上执行的基本工作单元(Job),具有动态特性。形式化描述为:

T::={a,sp,t,p,s|a∈ATTRIBUTE,sp∈SCAN_POLICY,t∈TIME,p∈PRIORITY,s∈SCOPE,a∧sp∧t∧p∧s→Job}

任务分配给sensor并在一定时空上执行,主要依靠对策略的解析以完成相关扫描和信息收集工作。即策略就是为了实现某个目标,在事先或进行中根据当前或预计的不同形势而制定若干行动的方案,并根据当前形势发展选择某一更适合的方案。 3)DS(Designate Sensor),指定sensor,充当S与CC通信间的桥梁,一个网段一个DS。

4)BDS(Backup Designate Sensor),备份指定sensor,时刻监视DS,一旦DS死亡,即充当DS。一个网段一个BDS。

5)TDS(Temp Designate Sensor),临时DS,赋值给CC第一次存活性检测到的S,一个网段一个TDS。

2.2主控中心在分布式评估中的地位与需求

2.2.1主控中心在分布式评估中的地位

主控中心在分布式评估中起着核心的领导地位,一个企业网络存在多个网段,每一个网段都有一个村长来管理这个网段中的子民,而主控中心就是管理所有村长的头。

10

中原工学院信息商务学院毕业设计(论文)

2.2.2主控中心在分布式评估中的需求分析

主控中心在分布式系统中作为服务器,控制着整个网络,需要有较高的稳定性行,更够快速的处理成百上千个sensor发起了连接请求,这需要在通讯方面采用有效地通讯模型,本文中主要采用了完成端口模型和线程池技术来处理。主控中心除了作为服务器外,它还将策略、报表、用户和web等模块组合起来,组成一个完整的控制中心系统,同时它自身还具备分析和评估的功能。

2.3小结

本章主要对分布式网络中的成员作了相关的定义,方便后续章节的内容展开,简要的介绍了主控中心在分布式网络的地位和需求分析,从整体上概括了主控中心需要完成的功能模块,以及需要和哪些模块结合在一块。

第3章主控中心的系统分析

3.1系统的总体设计方案

3.1.1研究思路

主控中心的是整个企业全网的控制中心,它的性能好坏直接影响到整个企业网评估的速度,从整个设计的角度出发,我们将主控分为以下四大模块: 1)策略配置模块

策略配置模块又分为整个企业网IP配置模块、系统参数设置模块和扫描策略配置模块。全网IP配置可以用来设置扫描的主机范围,系统参数主要是对服务器(ftp、数据中心)等参数的设置,扫描策略用来生成相关的任务发送给每一个sensor,指导sensor的扫描。 2)通讯模块

通信模块又分为sensor存活性探测、sensor任务的颁发、接收sensor实时上报的扫描状态和定时上报的环境、安全状态,下载相应的扫描结果文件,

11

中原工学院信息商务学院毕业设计(论文)

图3-1 通讯模块图

3)扫描结果处理模块

扫描结果处理模块又分为扫描结果分析和评估,分析模块加载相应的分析插件,对扫描的结果进行分析,分析的结果插入数据库,由评估模块来进行评估得出每个sensor最后的安全等级情况。 4)接口调用模块

主控中心调用的接口模块有策略、报表、用户管理和web服务器。

策略是一个动态链接库(DLL),由主控动态的加载和释放;报表和用户管理是两个单独的应用程序,由主控创建进程来启动,最后主控还与web有通讯的过程,web生成任务后通知给主控来执行。

12

中原工学院信息商务学院毕业设计(论文)

3.1.2主控总体框图

主控中心Web平台通信配置评估数据库管理报告生成升级S库e升n级sor升级帮助查统历数用询计史据户记库管录管理理Sensor存活性检测指部指令编令署产码调插度件生信息解采码集全局扫描快速扫描扫描配置单独扫描属性配置网段扫描自定义扫描单一评估网段评估全局评估日志管理知识库管理评估信息管理原始记录管理用户信息管理主控升级

图3-2 通讯模块结构

主要负责与Sensor对话,其中又分为发送和侦听两块。 1)发送包括命令和文件的传送。

发送的命令需要进行编码,之后才能向Sensor传送。

在检测Sensor存活性的时候一并获取局域网内客户机的信息,通过Sensor进行,Sensor开启才能够进行进一步的操作。 发送命令主要包括扫描,停止,等待等等。

原来计划根据扫描的不同配置来发送不同命令,现在发现没有必要,这是基于每次扫描必须下载插件这一原则考虑的,这个功能可以在发送插件里实现。

插件部署主要是在每次要求客户机扫描时进行,根据不同的需要,可以发送所有插件,发送定制好的某几个插件。发送的插件要求Sensor全部加载即可,毋须根据扫描任务选择加载,因为如果扫描任务不要求的插件是不会发送给Sensor的。 侦听功能主要是接收Sensor的消息,以及传过来的扫描结果等等。一般消息会包含:插件接收完毕,扫描开始,扫描完毕,出错,等等。 收到信息后需要进行译码。

3.2系统的设计原则与开发平台

3.2.1系统的设计原则

为系统管理员提供一个高效、方便的系统安全评估工具,特指定了以下设计原则:

13

中原工学院信息商务学院毕业设计(论文)

①简洁易懂的用户输入界面。 ②整个系统具有良好的扩充性。

③对安全策略信息的探测有比较好的准确性,并且高效、稳定。 ④良好的安全等级划分功能,适合不同用户的需求。

⑤对探测出的不安全的策略配置给出良好的解决方案或建议。 ⑥对工作环境的依赖性尽可能地少。 3.2.2系统的运行环境

系统可以运行在windows XP、windows server 2003及以上的版本上面。 3.2.3系统的开发平台

主控中心系统主要是在windows XP的平台上以VisualC++6.0作为主要开发工具。辅助开发主要有sql2005、ACCESS软件等。

3.3本文涉及的关键技术的分析

3.3.1完成端口模型分析

完成端口模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型。要记住的一个基本准则是,假如要为Windows NT或Windows2000开发高性能的服务器应用,同时希望为大量套接字I/O请求提供服务(Web服务器便是这方面的典型例子),那么I/O完成端口模型便是最佳选择!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。要注意的是,所谓“完成端口”,实际是Win32、Windows NT以及Windows2000采用的一种I/O构造机制,除套接字句柄之外,实际上还可接受其他东西。然而,本节只打算讲述如何使用套接字句柄,来发挥完成端口模型的巨大威力。使用这种模型之前,首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O

14

中原工学院信息商务学院毕业设计(论文)

请求。要做到这一点,需要调用CreateIoComletionPort函数。该函数定义如下: HANDLE CreateIoCompletionPort( HANDLE FileHandle, //handletofile

HANDLE ExistingCompletionPort, //handletoI/Ocompletionport ULONG _PTRCompletionKey, //completionkey

DWORD NumberOfConcurrentThreads //numberofthreadstoexecuteconcurrently); 在我们深入探讨其中的各个参数之前,首先要注意该函数实际用于两个明显有别的目的:■用于创建一个完成端口对象。■将一个句柄同完成端口关联到一起。最开始创建一个完成端口时,唯一感兴趣的参数便是NumberOfConcurrentThreads(并发线程的数量);前面三个参数都会被忽略。NumberOfConcurrentThreads参数的特殊之处在于,它定义了在一个完成端口上,同时允许执行的线程数量。理想情况下,我们希望每个处理器各自负责一个线程的运行,为完成端口提供服务,避免过于频繁的线程“场景”切换。若将该参数设为0,表明系统内安装了多少个处理器,便允许同时运行多少个线程!可用下述代码创建一个I/O完成端口:CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,0)

该语句的作用是返回一个句柄,在为完成端口分配了一个套接字句柄后,用来对那个端口进行标定(引用)。1.工作者线程与完成端口成功创建一个完成端口后,便可开始将套接字句柄与对象关联到一起。但在关联套接字之前,首先必须创建一个或多个“工作者线程”,以便在I/O请求投递给完成端口对象后,为完成端口提供服务。在这个时候,大家或许会觉得奇怪,到底应创建多少个线程,以便为完成端口提供服务呢?这实际正是完成端口模型显得颇为“复杂”的一个方面,因为服务I/O请求所需的数量取决于应用程序的总体设计情况。在此要记住的一个重点在于,在我们调用CreateIoComletionPort时指定的并发线程数量,与打算创建的工作者线程数量相比,它们代表的并非同一件事情。早些时候,我们曾建议大家用CreateIoComletionPort函数为每个处理器都指定一个线程(处理器的数量有多少,便指定多少线程)以避免由于频繁的线程“场景”交换活动,从而影响系统的整体性能。CreateIoComletionPort函数的NumberOfConcurrentThreads参数明确指示系统:在一个完成端口上,一次只允许n个工作者线程运行。假如在完成端口上创建的工作者线程数量超出n个,那么在同一时刻,最多只允许n个线程运行。但实际上,在一段较短的时间内,系统有可能超过这个值,但很快便会把它减少至事先在

15

中原工学院信息商务学院毕业设计(论文)

CreateIoComletionPort函数中设定的值。那么,为何实际创建的工作者线程数量有时要比CreateIoComletionPort函数设定的多一些呢?这样做有必要吗?如先前所述,这主要取决于应用程序的总体设计情况。假定我们的某个工作者线程调用了一个函数,比如Sleep或WaitForSingleObject,但却进入了暂停(锁定或挂起)状态,那么允许另一个线程代替它的位置。换言之,我们希望随时都能执行尽可能多的线程;当然,最大的线程数量是事先在CreateIoCompletonPort调用里设定好的。这样一来,假如事先预计到自己的线程有可能暂时处于停顿状态,那么最好能够创建比CreateIoCompletonPort的NumberOfConcurrentThreads参数的值多的线程,以便到时候充分发挥系统的潜力。一旦在完成端口上拥有足够多的工作者线程来为I/O请求提供服务,便可着手将套接字句柄同完成端口关联到一起。这要求我们在一个现有的完成端口上,调用CreateIoCompletionPort函数,同时为前三个参数—FileHandle,ExistingCompletionPort和CompletionKey—提供套接字的信息。其中,FileHandle参数指定一个要同完成端口关联在一起的套接字句柄。ExistingCompletionPort参数指定的是一个现有的完成端口。CompletionKey(完成键)参数则指定要与某个特定套接字句柄关联在一起的“单句柄数据”;在这个参数中,应用程序可保存与一个套接字对应的任意类型的信息。之所以把它叫作“单句柄数据”,是由于它只对应着与那个套接字句柄关联在一起的数据。可将其作为指向一个数据结构的指针,来保存套接字句柄;在那个结构中,同时包含了套接字的句柄,以及与那个套接字有关的其他信息。就象本章稍后还会讲述的那样,为完成端口提供服务的线程例程可通过这个参数,取得与套接字句柄有关的信息。根据我们到目前为止学到的东西,首先来构建一个基本的应用程序框架。程序清单8-9向大家阐述了如何使用完成端口模型,来开发一个回应(或“反射”)服务器应用。在这个程序中,我们基本上按下述步骤行事:

1)创建一个完成端口。第四个参数保持为0,指定在完成端口上,每个处理器一次只允许执行一个工作者线程。

2)判断系统内到底安装了多少个处理器。

3)创建工作者线程,根据步骤2)得到的处理器信息,在完成端口上,为已完成的I/O请求提供服务。在这个简单的例子中,我们为每个处理器都只创建一个工作者线程。这是由于事先已预计到,到时不会有任何线程进入“挂起”状态,造成由于线程数量的不足,而使处理器空闲的局面(没有足够的线程可供执行)。调用CreateThread

16

中原工学院信息商务学院毕业设计(论文)

函数时,必须同时提供一个工作者例程,由线程在创建好执行。本节稍后还会详细讨论线程的职责。

4)准备好一个监听套接字,在端口5150上监听进入的连接请求。 5)使用accept函数,接受进入的连接请求。

6)创建一个数据结构,用于容纳“单句柄数据”,同时在结构中存入接受的套接字句柄。

7)调用CreateIoComletionPort,将自accept返回的新套接字句柄同完成端口关联到一起。通过完成键(CompletionKey)参数,将单句柄数据结构传递给CreateIoComletionPort。

8)开始在已接受的连接上进行I/O操作。在此,我们希望通过重叠I/O机制,在新建的套接字上投递一个或多个异步WSARecv或WSASend请求。这些I/O请求完成后,一个工作者线程会为I/O请求提供服务,同时继续处理未来的I/O请求,稍后便会在步骤3)指定的工作者例程中,体验到这一点。 9)重复步骤5)~8),直至服务器中止。 3.3.2线程池技术分析

服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些\池化资源\技术产生的原因。比如大家所熟悉的数据库连接池正是遵循这一思想而产生的,本文将介绍的线程池技术同样符合这一思想。

目前,一些著名的大公司都特别看好这项技术,并早已经在他们的产品中应用该技术。比如IBM的WebSphere,IONA的Orbix2000在SUN的Jini中,Microsoft的MTS(Microsoft Transaction Server2.0),COM+等。现在您是否也想在服务器程序应用该项技术?线程池技术如何提高服务器程序的性能我所提到服务器程序是指能够

17

中原工学院信息商务学院毕业设计(论文)

接受客户请求并能处理请求的程序,而不只是指那些接受网络客户请求的网络服务器程序。多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间。可以举一个简单的例子:

假设在一台服务器完成一项任务的时间为TT1创建线程的时间T2在线程中执行任务的时间,包括线程间同步所需时间T3线程销毁的时间显然T=T1+T2+T3。注意这是一个极度简化的假设。

可以看出T1,T3是多线程本身的带来的开销,我们渴望减少T1,T3所用的时间,从而减少T的时间。但一些线程的使用者并没有注意到这一点,所以在程序中频繁的创建或销毁线程,这导致T1和T3在T中占有相当比例。显然这是突出了线程的弱点(T1,T3),而不是优点(并发性)。线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3分别安排在服务器程序的启动和结束的时间段或者一些空闲的时间段,这样在服务器程序处理客户请求时,不会有T1,T3的开销了。线程池不仅调整T1,T3产生的时间段,而且它还显著减少了创建线程的数目。在看一个例子:假设一个服务器一天要处理50000个请求,并且每个请求需要一个单独的线程完成。我们比较利用线程池技术和不利于线程池技术的服务器处理这些请求时所产生的线程总数。在线程池中,线程数一般是固定的,所以产生线程总数不会超过线程池中线程的数目或者上限(以下简称线程池尺寸),而如果服务器不利用线程池来处理这些请求则线程总数为50000。一般线程池尺寸是远小于50000。所以利用线程池的服务器程序不会为了创建50000而在处理请求时浪费时间,从而提高效率。这些都是假设,不能充分说明问题,下面我将讨论线程池的简单实现并对该程序进行对比测试,以说明线程技术优点及应用领域。 3.3.3 socket通讯技术分析

主控在Socket通信中主要用到了TCP和UDP两种网络协议,主机存活性探测用到的是UDP协议,主要有以下几个特点:

(1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息

18

中原工学院信息商务学院毕业设计(论文)

段。(2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。(3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

任务的分发和sensor状态上报使用的是TCP协议,正式基于TCP协议可靠这一特点,从任务分发到评估结束整个通讯过程才得以连续的完成。

另外,还采用了socket异步通知事件WSAAsyncSelect()和IO重叠操作(IO完成端口)。

3.3.4 ADO数据库技术分析

数据库访问技术,主要是ADO(ActiveX Data Objects)技术,通过查询安全策略信息库,可以方便程序得到系统的策略配置列表信息及每个策略的描述信息。

ADO是Microsoft为最新和最强大的数据访问范例OLE(Object Linking and Embedding)DB而设计的,是一个便于使用的应用程序层接口。ADO使您能够编写应用程序以通过OLEDB提供者访问和操作数据库服务器中的数据。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。之所以称为ADO,是用了一个比较熟悉的暗喻,OLE自动化接口。OLEDB是一组\组件对象模型”(COM)接口,是新的数据库低层接口,它封装了ODBC的功能,并以统一的方式访问存储在不同信息源中的数据。OLEDB是Microsoft UDA(Universal Data Access)策略的技术基础。OLEDB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。也就是说,OLEDB并不局限于ISAM、Jet甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在Excel电子数据表、文本文件、电子邮件/目录服务甚至邮件服务器,诸如Microsoft Exchange中的数据。但是,OLEDB应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。您需要的API应该是一座连接应用程序和OLEDB的桥梁,这就是ActiveX Data Objects(ADO)。

19

中原工学院信息商务学院毕业设计(论文)

ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。

_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程,使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。通常同CDatabase一样,使用它创建一个数据连接,然后使用其它对象执行数据输入输出操作。

_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。

_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。

3.3.5动态链接库技术分析

在一般的应用程序里,开发出来的产品满足了当时的设计需求。然而,用户往往会提出新的功能需求或者不同的用户需要特定的功能。为了满足这些需求而不对程序做完全的重写或者再次经历开发、编译、测试、分发这一过程,动态链接库技术的应用是不错的选择。动态链接库的应用使得可以在不修改主程序二进制代码的情况为软件增加新的功能,满足不同客户的需求。简单地说,动态链接库这个框架模型是在主程序在启动的时候查找其功能并加载其功能,让动态链接库与主程序实现互操作。很多应用,比如Microsoft Office产品,使用类似的技术允许第三方开发出与Microsoft Office共同工作的产品,从而扩充其功能。

在本系统的开发过程中采用动态链接库(Dynamic-linklibrary, dll)来实现动态链接

20

中原工学院信息商务学院毕业设计(论文)

库。动态链接库(Dynamic link library)[i]是一种具有一定功能的可执行软件模块。动态链接库是Microsoft Windows组件模型的核心-即使是建立在Microsoft.Net的公共语言运行库基础上的组件模型也是围绕这动态链接库。Windows本身就是由DLL组成的。而且MFC DLL Wizard和MFC库也对DLL有了更多很好的支持。在VisualC++6.0中可以很方便的编写自己的动态链接库。

通过以上的分析,在本系统中就是采用DLL来实现动态链接库技术的,程序把需要扫描的各模块分别封装在各自的动态链接库中,有主程序对它们进行调用。为了方便软件的使用,可能系统管理员仅仅希望扫描系统的某一部分或者某个方面,所以系统设计中不可避免的有系统的软件使用者对扫描漏洞模块进行选择的功能。根据系统管理员对扫描选项的选择,加载不同的组件,即动态链接库,对主机系统进行扫描。这样不仅方便系统编程的实现,而且在系统启动时可以不加载不必要的动态链接库。

最后,动态链接库技术有利于系统的更新、升级。目前系统中采用的扫描算法是最基本的,在判断系统是否安全的准确性上还有很大的不足,为了便于程序的升级,系统中采用了配置文件相关的方法来获得动态链接库的加载项,以便将来在升级扫描技术时最大限度的复用原有程序。

以下是使用动态链接库来实现的动态链接库遵循的一般步骤 1)主程序初始化。

2)读取配置文件,获得系统功能选项和动态链接库的配置关系。

3)初始化动态链接库的函数查找特定的动态链接库目录,找出所有的满足条件的动态链接库文件。

4)主程序调用动态链接库中的初始化函数,实现动态链接库的初始化。

5)在执行过程3)后,主程序缓存每个模块导出的函数名并建立引用,以方便以后程序调用。

6)在程序运行期间,通过用户交互调用动态链接库中的功能。

7)在程序结束的时候,调用动态链接库中的结束函数来释放动态链接库初始化和运行中占用的资源。 8)主程序结束。

21

中原工学院信息商务学院毕业设计(论文)

3.4小结

本章主要介绍了系统的总体设计方案、系统的开发和运行环境以及使用到的主要技术。总体方案给出了系统的框架结构和模块结构,主要使用的技术有socket通信和iO完成端口技术、线程池技术以及动态链接库、ado数据库访问技术。IO完成端口技术用来响应sensor的大规模连接请求,线程池用来处理多sensor任务的分发,使用动态链接库技术来制作扫描插件和分析插件,ado数据库访问技术用来访问和修改数据中心的数据。

第4章 主控中心的系统设计和实现

4.1系统模块的设计与实现

4.1.1用户登录与权限的设置

登录的用户分为以下角色:操作员、分析员、管理员、审计员和用户管理员这几个角色,每一个角色在数据库里都对应相关的操作权限,根据权限的不一样,主控中心显示的界面也不一样,操作的方式也不一样。具体的权限在用户管理模块介绍。 4.1.2主控中心界面示意图

界面左边选项卡分为任务和sensor IP两大类,任务按时间分类显示出来,比如今天创建的任务叫2010-5-15,双击或者是右击可以查看任务的相关信息和与任务绑定的策略信息。Sensor IP一栏列出了sensor的所有IP,界面右边的视图显示了存活的IP和不存活的IP的详细信息。

菜单栏中列出了主控中心的所有功能:

任务:新建任务、编辑任务、删除任务、探测sensor和退出

策略管理:策略主界面、删除策略、新建策略、导出策略、导入策略、合并策略和分离策略。

日志管理:用户操作日志、用户操作统计、系统运行日志、sensor日志和日志管理和维护。

22

中原工学院信息商务学院毕业设计(论文)

报告生成:查看技术报告、查看综合报告。 用户管理与审计:管理员、审计员。

升级:自动升级、定时升级、手动升级、sensor升级、数据库升级和主控升级。 Web管理:web查询。 参数设置:服务器参数设置。 帮助

图4-1 主控中心主界面

23

中原工学院信息商务学院毕业设计(论文)

4.1.3企业全网IP的配置 企业全网的IP配置分为三个部分:

1)根据单个ip进行配置,可以配置连续或者不连续的ip地址范围,如果只配置一个IP直接输入就行,如果要配置一段连续的IP,可以设置起始IP和结束IP,如下图所示:

图4-2 单个sensorIP配置

2)根据起始IP和结束IP进行配置,主要是添加一个网段内连续的IP,但是可以连续的添加多个网段,如图:

24

中原工学院信息商务学院毕业设计(论文)

图4-3 起始和终止IP配置

3)根据网络地址和子网掩码来配置IP,这样每一次添加的IP就是一个网段内的所有IP地址,也可连续的添加多个网段上的IP地址。如图所示:

图4-4 子网IP配置

25

中原工学院信息商务学院毕业设计(论文)

4.1.4系统参数的配置

FTP和数据库是数据存储中心,FTP用来作为文件传输的中间桥梁,由sensor将扫描结果上传到FTP上,再由主控中心从FTP上下载;数据库存储整个评估系统的标准数据,是评估的核心数据库,他们两者的参数在主控中心设置,修改后立即生效。

图4-5 系统参数配置

4.1.5任务的创建、编辑、查看和删除 1)创建任务

任务创建分为三个步骤,第一个步骤设置任务的基本属性,包括任务名称、相关的注释、sensor优先级和任务的优先级,创建人由登录用户的类型来决定,创建时间和修改时间是本地系统的当前时间,如下图:

26

中原工学院信息商务学院毕业设计(论文)

图4-6 任务创建第一步

第二个步骤:将已经配置好的策略添加到任务中,如果你对当前策略不是很满意可以新建策略,添加完策略后为该任务文件配置任务扫描范围,即IP范围,如下图所示:

27

中原工学院信息商务学院毕业设计(论文)

图4-7 任务创建第二步

第三个步骤:设置任务开始的时间,如果选择立即执行,任务配置完成后立即执行任务;

如果选择一次性,可以设置执行任务的时间点;如果选择每天、每周或者是每月,那么该任务将会周期性的在指定时间执行本次任务。

28

中原工学院信息商务学院毕业设计(论文)

图4-8 任务创建第三步

3)任务的删除

打开删除任务对话框,从数据库中读出所有的任务列表,按住Ctrl键选中多行,点确定

29

中原工学院信息商务学院毕业设计(论文)

图4-9 任务删除

4.1.6策略管理器的设计与实现 1)策略主界面

界面的左边按时间列出了数据库中存储的已经存在的策略,最上面列出了两种查询方式:按名称查找和按时间查找;右边窗口显示选中策略的属性。 界面的最上面是菜单栏和工具栏:

策略:新建策略、保存策略、另存为、导出策略、导入策略、属性和退出 编辑:设置(插件优先级、设置CVSS分值)、合并策略、分离策略和删除策略 视图:标准模式 帮助

30

中原工学院信息商务学院毕业设计(论文)

图4-9 策略主界面

2)新建策略

第一步:设置策略的基本属性,包括策略的名称、相关的注释、操作系统的类型、数据库类型和网络设备,创建人是登录者的角色,时间是系统当前的时间。

图4-10 策略创建第一步

第二步:设置扫描的强度,可以选择强、中、低,也可以选择自定义,自定义中提

31

中原工学院信息商务学院毕业设计(论文)

供了选择插件的类型。

图4-11 策略创建第二步

第三步:最后设置sensor扫描开启的最大线程和通讯延迟。

图4-12 策略创建第三步

32

中原工学院信息商务学院毕业设计(论文)

3)设置插件优先级

每一个插件都有一个默认的优先级,可通过设置插件优先级来修改插件的优先级,插件的优先级用在sensor扫描时动态的优先加载。

图4-13 策略优先级设置

4)合并、分离策略

如果你要是对新建的策略不是很满意,可以选择重新创建,也可以选择合并和分离策略。

合并后的策略是一个新的策略,同时删除合并前选中的策略,

33

中原工学院信息商务学院毕业设计(论文)

图4-14 合并策略

分离是在合并的基础上进行的,只有存在合并的策略才能分离,

34

中原工学院信息商务学院毕业设计(论文)

5)删除策略

删除完策略后,与策略相关的任务都得全部删除掉,保证数据的一致性。

图4-15 删除策略

35

中原工学院信息商务学院毕业设计(论文)

4.1.7 sensor存活性探测的设计与实现

1)存活性探测采用UDP协议,使用起来简单、运行速度快,由于在局域网内使用,网络拥塞情况比较少,而且采用连续发送三个数据包,接收到一个返回的包就认为该sensor是存活,增加了探测的可靠性。

图4-16 存活性探测交互图

2)首先启动存活性探测线程,在线程里面进行如下操作:读取IP配置文件,提取第一个IP,创建socket套接字,将套接字关联到异步通知事件上,连续发送3个UDP数据包,提取下一个IP,重复上述动作,直到将所有的sensor IP遍历完成。

36

中原工学院信息商务学院毕业设计(论文)

3)在异步套接口上接收sensor返回来的数据包,收到包后提取IP和环境、安全状态,判断sensor存活信息是否已经存在,如果不存在则插入IP存活配置文件,同时在界面显示出来。

37

中原工学院信息商务学院毕业设计(论文)

图4-17 存活性探测流程图

38

中原工学院信息商务学院毕业设计(论文)

4.1.8 任务分发的设计与实现 1)任务分发

Sensor开启监听套接口,主控主动连接sensor,对应的是一对多的关系,sensor接收到任务后开始执行任务同时断开连接,本次通信结束。

2)主控启动分发任务的线程,在线程里进行任务分发的过程:首先判断线程池里面是否有线程在工作,如果有则等待直到工作线程free为止,读取任务文件,解析IP,判断IP是否在存活列表中,是则进行分发任务,创建任务对象,将任务对象投递到线程池中,执行工作线程(绑定套接口,连接sensor,发送数据)。

39

中原工学院信息商务学院毕业设计(论文)

图4-18 任务分发流程图

40

本文来源:https://www.bwwdw.com/article/wyvp.html

Top