一种基于海量Web日志的网站风险指数计算系统及方法与流程

文档序号:16686375发布日期:2019-01-22 18:21阅读:354来源:国知局
一种基于海量Web日志的网站风险指数计算系统及方法与流程
本发明涉及一种网络安全
技术领域
,具体是一种基于海量web日志的网站风险指数计算系统及方法。
背景技术
:随着互联网的飞速发展,网络安全的复杂性与重要性也日益突显。网络攻击事件不断,网络安全问题越来越受到人们重视。网站风险评估技术,是根据网站当前所处环境,分析目前网站的脆弱性以及所面对的威胁,提供准确、客观的风险数据,对于有网站安全化建设和完善防御体系有重大意义。web日志作为网络安全中的一个重要组成部分,对其中的实时攻击事件进行提取和分析,为计算机取证提供重要信息。而网站漏洞有cvss(commonvulnerabilityscoringsystem)提供权威的分级指标。将两者结合起来为网站风险评估提供初步数据,保证了该评估指标的准确性、实时性、预见性。现有技术中,安徽云图信息技术有限公司于2016年9月发表过《网站安全风险评估方法和系统》的专利,实现了通过扫描的漏洞构建模拟攻击的方法评估网络风险,然而,该方案中没有通过web日志抓取现实中网站遭受的攻击事件作为评估依据,缺乏现实中攻击威胁的评估;张峰等人于2014年发表在《journalofbeijinguniversityofpostsandtelecommunications(北京邮电大学学报)》的论文《researchofwebaccessloganalysisofsecuritytechnologyweb(访问日志安全分析技术研究)》实现了通过web日志抓取攻击事件,计算攻击数量、攻击威胁、攻击成功率这三项系数得到网站风险指数,然而,该方案没有考虑网站漏洞为安全事件源头和攻击成因,缺乏对脆弱性的评估。技术实现要素:本发明主要是解决现有技术中网站风险评估存在局限性,没有将web日志提供的安全信息纳入评估范围,或是缺乏将攻击危害与网站漏洞威胁结合评估的问题,提供了一种基于海量web日志分析技术,依据实时攻击事件和漏洞cvss评分的网站风险评估系统及方法。本发明的上述技术问题主要是通过下述技术方案得以解决的:基于海量web日志的网站风险指数计算方法,包括部署在web服务器上的支持海量web日志源的采集单元,安全信息分析单元与网站风险评估单元,且采集单元-分析单元-评估单元依次相连;其中采集单元:实时监控日志文件目录,按照一定的时间间隔t,提取实时生成的web日志,预处理生成字段,发送至分析单元;分析单元:一方面接收日志字段,根据攻击行为特征库抓取敏感字段,另一方面扫描站点漏洞,分析站点脆弱性,发送分析结果到评估单元;评估单元:接收分析结果,根据预置的评估方法与及指标评估网站风险,得到风险指数。作为优选,所述的网站风险指数计算方法,包括以下步骤:s1.web日志预处理;s2.扫描目标web站点,获得相应漏洞信息,基于cvss分值,计算站点的脆弱性值;s3.对于海量web日志,采用攻击正则表达式进行逐条分析,得到相应攻击类型;s4.按照一定的采样间隔t,基于当前攻击事件,计算站点的威胁值;s5.综合脆弱性值以及站点威胁值,结合owasp权威攻击危害评级,评估网站风险,计算站点的风险指数。作为优选,步骤s1中web日志预处理过程包括:s11.识别日志源类型,根据日志特征识别tomcat、apache、nginx与iis四类日志;s12.标准化日志源,采用正则表达式提取日志中源ip、时间、访问方式、url、响应码和浏览器类型6个字段,构成与一条日志对应的信息集合i。作为优选,步骤s2中扫描目标web站点,计算站点的脆弱性值过程包括:s21.扫描目标web站点,建立网站结构节点树;s22.对网站结构节点树的各个节点分别进行漏洞检测,构造攻击特征的http请求,根据其响应特征确定是否存在此种漏洞,攻击按照sql注入、跨站脚本漏洞、弱口令漏洞、http报头追踪漏洞、struts2远程命令执行漏洞、文件上传漏洞、敏感信息泄露漏洞、文件遍历漏洞、其他类别;s23.针对每一个漏洞独立进行评估,分基本评估指标、时间性评估指标和环境评估指标,基于cvss计算每个漏洞的cvss分值ci,ci∈[0,10],数值越大表示该漏洞越严重;s24.脆弱值计算,根据每个漏洞类型的ci,求网站脆弱值,网站脆弱值w,其中n∈[0,8],表示目标站点包含的漏洞类型;作为优选,步骤s3中对于海量web日志,采用攻击正则表达式进行逐条分析过程包括:s31.构建包括sql注入、系统命令注入、跨站脚本攻击、遍历攻击、webshell、struts2远程命令执行漏洞、敏感文件访问、网络参数修改八种攻击类型的攻击特征库,以正则表达式概括攻击手法的日志字段表现特征;s32.日志字段与特征库逐条匹配抓取攻击事件,从海量web日志字段集中取出待处理的字段,依次与特征库中的表达式配对,若配对成功,则说明该段日志对应一次攻击事件,在该条日志对应的信息集合i中添加攻击类型信息。s33.分析结束后,得到每种攻击次数集ac与攻击事件总数as,ac[n]={ac1,ac2,……,acn},其中n∈[1,8],表示攻击类型,aci表示第i种攻击的次数;s34.攻击类型比重计算,第i中攻击类型所占比重aia[n]={a1,a2,......,an};作为优选,所述步骤s4中按照一定的采样间隔,计算站点的威胁值过程包括:s41.采样间隔的确定,设时间阈值t,被采样日志数量阈值m,若距离上一次计算的时间间隔t达到阈值,即t=t时,或距离是上一次采样后,被采样的日志数量m到达阈值,即m=m时,进行新的计算;s42.攻击事件与站点漏洞映射,每种攻击事件对应1或多个漏洞,根据攻击比重集a[n]与漏洞cvss值,建立映射表ai→cj;从映射表中,得到威胁集d[n],d[n]={d1,d2,……,dn},其中n∈[1,8],表示攻击类型,di为威胁指数,根据攻击比重与其有关的站点漏洞集中cvss分值最大值的乘积得到,即作为优选,步骤s5中综合脆弱性值以及站点威胁值,评估网站风险,计算站点的风险指数过程包括:s51.攻击危害系数的设定,结合各种攻击造成的实质威胁,给定攻击类型危害系数如下:攻击类型危害系数sql/系统命令注入10跨站脚本9webshell8网络参数修改7遍历攻击6敏感文件访问5远程执行漏洞4漏洞扫描3根据表中数值建立危害集k[n],k[n]={k1,k2,……,kn},其中n∈[1,8],表示攻击类型;s52.计算网站风险集,根据威胁集d[n]与危害集k[n],网站风险集r[n],r[n]={r1,r2,……,rn},其中n∈[1,8],表示攻击类型,ri表示第i种攻击的风险指数,ri=di*ki;s53.计算站点风险指数,根据网站风险集r[n],得到风险指数rs,其中rs∈[0,10],rs值越高,受到攻击的风险越大,站点越危险。本发明的有益效果是:基于海量web日志分析,实时抓取web攻击事件,结合网站存在漏洞的cvss值以及攻击的危害程度,计算出网站风险指数,实现风险评估。本发明具有易于实现,应用范围广,实时性强,指标准确等优点。附图说明附图1是本实施例的一种结构框示图;附图2是本实施例的方法流程示意图。具体实施方式下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。如图1和图2所示,本实施例基于海量web日志的网站风险指数计算方法,包括部署在web服务器上的支持海量web日志源的采集单元,安全信息分析单元与网站风险评估单元,且采集单元-分析单元-评估单元依次相连;采集单元:实时监控日志文件目录,按照一定的时间间隔t,提取实时生成的web日志,预处理生成字段,发送至分析单元;分析单元:一方面接收日志字段,根据攻击行为特征库抓取敏感字段,另一方面扫描站点漏洞,分析站点脆弱性,发送分析结果到评估单元;评估单元:接收分析结果,根据预置的评估方法与及指标评估网站风险,得到风险指数。在本实施例中,基于海量web日志的网站风险指数计算方法,包括以下步骤:s1.web日志预处理;s2.扫描目标web站点,获得相应漏洞信息,基于cvss分值,计算站点的脆弱性值;s3.对于海量web日志,采用攻击正则表达式进行逐条分析,得到相应攻击类型;s4.按照一定的采样间隔t,基于当前攻击事件,计算站点的威胁值;s5.综合脆弱性值以及站点威胁值,结合owasp权威攻击危害评级,评估网站风险,计算站点的风险指数。在本实施例中,步骤s1中web日志预处理过程包括:s11.识别日志源类型,根据日志特征识别tomcat、apache、nginx与iis四类日志;s12.标准化日志源,采用正则表达式提取日志中源ip、时间、访问方式、url、响应码和浏览器类型6个字段,构成与一条日志对应的信息集合i。在本实施例中,步骤s2中扫描目标web站点,计算站点的脆弱性值过程包括:s21.扫描目标web站点,建立网站结构节点树;s22.对网站结构节点树的各个节点分别进行漏洞检测,构造攻击特征的http请求,根据其响应特征确定是否存在此种漏洞,攻击按照sql注入、跨站脚本漏洞、弱口令漏洞、http报头追踪漏洞、struts2远程命令执行漏洞、文件上传漏洞、敏感信息泄露漏洞、文件遍历漏洞、其他类别;s23.针对每一个漏洞独立进行评估,分基本评估指标、时间性评估指标和环境评估指标,基于cvss计算每个漏洞的cvss分值ci,ci∈[0,10],数值越大表示该漏洞越严重;s24.脆弱值计算,根据每个漏洞类型的ci,求网站脆弱值,网站脆弱值w,其中n∈[0,8],表示目标站点包含的漏洞类型;在本实施例3中,步骤s3中对于海量web日志,采用攻击正则表达式进行逐条分析过程包括:s31.构建包括sql注入、系统命令注入、跨站脚本攻击、遍历攻击、webshell、struts2远程命令执行漏洞、敏感文件访问、网络参数修改八种攻击类型的攻击特征库,以正则表达式概括攻击手法的日志字段表现特征;s32.日志字段与特征库逐条匹配抓取攻击事件,从海量web日志字段集中取出待处理的字段,依次与特征库中的表达式配对,若配对成功,则说明该段日志对应一次攻击事件,在该条日志对应的信息集合i中添加攻击类型信息。s33.分析结束后,得到每种攻击次数集ac与攻击事件总数as,ac[n]={ac1,ac2,……,acn},其中n∈[1,8],表示攻击类型,aci表示第i种攻击的次数;s34.攻击类型比重计算,第i中攻击类型所占比重aia[n]={a1,a2,......,an};更加具体地,步骤s4中按照一定的采样间隔,计算站点的威胁值过程包括:s41.采样间隔的确定,设时间阈值t,被采样日志数量阈值m,若距离上一次计算的时间间隔t达到阈值,即t=t时,或距离是上一次采样后,被采样的日志数量m到达阈值,即m=m时,进行新的计算;s42.攻击事件与站点漏洞映射,每种攻击事件对应1或多个漏洞,根据攻击比重集a[n]与漏洞cvss值,建立映射表ai→cj;从映射表中,得到威胁集d[n],d[n]={d1,d2,……,dn},其中n∈[1,8],表示攻击类型,di为威胁指数,根据攻击比重与其有关的站点漏洞集中cvss分值最大值的乘积得到,即在本实施例中,步骤s5中综合脆弱性值以及站点威胁值,评估网站风险,计算站点的风险指数过程包括:s51.攻击危害系数的设定,结合各种攻击造成的实质威胁,给定攻击类型危害系数如下:根据表中数值建立危害集k[n],k[n]={k1,k2,……,kn},其中n∈[1,8],表示攻击类型;s52.计算网站风险集,根据威胁集d[n]与危害集k[n],网站风险集r[n],r[n]={r1,r2,……,rn},其中n∈[1,8],表示攻击类型,ri表示第i种攻击的风险指数,ri=di*ki;s53.计算站点风险指数,根据网站风险集r[n],得到风险指数rs,其中rs∈[0,10],rs值越高,受到攻击的风险越大,站点越危险。下面以一个具体实施例模拟本方法,以图2为例进行详细说明。本系统部署在网站服务器后,配置路径,实时监控web日志生成目录。当日志生成量达到阈值m或者经过的时间到达阈值t时,采集端采集新生成的web日志,进行预处理。系统对于当下主流的四种类型web日志:tomcat、apache、nginx与iis均有相应的配置文件。采集单元根据日志字段识别日志类型,调用相应的配置文件,然后进行日志源标准化,主要过程是采用正则表达式提取日志中源ip,时间,访问方式、url、响应码和浏览器类型6个字段,构成与一条日志对应的信息集合i,如下例:i1={“202.107.201.13”,“18/aug/2016:16:43:55”,“head”,“/api/call.php?action=query&num=11%27%29/**/union/**/select/**/1,2,3,concat%280x7e,0x27,username,0x7e,0x27,password%29,5,6,7,8,9,10,11,12,13,14,15,16/**/from/**/user/**/limit/**/0,1%23”,“302”,“mozilla/5.0(compatible;baiduspider/2.0;+http://www.baidu.com/search/spider.html\xa3\xa9”},采集单元处理完所有采集的日志,将信息集合i发送至分析单元。当系统部署在服务器之后,分析单元扫描服务器所有端口与站点,建立网站结构节点树。然后对所有节点进行漏洞检测,构造攻击特征的htip请求,根据其响应特征确定是否存在此种漏洞,攻击按照sql注入、跨站脚本漏洞、弱口令漏洞、http报头追踪漏洞、structs2远程命令执行漏洞、文件上传漏洞、敏感信息泄露漏洞、文件遍历漏洞、其他类别进行。对于扫描出来的漏洞按照cvss评分,以ci记录。评分完毕后,如下例,扫描得知当前站点存在sql注入漏洞、跨站脚本漏洞、structs2远程命令执行漏洞、敏感信息泄露漏洞、文件遍历漏洞、文件上传漏洞6个漏洞。依次的cvss分值为7.5,4.7,10.0,2.1,5,4.5。于是得到:c={“7.5”,“4.7”,“10”,“2.1”,“5”,“4.s”}。其中,cvss分值在[0,10]范围内,分值越高,漏洞越严重。另一方面,分析单元接收来自采集单元的信息集合i。分析单元调用日志类型对应的攻击特征库,特征库包括sql注入、系统命令注入、跨站脚本攻击、遍历攻击、webshell、struct2远程命令执行漏洞、敏感文件访问、网络参数修改八种攻击类型,以正则表达式概括攻击手法的日志字段表现特征。分析单元从i中取出待处理的字段,依次与特征库中的表达式配对,若配对成功,则说明该段日志对应一次攻击事件,在该条日志对应的信息集合i的元素中添加攻击类型信息。构造每种攻击次数集ac与攻击事件总数as,记录抓取的攻击事件,然后以ac与as的比值,即计算攻击比重集a。如上面的样例,其中url字段与特征库中sql注入的表达式匹配成功,说明该条日志为sql注入攻击留下的,添加“sql注入”至i,同时攻击次数集ac中sql注入对应的aci数值加1,攻击总数as数值加1。分析完毕i中所有的日志字段,就抓取了该时间段内所有的攻击事件,此时得到对应该时段的ac与as。如下例:ac={“26”,“3”,“1”,“2”,“312”},其中,ac1对应sql注入,ac2对应跨站脚本攻击,ac3对应struts2远程命令执行漏洞攻击,ac4对应敏感文件访问,ac5对应路径遍历攻击。as=344,然后计算攻击比重集a,得到:评估单元得到分析的两方面数据:包含有站点漏洞cvss分值集c的服务器漏洞分析结果与包含攻击比重集a的web日志安全分析结果。评估单元根据站点漏洞cvss分值集c计算网站脆弱值w,有公式得:然后,评估单元建立攻击事件与站点漏洞映射,每种攻击事件对应1或多个漏洞,根据攻击比重集a与漏洞cvss集c,建立映射表ai→cj。如下例:sql注入对应sql注入漏洞;跨站脚本攻击对应跨站脚本漏洞与文件上传漏洞;struts2远程命令执行漏洞攻击对应struts2远程命令执行漏洞;敏感文件访问对应敏感信息泄露漏洞;路径遍历攻击对应文件遍历漏洞。评估单元计算攻击威胁指数,将每种攻击的攻击比重值与该攻击对应的漏洞cvss分值(如果一个攻击对应多个漏洞,则取漏洞中cvss分值的最大值)相乘,即建立攻击威胁集d保存数据。得到如下结果:d1=a1×c1=0.0765×7.5=0.57375,d2=a2×c2=0.0087×4.7=0.04089,d3=a3×c3=0.0029×10.0=0.02900,d4=a4×c4=0.0058×2.1=0.01218,d5=a5×c5=0.9070×5.0=4.53500,d={0.57375,0.04089,0.02900,0.01218,4.53500}。系统根据owasp网站对于网络十大威胁的分级,并结合各种攻击造成的实质威胁,给定攻击类型危害系数如下:攻击类型危害系数sql/系统命令注入10跨站脚本9webshell8网络参数修改7遍历攻击6敏感文件访问5远程执行漏洞4漏洞扫描3评估单元根据表中数值与web日志分析中抓取到的攻击类型,筛选建立危害集k。由6种攻击类型得到:k={10,9,4,5,6}。评估单元根据攻击威胁集d与攻击危害集k,计算攻击风险指数r,建立风险集r保存,有公式:ri=di*ki;得到结果如下:r1=d1*k1=0.57375×10=5.73750,r2=d2*k2=0.04089×9=0.36801,r3=d3*k3=0.02900×4=0.11600,r4=d4*k4=0.01218×5=0.06090,r5=d5*k5=4.53500×6=27.21000,r={5.73750,0.36801,0.11600,0.06090,27.21000}。评估单元计算站点风险指数rs,根据网站风险集r,有公式:得到如下结果:最后,本例网站的风险评估结果为5.79,面临的中等风险,应该定时维护,同时需要根据我们扫描的漏洞进行修补与升级,尤其要加强对于sql注入攻击与文件遍历攻击相关的防御措施。尽管本文较多地使用了站点脆弱值、攻击威胁值、网站风险指数等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1