我试图理解反射攻击,但不幸的是维基百科太模糊了。我知道在这种攻击中,攻击者试图对目标进行身份验证,但这样做的方式是目标身份验证系统的质询被发送到欺骗客户端(而不是攻击者)。我也明白这会以某种方式导致循环或 DOS。但我错过了细节。有人可以解释这是如何工作的吗?
反射攻击是如何工作的?
所以这是两个完全不同的东西,第一个是协议漏洞的分类,第二个是 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。如果他知道一对n,E(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,那么攻击者的攻击力增加了幅度之比y到x.
如果攻击者可以同时使用大量的第三方,使得攻击者的带宽被完全消耗,那么他的攻击力就真正成倍增长。