一种基于历史信息的SSLstrip防御方法与流程

文档序号:11842996阅读:233来源:国知局
一种基于历史信息的SSLstrip防御方法与流程

本发明涉及一种基于历史信息的针对SSLstrip攻击的防御方法,属于网络安全技术领域。



背景技术:

SSL协议工作在TCP/IP之上,能够为上层的应用程序提供信息加密、身份认证和消息是否被修改的鉴别服务,使得用户和服务器的之间的通信能够在可靠、安全的通道上传输,另外由于其独立于上层的应用程序,使得它的使用的范围也非常广泛,所有基于WEB的应用程序都可以通过SSL协议进行可靠传输,非常方便。

SSL/TLS协议一直被认为具有密码级的安全,然而对它们的部署实现和普通用户对它们的使用行为却又使这种协议倾向于不安全,这种不安全很可能让网络用户收到极具威胁的网络攻击,其中中间人攻击就是极具危险性的一种攻击方式,给SSL/TLS的安全性带来严重的破坏。

中间人攻击是一种间接的入侵攻击,这种攻击模式是通过各种技术手段将入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台被控制的计算机就称为“中间人”。然后入侵者把“中间人”计算机模拟成一台或两台原始计算机,使之能够与真正会话中的计算机建立活动连接并读取或篡改传递的信息,真正通信的原始计算机用户却认为他们是在与合法终端进行通信,这种攻击方式很难被发现。如今,在黑客技术越来越多地运用于获取经济利益时,攻击成为对网银、网游、网上交易等最有威胁并且最具破坏性的一种攻击方式。ARP欺骗、DNS欺骗等技术都是典型的攻击手段。

常见的针对HTTPS协议的中间人攻击方法有:

1.密钥伪造攻击SSLsniff:

基于WEB的HTTPS会话使用SSL协议,由于SSL认证过程中的缺陷,任何具有签名证书和相应的私钥的中间人都能欺骗其它任何用户,从而在客户端浏览器及服务器均无察觉的情况下,实现对服务器证书的篡改并通过SSL的服务器认证。

密钥伪造攻是一种比较普遍的中间人攻击,在网关截获客户端请求,冒充服务器响应用户的请求,发送伪造的证书,同时它又会冒充客户端向服务器发送请求消息,通过中间人在客户端和服务器之间搭起一个桥梁。所有的通信都由中间人主机来进行转发。而服务器、客户端之间并没有真正意义上的直接通信,服务器、客户端都无法知道中间人的存在。中间人可以不仅窃听了服务器、客户端的通信还可以对信息的改动再传给对方,从而实现进一步的攻击。

2.降级攻击SSLstrip:

该攻击不是基于任何特定程序错误而是基于安全网站的整个体系和使用方法。因为多数网络用户在使用浏览器时都是直接敲入URL而很少在前面加上协议类型,即使本来应是安全连接也不加前缀。由明文页面往加密页面的过渡往往是通过服务器的重定向。如果攻击者进行攻击,就可以在这些信息转寄到用户那里之前通过从明文的协议或者页面剥离这些过渡期的链接阻止这种过渡。由于剥离了所有的信息,所有原先应该加密的数据现在都会通过用户的浏览器以明文的形式呈现在攻击者面前,例如用户的邮箱账户,银行账户以及用于在线支付的信用卡密码。

针对以上中间人攻击,公开号为CN103685298A、名称为“一种基于深度包检测的SSL中间人攻击发现方法”的发明是通过对用户和服务器接收的http报文头部进行特征检测来判断攻击是否发生,并及时发出攻击报警,防止用户受到进一步的损失。但该方法涉及对http报文进行分析,并设定评分标准,然后在正常情况和被攻击情况下分别进行多次测试,进行计分,以此作为判断攻击的标准。评分的标准主观性较强,很难统一,影响了大范围使用的可能性。



技术实现要素:

本发明目的在于针对现有防御技术的不足,提出了一种基于历史信息的针对SSLstrip攻击的防御方法。本方法针对SSLstrip攻击的特点,构造一种不需要服务器端的合作也不依赖于第三方认证的防御手段。该方法构造了一个客户端代理模块,该代理模块创建了所有用户所浏览过的安全站点的配置文件。配置文件中包含了该站点的准确的使用情况。使用这个配置文件和一套检测规则,一旦页面被中间人恶意篡改,系统就可以识别出来并通知用户存在网络攻击的同时阻止攻击者的连接。

本发明所采用的技术方案是一种基于历史信息的针对SSLstrip攻击的防御方法,包括如下步骤:

步骤1)建立检测规则;

步骤1.1)建立HTTP Moved消息检测规则;

步骤1.2)建立JavaScript安全检测规则;

步骤1.3)建立Iframe tags检测规则;

步骤1.4)建立Http Form检测规则;

步骤2)生成配置文件;

步骤2.1)用户通过代理模块访问常用的正常的网站;

步骤2.2)代理模块获得浏览器请求以及服务器的响应;

步骤2.3)网页分析器分析网页的关键部分,识别出数据与属性,生成当前网页的配置文件;

步骤2.4)如果网页是第一次访问,转步骤2.5,否则转步骤3;

步骤2.5)JavaScript预处理,做两次相同的JS请求,并对两次的数据块进行比较,为数据块不同部分创建一个不变部分的模板并记录动态部分的位置和长度,将信息记录进网页配置文件;

步骤2.6)将该网页的配置文件输入配置文件数据库;

步骤2.7)该配置文件作为页面的初始配置文件转发给用户;

步骤3)建立中间人检测器;

步骤3.1)默认攻击者成功实现MITM,攻击了一个无线网络并成为了该网络的网关,在这个基础上,无线网络中任何主机的所有请求和响应都被其检查或修改;

步骤3.2)用户从无线网络使用浏览器访问服务器;

步骤3.3)若是登录请求,转步骤4.4,否则转步骤3.4;

步骤3.4)浏览器制作合适的信息并将该信息转发到网关;

步骤3.5)攻击者检查这个信息并认识到该用户打算用目标服务器来进行一项操作,其将该信息转发到了目标服务器;

步骤3.6)服务器全站使用SSL,服务器回应了响应信息到网关;

步骤3.7)攻击者拦截了该信息,并解密得到响应的内容,修改后转发给用户;

步骤3.8)代理模块收到了服务器的响应并进行检查;

步骤3.9)代理模块比较网页的初始配置文件和网页分析器新生成的配置文件,判断网页是否被篡改;

步骤3.10)如果检查通过,网页未被篡改,转步骤4,否则转步骤3.11;

步骤3.11)代理模块放弃本次请求,通知用户本地网络存在攻击并给出报告;

步骤4)建立私密数据跟踪模块;

步骤4.1)检测响应网页是否包含安全登录框;

步骤4.2)网页不包含安全登录框,将页面显示给用户,一次请求结束;

步骤4.3)网页包含安全登录框,在网页中添加JS程序,将页面展示给用户;

步骤4.4)标记网页发送登录请求,检测请求是否包含明文密码,是否是SSL传输;

步骤4.5)若请求包含明文密码或者是非SSL传输,则请求不安全,转步骤3.11;

步骤4.6)若请求安全,转步骤3.4。

上述建立检测规则,是基于页面的原有配置文件作为基础并包含了可能出现在每个页面中所有危险的修改,详细描述了网页转向的危险性,每个来自网络的页面在被送回到用户那里之前都会被规则严格的检测比对。

上述生成配置文件,是通过检测规则分析和识别浏览器发出的请求以及服务器的响应信息,识别出关键的数据以及数据的属性,然后记录在页面的当前配置文件中。4.根据权利要求1所述的一种基于历史信息的针对SSLstrip攻击的防御方法,其特征在于:所述建立中间人检测器,是通过检测规则将页面现有的配置文件与网页分析器所创建的进行对比,从而来做出决定是否一个页面被攻击者篡改过。网页分析器所发现的任何变化,如果规则上又加以确认,就会被认为是攻击的一个标志,从而这个页面就不会转发给用户。

上述建立私密数据跟踪模块,是通过在页面中插入JavaScript代码来识别用户的私密信息,使得当用户的私密数据泄漏时可以去阻止它,当中间人检测器错误的将一个页面变化认为是安全的时候能够阻止用户私密数据的泄漏。

与现有技术相比,本发明的有益效果在于:

1.本发明通过对客户端请求和服务器响应内容的检测,可以保护用户免受SSLstrip攻击并保护用户的证书免遭以下手段窃取:转向阻止、不安全的表单、方法和注入,提高了用户访问网站时的安全性和可靠性。

2.本发明是基于历史信息的代理程序。利用创建了配置文件的网站的请求和响应进行训练,依靠一个网站的安全特征来创建配置文件而不是基于网站内容。这样可以使本发明在静态网站和大多数的动态网站上正确的部署和工作。

3.本发明作为客户端代理,创建了所有用户所浏览过的安全站点的配置文件,不需要服务器端的合作也不依赖于第三方认证的防御手段,可以为客户端提供实时的保护。

附图说明

图1为本发明的系统架构图。

图2为本发明配置文件生成的流程图。

图3为本发明中间人检测流程图。

图4为本发明私密数据跟踪流程图。

图5为本发明系统工作整体流程图。

具体实施方式

下面结合附图对本发明创造的具体实施做进一步详细说明:

步骤1:建立检测规则,检测规则包含了对每一个典型敏感数据结构的危险修改。每个来自网络的页面在被送回到用户那里之前都会被规则严格的检测比对,HTTP Moved消息检测规则检测HTTP和HTTPS请求的转换是否被允许;

通过JS预处理程序建立JS检测规则,检查加载的JavaScript代码是否被恶意修改;Iframe tags规则用于禁止额外添加的Iframe覆盖原有页面;HTTP Forms规则记录页面的表单信息,不允许修改可能泄露用户信息的表单。

步骤2:配置文件生成。如图2所示,网页分析器识别出关键数据以及它们的属性然后记录在页面的当前配置文件里。如果某个页面是第一次访问,那么它会被登记到配置文件数据库中去,并成为该页面的初始配置文件,然后转发给用户。如果不是第一次,配置文件会通过中间人检测器检查该页面的初始配置文件。

步骤3:中间人检测。如图3所示,检测器判断获得请求是否是登录请求,如果是,检测器将请求交给私密数据跟踪模块。如果不是,检测器会使用检测规则将页面现有的配置文件与网页分析器所创建的配置文件进行对比,判断页面是否被攻击者篡改过。网页分析器所发现的任何变化,如果规则上又加以确认,就会被认为是攻击的一个标志,这个页面就不会转发给用户。

步骤4:私密数据跟踪。如图4所示,首先判断页面是否是登录页面,如果不是,则不进行私密数据跟踪。否则对每一个包含安全登录框的页面进行修改并增加一个JavaScript程序,一旦用户输入密码,该程序就会把密码发送给代理模块,该密码将会被记录下来。除此之外,它还给每个框增加了一个包含存储单元信息的隐藏字段,这样稍后我们就能识别出是哪个页面发出请求。私密数据跟踪模块在发出去的数据中检查是否包含已储存的密码,如果密码出现在数据中,而不是通过SSL通信,意味着攻击者已经成功的绕过了中间人检测器现在正向外面发送密码。在这种情况下,不会允许建立这样的连接并通知用户收到了攻击。

如图5所示本发明提出了一种基于历史信息的针对SSLstrip攻击的防御方法,并利用该方法实现了一个代理模块,该代理通过检测规则创建了所有用户所浏览过的安全站点的配置文件,配置文件中包含了该站点的准确的使用情况。使用这个配置文件和检测规则,一旦页面被中间人恶意篡改,系统就可以识别出来并通知用户存在网络攻击的同时阻止用户的连接。同时,建立了一个私密数据跟踪模块,向登录页面中插入JavaScript代码,检测登录请求中是否包含明文的私密信息,以此来杜绝私密信息的泄漏。其实现步骤为:

步骤1)建立检测规则;

步骤1.1)建立HTTP Moved消息检测规则;

步骤1.2)建立JavaScript安全检测规则;

步骤1.3)建立Iframe tags检测规则;

步骤1.4)建立Http Form检测规则;

步骤2)配置文件的生成;

步骤2.1)用户通过代理模块访问常用的正常的网站;

步骤2.2)代理模块获得浏览器请求以及服务器的响应;

步骤2.3)网页分析器分析网页的关键部分,识别出数据与属性,生成当前网页的配置文件;

步骤2.4)如果网页是第一次访问,转步骤2.5,否则转步骤3;

步骤2.5)JavaScript预处理,做两次相同的JS请求,并对两次的数据块进行比较。为数据块不同部分创建一个不变部分的模板并记录动态部分的位置和长度,将信息记录进网页配置文件。

步骤2.6)将该网页的配置文件输入配置文件数据库;

步骤2.7)该配置文件作为页面的初始配置文件转发给用户;

步骤3)中间人检测;

步骤3.1)默认攻击者成功实现MITM,攻击了一个无线网络并成为了该网络的网关。在这个基础上,无线网络中任何主机的所有请求和响应都被他检查或修改。

步骤3.2)用户从无线网络使用浏览器访问服务器;

步骤3.3)若是登录请求,转步骤4.4,否则转步骤3.4;

步骤3.4)浏览器制作合适的信息并将该信息转发到网关。

步骤3.5)攻击者检查这个信息并认识到该用户打算用目标服务器来进行一项操作,其将该信息转发到了目标服务器。

步骤3.6)服务器全站使用SSL,服务器回应了响应信息到网关。

步骤3.7)攻击者拦截该信息,并解密得到响应的内容,修改后转发给用户。

步骤3.8)代理模块收到了服务器的响应并进行检查。

步骤3.9)代理模块比较网页的初始配置文件和网页分析器新生成的配置文件,判断网页是否被篡改。

步骤3.10)如果检查通过,网页未被篡改,转步骤4,否则转步骤3.11;

步骤3.11)代理模块放弃本次请求,通知用户本地网络存在攻击并给出报告。

步骤4)私密数据跟踪;

步骤4.1)检测响应网页是否包含安全登录框;

步骤4.2)网页不包含安全登录框,将页面显示给用户,一次请求结束;

步骤4.3)网页包含安全登录框,在网页中添加JS程序,将页面展示给用户;

步骤4.4)标记网页发送登录请求,检测请求是否包含明文密码,是否是SSL传输;

步骤4.5)若请求包含明文密码或者是非SSL传输,则请求不安全,放弃本次请求,通知用户本地网络存在攻击并给出报告;

步骤4.6)若请求安全,转步骤3.4。

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