arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2012.07432cs.CR
收藏

跨层攻击及其使用方法(用于DNS缓存中毒、设备跟踪等)

Cross Layer Attacks and How to Use Them (for DNS Cache Poisoning, Device Tracking and More)

Amit Klein

摘要:

我们分析了随机伪随机数发生器(PRNG)中使用的Linux内核(这是Linux操作系统的内核,以及Android),并证明,这个PRNG是弱的。随机PRNG被Linux内核中的许多“消费者”使用。重点研究了网络层的三个消费者--UDP源端口生成算法、IPv6流标签生成算法和IPv4 ID生成算法。有缺陷的随机PRNG由所有这些消费者共享,这使我们能够对Linux内核发起“跨层攻击”。在这些攻击中,我们从一个OSI层推断随机PRNG的内部状态,并使用它来预测其他OSI层所采用的PRNG的值,或者将其与从其他协议推断的PRNG的内部状态相关联。使用这种方法,我们可以对Linux发起非常有效的DNS缓存中毒攻击。我们收集TCP/IPv6流标签值,或UDP源端口,或TCP/IPv4 IP ID值,重建内部PRNG状态,然后预测出站DNS查询UDP源端口,这使攻击速度提高了3000到6000倍。这种攻击可以远程工作,但也可以跨Linux用户和跨容器本地安装,并且(取决于存根解析器)可以使用任意DNS记录毒害缓存。此外,我们还可以识别和跟踪Linux和Android设备--我们收集TCP/IPv6流标签值和/或UDP源端口值和/或TCP/IPv4 ID字段,重建PRNG内部状态,并将此新状态与先前提取的PRNG状态相关联,以识别同一设备。

英文摘要:

We analyze the prandom pseudo random number generator (PRNG) in use in the Linux kernel (which is the kernel of the Linux operating system, as well as of Android) and demonstrate that this PRNG is weak. The prandom PRNG is in use by many "consumers" in the Linux kernel. We focused on three consumers at the network level -- the UDP source port generation algorithm, the IPv6 flow label generation algorithm and the IPv4 ID generation algorithm. The flawed prandom PRNG is shared by all these consumers, which enables us to mount "cross layer attacks" against the Linux kernel. In these attacks, we infer the internal state of the prandom PRNG from one OSI layer, and use it to either predict the values of the PRNG employed by the other OSI layer, or to correlate it to an internal state of the PRNG inferred from the other protocol. Using this approach we can mount a very efficient DNS cache poisoning attack against Linux. We collect TCP/IPv6 flow label values, or UDP source ports, or TCP/IPv4 IP ID values, reconstruct the internal PRNG state, then predict an outbound DNS query UDP source port, which speeds up the attack by a factor of x3000 to x6000. This attack works remotely, but can also be mounted locally, across Linux users and across containers, and (depending on the stub resolver) can poison the cache with an arbitrary DNS record. Additionally, we can identify and track Linux and Android devices -- we collect TCP/IPv6 flow label values and/or UDP source port values and/or TCP/IPv4 ID fields, reconstruct the PRNG internal state and correlate this new state to previously extracted PRNG states to identify the same device.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑