APP下载

基于Internet的TCP会话劫持欺骗攻击与防御策略

2020-08-14赵景王浉锟

现代电子技术 2020年16期
关键词:网络安全

赵景 王浉锟

摘  要: 随着网络技术的飞速发展和各种应用的出现,网络安全问题成为各种网络应用需要考虑的头等大事,在各种欺骗攻击中,如何防止TCP会话劫持欺骗攻击成为防御网络入侵的重点之一。文中阐述了TCP会话劫持的概念,目的是对其产生的原理和造成的危害进行分析,采用实例分析方法,通过对攻击者进行一次会话劫持攻击过程的探讨,得到目前针对会话劫持攻击无法从根本上阻止或消除的结论,进一步提出了针对性相应防御策略的结果,减少攻击的发生。

关键词: 防御策略; TCP会话劫持; 欺骗攻击; 原理分析; 危害分析; 网络安全

Abstract: With the rapid development of network technology and the emergence of various applications, the network security has become a top priority for various network applications. In various spoofing attacks, how to prevent TCP session hijacking spoofing attack becomes one of the focuses of the defense against network intrusion. The concept of TCP session hijacking is expounded, so as to analyze the principle it generates and the harm it causes. The discussion of a session hijacking attack process of the attacker is performed by means of the instance analysis method, so that the conclusion that the session hijacking attacks cannot be prevented or eliminated fundamentally is obtained. Furthermore, the corresponding defense strategies are put forward to reduce the attacks′ occurrence.

Keywords: defending strategy; TCP session hijacking; spoofing attack; principle analysis; hazard analysis; network security

0  引  言

在Internet上計算机之间进行相互的交流是建立在认证和信任两个前提之下的,欺骗是社会工程学的一种体现,本质上就是攻击者针对认证机制的缺陷,冒充合法用户的身份,通过认证骗取被攻击者信任的一种攻击方式,一般情况下,攻击者将自己伪装成可合法用户,从而与被攻击者进行正常交流,最终攫取被攻击者的数据或者展开进一步攻击。TCP会话劫持欺骗是IP欺骗的高级应用,由于其具有不依赖操作系统和能够无声无息的窃取机密信息的特点,危害性巨大,越来越受到黑客的青睐。因此,如何防止TCP会话劫持欺骗攻击就成为防御网络入侵的重点之一。

1  TCP会话劫持概述及原理

1.1  TCP会话劫持概述

会话劫持是一种结合了嗅探及欺骗技术在内的攻击手段,就是在一次正常的通信过程中,攻击者作为第三方参与到其中,或者是在基于TCP的会话里注入额外的信息,或者是将双方的通信模式从直接联系变为由攻击者联系[1?2]。简单来说,整个攻击过程实质就是合法接管一个现有的动态会话过程,黑客通过一个会话劫持过程完成替代已有的合法用户,成功后,攻击者就可以监视并控制整个会话的内容。此时,攻击者可以对一个被劫持的合法用户(受害者)的通话内容进行记录并对其进行应答,以便进行下一步的欺骗和攻击。

1.2  TCP会话劫持的原理

在基本的基于IP地址欺骗过程中,攻击者并不把合法用户掉线来作为对被攻击者的攻击,而是仅仅伪装成一个合法用户,这样,当被冒充的合法用户不在线时,攻击者在整个攻击过程中就不冒充任何用户角色,因此攻击者不会对它发动任何攻击。但是,在整个会话劫持过程中,攻击者为了接管整个会话过程,就会非常积极主动地对被冒充的用户进行攻击,从而迫使其被冒充的用户下线,如图1和图2所示。一般欺骗只涉及攻击者和受害者两个角色[2],被冒充者不扮演任何角色,而在会话劫持中必然会涉及到被冒充者,从攻击者的角度来看,它是保证劫持成功的协作者,这也是两者之间最根本的区别。

对于基于TCP连接的可靠性通信来说,序列号是非常重要的,序列号是一个32位计数器,可以有大约4亿种的可能性组合,用来通知接收方在收到一个混乱的数据包时如何排列数据包的顺序[3?4]。也就是说,序列号记录了数据包放入数据流的顺序,接收方就可以利用序列号告诉发送方哪些数据包已经收到,哪些数据包还未收到,于是发送方就能够依此重发丢失的数据包。由于发送方和接收方均有数据包的接收和发送问题,因此需要同时存在一个属于发送方和接收方的序列号。

在进行TCP会话劫持操作时,必须精确地预测主机和目标机之间使用的序列号,这是一件不太容易的事情。但是,在某些平台上猜测序列号的增量比较容易,由于序列号是随着传输数据字节数递增的,而且序列号和应答号之间存在明确的对应关系,这使得预测序列号成为可能,只要攻击者获取最近的会话数据包,就可以猜测下一次通话中的SEQ和ACK,这一局面是TCP协议固有缺陷造成的,由此带来的安全威胁也是无法回避的。

1.3  TCP会话劫持的危害

会话劫持分为被动型和主动型两种[5]。被动型的劫持攻击首先劫持会话,然后在后方观察和记录双方所有发送和接收的数据;主动型的劫持攻击总是以首先完成被动型劫持攻击作为起步,然后寻找动态的会话并接管它,进而攻入目标主机,由于一般需要迫使会话中被冒充方下线,因此一般伴随拒绝服务攻击,其难度较被动型攻击要大。

就其实现原理而言,任何使用Internet进行通信的主机都有可能受到会话劫持攻击[6?7],会话劫持在理论上是非常复杂的,但是现在产生了简单适用的会话劫持攻击软件,技术门槛的降低导致了很多“少年攻击者”的诞生。

会话劫持攻击具有较大的危害性,一个主要的原因是它不依赖于运行哪种操作系统,只要进行一次TCP/IP连接,攻击者就有可能接管用户的会话[8]。另一个原因就是它既可以进行积极性的攻击,获得进入系统的可能,也可以进行消极的攻击,在任何人都不知情的情况下窃取会话中的敏感信息。

2  TCP会话劫持过程

2.1  进行会话劫持攻击的步骤

攻击者要完成一次会话劫持攻击,一般需要以下5个步骤。

1) 发现攻击目标。对于会话劫持攻击者而言,要找到一个合适的攻击目标有两个关键的问题首先需要解决。第一,攻击者一般希望攻击目标是一个准予TCP会话连接的服务器,而且服务器最好能同时和众多客户主机进行TCP连接会话,因此这对于攻击者而言意味着更多的攻击机会;第二,攻击者是否能够对数据流进行检测也是一个比较重要的问题,因为在实施具体攻击的时候,攻击者需要对序列号进行猜测[9],这就需要嗅探其之前通信的数据包,对于交换网络环境,可能还需要使用ARP欺骗。

2) 确认动态会话。确定合适的攻击目标后,攻击者要想接管一个会话,就必须找到可以接管的合法连接,与多数其他黑客攻击方法不同的是,会话劫持攻击适合在网络流通量达到高峰时才会发生的。这种选择具有双重原因,首先,网络流通量大时,说明会话很多很活跃,供攻击者选择的会话就会很多;其次,网络流通量越大,则攻击者被发现的概率就越小。在网络流通量不大或者用戶连接数量较小的情况下,如果用户数次掉线,那很有可能引起该用户的怀疑,容易暴露;但是,如果网络流通量很大并且有很多用户进行连接,那么用户们很有可能忽略掉线后面隐藏的问题,也许只是认为这是由于网络流通过大而引起的。

3) 猜测序列号。与一次TCP会话相关的三个重要参数是IP地址、端口号和序列[10]。其中,IP地址和端口号的发现比较简单且在整个会话工程中保持不变,TCP用来辨别正确数据包和错误数据包是通过数据包的SEQ/ACK序列号来实现的,而SEQ/ACK序列号是动态的,会随着时间的变化而改变。因此,黑客要想获得序列号,可以通过嗅探或者ARP欺骗来截取。首先,黑客先找到攻击对象(目标机)正在使用的序列号,其次,获取序列号后,黑客根据序列号机制原理,猜测出下一对SEQ/ACK序列号,与此同时,黑客如果用某种特定方法扰乱合法用户主机的SEQ/ACK,就会给服务器造成假象,不再信任客户主机发送的正确数据包。这样,黑客就可以伪装成合法用户的客户主机,使用截取的合法用户正确的SEQ/ACK序列号。此时,黑客的攻击主机就可以与服务器进行合法连接,从而成功抢劫一个会话连接。

4) 使客户主机下线。当黑客获取了合法用户的SEQ/ACK序列号后,就必须使客户主机离线,从而彻底接管这个合法会话,要让合法客户主机离线,一般采用的最简单方式就是对合法用户进行拒绝服务攻击或者分布式拒绝服务攻击,从而使客户机不再继续响应。此时,服务器仍然会继续发送响应给合法客户的主机,但是,由于此时黑客已经控制了客户主机,因此该客户机器就不再响应。

5) 接管会话。当黑客已经获取所需要的一切信息数据以后,就可以连续不断地向服务器发送数据包并且接管整个会话。黑客在整个会话劫持攻击中,一般会持续不断地发送信息数据包,进而在受害服务器上建立一个合法账户,甚至为了以后轻松进入留下某些“后门”,通过这种方式,黑客无论在任何时候都可以轻松进入系统。

基于这种TCP会话劫持攻击是一种盲劫持,因为整个会话一直使用的都是原始通信双方的IP地址和端口信息,虽然攻击者可以伪装成合法的客户机向服务器发送攻击数据,但服务器的响应包的目的地址仍是合法客户机的地址。因此,攻击者要想获取信息,需要采取ARP欺骗等特殊手段将自身置于中间人的位置,否则将接收不到服务器的任何响应数据。

2.2  进行会话劫持攻击的算法

使用Python语言进行会话劫持攻击的实现思路是,首先使用scapy制造syn泛洪攻击,然后计算tcp序列号,随机生成IP地址、端口并发送SYN数据包,最后伪造tcp连接成功后就可以进行攻击。算法实现流程如图3所示。

3  会话劫持攻击的防御

对于会话劫持攻击目前还没有有效的办法从根本上阻止或消除,这是因为在该攻击中,攻击者能够直接接管合法用户的会话,如果要避免被攻击就需要消除这个会话。但是,一旦消除也就意味着禁止了一个合法用户的连接,这样也就背离了使用Internet进行连接的本质目的。因此,只能尽可能地减少由黑客进行会话劫持攻击所带来的影响和危害。

目前,进行会话劫持攻击防御的措施一般有以下几种:

1) 对会话加密。加密技术是可以防范会话劫持攻击为数不多的方式之一[5]。当黑客不能截取到合法的数据传输时,此时要想进行会话劫持攻击也不是一件简单的事。因此,任何用来传输敏感数据的关键连接都必须进行加密。在理想的情况下,网络上的所有流通都应该被加密,虽然很多用户都想要一个能满足自己安全需要的解决方法,但是,因为成本和烦琐的原因,含有这项保护技术的工具虽然已经面世有很长时间了,却至今也没有推广。

2) 使用安全协议。无論在任何时候,当合法用户要与一个远端的服务器进行连接时,尤其是一个从事敏感工作的用户或者是管理员,都应当使用安全协议进行连接通信。一般来说,像SSH(Secure Shell)这样的协议或是安全的Telnet都可以使系统免受会话劫持攻击,此外,从客户端到服务器的VPN也是很好的选择。

3) 限制保护措施。为了避免受到会话劫持攻击,当用户或管理员所在单位允许从外部网络上传输到单位内部网络的数据信息越少,则受到会话劫持攻击的概率就越少,用户将会越安全。这是个最小化会话劫持攻击的方法,黑客越难进入系统,那么系统就越不容易受到会话劫持攻击。在理想情况下,应该阻止尽可能多的外部连接和连向防火墙的连接。大多数用户虽然能够做到这一条,限制了引入连接,但是通常又会允许内部用户用任何协议去连接外网的主机,这样可以减少敏感会话被攻击者劫持的可能性。

4  结  语

TCP会话劫持欺骗是IP欺骗的高级应用,由于其具有不依赖操作系统和能够无声无息的窃取机密信息的特点,危害性巨大,越来越受到黑客的青睐。本文从会话劫持产生的原理出发,阐述了其攻击过程和防御策略,目前虽然还没有有效的办法从根本上阻止或消除,但进行相应的预防可以在一定程度上减少这种攻击的发生。

参考文献

[1] 王欢.基于嵌入式设备的网络安全机制的研究与实现[D].成都:电子科技大学,2016.

[2] 杨泽明.TCP/IP网络协议栈常见攻击技术与防范[J].网络安全技术与应用,2014(3):26.

[3] 向继,高能,荆继武.网站欺骗攻击技术及其防范研究[C]//第二十次全国计算机安全学术交流会论文集.西宁:[s.n.],2005:59?62.

[4] CHRISTIAN Kanamugire.防止跨站脚本攻击会话劫持的客户端解决方案研究[D].长沙:中南大学,2012.

[5] 张庆华.网络安全与黑客攻防宝典[M].北京:电子工业出版社,2007.

[6] 甘刚.网络攻击与防御[M].北京:清华大学出版社,2008.

[7] 刘钦.计算机网络信息安全及其防护对策探讨[J].网络安全技术与应用,2016(11):16.

[8] 王友亮.目前网络安全技术的缺陷及整合趋势分析[J].网络安全技术与应用,2015(12):38?39.

[9] 王宗楠.网络攻击技术与网络安全分析[J].电子技术与软件工程,2015(12):212.

[10] 钱志远.基于计算机网络安全防ARP攻击的研究[J].通讯世界,2017(1):99?100.

猜你喜欢

网络安全
网络安全知多少?
新形势下的特种设备网络安全防护探讨
新量子通信线路保障网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
网络安全与执法专业人才培养探索与思考
设立网络安全专项基金 促进人才培养
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月