发明内容
针对现有技术中的缺陷,本发明提供了一种网站漏洞告警方法及装置,该方法能够及时将网站漏洞信息进行告警,保证网站的信息安全。
第一方面,本发明提供一种网站漏洞告警装置,包括:
接收模块,用于接收漏洞信息,所述漏洞信息包括:存在漏洞网站的网址、漏洞测试参数和漏洞测试结果;
测试链接生成模块,用于根据所述网址和所述漏洞测试参数生成漏洞测试链接;
特征信息提取模块,用于根据所述漏洞测试链接进行请求,获取所述网站的响应消息,从所述响应消息中提取漏洞的特征信息;
发送模块,用于在所述漏洞的特征信息与所述漏洞测试结果一致时,向所述网站发送所述网站存在漏洞的告警信息。
可选的,所述装置还包括:
确定模块,用于在所述发送模块发送告警信息之前,确定所述漏洞的风险评估值;
所述告警信息包括:存在漏洞的网站的网址、所述漏洞测试参数、所述漏洞测试结果和所述风险评估值。
可选的,所述确定模块,具体用于:
根据所述网站的流量和所述漏洞的分类标识,确定所述漏洞的风险评估值;
其中,所述漏洞的分类标识为根据所述漏洞数据库中查找的标识。
可选的,所述发送模块,具体用于:
向所述网站的管理者发送所述网站存在漏洞的告警信息。
可选的,所述装置还包括:
获取模块,用于在所述发送模块发送告警信息之前,获取所述网站的管理者的联系信息;
所述发送模块,具体用于:
根据所述联系信息,采用与所述联系信息相匹配的方式发送所述告警信息。
第二方面,本发明还提供了一种网站漏洞告警方法,包括:
接收网站漏洞信息,所述漏洞信息包括:存在漏洞网站的网址、漏洞测试参数和漏洞测试结果;
根据所述网址和所述漏洞测试参数生成漏洞测试链接,并根据所述漏洞测试链接进行请求,获取所述网站的响应消息;
从所述响应消息中提取漏洞的特征信息,并与所述漏洞测试结果进行比对,若漏洞特征信息与所述漏洞测试结果一致,则向所述网站发送所述网站存在漏洞的告警信息。
可选的,向所述网站发送所述网站存在漏洞的告警信息之前,所述方法还包括:
确定所述漏洞的风险评估值;
所述告警信息包括:存在漏洞的网站的网址、所述漏洞测试参数、所述漏洞测试结果和所述风险评估值。
可选的,获取所述漏洞的风险评估值,包括:
根据所述网站的流量和所述漏洞的分类标识,确定所述漏洞的风险评估值;
其中,所述漏洞的分类标识为根据所述漏洞数据库中查找的标识。
可选的,所述向所述网站发送所述网站存在漏洞的告警信息,包括:
向所述网站的管理者发送所述网站存在漏洞的告警信息。
可选的,所述网站发送所述网站存在漏洞的告警信息之前,所述方法还包括:
获取所述网站的管理者的联系信息;
向所述网站的管理者发送所述网站存在所述漏洞的告警信息,包括:
根据所述联系信息,采用与所述联系信息相匹配的方式发送所述告警信息。
由上述技术方案可知,本发明提供的网站漏洞告警方法及装置,该方法通过接收漏洞信息,并对该漏洞信息中提及的漏洞进行漏洞测试验证,在验证该漏洞存在时,及时向网站告警,保证网站的信息安全。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1A示出了本发明实施例提供的一种网站漏洞告警方法,如图1A所示,该网站漏洞告警方法包括如下步骤:
101、接收漏洞信息,所述漏洞信息包括:存在漏洞网站的网址、漏洞测试参数和漏洞测试结果;
举例来说,上述漏洞信息可理解为网站漏洞信息,该网站漏洞信息为一些专业用户如白帽子通过漏洞检测网页提交的漏洞信息。本实施例中的漏洞检测网页可位于任一客户端中。
可理解的是,漏洞可包括通用漏洞和专用漏洞,所述专用漏洞为根据网站类型编辑的唯一适用于所述网站类型的漏洞,所述通用漏洞为适用于所有网站的漏洞。具体的,通用漏洞可以包括结构化查询语言(Structured Query Language,简称SQL)注入漏洞、跨站(Cross SiteScripting,简称CSS)漏洞、敏感信息泄露漏洞、弱口令漏洞、HTTP报头追踪漏洞、struts2远程命令执行漏洞等等,专用漏洞可以包括专用的注入漏洞、专用的命令执行漏洞、以及专用CSS漏洞,例如:Discuz_qq互联插件CSS漏洞、便民电话插件SQL注入漏洞等等。
当前,部分专业用户可以对计算机系统或网络系统进行分析,找出其中的安全漏洞,但并不会恶意的去利用该漏洞,而是将漏洞信息通过漏洞检测网页上报至漏洞告警装置。
举例来说,上述漏洞信息中的存在漏洞的网站的网址可以为http://xxx.com(其中“x”可以是任意字母或数字);漏洞的测试参数可以为测试该漏洞时所采用的测试参数;漏洞的测试结果为采用上述测试参数在上述网站进行测试时的测试结果。
本实施例中的漏洞信息可通过图片形式上传,如图1B所示,也可以通过文档的形式上传,还可通过其它形式,本实施例不对其进行限定,仅为举例说明。
102、根据所述网址和所述漏洞测试参数生成漏洞测试链接,并根据所述漏洞测试链接进行请求,获取所述网站的响应消息。
也就是说,该漏洞告警装置在向网站发送告警信息之前,需要对漏洞是否真实存在进行验证,保证漏洞信息的正确性。
举例来说,若漏洞为SQL注入漏洞时,可在该漏洞网站的网址后面追加SQL语句形式的测试参数生成漏洞测试链接,加载该测试链接,实现对存在漏洞的网站的网址的测试,以获取测试的响应消息,从该响应消息中提取漏洞的特征信息,进而判断该特征信息与漏洞信息中的漏洞测试结果是否一致。
103、判断所述特征信息与所述漏洞测试结果是否一致。
如果特征信息与所述漏洞测试结果不一致,则可认为该漏洞不存在,或者当前用户提交的漏洞信息不正确,则结束上述流程。
104、在步骤103中的特征信息和所述漏洞测试结果一致时,向所述网站发送所述网站存在漏洞的告警信息。
可理解的是,在所述特征信息和所述漏洞测试结果一致时,向所述网站的管理者发送所述网站存在漏洞的告警信息。
也就是说,在所述特征信息和所述漏洞测试结果一致时,确认漏洞信息为真实的漏洞信息,进而可向该网址对应的网站发送告警信息,以使网站管理者及时获知网站的漏洞,保证网站的信息安全。
在具体的实施过程中,通过步骤103验证漏洞信息的真伪,可防止部分用户随意上传恶意漏洞信息。
通常,上述步骤中的告警消息可包括:网站信息,所述漏洞的相关描述信息等内容。
在具体应用中,向所述网站或网站的管理者发送告警信息之前,可预先获取网站的管理者的联系信息,例如,Email联系方式,或者电话号码等联系信息。具体的,上述管理者的联系信息可以根据所述网站的域名或网址在现有的whois数据库中查找得到的。
上述方法通过接收漏洞信息,并对该漏洞信息中提及的漏洞进行漏洞测试验证,在验证该漏洞存在时,将该漏洞的相关信息发送给网站的管理者,以使网站的管理者能够对该漏洞进行修复,保证了网站的信息安全。
图2示出了本发明实施例提供的一种网站漏洞告警方法,如图2所述,该网站漏洞告警方法包括如下步骤:
201、接收漏洞信息,所述漏洞信息包括:存在漏洞网站的网址、漏洞测试参数和漏洞测试结果。
举例来说,本实施例中的漏洞的类型可以包括信息泄露类漏洞、SQL注入漏洞、CSS漏洞、配置错误漏洞、等。
例如,SQL注入漏洞可以用来从网站的数据库中获取该网站数据库中的相关敏感信息,或者利用网站数据库的特征执行添加其他用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统最高权限。
跨站漏洞是由于程序员在编写程序时,对一些变量没有充分的过滤,直接把用户提交的数据送到SQL语句里执行,这样导致黑客可以提交一些特意构造的语句,黑客利用跨站漏洞输入恶意的脚本代码,当恶意的代码被执行后就形成了所谓的跨站攻击。
本实施例不对上述漏洞的类型进行一一举例说明。
在本实施例中,网址可以是统一资源定位符(Uniform ResourceLocator,简称URL)。例如:http://xxx.com、http://webscan.xxx.com等(其中,“x”可以是任意字母或数字),上述漏洞的测试参数可以理解为测试上述网址存在漏洞的参数,例如漏洞的网址为http://bbs.webscan.xxx.cn/,上述漏洞的类型为配置错误漏洞,则输入的测试参数可以为<allow-access-from domain=“*”/>;上述漏洞的测试结果可以为用户采用上述测试参数在上述网站的网址上进行测试时的测试获取的测试结果,该测试结果可为因配置错误漏洞导致邮件随机泄露等。
202、根据所述网址和所述漏洞测试参数生成漏洞测试链接,并根据所述漏洞测试链接进行请求,获取所述网站的响应消息。
假设上述步骤201中接收的漏洞为SQL注入漏洞,该漏洞绕过了输入某个网站数据库的用户名和密码的输入,直接获取该网站数据库中的信息。
举例来说,例如漏洞的网址为“http://xxx.com/a.asp”,该漏洞的测试参数为“'or 1='1”,则根据该漏洞的网址和漏洞的测试参数生成的测试链接可以为:
http://xxx.com/a.asp?UserAccount='or 1='1&UserPass='or 1='1。通过加载该测试链接,获取输入该链接后网站的响应消息。
具体的,该响应消息可以为用户登录成功的消息或用户名或密码错误消息。
203、从所述响应消息中提取漏洞的特征信息,并与所述漏洞测试结果进行比对。
举例来说,某个SQL注入漏洞的测试链接为http://xxx.com/a.asp?UserAccount='or 1='1&UserPass='or 1='1。在输入该测试链接时,若在未经输入用户名和密码的情况下,直接展示了用户登陆成功的消息,并在该网站的页面上展示了XXX数据库的数据信息,可以理解为,根据上述响应消息,可以提取出该漏洞的特征信息为XXX数据库中的数据信息,而在步骤201中的漏洞测试结果为通过该SQL注入漏洞可以获取XXX数据库的数据信息,将上述漏洞的特征信息和该漏洞的测试结果进行比对,判断该漏洞是否存在。
204、判断所述漏洞的特征信息与所述漏洞测试结果是否一致。
可理解的是,判断上述步骤203中的特征信息和步骤201中接收的漏洞的测试结果是否一致,即验证该漏洞是否真实存在,如果该漏洞真实存在时,则确定该特征信息与提交的漏洞测试结果一致,即上述步骤203中,上述SQL注入漏洞的特征信息为XXX数据库中的数据信息,上述SQL注入漏洞的测试结果为通过该SQL注入漏洞可以获取XXX数据库的数据信息,由此可以得出,该SQL注入漏洞的特征信息与该漏洞的测试结果一致。执行下述步骤205;相反的,如果通过测试验证该漏洞不存在,即通过输入http://xxx.com/a.asp?UserAccount='or 1='1&UserPass='or 1='1测试链接时,输出的特征信息为用户名或密码错误,则确定该特征信息与接收的漏洞测试结果不一致,则可认为该漏洞不存在,或者当前用户提交的漏洞信息不正确,则结束告警过程。
具体的,在测试验证完毕后,若漏洞特征信息与所述漏洞测试结果一致时,该漏洞检测网页会展示所述漏洞信息提交成功的信息,例如“X年X月X日,该漏洞被定为SQL注入漏洞,处理中”,相反的,在漏洞特征信息与所述漏洞测试结果不一致时,若漏洞检测网页会展示所述漏洞信息提交失败的信息,例如“X年X月X日,该漏洞验证失败”。
205、当所述漏洞的特征信息和所述测试结果一致时,确定所述漏洞的风险评估值。
具体的,上述步骤205中主要是根据所述网站的流量和所述漏洞的分类标识,确定所述漏洞的风险评估值;其中,所述漏洞的标识为根据所述漏洞数据库中查找的标识。
在具体应用中,上述步骤205还包括图2中未示出的如下子步骤2051至步骤2054:
2051、获取网站漏洞信息,确定所述漏洞的分类标识。
举例来说,上述漏洞的分类标识包括该漏洞对应的行业标识和该漏洞对应的漏洞类型标识。
行业标识可以理解为通过该标识可以确定是什么行业,例如:金融业A1、企业A2、电商A3等等;漏洞类型标识可以理解为通过该标识可以确定是什么漏洞类型,例如:SQL注入漏洞B1、CSS漏洞B2、配置错误漏洞B3等。
具体的,如图1B所示,根据网站漏洞信息中的漏洞网站的网址获取所述网址的页面信息,根据该网址对应的页面信息获取该漏洞的行业分类,进而确定该漏洞的行业标识;根据该漏洞的测试参数或上述在响应消息中提取的特征信息获取该漏洞的漏洞类型,进而确定该漏洞的漏洞类型标识。
例如扫描发现某个银行网站存在SQL注入漏洞,则该漏洞在标准信息表中匹配于标识为A1B1的漏洞,其中,该漏洞的标识根据标准漏洞库,例如公共漏洞和暴露(Common Vulnerabilities&Exposures,简称CVE)漏洞数据库的规定命名。
通过上述分类,确定某个漏洞的标识会非常快,提高了确定该漏洞对应的漏洞分类标识的效率。
2052、根据所述漏洞的分类标识确定漏洞的参考风险值。
由于漏洞的分类标识根据标准漏洞库,例如CVE漏洞数据库的规定命名,可根据该漏洞标识使用任意标准漏洞库的评分系统,例如CVSS评分系统对该漏洞进行测评,确定该漏洞的参考风险值。
根据漏洞的分类标识在本地或远程的漏洞库中确认各项测评要素的可选项,再依据评分标准中,各项测评要素的可选项对应的标准参数值确定漏洞的参考风险值,例如,CVE漏洞库中的CVSS评分系统采用如表1所示的评分标准确定漏洞的参考风险值,如图表1所示:
表1
根据表1的评分标准综合确定漏洞的参考风险值。
2053、根据该存在漏洞的网站预设时间段内的访问流量和该漏洞的关联业务确定该漏洞关联的业务的权重值。
举例来说,可以根据预设时间段该漏洞网址访问流量即alex排名和该漏洞的关联业务,确定该漏洞关联的业务的权重值。
根据该漏洞网址访问流量即alex排名,可以理解为将预设时间段内排名10万以内的为第一等级、排名10万-100万的为第二等级、排名100万-1000万的第三等级,可理解的是,第一等级的权重大于第三等级的权重。
具体的,根据该漏洞的关联业务,确定该漏洞对该业务造成的影响,例如,第一种情况是该漏洞的网站的alex排名非常低,几乎无人访问,其漏洞对该业务的影响非常高,第二种情况是该漏洞的网站alex排名非常靠前,但是其漏洞对该业务的影响非常小,综合考虑,可以理解为第一种情况的权重值小于第二种情况的权重值。
2054、根据漏洞的参考风险值和该漏洞关联的业务的权重值确定所述漏洞的风险评估值。
根据漏洞的参考风险值和该漏洞关联的业务(如因配置错误漏洞导致邮件随机泄露、在未经输入用户名和密码的情况下,直接获取XXX数据库的数据信息等)的权重值确定漏洞的风险测评等级。
需要说明的是,上述2052和2053执行的先后顺序不做限定,即在执行2051后可直接执行2053再执行2052,也可以执行2051后同时执行2052和2053。
在本实施例中,确定漏洞的风险评估值时,将漏洞的参考风险值和该漏洞关联的业务的权重值综合确定所述漏洞的风险评估值,确定的漏洞的风险评估值更加符合实际各漏洞对网站的危害程度,从而可制定合理的漏洞修复方案,有效地起到防范作用。
2055、根据步骤2054获取的风险评估值确定风险等级。
举例来说,风险评估值0~200为低危,200以上为高危,具体根据上述步骤2054中获取的风险评估值按照上述预设的等级,确定该漏洞的风险等级。
该漏洞的风险等级的形式可以根据风险的类型采用如下提示信息,提示性风险,例如存在“非法读取用户信息”的风险、安全性评估风险,例如“安全性降低了10%”、此漏洞在网络系统中出现的概率,例如“全国有2%网站有此漏洞”等。本实施例仅用于举例说明,并不限于上述风险等级的展示形式。
在具体应用中,根据网站的管理者的需要,还会根据风险评估值等级确定漏洞的修复方案,本实施例对此不进行详细说明。
为了及时的将上述漏洞的风险等级发送给网站的管理者,以使网站的管理者尽快确认并修复,故上述方法还需要如下步骤:
206、获取所述网站的管理者的联系信息;
具体的,根据所述网站的域名或网址在whois数据库中查找其在域名服务商处的注册信息并提取其中的注册人信息。
其中,Whois(读作“Who is”,非缩写)系统是基于TCP传输控制协议面向事物的查询/响应协议和系统,用于向Internet用户提供信息服务。简单说Whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息(如域名所有人、域名注册人、技术支持信息、以及与域名相关的其他信息)的数据库。早期的Whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖Whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。Whois通常使用TCP协议43端口。每个域名/IP的Whois信息由对应的管理机构保存。不同域名后缀的Whois信息需要到不同的Whois数据库查询。如.com的Whois数据库和.edu的就不同。目前国内提供Whois查询服务的网站有万网www.net.cn、站长之家等。直观来看,Whois就是链接到域名服务商的数据库的搜索引擎,一般来说是属于网络信息中心所提供和维护的名字服务之一。在查询框中输入域名,Whois响应该查询命令返回搜索结果页面,搜索结果页面上显示了该域名的注册信息。对于每个域名,通过Whois查询到的域名注册信息记载了该域名的诸多信息,由此,可以提取注册人信息。这里的注册人信息包括注册人姓名、注册人电话、注册人邮箱中的任意一项或者任意几项。如果只提取出注册人姓名并存储到全网域名注册人信息数据库中,在域名注册人姓名重名的情况下,查找出来的同一注册人管理的其他域名将包括同名同姓的其他注册人管理的网站的域名。因此,优选的是提取出注册人姓名并提取出注册人电话和注册人邮箱中的任意一项或者两项。全网域名注册人信息数据库的一个例子中各个字段如表2所示。
表2
字段名称 |
类型 |
备注 |
domain |
char |
域名名称 |
telphone |
char |
注册人电话 |
email |
char |
注册人邮箱 |
name |
char |
注册人姓名 |
由此,根据上述表2可以获取某漏洞对应的网站的管理者的联系信息。
207、向所述网站的管理者发送所述网站存在漏洞的告警信息。
根据步骤206获取的网站的管理者的联系信息,采用与所述联系信息相匹配的方式发送所述告警信息。
具体的,以邮箱或通过短信的形式发送给网站的管理者。在告警网站的管理者时,具体告警信息包括如下内容:存在漏洞的网站的网址、所述漏洞测试参数、所述漏洞测试结果和所述风险评估值。
可理解的是,在上述步骤207之后,网站的管理者收到漏洞的告警信息之后,对告警信息中指出的漏洞进行确认、忽略或报错等操作,在漏洞确认完成后,对其进行制定相关修复措施。
图3示出了本发明实施例提供的网站漏洞告警装置的结构示意图,如图3所示,该网站漏洞告警装置包括:接收模块31、测试链接生成模块32、特征信息提取模块33和发送模块34。
接收模块31,用于接收漏洞信息,所述漏洞信息包括:存在漏洞网站的网址、漏洞测试参数和漏洞测试结果;
举例来说,举例来说,上述漏洞信息可理解为网站漏洞信息,该网站漏洞信息为一些专业用户如白帽子通过漏洞检测网页提交的漏洞信息。本实施例中的漏洞检测网页可位于任一客户端中。
测试链接生成模块32,用于根据所述网址和所述漏洞测试参数生成漏洞测试链接;
特征信息提取模块33,用于根据所述漏洞测试链接进行请求,获取所述网站的响应消息,从所述响应消息中提取漏洞的特征信息;
发送模块34,用于在所述漏洞的特征信息与所述漏洞测试结果一致时,向所述网站发送所述网站存在漏洞的告警信息。
上述告警信息包括:存在漏洞的网站的网址、所述漏洞测试参数、所述漏洞测试结果和所述风险评估值等。
具体的,在发送模块34中确认所述响应消息和所述漏洞测试结果一致时,所述装置还包括图3中未示出的确定模块35和获取模块36:
确定模块35,用于在所述发送模块发送告警信息之前,确定所述漏洞的风险评估值;
在具体应用中,上述确定模块35,具体用于:
根据所述网站的流量和所述漏洞的分类标识,确定所述漏洞的风险评估值;其中,所述漏洞的分类标识为根据所述漏洞数据库中查找的标识。
获取模块36,用于在所述发送模块发送告警信息之前,获取所述网站的管理者的联系信息;
具体的,上述获取模块根据所述网站的域名或网址在whois数据库中查找所述网站的管理者的联系信息。
在上述确定模块35确定所述漏洞的风险评估值之后,且获取模块36获取到该漏洞对应的网站的管理者的联系信息之后,上述发送模块34具体用于,根据所述联系信息,采用与所述联系信息相匹配的方式发送所述告警信息。
上述联系信息可以包括网站的管理者邮箱、电话等信息,并通过发送邮件或短信的方式将所述漏洞的告警信息发送给网站的管理者。
该告警信息包括:存在漏洞的网站的网址、所述漏洞测试参数、所述漏洞测试结果和所述风险评估值。
在发送模块34中确认所述漏洞的特征信息与所述漏洞测试结果一致时,所述装置还包括图3中未示出的展示模块37:
展示模块37,用于在所述漏洞检测网页的界面展示所述漏洞的相关信息,和/或,在所述漏洞检测网页的界面展示所述漏洞信息提交成功的信息。
在另一种可能实现的方式中,在发送模块34中确认漏洞的特征信息与所述漏洞测试结果不一致时,则可认为该漏洞不存在,或者当前用户提交的漏洞信息不正确,则结束告警过程。
本实施例中的上述网站漏洞告警装置与上述网站漏洞告警方法是一一对应的关系,上述网站漏洞告警方法中的实施细节同样适用于网站漏洞告警装置的实施,本实施例不再对上述网站漏洞告警装置进行详细说明。