パスワードを忘れた? アカウント作成
12119798 story
データベース

MySQL 5.7.4で導入された「パスワードの有効期限」設定にご注意を? 30

ストーリー by hylom
まだ採用ディストリが少ないからセーフかも? 部門より
あるAnonymous Coward 曰く、

昨年3月31日にリリースされたMySQL 5.7.4で新たに導入された「default_password_lifetime」システム変数について、その挙動に注意が必要という話が話題になっているはてなブックマーク)。

このシステム変数は、「パスワードの有効期限」を日単位で設定するもの。Changes in MySQL 5.7.4ドキュメントによると、パスワードを変更してからこの変数で指定された日数が経過すると、そのパスワードが失効するというものだ。デフォルト値は360、つまり約1年で、ドキュメントには「パスワードは年一回更新すべきである」と記されている。

ユーザーのパスワードを変更した日付はmysql.userテーブルのpassword_last_changedカラムに記録されており、ログイン処理を行う際にこの値を参照する仕組みのようだ。また、password_lifetimeカラムでユーザー毎の有効期限を設定することも可能だ。より詳しい情報はドキュメントのPassword Expiration Policy項にまとめられているが、パスワードの有効期限が切れていた場合、ログインはできるもののパスワードを変更するまでそれ以外のデータベース操作が一切行えなくなるという。

定期的にパスワードを変更することに意味があるのか、という議論はおいておいて、大きな問題点としては、この設定がデフォルトで有効になっているということだ。そのため、知らぬ間に突然アプリケーションが動かなくなる、といった現象が発生する可能性がある。さらに凶悪なことにログインはできるのにクエリは行えないという状況になるため、パスワードに有効期限が設定されているという知識がない場合、原因不明で特定のアカウントからのみクエリが行えない、という状況に見えてしまう。

MySQL 5.7.4がリリースされてから1年と2か月ほどが経過し、そろそろアカウントを作成してから360日が経過するシステムが登場してくるところだ。なにか大きなトラブルにならなければ良いのだが……

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2015年06月09日 18時31分 (#2827972)
    Oracle 11g でも似たような話がありましたね。
    # PASSWORD_LIFE_TIME で検索。

    MySQL も Oracle に買収されたあと、同様の機能を入れたんでしょう。
    • by Anonymous Coward

      飼い殺し終息の既定路線ってことですね

      • by Anonymous Coward

        mariadbがあるさね。
        コミュニティベースでどこまでエンタープライズに耐えるかというのはさておきですが。

  • by Anonymous Coward on 2015年06月09日 18時51分 (#2827980)

    今5.7.7がrcで、5.7.4はまだベータ段階だったはずなんですが、実戦投入しちゃってる人、います?

    • by Anonymous Coward on 2015年06月10日 1時19分 (#2828172)

      実戦はいないだろうけど、1年以上経た今でもこのパラメーターが存在するってことは、これをGAリリースにマジで盛り込む気なんだろうなぁ。
      まぁあってもいいけど、デフォルトで 360(日)っていうが凶悪だ。

      今回話題になったことで日本人でリクエスト投げてるようだけどどうなるのか気になるところ。
      http://bugs.mysql.com/bug.php?id=77277 [mysql.com]

      またはerror_logに、とも書いてあるけど、error_logなんて全然チェックしないから気づかないよ・・・
      問題が起きない限り見ないからなぁ。大きな企業でDB担当者とか専門の人でもない限り、アプリ開発者とかが片手間でやってることが多いだろうし、logまできっちりチェックしてないのでは。

      親コメント
    • by Anonymous Coward

      ローカルな実務環境に使うてますね。。。
      このトピ見て周りに確かめたけど誰も全く知らなかったので、職場の「ヒヤリハット事例集」に登録します。。。

  • by Anonymous Coward on 2015年06月09日 18時16分 (#2827962)

    ほとんど他のアプリのバックエンドとしてのみ動いてるんじゃないかな?
    パスワード変更どころか(データベースの)ユーザ自体意識してないような

    #「BIツールが無ければSQL叩けばいいじゃない?」 -- 某シスアド

    • by Anonymous Coward on 2015年06月09日 18時29分 (#2827971)

      だからこそ問題になるんですよ。突然システムがエラー吐いて何が起きてるのかわからん、みたいな。

      oracleで遭遇したことありますね…。
      アレも1年だったかな。処理が止まったと大騒ぎになって、調べてみたら常駐処理プロセスが使用するDBのアカウント有効期限切れ。
      手順書では、無期限に変更するよう指示してあったはずなんですが、読み飛ばしたのか、古いoracle用の手順書でやっちゃったのか。

      oracleの場合は11での変更だったかな?
      けっこうハマった人多いんじゃなかと想像しますw

      親コメント
      • by Anonymous Coward

        すまない。結論書き忘れた。

        「だから、ユーザにパスワードを定期的に変更させるとか無茶だろう」

        と書くつもりだった。

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...