私が使用してMySQLユーザーリストをダンプしたと仮定します
SELECT user, Host, password, ssl_type FROM mysql.user;
結果は次のようになります。
+------------------+-----------+-------------------------------------------+----------+
| user | Host | password | ssl_type |
+------------------+-----------+-------------------------------------------+----------+
| admin | % | *blablablablablablablablablablablablablaa | ANY |
+------------------+-----------+-------------------------------------------+----------+
この情報は機密と見なされるべきですか?攻撃者はパスワード情報を使用してMySQLデータベースにアクセスできますか?パスワードはハッシュ化されているように見えるため、直接使用することはできませんが、おそらく何らかの方法で悪用される可能性があります。私のサーバー用のレインボーテーブル、またはこのようなものを作成するのに役立ちますか?
はい、機密情報です。これはパスワードハッシュリークです。
攻撃者はこの情報をブルートフォースアプリケーション(MySQL専用に調整されたものもある)に提供し、パスワードを取得します。
これだけでなく、ホストフィールドの%
は、MySQLポート(デフォルトでは3306)がファイアウォールで保護されていない場合、攻撃者がadmin
としてどこからでもアクセスできることを意味します。
admin
のためだけにlocalhost
アカウントをロックすることを検討してください。パスワードハッシュは、そのようなハッシュを解読するのがいかに難しいかにかかわらず、決して公開しないでください。
パスワード自体が本質的に機密であるだけでなく(他の回答が主要なリスクとして正しく指摘しているように)... パスワードに含まれる情報も機密であることが多い。
ハッシュが解読されると、多くのパスワードには、誕生日、子供の名前、電話番号、セキュリティの質問に対する事実上の回答、住所、さらには社会保障番号まで含まれます。
私たちは私たちにとって重要なこと、そして私たちにとって個人的なことを覚えています。これは優れたUXを備えたパスワードになりますが、セキュリティの観点からすれば、ひどいものです。
このパスワード選択の心理学は、制約として保持されるべきです。多くのユーザーはこの方法でパスワードを選択するため、それに応じて処理および保護する必要があります。
John the Ripper または hashcat などのパスワード解読ツールを使用して、ハッシュから元のパスワードを取得することが可能です。これらのツールは、総当たり攻撃で多数のパスワードを試すだけです。パスワードの複雑さによっては、この処理に時間がかかる場合があります。
はい、敏感です。攻撃者は、ブルートフォース攻撃または辞書攻撃によってハッシュを「クラッキング」しようとする可能性があります。すべてのケースでMySQLパスワードがソルト処理されているのを見ましたが、それらが事前に計算されたハッシュテーブルでない場合は、レインボーテーブルを使用してプロセスを加速できます。
さらに、そのハッシュがSQLインジェクションの脆弱性を介して取得された場合(可能性が高い)、クエリの作成方法によっては、攻撃者がテーブルのデータを挿入または更新しようとする可能性があります。これが可能な場合、攻撃者は新しいユーザーを追加するか、既知のパスワードのハッシュを使用して管理パスワードのハッシュを変更し、クラッキングの手順を完全にスキップできます。