web-dev-qa-db-ja.com

反CSRFトークンはブルートフォース攻撃を防ぐことができますか?

私はブルートフォース攻撃の経験はあまりありませんが、

Webサイトwww.example.comがあり、そのログインフォームに対してブルートフォース攻撃を行いたいが、そのログインフォームはアンチCSRFトークン。

一意のキーが毎回作成されるため、CSRF保護されたフォームでブルートフォースパスワードを実行することは可能ですか?

on AntiForgeryToken対Captcha

CSRFで保護されたフォームで自動提出が可能であると書かれていますが、私が有効なリクエストを作成する必要があるよりもブルートフォースをしようとすると思っていました。

例えば ​​:

http://example.com/login?usrname= [brute]&password = [brute]&anti_csrf = xydh732-7vdbd

このリクエストをブルートフォースに使用しますが、この抗CSRFトークンは、ブルートフォース攻撃でブルートフォースのユーザー名とパスワードを使用する方法よりも、1回のリクエストで有効期限が切れます。

8
Deepanshu Singh

シンプル。新しく要求されたログインページから、およびサーバーの応答にトークンが添付されるたびに、アンチCSRFトークンを読み取ります。この場合、POSTリクエストを送信する前に、最初にサーバーからのGETリクエストへのレスポンスを読み取り、新しいトークンがそれにアタッチされます。次に、それを使用して新しいブルートを生成します-force POSTリクエスト。リクエストレート制限など、他の問題が発生する可能性がありますが、CSRFトークン自体はブルートフォース攻撃から保護しません。

17
TildalWave

攻撃者は CSRFトークンを処理するためのエクステンダー拡張を備えたバースト侵入者 を使用してブルートフォース攻撃を行うことができます。ログインページにキャプチャを追加しても問題は解決せず、攻撃者が$ 1の1,000ソリューションでキャプチャクラッキングサービスを解読するように強制することにより、レベルを引き上げます。

あなたの質問に答えるために、CAPTCHAもCSRFトークンも適切な防御策ではありません。安全なログインシステムでは 多要素認証 を使用する必要があります。

10
rook

CRSF攻撃は、ユーザー(通常は既にログインしている)をだまして、攻撃者のエンドをサーバーにする要求を実行することによって機能します(XSSなどの方法でハイパーリンクをクリックさせることにより)。

アンチCSRFトークンは、(前のページでユーザーに提供された)予測できない値を機密要求の一部として送信することを要求することにより、機密要求を保護します。攻撃者はこの値が何であるかを知る方法がないため、要求を適切に偽造できません。

ただし、これはログインページに実際の影響を与えることはありません。ほとんどの場合、ログインページには誰でもアクセスできます。 POSTログインフォームのリクエストにログインWebページから送信されるCSRFトークンが必要な場合でも、攻撃者がログインページに繰り返しアクセスして新しい有効な反CSRFを取得することを妨げるものは何もありません。毎回。

2
lzam

ここにはすでにCSRFに関するすばらしい回答がたくさんあります。そのため、このような攻撃から保護するための代替アプローチを提供することで、それらをさらに拡張すると思いました。 Apacheを使用している場合は、ブルートフォース攻撃やDOS攻撃から保護するため、mod_evasiveを使用することをお勧めします。 IIS=を実行している場合は、動的IP制限の拡張機能を使用できます。Nginxでルールを構成するか、Webアプリケーションファイアウォールを使用すると、より洗練されたアプローチになります。これがお役に立てば幸いです。

0
cherrysoft