Twitter 社が日本時間の 3日、社内システムのバグによって、本来 BCrypt を用いてハッシュ化しているはずのパスワードが、ハッシュ化を完了する前の平文の状態でログファイルに保存されていたことが判明したとして、全ユーザーにその報告と共に、念のためパスワードの変更を勧める旨を公式 Blog にて発表しました。
今回の件で パスワードが外部に流出した可能性については一応否定されていますし、パスワードの使い回しのようなセキュリティ上問題のある行為を行っていない、かつ、すでに 2段階認証を有効にしているユーザーについてはそれ程過敏に反応する必要はないと思いますが、気になるという方はパスワードの変更と同時に、まだ 2段階認証を有効にしていない方はこの機会に有効にしておくとなお良いでしょう。
We recently found a bug that stored passwords unmasked in an internal log. We fixed the bug and have no indication of a breach or misuse by anyone. As a precaution, consider changing your password on all services where you've used this password.
— Twitter Support (@TwitterSupport) 2018年5月3日
本記事執筆時点では日本語での記事がまだ出ていないようですが、すでにユーザー宛にメールでの案内が送信されているようで、そちらは設定してある言語に合わせたものになっているようですね。
公式 Blog の内容を超簡単に訳しますが、
When you set a password for your Twitter account, we use technology that masks it so no one at the company can see it. We recently identified a bug that stored passwords unmasked in an internal log. We have fixed the bug, and our investigation shows no indication of breach or misuse by anyone.
Out of an abundance of caution, we ask that you consider changing your password on all services where you've used this password. You can change your Twitter password anytime by going to the password settings page.
『アカウントに設定されるパスワードに関しては、Twitter 社内の人間でもパスワードを見ることができないよう、暗号化するテクノロジーを使用していますが、最近の調査で、パスワードが暗号化されないまま内部ログに保存されるというバグを発見しました。バグはすでに修正されており、その後の調査で、外部への流出、第三者による不正使用などは確認されませんでした。
Twitter 社は、安全のためにパスワードを変更することをお勧めします。パスワードの変更は、Twitter のパスワード設定ページからいつでも可能です。』
また、バグ自体については下記のように説明されています。
We mask passwords through a process called hashing using a function known as bcrypt, which replaces the actual password with a random set of numbers and letters that are stored in Twitter's system. This allows our systems to validate your account credentials without revealing your password. This is an industry standard.
Due to a bug, passwords were written to an internal log before completing the hashing process. We found this error ourselves, removed the passwords, and are implementing plans to prevent this bug from happening again.
『Twitter は、BCrypt を使用してパスワードを暗号化しています。今回のバグによって、ハッシュ化が完了する前に、パスワードが内部ログに書き込まれていることが判明しました。Twitter ではバグの発見後、内部ログからパスワードを削除した上で、このバグが再発しないように対策を行いました。』
データストアでは暗号化された状態でパスワードが保存されてるからって安心してたら、ログの方に平文でデータが残ってましたみたいのは、結構やらかしがちなミスなんですが、Twitter 社といえどもこの手のセキュリティあるあるからは逃れられなかったようです。
ということで下記の対策が勧められています。
- Change your password on Twitter and on any other service where you may have used the same password.
- Use a strong password that you don't reuse on other websites.
- Enable login verification, also known as two factor authentication. This is the single best action you can take to increase your account security.
- Use a password manager to make sure you're using strong, unique passwords everywhere.
- Twitter のパスワードを変更し、同じパスワードを他のサービスでも使用している場合は、そのサービスのパスワードも変更してください
- (パスワードを変更する場合は) 他のサービスで使用しておらず、かつ推測しにくいパスワードを使用してください
- アカウントの安全性を高める最も有効な方法として、ログイン認証 (2段階認証) を有効にしてください
- パスワードマネージャーを使用して、すべての場所で推測されにくいパスワードを使用するようにしましょう
1番目の 「同じパスワードを他のサービスでも使用している場合は」 については基本的に問題外なので今すぐやめましょう。今回の件にかかわらず、各サービスで必ず異なるパスワードを使用すべきです。
また、パスワードを変更する場合でも、強固なパスワードを設定しましょう。パスワードマネージャーにはパスワードを生成する機能が付いていたりしますので、そういうものを利用して、最低でも 10~12 文字以上あるランダムな文字列による推測されにくいパスワードを設定するとよいでしょう。
2段階認証が重要
パスワードをどんなに複雑な文字列に設定しても、何らかの理由で漏れるときは漏れるもんです。そこで、より安全性を高める方法として、2段階認証を有効にしましょう。
具体的な方法は下記のヘルプを見ればわかると思います。
登録した携帯電話番号に対して SMS で認証コードを送信する方法と、サードパーティの 2段階認証用トークンソフトウェアを使用した方法が選択できますが、私の場合は Google が提供している 「Authenticator」 を使用しています。iOS 用、Android 用はそれぞれ下記でダウンロード可能です。
ということで、私は 2段階認証をすでに有効にしていましたが、今回の件をうけて、念のためパスワードの変更も行いました。
現在設定しているパスワードが他のサービスと使い回している、推測されやすい、あるいは短いパスワードを設定してしまっているという場合はこの機会に変更をお勧めします。
また 2段階認証を有効にすることで、アカウントを乗っ取られたりという被害から身を守ることができますので、可能な限り有効にしておくとよいでしょう。