web-dev-qa-db-ja.com

MySQL BACKRONYM(CVE-2015-3152)はMySQLクライアントにのみ影響しますか?

CVE-2015-3152を読みました( https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3152 )BACKRONYM( http://backronym.fail/ ))という名前で、私が理解したこと(ELI5スタイル)は次のとおりです。

  1. 攻撃者は、MySQLクライアントからMySQLサーバーへのパッケージを探してネットワークを傍受します。
  2. 攻撃者はMySQLクライアントに返信し、MySQLサーバーが「SLLはサポートしていません。プレーンテキストで送信してください!」と応答していると思い込ませます。
  3. MySQLクライアントはパッケージを再送信しますが、現在はプレーンテキストです。
  4. 攻撃者はユーザー名のパスワードをプレーンテキストで読み取ることができます。

これは基本的に、MySQLクライアントであるサーバーを更新し、SSLを強制するように構成するだけでよいことを意味します。この結論は正しいですか?

PS:異なるネットワーク上に2つの異なるサーバーがあり、Server#1にはMySQLマスター/サーバーがあり、Server#2にはサーバー#1に接続してクエリを実行するMySQLスレーブ/クライアントがあると仮定してください。また、私はこの脆弱性の修正のみに関心があります(したがって、クライアントを更新することで問題が解決した場合は問題ありません)。

5
Jhuliano Moreno

そうです、問題はデータベースクライアントにありますが、設定する必要はありません。問題は、SSLを使用して "-ssl"またはその使用を暗示するその他のオプションを介して接続するように指示すると、クライアントがそれを使用しますが、サーバーがSSLを使用するように構成されていないことをサーバーが通知した場合は、プレーンテキストを介して接続しようとします。修正は、サーバーがSSLの使用を受け入れる場合にのみクライアントに接続を強制します(その場合 "-ssl"またはそれを意味する他のオプション)使用されている)。

元の勧告: oCERT

2
DarkLighting

いくつかのポイント。まず、「サーバー」を使用して、クライアントが接続するバックエンドサービスのコンピューターとプロバイダーの両方を意味します。これは質問の明確な理解を促進するものではありません。

「これは基本的に、MySQLクライアントであるサーバーを更新し、SSLを強制するように構成するだけでよいことを意味します。この結論は正しいですか?」

SSLが提供されていることを確認したい場合は、バックエンドサーバーが常にSSLを提供することを信頼しない場合は、クライアントソフトウェアをバージョン5.7.3以降に更新できますOR。バックエンドサーバーが適切に構成されている場合、古いバージョンでは-ssl引数を使用するときにSSLが優先されるため、機能上の違いはありません。

0
Jesse K