反射攻击是如何工作的?

信息安全 拒绝服务
2021-08-28 11:11:34

我试图理解反射攻击,但不幸的是维基百科太模糊了。我知道在这种攻击中,攻击者试图对目标进行身份验证,但这样做的方式是目标身份验证系统的质询被发送到欺骗客户端(而不是攻击者)。我也明白这会以某种方式导致循环或 DOS。但我错过了细节。有人可以解释这是如何工作的吗?

1个回答

所以这是两个完全不同的东西,第一个是协议漏洞的分类,第二个是 DDoSsers 有时使用的方法。我举两个例子。


认证反射

用于解释反射攻击概念的经典例子是中间的 MIG

它应该如何工作

军方决定实施一种系统,使他们能够立即判断雷达上的飞机是好人还是坏人(称为敌友识别 (IFF) 系统)。

他们实施的系统类似于;

1: Alice > Bob:   n              <-- challenge
2: Bob > Alice:   E(K, n)        <-- response

其中n是唯一随机随机数,K是预共享密钥,E是合适的加密/推导函数。

由于只有友方飞机知道密钥的值,所以K只有友方飞机才能计算出对给定随机数的正确响应n如果 Bob 在几秒钟内未能生成并发送正确的响应,Alice 会立即将他击落。

否则,Alice 知道 Bob 必须知道 的值K才能生成他发送的响应,因此 Bob 必须在同一个团队中。

这个过程可以反向重复,以便 Alice 和 Bob 相互验证。

就目前而言,该系统已完全损坏,但首先让我们关注您所询问的反射攻击。

反射攻击

敌机可以通过将挑战反馈给好人团队的其他成员来击败系统。

1: Alice > Bob:     n
2: Bob > Charlie:   n           <-- reflection attack
3: Charlie > Bob:   E(K, n)     <-- bob receives the correct response to Alice's challenge
4: Bob > Alice:     E(K, n)     <-- and authenticates himself to Alice

在第 4 次交互中,Bob 向 Alice 验证了自己的身份,Alice 让他平静地飞过。Bob 在不知道 的情况下这样做K,只是通过向其他人发送相同的挑战,因此名称为反射。Bob 向 Charlie 反映了挑战,他在 Alice 的团队中,因此知道价值K并能够产生正确的响应。Charlie 像往常一样回答 Bob 的 IFF 质询,给 Bob 对原始质询的正确响应。

其他攻击

Replay:如果 的值n来自足够小的空间,它们将开始重复。如果 Bob 跟踪他听到的每个挑战n和响应E(K,n)对,他最终将能够构建一个正确响应的字典,而无需知道密钥K然后,当他收到在他的字典中有条目的挑战时,他可以开始重播以前的响应。

蛮力:Bob 可能会知道推导函数E如果他知道一对nE(K,n)他可以尝试不同的值,J直到E(K,n) == E(J,n)这意味着J == K他已经暴力破解了密钥K


DDoS 反射

基本的拒绝服务攻击本质上是一种流量泛滥,旨在耗尽目标机器的带宽、内存或其他资源。

这个想法是攻击者控制的带宽比受害者大得多,因此很容易压倒受害者。

1. Attacker > Victim: x

如果x足够大,那么受害者将无法处理它(许多资源之一被耗尽)并且受害者下线。

攻击者可以使用一种称为流量放大的技术,通过反映来自一台或多台第三方机器的流量来使生活变得更轻松。

它看起来像;

1. Attacker > ThirdParty: x
2. ThirdParty > Victim: y

x攻击者向第三方发送消息,同时欺骗受害者的源 IP。当第三方回复消息x时,回复将发送给受害者。

如果回复y的幅度大于消息的幅度x,则攻击者的 DoS 潜力成倍增加。

我在这里使用术语“幅度”来表示它可以是任何东西:连接数、数据带宽、数据包频率等。关键是如果y比 更难处理x,那么攻击者的攻击力增加了幅度之比yx.

如果攻击者可以同时使用大量的第三方,使得攻击者的带宽被完全消耗,那么他的攻击力就真正成倍增长。