web-dev-qa-db-ja.com

総当たり攻撃から保護するためのアカウントロックアウト:DOS攻撃に対する脆弱性を開かないのですか?

たとえば、ブルートフォース攻撃を軽減するための推奨される方法は、たとえば、5回のログイン試行の失敗後に、たとえば15分間(おそらく、攻撃が続く場合は、ロックアウト時間を増やしますか?).

推論は理解できますが(ブルートフォースの緩和)、まだ気になることが1つあります。つまり、これはサイトを悪意のあるアカウントロックアウトに対して脆弱にしませんか?

それほど深刻ではないバージョン:ささいなトロールはユーザーXが好きではないため、アカウントXに簡単に間違ったパスワードを5回続けて入力します。 15分後に繰り返します。

より深刻なバージョン:本格的なDOS攻撃、ロックアウトメカニズムをトリガーする目的でのみ、ウェブサイトの最近アクティブなユーザーに対する自動化された「ブルートフォース」攻撃。 Webサイトに1日あたり約1000のログインがあるとします。先週ログインしたユーザーに対する攻撃=最大7000アカウント、実際にははるかに少ない、たとえば3500だけとしましょう。 5回のログイン試行= 17500回のログイン試行、わかりませんが、これは確実に実現可能だと思いませんか?そして、それはすでに非常に人気のあるサイトです。そのような攻撃に対して最も脆弱なWebサイト(インターネットフォーラム?)の場合、これらの数は2桁少ないかもしれません!

私はこの習慣を理解していません。それは、DOS攻撃に対する明白な脆弱性を開くことを犠牲にして、ブルートフォースパスワードクラッキング攻撃を軽減しませんか?

2
gaazkam

はい、そうです。常に状況のリスク管理に基づいて、自分のリスクと、他の問題よりも解決したい主要な問題を理解する必要があります。

結合することをお勧めします。たとえば、ユーザーエクスペリエンスを実際に損なうことはないが、悪意のあるユーザーの人生を苦しめるログイン遅延を導入できます。たとえば、2秒から10秒までランダムに遅延させ、ユーザーを2分以上ロックしないでください。

また、ユーザーをまったくブロックせずに(またはユーザー名ではなくIPアドレスに基づいて大量のログインに失敗した後にのみブロックする)、captchaを使用することをお勧めします。

読むための素晴らしい参照(正確にはあなたが求めているものではなく、いくつかの洞察を得るために興味深い): https://crackstation.net/hashing-security.htm

1
Yossi

アカウントをロックアウトすると、DOSの脆弱性が生まれます。攻撃者がWebサイトのユーザー名をこすり取ることができれば、多くのユーザーを簡単にロックアウトできます。ブルートフォース攻撃に対するこのタイプの防御は推奨されません。 this ブルートフォース攻撃に対する適切な防御が含まれています。

1
CoderPE