一种通过机器学习保护网站的方法、装置和系统与流程

文档序号:11778392阅读:297来源:国知局
一种通过机器学习保护网站的方法、装置和系统与流程

本发明属于网络安全领域,具体地说,涉及一种机器学习保护网站的方法。



背景技术:

随着互联网的迅速发展,网站安全问题突显,网站应用程序往往承载了主要业务功能,并且储存着大量有价值的数据。传统网站防火墙采用特征库的方式保护网站,无法防御未知威胁。而针对网站服务器的攻击和针对数据库的攻击日益渐多,例如针对数据库sql注入漏洞的攻击,或是针对服务器端口的攻击。由于网站的多样性与复杂性,千差万别,人工的方式无法全面学到网站的内容。

现有技术之一对网站的防护主要采用的是基于黑名单特征库的匹配,对于不符合黑名单中的访问请求都会予以放行通过,然而此种方法都有滞后性,往往是攻击发生后才对黑名单的特征库进行更新。由于未知攻击不符合特征库中的特征,往往会被放行,从而留下安全隐患。而且由于网站的内容元素多样,用户对于不同的内容元素的访问特征不同,而不同的内容元素有不同的安全隐患,导致每个网站的网站访问特征都不尽相同,而黑名单特征库的一刀切的防护方法,也不适用于不同网站的防护的特殊性。

另外也有现有技术采取自学习和白名单技术,基于统计学方法的自学习技术,分析用户行为和指定url的http请求参数,协助管理员构建正常的业务模型,形成白名单规则。但是缺点是这种方法需要人工参与逐条进行判断核对,耗时费力,而且出错的几率非常大。如果网站有了新的业务,仍然需要人工参与分析,构建新的规则。这样导致效率低下,占用大量管理员的有效工作时间,并由于出错的几率很大,导致效率不高。



技术实现要素:

本发明要解决的技术问题在于克服现有技术的不足,提供一种高效智能的保护网站避免未知攻击的方法,解决针对每个网站的不同特征,用户对于每个网站不同的访问习惯,通过机器学习的方法对每个网站的访问快速的建立新的网站访问模型,不需要额外的人工成本与维护时间,降低了安全防护的部署费用和节省了搭建时间。

本发明另一个要解决的问题是,在网站业务升级或是内容元素扩张后,如何在在原有的网站访问模型的基础上建立新的网站访问模型。

为解决上述技术问题,本发明采用技术方案的基本构思是:

一种机器学习保护网站的方法,通过机器学习搭建网站访问模型保护网站,包括步骤:

s1:与网站建立反向代理连接,以接收对网站的访问请求;

s2:依据所述访问请求发出告警信息;

s3:判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则;

s4:重复s2、s3直至网站所有业务被访问,学习所述放行规则而建立网站安全模型。

进一步的,还包括:

s5:判断访问请求是否符合所述网站安全模型,如果是,则允许访问网站。

进一步的,s4、网站安全模型建立完成后,服务器根据网站安全模型的放行规则对有威胁的访问进行拦截或放行。

进一步的,当网站更新后,还包括:

s6:重复s2、s3直至网站所有更新被访问,学习所述放行规则而更新网站安全模型。

进一步的,判断访问请求是否符合所述网站安全模型,如果否,则拦截所述访问请求;

进一步的,判断访问请求是否符合所述网站安全模型,如果否,则拦截所述访问请求并发出告警信息。

进一步的,s3中所述的管理员判断所述告警信息对应的访问请求是否放行,

进一步的,管理员为有管理权限的程序或人类,优选的,为有管理权限的人类。

进一步的,所述步骤s1中与网站建立反向代理连接具体包括:

读取网站首页;

通过所述网站首页访问网站全部业务。

进一步的,所述的网站全部业务至少包括超链接,文档,cookie,表单,图片,视频,登录请求。

进一步的,其中所述访问请求被假定均为有威胁的访问请求。

进一步的,所述的访问请求具体为除对网站主页和网页中链接的访问外的其他访问请求。

进一步的,s3中所述的放行规则为管理员自定义的正确访问规则,优选的,为自动添加的正则表达式放行规则。

进一步的,根据不同的被访问的网页内容,建立不同的访问规则,s4中所述的网站安全模型为针对特定网站的不同网站内容的放行规则所组成。

进一步的,网站保护装置可设置为被动模式和主动模式,其中,被动模式中不拦截访问请求,只对有威胁的访问请求发出告警信息,并根据管理员针对告警信息做出的判断写入允许访问规则,主动模式既对有威胁的访问请求发出告警信息,又对不满足网站安全模型的访问请求拦截。

进一步的,被动模式和主动模式可进行切换,

进一步的,被动模式和主动模式可进行自动或手动切换,

优选的,被动模式和主动模式为管理员进行切换。

本发明的一种通过机器学习保护网站安全的网站保护装置,该网站保护装置包括接收访问请求模块,告警提示模块,判断模块,机器学习模块,其中:

所述接收访问请求模块用于与网站建立反向代理连接,以接收对网站的访问请求;

所述告警提示模块用于依据所述访问请求发出告警信息;

所述判断模块用于判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则;

告警提示模块和判断模块对网站所有业务建立放行规则后,所述机器学习模块用于学习所述放行规则而建立网站安全模型。

进一步的,机器学习模块判断访问请求是否符合所述网站安全模型,如果是,则允许访问网站。

进一步的,告警提示模块和判断模块对网站所有更新建立放行规则后,机器学习模块学习所述放行规则而更新网站安全模型。

进一步的,所述接收访问请求模块与网站建立反向代理连接具体包括:

读取网站首页;

通过所述网站首页访问网站全部业务。

进一步的,所述告警提示模块对所有假定为有威胁的访问请求发出告警信息。

进一步的,所述告警提示模块对除对网站主页和网页中链接的访问外的其他访问请求发出告警信息。

本发明的一种通过机器学习保护网站安全的系统,该系统包括访问请求端、网站保护装置、网站服务器端和管理员端,其中:

网站保护装置与网站服务器端建立反向代理连接,以接收来自访问请求端对网站服务器端的访问请求;

网站保护装置依据所述访问请求发出告警信息;

管理员端判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则至网站保护装置;

网站保护装置学习网站服务器端网站的所有业务并添加放行规则并学习所述放行规则而建立网站安全模型至网站保护装置;

网站保护装置判断来自访问请求端对网站服务器端的访问请求是否符合所述网站安全模型,如果是,则允许访问网站服务器端。

进一步的,网站更新后,网站保护装置依据所述来自访问请求端的对网站服务器端的访问请求发出告警信息;

管理员端判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则至网站保护装置;

直至网站所有更新被访问,网站保护装置学习所述放行规则而更新网站安全模型。

进一步的,网站保护装置与网站服务器端建立反向代理连接具体包括:

读取网站首页;通过所述网站首页访问网站全部业务。

采用上述方法可以有效解决每个网站内容不同或用户访问习惯不同的问题,不同于防火墙的一刀切式的拦截策略和其出现的无法及时更新学习针对不同网站内容的问题,采取上面的技术方案能够使网站保护装置针对不同的网站内容和搭建结构快速的进行学习,构建该网站的内容分布和网站的结构特点,并通过用户大量的访问试错针对网站不同内容的访问习惯建立安全访问规则。在积累一定的安全访问规则后能针对性的对不同网站建立网站安全模型,从而根据网站安全模型对有威胁的访问进行拦截,大大提高了拦截的准确性和全面性。同时只有在网站保护模型初始搭建时需要人工的主动判断以帮助机器学习的进行,而一旦针对网站的安全访问架构搭建完成,网站保护装置由被动模式切换为主动模式,就无需人工的操作即可完成针对网站不同架构和内容信息的安全访问保护。大大的提高了网站拦截效率和减少了人工部署的时间。同时,一旦网站拓展了新的业务或者增加了新的架构,网站保护装置被动或主动的切换回被动模式,在已有的网站安全访问架构的基础上针对网站新的业务或新的架构的威胁访问制定安全访问规则,然后把新的访问规则写入原有的网站安全访问架构,大大降低了机器学习的时间。完成新的安全访问规则的添加后,自动或手动的切换回主动模式,以新的网站安全访问架构为标准对可疑的网站访问进行拦截。

采用上述技术方案后,本发明与现有技术相比具有以下有益效果:

1、减少了网站保护装置的部署时间,提高了对网站威胁访问的拦截准确度。降低了人工需要投入的网站保护装置的部署的工作时间。

2、本发明可以大大降低部署完成的网站保护装置的后期维护投入,由于在后期更新更加简单快速,降低了企业或单位对网站保护装置后期更新维护的费用和人工成本。

3、本发明技术方案可以安全保护基于web的网站、教育、电商、银行等信息系统,由于针对每个网站都有特定独立的网站安全访问架构和保护模型,因此,有效提高了防范未知攻击的精确度和拓展了防范未知攻击的范围,更好的在不妨碍正常访问的基础上拦截了未知攻击。

下面结合附图对本发明的具体实施方式作进一步详细的描述。

附图说明

附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:

图1是本发明一种通过机器学习保护网站方法的一实施例的流程示意图;

图2是本发明一种通过机器学习保护网站方法的另一实施例的流程示意图;

图3是本发明一种通过机器学习保护网站的网站保护装置示意图;

图4是本发明一种通过机器学习保护网站的系统示意图。

需要说明的是,这些附图和文字描述并不旨在以任何方式限制本发明的构思范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,以下实施例用于说明本发明,但不用来限制本发明的范围。

实施例一

如图1所示,本实施例所述的机器学习保护网站的方法包括如下步骤:

s101、切换为被动模式,与网站建立反向代理连接,以接收对网站的访问请求;

网站保护装置切换为被动模式,设置在网站服务器端和用户访问端之间,接受到来自用户端的访问请求然后将请求发送给网站服务器端,并将来自服务器端的数据的返回结果发送给用户访问请求端。而网站保护装置以网站的主页,即根目录为入口进行机器学习。

s102、依据有威胁的访问请求,向管理员发出告警信息;

网站保护装置以反向代理的形式保护网站,大量用户在针对网站不同网页或内容信息访问中监测访问的方式和习惯,此时网站保护装置处于被动模式。对于检测到的有威胁的或是可疑的不正常网站访问,网站保护装置以告警的方式提示管理员有可疑的访问。与传统的防护方式最大的不同之处就是,传统防火墙认为所有访问请求都是合法的,除非这些访问请求与威胁特征库匹配;而本发明假定,所有访问请求都是非法的,只有网站主页及其链接入口处的请求是合法的。机器学习引擎假定入口的请求是安全的,机器学习引擎会学习所述访问请求的返回,包括表单,链接等等,除了学习到的链接才不会告警,除此之外全部告警。

例如,一个银行的网站首页,会有超链接,图片,文档,表单等等内容,网站保护装置以正常用户的访问习惯首先访问网站的首页,获取上述的内容信息,对网站首页的具体访问结构有一个大的构架。在银行网站的首页会有连向各种业务的超链接,超链接会将用户导向个人网银登陆页面,金融服务页面,信用卡申请页面等不同内容信息组成的不同页面,网站保护装置会根据超链接所引导的地址访问各个页面同时对所访问的每个页面进行学习,搭建每个页面的架构,直到将网站下的所有以扁平式物理结构和树形物理结构或以逻辑结构搭建出的整个网站都访问到。而对于网站主页的访问请求认定为安全的,对于网页中链接的访问也认为是安全的,对此之外的所有针对网页的访问请求均认定为是有威胁的。例如,对网站除主页之外的其他网页内容的访问,对图片,文档,表单等等内容的访问请求均认为是有威胁且不安全的。对此,会发出告警信息给管理员。

s103、管理员判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则;

管理员在登陆管理员界面或是在邮件中看到此威胁访问后,针对此威胁访问进行判断,做出允许或者阻止的判断,将危险的威胁访问阻止,将没有危险的威胁访问允许通过,并将判断结果反馈给网站保护装置。帮助网站保护装置的机器学习,管理员的判断作为参照给机器学习以标准。而其中所述的管理员也不限于是人类管理员,也可以是人工智能或者有判断能力的软硬件。进一步的,即使为人类管理员也不一定需要是有大量背景专业的技术人员,只要是能完成判断是否放行有威胁的访问请求,能协助网站保护装置建立起访问规则的人员即可。

s104、重复s102、s103直至网站所有业务被访问,学习所述放行规则而建立网站安全模型。

网站保护装置每一次的根据对于有威胁访问请求的判断添加的放行规则都是对于网站业务的一次学习过程,不断重复步骤s102、s103,网站安全模型通过网站主页的入口进行机器学习而全部学习到网站的所有业务且对这些业务分别添加放行规则。这些放行规则例如以正则表达式的形式添加到网站保护装置中,通过机器学习所述放行规则从而建立起对此网站的安全模型。

s105、切换为主动模式,判断访问请求是否符合所述网站安全模型,如果是,则允许访问网站。

网站保护装置切换至主动模式,在此模式下,并根据建立好的安全模型对访问请求做出判断,若访问请求满足安全模型,则根据安全模型中建立的访问规则对该访问请求放行;若访问请求不满足安全模型,则拦截该访问请求。

例如,网站的安全模型是基于网站不同内容元素的访问的放行规则所建立的,在网站安全模型建立完成后,安全模型对于网站中所有的内容元素都有相应的访问规则。如银行网站中对于用户登录界面内容的访问规则和购买理财产品的内容的访问规则不同,网站安全模型对于不同的网页内容保存有不同的访问规则,网站保护装置根据其不同的访问规则对所有的对网站的访问进行判断并放行或拦截。

又例如,在数据库漏洞中最为常见的漏洞类型是sql注入漏,sql注入漏洞不仅出现在web端,也出现在数据库的自定义或标准库的存储过程、函数、触发器中。数据库自身的sql注入漏洞比web端的注入漏洞对数据库的威胁性更大。

sql注入漏洞是用户在输入中混入了程序命令。最直接的例子就是攻击者在正常的web页面中把自己的sql代码通过用户输入传输到相应的应用程序中,从而执行一些非授权的sql代码,以达到修改、窃取或者破坏数据库信息的目的。sql注入攻击甚至可以帮组攻击者绕过用户认证机制,使其可以完全的操控远程服务器上的数据库。如果应用程序使用一些用户输入的数据来构造动态的sql语句去访问数据库,将可能遭受到sql注入攻击。同样的如果在代码中使用了存储过程,并且这些存储过程缺乏对用户输入的合理限制也很容易发生sql注入。

典型的sql注入方式,正常的请求输入是:http://foo/rss.aspx?keyword=lucky,而带有攻击性的请求输入是:http://foo/rss.aspx?keyword=lucky'));对于有sql漏洞的网站会在浏览器上暴露出数据库的错误信息,黑客可以通过这些信息挖掘出更多的信息。机器学习之学习正确的输入,也就是学习到了http://foo/rss.aspx?keyword=lucky,进而建立安全模型。但是由于http://foo/rss.aspx?keyword=lucky'))这个请求是非法的,管理员不会发出类似的请求,因此机器并没有学习到这个请求。因此数据切换到保护模式后,由于不能匹配http://foo/rss.aspx?keyword=lucky'))而被阻止访问。从而安全保护sql注入漏洞。

网站保护装置通过学习,就能学到正常的没有威胁的访问模式,进而阻止有威胁的访问通过审核与服务器建立连接。

本实施例的通过机器学习保护网站的方法减少了网站保护装置的部署时间,提高了对网站威胁访问的拦截准确度。降低了人工需要投入的网站保护装置的部署的工作时间。实施例的技术方案可以安全保护基于web的网站、教育、电商、银行等信息系统,由于针对每个网站都有特定独立的网站安全访问架构和保护模型,因此,有效提高了防范未知攻击的精确度和拓展了防范未知攻击的范围,更好的在不妨碍正常访问的基础上拦截了未知攻击。

实施例二

本实施例提供的通过机器学习保护网站的方法,用于网站更新后,迅速准确的更新网站安全模型。所述方法具体包括以下步骤:

s201、切换为被动模式,与网站建立反向代理连接,以接收对网站的访问请求;

s202、依据有威胁的访问请求,向管理员发出告警信息;

s203、管理员判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则;

s204、重复s202、s203直至网站所有业务被访问,学习所述放行规则而建立网站安全模型。

s205、切换为主动模式,判断访问请求是否符合所述网站安全模型,如果是,则允许访问网站。

切换为主动模式时,网站保护装置根据安全模型判断,若访问请求符合网站安全模型,允许访问网站。进一步的,若访问请求不符合网站安全模型,则拦截此访问请求;或者,若访问请求不符合网站安全模型,则拦截此访问请求并发出告警信息。

当访问请求不符合网站访问模型时,网站保护装置可以设置为对不符合网站安全模型的访问请求只拦截或者既拦截也发出告警信息。若设置为当访问请求不符合网站安全模型时,既拦截也发出告警信息,则可以再根据s202至s204的步骤进行添加访问规则至安全访问模型。

s206、网站更新后,切回被动模式重复s202、s203直至网站所有更新被访问,学习所述放行规则而更新网站安全模型

本实施例在实施例一的基础上,增加了当网站内容更新或增加的时候,管理员可以重新切换网络保护装置为被动模式,从而更新网站安全模型。管理员对于被动模式和主动模式的切换频率可以是任意的,频率的单位可以为天、月、年或者小时、分、秒。若管理员为人类时,可以隔一段时间去切换,但是若管理员为人工智能、软件、或是其他软件硬件的时候,切换的频率可以变化。

例如,网站保护装置已完成对于某银行网站的网站访问模型,但是银行需要拓展其信用卡业务,设计了新的关于信用卡申请和查询使用的网站,需要将网站上线至原有的网站。此时新上线的网页可能存在之前没有过的网页模块和随之带来的漏洞,为了防止漏洞被利用受到攻击,需要网站保护装置对现有的网站访问模型进行更新。此时管理员再次切换网站保护装置为被动模式,根据s201到s204的步骤,对新加入的网站的部分进行网络访问架构的搭建,结合之前的架构,完成对新的网站的网络访问架构。完成后再切换为主动模式,以新的网络访问架构对判断为不符合新的网站安全模型的访问进行拦截。

本实施例中的通过机器学习保护网站的方法可以大大降低部署完成的网站保护装置的后期维护投入,由于在后期更新更加简单快速,降低了企业或单位对网站保护装置后期更新维护的费用和人工成本。

实施例三

如图3所示,一种使用上述机器学习保护网站方法的网站保护装置300包括接收访问请求模块301,告警提示模块302,判断模块303,机器学习模块304;

接收访问请求模块301用于与网站建立反向代理连接;其中,建立反向代理连接具体为接收访问请求模块301读取网站首页,通过所述网站首页访问网站全部业务,以接收对网站的访问请求;

告警提示模块302用于被假定为所有的有威胁的访问请求发出告警信息;其中威胁的访问为除对网站主页和网页中链接的访问外的其他访问请求;

告警提示模块302和判断模块303对网站所有业务建立放行规则后,所述机器学习模块304用于学习所述放行规则而建立网站安全模型;

机器学习模块304判断访问请求是否符合所述网站安全模型,如果是,则允许访问网站;

网站更新后,告警提示模块302和判断模块303对网站所有更新建立放行规则后,机器学习模块304学习所述放行规则而更新网站安全模型。

机器学习模块304根据更新的网站安全模型对访问请求进行判断,符合更新的网站安全模型的允许访问。

本实施例中的网站保护装置300为本发明中的一种通过机器学习保护网站安全的网站保护装置,可以是安装在网站服务器端的软件,也可以是在网站服务器端和访问请求端之间的设置的硬件或其他能完成上述过程的软硬件。

实施例四

如图4所示,本发明的一种通过机器学习保护网站安全的系统400,该系统包括访问请求端404、网站保护装置402、网站服务器端401和管理员端403,网站保护装置402与网站服务器端401建立反向代理连接,通过读取网站服务器端401中网站首页的返回数据,通过所述网站首页访问网站全部业务;以接收来自访问请求端404对网站服务器端401的访问请求;

网站保护装置402依据所述访问请求发出告警信息;

管理员端403判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则至网站保护装置402;

网站保护装置402学习网站服务器端401网站的所有业务并添加放行规则并学习所述放行规则而建立网站安全模型至网站保护装置402;

网站保护装置402判断来自访问请求端404对网站服务器端401的访问请求是否符合所述网站安全模型,如果是,则允许访问网站服务器端401;

网站更新后,网站保护装置402依据所述来自访问请求端404的对网站服务器端401的访问请求发出告警信息;

管理员端403判断所述告警信息对应的访问请求是否放行,如果是,则添加放行规则至网站保护装置402;

直至网站所有更新被访问,网站保护装置402学习所述放行规则而更新网站安全模型;

网站保护装置402对来自访问请求端404对网站服务器端401的访问请求进行判断,是否满足更新的网站安全模型,如果是,则允许访问网站服务器端401。

本实施例中,网站服务器端401为储存网站内容数据能够进行数据传输交换的web服务器。网站保护装置402为本发明中的一种通过机器学习保护网站安全的网站保护装置,可以是安装在网站服务器端401的软件,也可以是在网站服务器端401和访问请求端404之间的设置的硬件。管理员端403为人工智能或者软件或者人类或者任何能进行对访问请求进行判断的管理员。访问请求端404为智能终端、个人电脑、或者是其他的服务器。

以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专利的技术人员在不脱离本发明技术方案范围内,当可利用上述提示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1