论文部分内容阅读
随着互联网技术的高速发展,大量的开源组件广泛用于Web站点的搭建,但是这些开源组件本身也可能存在容易被攻击者利用的各种漏洞和缺陷,因此准确识别出目标站点的Web组件信息能够提升安全测试的效率,对保障站点的安全性有着重要意义。目前对于Web组件的识别主要基于固定规则分析网页源码和响应报文信息,但这些信息容易被隐藏或修改,从而导致识别准确率低,同时对Web指纹库的完备性要求较高。针对上述问题,本文提出一种Web组件探测方法,并在此基础上设计与实现了一套自动化Web组件指纹探测系统。主要工作包括:(1)针对Web服务器类型的识别,提出了一种基于机器学习算法的识别模型,以响应报文首部字段相对位置顺序和相关字段内容为特征,构建基于随机森林算法的多元分类器,对Web服务器类型识别准确率达到97.73%;针对CMS系统类型的识别,提出了一种基于爬虫获取目标站点多页面的静态文件路径信息的方法,通过提取关键路径信息能识别CMS系统,并与现有检测工具进行比较实验,识别准确率高于现有检测工具。针对主机端口指纹的识别,提出了一种将Nmap集成到系统进行自动化端口扫描的解决方案。(2)基于上述Web组件检测方法,从安全测试的实际需求出发,设计了自动化Web组件检测系统。该系统包含爬虫扫描模块、任务调度模块、系统存储模块、用户交互模块和Web组件指纹检测模块五个部分,并对每个子模块的实现提供了落地方案。同时使用Quartz和Redis消息队列对系统进行解耦,设计了整个系统的工作流程。(3)基于上述设计,实现了自动化Web组件探测系统。系统使用Redis集群、Nginx、主从MySQL等多种技术保证了系统的高可用和易扩展性,并以Web界面的形式提供给用户,最后抽取目标站点样本,同时创建了 12个任务对系统的主要功能进行测试,能够实现对目标站点Web组件的自动化识别。