基于机器学习的应用系统深度指纹识别技术及应用_第1页
基于机器学习的应用系统深度指纹识别技术及应用_第2页
基于机器学习的应用系统深度指纹识别技术及应用_第3页
基于机器学习的应用系统深度指纹识别技术及应用_第4页
基于机器学习的应用系统深度指纹识别技术及应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

随着互联网的迅速发展和智能化应用的普及,对数据的隐私保护和安全性的要求越来越高。在网络安全领域,指纹识别技术被广泛用来识别和验证用户的身份,以保护敏感信息和资源的安全。传统的指纹识别技术主要集中在人体指纹的识别上,但随着技术的进步和应用场景的改变,深度指纹识别技术逐渐引起了研究者和工程师的关注。深度指纹识别技术是一种基于机器学习的指纹识别方法,通过训练模型和学习特征来实现更准确和可靠的指纹识别。与传统的指纹识别技术相比,深度指纹识别技术具有更高的灵活性和扩展性。它能够识别各种类型的指纹,包括人体指纹、网络活动指纹、行为指纹等,以满足不同领域的应用需求。深度指纹识别技术是通过深度学习模型来提取和学习指纹数据的特征,从而实现指纹的分类和识别,并通过分析指纹的局部特征和上下文信息,达到更高的识别准确率和鲁棒性。因此,本文面向信息安全测试领域,在应用系统进行漏洞检测时,针对如何快速获取应用系统指纹信息,如何根据应用系统指纹信息进行自适应漏洞检测等问题,提出了“基于机器学习的深度指纹识别技术及应用”思路,帮助测试人员快速准确找到应用系统漏洞,及时通知系统开发人员进行整改修复,做好网络安全防护工作,进一步保障系统安全稳定运行。1研究思路1.1概述目前针对Web服务器指纹识别的主流研究主要通过分析大量HTML数据,包括HTML源码关键字和特殊文件及路径,来识别Web组件,探测以下几个请求和返回信息进行Web应用指纹判断:网站响应头部信息(Responseheader)、HTML页面内META标签信息、HTML内脚本语言信息(JavaScript,JS)、层叠样式表(CascadingStyleSheets,CSS)等引用链接信息、特殊统一资源定位(UniformResourceLocator,URL)地址及参数、特定文件名、文件内容及文件的数字摘要(Hash值)。主流的Web指纹识别技术是基于特征匹配实现的,包括特殊静态文件Hash值和关键字段两类特征。特殊静态文件可以是js、css文件,也可以是图片、默认图标favicon.ico等。关键字段特征包括HTTP响应头里的关键字段特征信息、正常或错误页面里的关键字段特征、文件资源路径里的关键字段特征。1.2研究思路本文通过基于机器学习的应用系统深度指纹识别技术及应用的研究,实现了一种使用基于机器学习的自动化安全测试工具。该系统首先通过基于机器学习的数据对安装在Web服务器上的软件(操作系统、中间件、框架、CMS等)进行标识和深度识别;其次利用识别后的精确数据,使用安全检查工具(TheMetasploitFramework,MSF)对标识的软件执行有效的数据分析和安全测试;最后生成扫描结果报告。该系统自动执行上述处理,如图1所示。图1系统处理步骤用户的操作只输入目标Web服务器的顶部URL(TOPUR),系统就自动爬取收集目标服务器的数据信息,获取域名信息,探测Web应用程序的目录结构,识别Web应用程序的技术栈,发现敏感信息等。通过系统智能化分析,用户可以在不花费时间和精力的情况下自动识别Web服务器的构建特征信息、组件信息和脆弱性信息等。2研究内容及方法2.1HTTP信息收集爬虫技术HTTP信息收集爬虫技术是一种利用HTTP协议进行信息收集和抓取的技术方法。它通过模拟HTTP请求,访问目标网站的不同页面,获取网页内容并提取有用的信息。本文利用爬虫技术收集目标网站的HTTP响应报文包,在用户输入TOPURL后,自动扩展目标网站资源、路径链接,进行原始响应数据的爬取。信息收集爬虫技术基本原理为:网络爬虫通过HTTP链接输入并向目标站点发起请求,即发送一个Request请求,请求数据可以包含Headers(附加信息)、Cookies等信息,等待后台的响应。后台正常接收并响应返回一个Response响应数据,响应报文中的响应体包含网页信息,可能有HTML、文档、图片、视频等资源文件或者JSON数据等。HTML解析可以使用网页解析库和正则表达式进行处理。如果是JSON的话,可以直接转成JOSN对象进行解析。如果是其他资源文件,就先保存等待爬取完成后处理。爬虫可以用不同种形式来存储网页信息、生成文本文档,或者直接保存到数据库。本文通过Scrapy框架来实现信息收集爬虫技术。Scrapy是一个为了爬取网站内容、提取结构性数据而编写的开源爬虫应用框架。可以运用在数据挖掘、信息处理或者存储历史数据等一系列程序中。使用Scrapy框架可以方便地自定义爬虫的爬取规则,此外,还有很多稳定的开源库帮助本文进行前置后续处理。HTTP信息收集爬虫技术的实现步骤如下:(1)确定目标网站:首先需要确定要爬取的目标网站,包括网站的URL和要抓取的页面。(2)构建爬虫程序:根据所选的编程语言和爬虫框架,编写爬虫程序。爬虫程序需要实现URL管理、HTTP请求、页面分析以及数据存储等功能。(3)发送HTTP请求:爬虫根据URL队列中的待访问URL,构造HTTP请求,并发送给目标服务器。HTTP请求中包含请求方法(GET、POST等)、请求头(headers)、请求体(body)等信息。(4)处理服务器响应:爬虫接收到目标服务器返回的HTTP响应,并根据响应的状态码和内容进行处理。常见的响应状态码有200表示成功,404表示页面不存在等。(5)页面分析和信息提取:爬虫对服务器返回的HTML页面进行解析和分析,根据页面分析技术提取出所需的信息,如文字、链接、图片等。(6)数据存储:将提取的信息进行存储,可以选择合适的存储方式,如文本文件、数据库等。(7)循环迭代:根据需要,爬虫可以设置循环迭代的逻辑,不断发送HTTP请求,抓取多个页面的信息,还可以通过设置抓取深度、时间间隔等方式进行控制。2.2目标指纹识别技术面向特定目标的指纹识别技术主要利用基于字符串匹配的识别技术和基于机器学习的识别技术,对前面的爬虫收集的HTTP响应数据集进行处理分析,从而识别目标的深度指纹信息。2.2.1基于字符串匹配识别(1)原理基于字符串匹配目标指纹识别技术是一种通过字符串匹配来识别目标的技术。它在文本、代码、日志等数据中查找指定的字符串,从而实现目标的定位和识别。基于字符串匹配的目标指纹识别技术的原理主要包括以下几个方面。①字符串匹配算法:字符串匹配算法是基于目标字符串和待搜索字符串之间的比较,从而确定是否存在匹配的子串。常见的字符串匹配算法包括暴力匹配法、KMP(Knuth-Morris-Pratt)算法、BM(Boyer-Moore)算法等。本文通过KMP算法实现字符串匹配和目标识别。②目标定义和关键词提取:在使用字符串匹配目标识别技术之前,需要明确目标的定义和关键词的提取。目标可以是一个特定的字符串,也可以是一组字符串的组合。关键词提取是通过文本分析和数据挖掘技术,从大量的文本数据中提取出与目标相关的关键词,用于目标识别和匹配。③输入数据预处理:在进行字符串匹配目标识别之前,通常需要对输入数据进行预处理。这包括去除无关字符、转换大小写、分割文本等操作。预处理可以提高匹配效率和准确性,减少干扰和误判。④匹配模式设计:匹配模式设计是指设计和实现匹配规则和模式,对目标字符串进行匹配。匹配模式可以是简单的字符串匹配,也可以是模式匹配、正则表达式匹配等更复杂的匹配方法。根据目标的特征和匹配的需求,选择合适的匹配模式进行目标识别。⑤目标识别和处理:基于字符串匹配的目标识别技术可以通过扫描输入数据,并根据预先定义好的匹配模式和关键词,检测出目标的位置和存在。一旦识别出目标,就可以进行后续的处理,如记录日志、生成报告、触发事件等。(2)实验验证爬虫所爬取的数据如图2所示。通过字符串匹配可识别出为Drupal的CMS系统,如图3所示。图2爬虫数据图3字符串匹配识别2.2.2基于机器学习的指纹识别(1)朴素贝叶斯算法原理贝叶斯算法主要用于对目标进行分类,其算法思想主要基于贝叶斯原理,关键在于计算各类值之间的数据联合分布。由于朴素贝叶斯是假定贝叶斯模型中的所有属性都是相对独立的,因此在属性具有特定值的条件下,可以通过将所有属性乘以具有特定类标签的概率来获得类的概率值,是一种有监督学习算法。计算流程如下文所述。步骤1:计算特征值y被分类为xi类别的后验概率式中:为特征值的先验概率。最大化p(y|xi)可以实现分类的目的。步骤2:已知HTTP指纹特征y包含n维特征向量,则y可表示为结合公式(1)可知:步骤3:将公式(2)中的看作常量,则可简化为:式中:为指纹样本y的分类结果。(2)特征选取指纹特征输入到贝叶斯模型前,需要将响应内容从不同的特征维度进行表示,以便贝叶斯模型能够学习到响应内容的特征。本文主要从响应内容的4个特征维度进行考量,具体特征维度如表1所示。表1 选取的特征维度(3)归一化HTTP请求特征和URL特征在数据分布区间上存在差异,容易导致模型训练不收敛,因此采用公式(4)对特征向量进行归一化:式中:y为归一化后的特征元素;x为待归一化的特征元素;分别为特征元素的最大值和最小值。(4)算法流程步骤1:通过URL地址发送请求,并获取返回的响应信息。步骤2:对响应信息的3个特征维度进行特征编码,并且对数据进行归一化处理。步骤3:将归一化后的数据向量作为贝叶斯模型的输入,输出结果即为预测结果。预测流程如图4所示。图4预测流程(5)实验验证由于Apache、Joomla!、Typeo、Drupal等每个软件的特性都略有不同,将它们组合起来进行识别。朴素贝叶斯利用训练数据学习。与签名库不同的是,当无法在一个特性中识别软件时,朴素贝叶斯是基于HTTP响应中包含的各种特性随机识别的,如图5可以识别为CMSJoomla系统。这是因为机器学习识别模块学会了Joomla的特征,例如“Cookie名称(f00e6….9831e)”和“Cookie值(0eba9….7f587)”。在本文的数据分析中,Joomla在许多情况下使用32个小写字母作为Cookie名称和Cookie值。训练数据如图6所示。图5响应set-cookie值图6训练数据基于机器学习指纹识别实验获取的目标数据如图7所示,包括产品名称、产品版本、组件名、操作系统版本。图7基于机器学习的指纹识别数据结果2.3目标安全缺陷利用技术Metasploit是一个被广泛使用的安全测试工具,它可以帮助安全专业人员发现和利用计算机系统中的安全漏洞。它拥有强大的功能和广泛的支持,可以帮助用户从安全测试者的角度来检测和修复系统漏洞。基于机器学习的指纹识别软件在安全测试中的作用是识别目标系统的运行环境。通过分析系统的响应和标识信息,目标指纹识别软件可以确定目标系统使用的操作系统、服务和软件版本等重要信息。这些信息对于成功利用系统漏洞至关重要,因为不同的操作系统和服务可能存在不同的漏洞。本文通过基于机器学习指纹识别软件与Metasploit工具配合执行,检查被测目标是否受到漏洞的影响,来自动化实现目标安全缺陷利用,如图8所示。图8应用思路整体应用思路过程如下文所述。(1)数据收集:机器学习指纹识别软件通过扫描目标系统收集关键特征数据,如操作系统版本、软件配置等。(2)特征提取和训练:收集到的特征数据被提供给机器学习算法进行训练。这个训练过程会建立一个指纹库,其中包含已知的漏洞特征和与之相应的利用。(3)特征匹配:在执行利用之前,使用指纹识别软件对目标系统进行扫描,并提取目标系统的特征;然后,与指纹库中已知的漏洞特征进行匹配,如果匹配成功,就意味着目标系统可能存在与已知漏洞对应的安全缺陷。(4)目标缺陷利用:机器学习指纹识别软件通过Metasploit框架的远程过程调用(RemoteProcedureCall,RPC)服务与Metasploit工具进行通信连接,实现安全测试流程自动化。一旦匹配到目标系统的漏洞,Metasploit框架可以根据匹配结果自动选择相应的漏洞利用模块进行测试。这样,目标缺陷利用的过程可以自动化和精确地执行。将Metasploit和基于机器学习的指纹识别软件结合使用,可以提高安全测试的效率和成功率。首先,Metasploit通过使用模块来实现对目标系统的漏洞利用。Metasploit拥有大量的模块,包括扫描器、漏洞利用器、Payload生成器等。用户可以根据目标系统的特点选择相应的模块进行测试和利用。其次,Metasploit可以根据目标指纹识别软件提供的信息选择适当的模块进行漏洞测试和利用。例如,如果目标系统被识别为运行着一个特定版本的Web服务器软件,Metasploit可以选择相应的漏洞利用模块来检测和利用该软件版本的安全漏洞。同样重要的是,Metasploit还可以使用Payload生成器来生成定制的载荷。用户可以根据目

温馨提示

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

评论

0/150

提交评论