私のクライアントには、ボットネットからのブルートフォースログイン試行の対象となっているサーバーがあります。サーバーとクライアントのクライアントの変動により、ファイアウォール、ポートの変更、またはログインアカウント名の変更を介した試行を簡単にブロックすることはできません。
攻撃に対してオープンのままにすることが決定されましたが、パスワードを安全に保つ方法を見つけてください。管理者と他のコンサルタントの何人かは、パスワードローテーションソフトウェアをインストールして10分ごとにパスワードをローテーションし、ログインする必要のあるユーザーに新しいパスワードを提供することが最善であると判断しました。
ブルートフォース攻撃は1秒に2回発生しています。
12〜15文字の強力なパスワードを実装する方が、より簡単で無料のソリューションであることを示す必要があります。私はこれを数学で証明する方法を知っていますが、「パスワードにはx個の可能な順列があり、攻撃者は1日にn回しか試行できないため、x /になると予想されます。彼らが私たちのパスワードを推測するまでに平均2n日。」これのより標準的な「証拠」はありますか?
Iptablesでfail2banを使用するのは素晴らしい方法です。
ここ はあなたのための数学です:
大文字と小文字を組み合わせたアルファベットと8文字の一般的な記号を使用すると、2.9兆の組み合わせが得られ、10,000回の試行で1秒間に9、488年かかります。もちろん、これが最大です。4000年以内にパスワードが解読されることを期待してください。運が悪ければ1000年。
ご覧のとおり、次のような15文字のパスワードを使用すれば、問題は発生しないはずです。
dJ&3${bs2ujc"qX
Fail2banに加えて、
最新のUNIXを実行している場合は、通常、不正なパスワード入力のスリープ時間を最大5秒に変更して、攻撃速度を2000%遅くすることができます。 [Solaris10の/ etc/default/loginにあり、SLEEPTIMEを検索します]これは、同じ許容値を使用すると、3時間20分ごとにパスワードをローテーションできることを意味します。
また、ロックアウトの前にパスワードを試すことは実行可能なオプションですが、複数のユーザーが1つのアカウントを共有していて、常にロックアウトされたくないため、これは適切ではないと思います。
12〜15文字のパスワードを要求すると役立ちますが、継続的に攻撃されている場合は、別の解決策の方がおそらく優れています。これに対するあなたの会社の予算の許容範囲はわかりませんが、そのアカウントにログインする必要があるすべての人のためのRSAキーカードもそれを解決します。二要素認証は、確率を量子計算時間に押し出します。
あなたがこのボードに投稿するのに十分長く続いている強引なアプローチはかなり驚くべきことです。一般的に言って、それはかなり低俗であり、実際の攻撃が行われている間はせいぜいログフィラーです。
権威に訴えるのはどうですか? DoDセキュリティ技術実装ガイドライン(iase.disa.mil/stigs/stig)を参照して、「国防総省にとって十分であれば、私たちにとっても十分です」と言うことができます。
考慮すべき点:パスワードが変更されておらず、ブルートフォース攻撃が自分のパスワードを含むパスワードの世界をテストしている場合、ブルートフォース攻撃は最終的にヒットすることが保証され、その後も脆弱なままになります。
あなたが提案したように、ランダムな選択があなたのパスワードに当たる「チャンス」は計算することができますが、それは全体の話をしていないかもしれません。
たとえば、ブルートフォース攻撃を見て、試行する最長のパスワードが10文字であることがわかった場合、12で何かを選択すると、攻撃を受けることはありません。
特定のケースに統計を適用しようとするときは、十分に注意してください。それらは、多数のサンプルで全体的な動作を予測するだけです。
それはさておき、数学が誰かを説得しない(またはできない)場合は、宝くじや自動車事故、落雷など、発生する可能性はほぼ同じであるがなじみのあるものを見つけてください。 「誰かがthisパスワードを押す可能性は、6週間連続で宝くじに当選するのとほぼ同じです」と言えば、より良い気分になるかもしれません。
考慮されていないことの1つは、ボットネットがブルートフォースに使用しているユーザー名です。私が見たすべての例で、ブルートフォースはadminとrootのバリエーションであり、まれに、企業のWebサイトからユーザー名が取得されました。
また、インタラクティブログインの制限を変更して、rootアカウントが無効(推奨)になるか、ローカルサブネットまたは同様のアドレス範囲に制限されるようにします。
指数曲線を理解していない人が多いのは驚くべきことですが、10、100、1000の違いは誰もが知っているので、比較を始めるのに良い場所かもしれません。
別の戦術は、実際にshow 6文字のパスワードをブルートフォースするのにかかる時間を人々に与えることかもしれません。プログラミングの知識がある場合は、これを行う簡単なツールをまとめることができます。
これは少しオフトピックかもしれませんが、私は denyhosts を使用しており、Linuxボックスでのブルートフォース攻撃が大幅に削減されています。
また、レインボーテーブルがいかに簡単に利用できるかを示すこともできます。
1秒に2回は悪くありません。 fail2banを実装する前は、1分あたり数千回の試行を確認していました。これにより、試行が何度も失敗した後(すべて構成可能)、特定のIPが一定時間ネットワークからロックされます。
これは私たちにとって素晴らしい働きをしました。
実際、これがうまくいけば、iptablesを使用してブルートフォースssh攻撃に対して選択的にスキャンできます。
これらの2つの文字列:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP
60秒間隔でSSHに5回以上接続しようとするユーザーへのアクセスをブロックします。 1秒あたり5を超える数値を許可する場合は、「-hitcount」の数値を変更できます。
10分ごとにパスワードを変更するのは少し過剰に思えることに同意します。この時点で問題となるのは、新しいパスワードを安全に送信し、システムを相互に同期させる方法です。
この記事には、クラッキング速度に関する興味深い統計がいくつかあります。