我的客户有一台服务器,它正遭受来自僵尸网络的暴力登录尝试。由于服务器和客户的客户端都存在各种问题,我们无法通过防火墙、端口更改或登录帐户名更改来轻松阻止这些尝试。
已决定让密码暴露在攻击之下,但要找到一种保证密码安全的方法。管理层和其他一些顾问已确定,最好的办法是安装密码轮换软件,每十分钟轮换一次密码,并向需要登录的用户提供新密码。
每秒都会发生两次暴力破解尝试。
我需要证明实施一个长度为 12-15 个字符的强密码是一种更简单且免费的解决方案。我知道如何用数学来证明这一点,但我只会写类似“我们的密码有 x 种可能的排列,攻击者每天只能尝试 n 次,因此我们预计他们平均需要 x/2n 天才能猜出我们的密码。”有没有更标准的“证明”?
答案1
将 fail2ban 与 iptables 结合使用是一种很好的方法。
这里对你来说这是数学问题:
混合大小写字母和常用符号,8 个字符长,提供 2.9 千万亿种组合,每秒尝试 10,000 次,需要 9,488 年。这当然是最大值 - 预计您的密码将在 4000 年后被破解。如果您运气不好,则需要 1000 年。
正如您所见,如果您使用 15 个字符的密码,则不会有任何问题,例如:
dJ&3${bs2ujc"qX
答案2
除了 fail2ban,
如果您运行的是任何现代 UNIX,通常可以将错误密码输入休眠时间更改为最多 5 秒,从而将攻击速度降低 2000%。[Solaris 10 在 /etc/default/login 中有此功能,请搜索 SLEEPTIME] 使用相同的容差意味着您可以每 3 小时 20 分钟轮换一次密码。
此外,锁定前尝试密码也是一个可行的选择,但我怀疑它不适合您,因为您有多个用户共享一个帐户并且不希望它一直被锁定。
要求密码长度为 12-15 个字符会有所帮助,但如果您不断受到攻击,另一种解决方案可能更好。我不知道贵公司对此的预算承受能力如何,但为每个需要登录该帐户的人提供 RSA 密钥卡也可以解决这个问题。双因素身份验证将概率推向了量子计算时间。
暴力破解方法持续了很长时间,以至于你还在这个论坛上发帖,这真是令人惊讶。一般来说,这种方法很低俗,充其量只是在真正的攻击发生时填充日志而已。
答案3
诉诸权威怎么样?你可以参考国防部安全技术实施指南 (iase.disa.mil/stigs/stig) 并说“如果它对国防部来说足够好,那么对我们来说也足够好”
答案4
有一件事没有考虑,那就是僵尸网络使用什么用户名进行暴力破解。在我见过的所有情况下,暴力破解都是针对管理员和根用户的不同版本,在极少数情况下,用户名是从公司网站上抓取的。
我还会更改交互式登录限制,以便您的根帐户被禁用(首选)或限制在您的本地子网或类似的地址范围内。