`

HTTPS那些事(三)攻击实例与防御

 
阅读更多

在《HTTPS那些事(二)SSL证书》我描述了使用SSL证书时一些需要注意的安全问题,在这一篇文章里面我再演示一下针对HTTPS攻击的一些实例,通过这些实例能更安全的使用HTTPS。知己知彼百战不殆。
先说一下我的测试环境,WIFI局域网,两台计算机,其中一台是Windows 7用于发起攻击。另一台测试机用于测试攻击,配置为Windows XP SP3,IE8,Chrome 17。

在开始之前,再回顾一下SSL证书验证失败的三点原因:

  1. SSL证书不是由受信任的CA机构颁发的
  2. 证书过期
  3. 访问的网站域名与证书绑定的域名不一致


一、SSL劫持攻击
SSL劫持也就是SSL证书欺骗攻击,攻击者为了获得HTTPS传输的明文数据,需要先将自己接入到浏览器与目标网站之间(中间人),在传输数据的过程中,替换目标网站发给浏览器的证书,之后解密传输中的数据,简单的图示如下:
[浏览器] <======> [目标网站] (正常情况)
[浏览器] <======> 中间人 <======> [目标网站] (中间人攻击)
中间人攻击最好的环境是在局域网中,局域网中所有的计算机需要通过一个固定的出口(网关)来接入互联网,因此攻击者只需要在局域网中实施一次中间人攻击就可以顺利的截获所有计算机与网关之间传输的数据。
下图就是在我的测试环境中实施一次中间人攻击之后进行的SSL证书欺骗工具,可以看到此时被欺骗的机器,浏览器已经给出证书错误的安全提示:


 

 
看到这样的提示,正常情况应该停止访问,如果继续访问,所有加密传输的数据都可以被攻击者解密。在这里我选择继续访问来看一下伪造的SSL证书信息。


 
这里可以看到,假证书中“颁发给”,“颁发者”,“有效日期”与真证书一样(见下图),攻击者可以在生成证书的时候给假证书写入与原始证书一样的信息来迷惑用户,但是迷惑不了证书的验证机制。对于普通用户来说,一定要看清浏览器的警告信息,如果有问题,就不要再继续访问。


 

二、SSLStrip攻击
SSLStrip攻击也需要将攻击者设置为中间人,之后将HTTPS访问替换为HTTP返回给浏览器,由于HTTP协议传输的数据是未加密的,从而截获用户访问的数据。举个例子,当我们访问hotmail.com的时候会重定向到一个https://login.live.com的一个HTTPS的地址上,SSLStrip会代替用户与服务器通信,并将这个地址改为http://login.live.com(注意这个地址在http后面没有s)返回给浏览器,此时如果用户继续登录的话,攻击者就会截取到用户的密码。这种攻击非常对普通用户非常具有迷惑性,但是防御却非常的简单:

  1. 对于网站来说,在配置HTTPS服务的时候加上“HTTP Strict Transport Security”配置项;或者是在代码中将所有HTTP的请求强制转移到HTTPS上,使用URL REWRITE也可以达到同样的效果。
  2. 对于关键的信息,例如用户登录网站的ID和密码,在发送之前先用JavaScript进行一次加密处理,这种方法不但是对SSLStrip有效,对SSL劫持攻击也有效,甚至是即便使用HTTP协议来传输用户登录的ID和密码都是安全的。这个功能果壳网就支持。
  3. 对于用户来说,在访问那些支持HTTPS的网站的时候,在浏览器的地址栏输入URL时强制的加上“https://”,大多数用户平时不注意这点,比如访问gmail,我们一般就输入“gmail.com”,如果是输入“https://gmail.com”就可以避免SSLStrip的攻击。对于使用脚本实现地址跳转也需要注意这个问题,location.href之后的URL,一定要强制加上“https://”。

由于防御SSLStrip攻击比较简单,大多数的网站都已经做好了安全方面的配置,但也有少数的网站仍然没有重视这个问题。

三、第三类攻击
所谓第三类攻击,完全就是软件厂商在软件的设计过程中忽略的了安全的问题,比如说前段时间某个手机浏览器就干了这么一件糗事。实际上这也是一种普遍存在的情况,程序的bug、漏洞,设计缺陷,都会打破一些安全模型。对于这种情况,软件厂商在软件设计阶段要充分考虑安全的问题,并且及时更新程序中的缺陷与安全漏洞;作为用户要及时的更新应用程序或者系统补丁,从而减少安全威胁。

目前最为常见的手段仍然是SSL劫持攻击,但无论是什么攻击手段,基础的利用都是局域网的中间人攻击,这种攻击手段非常的实用,尤其是在公共网络中。针对SSL的中间人攻击对普通用户来说或许还好识别一些,但是我们大多数情况访问的都是HTTP网站,传输的数据都是明文的,在这种情况下中间人攻击是不容易被发现的。对于普通用户,可以用以下的办法来防御局域网中间人攻击:

  1. 公司办公网络一定要在交换机上进行MAC地址绑定,对于一些规模不大,暂时不考虑加固内网的公司可以采取下面我说的方法。
  2. 临时接入公共网络的计算机,可以临时开启安全软件内的ARP防火墙。或者是使用VPN。
  3. 对于一些不喜欢安装安全软件的用户,可以使用stunnel配置代理或者是使用SSH转SOCKS 5代理。但是这需要用户有独立的服务器。
  4. 使用GoAgent代理工具,GoAgent与stunnel类似,都是一种使用ssl tunnel对传输进行加密的工具。即便是访问HTTP网站,GoAgent也可以像stunnel那样对传输进行加密,可以保证浏览网页,访问WEB邮箱的安全。GoAgent使用的是Google App Engine服务器,因此访问国内网站的速度会比较慢,对于这种情况可以使用Sina App Engine,具体配置方法可以在搜索引擎中用“goagent sae”作为关键字进行搜索。
  5. 在公共网络如果要进行商务办公,最好是用公司提供的VPN来对传输进行加密。


最后再说说手机上网,目前公共WIFI越来越普及,手机上网也越来越方便,因此也需要重视数据传输过程中的安全问题。虽然GoAgent也有支持Android和iOS的版本,但如果要使用在线支付之类的功能,最好是利用官方出的应用来进行操作。针对手机的安全防护目前还没有计算机那么强大,因此在没有办法保证传输加密数据之前,最好不要用手机来做什么涉及到隐私或者是商业保密的工作。

  • 大小: 63.7 KB
  • 大小: 55 KB
  • 大小: 52.3 KB
  • 大小: 31.7 KB
分享到:
评论

相关推荐

    实验:OSPF路由项欺骗攻击防御实验.docx

    OSPF路由项欺骗攻击防御实验

    缓冲区溢出攻击实例

    缓冲区溢出攻击及防范实例,网络攻击与防御课程使用

    社会工程学攻击的实例化.pdf

    所以,将社会工程学攻击实例化将是一个不错的选择,议题从多个国内外的实际攻击案例,来分析和制作基本的社会工程学攻击实例模型。试图使每一个安全从业人员能够轻松套用攻击测试的流程实例,针对企业组织进行有效...

    SQL 注入攻击防御指南.doc

    SQL 注入攻击防御指南 如何发现并防御自动 SQL 注入攻击 研究员开发新的技术来防御 SQL 注入攻击 如何斩断 SQL 注入式攻击的疯狂魔掌? Fuzzing tool 帮助 Oracle DBA 删除 SQL 注入错误 Web 安全...

    网络攻击与防御的实例分析

    讲述了关于网络安全的一些知识,相信对于提高大家的网络安全意识有很大的帮助。

    实现网络远程攻击主动防御的一种构想;漏洞陷阱

    实现网络远程攻击主动防御的一种构想;漏洞陷阱

    SQL注入攻击与防御

    SQL注入攻击与防御,从原理开始介绍,以实例讲述几个主流的方法

    论文研究-目的边攻击和防御下的相互依存网络相继故障.pdf

    为解决基于相互依存边目的攻击下的网络间相继故障及其渗流问题,采用一种新的相互依存边的边权定义方法,提出相互依存边在目的攻击和防御下的故障渗流模型,运用生成函数和渗流理论,分析相互依存网络在此攻击和防御...

    《网络的攻击与防范——理论与实践》[PDF]

    全书共分三篇,18章,主要包括:网络攻击与防范概论、网络攻击篇和网络防范篇,每章都阐述了其原理、技术及实验,最后对网络安全防范的整体解决方案进行了详细分析。  全书理论与实践相结合,通过实践来理解攻防的...

    8. Web攻击及防御技术1

    Web攻击及防御技术服务器利Web服务器的漏洞利的安全漏洞实例服务器程序编写不当导致缓冲器溢出针对服务器系统的拒绝服务攻击脚本程序编写不当,SQL注乐观的相信户

    论文研究-基于攻防图的网络主动防御策略选取研究.pdf

    通过在攻击图中融入防御动作,提出了基于模式匹配的攻防图生成方法。结合攻防图,给出节点重要性和攻击前提概率的定义,改进现有收益量化方法。运用自顶向下广度优先算法遍历攻防图节点生成收益矩阵,减少了计算冗余...

    论文研究-动态攻击网络演化分析模型.pdf

    可以确定整个过程中攻击模式的数量,明晰每个模式的典型攻击结构,实例证明提出的模型和方法可以有效地模拟攻击发生的过程,当需要防御手段进行干预时,可有针对性地选择危害大的阶段或者节点来抑制攻击过程的发生。

    煤矿企业工业控制系统入侵检测算法

    针对现有煤矿企业工业控制系统入侵检测算法未考虑防御因素影响、实现复杂等问题,从攻击进程和防御体系2个方面,提出了一种基于攻防树模型的煤矿企业工业控制系统入侵检测算法。首先,通过对攻击叶节点的攻击属性进行...

    小脚本,大用场----浅谈WEB攻击技术(案例及演示)

    WEB服务器攻击技术——案例及演示 提纲 ● web时代,脚本的舞台 ● 一次虚拟的web攻击 ● OS+DB ● SQL注入 ● 跨站 ● 挂马 ● 防御 ● 常用资源

    Python Django框架防御CSRF攻击的方法分析

    主要介绍了Python Django框架防御CSRF攻击的方法,结合实例形式分析了Python Django框架防御CSRF攻击的原理、配置方法与使用技巧,需要的朋友可以参考下

    目的边攻击和防御下的相互依存网络相继故障 (2014年)

    为解决基于相互依存边目的攻击下的网络间相继故障及其渗流问题,采用一种新的相互依存边的边权定义方法,提出相互依存边在目的攻击和防御下的故障渗流模型,运用生成函数和渗流理论,分析相互依存网络在此攻击和防御下的...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    ECS云服务器用户操作帮助指南

    1、云服务器简介 1.1云服务器是什么? 1.2配置实例 1.2.1付费方式选择 1.2.2实例规格选择 ...6.4.2 未知协议攻击防御 6.4.3 DDOS攻击防御 7. 附录... 82 1. 关于单位,1000和1024的描述 2. 实例的规格

    基于攻击预测的网络安全态势量化方法

    通过融合攻击方、防御方和网络环境态势要素,依据实时检测的攻击事件评估攻击者能力和漏洞利用率,并计算攻防期望耗时;进而设计基于动态贝叶斯攻击图的攻击预测算法,推断后续攻击行为;最后从主机和网络这2个层面...

    基于不完全信息随机博弈的防御决策方法

    现有防御决策中的随机博弈模型大多由矩阵博弈与马尔可夫决策组成,矩阵博弈中假定防御者已知攻击者收益,与实际不符。将攻击者收益的不确定性转换成对攻击者类型的不确定性,构建了由静态贝叶斯博弈与马尔可夫决策...

Global site tag (gtag.js) - Google Analytics