APP下载

网站漏洞挖掘与安全评估技术综述

2018-03-07冯冰彬

网络安全技术与应用 2018年8期
关键词:二进制漏洞数据挖掘

◆冯冰彬 王 娟



网站漏洞挖掘与安全评估技术综述

◆冯冰彬 王 娟

(成都信息工程大学网络空间安全学院 四川 610225)

网站本身的漏洞会导致商业机密、个人隐私的泄露,进而造成一系列严重影响。因此,针对网站的漏洞挖掘与安全评估技术受到越来越多的关注,具有很强的实用价值。本文首先综述了常见的网站漏洞及其防护技术,进而综述了漏洞挖掘的相关技术,包括扫描、二进制比对、数据挖掘等等。最后,综述了网站安全评估技术,特别是基于漏洞挖掘的评估技术,通过对不同漏洞的威胁进行评价,给出网站整体的安全评估结果和防护建议。

漏洞挖掘;安全评估;数据挖掘;二进制比对

0 引言

近年来,安全事件层出不穷。网站安全已成为全世界面临的主要问题之一,而网站漏洞又是威胁网络安全最重要的因素之一。据中国信息安全测评中心国内外信息安全漏洞态势报告,漏洞数量增长趋势依旧持续。

网站存在漏洞,易被攻击者植入木马、病毒等,对网站的安全性能、用户的隐私、数据及财产安全造成威胁。因此,对漏洞挖掘技术的研究,有利于研究者挖掘出更多的漏洞,及时对漏洞进行打补丁,减少被攻击率。网络安全风险评估,使得管理人员了解网络安全现状,有针对地采取安全措施,提高网络安全水平,将风险控制在可接受的范围。为了保护网站安全,发现网站漏洞,提出解决方案,及时对网站进行加固,对网站安全进行总体评估具有现实价值和理论意义。

本文从漏洞的种类出发分别介绍了其各自的危害及防护技术。进而简要介绍了目前的网站安全评估技术,为依据漏洞评估网站风险打下基础。

1 常见漏洞与防护技术

常见的网络威胁种类包括操作系统的漏洞,服务器的漏洞,Web应用的漏洞等。

1.1 操作系统漏洞与防护

操作系统漏洞是指计算机操作系统本身所存在的问题或技术缺陷。目前大众普遍使用的操作系统为微软的Windows操作系统。

Windows操作系统出现漏洞,某些是由于软件设计失误而产生,而另一些则由于用户设置不当所引发。文献[1]针对以上两种不同的错误采用了以下两种不同的方式加以解决:

(1)设计错误:及时下载微软推出的相应补丁程序,并安装;

(2)设置错误:用户则应及时修改配置。

1.2 服务器漏洞与防护

Web服务器在运行过程中,时刻受到各种安全威胁,包括利用IIS攻击、SQL注入、拒绝服务等。

Web服务器上存在的漏洞包括以下几种常见形式:

(1)Web服务器因各种原因无法完成用户的访问请求;

(2)公共网关接口安全方面存在的漏洞;

(3)远程用户向服务器发送信息时,如用户账号、密码等重要信息,传输过程中遭受不法分子的拦截。

针对以上Web服务器存在的安全问题,文献[2]详细介绍了Web服务器的防护技术,包括:防篡改网页技术、密码安全、反向代理、蜜罐技术、设置IP访问限制、加强客户端管理。

1.3 Web应用漏洞与防护

OWASP(开放式Web应用程序安全项目)组织每年都会公布TOP10 Web应用程序安全风险漏洞。其中,注入和失效的身份认证和会话管理是Web应用程序中两大高危漏洞。

(1)注入

几乎任何数据源都能成为注入载体,包括用户、参数、外部和内部Web服务。当攻击者向解释器发送恶意数据时,注入漏洞就产生。注入能导致数据丢失或数据破坏、缺乏可审计性或是拒绝服务。注入漏洞有时甚至能导致完全主机接管。

为了防止注入漏洞,需要将数据与命令语句、查询语句分隔开来。最佳选择是使用安全的API,完全避免使用解释器,或提供参数化界面的接口,或迁移到ORM或实体框架。使用正面的或“白名单”的具有恰当的规范化的输入验证方法同样会有助于防止注入攻击。对于任何剩余的动态查询,可以使用该解释器的特定转义语法转义特殊字符。

(2)失效的身份认证和会话管理

大多数身份和访问管理系统的设计和实现,普遍存在身份认证失效问题。攻击者可以使用手动方式检测失效的身份验证,通常会关注密码转储,或者在类似于钓鱼攻击之后,发现失效的身份认证。

为了防止失效的身份认证和会话管理攻击,可以采取以下措施:

①使用非过时的哈希技术来存储密码;

②执行弱密码检查;

③在尽可能的地方,实现多因素身份验证;

④当凭证填充、蛮力和其他攻击被检测到,日志记录身份验证失败并警告管理员。

2 漏洞挖掘技术

2.1 网络爬虫与扫描

扫描通常是进行漏洞挖掘前的一个步骤。Web漏洞扫描技术包括端口扫描、主机扫描、操作系统指纹识别扫描等[3],是一种比较有效的主动防御技术[4]。通过扫描端口、主机及操作系统,可以得到很多有价值的信息,利用这些信息进一步推断出可能存在的安全风险。网络爬虫是可以自动抓取互联网信息的程序。其主要目的是将互联网上的网页下载到本地进行镜像以备进一步分析处理[3]。扫描和网络爬虫都只是挖掘漏洞的一个步骤,获取一些有价值的信息帮助研究者加以分析,但是它们都无法直接扫描到漏洞,需要配合使用其他的技术或者利用插件对网站的漏洞进行挖掘。

文献[3]采用网络爬虫技术对爬取下来的数据进行分析,提取出内容与漏洞利用代码片段或证明漏洞存在的代码片段进行比对,判断网站是否存在漏洞。文献[5]使用端口扫描技术,实现了一个基于网络的以端口扫描模块和爬虫模块为核心的漏洞扫描系统。文献[6]将传统的网络漏洞扫描技术与Web指纹技术结合在一起使用,采用Wapplyzer技术提取Web应用指纹特征,再使用欧氏距离KMN算法匹配指纹数据库的指纹数据,实现了一个Web应用程序漏洞扫描系统。

以上文献中所提系统在实验中均被证明了其可行性,但是它们扫描漏洞的效率和精确度不高。还需要改进更加优化的算法以提高系统对漏洞的扫描效率和精确度,改善插件技术以扫描出更多的漏洞,尤其是新型漏洞。

2.2 二进制比对技术

二进制比对技术[7]可称为补丁比对技术,它主要是被用以挖掘“已知”的漏洞,因此在一定意义上也可被认为是一种漏洞分析技术。由于不知道漏洞的确切位置和成因,因此需要通过比较补丁前后的二进制文件以确定漏洞的位置和成因。

补丁比对技术有很多,简单的比较方法有二进制字节比较和二进制文件反汇编后的文本比较[7]。文献[8]提出一种基于补丁比对和静态污点分析的漏洞定位方法,该方法通过分析大量开源软件的缓冲区溢出错误的实例,提取6种缓冲区错误的漏洞定位模型,通过将补丁比对和污点传播的结合,生成污点传播路径图,将补丁源码的污点传播路径图与定位模型匹配以定位某小块代码,采用污点查找精确定位漏洞所在行。

目前在二进制漏洞问题上,很多研究者只是简单的对某些可执行文件进行二进制漏洞挖掘,而且还是主要停留在挖掘缓冲区溢出、整数溢出这些常见的漏洞挖掘技术上,对那些少见的或未知的漏洞并未进行研究,也未实现自动化及提出相关漏洞解决方案。

2.3 数据挖掘

数据挖掘[9]是指从大量数据中提取知识。数据挖掘包括很多数据前期处理,用爬虫爬取数据,然后做数据的清洗,数据的整合,数据有效性检测,数据可视化等,最后用一些统计的或者机器学习的算法来抽取某些有用的“知识”。文献[10]基于数据挖掘技术,运用Apriori算法进行漏洞与软件之间的关联分析,运用ARTrp和ARIMA时序算法对漏洞出现规律进行预测,采用BI Dev Studio建立挖掘结构和挖掘模型,针对Secuma安全漏洞库中的漏洞数据,实验得到了一组描述漏洞与软件之间存在关系的关联规则,以及漏洞数量的时序预测值。文献[11]通过对网站利用特征选择、数据挖掘、数据分析和统计技术的方法进行在线异常行为分析来检测任何恶意代码或已遭受Web注入攻击的页面,以克服网站的脆弱性。文献[12]使用混合的方法来检测更少误报的漏洞,在使用污点分析来标记候选漏洞的初始步骤之后,再使用数据挖掘来预测误报的存在。

因此,在网站漏洞挖掘过程中,可以使用数据挖掘的方法来分析,识别出某些威胁、欺诈、入侵、异常行为和无效的数据等。

3 网站安全评估

网络安全风险评估,使得管理人员了解网络安全现状,有针对地采取安全措施,可以将风险控制在可接受的范围。网络安全评估通常是综合考虑资产、威胁、脆弱性三个方面的因素进行评估。

常用的网络安全评估方法可以分为三大类:定性评估方法、定量评估方法和综合评估方法。文献[13]将定性和定量两种评估方法结合了起来,采用了综合评估方法,建立了一个基于CC标准和多层线性加权综合评判的网络安全评估模型,该算法通过确定权重集及指标综合计算,计算出某单位内部综合信息网的安全等级为3级,验证了该评估模型的合理性。有的研究者利用神经网络的适应性比较强的优点将神经网络应用在网络安全评估上,如文献[14]在BP神经网络算法[15]的基础上利用遗传算法对计算机网络安全评价的仿真模型进行改进,对GABP神经网络算法在计算机网络安全评价方面的应用进行了深入的研究。文献[16]先计算出每个漏洞占漏洞数据库模块内保存的若干漏洞总数中的分数,再根据漏洞数据库模块中的规则,调用相应的测试函数对需要评估的网站域名下的所有网页进行模拟攻击,最后根据漏洞的个数得出网站安全风险评估的分数,以实现对网站安全风险的评估。除此之外,网络扫描技术也是最常用的技术手段,是一种主动出击的网络风险评估技术[17]。

有的研究者还提出基于漏洞挖掘的评估技术。如文献[18]根据漏洞评估值的分布函数来计算未来可能发现的漏洞概率,提出了基于概率的漏发风险评估值误差减少算法。文献[19]对主机基本信息进行探测,通过规则匹配发现系统的脆弱性信息,从而进行综合评估。文献[20]在通用脆弱点评分系统基础上进行改进,设计了一种更具多样性且更能反映实际情况的脆弱点评分方法。该方法由分析后得出的一系列实际系统约束规则出发,使用最优脆弱点评分权值组合搜索算法和基于信息熵的权值组合选择算法,联合确定目标网络的最优脆弱点评分权值组合,最终实现对脆弱点的最优评分。现阶段,我国的网络安全防护技术包括数据包的过滤技术分析、应用网关技术分析、状态检测技术分析。

综上,可以通过对主机扫描,操作系统的识别,服务器漏洞的挖掘及网站漏洞的挖掘,再对挖掘出的主机端、操作系统端、服务器端及Web应用可能出现的漏洞的危险级别进行总体评价,进而使用各种综合评估方法对网络的安全性进行评估以了解网络安全现状,有针对地采取安全措施,将风险控制在可接受的范围。

4 未来展望

漏洞分析本身是一项较为复杂的课题,国际上的研究历史并不长,国内的相关研究工作也才刚刚起步。目前针对网站漏洞挖掘已开发出各种工具,但是这些工具都只是单一地针对主机的漏洞、操作系统的漏洞或者服务器的漏洞,并未实现集成化。很多研究者设计的系统只实现了部分自动化,对扫描出的可能漏洞未进行网站安全等级评估,也未提出相应漏洞解决方案。在二进制领域的挖掘,还存在挖掘步骤复杂、准确率低,需要大量人工参与,自动化程度低。如何实现二进制漏洞的自动化挖掘,改进其算法是未来的研究方向。另外,研究漏洞特别是新型漏洞对网站的安全威胁,提出一个基于漏洞发现的网络安全评估算法是未来需要解决的难题之一。最后,现有手段重扫描轻修补,漏洞修补建议未充分参考软件系统自身的特性,因此,根据软件系统自身的特性提出漏洞修补建议是未来研究方向之一。

[1]韩秀芹.操作系统漏洞分析与防范[J].中国石油和化工, 2011.

[2]孙也.Web服务器安全防护技术分析与探讨[J].科技传播, 2015.

[3]赵星.Web漏洞挖掘与安全防护研究[D].中北大学, 2016.

[4]尹彦涛.Web漏洞扫描系统设计与实现[D].中国海洋大学,2014.

[5]Xiao Y, Yang H, Lin N, et al. Research and Design of Network Version Vulnerability Scanning System Based on WEB[J],2017(aiea).

[6]He H, Chen L, Guo W. Research on Web Application Vulnerability Scanning System based on Fingerprint Feature[C]// International Conference on Mechanical, Electronic, Control and Automation Engineering,2017.

[7]迟强,罗红,乔向东.漏洞挖掘分析技术综述[J].计算机与信息技术,2009.

[8]达小文,毛俐旻,吴明杰等.一种基于补丁比对和静态污点分析的漏洞定位技术研究[J].信息网络安全,2017.

[9]Ghaffarian S M, Shahriari H R. Software Vulnerability Analysis and Discovery Using Machine-Learning and Data-Mining Techniques: A Survey[J]. Acm Computing Surveys,2017.

[10]张雪芹,徐金瑜,张建军等.基于数据挖掘技术的信息安全漏洞预警[C].信息安全漏洞分析与风险评估大会,2012.

[11]Satam P, Kelly D, Hariri S. Anomaly behavior analysis of website vulnerability and security[C]// Computer Systems and Applications. IEEE,2017.

[12]Ibéria Medeiros, Neves N F, Correia M. Automatic detection and correction of web application vulnerabilities using data mining to predict false positives[C]// International Conference on World Wide Web,2014.

[13]关卿,杨鸾,阴东锋.网络安全评估研究[J].计算机与网络,2012.

[14]温斯琴,王彪.基于神经网络的计算机网络安全评价仿真模型[J].现代电子技术,2017.

[15]郭强.神经网络在计算机网络安全评价中的应用研究[J].佳木斯职业学院学报,2017.

[16]郑美惠. 网站安全风险评估系统: CN106330954A[P],2017.

[17]李非.探讨网络安全风险评估关键技术的应用[J].网络安全技术与应用,2017.

[18]王娜.基于漏洞扫描的脆弱性评估系统研究与设计[D].合肥工业大学,2013.

[19]于毅.基于漏洞扫描的系统脆弱性评估研究[D].西安电子科技大学,2008.

[20]周诚,李伟伟,莫璇等.一种网络安全脆弱性评估方法[J].江苏大学学报(自然科学版),2017.

猜你喜欢

二进制漏洞数据挖掘
漏洞
用二进制解一道高中数学联赛数论题
探讨人工智能与数据挖掘发展趋势
数据挖掘技术在打击倒卖OBU逃费中的应用浅析
有趣的进度
二进制在竞赛题中的应用
三明:“两票制”堵住加价漏洞
漏洞在哪儿
二进制宽带毫米波合成器设计与分析
一种基于Hadoop的大数据挖掘云服务及应用