有料会員限定記事 現在はどなたでも閲覧可能です
ところがプレミアム・アウトレットでは、パスワードを「平文」と呼ばれる暗号化されていない文字列で保存していた。また、認証に失敗したときのIDとパスワードも「エラーデータ」として平文のままデータベースに登録していた。理由は、「サポートで使用したり、会員の利用状況を調べたりするためだった」(広報)と説明する。
例えば、サポート窓口に「ログインできない」と問い合わせてきた会員に対応するために使うとしている。パスワードをハッシュ化していなければ、「桁数が違う」とか「最後の文字を間違えている」といった対応が可能だ。
手厚いサポートのようにも見えるが、パスワードは平文のまま保存すべきではない。ログインできないというユーザーに対しては、認証に失敗した理由だけを伝えれば十分だ。登録済みのパスワードとの違いを伝える対応では、会員になりすました第三者にパスワードのヒントを教えることになる。
認証失敗時のパスワードも含まれると早く通知すべき
同社は4月7日に情報漏洩の可能性があると発表したときに、会員が登録パスワードと同じパスワードを他サイトで利用している場合は、速やかに変更するよう呼びかけていた。
しかし実際は、認証失敗時のパスワードも漏洩していた。単なる入力ミスだけでなく、複数のパスワードを様々なサービスで使い回している会員が、プレミアム・アウトレットの認証に失敗したときのパスワードも含まれているだろう。この点は、同社が4月14日に被害件数を発表するときに把握していたはずだ。ところがこのときも、登録パスワードが漏洩したので注意するよう呼びかけただけだった。
漏洩データを入手した編集部では、登録したパスワード以外の情報が含まれることがわかったので、いち早くその危険性を報じた。同社にもこの点を4月時点で指摘したが、最終的に発表したのは6月7日だった。
この点について、もっと早く注意喚起すべきだった。特に今回は、漏洩データが誰でもアクセスできるストレージサービス上に長期間置かれていたため、多くの人が入手しやすい状況にあったからだ。
今回の情報漏洩は、WebサーバーのSQLインジェクションの脆弱性が原因だったという。SQLインジェクションの脆弱性は、定期的なメンテナンスやセキュリティ診断を実施していても防ぎにくい。だが、パスワードを適切にハッシュ化する、認証失敗時の入力情報を保存しない、注意喚起を適切に行う、といった三つの対策を施していれば、たとえ脆弱性によって情報が漏洩したとしても、被害は最小限に抑えられる。