开源实用程序可以利用机器状态以避免DPI检查
Academics已发布了一种工具,该工具旨在向开源社区绕过深度数据包检查(DPI)。
该软件被称为Symtcp,被描述为“自动发现两个TCP实现之间的微妙差异”的一种手段。
具体而言,SYSTCP可用于查找服务器和DPI之间的差异,并利用这些差异以避免进行深度数据包检查。
深入
DPI对于防止缓冲区溢出和中间人(MITM)在公司设置中的攻击,但也可以用来进行监视并在ISP级别建立审查制度。
在一篇论文(PDF)题为“ Symtcp:使用自动差异发现的状态深度数据包检查”,加利福尼亚大学计算机科学与工程系的学者演示了如何绕过DPI机制,无论其应用如何。
根据团队的说法,DPI系统通常使用网络堆栈的简化机器状态,这些状态不是最终主机的确切实现副本。然后可以通过数据包碎片或操纵来利用差异。
Systcp首先在服务器上运行“符号执行”TCP实施,结果扫描收集标记为“接受”或“删除”的执行路径进行数据包检查。
然后,将使用生成的数据包序列检查DPI系统,以确定DPI和服务器以相同方式处理哪个(如果有)。
如果检测到处理中的差异,开源工具能够创建可以在负责接受或删除请求的代码中达到核心元素的数据包,从而有可能避免DPI Middlebox检查。
纸上写道:“然后自动识别出的数据包通过DPI Middlebox喂食,以确定是否诱发差异并可以避免使用中间框。”
符号执行
研究人员说,现有的绕过DPI的方法通常需要手动制作的恶意数据包才能执行,因此可能是劳动密集型和限制的范围。
相比之下,SYSTCP项目的目标是创建一种自动手段来开发对抗数据包。
该团队说,专注于象征性执行被证明是“极其有效的”,并且可以在不到一个小时的时间内创建“成千上万的候选人对抗数据包”。
目前,基于Linux,SymTCP已针对流行的DPI Systems Zeek和Snort进行了测试,以及州级审查制度系统被称为“中国大防火墙”。
研究人员说,该系统可以“可以轻松扩展到操作系统和DPI Middlebox的其他组合,并且是测试未来DPIS抗逃避尝试的鲁棒性的宝贵工具”。
就团队所知,大多数DPI产品无法抗击SymTCP中使用的逃避方法。
讲话每日swbeplay2018官网ig该论文的一位作者Zhiyun Qian说,该工具的设计旨在使任何人使用足够灵活,无论他们是穿透性测试人员,红色团队的成员,还是寻求绕开ISP级审查的手段。
但是,Zhiyun警告说,由于SymTCP是为了实现学术研究目的的原型而开发的,因此“可能存在我们尚未发现的意外问题”。
源代码和数据集已在github。