sudo 的暴力破解保护真的有用吗?

sudo 的暴力破解保护真的有用吗?

在这个问题中:为什么输入错误密码时会有延迟?看起来,一旦输入错误的密码,sudo 就会有 1-2 秒的超时时间,以使破解尝试更加困难。

这让很多用户感到烦恼,这真的是解决问题的办法吗?

什么可以阻止攻击者并行运行数千个 sudo 实例并每秒测试数千个不同的密码?超时并不能阻止这种情况。

答案1

第一次就获得正确的密码?

奇怪的是,我想测试一下你的说法,即延迟不会阻止暴力攻击。这似乎很愚蠢,因为它可以允许这种情况发生……但在这里我同时执行了 2000 个单独的线程。它有效。

parallel -j2000 sh -c 'echo $"{}\n" | sudo -S echo; echo done' -- {1..2000}

虽然auth.log失败次数很多,但次数从未超过“2 次密码尝试错误”。

相信 PAM 应该阻止人们。因此才拖延了。
这可能是由于 [糟糕的] 设计,也可能只是一个 [相当严重的] 错误。

我的网络上有一个密码很弱的系统。我很想尝试这种方法,看看它是否真的可以扩展到暴力破解密码。

答案2

延迟不仅仅是为了使暴力攻击更加困难,它还会导致信息泄露。几年前,SunOS 有一个著名的漏洞,它依赖于通过查看命令返回的速度来判断密码是否错误。

安全攻击通常不依赖于单一载体,而是以有趣的方式组合载体来利用小错误或疏忽。

向攻击者隐藏善意和恶意的攻击可以减少整体攻击面。这是正确的做法。

如果您不喜欢它,您还可以使用其他身份验证方法。

答案3

您如何看待这一切“同时”发生?

对于 8 个字符的密码,您有 (26+26+10+12=) 74^8 个可能的单词。总共有 899.194.740.203.776 个唯一单词。延迟 3 秒(是 3 ;-) ),总共需要 85.539.834 年(899.194.740.203.776 * 3 / (365*24*60*60))。假设您需要一半的尝试次数,那么需要 42.769.917 年。即使同时尝试 100000 次(我知道这是不可能的),也需要(平均)大约 427 年。

需要保护的系统(例如用户帐户数据库)将设置良好的密码(因此 8 个字符可能更多),并且还设置邮件系统以在有人多次输入密码时向管理员发出警报。

还相信这是可能的吗?

相关内容