Wordpress(保存済み)パスワードの強さを知る方法は?


10

多くの共有ホスティングサーバーのセキュリティを担当しています。それらのほとんどはワードプレスのウェブサイトを持っています。各サーバーには、少なくとも500のWordPress Webサイトがあります。

私の経験では、WordPressの問題は弱いパスワードから始まります。Webサイトの管理者パスワードのほとんどは非常に脆弱であり、脆弱なパスワードのWebサイトを使用することは、さまざまな悪意のあるアクティビティに悪用され、使用されます。

今の私の計画は、WordPress Webサイトの脆弱なパスワードを見つけて、管理者パスワードを他の強力なパスワードに強制的に変更することです。そのため、WordPressを保護することができ、私のサーバーは問題になりません。

保存されているWordPressパスワードの強度を知る方法は何ですか?

回答:


8

Bruteforceハッシュ

データベースに格納されているハッシュをブルートフォースにすることができます。

WordPressはハッシュにphpassを使用します。デフォルトでは、WordPressはブローフィッシュなどを使用せず、反復回数8192のmd5のみを使用します。本当に悪いパスワードを見つけたいだけであれば、ブルートフォーシングは確かに可能です。

しかし、これはユーザーがあなたに与えた信頼に対するかなり大きな違反だと思うので、このアプローチはお勧めしません。

ログイン時にパスワードを分析する

WordPressログインスクリプトへのすべてのリクエストをインターセプトするスクリプトを追加し、その時点ではプレーンテキストであるため、パスワードをログに記録または分析することができます。

もちろん、これはユーザーが実際にログインしたときにのみ弱いパスワードをキャッチします。ユーザーがサイトを放棄したか、または非アクティブな場合、弱いパスワードを使用していることを発見するまでに時間がかかる場合があります。

私はこれをハッシュの総当たりよりもはるかに大きな違反と見なし、それにはセキュリティ上の懸念も伴います(パスワードをプレーンテキストで保存する場合、これは明らかに問題になりますが、そうでない場合でも、誤って攻撃者を助けるかもしれない分析)。

パスワードポリシーを実装する(ユーザーにパスワードの変更を強制する)

パスワードポリシーを実装できます。ユーザーが新しいパスワードを送信するとき、それがポリシーに準拠しているかどうかを確認します(理想的には、JavaScriptを介してクライアント側ではなくサーバー側で発生します)。

適切なパスワードポリシーを作成するのは難しいため、ここで役立つ既存のポリシーを確認してください。

もちろん、古いパスワードはポリシーの影響を受けないので、ポリシーに準拠するようにユーザーに古いパスワードを変更するように強制する必要があります

ダメージを制限する

強力なパスワードを適用することは確かに良い考えですが、理想的には、ハッキングされたWordPressインスタンスがWebマスターとしてのあなたに実際に影響を与えるべきではありません。

攻撃者がWordPressインストールへのアクセス権を取得したら、被害を制限する必要があります。理想的には、サーバー全体ではなく、その1つのインスタンスのみが影響を受けるようにする必要があります(したがって、攻撃者が正当なユーザーが行うのと同じように、悪質なコンテンツをWebサイトに配置することを心配するかもしれませんが、コードの実行やその他の悪意のあるものについては心配しないでください)アクティビティ)。

これはかなり広いトピックですが、いくつかの点は次のとおりです:DISALLOW_FILE_EDIT、プラグインの使用を制限(それらはWordPress自体よりもはるかに安全にコーディングされていないため)、JavaScriptを許可しない(たとえば、マルチサイトでは、スーパー管理者のみがJavaScriptを投稿する権利を持ち、管理者など)


4

これが可能かどうかはわかりません。パスワードを選択すると、ハッシュ化されてデータベースに保存されます。ハッシュアルゴリズムに関しては、リバースエンジニアリングはありません。

私の経験では、パスワード強度のスクリプトはにありwww.example.com/wp-admin/js/password-strength-meter.jsこれはそのリンクです。

ここでパスワードのレベルとパーセンテージを変更できるため、必須のパスワード強度を100/100に設定できます。

そして、あなたがあなたのクライアントにパスワードの強さをチェックさせたいなら、ここにあなたにパスワードの強さを与えることができるかわいいアプリケーションがあります。

ここでリバースエンジニアリングを行うことは不可能です。さらに、ユーザーに強力なパスワードを取得するように強制するプラグインはほとんどありません。


1
これは、Webホストとサイト所有者が自分自身を保護するためにできる簡単なことのようです。非常に良い質問と回答!これが以前にここで取り上げられたことは確かです。それは少なくとも長い間扱われていません。乾杯!!
closetnoc 2016

1
上記の答えは良いですが、それは私の問題を解決しません。ほとんどのWordPress Webサイトがすでにインストールされているか、1日でサーバーで100のWPがインストールされています。password-strength-meter.jsを使用してパスワードの安全度を変更したとしましょう。Bcoz、pwdはすでに設定されています。これは、すでに設定されているパスワードではなく、新しいパスワードにのみ役立ちます。
2016

1
ただし、ハッシュ化されているため、データベースからすべてのパスワードを見つける方法はありません。これを設定してから、すべてのユーザーに再送信してパスワードを変更し、強力なパスワードを設定できます。これを回避する方法は他にありません。以下の回答も確認してください。
Josip Ivic 2016

2
@Josip Ivic、あなたが言ったように、唯一の方法はpwdをリセットして管理者に通知することです。
Mani

1
新しいユーザーの場合は、サーバーのwpでスクリプトを調整するだけなので、強力なパスワードを使用する必要があります。古いユーザーの場合は、パスワードを強力なパスワードに変更できるようにメールを再送信します。私が言ったように、これを行う簡単な方法はありませんが、それは実行可能です。:)
Josip Ivic 2016

3

良い知らせは、ユーザーのパスワードを変更できることです。悪い知らせは、それらを表示できないことです。
Wordpressのは、パスワードの入力を、でもそれはそれはあなたが変換できるだけでMD5ハッシュではありません一方向の暗号化とパスワードを格納するデータベースで、それもシリアル化されたデータではないことを強力なようであるtest123あなたのようなものになるだろう$P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvnあなたはパスワードフィールドを変更またしても、暗号化を使用しないデータベースでは機能しません。

パスワードを変更する方法

これはご存知だと思いますが、ここではそのままにしておきます。あなたはあなたの管理者特権であなたのワードプレスダッシュボードに入ることができます、ユーザーに行き、ユーザーを見つけます、そしてこの部分はあなたが新しいパスワードを生成するためにクリックしなければならないのであなたにとって目的にはちょっと悪いです、それはあなたに文字と記号のランダムなスープを与え、あなたは自分で編集しますが、それでもパスワードが表示されません。


あなたはまた、ブルートフォース保護と他のクールなあなたは、自分が興味を持って見つけるかもしれない特長ができ、強力なパスワードを入力するようユーザーに要求するiThemesのようなプラグインを使用することができます言及を忘れてしまった。
knif3r

3

パスワードはハッシュ化されているため、セキュリティをテストする唯一の方法は、ブルートフォースすることです。一般的に使用される脆弱なパスワードのリストを収集し、データベースに格納されているハッシュに対してそれらをテストします。

非常に徹底的なパスワードリストを使用しない限り、これはすべての脆弱なパスワードをキャッチするわけではありませんが、最も弱いパスワードを除外します。


これは、多くの時間を必要とするソリューションです。
Josip Ivic 2016

これは、レインボーテーブルの作成と呼ばれます。
Ashfame 2016

@Ashfameいいえ、そうではありません。レインボーテーブルはより洗練されたアプローチであり、必ずしもこのシナリオに最適ではありません。
トムファンデルザンデン、2016

@TomvanderZandenこれは適切なアプローチではないかもしれませんが、これがレインボーテーブルにならないのはなぜですか。
Ashfame 2016

@Ashfameレインボーテーブルは、「データベースに対してパスワードのリストをチェックする」よりもはるかに洗練されているためです。たとえば、レインボーテーブルはハッシュチェーンとリダクション関数を使用します。また、レインボーテーブルの作成には、データベースに対してすべてのパスワードをチェックするだけでは時間がかかることにも注意してください。事前に計算されたレインボーテーブルを使用することは理にかなっているかもしれませんが、この状況ではやり過ぎかもしれません。
トムファンデルザンデン、2016

1

phpmyadminに保存されている各ワードプレスデータベースを制御できない場合を除き、wp adminパスワードを強制的に変更することはできません。

500ワードプレスのサイトで週のパスワードを簡単に見つける方法はありません。Josipは、パスワードの強度をチェックアウトするための1つのリンクについて言及していますが、そのサイトはパスワードの強度をチェックするためにmd5暗号アルゴリズムを使用していませんでした。

このSOリンクMD5を使用するWordpress)をチェックアウトすると、そのアプリとは異なる出力が表示されます。あなたが見る p#aSS*Word14より安全ではないDance With Me Tonightので、パスワードの強度をチェック/仮定するために別の暗号アルゴリズムを使用している可能性があるため、サードパーティのアプリを使用してWordpressパスワードをチェックしないでください。

また、すべてのパスワードを用意し、1つずつテストする必要があります。手っ取り早い方法はありません。

もう1つは、1つのWordPressサイトがハッキングされた場合、同じサーバーの他のwpサイトには影響しなかったことです(DOS攻撃を除く)。多くの人が共有ホスティングでwpを開始し、そのサイトがハッキングされているのを見てきましたが、各wpにはphpmyadmin上の独自のデータベースがあるため、隣接サイトは正常に動作していました。


Didn't affect other WP site on same server:一致!攻撃/ハックのタイプとハッカー/ボットの意図に依存します。
Ashfame、2016

ルートレベルのセキュリティではなく、ワードプレスのセキュリティについて話しています。しかし、私は、サンドボックスメカニズムを使用するすべてのホスティングプロバイダーのほとんどが、同じサーバー上の他のWebサイトに影響を与えなかったと確信しています。
Goyllo、2016

1

以前の回答が指摘したように、保存されたパスワードを読み取ることはできません。

代替ソリューションは次のとおりです。

  1. 強力なパスワードを適用するためのJosip Ivicの提案を実装します。
  2. すべてのパスワード(または特定の特権を持つユーザーのパスワードのみ)を削除します。
  3. 最後に、影響を受けるユーザーに新しいパスワードポリシーが有効であることを通知し、パスワード/wp-login.php?action=lostpasswordをリセットするように指示します。

1

ユーザーが使用する他のサービスと同じパスワードを使用している可能性があるため、クリアテキストのパスワードの保存は非常に安全ではないため、WordPressのパスワードはハッシュされます。

ハッシュをパスワードに戻すことはできません。それ以外の場合は、クリアテキストで保存することもできます。以前はパスワードでハッシュされてMD5いましたが、セキュリティチームによって安全でないことが証明されたため、ハッシュアルゴリズムがに更新されましたphpass

ヒント:MD5(%password%)をsql列に更新しても、WordPressはそれを正しくハッシュできます。

単一のサイトで何をしようとしているかにアプローチする実際的な方法は、実際に列を別のものに変更し、パスワードを更新するページでパスワード強度の要件を適用することにより、パスワードの変更を強制することです。しかし、ユースケースでは、非常に多くのWPインストールでこれを実行する必要があり、それらのサイト所有者は、同意なしにこれを実行することを認めない場合があります。したがって、アクションの影響の範囲を制限する必要があります。

1)管理者、編集者のみのパスワードを更新しますが、それらのユーザーが誰であるかを確認する必要があります。それらを電子メールで送信してから、パスワードのリセットページ/登録ページなどにパスワード制限を適用します。誰かがサイトの他の場所でこれらのフォームを使用できることを覚えておいてください(AJAXフォームも考えてください)。WP環境をロードしてスクリプトを実行するのではなく、この計画の実行を支援するWP-CLIコマンドを作成します。

2)既知の文字列(パスワード)のハッシュ化されたパスワードで構成されるレインボーテーブルを生成します。そして、基本的にはハッシュを特定のユーザーのパスワードと照合し、そのパスワードの強度を評価する必要があります。テーブルの生成は、可能なパスワードをハッシュしてディスクに保存し(長さとパスワードの組み合わせに応じて数GB)、結果に基づいて操作する必要があるため、ここで最も遅い手順です。99%は、あなたのニーズに対応する過剰なソリューションであることを確信しています。

ヒント:wp-config.phpファイルに保存されている塩と秘密を知っています。それらを変更すると、必要になった場合に備えて、ログインしたセッションが無効になります。


1

辞書攻撃を使ってブルートフォースにしようとする

パスワードの強度を評価するためのより良い方法は何ですか?:-)はい、わかりました。しばらく時間がかかります...

それ以外の場合は、すべてのパスワードが弱いと仮定し(これは非常に正確な仮定になると思います)、自分でパスワードを作成し、ハッシュをデータベースに保存して、「安全な」パスワードを使用してプレーンテキストのパスワードを管理者に提供します。チャネル

それ以外の場合は、すべてのパスワードが脆弱であると仮定して、管理者にパスワードの変更を強制し、非常にうるさいパスワード強度検証ツールをWebサイト自体で使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.