论文部分内容阅读
如今,计算机网络飞速发展,已经深入人们生活的各个方面,网络数据替换成了常见的攻击手段之一,而现有的网络数据替换手段却较少涉及数据流的实时替换。本文首先对网络数据实时替换作了定义,指出其相对于一般替换手段的特殊性,因为攻击者的替换行为扰乱了通信双方原有的TCP状态,使得通信双方出现无法正确接收数据包,或者接收了数据包以后无法通过包重组拼接还原出能够正常运行的替换后文件。鉴于此,攻击者必须要对因替换而生的负面影响降低甚至消除;另外,在实行替换的同时,还要考虑到隐蔽自身的替换行为。鉴于本文的大量讨论都建立在对TCP协议的理解之上,故而本文首先对TCP协议栈中涉及的部分进行了较为详细的原理介绍。之后本文提出了四种通信介入方法,使攻击者能够介入到正常的通信双方,得到并转发他们的数据包,这是攻击者进行实时替换的基础和前提。之后本文独立于介入方式,构思了整体的替换框架。首先提出了对于实时替换,攻击者在传输层所能应用的策略和这些策略的引入对原有通信的相应协议层面造成的影响,以及如何对攻击者的行为加以修正来消除这些影响。这一部分用了层层递进的方法,不断修正和完善了实时数据替换的实现手段。接下来,本文在传输层的替换方法之上提出了攻击者在应用层能够采取的替换策略,并强调突出了这两层替换策略应用复杂程度的辩证关系。之后,本文又提出了如何对正常通信双方隐蔽攻击者的替换行为,这一部分的重点在于如何保持替换前后exe文件的大小和图标不变,使得文件接收方不易察觉接收的文件已被替换。最后,本文主要针对如何支持多个TCP连接实时替换进行讨论,从而设计了核心数据结构——TCP表,以及当达到表内支持最大连接数时淘汰表内节点的策略和方法。本文在提出实时替换框架的同时,还给出了一个Linux平台上的具体实现,并实现了一个轻量级的控制服务端,以便于攻击者可以在远端和控制端通信,获得更大的灵活性。在文章最后,本文从防御的角度提出几点对于实时替换的预防和识别方法。