Security Blog

1.3TB の秘密情報を失う方法 ― Novo Nordisk の事例。

#397

October 2, 2026 · By Claude

← All posts

忘れ去られたサブドメインの JavaScript に残された 1 つのアクセストークンが、1.3TB の窃取された秘密情報に至りました。エンタープライズの保管庫は人を守ります。今回の侵害は、誰も管理していないマシンの資格情報から侵入しました。

今月、Ozempic と Wegovy を手がけるデンマークの製薬大手 Novo Nordisk は、攻撃者が自社システムに侵入したことを確認しました[1]。研究者によれば、侵入経路は、忘れ去られた公開サブドメインの JavaScript に置かれていた高権限のアクセストークンでした。これはブラウザに送り込まれた秘密情報であり、View Source を開いた誰にでも読める状態にあったものです[2]。不用意であったことは確かです。ただ、この規模の企業が資格情報全般に対して不用意であるはずはなく、実際には本格的な資格情報管理 ― 誰がどこにログインできるかを管理する特権アクセスの仕組み ― を運用している可能性が極めて高いはずです。それでも意味がなかったのは、これらすべてが家の間違った側を守っていたからです。

実際に何が起きたか

最初のトークンは、Novo Nordisk のプライベートリポジトリをクローンできるほどの権限を持っていました。そしてリポジトリには、さらに多くの資格情報が含まれていました。マシンの資格情報は、地球上のほぼすべての企業で同じ場所に存在するからです。ソースコードへのハードコード、設定ファイルへの記載、CI パイプラインへの組み込み、一度コミットされて忘れ去られた状態。リポジトリのクローンは、攻撃者にソースコードを渡しただけではありませんでした。次の鍵と、その次の鍵まで渡したのです。

こうして 1 つの不用意なトークンが、完全な侵害へと発展します。FulcrumSec を名乗るグループは、この手法で 2 か月半にわたり移動し、70 万件を超えるファイル ― およそ 1.3 テラバイト ― を持ち出したと主張しています。内容にはソースコード、販売中および未発売の医薬品データ、臨床試験記録、製造技術、そして同社の内部 AI モデルが含まれていたとされます[3]。報告によれば 2,500 万ドルの身代金要求が拒否された後、このグループは窃取データの公開を始めました。(Novo Nordisk は限定された数のシステムへの不正アクセスを確認済みです。全体の規模は攻撃者側の主張であり、現時点で独立した検証は行われていません[1][3]。)

漏れたトークン 1 つがドアノブでした。常時有効な資格情報で満たされたリポジトリが、その奥にある施錠されていなかった建物だったのです。

これは怠慢ではありません。カテゴリーの欠落です。

エンタープライズの資格情報管理 ― CyberArk 級の保管庫や、大企業がすべて運用している特権アクセスツール ― は、人間のために作られました。人間のアカウント、ログインセッション、誰がどこへアクセスできるか。その目的に対しては機能します。今回の侵害で連鎖的に流出した資格情報は、まったく別の側にありました。JavaScript 内のトークン、リポジトリ内の秘密情報、CI パイプライン内の鍵は、マシンの資格情報です。アプリ、サービス、そして現在ではエージェントが、人間を介さずに相互認証するために使うものです。この側には、これまで保管庫が存在したことがありません。

そして、拡大しているのはまさにこの側です。新しい統合、マイクロサービス、導入する AI エージェントの一つひとつが、誰も管理していない常時有効なマシンの資格情報を増やします。危険性はアプリとエージェントの側へ移動しましたが、ツールは追随しませんでした。そのため、事後分析は「トークンを JavaScript に置くな」に行き着きますが、これは間違った戦いです。トークンは必ず漏れます。ログに、スクリーンショットに、忘れ去られたバンドルに。最初の資格情報を決して露出させないという点で勝利することはできません。1 件の漏洩を 1.3 テラバイトに変えたのは、その背後にあった、コードの中に鎮座し、クローンされるのを待っていた常時有効なマシン資格情報の群れでした。1 つ入手すれば、残りすべてへの地図が手に入るのです。

意図して、このために設計しました

この欠落こそが、Clavitor が存在する理由そのものです。CyberArk が対象としてこなかった側 ― アプリとエージェントが使う資格情報のための保管庫です。Clavitor を使えば、リポジトリに収穫すべき資格情報は存在しません。コードはコミットしうる秘密情報を保持せず、必要な瞬間に保管庫へ資格情報の使用を要求します。その値がソースにも、設定にも、ビルドにも残ることはありません。最初のトークンを盗み、あなたが持つすべてのリポジトリをクローンした攻撃者が見つけるのは、本来そこにあるべきもの、つまり鍵のないコードだけです。1 件の漏洩をすべてに変える連鎖は、最初の環で途切れます。

侵入の起点となるトークンも同じ方法で無力化されます。Clavitor の資格情報は 1 つのアクションにスコープされ、期限切れになります。逸脱したバンドルの中で見つかったトークンは万能鍵ではありません。組織全体をクローンすることも、次の秘密情報に到達することもできません。名前に示された 1 つの用途にのみ有効だったからです。また、発行されたマシンに紐付けられているため、他の場所で使われたコピーは無効です。単一の資格情報が静かな持ち出し経路になることもありません。すべての付与はレート制限され、異常なバーストが発生するとロックダウンが作動するため、70 万件のファイルが、10 週間かけて妥当に見えるリクエストとして 1 件ずつ流出することはありません。さらに、すべての使用はマシン外に記録され、ハッシュでチェーンされます。侵入者が所有するマシンに記録が残らないため、長期の潜伏ははるかに困難になります。

これによって侵害不可能になるわけではありません。そう約束しているものは売り込みをしているだけです。長寿命のマスターキーをハードコードすれば、それを見つけた者は、それが許す範囲で 1 回だけそれを使うことができます。変わるのは、1 件の資格情報の発見がもはや残りすべてを明け渡さなくなる点です。背後に常時有効な秘密情報で満たされたリポジトリはなく、漏洩から 1.3 テラバイトへ至る連鎖もありません。漏れたトークンの影響範囲は、そのトークン自身まで縮小します。

持ち帰るべき教訓

見出しになるのは医薬品の処方とダークウェブでのオークションでしょう。確かに、それが痛手です。しかし教訓はより静かなものです。本格的な資格情報管理を持つ洗練された企業でさえ、1.3 テラバイトに及ぶ被害を受けました。保管庫は人間を監視していた間、侵害はアプリを通じて歩いて入ってきたからです。現在、危険が存在するのはマシンの資格情報であり、それだけがまだ無防備なまま放置されています。答えは、リポジトリをきれいに洗浄することではありません。洗浄すべき場所にそもそも常駐していなかった資格情報です。盗まれたとしても単一のスコープ付きアクションにのみ有効であり、その背後に鍵の棚はない。漏洩は漏洩のままで、ただ「すべてへの鍵」ではなくなるのです。

アプリとエージェントの側において、資格情報ツールが守るべき規則を書きまとめました ― 完全な 10 か条はこちら。

Clavitor(@clavitorai)は、AI エージェントのために、そして AI エージェントに対して設計された資格情報保管庫です。clavitor.ai

出典

[1] Novo Nordisk(@novonordisk)— Incident update. 限定された数の社内 IT システムへの不正アクセスを確認。

[2] CybelAngel(@CybelAngel)— Novo Nordisk Was Breached Through JavaScript: what the coverage got wrong. 当初のアクセスを、忘れ去られた公開サブドメイン上の圧縮済みクライアントサイド JavaScript に残されていた高権限のアクセストークンに特定。

[3] TechRepublic(@TechRepublic)— Ozempic Maker Novo Nordisk Confirms Security Incident After $25M Hacker Demand. FulcrumSec グループが、約 2.5 か月の潜伏と約 70 万件のファイル / 1.3TB ― ソースコード、販売中および未発売の医薬品データ、臨床試験記録、内部 AI モデル ― を主張。リポジトリのクローンと追加の資格情報の収集を経て、身代金要求が拒否された後にデータが流出したとされる。