毕业设计(论文)-在线安全检测系统设计.doc_第1页
毕业设计(论文)-在线安全检测系统设计.doc_第2页
毕业设计(论文)-在线安全检测系统设计.doc_第3页
毕业设计(论文)-在线安全检测系统设计.doc_第4页
毕业设计(论文)-在线安全检测系统设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中央广播电视大学人才培养模式改革和开放教育中央广播电视大学人才培养模式改革和开放教育 计算机科学与技术专业毕业论文计算机科学与技术专业毕业论文 在线安全检测系统设计在线安全检测系统设计 姓名:姓名: 学号:学号:438438 学校:工商电大学校:工商电大 指导老师:指导老师: - 2 - 目目 录录 摘要 3 关键词3 一、 在线安全研究的目的和现状3 (一) 研究目的3 (二) 研究内容概述4 (三) 系统需求分析4 二、 漏洞扫描技术概述5 (一) 什么是漏洞扫描5 (二)漏洞扫描器的分类5 (三)漏洞扫描气的工作原理6 (四)漏洞扫描的整体结构7 ( 五)CGI 的应用8 三、 详细设计9 (一)在线升级工作原理9 (二)多线程原理及实现10 (三) MFC 部分类的使用11 四、 关键技术实现13 (一)在线升级系统的实现13 (二)多线程实现的方法15 五、 系统调试16 参考文献 17 - 3 - 在线安全检测系统设计 摘摘 要要: 21 世纪是信息时代,信息已成为社会发展的重要战略资源,社会的信息化已 成为当今世界发展的潮流和核心,而信息安全在信息社会中将扮演极为重要的 角色。随着计算机网络的不断发展,全球信息化已成为人类发展的大趋势。但 由于计算机网络具有联结形式多样性、终端分布不均匀性和网络的开放性、互 连性等特征,致使网络容易受到黑客、恶意软件和其他不轨的攻击,前者会对 用户造成不可预料的影响,而后者往往使系统崩溃。无论是在局域网还是在广 域网中,都存在着自然和人为等诸多因素的脆弱性和潜在威胁。故此,网络的 安全措施应是能全方位地针对各种不同的威胁和脆弱性,这样才能确保网络信 息的保密性、完整性和可用性.。 本文开始的部分本文的开始部分,通过对黑客行为和典型攻击的分析,总 结了网络安全漏洞存在必然原因,并综述了计算机网络安全的现状,以及漏洞 扫描技术的具体概念,分类和局限性。本文的重点在于改进原有系统的主题模 块,并对原有系统增加了一些功能,使之功能更加完善。最后提出了该系统还 存在的不足以及一些进一步完善和扩展的建议。 关键词 :网络安全 扫描 漏洞 一、在线安全研究的目的和现状 (一) 研究目的 现代计算机系统功能日渐复杂,网络体系日渐强大,正在对社会产生巨大 深远的影响,但同时由于计算机网络具有联结形式多样性、终端分布不均匀性 和网络的开放性、互连性等特征,致使网络易受黑客、恶意软件和其他不轨的 攻击,所以使得安全问题越来越突出。 - 4 - (二)研究内容概述 本课题的研究内容包括:分析黑客的攻击行为、收集整理网络安全漏洞、 漏洞扫描系统的设计并实现,漏洞扫描系统的测试与改进。笔者着重参与了漏 洞扫描系统的设计并实现、漏洞扫描系统的测试与改进。在系统结构方面我们 拟采用两种方案,实现两种结构: 一种是基于主机的网络安全评估系统,一种是基于网络的安全评估系统。 基于主机的,是用户控制界面和扫描引擎都在一个应用程序中,安装灵活,但 不便于移植,且受到系统本身所在应用平台的限制。 另一种是基于网络的是 Browser/Server 模式,扫描引擎等主要部分都放在安 全的扫描服务器上。管理者在独立的其它工作站上进行监控,通过浏览器进行 扫描控制和查看结果。在访问工作站和扫描引擎之间的数据通讯采用加密通道 方式。 (三)系统需求分析 1、系统功能的要求 (1)系统首先应该可以对相应 IP 进行扫描,并给出相应的报告 (2)能够实现对已加漏洞的扫描,并给出一份简略的报告和一份详尽的报 告 (3)系统在扫描和更新的时候应该有明显的标识 2 、系统性能要求 (1)系统应该在扫描过程中使用多线程扫描,以节省使用时间 (2)系统应该考虑到用户在适用本程序时,要不断的更新漏洞库,因此,系统 需要有在线升级的功能。 3、用户界面要求 (1)用户界面应该简洁,通俗易懂, (2)用户界面应该能够准确的显示出程序的进程 (3)用户界面应该给出帮助文件,是用户能够独立使用该程序。 4、系统的可扩展性 (1)应该留出足够的空间,以方便以后添加控键。 - 5 - (2)将来系统成熟时,应该可以基于任何操作平台进行扫描 5、采用方法 关于在线安全评估系统的扫描过程大致可以分为两类: 一类是基于主机的; 一类是基于网络的。 在此次研究中,我们拟同时采用两种方法 6、系统设计工具的选择 Microsoft 公司开发的 VisualC+一直是一种具有高度综合性的软件开发工 具,用它开发的程序有着运行速度快,可移植性强等优点。因此,我们采用 VC+来完成我们系统的设计任务 二、漏洞扫描技术概述 (一) 什么是漏洞扫描 漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。通过使用 漏洞扫描器,系统管理员能够发现所维护的 Web 服务器的各种 TCP 端口的分配、 提供的服务、Web 服务软件版本和这些服务及软件呈现在 Internet 上的安全漏 洞。从而在计算机网络系统安全保卫战中做到“有的放矢” ,及时修补漏洞,构 筑坚固的安全长城。 (二) 漏洞扫描器的分类 按常规标准,可以将漏洞扫描器分为三类: 1、 主机漏洞扫描器(Host Scanner) 在系统本地运行检测系统漏洞的程序。如著名的 COPS、tripewire、tiger 等 自由软件。 2、 网络漏洞扫描器(Network Scanner) 基于 Internet,远程检测目标网络和主机系统漏洞的程序。如 Satan、ISS 软件。 3、入侵扫描器(Intrusion Scanners) 是能够远程实时检测目标主机漏洞,在某些情况下可允许实时尝试和探测这 - 6 - 些漏洞的程序 (三)漏洞扫描气的工作原理 网络漏洞扫描器通过远程检测目标主机 TCP/IP 不同端口的服务,记录目标 给予的回答。通过这种方法,可以搜集到很多目标主机的各种信息(例如:是 否能用匿名登陆,是否有可写的 FTP 目录,是否能用 Telnet,httpd 是否是用 root 在运行) 。在获得目标主机 TCP/IP 端口和其对应的网络访问服务的相关信 息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视 为漏洞存在。此外,通过模拟黑客的进攻手法,对目标主机系统进行攻击性的 安全漏洞扫描,如测试弱势口令等,也是扫描模块的实现方法之一。如果模拟 攻击成功,则视为漏洞存在。 在匹配原理上,该网络漏洞扫描器采用的是基于规则的匹配技术,即根据 安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员关于网络系 统安全配置的实际经验,形成一套标准的系统漏洞库,然后再在此基础之上构 成相应的匹配规则,由程序自动进行系统漏洞扫描的分析工作。 所谓基于规则是基于一套由专家经验事先定义的规则的匹配系统。例如, 在对 TCP 80 端口的扫描中,如果发现/cgi-bin/phf 或/cgi-bin/Count.cgi, 根据专家经验以及 CGI 程序的共享性和标准化,可以推知该 WWW 服务存在两个 CGI 漏洞。同时应当说明的是,基于规则的匹配系统也有其局限性,因为作为 这类系统的基础的推理规则一般都是根据已知的安全漏洞进行安排和策划的, 而对网络系统的很多危险的威胁是来自未知的安全漏洞,这一点和 PC 杀毒很相 似。 实现一个基于规则的匹配系统本质上是一个知识工程问题,而且其功能应 当能够随着经验的积累而利用,其自学习能力能够进行规则的扩充和修正,即 是系统漏洞库的扩充和修正。当然这样的能力目前还需要在专家的指导和参与 下才能实现。但是,也应该看到,受漏洞库覆盖范围的限制,部分系统漏洞也 可能不会触发任何一个规则,从而不被检测到。 整个网络扫描器的工作原理是:当用户通过控制平台发出了扫描命令之后, 控制平台即向扫描模块发出相应的扫描请求,扫描模块在接到请求之后立即启 - 7 - 动相应的子功能模块,对被扫描主机进行扫描。通过对从被扫描主机返回的信 息进行分析判断,扫描模块将扫描结果返回给控制平台,再由控制平台最终呈 现给用户。 (四) 漏洞扫描的整体结构 外部扫描模块直接从安装了外部扫描模块的运行平台(简称扫描主机)上 以其他机器为对象(简称被扫描主机)进行扫描;内部扫描模块则以被扫描主 机作为运行平台,由另一台机器从远程进行控制;而控制平台则提供一个人机 交互的界面。 - 8 - 内部 扫描 模块 外部扫描 模块 被被扫扫描描主主机机 扫扫描描主主机机 外部 扫描 请求 各种网络服务请求 内部扫描请求 内部扫描结果 外部扫描返回信息 用户 控制台 图 2 扫扫扫扫扫扫扫扫扫扫扫 内部扫描原理:当用户通过控制平台发出了内部扫描的命令之后,控制平台即 向内部扫描模块发出相应的内部部扫描请求,由于内部扫描模块就装在被扫描 主机上,所以内部扫描模块接到请求后启动各子功能模块对本机进行相应的内 部扫描,并将结果实时的返回给控制平台,再由控制平台将扫描结果最终呈现 给用户。 (五) CGI 的应用 整个漏洞扫描系统利用了浏览器/服务器(B/S)架构,目的是为了消除由 于操作系统平台的不同而给程序的运行带来的差异,还为了能利用 HTML 提供的 一系列功能,如超文本功能、灵活的版面编辑功能来构建一个美观灵活的人机 接口。在该网络漏洞扫描器的实现中,我们通过 CGI 技术来连接前台的浏览器 和后台的扫描程序。 CGI 是通用网关接口,作为一种规范,它允许 Web 服务器执行其他程序并 将它们的输出以相应的方式储存在发给浏览器的文本、图形和音频中。CGI 程 序能够提供从简单的表单处理到复杂的数据库查询等各种功能,这大大增强了 - 9 - Web 的动态处理能力和交互能力。服务器和 CGI 程序相结合能够扩充和自定义 World Wide Web 的能力。 CGI 过程的主要步骤如下: 1 浏览器将 URL 的第一部分解码并联系服务器; 2 浏览器将 URL 的其余部分提供给服务器; 3 服务器将 URL 转换成路径和文件名; 4 服务器意识到 URL 指向一个程序,而非一个静态的文件; 5 服务器准备环境变量,执行 CGI 程序; 6 程序执行,读取环境变量和 STDIN; 7 程序为将来的内容向 STDOUT 发送正确的 MIME 头信息; 8 程序向 STDOUT 发送其输出的其余部分,然后终止; 9 服务器发现程序终止,关闭与浏览器的连接; 10 浏览器从程序中显示输出。 三、 详细设计 (一)在线升级工作原理 一个 Internet 客户端程序的目的是通过 Internet 协议如:HTTP、FTP 等 来存取网络数据源(服务器)的信息。客户端程序可以访问服务器获得象天气 预报,股票价格、重要新闻数据,甚至是与服务器交换信息。Internet 客户端 程序可以通过外部网络(Internet)或内部网络(一般为 Intranet)访问服务 器。 为了开发 Internet 客户端程序。MFC 类库提供了专门的 Win32 Internet 扩展接口,也就是 WinInet。MFC 将 WinInet 封装在一个标准的、易于使用的类 - 10 - 集合中。在编写 WinInet 客户端程序时,你既可以直接调用 Win32 函数,也可以 使用 WinInet 类库。 Win32 Internet 扩展提供了对普通 Internet 协议的访问,这些协议包括: HTTP、FTP 和 Gopher。Gopher 已经渐渐淡出。借助于 WinInet 编程接口,开发 人员不必去了解 Winsock、TCP/IP 和特定 Internet 协议的细节就可以编写出高 水平的 Internet 客户端程序。WinInet 为所有几种协议(HTTP、FTP 和 Gopher)提供了统一的函数集,也就是 Win32 API 接口。利用这些统一的函数 集,大大简化了针对 HTTP、FTP 等协议的编程,从而轻松地将 Internet 集成到 自己的应用程序中。底层协议的转换(如从 FTP 到 HTTP)只要对源代码稍作修 改就可以完成。 在 Visual C+工程中提供有两种方式来使用 WinInet。一种是直接调用 Win32 Internet 函数,另一种是使用 WinInet 类库。 MFC 对 WinInet 的封装是通过提供三个由 CStdioFile 派生类实现的。这三 个派生类是:CInternetFile、 CHttpFile 和 CGopherFile。由于 Gopher 协议 已经很少使用,所以本文将不再对 CGopherFile 进行讨论。对开发人员来说, 不管你以前是否用过 CStdioFile,WinInet 都是很好理解并且易于使用的。它 使得存取 Internet 数据易如反掌,使得 Internet 数据和本地数据的处理一致 透明,数据的存储位置已经不再重要。 MFC WinInet 类有如下优点: 缓冲器输入输出 数据的类型安全处理 许多函数的参数都是缺省值 对普通的 Internet 错误进行异常处理 自动清除打开的句柄和连接 使用 WinInet 提供的 API 函数,你可以: 通过 HTTP 协议下载 HTML 页,HTTP 协议是专门用于在服务器和客户浏览器之间 传输 HTML 页。 发送 FTP 请求上传或下载文件以及获取服务器的目录信息。通过匿名登陆下载 文件便是 FTP 的典型应用。 其它基于 HTTP、FTP 协议的应用。 - 11 - 使用 WinInet 的一般流程如下图: 图 3 (二) 多线程原理及实现 每个进程都有私有的虚拟地址空间,进程的所有线程共享一个地址空间。 每个线程被 CPU 分配一个时间片,一旦被激活,他正常运行直到时间片耗尽并 被挂起,此时,操作系统选择另一个线程进行运行,通过时间片轮转,又由于 各个时间片很小(20 毫秒级) ,看起来就像多个线程同时在工作。实际上只有 多处理器系统上才是真正的在可得到的处理器上同时运行多个线程。基于 Win32 的应用程序,以使用户提高效率,加强反应能力以及进行后台辅助处理。 在 Visual C+中利用 MFC 编程时,线程被分为工作者线程和用户界面线成 两大类。前者常用于处理后台任务,执行这些后台任务并不会耽搁用户对应用 程序的使用,即用户无需等待后台任务的完成。后者常用来独立的处理用户输 入和响应用户事件。 (三) MFC 部分类的使用 WinInet 是指由 Microsoft Win32 提供的 Internet 函数,在 WININET.DLL 动态库中所包含的这些函数使得程序员能方便地使用 HTTP、FTP 和 gopher 访问 Internet,再稍加变通后还能进行 Finger 查询和 Whois 查询。VC 4.2 以上版 本的 MFC 则提供了 WinInet 类,这些类屏蔽了 WinSock 和 TCP/IP 协议,程序员 只须调用这些类的方法,而不用了解协议的具体内容就能编制客户端程序访问 建立连接 发送请求 关闭连接 - 12 - HTTP、FTP、gopher 等站点。 1. WinInet 类及其功能 MFC 共提供了 13 个 WinInet 类,它们实现了一系列 Internet 访问功能。 (1)CInternetSession:创建 1 个或多个 Internet 通道。 (2)CInternetConnection:与子类 (ChttpConnection、CftpConnection、CGopherConnection)管理应用程序与 Internet 服务器(Http 服务器、FTP 服务器、gopher 服务器)建立的连接。 (3)CInternetFile:与子类(CHttpFile、CGopherFile)提供了访问远程服 务器(Http 服务器、gopher 服务器)文件系统的方法。 (4)CFileFind:与子类(CftpFileFind、CgopherFileFind)完成在本地及远 程 Internet 站点(FTP 服务器、 gopher 服务器)查找文件的功能。 (5)CGopherLocator:从 gopher 站点获取 gopher 位标(locator),并提供给 CgopherFileFind 用来定位。 (6)CInternetException:描述与 Internet 操作有关的例外情况。 2. 用 WinInet 编制 Internet 客户端程序 Internet 客户端应用程序指基于 Internet 协议(如 gopher、FTP、HTTP 等)从 网络数据资源(服务器)获取信息的程序。程序员可以直接调用 Win32 函数或采 用 MFC 的 WinInet 类编写 WinInet 客户端应用程序。 作者在编制 Internet 客户端程序的过程中,用 WinInet 类完成了 HTTP 查 询、FTP 查询、gopher 查询、Finger 查询、Whois 查询等功能模块的实现。查 询的主要功能是设法与服务器建立连接,然后从服务器直接接受回应信息或获 取对服务器相关文件系统的控制句柄。下面分别阐述不同协议查询方法的实现。 WinInet 类的声明在头文件afxinet.h中,在使用到 WinInet 类的应用程 序中要有语句: #include 3. 访问 WWW 服务器 做一个 HTTP 连接,最简单的方法是创建 CInternetSession 对象,以某一 有效 HTTP 站点 URL 为参数调用函数 OpenURL(),它返回 CInternetFile 文件句 柄,其内容为由此 URL 定位的 web 页面信息,可以像处理本地文件一样对其进 - 13 - 行读、写、搜索等操作,获取必要的信息。 访问 WWW 站点,还可以使用 ChttpConnection 类。具体方法是,以 http 服 务器域名及其执行 http 协议端口的端口号(缺省 80)为参数,调用 CinternetSession:GetHttpConnection()函数建立与某站点的连接,再用 CHttpConnection:SendRequest 函数向 HTTP 服务器发送服务请求,返回值为 包含应答信息的 CHttpFile 类型的文件句柄。 四、 关键技术实现 (一) 在线升级系统的实现 1.在线升级原理 模块是基于诺顿防火墙在线升级模块的原理进行设计的,其原理是当用户点 击在线升级的按钮时,系统会自动弹出对话框,用户可在对话块内选择是否执 行在线升级 - 14 - 图 4 如果用户选择执行“下一步”时,程序将连接到我们建立的网站,在连接道网 站的 FTP 后,程序自动检索网站上是否有比现有更高版本的漏洞库,如果有, 系统将自动下载高版本的漏洞库,更新现有的漏洞库,如够现有版本已经是高 版本,系统将提示没有必要进行更新。用户可以点击“完成”键结束在线升级。 2. 在线升级流程图 Old N Y New 开 始 连接服务器 检测版本号 升级版本 结 束 - 15 - 图 5 3. 在线升级关键技术的实现 m_cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,5);/设置一个 Internet 选项 m_pHttp=m_cis.GetHttpConnection( m_strServer,m_dwPort );/连接到 http 服务器 m_strServer m_lbProduct.AddString(m_strSoft+ +m_strVersion); 然后是查找可用的更新,先通过 ChttpFile 将 Update.INI 文件下载到系 统临时目录下,然后调用 GetPrivateProfileString 读取网上最新的版本号以 及要更新的文件,判断是否需要更新,下载的文件 pFile- QueryInfo(HTTP_QUERY_CONTENT_LENGTH,str);取得。 为防止下载一半网络出现故障,先将下载的文件加后缀名.upg,下载全部 成功后替换掉原来在用的程序,完成更新。 (二)多线程实现的方法 首先,我们对扫描 ip 的线程数进行定义,最大线程数定义为 500,创建一 个线程(管理线程) ,这个线程用来管理那些对每个 IP 扫描的线程。之所以这 样是因为管理线程有时可能会挂起,如果不创建新的,那么主线程就会挂起, 窗口就会停止响应。当一个线程进入临界区时,其它想要进入临界区的线程就 会被挂起,直到进入临界区的线程退出临界区,这样就保证了在同一时间,只 - 16 - 有一个线程能修改这些变量。这样做是为了更好的对多线

温馨提示

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

评论

0/150

提交评论