16
最善の分散ブルートフォース対策は何ですか?
最初に、少し背景:CodeIgniterのauth + authシステムを実装していることは秘密ではありません。今のところ(いわば)勝っています。しかし、私はかなり非自明な課題に遭遇しました(ほとんどの認証ライブラリが完全に見逃していることを1が、私はそれを適切に取り扱うことを主張):でインテリジェントに対処する方法を、可変ユーザ名ブルートフォース攻撃大規模分散します、。 私はいつものトリックをすべて知っています: IP /ホストごとの失敗した試行の数を制限し、攻撃者のアクセスを拒否する(例:Fail2Ban)- ボットネットがよりスマートに成長したため、これは機能しなくなりました 上記と、既知の「悪い」IP /ホスト(例:DenyHosts)のブラックリストを組み合わせる-これは、ボットネットが#1に落ちることに依存しており、ボットネットはますますそうではありません 従来の認証と組み合わされたIP /ホストホワイトリスト(動的IPユーザーではほとんど役に立たず、ほとんどのWebサイトではチャーンが高くなります) N分/時間内に失敗した試行の数にサイト全体の制限を設定し、その後のすべてのログイン試行を数分/時間の間スロットリング(一時停止)します(DoS攻撃によるボットネットの子の遊びになります)。 ログイン/パスワードオプションなしのすべてのユーザーに対する必須のデジタル署名(公開鍵証明書)またはRSAハードウェアトークン(確かなソリューションですが、閉鎖的で専用のサービスに対してのみ実用的です) 強化された超強力なパスワードスキーム(例:記号を含む25を超える意味のない文字-繰り返しますが、カジュアルなユーザーには非現実的です) そして最後に、CAPTCHA(ほとんどの場合機能する可能性がありますが、ユーザーにとっては迷惑であり、断固としたリソースのある攻撃者に対して事実上役に立たない) さて、これらは理論的に実行可能なアイデアにすぎません。サイトを広く開放するようなごみのアイデアはたくさんあります(たとえば、些細なDoS攻撃に)。私が欲しいのはもっと良いものです。そしてもっといいことには、 DoS攻撃やブルートフォース攻撃に対して安全(+)である必要があり、ややこっそりしたボットがレーダーの下で動作し続ける可能性がある新しい脆弱性を導入しない 自動化する必要があります。人間のオペレーターが各ログインを確認したり、不審なアクティビティを監視したりする必要がある場合、実際のシナリオでは機能しません 主流のWeb使用(つまり、プログラマー以外のユーザーが実行できる大量のチャーン、大量のオープンな登録)に適している必要があります。 それは、カジュアルなユーザーがイライラしたりイライラしたりする(そして潜在的にサイトを放棄する)までユーザーエクスペリエンスを妨げることはできません。 本当に安全な子猫でなければ、子猫を巻き込むことはできません。 (+)「安全」とは、妄想的なユーザーがパスワードを秘密に保つ能力と同じくらい安全であることを意味します だから-それを聞いてみましょう!どうしますか?私が言及しなかったベストプラクティスを知っていますか(そう言ってください)。私は自分のアイデアを持っていることを認めます(3と4のアイデアを組み合わせたものです)が、私は本当の専門家に自分を困らせる前に話させます;-)