** 本記事は、LastPass source code breach – do we still recommend password managers? の翻訳です。最新の情報は英語記事をご覧ください。**
先週、人気の有名パスワード管理ソフトである LastPass にセキュリティ侵害が発生したことが報告されました。最近、ニュースやソーシャルメディアで話題になっているので、すでにご存知の方も多いかと思います。
LastPass 社によると、セキュリティ侵害自体は報告の 2 週間前に発生しており、同社がソフトウェアのソースコードを保管しているシステムに攻撃者が侵入したことが原因だということです。
侵入後、攻撃者は「ソースコードの一部と LastPass が所有する独自の技術情報を盗み出した」と LastPass は報告しています。
この事件を先週取り上げなかったのは、LastPass が公表したインシデントレポート以上にお伝えすべきことがなかったからです。攻撃者は、LastPass 独自のソースコードや知的財産を物色しましたが、顧客や従業員のデータには手を付けませんでした。
LassPass 社は顧客のオンラインアカウントの安全を守る製品を販売している企業であるため、今回のインシデントは同社にとって非常に恥ずかしい出来事です。一方で、本件は顧客のオンラインアカウントを直接危険にさらすものではないと考えられます。
しかし、先週末には不安に駆られた読者の方々から問い合わせがいくつか届きました (一部のソーシャルメディア上では誤解を招くアドバイスも見受けられました)。そこで、これまでに寄せられた主な質問をご紹介し、お答えすることにしました。
結論を先に述べますと、私たちは平素より、本サイトの読者やポッドキャストのリスナーの方々にパスワードマネージャーを使用することをお勧めしています。ソフォスでは長年にわたって、パスワードマネージャーツールのセキュリティ上の失敗を数多く取り上げてきましたが、それでもこの姿勢は変わりません。
そこで、今後のデジタルライフにおけるパスワード管理について、十分な情報を得た上で判断していただくために、以下に 6 つの Q&A をまとめました。
Q1. パスワードマネージャーがハックされるのではないか?
A1. これは至極当然の疑問です。パスワードの「卵」をすべて同じカゴに入れてしまうと、そのカゴが単一障害点になるのではないか、ということです。
この質問は非常に多く寄せられているので、お答えするために動画を用意しました。こちらをご覧ください (字幕を表示したり、再生速度を上げるには、再生中に歯車のアイコンをクリックしてください)。
Q2. 現在 LastPass を使用している場合、すべてのパスワードを変更した方が良いか?
A2. すべてまたは一部のパスワードを変更したいのであれば、止める理由はありません。
(上の動画で説明しているように、パスワードマネージャーを使用すると、より早く、簡単、安全にパスワードを変更できます。新しい複雑な文字列を何十通りも急いで考え出し、覚える必要がなくなるからです。)
しかし、今回のセキュリティインシデントでは、利用者の個人情報、特にパスワードが窃取されたわけではありません。パスワードは、いずれにせよ不正に利用できる形で LastPass のサーバーに保存されているわけではありません。(Q5 を参照してください。)
今回の攻撃は、LastPass ソフトウェアの脆弱性を突き、パスワード保管庫内の暗号化されたパスワードを攻撃するものではありません。また、パスワード復号化のプロセスに侵入するマルウェアが用いられたことも確認されていません。
さらに、電話番号、郵便番号、個人識別番号など、個人を特定できる「現実の」顧客情報は一切盗まれていません。そのため、攻撃者がオンラインサービスを装ってパスワードの変更を要求するなど、ソーシャルエンジニアリングの手法を用いる可能性は低いと考えられます。
したがって、パスワードを変更する必要はないでしょう。(また、LastPass の使用をやめる必要もありません。)
Q3. LassPass の使用をやめて他の競合サービスに乗り換えるべきか?
A3. ご自身で判断していただく必要があります。
上述の通り、今回のインシデントは LastPass にとっては非常に恥ずかしい出来事ですが、個人情報の漏えいはなく、パスワードに紐付けられたデータ (暗号化されているかどうかにかかわらず) も盗まれていません。盗まれたのは同社独自のソースコードと、知的財産だけです。
最近 Google のゼロデイ脆弱性が実環境で攻撃された時に、あなたは Chrome の利用をやめたでしょうか。Apple 製品に 2 件のゼロデイ脆弱性が発覚した時に、あなたは利用をやめたでしょうか。パッチチューズデーでゼロデイ脆弱性が修正されたのを受けて、あなたは Windows の利用をやめたでしょうか。
やめていないという方は、おそらく脆弱性や情報漏えいが発覚した時の企業の対応を見て、その企業のサイバーセキュリティが将来的にどれほど信頼できるかを判断しているのでしょう。企業の失敗が直接かつ直ちに個人ユーザーを危険にさらすものでなかった場合は、特にそのようなユーザーが多い傾向があります。
したがって、LastPass 社のインシデントレポートと FAQ をお読みいただいた上で、同社を信頼するかどうかを判断していただくことをおすすめします。
Q4. ソースコードが盗まれたということは、ハッキングやエクスプロイトが発生するのでは?
A4. これはもっともな疑問ですが、はっきりとはお答えできません。
一般的に、ソースコードはコンパイルされた「バイナリ」よりも読みやすく、理解しやすいと言われています。特に、ソースコードにきちんとコメントが付いており、ソフトウェア内の変数や関数などに意味のある名前が使われている場合はなおさらです。
やや恣意的ですが、わかりやすい例として、下図の左側の Lua のソースコードと、右側のコンパイル済みバイトコード (Java と同様に、Lua は仮想マシン上で動作します) を比べてみてください。

右: ランタイムに実行される、コンパイル済みの Lua コード。
理論的には、ソースコードを所持していれば、プログラムの問題点やサイバーセキュリティ上のミスを発見することも含めて、ソフトウェアがどのように動作するかの正確な判断を迅速かつ容易に行えます。したがって、脆弱性を発見し、迅速に悪用できるはずです。
実際、リバースエンジニアリングを行う際に、コンパイル済のバイナリと一緒にソースコードを見比べることで作業が複雑になることはほとんどなく、多くの場合はむしろ容易になります。
とはいえ、Microsoft Windows はクローズドソースの OS であり、毎月のパッチチューズデーで修正されるセキュリティホールの多くは、(ほとんどではないにせよ) コンパイルされたバイナリから直接リバースエンジニアリングされていることは心に留めておいてください。
つまり、ソースコードを非公開にしておくことが、サイバーセキュリティプロセスにとって常に重要だとは限らないということです。
また、多くのプロジェクトがソースコードを公開することで成り立っていることも忘れてはいけません。コードを公開することで、誰でもコードを精査できるだけでなく、希望に応じて使用/変更し、より大きな利益のために貢献できます。
しかし、自由な利用規約を採用しており、ソースコードが長年にわたって多くの人の目にさらされてきた主流のオープンソースプロジェクトでさえ、長期間発見できなかったバグに対する重要なセキュリティパッチが発行されることがあります。
さらに、最近の独自ソフトウェアプロジェクト (Google の Chrome ブラウザ、Apple の iOS オペレーティングシステム、Sophos の XG ファイアウォール、その他広く使われているハードウェアやソフトウェアツールなど) の多くは、今でも多くのオープンソースコンポーネントを幅広く利用しています。
簡単に言うと、現代の大多数のクローズドソースプロジェクトは、ソースコードがダウンロードできたり、推測できたりする部分を含んでいます。元コードの利用規約がソースコードをダウンロード可能な状態に保つように、あるいは (変更が加えられた場合であっても) 使用方法を文書化するよう定めているためです。
つまり、今回発生したソースコードの漏えいは潜在的な攻撃者にとって多少の助けにはなるかもしれませんが、ほぼ間違いなく [a] 第一印象ほど深刻ではなく、[b] ソースコードを悪用することで新手の攻撃が可能になるわけではありません。
Q5. パスワードマネージャーの使用自体をやめるべきか?
A5. 個人と企業の秘密をより安全に保管するツールを提供していることをウリにしている会社でさえ、自社の知的財産を安全に保管できていないのであれば、パスワードマネージャーの使用自体が「愚の骨頂」なのではないか、というのがここでの主張でしょう。
もう一度侵入が発生し、今度はソースコードではなく、ユーザーごとに保存されている個別のパスワードが盗まれることを心配していらっしゃるのでしょう。
「もし、攻撃者が私のパスワードをすべてダウンロードしていたとしたら?そもそもなぜ、パスワードマネージャーなんかに自分のパスワードを共有してしまったのだろう?」などの懸念は、この種の侵害が発生した後、ソーシャルメディア上で定期的に見られるもので、ほとんどミームだと言っても良いかもしれません。
パスワードマネージャーが、すべてのパスワードの正確なコピーを自社のサーバーに保管しているのであれば、これらのコピーは攻撃者に窃取されたり、法執行機関に請求されたりしかねません。この場合は、上記のような心配は至極当然のものです。
しかし、まともなクラウドベースのパスワードマネージャーが、サーバーにそのままパスワードを保存することはありません。
その代わり、サーバーには暗号化されたデータベース、あるいは「blob (バイナリラージオブジェクト)」が保存されます。保存されたデータはデバイスに転送され、ローカルで (侵害のリスクを軽減するために、二要素認証を通した上で) マスターパスワードを入力した場合にのみ復号化されます。
パスワードマネージャーのサーバーにパスワードがそのまま使用できる形で保存されることは一切なく、マスターパスワードはたとえソルト化、難読化された状態であってもサーバーには保存されません。
つまり、真っ当な企業のパスワードマネージャーであれば、たとえその企業のデータベースがハッキングされたり、法執行機関からの開示請求があったとしても、パスワードを公開されることはありません。
なぜなら、たとえ公開したくとも、マスターパスワードや他のパスワードを、所持者の同意と協力なしに抽出できるようなデータベースには保存していないからです。
(LastPass の Web サイトには、ユーザーのパスワードが、ユーザーが直接管理するデバイス以外では復号化されず、サーバーの侵害から保護される仕組みが説明文と図 (かなり簡略化されてはいますが) 付きで記載されています。 )
Q6. そもそも、なぜパスワードマネージャーを使うべきなのか?
A6. パスワードマネージャーを使用するメリットを以下にまとめておきます。
- 優れたパスワードマネージャーを用いることで、強固なパスワードを簡単に利用できます。何十、何百ものパスワードを使用し、覚えておかなくとも、本当に強固なパスワードを 1 つだけ使用するだけで済み、必要に応じて 2FA によりセキュリティをさらに強化できます。もはや、あまり重要でないアカウントでも、「簡単」で「推測可能」なパスワードを使う必要はありません。
- 優れたパスワードマネージャーは、複数の Web サイトでのパスワードの使いまわしを禁止します。 攻撃者は Web サイトを侵害し、パスワードを窃取すると、他のアカウントでも同じ (あるいは似たような) パスワードを使用できないかどうか、すぐに試そうとします。そのため、1 件のパスワードの漏えいで済んでいたはずの被害が大幅に拡大する可能性があります。
- 優れたパスワードマネージャーは、ほとんどランダムに生成された複雑で完全に異なるパスワードを何百、何千件も記憶しておくことができます。パスワードマネージャーにとっては造作もないことです。いくら注意していても、完全にランダムで推測不可能なパスワードを考え出すのは困難です。急いでいるときは特に、キーボードの左手から右手の順、子音と母音のくり返し、キーボードの上段中段下段、飼っている猫の名前など、すぐに思いつくような文字列に飛びつきがちだからです。
- 優れたパスワードマネージャーは、正しいパスワードを別の Web サイトには入力させません。 パスワードマネージャーは、「それらしい見た目をして」いたり、それらしいロゴや背景画像が使用されているということでは、Web サイトを「認識」しません。そのため、URL が違うのに気づかないまま、パスワード (さらには 2FA コード) をフィッシング用の偽サイトに入力してしまうのを防止できます。)
結論を急ぐ必要はありません
この問題に対する私たちのアドバイスは上述の通りです。
私たちは、LastPass そのものについては中立の立場をとっています。LastPass を含む世の中のどのパスワードマネージャーにも、特に優劣はつけません。
しかし、パスワードマネージャーを導入すべきかそうでないかという判断は、十分な情報を得た上で行うようにしましょう。
その他、ご不明な点がございましたら、以下のコメント欄よりご質問ください。