漏洞扫描器(共8篇)
漏洞扫描器 篇1
0 引言
近几年,随着计算机病毒、黑客入侵等网络安全问题日益突出,计算机用户的网络安全意识得到显著提升,因此对于网络安全和主机安全的相关产品及解决方案成为安全体系建设的主体,但却忽略了数据库的安全建设,导致其成为信息系统安全的最大隐患。数据库是信息系统中敏感信息的主要存储载体,一旦数据库系统遭受攻击将严重威胁整个信息系统的安全。如何保证数据库的安全,及时检测出数据库的漏洞,防御以数据库作为入侵对象的攻击,是目前信息网络安全亟待解决的问题。所以,数据库的安全控制需要一种更高效自动化工具的支持。
数据库漏洞扫描[1]是一种方便且高效的实现数据库安全测评的手段,其基本原理是依据已经建立的漏洞规则,对当前目标系统进行扫描,从而发现系统中隐藏的漏洞,发送报告给用户,并给出相应的解决方法。按常规标准,可将漏洞扫描器划分为2种类型:主机漏洞扫描器和网络漏洞扫描器。主机漏洞扫描器指在系统本地运行的检测系统漏洞的程序,比如COPS、Tripwire、Tiger等自由软件;网络漏洞扫描器指基于Internet远程检测目标网络和主机系统漏洞的程序。
目前,现有的数据库漏洞扫描器[2]依据已有的漏洞库,通过创建和执行安全策略,可以对数据库进行全面测评。但是由于绝大部分的黑客攻击行为是利用已知漏洞进行,所以扫描器无法检测未知漏洞,并存在如下问题:扫描过程无脚本环境验证,漏洞库不公开,无漏洞验证和利用功能。因此,本文设计出一种基于内核检测的数据库漏洞扫描器,采用C/S结构,从客户端对服务器端进行扫描,将扫描结果发送给用户,同时对发现的漏洞进行一次漏洞攻击模拟,可以使用户更好地弥补和维护漏洞。在使用监听攻击对数据库服务器进行监听时,可以对用户的登录过程进行抓包,获取登录用户名和密码。
1 数据库漏洞扫描器
目前,国内外研发的数据库漏洞扫描器产品种类繁多,每款漏洞扫描器产品都有自己的优点,但也存在一些不足。作为一款漏洞扫描器[3],最基本的功能就是发现系统漏洞,并给出修复漏洞的方法,使数据库系统的安全性能达到一定的标准。因此,数据库漏洞检测技术的研究和漏洞扫描器的设计尤为重要,关系到能否检测到最新的漏洞及提供最准确可靠的扫描报告[4]。传统上,人们使用防火墙、入侵检测系统(Intrusion Detection Systems,IDS)和扫描器等工具来保障网络安全。防火墙通过执行访问控制规则来限制网络连接,通常缺乏应用级保护能力;IDS通过检测攻击特性和异常行为来发现安全问题,普遍缺乏检测隐秘攻击的能力;扫描器通常针对单台主机进行扫描,忽略了网络拓扑,不能识别更具危害性的复合攻击和协同攻击。另外,由于缺乏统一的安全策略和对脆弱性的全面分析,这些工具不能在保护网络资产安全性的同时确保网络正常运行。
2 常用的数据库入侵检测技术
常用的数据库检测技术包括[5]:授权检测和非授权检测。授权检测是通过输入数据库地址、端口、表名称、用户名、密码等,利用SQL语句获取数据库的信息,然后根据返回信息判断是否存在安全风险。比如通过查询系统表,判断某个对象的使用权限是否合理;通过检查数据库系统版本号,判断是否存在数据库软件本身的安全漏洞;利用已知的弱口令字典通过暴力猜解方式获取数据库弱口令。该技术基本可以避免误报和漏报的风险,并且不会对数据库产生任何安全风险。非授权检测模式[6]是在未知数据库链接地址、表名称及密码等情况下的盲扫模式,主要是检测数据库系统配置风险和数据库软件本身的安全漏洞,比如通过丢出一个请求包telnet,在返回包中获取对方数据库版本号,从而判断是否存在数据库软件本身的安全漏洞,此方法利用已知的弱口令字典通过暴力猜解方式获取数据库弱口令,存在严重误报和漏报情况。以上2种检测方法都无从判断内核对象是否被篡改,因为它们没有区别篡改与未篡改的标准。
3 基于内核检测的数据库漏洞扫描器的设计
3.1 设计目标
本文提出的一种基于内核检测[7]的数据库漏洞扫描器是防止数据库中的数据被恶意篡改、泄露而开发出来的漏洞扫描软件产品。该产品以权威安全网站发布的UNIX系统漏洞和系统内部配置标准规则为基础,借助UNIX Socket网络编程接口,从提高Web服务器安全性的角度出发,完成外部扫描和内部扫描功能,使得黑客入侵之前,能够帮助系统管理员主动对网络上的设备进行安全测试,以便提高系统抵抗攻击的能力。
3.2 设计模型
综合考虑网络及主机安全方面因素,本文数据库漏洞扫描器系统采用了C/S模型。整个系统的逻辑框架如图1所示。
1)前端程序:前端程序负责用户交互。主要是给使用用户提供友好的服务界面,保证输入数据的流畅,从而使用户使用扫描器更加方便。通过前端程序生成扫描任务,查看返回的扫描结果,以及最终把扫描结果生成报表导出。
2)扫描引擎:扫描引擎负责处理前端程序发来的扫描请求任务,并最终把扫描的结果返回给前端程序。扫描引擎的主要功能性模块包括以下3个部分。①核心逻辑模块:负责提供网络操作和协议解析两项功能,并对扫描任务进行及时处理,同时处理前端发送来的扫描请求,进一步获取连接信息,通过调用不同的数据库将引擎连接到待扫描的数据库,最终依据扫描请求中采用的策略集扫描数据库。②数据库连接引擎:提供了一个轻量级且高效的数据库访问引擎,提升了数据库的访问效率,支持Oracle、MSSQL、My SQL、DB2、INFORMIX、Sybase等数据库的连接。③系统数据管理模块:提供系统的信息数据管理、策略管理及扫描结果,包括配置信息、用户信息、项目信息、策略等数据的管理。
3.3 数据库内核入侵检测原理
本文提出一种基于内核入侵检测[8]的数据库漏洞扫描器,该产品首先编写内核驱动程序,将内核级的Hook技术应用到数据库调用中,动态监控数据库中的所有数据,检测数据库中的每一条警报信息,并精准地对用户进行提示,增强了数据库的安全性。另外,为了保护数据库内核,检测程序能够阻止对计算机物理内存的修改。该检测程序由3部分组成:第一部分用于检测恶意代码的修改;第二部分用于保护数据库内核;第三部分用于加载内核驱动[9,10]。
数据库漏洞扫描器在获取数据库信息之后,通过引入的内核入侵检测方法深入分析数据库内核,实时检测出黑客入侵数据库后对数据库系统对象的篡改,探测出黑客创建的一些隐藏对象;一般恶意攻击者获取数据库权限后往往会建立隐藏后门,黑客可以利用隐藏的用户隐蔽登录数据库,也可以利用隐藏的触发器来收集敏感数据,比如隐藏的具有数据库管理员(Database Administrator,DBA)权限的用户。
3.4 数据库内核入侵检测方法
3.4.1 检测恶意代码注入行为
检测恶意代码注入行为由2部分组成。第1部分判断是否为进程间的操作并存储进程的句柄和基地址到可疑和危险列表中,这2个列表中的信息将在第2部分中被用于检测是否有恶意代码注入行为发生。第2部分是假设一个进程要注入到另一个进程,则要将目标进程分配内存空间并将动态链接库(Dynamic Link Library,DLL)的路径或二进制代码写进去。通过调用内核级的API函数Ps Get Current Processld来获取当前进程的句柄,然后和目标进程的句柄进行比较,判断是否是进程间的系统调用请求。若是进程间操作,则将目标进程的句柄和分配的内存基地址记录到可疑列表下,用于后续的检查;如果不是进程间的操作,则把目标进程的句柄和所要写的基地址同可疑列表中的记录进行对比,若这2个参数和可疑列表中的记录匹配,则将这个记录放进危险列表里用于第2部分处理。
3.4.2 保护Device/Physical Memory
恶意进程可以直接注入到Device/Physical Memory来操纵内核对象,Rootkit采用相似的技术通过修改内核对象实现进程隐藏,通过Device/Physical Memory直接写内核内存实现了在用户模式下恢复原始的系统服务表(System Service Table,SST),若恶意程序使用这种方法恢复了原始系统服务表(SST),则很难检测之后恶意代码的注入。所以通过与Device/Physical Memory对象的地址对比,可避免使用Zw Create Link Object系统调用的链接欺骗。
3.4.3 驱动加载检测
一个恶意程序可作为一个内核驱动通过将自己加载到内核中来躲避检测,比如在Windows操作系统中,应用程序通常使用服务控制管理器(Service Control Manager,SCM)来安装一个驱动,服务控制管理器使用Zw Load Driver来实现具体操作。通过对Zw Load Driver系统调用设置钩子来检测系统加载驱动的行为。
综上分析,在已有数据漏洞库(入侵种类的数量和漏洞数量)的基础上,通过Oracle、SQL Server以及通用漏洞披露(Common Vulnerabilities and Exposures,CVE)和中国国家信息安全漏洞库等平台和相关组织,通过代码注入技术和Hook技术,及时收集、更新漏洞和补丁信息。通过对相关漏洞分析与模拟测试,进而提供数据库被入侵篡改后的修复解决方案,有效地避免了数据库数据的入侵威胁。
4 结语
数据库内核被入侵的危害是巨大的,而通过数据库漏洞扫描器尽早识别数据库系统存在的缓冲区溢出、拒绝服务、提权、SQL注入、执行权限过大、访问权限绕过、弱口令等各种应用弱点,能够有效防止数据库内核被入侵的行为。本文提出一种基于内核检测的数据库漏洞扫描器,在很大程度上保证了数据库的自动维护和备份,同时具备强大的网络信息审计功能,对网络的运行、使用情况进行全面的监控、记录、审计和重放。数据库漏洞扫描器的试运行表明,它可与防火墙联动,自动配置防火墙策略,确保电力信息系统的网络安全。因此,下一步研究工作应重点考虑如何提高数据库漏洞扫描器多业务分布式的支持能力。
参考文献
[1]曹元大,杨帆,薛静锋,等.基于UNIX主机系统的漏洞扫描器的设计[J].北京理工大学学报,2002,22(6):715-718.CAO Yuan-da,YANG Fan,XUE Jing-feng,et al.Design of vulnerability scanner based on a UNIX host[J].Journal of Beijing Institute of Technology,2002,22(6):715-718.
[2]李卫强.基于数据库的入侵检测技术的研究[D].长沙:中南大学,2007.
[3]张春,刘峰,王永亮.Oracle数据库安全增强系统的设计与实现[J].北京邮电大学学报,2006,29(5):84-87.ZHANG Chun,LIU Feng,WANG Yong-liang.Design and implementation of security enhanced system for oracle[J].Journal of Beijing University of Posts and Telecommunications,2006,29(5):84-87.
[4]陈威,王刚,陈乐然,等.网络攻防技术与信息安全实验室建设构想[J].华北电力技术,2015(9):11-13.CHEN Wei,WANG Gang,CHEN Le-ran,et al.Construction conception of information security defense laboratory[J].North China Electric Power,2015(9):11-13.
[5]季林凤.计算机数据库入侵检测技术探析[J].电脑知识与技术,2014,10(27):6282-6286.JI Lin-feng.Research of intrusion detection technology of computer database[J].Computer Knowledge and Technology,2014,10(27):6282-6286.
[6]梁彬,侯看看,石文昌,等.一种基于安全状态跟踪检查的漏洞静态检测方法[J].计算机学报,2009,32(5):899-909.LIANG Bin,HOU Kan-kan,SHI Wen-chang,et al.A static vulnerabilities detection method based on security state tracing and checking[J].Chinese Journal of Computers,2009,32(5):899-909.
[7]左黎明.Windows内核恶意代码分析与检测技术研究[J].计算机技术与发展,2008,18(9):145-147.ZUO Li-ming.Research of analysis and detection of malicious code in windows kernel[J].Computer Technology and Development,2008,18(9):145-147.
[8]崔新春,秦小麟.一种基于脆弱水印的可生存数据库篡改检测机制[J].计算机研究与发展,2010,47(S1):296-301.CUI Xin-chun,QIN Xiao-lin.Fragile watermark based temper detection mechanism for survivable databases[J].Computer Research and Development,2010,47(S1):296-301.
[9]康峰.网络漏洞扫描系统的研究与设计[J].电脑开发与应用,2006(19):27-40.KANG Feng.The research and design of network vulnerability scanning system[J].Computer Development and Applications,2006(19):27-40.
[10]李伟,苏璞睿.基于内核驱动的恶意代码动态检测技术[J].中国科学院研究生院学报,2010,27(5):695-703.LI Wei,SU Pu-rui.Detection technology based on dynamic kernel driver malicious code[J].Journal of the Graduate School of the Chinese Academy of Sciences,2010,27(5):695-703.
[11]谢华成,马学文.Mongo DB数据库下文件型数据存储研究[J].软件,2015,36(11):12-14.XIE Hua-cheng,MA Xue-wen.Rsearch of Mongo database file data storage[J].Computer Engineering&Software,2015,36(11):12-14.
漏洞扫描器 篇2
实训目的:
1、掌握设置安全审计的方法
2、理解扫描器的工作机制和作用;掌握利用扫描器进行主动探测、收集目标信息的方法;掌握使用漏洞扫描器检测远程或本地主机安全性弱点;掌握常用的网络命令
3、了解日志清除工具的使用;利用日志清除工具远程删除windows的日志文件
实验环境
1、windows 2003系统,局域网环境
2、扫描器小榕流光软件
3、日志清除工具 实训内容:
1、windows 审计日志:查看windows审计日志,配置审核策略,设置日志的大小和行为。
2、windows攻击实例-----net命令和小榕流光。
使用“小榕流光”对目标机器上的windows账户进行扫描,然后用net命令进行攻击
3、审计清除----clearel.exe的使用 操作步骤:
1、查看windows 审计日志
2、配置审核策略
3、设置日志的大小和行为
4、设置流光扫描参数
5、启动扫描查看结果
6、根据扫描结果对主机进行探测得到目标主机账户相关信息
7、根据已经探测出的用户名和口令用net命令进行攻击
8、查看日志信息
9、清除准备
10、删除系统日志、安全日志、应用程序日志(用MyEventVieweren_v1.40)思考题与体会:
1、网络攻击一般经过哪些步骤
2、网络监听技术的原理是什么
3、拒绝服务攻击的原理是什么
善于向漏洞扫描要安全 篇3
无论多么成熟的系统或网络, 总会或多或少地存在一些安全漏洞, 要是被恶意用户利用, 很容易造成整个系统或网络的瘫痪。对网络管理员来说, 要善于发现和查找各种漏洞, 并关注和利用一些最新安全技术, 来想方设法保护单位重要系统和网络的运行安全。那么如何才能发现特定系统或网络存在的安全漏洞呢?怎样才能高效进行漏洞扫描呢?
扫描漏洞必要性
扫描漏洞操作, 实际上就是借助外力工具, 对单位重要系统平台或网络设备进行一些安全性测试操作, 来揪出潜藏起来的并容易被非法用户偷偷利用的安全漏洞。加强系统平台或网络设备漏洞扫描操作, 是确保它们安全运行的必要措施, 系统或网络管理员一定要认真审慎地予以研究和利用。
从主动性角度来看, 漏洞扫描操作可以分为主动性扫描操作和被动性扫描操作。主动性扫描操作往往是基于网络进行的, 扫描者通过执行特定脚本程序, 模拟恶意攻击行为对重要目标发动入侵, 同时自动记录系统的反应, 从而达到发现漏洞的目的, 这种扫描操作经常被称为网络安全扫描。被动性扫描操作一般是基于终端主机进行的, 扫描者通过外力工具, 对终端系统中的弱口令设置、各种不合适的设置以及其他一些与特定安全规则相违背的对象进行检查, 根据扫描获取的结果信息, 扫描者也能很快知道终端系统究竟有没有安全漏洞, 如果存在安全漏洞的话, 可以进一步查找到存在安全漏洞的具体位置, 这种扫描操作也被人称为系统安全扫描。
无论进行哪种类型的安全漏洞扫描操作, 一旦发现重要系统或网络设备存在具体的漏洞信息时, 都可以在网络上搜索有关应对措施, 来对其进行及时修补操作, 确保安全漏洞不被黑客非法利用。
合理进行漏洞扫描
用户不能保护自己不清楚的东西。这尽管不是网络安全领域的“符咒”, 不过当网管员从合法用户的角度搜索安全漏洞, 或者简单一点地说, 利用身份验证方式进行漏洞扫描操作时, 这句话的确是有道理的。从安全防护实践来看, 利用身份验证方式扫描特定系统或设备的漏洞, 虽然需要耗费更多的时间, 但从识别到的安全漏洞数量来看, 这种漏洞扫描操作要比没有通过身份验证方式扫描的效果好若干倍。
当然, 良好的身份验证漏洞扫描效果, 需要采用合适的扫描方法才能获得。首先明确要对什么样的系统平台或网络设备执行身份验证漏洞扫描, 这或许会是基于Linux系统的平台, 也有可能是基于Windows系统的平台, 或者是少数终端主机和特定网络设备。而且, 请一定要考虑扫描数据库、Web应用, 以及那些要求或允许使用SNMP、SSH、FTP、Telnet等通信协议, 进行身份认证的所有系统平台和网络设备。类似Lan Guard这样的专业扫描工具提供了很多方法, 来允许用户灵活进行扫描。要是单位外网非法用户或者内网恶意用户都已经进行身份验证式漏洞扫描操作, 那么我们自己也必须进行这种扫描操作。
其次要尝试不同用户角色水平的漏洞扫描操作。为了尽可能多地识别到潜藏在暗处的安全漏洞, 系统管理员或网络管理员应至少使用根级登录凭证和超级用户权限执行扫描操作, 这样大部分漏洞都能被发现到。从某种意义上来说, 网络管理员使用的用户角色越多, 获取到的扫描结果会越不同寻常。当发现最后的扫描结果不再依照权限发生变化时, 不同用户角色的测试操作自然就适可而止了。
第三要保证漏洞扫描操作不会带来安全麻烦。进行漏洞扫描操作, 本意是为了防护系统平台或网络设备运行安全的, 如果这种操作在带来安全防护的同时, 也产生其他一些安全麻烦, 那就得不偿失了。例如, 尝试对Web应用或数据库进行漏洞扫描操作时, 不管执行什么内容的扫描操作, 都会对系统平台或网络设备的CPU资源、内存资源甚至网络资源进行消耗, 这种消耗占用现象一旦过度的话, 就可能出现用户账号锁定、系统或设备假死甚至临时崩溃的问题, 这样漏洞扫描操作反而会引起系统或设备运行不稳定的麻烦。所以, 在对重要系统平台或网络设备执行身份验证漏洞扫描操作之前, 应先尝试在一个或两个普通系统平台或设备上运行身份验证扫描, 检查其有没有什么可能的副作用出现, 如果没有遇到副作用, 再扩展到扫描重要系统平台或其他多个系统和设备。
第四按需生成漏洞扫描报告。漏洞扫描操作结束后, 可能会发现若干个安全漏洞, 要将它们利用到后续的安全防护实践中, 必须要根据实际情况, 选取一种最合理方式, 生成漏洞扫描报告。例如, 以电子表格或者HTML网页形式排列扫描发现到的安全漏洞, 有利于网管员或其他技术人员, 可以更简单更直观地看清漏洞产生的原因, 从而能够节省不少时间, 同时提高工作效率。很明显, 合理进行漏洞扫描, 可以帮助我们在更短时间内, 更好地发现和识别各种潜藏的安全漏洞, 帮助单位网络降低安全威胁, 然后万事大吉, 何乐而不为呢?
正确选用扫描工具
除了注意扫描方法外, 单位网管人员或其他技术人员, 还要根据单位的资金预算和网络部署实际, 正确选用硬件类型的或软件类型的漏洞扫描工具。
不少单位一边在想方设法地寻找更合理地安全解决方案, 一边不断地进行着各种安全测试。这些频繁测试, 在改善系统平台或网络设备安全性能的同时, 也会影响到单位对一些重要网络设备和系统平台的选用。但有一种问题常常会被忽视:安全测试操作, 究竟是针对单台设备的, 还是针对整个网络的, 还是两者皆而有之?要是安全测试操作针对的不是单台设备, 而是网络的一部分, 或者是整个单位网络, 那就需要对安全测试工具进行合适的配置。例如, 配置专门的漏洞测试工具, 使用针对性模块, 强制其对特定区域执行扫描测试操作, 比方说对SMTP服务协议漏洞、Web服务器的漏洞进行扫描测试, 或者根据单位网络中的设备类型和数量, 同时配置多个模块进行协同测试操作。
在明确好安全测试目的后, 单位用户往往要面对选用什么工具进行测试的问题。对漏洞扫描测试工具的合理选用, 一般需要用户确定好安全测试的目的和设备, 而这些常常是和单位的资金预算有关系。对虚拟化设备和物理设备进行扫描测试操作, 需要采取不同的测试方法。例如, 对路由器等设备进行扫描测试时, 往往要考虑选用一台基于软件的漏洞扫描客户端程序, Retina Network Security Scanner就是一款这样的程序, 它能帮用户扫描路由器等设备的安全性漏洞问题所在, 只要输入特定设备的IP地址, 该IP地址的设备上哪些网络端口被打开, 有哪些安全上的顾虑便可一清二楚, 如此也提醒用户该做哪些修补事项, 让路由器后台系统在网络上获取更理想的安全。
一些单位在资金许可的情况下, 也会选用硬件类的扫描测试工具。这类扫描工具的成本往往比较高, 但它们有及时的安全升级, 有良好的售货服务, 还有一些意想不到的技术支持。使用硬件工具进行扫描测试, 可以在最大程度上预防甚至避免链接库文件、系统驱动问题、程序包依赖等操作系统的影响。而且硬件类扫描工具不受环境的影响, 支持即插即用, 在特定场合下能发挥相当重要作用, 最终获得的扫描测试效果自然也不一般。
总之, 软件类漏洞扫描工具在操作效率方面, 要比硬件类漏洞扫描工具要低。要是单位已经选用和部署了软件类漏洞测试工具, 实际上就是扫描效率要慢一点, 其他方面的区别应该不是很大。要是单位准备扫描测试涉及Internet业务和网络, 系统平台或网络设备较多的, 建议大家在经济许可情况下, 还是选用硬件类扫描工具, 以获得更优质的扫描效果。
安装使用N-Stalker
N-Stalker Web漏洞扫描器, 是来自N-Stalker公司的一款安全测试工具, 它具有特别攻击控制台监察漏洞、自动假阳性预防引擎、政策驱动的Web应用安全扫描、自定义脚本语言的目的是建立自己的安全检查、自定义网站导航脚本记录、强大的嵌入式HTTP调试等多个特点, 善于使用这款漏洞扫描测试工具, 可以为单位的Web应用程序彻底消除大量普遍的安全隐患, 包括跨站点的脚本和SQL injection, 缓冲溢出, 篡改参数攻击等等。为了方便扫描用户按照不同形式查看已经发现到的安全漏洞, 这款工具支持以RTF、HTML、PDF等不同格式灵活生成扫描报告, 甚至还自带有扫描对比报表生成增强功能, 来快速帮助用户分析不同的扫描结果。
漏洞扫描器 篇4
首先,源头提升标准,“堵塞漏洞”。严格机电设备采购流程,设备选型遵循安全可靠、先进适用、高效节能的原则,购进设备严格安全准入制度。规范设备使用标准,严禁设备带病运转,杜绝超负荷、拼设备。完善设备现场使用管理制度,严禁劣质产品入井。
其次,排除设备隐患,组织人员进行“实时防护”。不断强化设备生命周期管理,建立程序化检修制度,对综采机、开关、水泵等设备实行点检制,做到强制性检修与状态检修相结合,变“被动式维修”为“主动式检修”,将设备隐患及时登记,根据安全隐患的级别实时对设备进行全面体检,有效提升设备质量,防范季节性故障发生,杜绝设备“带病”运行。
最后,消除思想隐患。该矿从提高职工业务技能入手,根据现有的装备水平和工艺特点,创新和改进培训模式,务求学了即用,立竿见影。抓好手指口述、岗位安全描述和标准流程操作培训,严格考核,提高正规操作水平,以全员素质提升,促进机电“优化加速”。
漏洞扫描器 篇5
随着互联网的深入发展, 网络攻击的种类和方式越来越复杂, 各种各样的安全技术应运而生, 如防火墙、入侵检测、漏洞扫描、防病毒技术等等。虽然这些技术日趋成熟, 能有效的保障网络的安全但它们却只能满足自身特定的网络安全需求, 各自都存在着缺陷和不足。比如防火墙不能解决来自网络内部的攻击、入侵检测不能阻止攻击只能检测攻击、漏洞扫描不是实时监控而是定时扫描等等。面对网络安全的整体性, 单靠某一类安全技术是不能完全解决问题的, 只有将不同的安全技术进行融合集成, 取长补短, 充分发挥各自的优势, 才能消除由单一的安全技术所带来的安全隐患, 最大程度的保障网络的安全。
1 入侵检测系统的工作原理及局限性
入侵检测[1]是通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析, 从中发现网络或系统中是否有违反安全策略的行为和遭到袭击迹象的一种安全技术。入侵检测系统简称IDS (Intrusion Detective system) 是入侵检测的软件与硬件的组合, 是一种积极主动地安全防护措施, 能在不影响网络性能的前提下通过旁路监听方式不间断地收取网络数据, 主动寻找入侵信号, 对系统中未授权的访问或异常现象、活动与事件进行审计、追踪、识别和检测。IDS不仅能检测来自外部的入侵行为, 同时也能发现内部用户未授权活动, 能够主动保护自己免受网络攻击, 因此被认为是防火墙之后的第二道安全闸门。尽管如此, 入侵检测系统还是存在一些局限性, 如下所述:
(1) 入侵检测系统的检测速度, 由于IDS的检测方法通常依赖特征匹配, 每截获一个数据包都要分析和匹配其中是否具有攻击特征, 需要花费大量的时间和系统资源, 这使得IDS的检测速度跟不上网络数据的传输速度。
(2) 入侵检测系统的管理和维护, 面对每天都会产生的新的攻击方法, 安全管理员要花时间和精力去保持特征数据库的更新和安全策略的有效。
(3) 入侵检测系统的漏报和误报, 攻击特征数据库不能及时更新是产生漏报的一大原因, 另外IDS是基于数据包检查的, 一些旧式的攻击对已更新的操作系统不起作用;但由于模式库中还存有这些攻击特征, 如果黑客伪造大量这样的数据包, 会导致IDS频繁报警甚至瘫痪, 这些无效报警很大程度上增加了入侵检测系统的误报率。
2 漏洞扫描的工作原理及局限性
漏洞也叫弱点 (Vulnerability) , 是指计算机系统在硬件、软件和协议的具体实现或程序编码上客观存在的缺陷和不足。漏洞扫描则是一种主动检测远程或本地主机安全性弱点的程序也称脆弱性分析, 它的主要作用[2]是发生网络攻击事件前, 通过对整个网络范围扫描发现网络中存在的漏洞, 及时给出修补方案, 堵住安全漏洞, 防止黑客利用该漏洞进行入侵活动, 它是为了降低系统安全风险而发展起来的一种防患于未然的主动式安全防御技术。根据扫描对象的不同, 分为两种类型:基于网络的扫描技术和基于主机的扫描技术。
(1) 基于网络的漏洞扫描采用的是一种积极主动的防御方式, 其工作原理是通过网络远程检测目标主机TCP/IP不同端口的服务, 搜集目标主机的配置文件、操作系统、所开放的网络服务类型等信息, 然后模拟黑客攻击, 利用特征匹配原理向目标主机发送特定的漏洞检测数据包, 根据其响应特征来判断对方是否存在相应的漏洞。这种技术的优点是易于实现, 性价比高。其局限性在于一是它不能直接访问目标主机的文件系统, 相关的一些漏洞不能检测到。二是它不能穿过防火墙, 如果防火墙没有开放某些端口, 则该端口的扫描终止。三是如果扫描持续不断运行, 会产生网络流量包, 影响网络性能, 通常都是隔一段时间检测一次, 因此会产生漏报情况, 有效性大打折扣。
(2) 基于主机的漏洞扫描采用的是被动的防御方式, 其工作原理与基于网络的漏洞扫描类似, 两者只是体系结构不一样。基于主机的漏洞扫描是在主机上安装代理软件, 采用客户/服务端架构, 以管理员的身份访问主机所有的文件与进程, 内容涉及文件的属性、操作系统的补丁等, 因此能够扫描更多的漏洞, 更准确的定位系统存在的问题。然而它也有局限性, 首先是需要在每台主机上安装代理软件进行扫描检测, 当网络中的目标主机较多时, 软件成本增加;其次基于主机的漏洞扫描需要实时运行, 会占用系统的一部分资源;最后是网络发生变化时需要接触到每个目标主机用户, 工作量大同时升级复杂。
目前许多中小企业和政府部门大多都使用基于网络的漏洞扫描, 通过以上分析也可以看出前者的通用性要比后者好, 因此本文探讨的漏洞扫描仅限于基于网络的漏洞扫描。
3 入侵检测系统与漏洞扫描之间的联动
所谓联动[3]是指通过一种组合的方式, 将不同的安全技术进行整合, 由其他安全技术弥补某一安全技术自身功能和性能的缺陷, 以适应网络安全整体化、立体化的要求。基于此本文提出入侵检测系统与漏洞扫描联动机制, 其基本原理是漏洞扫描事先对网络进行扫描, 找出系统存在的漏洞并及时修补, 升级漏洞库。然后将处理后的扫描结果传送给IDS;IDS对照扫描结果将规则库中已经修补好的漏洞的攻击规则特征删除, 同时增加新发现的漏洞攻击特征。另一方面IDS也将报警检测信息传送给漏洞扫描, 漏洞扫描根据这些信息对网络进行特定的扫描, 及时查找修补漏洞。这样合作的目的可以互相提高检测效率, 增强网络的整体抗入侵能力。图1是入侵检测系统与漏洞扫描之间的联动示意图。
漏洞扫描的工作过程:
(1) 首先对特定网络进行漏洞扫描
(2) 分析扫描收集到的数据
(3) 与漏洞库进行信息匹配, 如果匹配成功则认为漏洞存在并及时修补;否则忽略。
(4) 将处理后的扫描结果传送给IDS, IDS将已修补的漏洞攻击特征与规则库比较, 如果该特征已在规则库中存在则将它删除, 避免冗余;如果规则库中没有该特征则将该攻击特征添加进去。
与漏洞扫描联动的IDS工作过程:
(1) 首先对网络数据包进行入侵检测
(2) 过滤分析数据包
(3) 与规则库进行信息匹配, 满足匹配条件就马上报警, 否则忽略。
(4) 将处理后的检测结果传送给漏洞扫描, 漏洞扫描将此结果与漏洞库进行比对, 如果发现是新的攻击则添加进漏洞库;如果该攻击特征已存于漏洞库中则说明被漏报应及时修补该漏洞。
图中漏洞扫描和入侵检测作为两个独立的系统存在, 单独完成各自的任务, 两者通过一个开放接口并按照固定的协议进行信息共享和互动, 实现一体化的主动防御;同时为了防止交互信息被黑客窃取和攻击, 两者之间的通信需加密。此外为便于漏洞扫描与入侵检测之间的信息交换, 漏洞库中漏洞的命名采用CVE国际标准, 而入侵规则库中则相应加入漏洞ID、CVE编号等关联字段。
4 结束语
面对复杂多样的网络攻击, 单靠某一种安全技术是无法完全解决问题的, 建立联动机制可以加大网络防御力度, 降低网络安全风险。本研究提出的漏洞扫描与入侵检测系统的联动方案, 既降低了漏洞扫描的漏报率, 也提高了入侵检测系统的检测率, 在网络入侵检测中是一种新的尝试。若要最终实现网络整体的安全防护, 还需要与其它安全技术进行联动, 这将是以后要进一步研究解决的问题。
参考文献
[1]张海勇.入侵检测系统实现及神经网络应用研究[D].北京:北京工业大学, 2002.
[2]段丹青, 陈松乔, 杨卫平.融合漏洞扫描的入侵检测系统模型的研究[J].计算机技术与发展, 2006, 16 (5) :132-133.
漏洞扫描器 篇6
关键词:网络安全漏洞,扫描技术,系统实现
网络的开放性, 可以让每一个人都能随时获取网络上的信息, 所以网络就会面临来自各个方面的攻击、破坏。能够对硬件的系统予以攻击, 也可以通过软件来破坏系统。网络的国际性, 也就是说对于网络的攻击不但可以是来自本地网络中的一个用户, 也可以是来自网络上的任意一台机器, 所以网络安全也面临着国际化的挑战。网络的自由性, 也就是说网络对于用户是没有约束的, 用户能够随时随地进行网络的访问, 进行信息的发布和使用, 也就导致了一些黑客利用信息技术进行网络破坏。所以, 对网络安全问题予以重试具有现实的意义。
1 网络安全漏洞扫描技术基本概述
1.1 网络安全的概念
网络安全会按照需求者的用途来予以定义。例如, 对于用户而言, 所指的网络安全就是用户在网络中涉及到的一些隐私、商业利益资料在进行传输的时候, 可以受到保护, 保证其完整和机密。避免其他的人运用窃听、篡改等手段侵犯到用户的隐私, 让用户遭到经济利益的损失;对于网络运行和管理者而言, 所指的网络安全就是管理者对本地网络信息的访问、读写等的操作予以保护, 避免网络发生病毒和黑客的攻击;对于安全保密部门而言, 所指的网络安全就是他们对于一些有害的、非法的、涉及国家机密的信息予以过滤和拦截, 避免一些机密的信息外泄出去, 一些有害的、非法的信息给社会造成危害。其实, 从本质上来说指的就是网络的信息安全, 让网络系统分硬件、软件以及数据信息能够得到保护, 不会由于偶然因数和恶意因素受到攻击和破坏, 系统可以正常安全的进行运行, 网络服务不会被中断。
1.2 网络安全的威胁
网络安全通常会面临到二个方面的威胁, 分别是网络中设备和网络中信息的威胁。而对计算机网络造成影响的因素就比较多的, 例如有意的和无意的、人为的和非人为的以及外来黑客对网络系统进行非法的侵入和使用, 总的来说, 针对网络安全威胁主要有以下三个方面。
(1) 人为的无意失误。例如安全配置工作人员操作不当导致安全漏洞的出现, 用户的意识差, 随意把自己的账号、密码借给别人使用, 都会对网络安全造成威胁。
(2) 人为的恶意攻击。这种方式是计算机面临的最大的威胁, 通常分为二种:1) 主动攻击。通过各种方式破坏所要攻击的对象, 已达到自己的目的。2) 被动攻击。在不影响网络正常运行的情形下, 进行攻击对象数据信息的截取和破译。这二种方式都会导致计算机网络遭受到巨大的破坏。
(3) 网络软件的漏洞。每一个网络软件都不可能没有缺陷和漏洞, 而黑客正是利用了这些缺陷和漏洞来进行目标的攻击, 通过植入病毒来获取目标的数据资料甚至于控制目标的网络进行数据的篡改, 使目标系统瘫痪。
1.3 网络安全漏洞扫描技术
网络安全漏洞扫描技术主要是为了让管理者可以及时的了解网络系统中存在的安全漏洞, 然后及时的采用相对应的应对措施, 以此来降低网络系统的安全风险。通过网络安全漏洞扫描技术, 能够对局域网、WEB站点、防火墙系统以及主机操作系统的安全漏洞进行全方位的扫描, 网络系统管理者就可以从中了解到那个地方存在在不安全的网络服务、主机里面是不是安装了窃听系统以及防火墙系统是不是存在在安全漏洞等等。
网络安全扫描技术可以进行自动检测远端和本地主机的安全脆弱点, 其可以进行TCP/IP端口的查询, 收集一些有用的特定信息, 同时记录目标的响应。此项技术的实现其实就是漏洞扫描程序。原来的安全扫描程序是由UNIX系统进行编写的, 后来因为大部分的操作系统都支持TCP/IP, 所以, 每个平台上面都有扫描程序, 扫描程序对于网络完全的提高具有非常重要的作用。
2 网络安全系统漏洞扫描系统的实现
网络安全系统漏洞扫描系统是基于浏览器、服务器结构, 然后整个的扫描器实现与用户操作系统、Unix以及Linux互相混合的TCP/IP的网络环境中。
网络安全漏洞扫描器主要以下四个方面的模块构成: (1) 用户界面。主要让扫描配置更加方便, 扫描结果更加清楚, 扫描插件维护更加简单; (2) 扫描引擎。主要进行目标系统的检测, 对扫描的插件进行合理的调整, 进行目标系统的安全测试; (3) 扫描插件。主要进行目标系统的检查, 生成脆弱性的检查报告, 然后可以根据不同的需求, 提供不同形式的报表; (4) 脆弱数据库。主要是进行系统安全漏洞、补救方式以及告警信息的提示, 对网络系统安全进行预防和消除。实现对网络系统的扫描, 及时发现存在的漏洞, 保障网络的安全。
3 结语
综上所述, 网络安全漏洞扫描系统可以及时的发现计算机网络中潜在的安全漏洞, 然后提出想对应的应对措施, 帮助网络管理者及时掌握计算机网络的安全状况, 排除安全隐患, 防患于未然。
参考文献
[1]罗玉斌.网络安全漏洞扫描系统的设计与实现[D].国防科学技术大学, 2007.
[2]文辉, 王虎智.网络安全漏洞扫描技术的原理与实现[J].福建电脑, 2006 (4) :37-38.
漏洞扫描器 篇7
1 计算机网络安全问题分析
首先, 计算机内部的各种安全机制都具有相应的适用范围, 其机制的运行也要满足一定条件, 若内部机制不够完善就会给用户造成一定安全隐患。在维护计算机网络安全方面, 最常用的就是防火墙技术, 但是由于其功能还存在一定局限, 对于内部网络间的联系还无法给予科学的阻止, 进而往往无法发觉内部网络间产生的入侵行为, 从而使得电脑系统常常会受到内部网络的破坏。同时, 其防火墙技术也无法顾及到系统后门, 以及采取相应的防护措施, 进而使其后门极易被侵入。
其次, 由于电脑内部安全工具的使用无法实现功能的最大化, 而在人为因素的影响下, 其工具的使用效果也无法得到及时优化[1]。同时, 在具体应用中, 系统管理者与普通用户如果没有将其安全工具应用到正当位置也会产生相应的安全隐患。
再者, 随着黑客攻击手段的不断更新, 计算机网络安全问题也是层出不穷, 虽然在网络迅猛发展背景下, 安全工具也随之不断创新, 但却远远无法超越黑客攻击手段的更新速度, 从而常常会存在计算机在被黑客攻击后, 安全工具还未发觉, 也无法及时采取相关措施。
2 提高计算机网络安全的措施
一是, 完善计算机内部安全工具, 增强防火墙功能。在计算机内部应设置高性能的防火墙, 充分发掘防火墙的积极作用, 设置计算机运行中的网络通讯访问权限, 严谨未通过防火墙允许的人或数据访问计算机内部, 同时也要严谨被防火墙拒绝过的用户访问计算机内部。另外, 一定要使黑客对计算机的访问受到防火墙最大限度的限制, 有效阻止其对计算机内部的相关信息做出随意改动, 或者是随意删除相关信息[2]。
二是, 不断更新对网络病毒的防范措施, 不断增强计算机的警惕性, 从而对网络病毒进行及时的发现和预防。目前, 随着互联网的快速发展, 其网络病毒的传播速度也在不断提升, 进仅靠单机来对病毒进行预防是不够的, 很难对其病毒做到完全清除, 所以必须要对一些局部网使用一些适合的防病毒产品。
3 计算机网络漏洞扫描
3.1 漏洞扫描技术
漏洞扫描作为网络安全防护常用的一种技术, 其能够深入检测与分析计算机网络内部的相关设备, 以及终端系统的应用, 并准确、及时的找出其中存在的诸多缺陷与漏洞, 之后再协助相关工作人员对其缺陷与漏洞进行修复, 或者是实施一些有效的防护措施, 来对这些漏洞给予消除与降低, 并以此来增强计算机网络的安全性能。
目前, 安全漏洞扫描通常都是采用主动与被动式两种策略来进行的:主动式的扫描策略主要是利用网络系统进行自检, 并且可以结合主机的响应来对主机操作系统和服务, 以及相关程序是否存在漏洞未修复进行全面了解与掌握;而被动式扫描策略主要是在服务器基础上, 对计算机内部的相关内容进行全面扫描与检测, 并在检测结束后生成相应的检测报告反馈给系统管理人员, 进而使其能够及时发现和修复漏洞[3]。
3.2 漏洞扫描方法
一是, 端口扫描。这种方法主要是对目标主机的某些端口进行扫描, 进而查看其端口中是否存在安全漏洞, 采用这种方法进行漏洞扫描时可以将一些特定信息发送到网络通向目标主机的某些端口, 进而获得某端口更详细的信息, 并结合这些信息来对目标主机是否存在漏洞进行判断与分析。比如:就UNIX系统来讲, Finger服务允许入侵者在其系统上对某些公开信息进行获取, 而对该服务器进行相应扫描就可以对目标主机的Finger服务是否开放进行测试与判断, 并根据其测试结果进行漏洞修复。
二是, 用户口令破解。为了给网络用户的安全使用提供进一步保障, 很多网络服务都设置和用户名与密码, 以及不同的网络操作权限, 而其用户名若被破解便可以得到相应的访问权限, 进而对网络安全构成了一定威胁。对此, 一方面可以采用POP3弱口令进行漏洞扫描, 这是一种常用的邮件收发协议, 其操作需要输入用户名与密码。采用这种扫描方法可以先建立一个用户标识与密码文档, 并存入一些常见的用户名与密码, 并不断更新。然后可以连接POP3使用的目标端口进行漏洞扫描操作, 以此来判断其协议是否处于认证状态, 进而通过对其用户标识, 以及相关信息进行分析与认证来对其是否存在漏洞进行判断, 这种方法可以对计算机网络中存在的若干用户名与密码进行查找;另一方面可以采用FTP弱口进行扫描, 这时一种文件传输协议, 其主要是利用FTP服务器来实现用户的连接, 以此来实现文件的上传与下载, 这种协议的漏洞扫描方法对POP3的方法极为相似, 其区别在于其在扫描过程中建立的连接为SOCKET连接, 并且允许匿名登录, 若在不允许匿名登录的状态下, 可以使用POP3的口令破解方式来进行相关漏洞扫描。
4 结语
总之, 在社会经济科技快速发展过程中, 计算机网络也随之在不断变化, 而其在发展过程中存在的安全漏洞, 以及影响因素也在不断更新, 因此, 为了使用户能够放心的使用计算机网络, 以及在应用过程中获得更加全面的扫描结果, 必须重视起扫描技术的不断创新与研究, 并将其扫描技术科学灵活的应用到计算机的安全防护中, 进而及时发现和修复漏洞, 有效避免安全问题的产生。
摘要:计算机网络的迅猛发展, 在给人们的学习、生活和工作带来便捷的同时, 也存在黑客攻击等许多安全隐患, 而随着黑客攻击技术的日益增强, 如何在应用计算机网络过程中趋利避害, 提高其应用的安全性, 进而使其给我们的日常生活工作带来更多积极的帮助, 也是当前人们关注的焦点问题。所以, 对于计算机网络安全问题, 我们必须给予足够重视, 同时还要加强对漏洞扫描技术的应用研究, 进而不断提高计算机网络的安全性, 使网民能够安心使用。
关键词:计算机网络安全,漏洞扫描技术,应用探究
参考文献
[1]龚静.论计算机网络安全与漏洞扫描技术[J].株洲工学院学报, 2015, 19 (4) :46-49.
[2]龙制田.计算机网络安全中漏洞扫描技术相关问题的研究[J].中国科技博览, 2011, (23) :303-304.
漏洞扫描器 篇8
CNCERT/CC 2006年的工作报告中显示,随着互联网的快速发展,我国公共互联网用户数量已超过1.37亿[1]。在网络发展的同时,互联网作为一个运行系统和一个社会公共环境,所面对的和隐藏的安全威胁也越来越复杂,越来越严重。报告显示,2006年CNCERT/CC接收国内26 476件非扫描类网络安全事件报告中有24 477件是由于Web引起的。从2003年~2006年中国Web攻击事件统计中不难发现,通过Web漏洞进行攻击事件正在逐年迅速的增长[1]。通过Web漏洞进行攻击成了网络漏洞攻击的主要方式与手段。
国内外的许多学术机构、企业和标准化组织在Web漏洞探测方面做了大量的工作。Web漏洞探测系统日趋成熟,当前,比较成熟的漏洞扫描工具有Whisker及Nikto和Nessus。但由于安全产品特殊应用需求以及各个组织的工具自身的技术与安全防护问题,使得这些产品不能很好地被推广或普及。对具体项目需求,设计并实现一个Web漏洞扫描系统是非常必要的。
1 Web漏洞扫描原理
Web漏洞扫描方法主要有两类:信息获取和模拟攻击[2,3]。信息获取就是通过与目标主机TCP/IP的Http服务端口发送连接请求,记录目标主机的应答。通过目标主机应答信息中状态码和返回数据与Http协议相关状态码和预定义返回信息做匹配,如果匹配条件则视为漏洞存在。模拟攻击就是通过使用模拟黑客攻击的方法,对目标主机Web系统进行攻击性的安全漏洞扫描,比如认证与授权攻击、支持文件攻击、包含文件攻击、SQL注入攻击和利用编码技术攻击等对目标系统可能存在的已知漏洞进行逐项进行检查,从而发现系统的漏洞。远程字典攻击也是漏洞扫描中模拟攻击的一种,其原理与其他攻击相差较大,若攻击成功,可以直接得到登陆目标主机系统的用户名和口令。
Web漏洞扫描原理就是利用上面的扫描方法,通过分析扫描返回信息,来判断在目标系统上与测试代码相关的漏洞是否存在或者相关文件是否可以在某种程度上得以改进,然后把结果反馈给用户端(即浏览端),并给出相关的改进意见。
2 Web漏洞扫描系统设计与实现
Web漏洞扫描系统设计的基本要求是能够找到Web应用程序的错误以及检测Web服务器以及CGI的安全性,其中也包括认证机制、逻辑错误、无意泄露Web内容以及其环境信息以及传统的二进制应用漏洞(例:缓冲区溢出等)。同时要求漏洞扫描功能能够更新及时。本系统结合国内外其他Web漏洞扫描系统设计思想的优点,采用Browser /Server/ Database(浏览器/服务器/数据库)和模块化的软件开发思路,通过渗透性检测的方法对目标系统进行扫描。
2.1 系统总体结构设计
本文设计开发的是一个B/S模式的Web漏洞扫描系统。它包括客户端及服务端两个部分,运行环境为Linux系统。首先:使用B/S结构使得用户的操作不再与系统平台相关,同时使得客户操作更方便、直观。其次,系统把漏洞扫描检测部分从整个系统中分离出来,使用专门的文件库进行存放(称为插件)。如果发现新的漏洞并找到了新的检测方法,只要在相关文件夹中增加一个相应的新的攻击脚本记录,即可以实现对漏洞的渗透性测试,同时也实现了及时的升级功能。最后,系统从多个角度来提高漏洞扫描系统的扫描速度以及减少在用客户端与服务端之间的信息传输量,以提高系统的运行效率。其总体结构设计如图1所示。
图1中给出了漏洞扫描系统模型的系统结构图。该漏洞检测系统主要分成四部分:
(1) 主控程序。采用多线程处理方式,它接收多个客户端提交的用户指令后,再次利用多线程技术调用相关的插件脚本,利用渗透性测试对目标系统进行检测,并将结果和进程信息传回客户端显示并保存在客户端本地,以方便用户查看详细信息。
(2) 客户端,即控制平台。B/S结构比传统的C/S结构优越的地方在于方便性和与平台无关性,用户通过Web浏览器设定扫描参数,提交给服务器端,控制服务器端进行扫描工作。同时,对服务器返回的各种检测结果进行相应的显示、汇总和保存。
(3) 插件系统。它保存现在已知各种漏洞检测方法的插件,合理安排插件之间的执行顺序,使扫描按既定的顺序进行,以加快扫描速度提高扫描的效率与准确性。
(4) 数据库,即探测数据库,是系统的核心。它保存已知各类Web漏洞的渗透性的探测数据即攻击代码或信息获取代码,比如SQL注入攻击、跨站点脚本攻击、会话攻击或输入验证编码信息等,逐条给目标发送探测数据,通过把返回信息与预先设定的“返回信息”和状态码进行匹配,进而获得目标返回系统的健壮信息。
在规划系统体系组成部分的基础上,如何把这些组成模块有机地集成为一个系统也是设计本系统的重点。我们要求服务器端同时处理多用户的连接,因此首先要进行多线程处理。在进行单用户处理中,当用户登陆时,检测服务器对用户的用户名和密码进行认证,判断用户是否具有使用权限。用户认证通过后,检测服务器给客户端发送可使用的基本检测信息。客户端接收到服务器的这些信息后,根据具体的使用要求选择和填写各种检测脚本要求的参数,或使用默认参数,然后返回给服务器端。服务器端建立新的进程,开始一个新的漏洞检测任务,对目标系统进行扫描。
2.2 客户端的实现
网络的发展要求在任何地点进行登陆并进行扫描工作,并且漏洞检测参数繁多、设置扫描参数具有很高的复杂性,所以选择现在流行的Web页面作为客户端。这样就可以在世界的任何地点,任何环境使用客户端,用简单的图形化界面进行参数设定和系统的控制工作。
客户端在认证通过后,开始接收服务器发送过来的各种待设定的参数及相关信息以供用户选择。用户根据相关帮助信息及自己相关的要求设定参数,同时设定目标系统的IP地址(或主机名)和端口号等参数。根据客户端的参数设定,服务端建立扫描任务,对目标系统进行检测扫描。
检测过程中,客户可以自行设定是否实时显示服务端扫描状态信息及结果信息,以及在客户端是否保存相关信息,便于用户对扫描任务进行实时的控制,从而制定相应的安全策略。
2.3 通信协议设计
自从1990年以来,人们就用Http协议进行Web数据传输,Http协议是一种在TCP/IP之上的request/response型协议。多数Http数据传输由请求服务器上的某种资源开始,通过网络上的一些中介,如代理、网关等到达服务器,而后服务器处理请求并送回应答。但是Http 1.0并不完全支持各层代理、缓冲、持续的连接以及虚拟主机等技术。Http请求及应答数据包如图2所示。
对于目标系统Web漏洞扫描,使用渗透性的探测方法,渗透性探测方法主要通过更改Http请求信息包中的某些信息,从目标系统的应答信息包中获取状态信息及相关内容以判断目标系统的输入或软件错误,或其他一些配置信息,所以要求开发者可以自定义Http请求信息包。
Libwhisker是一个全面的API,是由一些不同的与Web应用程序相交互的功能模块构成的数据库,它有如下的特点:
(1) 可以与Http 0.9,1.0以及1.1相通信;
(2) 可以建立持续的连接;
(3) 能有效地支持代理;
(4) 支持Anti-IDS技术;
(5) 支持SSL;
(6) 支持Basic和NTLM认证。
所以使用Libwhisker与Http通信,以通过Libwhisker来自定义Http协议信息包以及提供相应的支持。
2.4 特征信息数据库
此漏洞扫描系统的核心就是特征信息数据库,特征信息数据库保存了远程Web系统可能存在的各类Web隐患和漏洞的获取或攻击信息或代码。通过给远程Web系统发送此数据库中的数据以获得目标Web系统的安全性。
考虑到信息的共性与个性、方便性等因素,特征数据库信息大体分为以下几类[4,5]:
(1) Web系统软件版本信息数据库:此类信息以检测当前Web系统相应软件的版本隐患及其漏洞信息,以及Web系统相应软件版本最新信息,并给出相关的提示。
(2) Web系统授权信息:此类信息以检测当前Web相应系统资源的授权情况以及漏洞信息。
(3) 漏洞控测信息数据库:此类数据库是最主要的信息数据库,包含各类Web服务器中存在的各种隐患和漏洞探测信息。具体而言分为以下几个大类:认证攻击、授权攻击、识别“支持”文件、识别包含文件、目录攻击、识别错误、一般的输入验证、源代码泄露、URL编码、Unicode编码、Base64编码、识别请求方法、SQL注入、会话攻击、目录遍历攻击以及跨站点脚本攻击等。
特征信息数据库各记录分别为[6,7]:
Web服务器类别、检测目标URI、预设返回信息、Http方法、描述信息。
2.5 Web漏洞扫描系统的实现
由于允许多用户同时使用服务器端,要求针对不同目标的扫描、检测任务同时进行,所以执行扫描机制就成了服务器端设计中的首要问题[8]。根据服务器并行处理的理论,而且使用B/S的总体结构,考虑到开发语言和开发环境,对于扫描服务器的构架选择Linux平台下的PERL开发语言,使用并发服务器的模型。
并发服务器的思想是每一个客户的请求并不由服务器直接处理,而是由服务器创建相应的子进程进行处理。对于每一个子进程而言,客户可以设定其扫描范围包括不只一个目标地址,同样由服务器创建相应的子进程(即二级进程)来处理,以提高系统的扫描速度。利用Linux下的fork函数来完成一、二级进程处理功能。其流程如图3所示。
另外,由于PERL本身的效率问题,为进一步提高漏洞扫描系统的性能,对目标系统首先利用现阶段已经非常成熟的工具NMAP进行端口扫描,以获得开放的端口,在此基础上进行进一步的端口扫描,以判断在此端口上是否提供的是Web服务。
为进一步加快扫描速度,系统使用扫描知识库来保存已扫描过的主机信息,在获取用户请求以后,首先检测知识库,若有知识库中保存相关信息,则不进行新的扫描工作,只需调用相关的知识库信息返回给用户即可。
在对端口渗透性探测的实现方式上,使用插件脚本的方式来进行。用户可以通过参数选取相应的插件执行,以进行更为完整的漏洞扫描。插件可以动态地升级,其实现方式是每次升级插件时都将已升级的插件根据既定的顺序添加在插件调用清单当中,在插件执行过程中,主控程序根据插件调用清单中的插件执行顺序依次调用插件。插件的执行结果扩充了各类数据库探测信息,这样即可以增加各类特殊的信息,进行更为深入的扫描目标Web系统以发现更新、更多的漏洞信息。
3 结 语
提出对Web系统进行安全扫描的必要性,以及Web漏洞扫描的基本原理,在此基础上提出并设计了一个完整的Web漏洞扫描系统,介绍了它的协议基础以及组成模块。
本文设计的Web漏洞扫描系统已经完全实现,并经过测试,该扫描器基于浏览器/服务器结构,可以扫描UNIX/Windows等多种平台下的Web系统,与同类产品相比,可以看出该扫描器具有如下特点:利用多进程/知识库等技术加快了扫描速度;扫描封装在插件中使系统具有可扩展性[9];使用B/S结构使得用户操作方便,扫描结果详尽。此扫描系统实现了Web隐患扫描和漏洞检测,并可以提供漏洞的修补建议,将会在很大程度上确保Web系统安全。
参考文献
[1]Annual Report by CNCERT/CC[EB/OL].http://www.cert.org.cn/,2006.
[2]Sung Whan Woo,Omar H Alhazmi,Yashwant K Malaiy.AnAnalysis of the Vulnerability Discovery Process in WebBrowsers[A].In Proceedings of the 10 IASTED Interna-tional Conference Software Engineering and Applications[C].2006.
[3]挷lfar Erlingsson,Benjamin Livshits,Yinglian Xie.End-to-End Web Application Security.Proceedings of the 11thWorkshop on Hot Topics in Operating Systems(HotOS′07).USENIX Association Berkeley,San Diego,CA,2007.
[4]Johns M.SessionSafe:I mplementing XSS I mmune SessionHandling[A].Proc.ESORICS[C].2006:444-460.
[5]Miter.Common Vulnerabilities and Exposures[EB/OL].ht-tp://cve.mitr.org/cve/,2007.
[6]Su Z,Wassermann G.The Essence of Command InjectionAttacks in Web Applications[J].Proc.POPL,2006,4(1):372-382.
[7]Yu D,Chander A,Islam N,et al.JaveScrip Instrumentationfor Browser Secutiry[J].Proceedings of 34th Annual ACMSIGPLAN-SIGACT Symp.on Principles of ProgrammingLanguages[C].France,2007:237-249.
[8]Savvis.Web Application Vulnerability&PenetrationTesting[Z].Transforming Information Technology,2006.
【漏洞扫描器】推荐阅读:
网络漏洞扫描原理分析06-14
JEECMS漏洞(文件上传)漏洞预警09-09
帝国CMS 留言本多字节漏洞漏洞预警10-10
MetInfov5.1.3 任意文件上传漏洞漏洞预警10-24
注入漏洞10-21
漏洞管理05-23
防护漏洞09-03