web-dev-qa-db-ja.com

mysqlユーザーのパスワードが弱いのはなぜ悪いのですか?

「強力なmysqlユーザーパスワードは必要ありません。使用するためには、既にサーバーにアクセスできるからです」という議論がありました。ライブビジネスのウェブサイトで標準的な英語の辞書Wordである4桁のパスワードについて話しています。

私自身の知識と経験で答えに影響を与えることなく、私は彼らに無関心な第三者の情報源からのいくつかの応答を示したいと思います。誰かがこれにチャイムを入れたいですか?プログラミング/実用的な答えをいただければ幸いです。

23
Citizen

この議論をしている人は誰でも、「誰かがドアに足を踏み入れたら、あなたは彼らに完全なアクセスを与えたほうがよい」と言っているようです。そのロジックにより、ファイアウォールは内部ネットワーク上のすべてのパスワードの必要性を否定します。

強力なパスワードは、ネットワークへの侵入による被害を制限するための1つのステップです。ネットワークの1つの小さな部分が侵害されたという理由だけで敗北に手を上げる理由はありません。

39
user229044

これは実際には「 多層防御 」の概念に戻るため、少なくとも強力なパスワードを使用すると速度が低下し、検出してブロックできるようになります。私は、ゲート付きコミュニティ用の単一の鍵と、すべての家のドアにある鍵の類似性が好きです。

14
Power-coder

経理の小口現金ボックスにロックはありますか?もしそうなら、なぜですか?建物には物理的なセキュリティがありませんか?

6
JohnFx

これは、MySQLサーバーのセットアップ方法に大きく依存します。ホーム(127.0.0.1)IPからの要求のみを受け入れる場合は、適度に安全になります。

リモートIPを許可するシナリオを考えると、それははるかに大きな問題になります。

それに加えて、侵入があった場合に備えて強力なセキュリティを確保することは常に良いことです。

6
DivinusVox

強力なmysqlユーザーパスワードは必要ありません。これを使用するには、サーバーにすでにアクセスできます。

Mysqlはクロスネットワーククライアントサーバー環境でも使用できるため、これは当てはまりません。デフォルトで必要なのは、データベースにアクセスするためのユーザー/パスだけです(もちろん、3306ポートが開かれ、サーバーが公開されています)。 )。

5
Denis Biondic

実際、それは逆の場合もあります。mysqlにアクセスできる場合は、サーバーOS自体にアクセスできる可能性があります。

  1. MySQLLOAD_FILEおよびSELECT ... INTO OUTFILEクエリを使用すると、mysqlユーザーは基盤となるファイルシステム上のファイルを読み書きできます。 mysqlユーザーもアクセスできるファイル(MySQLはrootとして実行されていますか?)。 Linux/UNIXの場合は、SELECT LOAD_FILE( '/ etc/passwd')をクエリして、ニヤリと笑うのを確認してください。 mysqldがrootとして実行されている場合は、SELECT LOAD_FILE( '/ etc/shadow')を試して、システム管理者が泣くのを見ることができます。
  2. 多くの場合、Linuxでは、mysqlユーザー「root」はサーバーの「mysql」ユーザー(mysqldを実行するユーザー)と同じパスワードを持っています。次に、このパスワードが簡単な場合(または、medusa/hydraなどの自動ツールで見つけられる場合)、データベースサーバーに直接SSH/telnetで接続して、だまします。
5
Renik

ここで見落とされているように思われることは、信頼できるネットワーク上のユーザーを信頼していますか?

率直に言って、私は知りません。なぜなら、私がITを始めたときの自分がどのようなものであったかを知っているからです。私は権利がなかった領域で突っ込んで突進しましたが、率直に言って、MySQLの弱いパスワードは、ポットラックのチャンスを利用して入ってきたので、(偶然に)もちろん)。

誰かがソーシャルエンジニアリングを使用して信頼できるネットワークにアクセスした場合はどうなりますか?その後、あなたは何をしますか?彼らがファイアウォールの背後にあるマシン上にいる場合、彼らは危険です、あなたの堅実なファイアウォールのセキュリティは台無しにされ、彼らはマシンにまっすぐに侵入します。

強力なパスワードは非常に簡単に実行でき、パスワードを安全に保つためのパスワード管理ツールがたくさんあるので、それを行わない理由はありません。

4
Mark Henderson

誰かがrootにアクセスしてサーバーにアクセスした場合、MySQLパスワードは必要ありません。ただし、サーバー上でrootおよびWeb以外のユーザーとしてのみアプリを実行できる場合でも、強力なMySQLパスワードを使用してデータを保存できます。しかし、ええ、ほとんどのハッキングはWebから発生します。つまり、ハッカーはWebアカウントにアクセスできるため、PHPファイルからDBパスワードを抽出できます。

これはすべて、MySQLサーバーがローカルホスト以外の場所からの接続を受け入れていないことを前提としています。もしそうなら、あなたは強いPWを必要とします。

4
rustyx

要件が変わるため...

したがって、ローカルマシンのみへのMySQL接続の受け入れに制限されている現在のサーバーは、外部ツールを使用してデータベースを管理できるように、明日開かれる可能性があります。この設定を行う人は、使用されているパスワードが非常に弱いことを知らない可能性があります。

強力で強力な(例:長い、ランダムな)パスワードを覚える必要があるためにユーザーが不便を感じる場合は、パスワードを非常に強力にして.my.cnfに保存することを検討してください。入力する必要があります。もちろん、これにもセキュリティ上の影響がありますが、パスワードをアクセスするアプリケーションなど、どこかにパスワードを保存する必要があるため、パスワードのコピーはすでに保護されています。

しかし、@ meagarが言ったことも読んでください。

2

ええサーバーがIPロックされていて、ユーザーが情報を気にしない一連のテーブルでSELECTに制限されている場合、それは大したことではありません。

一方、MySQLのパスワードは、キーボードを1分間叩いて設定し、結果の意味不明なものを保護されたファイルにコピーして貼り付けます。このファイルは、ログインする必要があるときにコードで参照します。これが機能するはずです。

なぜそれを簡単にするのですか?パスワードが制限されたローカルアカウントにアタッチされている場合(それらはすべてそうであるはずです)、なぜそれを入力するのですか?そうでない場合は、保護しているデータの値に関連する強度のパスワードが必要です。

2
Satanicpuppy

mySQLsアカウント/アクセス情報は、実際のデータベースとは別のファイルに保存されます。したがって、別のファイルをその場所にドラッグアンドドロップするだけです。 mySQLを使用すると、ファイルシステムの関連部分への書き込みアクセス権があれば、ゲームは終了します。

2
John Robertson

それはユーザーがどのような権利を持っているかによりますが、常に複数のレベルで物事をロックダウンする必要があります。また、データベースに保存しているデータによっても異なります。また、MySQLにデータベース全体を乗っ取ることができる脆弱性があると仮定しますが、ユーザーアカウントにログインする必要があるだけです。パスワードが強力な場合、これによりこの脆弱性がミュートになります。しかし、これは本当にあなたの特定のケースに依存します。

1
ddcruver

Mysqlで他人になりすますことは非常に簡単です。パスワードのない(最も弱いセキュリティの)ユーザーIDが与えられた場合、mysql -u useridを使用するだけです。パスワードがある場合は少し難しくなりますが、パスワードが弱いと簡単になります。 rootにパスワードがない場合、mysql -u rootとしてrootにアクセスできます。その後、rootが実行できるデータベース内で何でも実行できます。

セキュリティでホスト仕様を使用することも、特にリモートアクセスが利用できる、または利用できる可能性がある場合は、良い考えです。

ファイル内のパスワードは、アクセス許可によってある程度保護することができ、ある程度保護する必要があります。 rootまたはパスワードファイルの所有者によるアクセスは簡単です。可能であれば、ディスク上のパスワードの暗号化を使用する必要があります。これにより、アクセスが少し難しくなりますが、それでも脆弱です。

1
BillThor

彼らがすでにアクセスできるという前提は真実ではありません。ただし、アクセス権があり、非特権アカウントを持っている場合でも、mysqlパスワードを簡単にハッキングできます。

また、サーバーがライブプロダクションサーバーの場合は、インターネットに広告を掲載するよりも、つまり、ある時点で、誰かが[〜#〜] will [〜#〜] mysql、ポート、およびユーザーアカウントの両方を含むそのサーバーに対してブルートフォース攻撃を試みます。

データに関心がある場合、基本的な手順は、データベースとrootユーザーとは異なるrootパスワードを使用することです。他の人は、ユーザーとプログラムに対して可能な限り低い権限を持つべきであると述べています。

かなり安価なコンピューターで、4文字のパスワードを数分でハッキングできます。

私は他の人が言ったことをただ繰り返しているかもしれませんが、あなたのマネージャーのための弾薬が多ければ多いほど良いです。

1
weismanm

現実のシナリオの理由の多くは以前に投稿で取り上げられていたので、「哲学」の理由を追加します。強力なパスワードを使用し、セキュリティを強化するための予防策を講じることは、仕事の哲学です。考え方。

弱いパスワードの使用now mysqlは127.0.0.1でのみ実行され、rootユーザーのみがアクセスできるため、先を考えていないことがわかります。ある日、mysqlへのネットワーク経由アクセスを許可する必要がある場合はどうなりますか。あなたが残したすべてのセキュリティホールをカバーすることを覚えていますか?

優れた管理者は、最悪のシナリオを最初にパラノイアのポイントに置きます。

1
Cristian Vrabie

MySQLデータベースを自分でホストしていないが、それがホスティングサービス上にあり、誰かがサーバーのIPアドレスにアクセスできる場合、ユーザー名とパスワードが最後の防御策となります。安全なユーザー名/パスワードを持っていることは常に良いことです。

0
John