朱舒宇网络扫描器的设计与实现.doc

上传人:b****2 文档编号:332333 上传时间:2022-10-09 格式:DOC 页数:56 大小:86.50KB
下载 相关 举报
朱舒宇网络扫描器的设计与实现.doc_第1页
第1页 / 共56页
朱舒宇网络扫描器的设计与实现.doc_第2页
第2页 / 共56页
朱舒宇网络扫描器的设计与实现.doc_第3页
第3页 / 共56页
朱舒宇网络扫描器的设计与实现.doc_第4页
第4页 / 共56页
朱舒宇网络扫描器的设计与实现.doc_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

朱舒宇网络扫描器的设计与实现.doc

《朱舒宇网络扫描器的设计与实现.doc》由会员分享,可在线阅读,更多相关《朱舒宇网络扫描器的设计与实现.doc(56页珍藏版)》请在冰豆网上搜索。

朱舒宇网络扫描器的设计与实现.doc

网络扫描器的设计与实现

摘要:

信息安全是为了保障计算机系统软件、应用软件及网络软件可靠运行;防止信息的非授权访问、获取与篡改;保证信息完整性与可用性。

本文分析了网络扫描器在信息安全领域的作用与设计实现思想。

关键词:

信息安全,网络漏洞,套接字,分布式拒绝服务,简单邮件传输协议

引言内容:

计算机网络的迅猛发展引发了人们对网络安全的重视,信息安全的目标在于保护信息保密性、完整性以及对合法用户提供应有服务。

网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改和泄露、拒绝服务或系统崩溃等问题。

系统管理员可根据安全策略,使用网络工具实现系统安全审计。

一扫描器软件概述

1.1扫描器的功能

扫描器是检测远程或本地系统安全脆弱性的软件;通过与目标主机TCP/IP端口建立连接和并请求某些服务(如TELNET、FTP等),记录目标主机的应答,搜集目标主机相关信息(如匿名用户是否可以登录等),从而发现目标主机某些内在的安全弱点。

扫描器的重要性在于把极为烦琐的安全检测,通过程序来自动完成,这不仅减轻管理者的工作,而且缩短了检测时间,使问题发现更快。

当然,也可以认为扫描器是一种网络安全性评估软件。

一般而言,扫描器可以快速、深入地对网络或目标主机进行评估。

1.2扫描器的分类

从信息流的角度理解信息安全,可划分为数据存放的安全性与网络传输的安全性(涉及操作系统安全性及应用程序的安全性),网络中任何一个环节出现不安全因素都会破坏整个信息流的安全性,因此把扫描器分为三类:

数据库安全扫描器,操作系统安全扫描器和网络安全扫描器(针对于网络服务、应用程序、网络设备、网络协议等)。

对扫描对象的脆弱性进行深入了解,能较好地用运用程序来自动检测发现其是否存在已有的漏洞;能给扫描时发现的问题提供一个良好的解决方案;能在系统实现时,提高效率并提供了相应的补救信息。

二网络扫描器设计方案

网络扫描器是一个涉及知识面广、动态性强的软件,应具有易于配置、易于扩展、快速扫描、智能报告和深度分析等功能。

网络扫描是对系统脆弱性的分析评估,能够检查、分析网络范围内的设备、网络服务、操作系统、数据库系统等系统的安全性,从而为提高网络安全的等级提供决策的支持。

2.1基本功能模块

经过大量的分析与调研,进而设计出由以下几个模块组成的网络扫描器:

用户界面,友好的用户界面使扫描配置更加简单有效,结果显示清楚条理,扫描插件维护功能方便;扫描引擎,检测目标系统,调度扫描插件模块,执行安全测试;扫描插件,主要完成对目标系统的检查;脆弱性报告,能够依据不同的需求,提供不同形式的报表;数据库,包括系统安全漏洞、告警信息和补救方法。

2.2扫描内容的分类

根据安全漏洞的测试原理,扫描内容可分为:

general普通、Microsoftwin9x/NT平台、firewalls防火墙、uselessservices无用服务、ftp文件传输协议、backdoors后门程序、cgiabuses(cgi滥用)、remotefileaccess远端文件获取、gainrootremotely远端获得根权限、rpc远端过程调用、nis网络信息服务、fingerabuses(finger滥用)、smtpproblems简单邮件传输协议的错误、virus病毒、DDoS分布式拒绝服务、RouterSetting路由器配置等20多种类型,800多个安全漏洞。

简介如下:

(1)ftp文件传输协议类

ftp服务广泛应用于Internet中,同时具有显著的安全脆弱性。

如匿名ftp本身不是安全漏洞,但其提供了访问远程系统能力,入侵者可借此获取系统口令文件并探测系统漏洞,因而通常禁用匿名ftp服务,开放时必须正确配置并进行严格管理;此外,建立上传目录往往为了便于在Internet上交换文件,而网络攻击者则在可写区域中肆意删除、修改信息或上传恶意代码(如特洛伊木马、计算机病毒等)。

(2)DDoS分布式拒绝服务类

分布式拒绝服务攻击也是最为常见的网络攻击方法,进攻形式多种多样。

从利用网络协议到针对操作系统平台的漏洞,都可以发出拒绝服务攻击,可以说其攻击手段防不胜防。

通过发送连续的字符可以检测MicrosoftSQLServer等数据库服务器是否有DDoS漏洞。

(3)firewall防火墙类

设置网络防火墙的目的是在通信网与外界网之间提供一道屏障,以保护网络中的信息流免受来自外部网络的各种威胁。

防火墙可以是路由器、PC机、主机系统或一批主系统,是硬件和软件的组合体。

由于网络防火墙自身存在的设计问题和使用配置错误,扫描器可以检测不同类别或版本的网络防火墙存在的安全漏洞。

三实现中的关键问题

网络扫描器采用B/S模式进行软件开发,B/S模式是指软件的主体部分都在服务器端,用户只需使用浏览器发出扫描服务的请求,由服务器执行对扫描目标的扫描操作,并将最终扫描结果以脆弱性报告形式发送到客户端。

这种模式的优点在于用户只需通过浏览器,就可以对目标进行扫描,操作简单易学。

3.1WindowsSockets编程

Socket存在于通信区域中是网络通信基本构件,是可以被命名和寻址的通信端点,网络编程中各套接字都有相关进程与其类型对应。

下面仅就网络扫描器开发过程中用到的WindowsSocket的一些共性操作加以说明。

实现中的关键问题

网络扫描器采用B/S模式进行软件开发,B/S模式是指软件的主体部分都在服务器端,用户只需使用浏览器发出扫描服务的请求,由服务器执行对扫描目标的扫描操作,并将最终扫描结果以脆弱性报告形式发送到客户端。

这种模式的优点在于用户只需通过浏览器,就可以对目标进行扫描,操作简单易学。

3.1WindowsSockets编程

Socket存在于通信区域中是网络通信基本构件,是可以被命名和寻址的通信端点,网络编程中各套接字都有相关进程与其类型对应。

下面仅就网络扫描器开发过程中用到的WindowsSocket的一些共性操作加以说明。

(1)设置服务器地址和连接端口

structsockaddr_insad;//获得主机地址的结构

structhostent*ptrh;//指向主机入口的指针

ptrh=NULL;

sad.sin_port=htons(21);//如设定连接端口为21

sad.sin_addr.s_addr=inet_addr(host->ip);//扫描目标主机IP地址

sad.sin_family=AF_INET;//地址类型规范

(2)创建WindowsSocket套接字

套接字类型可根据通信特征进行分类。

WindowsSockets1.1支持两种套接字:

流套接字SOCK_STREAM和数据报套接字SOCK_DGRAM。

具体实现如下:

SOCKETsd;//定义sd为Socket

sd=socket(PF_INET,SOCK_STREAM,0);//创建TCPSocket套接字

if(sd<0){returnFALSE;}//sd<0表示本地创建Socket失败,返回值为假

structsockaddr_insad;//获得主机地址的结构

structhostent*ptrh;//指向主机入口的指针

ptrh=NULL;

sad.sin_port=htons(21);//如设定连接端口为21

sad.sin_addr.s_addr=inet_addr(host->ip);//扫描目标主机IP地址

sad.sin_family=AF_INET;//地址类型规范

(2)创建WindowsSocket套接字

套接字类型可根据通信特征进行分类。

WindowsSockets1.1支持两种套接字:

流套接字SOCK_STREAM和数据报套接字SOCK_DGRAM。

具体实现如下:

SOCKETsd;//定义sd为Socket

sd=socket(PF_INET,SOCK_STREAM,0);//创建TCPSocket套接字

if(sd<0){returnFALSE;}//sd<0表示本地创建Socket失败,返回值为假

Socket套接字

套接字类型可根据通信特征进行分类。

WindowsSockets1.1支持两种套接字:

流套接字SOCK_STREAM和数据报套接字SOCK_DGRAM。

具体实现如下:

SOCKETsd;//定义sd为Socket

sd=socket(PF_INET,SOCK_STREAM,0);//创建TCPSocket套接字

if(sd<0){returnFALSE;}//sd<0表示本地创建Socket失败,返回值为假

sd=socket(PF_INET,SOCK_STREAM,0);//创建TCPSocket套接字

if(sd<0){returnFALSE;}//sd<0表示本地创建Socket失败,返回值为假

socket(intaf,inttype,intprotocol)指定地址族、数据类型和协议描述符及相关资源。

指定地址族、数据类型和协议描述符及相关资源。

(3)套接字建立连接与数据的收发

套接字建立连接与数据的收发

connect(SOCKETs,conststructsockaddrFAR*name,intnamelen)参数s是套接字描述符,name是套接字地址结构指针,namelen说明套接字地址长度。

在TCP协议中数据发送与接收函数为send和recv,UDP协议中为sendto和recvfrom,使用时调用程序要提供超时控制。

参数s是套接字描述符,name是套接字地址结构指针,namelen说明套接字地址长度。

在TCP协议中数据发送与接收函数为send和recv,UDP协议中为sendto和recvfrom,使用时调用程序要提供超时控制。

send(SOCKETs,constcharFAR*buf,intlen,intflags);

recv(SOCKETs,charFAR*buf,intlen,intflags);

sendto(SOCKETs,constcharFAR*buf,intlen,intflags,conststructsockaddrFAR*to,inttolen);//UDP协议中数据发送函数

//UDP协议中数据发送函数

recvfrom(SOCKETs,charFAR*buf,intlen,intflags,structsockaddrFAR*from,intFAR*fromlen);//UDP协议中数据接受函数

3.2数据结构

recv(SOCKETs,char

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1