LastPass 2022年 開発環境から保管庫の控えへ

1つ目の侵害で開発環境からソースと社内の秘密を取られ、閉じたはずの件の情報で次の標的を選ばれた。2つ目で、全利用者の保管庫の控えと、多要素認証の控えを復号する鍵まで取られた。控えを暗号化していても、鍵が同じ人の手の届く所にあれば守りにならない。

1つ目の侵害は2022年8月の4日間で、同月に検知された[1]。2つ目の侵害は、2022年11月30日に異常な動きとして公表された[1]。LastPass は2023年3月1日に、調べ終え、2022年10月26日より後に攻撃者の動きは見ていないとし、開発環境の作り直し、秘密と証明書の入れ替え、権限の見直しを済ませたと書いた[2]。LastPass の発表に沿って書き、発表に無い細部は報道として示す。2026年11月時点の公開資料で書いています。

要点

  • 1つ目の侵害では、ソフトの技術者の会社のノートPCが侵害され、開発環境から200のうち14のリポジトリと、秘密と証明書の入った社内のスクリプトを取られた[2]。利用者のデータは取られていない。
  • LastPass は1つ目を一度閉じたが、そこで取られた情報が、2つ目の標的選びに使われていた[2]。閉じる判断は、取られた物が何に使えるかで決める。
  • 2つ目では、上級の DevOps の技術者を、弱い第三者のソフトを使って狙い、クラウドの控えの置き場に入る秘密を得た[2]。
  • 取られた控えには、全利用者の保管庫が入っていた。中の資格情報は利用者のマスターパスワードから作る鍵で暗号化されていたが、Webサイトの URL は暗号化されていなかった[1][2]。
  • 多要素認証の控えは暗号化されていたが、別に置いたはずの復号の鍵も取られた秘密の中にあった[2]。

何が起きたか

2022年8月の1つ目の侵害、8月から10月の2つ目の侵害、11月と12月の公表、2023年3月の調べの完了の4つの段 1 開発環境 2022年8月の4日間 ソースと秘密 8月25日に公表 2 控えの置き場 10月26日まで DevOps の技術者 保管庫の控え 3 公表 11月30日 12月22日に 保管庫の控えと公表 4 調べの完了 2023年3月1日 2つの侵害の詳細 利用者への勧め 1は一度閉じた件。2はその情報で標的を選んだ 1の公表から、保管庫の控えの公表まで約4か月
図1 2つの侵害と公表の段
日付出来事
2022年8月1つ目の侵害。攻撃者の動きは8月の4日間に限られた。開発者の侵害された端末を使い、開発者が多要素認証を済ませた後に、その開発者になりすました[1]
2022年8月25日LastPass が公表する。1つの侵害された開発者のアカウントを通じて開発環境に入られ、ソースと技術の情報を取られた。約2週間前に検知し、封じ込めた。利用者のデータと暗号化された保管庫への侵入の証拠は無い[1]
2022年9月15日1つ目の調べを終えたと公表する[1]
2022年8月12日から10月26日2つ目の侵害の期間。開始の日は報道による[3]。終わりの日は LastPass が書く[2]
2022年11月30日関連会社の GoTo と共有する第三者のクラウドの置き場で、異常な動きを最近検知したと公表する。8月の件の情報を使い、利用者の情報の一部に触れたとする[1]
2022年12月22日取られた物を公表する。利用者のアカウントの基本の情報と、保管庫の控えを複製された[1]
2023年3月1日調べを終えたとして、2つの侵害の詳細、取られたデータ、済ませた対策、利用者への勧めを公表する。調べには Mandiant も加わった[2]

通った道筋

技術者のノートPCから開発環境に入りソースと秘密を取り、その情報で DevOps の技術者を狙い、得た秘密でクラウドの控えの置き場に入り、保管庫と多要素認証の控えと復号の鍵を取る 1つ目 2022年8月 技術者のノートPC 会社の端末が侵害 多要素認証の後に成りすます クラウドの開発環境 利用者のデータは 取られていない 取られた物 200のうち14のリポジトリ 秘密の入ったスクリプト 標的を選ぶ 2つ目 2022年10月26日まで 上級の DevOps 技術者 弱い第三者のソフトから マルウェアを入れる DevOps の秘密 控えの置き場に入る鍵と 控えを復号する鍵 クラウドの控えの置き場 本番のデータの控え GoTo と共有 取られた控え 全利用者の保管庫 中身は利用者の鍵で暗号化 URL は平文 多要素認証の控え 暗号化していたが 復号の鍵も取られた 設定と連携の秘密 API の秘密 利用者の属性の情報
図2 開発環境から控えの置き場まで
段LastPass の発表
1つ目の入口ソフトの技術者の会社のノートPCが侵害され、クラウドの開発環境に入られた[2]。開発者が多要素認証を済ませた後に、その開発者になりすました[1]
1つ目で取られた物200のうち14のソフトのリポジトリ、秘密と証明書を含む社内のスクリプト、社内の文書。利用者のデータと保管庫のデータは取られていない[2]
2つの侵害のつながり1つ目は閉じたと宣言していたが、そこで取られた情報が、2つ目の標的を見つけるのに使われたと後で分かった[2]。12月22日の発表は、取られた情報で別の社員を狙い、資格情報と鍵を得て、クラウドの置き場の一部の領域に入り復号したと書く[1]
2つ目の入口上級の DevOps の技術者を、弱い第三者のソフトを使って狙い、マルウェアを入れ、既存の制御をすり抜け、クラウドの控えの置き場に入った[2]
2つ目で取られた物控えの置き場に入るための DevOps の秘密。設定のデータ、API の秘密、他社との連携の秘密、利用者の属性の情報、全利用者の保管庫の控え。多要素認証と連携ログインのデータベースの控え。マスターパスワードは取られた物に含まれない[2]
自宅の計算機とキーロガーの話は報道による

報道は、LastPass の補足の文書を引いて、狙われたのは技術者の自宅の計算機で、弱いメディアのソフトの遠隔のコードの実行からキーロガーを入れ、打ったパスワードを取って会社の保管庫に入ったと伝える。復号の鍵に触れられるのは DevOps の技術者4人だけで、控えは AWS の S3 にあり、AWS GuardDuty の警告で異常に気付いたとも伝える[3]。LastPass の3月1日の発表は、弱い第三者のソフトを使って狙った、としか書いていない[2]。ソフトの名前を挙げた報道もあるが、LastPass は名前を出していない。

取られた控えの中身

保管庫の暗号化は、利用者の端末でマスターパスワードから鍵を作り、端末の側で暗号化する作りである。LastPass はマスターパスワードを知らず、保存もしないと書く[1]。この作りは控えの中の資格情報を守ったが、暗号化の外に置かれた項目は守らなかった。

保管庫の控えのうち、利用者名やパスワードやメモは利用者の鍵で暗号化され、URL などは平文で、多要素認証の控えは暗号化されていたが鍵も取られた 保管庫の控え 利用者の鍵で暗号化 利用者名、パスワード、メモ フォームの入力の値 暗号化の外 Webサイトの URL 一部のファイルの道筋とメール 多要素認証と連携の控え 暗号化していた 認証アプリの種、予備の電話番号 連携ログインの K2 の鍵 別に置いた復号の鍵も 取られた秘密の中にあった 暗号化は効かなかった
図3 控えの中で、暗号化が守った所と守らなかった所
項目状態守る側から見た意味
利用者名、パスワード、安全なメモ、フォームの値256ビットの AES で暗号化。鍵はマスターパスワードから作る[1]控えは手元で何度でも試せる。守りの強さは、利用者のマスターパスワードの強さと鍵を作る反復の回数で決まる
Webサイトの URL、入れたソフトのファイルの道筋、一部のメールアドレス暗号化されていない[2]どのサービスを使っているかが分かり、標的を絞る手がかりになる
会社名、利用者名、請求先の住所、メールアドレス、電話番号、IPアドレス控えから複製された[1]利用者への成りすましの連絡に使える
認証アプリの種、予備の電話番号、K2 の鍵暗号化されていたが、別に置いた復号の鍵も取られた[2]鍵とデータを同じ人が同じ道で取れる所に置けば、暗号化は守りにならない
  • 12月22日の発表は、マスターパスワードから鍵を作る既定の設定を PBKDF2 の 100,100 回とし、2018年からマスターパスワードは12文字以上を既定にしていると書く[1]。既定に従う利用者には総当たりは極めて難しいとし、既定に従っていない利用者には、保存したサイトのパスワードの変更を考えるよう勧めた[1]。
  • OWASP のパスワードの保存のチートシートの今の目安は、PBKDF2 の HMAC-SHA-256 で 600,000 回以上である。A04 暗号化の不備 の型2で扱う。

どこで止められたか

端末、開発環境の秘密、件の閉じ方、鍵と控えの分離、暗号化の範囲の5つの段に、それぞれ止める所を置く 技術者の端末 開発環境の秘密 件の閉じ方 鍵と控え 暗号化の範囲 1 強い権限は管理した端末からだけ 多要素認証の後のセッションも、端末ごと取られる 2 スクリプトに秘密を書かない ソースと一緒に取られても、使える秘密が無い 3 取られた物で次に何ができるかで閉じる 名前、役割、仕組みの図は、次の標的の一覧になる 4 復号の鍵を控えと別の道に置く 1人の資格情報で、入ると解くの両方をさせない 5 平文で置く項目を残さない URL も、標的を絞る手がかりになる
図4 段ごとの止める所
止める所この件で限り
強い権限は管理した端末からだけ1つ目は、開発者が多要素認証を済ませた後の成りすましだった[1]。2つ目は、第三者のソフトの弱点からマルウェアを入れた[2]端末そのものを取られれば、多要素認証は済んだ状態で使われる。端末の管理と、セッションの短さを組で置く
スクリプトに秘密を書かない1つ目で、秘密と証明書を含む社内のスクリプトを取られた[2]どの秘密が2つ目に使われたかは発表に無い
取られた物で次に何ができるかで閉じる1つ目を閉じたと宣言した後に、その情報で2つ目の標的が選ばれた[2]取られた情報の使い道は、相手の次の手を見るまで全部は読めない。読めない分、秘密は回す
復号の鍵を控えと別の道に置く多要素認証の控えの復号の鍵は別に置かれていたが、同じ秘密の束の中で取られた[2]鍵を扱える人は必ずいる。その人の端末と資格情報が、最も強く守る所になる
平文で置く項目を残さない保管庫の URL は平文だった[1]。LastPass は、暗号化を広げる作業を始めたと書く[2]検索や表示のために平文にした項目は、そのまま漏れる。何を平文で持つかを決めて記録する

LastPass がした対応

件対応
1つ目開発環境を消して作り直し、安全の制御を足し、チームが使う平文の秘密を回し、さらされた証明書を取り替えた[2]
2つ目クラウドの置き場を調べて新しい方針と制御を当て、特権の権限を見直して変え、取られた秘密と証明書を回した[2]
全体新しい安全の技術を入れ、方針を見直し、権限を絞り、アプリと控えの仕組みで暗号化の範囲を広げる作業を始めた[2]
利用者個人と家族の利用者向けと、企業の管理者向けに、分けて勧めの文書を出した[2]

守り方

根本の直し方
  • 秘密をスクリプト、リポジトリ、文書に書かない。実行の時に秘密の管理の仕組みから、短い期限の資格情報として取る。ソースが漏れても、中に使える秘密が無い形にする。
  • 控えを復号する鍵と、控えの置き場に入る権限を、別の人か別の仕組みの承認に分ける。1人の端末の侵害で、入ると解くの両方がそろわないようにする。
  • 本番と控えに届く権限は、会社が管理した端末からだけ使えるようにする。個人の端末と、そこで動く第三者のソフトを、強い権限の道に入れない。
  • 利用者のデータは、平文で持つ項目を最小にし、残す項目とその理由を記録する。

架空の会社の控えを取るスクリプト。秘密の書き方

# backup.sh 悪い例
export STORE_ACCESS_KEY="AKEXAMPLE0000000000"
export BACKUP_DECRYPT_KEY="0f1e2d3c4b5a69788796a5b4c3d2e1f0"
# このスクリプトがリポジトリごと取られると、置き場に入る鍵と解く鍵が両方そろう

# backup.sh 直した例
TOKEN=$(vault-cli login --role backup-writer --ttl 15m)   # 管理した端末と承認のあとだけ発行
backup-cli put --store backups.example.com --encrypt-with kms:backup-key
# 書く役割は暗号化だけでき、復号の権限を持たない。復号は別の役割と別の承認
  • 書く役割に復号の権限を持たせない。控えを戻す作業は頻度が低いので、承認を2人にしても回る。
  • 秘密を置く場所と、漏れた時に回す順は 秘密の鍵の扱い で扱う。
緩和の策
  • 控えの置き場への読み出しを、量と元と時刻で見張る。普段の書き込みと違う大きな読み出しを警告にする。
  • 侵害を閉じる前に、取られた物の一覧を作り、その中の秘密を全部回し、名前の出た人を次の標的として守りを足す。
  • 利用者の側では、マスターパスワードを長くし、鍵を作る反復の回数を今の目安に上げる。控えを取られた時の守りは、その2つで決まる。
  • 控えの中の多要素認証の種のように、取られると利用者の別の守りが崩れる物は、取られた時に利用者が作り直せる手順を用意する。LastPass は、勧めの文書を利用者の種類ごとに分けて出した[2]。

型としての整理は、秘密の直書きが 秘密の鍵の扱い に、鍵と暗号化の扱いが A04 暗号化の不備 に、置き場の公開と静的な鍵が A02 セキュリティ設定の不備 の型3に当たる。

参照

  1. Notice of Recent Security Incident LastPass、2022年8月25日、9月15日、11月30日、12月22日の更新
  2. Security Incident Update and Recommended Actions LastPass、2023年3月1日
  3. LastPass attacker hacked engineer's home computer The Record、2023年2月28日。報道